]> git.ipfire.org Git - thirdparty/HylaFAX.git/commitdiff
Use a private Fontmap.HylaFAX file of .pfb files
authorPatrice Fournier <pfournier@ifax.com>
Fri, 5 Mar 2010 18:53:32 +0000 (13:53 -0500)
committerAidan Van Dyk <mountie@cherry.home.highrise.ca>
Wed, 29 Jun 2011 13:34:42 +0000 (09:34 -0400)
If the existing Fontmap files do not provide the information to
find the default font, creates a private Fontmap.HylaFAX file
that will list all pfb fonts found to their font names. No
aliases are generated by this and every Fontmap file is searched
for any alias.

etc/faxsetup.sh.in

index 74bf0d417923430d85b7a31dbdaad011122fd0c7..a24d2fb57552f4f8e48b55afbb9b42f1bac32058 100644 (file)
@@ -1245,6 +1245,23 @@ if onClient; then
                        }       
                '
        }
+       genFontmap()
+       {
+           FONTMAP_FILE=$1
+           Note ""
+           Note "Generating Fontmap $FONTMAP_FILE."
+           Note ""
+
+           echo "% HylaFAX FontMap file generated by faxsetup on `date 2>/dev/null`" > $FONTMAP_FILE
+           for d in `echo $2 | $SED 's/:/ /g'`; do
+               if [ -d "$d" ]; then
+                   cd $d
+                   for f in `ls | grep '\.afm'`; do
+                       $AWK -F '[ ]' '/FontName/ {print "/"$2"\t("FILENAME")\t;"; exit}; // {}' $f >> $FONTMAP_FILE
+                   done
+               fi
+           done
+       }
        validateFont()
        {
            FONTNAME=$1
@@ -1261,7 +1278,7 @@ if onClient; then
                for d in `echo $FONTMAP_PATH | $SED 's/:/ /g'`; do
                    if [ -d "$d" ]; then
                        cd $d
-                       for f in Fontmap Fontmap.GS; do
+                       for f in Fontmap Fontmap.GS Fontmap.HylaFAX; do
                            if [ -f $f ]; then
                                OUTPUT=`$SED -n -e 's/^\/'$ALIAS'[      ]*\((\([^)]*\))\|\/\([^         ;]*\)\).*/\2\3/p' $f`
                                if [ -n "$OUTPUT" ]; then
@@ -1357,6 +1374,12 @@ END {print val}
        fi
        FOUND_FONTNAME=`getDefaultFont $FONTNAME $FONTMAP_PATH $FONT_PATH`
        if [ "$FOUND_FONTNAME" != "$FONTNAME" ]; then
+           genFontmap $DIR_LIBDATA/Fontmap.HylaFAX $FONT_PATH
+           FOUND_FONTNAME=`getDefaultFont $FONTNAME $FONTMAP_PATH:$DIR_LIBDATA $FONT_PATH`
+           if [ "$FOUND_FONTNAME" = "$FONTNAME" ]; then
+               # Font was found using our local Fontmap file
+               FONTMAP_PATH=$FONTMAP_PATH:$DIR_LIBDATA
+           else
                RUNTIME_PATH_AFM=`getGSFonts`
                if [ -n "$RUNTIME_PATH_AFM" ] && \
                        ( [ "$RUNTIME_PATH_AFM" != "$FONTMAP_PATH" ] || \
@@ -1365,7 +1388,15 @@ END {print val}
                    FONTMAP_PATH=$RUNTIME_PATH_AFM
                    FONT_PATH=$RUNTIME_PATH_AFM
                    FOUND_FONTNAME=`getDefaultFont $FONTNAME $FONTMAP_PATH $FONT_PATH`
+                   if [ "$FOUND_FONTNAME" != "$FONTNAME" ]; then
+                       FOUND_FONTNAME=`getDefaultFont $FONTNAME $FONTMAP_PATH:$DIR_LIBDATA $FONT_PATH`
+                       if [ -n "$FOUND_FONTNAME" ]; then
+                           # Font was found using our local Fontmap file
+                           FONTMAP_PATH=$FONTMAP_PATH:$DIR_LIBDATA
+                       fi
+                   fi
                fi
+           fi
        fi
 
        if [ -n "$FOUND_FONTNAME" ] && [ "$FOUND_FONTNAME" != "$FONTNAME" ]; then