Here's the typetest output for the attachment...

[EMAIL PROTECTED] hylafax]# typetest fax.txt
match against (..., 439)
....
rule: offset 0 ascii = -- failed (unprintable char 0xc3)
no match
fax.txt: Can not determine file type

HylaFAX uses isprint() to determine whether or not the "ascii" (which really should be "text") rule matches or not...

   case ASCII:
       {
       u_int i;
       for (i = 0; i < size; i++)
           if (!isprint(cp[i]) && !isspace(cp[i])) {
               if (verbose)
                   printf("failed (unprintable char %#x)\n", cp[i]);
               return (false);
           }
       ok = true;
       goto done;
       }

... there is some indication in the isprint man page that the behavior of isprint() may actually be locale-specific. I notice that your locale settings are for en_US...

 Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

So that, at least, will need to be changed. However the TypeRules.c++ code does not setlocale() at all, and so there's certainly more to do in order to get isprint() to recognize 0xc3 as printable in your locale. I tried some quick tests to see if I could get setlocal() to work for LANG_C=de_DE and your text file, but I met with failure and the code solution is not clear to me as I've not done this kind of stuff before.

For a short-term "quick fix" you could enable the rule in typerules that reads like this:

#  Support 7-bit text which would otherwise be seen as binary.
#
0 byte x ps %F/textfmt -B -f Courier-Bold \
                                                        -p 11 -s %s >%o <%i

Enabling this rule basically matches all previously non-matched files as formatable with textfmt. So you need to be careful, because this will also match on non-text files such as executable or gzip files... and then you end up with a very long fax of garbage.

Lee.


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to