nmh-workers
[Top] [All Lists]

Re: [Nmh-workers] Blockers for 1.7.1.

2018-02-17 14:57:36
GNU iconv is also used here, where I did d4814561e, but the commit does
not remove support for eliding the `?'.

The before, 79e8d527, says

   iconv_elides_question_marks=0
   if test "$ICONV_ENABLED" -eq 0; then
      text_size=10
   else
      text_size=11
      #### The GNU iconv library normalises charset names by eliding '?', 
along
      #### with some other characters.  The iconv library used on 
FreeBSD/NetBSD
      #### doesn't.
      printf x | iconv -f '?UTF-8' -t UTF-8 >/dev/null 2>&1  &&
          iconv_elides_question_marks=1
   fi

So let's assume we reach the end of this on Mac OS X with

   ICONV_ENABLED=1
   text_size=11
   iconv_elides_question_marks=1

The only other use of iconv_elides_question_marks is

   run_prog mhshow $msgnum > $actual 2>&1
   if [ $iconv_elides_question_marks -eq 1 ]; then
      check "$expected" "$actual"

The `after' from that commit does

   text_size=10
   test "$ICONV_ENABLED" -eq 1 && text_size=11

so that will still give the

   ICONV_ENABLED=1
   text_size=11

and then the run_prog is

   run_prog mhshow $msgnum > $actual 2>&1
   check "$expected" "$actual"

Effectively the same.  It's the non-iconv_elides_question_marks
behaviour that has changed.

It did take David and I a bit of head scratching though, IIRC, so it
could be wrong but we'd need to see what's happening to help further.

Alright, test/mhshow/test-charset on master currently fails on MacOS X with:

***************
*** 3,6 ****
--- 3,8 ----
  
  MIME-Version: 1.0
  
+ mhshow: Can't convert ?us-ascii to UTF-8
+ mhshow: unable to convert character set from ?us-ascii, continuing...
  [ part  - text/plain -   0B  ]

../nmh/test/mhshow/test-charset: test failed, outputs are in 
/Users/kenh/nmh-obj/test/testdir/24741.expected and 
/Users/kenh/nmh-obj/test/testdir/24741.actual.
first named test failure: replacement character in parameter value

But even though we are using GNU iconv, it turns out that in the old
code iconv_elides_question_marks was set to 0.  On my systems:

% /usr/bin/iconv --version
iconv (GNU libiconv 1.11)
Copyright (C) 2000-2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
/usr/bin/iconv -f '?UTF-8' -t UTF-8
/usr/bin/iconv: conversion from ?UTF-8 unsupported
/usr/bin/iconv: try '/usr/bin/iconv -l' to get the list of supported encodings

Even a newer one does the same thing:

% /opt/local/bin/iconv --version
iconv (GNU libiconv 1.14)
Copyright (C) 2000-2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Bruno Haible.
% /opt/local/bin/iconv -f '?UTF-8' -t UTF-8
/opt/local/bin/iconv: conversion from ?UTF-8 unsupported
/opt/local/bin/iconv: try '/opt/local/bin/iconv -l' to get the list of 
supported encodings

So I guess the non-elides case is the one that is now broken.  If you need
more info, just let me know.  I'm aware those iconv libraries are kind of
old; a CentOS system here has 2.17 on it.

--Ken

-- 
Nmh-workers
https://lists.nongnu.org/mailman/listinfo/nmh-workers

<Prev in Thread] Current Thread [Next in Thread>