Re: pcl2fax: setting of 'PCLFONTSOURCE'
Bram <[email protected]> Wed, 11 Sep 2013 14:59:20 +0200
| Newsgroups | gmane.comp.telephony.fax.hylafax.devel |
|---|---|
| Message-ID | <[email protected]> |
Yes, this does work. I was already using something similar. However, I don't know if this is 'acceptable' as a general solution.. Possible reasons for it to be not 'acceptable': * it is bash-syntax * it could be an issue on Windows but I suppose that's not really relevant * ... Best regards, Bram Quoting Aidan Van Dyk <[email protected]>: > If all you need is to change : to ; for PCLFONTSOURCE if it's set form > FONTPATH, does this work for you? > > PCLFONTSOURCE=${FONTPATH//:/;} > > > On Wed, Sep 11, 2013 at 8:06 AM, Bram <[email protected]> wrote: > >> Hi, >> >> [I'm cross-posting this to both '[email protected]' and ' >> hylafax-devel@lists.**sourceforge.net<[email protected]>' >> since I'm unsure how they related to each other - apologies if this is not >> appropriate] >> >> >> There exists a problem with the setting of the 'PCLFONTSOURCE' variable in >> the 'pcl2fax' script. >> This script sets 'PCLFONTSOURCE' to the value of 'FONTPATH' as set in the >> 'setup.cache' file. >> >> Code from 'pcl2fax': >> if [ ! "$PCLFONTSOURCE" -a -n "$FONTPATH" ] ; then >> PCLFONTSOURCE=$FONTPATH >> fi >> if [ -n "$PCLFONTSOURCE" ] ; then >> export PCLFONTSOURCE >> fi >> >> It then runs the '$PCL6CMD'. >> >> The problem however is that FONTPATH appears to be separated by ':' while >> pcl6 *seems to* expect the 'PCLFONTSOURCE' to be separated by ';' [note: >> this is determined by looking at the source of pcl6]. >> This causes an error when multiple paths are set in FONTPATH: it fails to >> find fonts. >> >> The easiest way to see this is by using strace: >> >> Separated by using ':' >> $ export PCLFONTSOURCE='/tmp/aa/:/tmp/**bb/:/tmp/cc/:/tmp/dd/' ; >> strace -f /usr/bin/pcl6 -sOutputFile="output" input 2>&1 | grep >> '/tmp/[abcd]' >> openat(AT_FDCWD, "/tmp/aa/:/tmp/bb/:/tmp/cc/:/**tmp/dd", >> O_RDONLY|O_NONBLOCK|O_**LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = -1 ENOENT >> (No such file or directory) >> openat(AT_FDCWD, "/tmp/aa/:/tmp/bb/:/tmp/cc/:/**tmp/dd", >> O_RDONLY|O_NONBLOCK|O_**LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = -1 ENOENT >> (No such file or directory) >> >> Separated by using ';' >> export PCLFONTSOURCE='/tmp/aa/;/tmp/**bb/;/tmp/cc/;/tmp/dd/' ; >> strace -f /usr/bin/pcl6 -sOutputFile="output" input 2>&1 | grep >> '/tmp/[abcd]' >> openat(AT_FDCWD, "/tmp/aa", O_RDONLY|O_NONBLOCK|O_** >> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 3 >> openat(AT_FDCWD, "/tmp/bb", O_RDONLY|O_NONBLOCK|O_** >> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 3 >> openat(AT_FDCWD, "/tmp/cc", O_RDONLY|O_NONBLOCK|O_** >> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 3 >> openat(AT_FDCWD, "/tmp/dd", O_RDONLY|O_NONBLOCK|O_** >> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 3 >> openat(AT_FDCWD, "/tmp/aa", O_RDONLY|O_NONBLOCK|O_** >> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 4 >> openat(AT_FDCWD, "/tmp/bb", O_RDONLY|O_NONBLOCK|O_** >> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 4 >> openat(AT_FDCWD, "/tmp/cc", O_RDONLY|O_NONBLOCK|O_** >> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 4 >> openat(AT_FDCWD, "/tmp/dd", O_RDONLY|O_NONBLOCK|O_** >> LARGEFILE|O_DIRECTORY|O_**CLOEXEC) = 4 >> >> >> I'm not entirely sure how many ways there exists in the 'faxsetup' script >> to set the 'FONTPATH' variable. >> One method at least - and the method that appears to be used in our case - >> is the 'getGSFonts()' function: >> getGSFonts() >> { >> $PATH_GSRIP -h 2>/dev/null | $AWK -F '[ ]' ' >> BEGIN { start = 0; } >> /Search path:/ { start = 1 } >> { >> if (start == 1) { >> if ($1 == "") { >> gsub(" ","") >> gsub("^[.]","") >> gsub("^:","") >> printf "%s", $0 >> } else if ($1 != "Search") start = >> >> } >> } >> ' >> } >> >> PATH_GSRIP is set to /usr/bin/gs. >> Running the command: >> $ /usr/bin/gs -h >> GNU Ghostscript 7.07 (2003-05-17) >> ... >> Search path: >> /usr/share/ghostscript/7.07/**lib : >> /usr/share/ghostscript/fonts : >> /usr/share/ghostpcl/fonts >> >> >> (Note: this is an older version of gs but I don't think the output changed) >> >> >> Looking at the source of ghostpcl/ghostpdl shows that it at one point did >> use ':' to separate paths. >> >> http://git.ghostscript.com/?p=**ghostpdl.git;a=commit;f=pl/**pjparse.c;h=* >> *64a01c3a07371098ac4eecab0df660**81f638b0a4<http://git.ghostscript.com/?p=ghostpdl.git;a=commit;f=pl/pjparse.c;h=64a01c3a07371098ac4eecab0df66081f638b0a4> >> author Henry Stiles <[email protected]> >> Sun, 3 Sep 2000 20:42:24 +0200 (18:42 +0000) >> committer Henry Stiles <[email protected]> >> Sun, 3 Sep 2000 20:42:24 +0200 (18:42 +0000) >> commit 64a01c3a07371098ac4eecab0df660**81f638b0a4 >> >> Change to use `;' instead of ':' as a separator for the font path. >> >> git-svn-id: http://svn.ghostscript.com/** >> ghostpcl/trunk/ghostpcl@1189<http://svn.ghostscript.com/ghostpcl/trunk/ghostpcl@1189>06663e23-700e-0410-b217- >> **a244a6096597 >> >> >> Best regards, >> >> Bram >> >> >> ------------------------------**------------------------------**---- >> This message was sent using IMP, the Internet Messaging Program. >> >> >> ____________________ HylaFAX(tm) Developers Mailing List >> ____________________ >> To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-** >> bin/lsg2.cgi <http://lists.hylafax.org/cgi-bin/lsg2.cgi> >> On UNIX: mail -s unsubscribe >> hylafax-devel-request@hylafax.**org<[email protected]>< >> /dev/null >> >> > > > -- > Aidan Van Dyk Create like a god, > [email protected] command like a king, > http://www.highrise.ca/ work like a > slave. > > > > > ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. ____________________ HylaFAX(tm) Developers Mailing List ____________________ To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-bin/lsg2.cgi On UNIX: mail -s unsubscribe [email protected] < /dev/null