update to 0.9.4

update MASTER_SITES
take maintainership

PR:		ports/57180
Submitted by:	statue@freebsd.sinica.edu.tw
This commit is contained in:
Vanilla I. Shu 2003-09-30 17:55:12 +00:00
parent baa90b8ff0
commit 419e5e3ae6
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=89912
8 changed files with 7 additions and 1652 deletions

View File

@ -6,20 +6,15 @@
#
PORTNAME= ttfm
PORTVERSION= 0.9.3
PORTREVISION= 3
PORTVERSION= 0.9.4
CATEGORIES= chinese print
MASTER_SITES= ftp://freebsd.sinica.edu.tw/pub/keith/ttfm/
MASTER_SITES= ftp://freebsd.sinica.edu.tw/pub/statue/ttfm/
MAINTAINER= keith@FreeBSD.org
MAINTAINER= statue@freebsd.sinica.edu.tw
COMMENT= A Big5/GB enhanced TrueType Font Manager
.include <bsd.port.pre.mk>
.if ${XFREE86_VERSION} == 4
RUN_DEPENDS= mkfontdir:${PORTSDIR}/x11/XFree86-4-clients
.endif
USE_FREETYPE= yes
LIB_DEPENDS= freetype.9:${PORTSDIR}/print/freetype2
FONTSDIR= ${PREFIX}/share/fonts/TrueType/
MODULESDIR= ${PREFIX}/share/ttfm/
@ -33,14 +28,11 @@ do-install:
.endfor
@${INSTALL_MAN} ${WRKSRC}/ttfm.sh.1 ${PREFIX}/man/man1
@${MKDIR} ${MODULESDIR}
.for module in abiword.ttfm gscjk.ttfm xfreetype.ttfm xttfm.ttfm
.for module in gscjk.ttfm xttfm.ttfm
@${INSTALL_SCRIPT} ${WRKSRC}/modules/${module} ${MODULESDIR}
.endfor
.for module in chitex.ttfm ghostscript6.ttfm ttf2pk.ttfm xttfm-tcl.ttfm
@${INSTALL_SCRIPT} ${WRKSRC}/modules/${module} ${MODULESDIR}/${module}.nop
.endfor
@${MKDIR} ${FONTSDIR}
MAN1= ttfm.sh.1
.include <bsd.port.post.mk>
.include <bsd.port.mk>

View File

@ -1 +1 @@
MD5 (ttfm-0.9.3.tar.gz) = fb9fb633adafa3523b5d4c222c848417
MD5 (ttfm-0.9.4.tar.gz) = 53c67a9d7ef5379ee7ddaec033ca5244

View File

@ -1,12 +0,0 @@
$FreeBSD$
--- Makefile 2002/03/14 07:35:10 1.1
+++ Makefile 2002/03/14 07:35:23
@@ -1,5 +1,5 @@
FREETYPE_BASE=/usr/local
-FREETYPE_INCL=$(FREETYPE_BASE)/include
+FREETYPE_INCL=$(FREETYPE_BASE)/include/freetype1
FREETYPE_LIB=$(FREETYPE_BASE)/lib
prefix=/usr

View File

@ -1,681 +0,0 @@
--- modules/abiword.ttfm.orig Sun Jun 2 14:22:27 2002
+++ modules/abiword.ttfm Sun Jun 2 14:22:57 2002
@@ -1,82 +1,56 @@
#!/bin/sh
-#
-# TTFM's module for AbiWord 0.7.12.
-#
-# This script is distributed under the revised BSD license.
-#
-# For any problem reports or suggestions, please contact
-# Jing-Tang Keith Jang <keith@FreeBSD.org>.
-#
-
-#
-# AbiWord searches the following subdirectories under fonts/ for fonts.dir:
-# $country, $country-$region, $encoding, $country-$region.$encoding. For
-# example, fonts/{zh, zh-TW, Big5, zh-TW.Big5} are all valid directories.
-# However, this module will only generate fonts/$encoding/fonts.dir for the
-# sake of simplicity.
-#
-# Here are the sample lines of a font in AbiWord's fonts.dir:
-#
-# Kai-Medium, -default-kai-medium-r-normal--0-0-0-0-c-0-big5-0, 880, 120, 1000
-# Kai-Medium, -default-kai-bold-r-normal--0-0-0-0-c-0-big5-0, 880, 120, 1000
-# Kai-Medium, -default-kai-medium-i-normal--0-0-0-0-c-0-big5-0, 880, 120, 1000
-# Kai-Medium, -default-kai-bold-i-normal--0-0-0-0-c-0-big5-0, 880, 120, 1000
-#
-# AbiWord uses the first field for printing, second field for displaying.
-# The last three fields are font's ascent, descent, and width, used when
-# printing.
-#
-# Because AbiWord follows normal X convention, there's no need that the font
-# must be TTF. But we'll only accept TTF here, since it's better in scaling.
-# CID fonts may be supported in the future, depending on the demanding.
-#
-
-# Name & version
-export NAME; NAME="AbiWord Font Manager"
-export VERSION; VERSION=0.9.3
+#/*
+# * Copyrighy (c) 2001 CLE Project. All rights reserved.
+# * Copyright (c) 2001 Chung-Yen Chang. All rights reserved.
+# * with Big5-HKSCS font support added by Anthony Fok
+# * thanks to ThizLinux Laboratory Ltd., Thiz Technology Group
+# *
+# * Redistribution and use in source and binary forms, with or without
+# * modification, are permitted provided that the following conditions
+# * are met:
+# * 1. Redistributions of source code must retain the above copyright
+# * notice, this list of conditions and the following disclaimer.
+# * 2. Redistributions in binary form must reproduce the above copyright
+# * notice, this list of conditions and the following disclaimer in the
+# * documentation and/or other materials provided with the distribution.
+# * 3. All advertising materials mentioning features or use of this software
+# * must display the following acknowledgement:
+# * This product includes software developed by
+# * Chih-Wei Huang and contributors for CLE Project
+# * 4. Neither the name of the Author nor the names of contributors
+# * may be used to endorse or promote products derived from this software
+# * without specific prior written permission.
+# *
+# *
+# * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# * SUCH DAMAGE.
+# */
# Global constants
+export TWABIFONTPATH; TWABIFONTPATH="/usr/X11R6/share/AbiSuite/fonts/zh-TW"
+export CNABIFONTPATH; CNABIFONTPATH="/usr/X11R6/share/AbiSuite/fonts/zh-CN"
+export HKABIFONTPATH; HKABIFONTPATH="/usr/X11R6/share/AbiSuite/fonts/zh-HK"
+export TEMPFILE; TEMPFILE="`mktemp /tmp/ttfm.tmpXXXXXX`"
+export DEFAULTPATH; DEFAULTPATH="/usr/local/share/fonts/TrueType"
+
+for i in $TWABIFONTPATH $CNABIFONTPATH $CNABIFONTPATH.GBK $HKABIFONTPATH; do
+ test -d $i || mkdir $i
+ test -f $i/fonts.dir || mkfontdir $i
+ touch $i/.already-in-fp
+done
-export PREFIX; PREFIX=/usr/local
-export X11BASE; X11BASE=/usr/X11R6
-export PATH; PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PREFIX/bin:$PREFIX/sbin:$X11BASE/bin
-export TEMPFILE; TEMPFILE="`mktemp /tmp/ttfm.tmpXXX`"
-export ABIFontPath; ABIFontPath=$PREFIX/AbiSuite/fonts
-export DefaultFontPath; DefaultFontPath=$PREFIX/share/fonts/TrueType
-export TTFM; TTFM=$PREFIX/bin/ttfm.sh
-export XTTFFONTPATH; XTTFFONTPATH="$X11BASE/lib/X11/fonts/TrueType"
-export GSMODULE; GSMODULE="ghostscript6"
-export XMODULE; XMODULE="xttfm"
-export TTFINFOPATH; TTFINFOPATH="$PREFIX/bin/ttfinfo"
-export DEFAULTMING_NAME; DEFAULTMING_NAME="default_ming"
-export DEFAULTKAI_NAME; DEFAULTKAI_NAME="default_kai"
-export PRINTPARAM; PRINTPARAM="880, 120, 1000"
-
-
-#
-# Encoding/Directory table, used to convert the XLFD of a font to AbiWord's
-# charset directories, and vice versa. Used by add_fonts().
-#
-export ed_table; ed_table=\
-"Big5,big5-0\n
-GB2312,gb2312.1980-0\n
-KSC5601,ksc5601.1987-0\n
-JISX0208,jisx0208.1983-0\n
-JISX0212,jisx0212.1990-0\n"
-
-
-#
-# Encoding/Postscript name table, used to convert a font's XLFD encoding
-# to its frequently used Postscript name. I'm not sure if the entries
-# are correct, except Big5.
-#
-export ep_table; ep_table=\
-"big5-0,B5pc-H\n
-gb2312.1980-0,GBpc-EUC-H\n
-ksc5601.1987-0,KSCpc-EUC-H\n
-jisx0208.1983-0,EUC-H\n
-jisx0212.1990-0,Hojo-EUC-H\n"
-
+# Name & version
+export NAME; NAME="AbiWord 1.0.1 TrueType Font Manager"
+export VERSION; VERSION=1.0
# Who am I?
print_name()
@@ -84,7 +58,6 @@
echo "$NAME $VERSION"
}
-
# Usage
Usage()
{
@@ -96,204 +69,275 @@
echo " --add <file>... install ttf font"
echo " --remove <file>... remove ttf font from the system"
echo " --list list all ttf fonts on the system"
- echo " --setdefault <file> "
- echo " set default font to file"
- echo " --setdefault_kai <file> "
- echo " set default \kai font to file"
- echo " --setdefault_ming <file> "
- echo " set default \ming font to file"
echo " --help show this info"
echo
}
-check_abiword()
-{
- if [ ! -d $ABIFontPath ]; then
- mkdir -p $ABIFontPath
- fi
- fontsdirlist=`find $ABIFontPath -name fonts.dir`
-}
-
-
-#
-# List all fonts installed under $AbiFontPath
-#
-# I'm not sure if font filenames should also be displayed, since the XLFD
-# may be provided from xfs.
-#
+# List all ttf fonts installed in $ABIFONTPATH
list_fonts()
{
- if [ "X$fontsdirlist" = "X" ]; then
- echo "No fonts installed."
+ if [ -f ${TWABIFONTPATH}/fonts.dir -o -f ${CNABIFONTPATH}/fonts.dir \
+ -o -f ${HKABIFONTPATH}/fonts.dir ]; then
+ echo "Installed TTF fonts:"
+ if [ -f ${TWABIFONTPATH}/fonts.dir ]; then
+ awk -F, 'FNR>1 {print $1,$2}' ${TWABIFONTPATH}/fonts.dir
+ fi
+ if [ -f ${CNABIFONTPATH}/fonts.dir ]; then
+ awk -F, 'FNR>1 {print $1,$2}' ${CNABIFONTPATH}/fonts.dir
+ fi
+ if [ -f ${CNABIFONTPATH}.GBK/fonts.dir ]; then
+ awk -F, 'FNR>1 {print $1,$2}' ${CNABIFONTPATH}.GBK/fonts.dir
+ fi
+ if [ -f ${HKABIFONTPATH}/fonts.dir ]; then
+ awk -F, 'FNR>1 {print $1,$2}' ${HKABIFONTPATH}/fonts.dir
+ fi
+ echo
else
- for f in $fontsdirlist; do
- echo "In `dirname $f`:"
- sed -e '1d' $f |cut -d ',' -f 1 |sort |uniq
- echo
- done
+ echo "No TTF fonts installed!"
fi
}
+# Get ttfinfo
+get_ttfinfo()
+{
+ TTFINFO="/usr/local/bin/ttfinfo"
+ if [ "z$TTFINFO" = "z" ]; then
+ echo "ttfinfo not found, aborted!"
+ exit 3
+ fi
+ eval `$TTFINFO $1`
+}
-#
-# Remove ttf fonts. It accepts PS or TTF arguments, eg.
-# remove_fonts DefaultMingB5-Regular(series), or
-# remove_fonts /usr/local/share/fonts/TrueType/bsmi00lp.ttf.
-#
-# We won't delete font files, since the AbiWord module solely
-# depends on other modules like xttfm or ghostscript6, font
-# files should be managed by them, not here.
-#
-remove_fonts()
+# Get Unicode fontmap
+get_unicode_fontmap()
{
- for f in $@; do
- case $f in
- *.[Tt][Tt][CcFf])
- i=`basename $f`
- psnamelist=`$TTFM --list $GSMODULE |grep $i |cut -d '(' -f 1`
- if [ -z "$psnamelist" ]; then
- echo "$f is not installed"
- continue
- else
- for psname in $psnamelist; do
- for fontsdir in $fontsdirlist; do
- sed -e "/^$psname/d" $fontsdir > $TEMPFILE
- num=`cat $TEMPFILE |wc -l`
- num=`expr $num - 1`
- sed -e "1s/.*/$num/g" $TEMPFILE > $fontsdir
- done
- done
- fi
- ;;
- *)
- for fontsdir in $fontsdirlist; do
- sed -e "/$f/d" $fontsdir > $TEMPFILE
- num=`cat $TEMPFILE |wc -l`
- num=`expr $num - 1`
- sed -e "1s/.*/$num/g" $TEMPFILE > $fontsdir
- done
- ;;
- esac
+ j=1; n=0
+ while [ $j -le $TTFINFO_MAPNUM ]; do
+ eval "fontmap=\$TTFINFO_FONTMAP$j"
+ if (echo $fontmap | grep -q big5); then
+ eval "NAMEEXT$n=_big5; TBL$n=UBig5"; n=$(($n+1))
+ elif (echo $fontmap | grep -q gb); then
+ eval "NAMEEXT$n=_gb; TBL$n=UGB"; n=$(($n+1))
+ elif (echo $fontmap | grep -q jisx0208); then
+ eval "NAMEEXT$n=_jis; TBL$n=UJIS"; n=$(($n+1))
+ elif (echo $fontmap | grep -q ksc5601); then
+ eval "NAMEEXT$n=_ksc; TBL$n=UKS"; n=$(($n+1))
+ fi
+ j=$(($j+1))
+ done
+ # do not append ext if only one fontmap found
+ [ $n -eq 1 ] && NAMEEXT0=""
+
+ j=0
+ while [ $j -lt $n ]; do
+ eval "NAME$j=$font\$NAMEEXT$j"
+ j=$(($j+1))
done
}
-#
# Add ttf fonts
-#
-# This script won't do the low-level work for both X Window or Ghostscript,
-# such as adding fonts.dir or ps font entries. It just calls $TTFM with
-# appropriate modules. All file handlings will be managed by those modules.
-#
add_fonts()
{
- for addfile in $@; do
- # Some sanity checking
- if [ ! -r "$addfile" ]; then
- echo "$addfile does not exist, skipped."
- continue
- fi
- if [ -z "`echo $addfile |grep -i -e ".*tt[cf]$"`" ]; then
- echo "$addfile is not a TTF, skipped."
- continue
- fi
- # Those modules will manage if fonts are already installed.
- $TTFM --add $XMODULE $addfile
- $TTFM --add $GSMODULE $addfile
-
- f="`basename "$addfile"`"
- xlfd="`$TTFM --list $XMODULE |grep $f |sed -e "/iso/d" -e "s/$f //g" |sort |uniq`"
- encoding=`echo $xlfd |cut -d '-' -f 14-15`
- subdir="`printf "$ed_table" |awk -F "," -v i=$encoding '{dir[$2]=$1} END {print dir[i]}'`"
- cidname="`$TTFM --list $GSMODULE |grep $f |cut -d '(' -f 1 |sed -e "/^Default/d"`"
- psname="$cidname"-"`printf "$ep_table" |awk -F "," -v i=$encoding '{ps[$1]=$2} END {print ps[i]}'`"
-
- if [ ! -d $ABIFontPath/$subdir ]; then
- mkdir -p $ABIFontPath/$subdir
- fi
- touch $ABIFontPath/$subdir/.already-in-fp
- if [ ! -r $ABIFontPath/$subdir/fonts.dir ]; then
- echo 0 > $ABIFontPath/$subdir/fonts.dir
- fi
- num=`head -1 $ABIFontPath/$subdir/fonts.dir`
- cp $ABIFontPath/$subdir/fonts.dir $TEMPFILE
- # There may be spaces in $xlfd, quote it.
- abifont="$psname, $xlfd, $PRINTPARAM"
- echo $abifont >> $TEMPFILE
- echo $abifont |sed -e "s/-medium-r-/-bold-r-/g" >> $TEMPFILE
- echo $abifont |sed -e "s/-medium-r-/-medium-i-/g" >> $TEMPFILE
- echo $abifont |sed -e "s/-medium-r-/-bold-i-/g" >> $TEMPFILE
- num=`cat $TEMPFILE |wc -l`
- num=`expr $num - 1`
- sed -e "1s/.*/$num/g" $TEMPFILE > $ABIFontPath/$subdir/fonts.dir
+ error=0
+ for f in "$@"; do
+ if [ ! -e "$f" ]; then
+ if [ -e "$DEFAULTPATH/$f" ]; then
+ f="$DEFAULTPATH/$f"
+ else
+ echo "Cannot find font $f, ignored!"
+ error=$(($error+1))
+ continue
+ fi
+ fi
+
+ fontfile=`basename $f`
+ eval `echo $fontfile | awk -F. '{ printf "font=%s;ext=%s",\$1,\$2 }'`
+
+ get_ttfinfo $f
+ i=1
+ while [ $i -le $TTFINFO_MAPNUM ]; do
+ eval I1=\$TTFINFO_FONTMAP${i}
+ I2=`echo $I1|sed -e s/medium-r/bold-r/`
+ I3=`echo $I1|sed -e s/medium-r/medium-i/`
+ I4=`echo $I1|sed -e s/medium-r/bold-i/`
+ J1=`echo $I1|cut -c2-`
+ J2=`echo $I2|cut -c2-`
+ J3=`echo $I3|cut -c2-`
+ J4=`echo $I4|cut -c2-`
+ MYENC=`echo $I1 | awk -F- '{print $14}'`
+ case $MYENC in
+ big5)
+ # zh-TW
+ grep -v "$J1" $TWABIFONTPATH/fonts.dir |grep -v "$J2" |grep -v "$J3" |grep -v "$J4" |sed -e "1d" > $TEMPFILE.1
+ echo "${TTFINFO_FONT_PSNAME}-ETen-B5-H, $I1, 880, 120, 1000" > $TEMPFILE.2
+ echo "${TTFINFO_FONT_PSNAME}-Bold-ETen-B5-H, $I2, 880, 120, 1000" >> $TEMPFILE.2
+ echo "${TTFINFO_FONT_PSNAME}-Italic-ETen-B5-H, $I3, 880, 120, 1000" >> $TEMPFILE.2
+ echo "${TTFINFO_FONT_PSNAME}-BoldItalic-ETen-B5-H, $I4, 880, 120, 1000" >> $TEMPFILE.2
+ if [ "$TTFINFO_FONT_PSNAME" = "ShanHeiSun-Light" ]; then
+ cat $TEMPFILE.2 $TEMPFILE.1 > $TEMPFILE
+ else
+ cat $TEMPFILE.1 $TEMPFILE.2 > $TEMPFILE
+ fi
+ LINE=`wc -l < $TEMPFILE`
+ echo $LINE > $TWABIFONTPATH/fonts.dir
+ cat $TEMPFILE >> $TWABIFONTPATH/fonts.dir
+ # zh-HK
+ I1=`echo $I1 | sed -e 's/-big5-0$/-big5hkscs-0/'`
+ I2=`echo $I2 | sed -e 's/-big5-0$/-big5hkscs-0/'`
+ I3=`echo $I3 | sed -e 's/-big5-0$/-big5hkscs-0/'`
+ I4=`echo $I4 | sed -e 's/-big5-0$/-big5hkscs-0/'`
+ J1=`echo $I1|cut -c2-`
+ J2=`echo $I2|cut -c2-`
+ J3=`echo $I3|cut -c2-`
+ J4=`echo $I4|cut -c2-`
+ grep -v "$J1" $HKABIFONTPATH/fonts.dir |grep -v "$J2" |grep -v "$J3" |grep -v "$J4" |sed -e "1d" > $TEMPFILE
+ grep -i '[[:space:]]\+-[^-]\+-[^-]\+HKSCS-' $TEMPFILE > $TEMPFILE.1
+ grep -vi '[[:space:]]\+-[^-]\+-[^-]\+HKSCS-' $TEMPFILE > $TEMPFILE.2
+ echo "${TTFINFO_FONT_PSNAME}-HKscs-B5-H, $I1, 880, 120, 1000" > $TEMPFILE.3
+ echo "${TTFINFO_FONT_PSNAME}-Bold-HKscs-B5-H, $I2, 880, 120, 1000" >> $TEMPFILE.3
+ echo "${TTFINFO_FONT_PSNAME}-Italic-HKscs-B5-H, $I3, 880, 120, 1000" >> $TEMPFILE.3
+ echo "${TTFINFO_FONT_PSNAME}-BoldItalic-HKscs-B5-H, $I4, 880, 120, 1000" >> $TEMPFILE.3
+ if ( echo $I1 | grep -qi '^-[^-]\+-[^-]*HKSCS-' ); then
+ if [ "$TTFINFO_FONT_PSNAME" = "InnMing-Light" ]; then
+ cat $TEMPFILE.3 $TEMPFILE.1 $TEMPFILE.2 > $TEMPFILE
+ else
+ cat $TEMPFILE.1 $TEMPFILE.3 $TEMPFILE.2 > $TEMPFILE
+ fi
+ elif [ "$TTFINFO_FONT_PSNAME" = "ShanHeiSun-Light" ]; then
+ cat $TEMPFILE.1 $TEMPFILE.3 $TEMPFILE.2 > $TEMPFILE
+ else
+ cat $TEMPFILE.1 $TEMPFILE.2 $TEMPFILE.3 > $TEMPFILE
+ fi
+ LINE=`wc -l < $TEMPFILE`
+ echo $LINE > $HKABIFONTPATH/fonts.dir
+ cat $TEMPFILE >> $HKABIFONTPATH/fonts.dir
+ ;;
+ gb2312.1980)
+ # zh-CN
+ grep -v "$J1" $CNABIFONTPATH/fonts.dir|grep -v "$J2"|grep -v "$J3"|grep -v "$J4"|sed -e "1d" > $TEMPFILE
+ echo "${TTFINFO_FONT_PSNAME}-GB-EUC-H, $I1, 880, 120, 1000" >> $TEMPFILE
+ echo "${TTFINFO_FONT_PSNAME}-Bold-GB-EUC-H, $I2, 880, 120, 1000" >> $TEMPFILE
+ echo "${TTFINFO_FONT_PSNAME}-Italic-GB-EUC-H, $I3, 880, 120, 1000" >> $TEMPFILE
+ echo "${TTFINFO_FONT_PSNAME}-BoldItalic-GB-EUC-H, $I4, 880, 120, 1000" >> $TEMPFILE
+ LINE=`wc -l < $TEMPFILE`
+ echo $LINE > $CNABIFONTPATH/fonts.dir
+ cat $TEMPFILE >> $CNABIFONTPATH/fonts.dir
+ # zh-CN.GBK
+ I1=`echo $I1 | sed -e 's/-gb2312.1980-0$/-gbk-0/'`
+ I2=`echo $I2 | sed -e 's/-gb2312.1980-0$/-gbk-0/'`
+ I3=`echo $I3 | sed -e 's/-gb2312.1980-0$/-gbk-0/'`
+ I4=`echo $I4 | sed -e 's/-gb2312.1980-0$/-gbk-0/'`
+ J1=`echo $I1|cut -c2-`
+ J2=`echo $I2|cut -c2-`
+ J3=`echo $I3|cut -c2-`
+ J4=`echo $I4|cut -c2-`
+ grep -v "$J1" $CNABIFONTPATH.GBK/fonts.dir |grep -v "$J2" |grep -v "$J3" |grep -v "$J4" |sed -e "1d" > $TEMPFILE
+ echo "${TTFINFO_FONT_PSNAME}-GBK-EUC-H, $I1, 880, 120, 1000" >> $TEMPFILE
+ echo "${TTFINFO_FONT_PSNAME}-Bold-GBK-EUC-H, $I2, 880, 120, 1000" >> $TEMPFILE
+ echo "${TTFINFO_FONT_PSNAME}-Italic-GBK-EUC-H, $I3, 880, 120, 1000" >> $TEMPFILE
+ echo "${TTFINFO_FONT_PSNAME}-BoldItalic-GBK-EUC-H, $I4, 880, 120, 1000" >> $TEMPFILE
+ LINE=`wc -l < $TEMPFILE`
+ echo $LINE > $CNABIFONTPATH.GBK/fonts.dir
+ cat $TEMPFILE >> $CNABIFONTPATH.GBK/fonts.dir
+ ;;
+# ksc5601.1987)
+# echo
+# ;;
+# jisx0208.1983|jisx0201.1976)
+# echoC "todo"
+# ;;
+ esac
+ i=$(($i+1)) # Linux should use bash...:)
+ done
done
+ return $error
}
-#
-# Set default font, accept kai or ming(default) only, all others will be
-# treated as ming, eg.
-# "setdefault kai /usr/local/share/fonts/TrueType/bkai00mp.ttf".
-#
-# setdefault() causes chain effects, ie. setdefault() in AbiWord WILL
-# make that font default both in X Window or Ghostscript. While we can
-# make AbiWord's default font an ordinary TTF in X Window, it's hard
-# to do so do so with Ghostscript.
-#
-# One implication of this behaviour is that the default fonts of Abiword,
-# Ghostscript, and X Window have to be the same. If they're not in sync,
-# strange problems may arise.
-#
-setdefault()
+# Remove ttf fonts
+remove_fonts()
{
- face=$1
- addfile=$2
- # Some sanity checking
- if [ ! -r "$addfile" ]; then
- echo "$addfile does not exist, skipped."
- continue
- fi
- if [ -z "`echo $addfile |grep -i -e ".*tt[cf]$"`" ]; then
- echo "$addfile is not a TTF, skipped."
- continue
- fi
- # Those modules will manage if fonts are already installed.
- $TTFM --add $XMODULE $addfile
- $TTFM --add $GSMODULE $addfile
- if [ "$face" = "kai" ]; then
- $TTFM --setdefault_kai $XMODULE $addfile
- $TTFM --setdefault_kai $GSMODULE $addfile
- else
- $TTFM --setdefault $XMODULE $addfile
- $TTFM --setdefault $GSMODULE $addfile
- fi
-
- f="`basename "$addfile"`"
- # We know it's default, but which encoding is unknown.
- xlfd="`$TTFM --list $XMODULE |grep $f |sed -e "/iso/d" -e "s/$f //g" |sort |uniq`"
- encoding=`echo $xlfd |cut -d '-' -f 14-15`
- subdir="`printf "$ed_table" |awk -F "," -v i=$encoding '{dir[$2]=$1} END {print dir[i]}'`"
- cidname="`$TTFM --list $GSMODULE |grep -e "^Default.*$f" |cut -d '(' -f 1`"
- psname="$cidname"-"`printf "$ep_table" |awk -F "," -v i=$encoding '{ps[$1]=$2} END {print ps[i]}'`"
-
- if [ ! -d $ABIFontPath/$subdir ]; then
- mkdir -p $ABIFontPath/$subdir
- fi
- touch $ABIFontPath/$subdir/.already-in-fp
- if [ ! -r $ABIFontPath/$subdir/fonts.dir ]; then
- echo 0 > $ABIFontPath/$subdir/fonts.dir
- fi
- cp $ABIFontPath/$subdir/fonts.dir $TEMPFILE
- # There may be spaces in $xlfd, quote it.
- abifont="$psname, $xlfd, $PRINTPARAM"
- echo $abifont >> $TEMPFILE
- echo $abifont |sed -e "s/-medium-r-/-bold-r-/g" >> $TEMPFILE
- echo $abifont |sed -e "s/-medium-r-/-medium-i-/g" >> $TEMPFILE
- echo $abifont |sed -e "s/-medium-r-/-bold-i-/g" >> $TEMPFILE
- num=`cat $TEMPFILE |wc -l`
- num=`expr $num - 1`
- sed -e "1s/.*/$num/g" $TEMPFILE > $ABIFontPath/$subdir/fonts.dir
+ error=0
+ for f in "$@"; do
+ if [ ! -e "$f" ]; then
+ if [ -e "$DEFAULTPATH/$f" ]; then
+ f="$DEFAULTPATH/$f"
+ else
+ echo "Cannot find font $f, ignored!"
+ error=$(($error+1))
+ continue
+ fi
+ fi
+
+ fontfile=`basename $f`
+ eval `echo $fontfile | awk -F. '{ printf "font=%s;ext=%s",\$1,\$2 }'`
+
+ get_ttfinfo $f
+ i=1
+ while [ $i -le $TTFINFO_MAPNUM ]; do
+ eval I1=\$TTFINFO_FONTMAP${i}
+ I2=`echo $I1|sed -e s/medium-r/bold-r/`
+ I3=`echo $I1|sed -e s/medium-r/medium-i/`
+ I4=`echo $I1|sed -e s/medium-r/bold-i/`
+ J1=`echo $I1|cut -c2-`
+ J2=`echo $I2|cut -c2-`
+ J3=`echo $I3|cut -c2-`
+ J4=`echo $I4|cut -c2-`
+ MYENC=`echo $I1 | awk -F- '{print $14}'`
+ case $MYENC in
+ big5)
+ # zh-TW
+ grep -v "$J1" $TWABIFONTPATH/fonts.dir |grep -v "$J2" |grep -v "$J3" |grep -v "$J4" |sed -e "1d" > $TEMPFILE
+ LINE=`wc -l < $TEMPFILE`
+ echo $LINE > $TWABIFONTPATH/fonts.dir
+ cat $TEMPFILE >> $TWABIFONTPATH/fonts.dir
+ # zh-HK
+ I1=`echo $I1 | sed -e 's/-big5-0$/-big5hkscs-0/'`
+ I2=`echo $I2 | sed -e 's/-big5-0$/-big5hkscs-0/'`
+ I3=`echo $I3 | sed -e 's/-big5-0$/-big5hkscs-0/'`
+ I4=`echo $I4 | sed -e 's/-big5-0$/-big5hkscs-0/'`
+ J1=`echo $I1|cut -c2-`
+ J2=`echo $I2|cut -c2-`
+ J3=`echo $I3|cut -c2-`
+ J4=`echo $I4|cut -c2-`
+ grep -v "$J1" $HKABIFONTPATH/fonts.dir |grep -v "$J2" |grep -v "$J3" |grep -v "$J4" |sed -e "1d" > $TEMPFILE
+ LINE=`wc -l < $TEMPFILE`
+ echo $LINE > $HKABIFONTPATH/fonts.dir
+ cat $TEMPFILE >> $HKABIFONTPATH/fonts.dir
+ ;;
+ gb2312.1980)
+ # zh-CN
+ grep -v "$J1" $CNABIFONTPATH/fonts.dir|grep -v "$J2"|grep -v "$J3"|grep -v "$J4"|sed -e "1d" > $TEMPFILE
+ LINE=`wc -l < $TEMPFILE`
+ echo $LINE > $CNABIFONTPATH/fonts.dir
+ cat $TEMPFILE >> $CNABIFONTPATH/fonts.dir
+ # zh-CN.GBK
+ I1=`echo $I1 | sed -e 's/-gb2312.1980-0$/-gbk-0/'`
+ I2=`echo $I2 | sed -e 's/-gb2312.1980-0$/-gbk-0/'`
+ I3=`echo $I3 | sed -e 's/-gb2312.1980-0$/-gbk-0/'`
+ I4=`echo $I4 | sed -e 's/-gb2312.1980-0$/-gbk-0/'`
+ J1=`echo $I1|cut -c2-`
+ J2=`echo $I2|cut -c2-`
+ J3=`echo $I3|cut -c2-`
+ J4=`echo $I4|cut -c2-`
+ grep -v "$J1" $CNABIFONTPATH.GBK/fonts.dir |grep -v "$J2" |grep -v "$J3" |grep -v "$J4" |sed -e "1d" > $TEMPFILE
+ LINE=`wc -l < $TEMPFILE`
+ echo $LINE > $CNABIFONTPATH.GBK/fonts.dir
+ cat $TEMPFILE >> $CNABIFONTPATH.GBK/fonts.dir
+ ;;
+# ksc5601.1987)
+# echo
+# ;;
+# jisx0208.1983|jisx0201.1976)
+# echoC "todo"
+# ;;
+ esac
+ i=$(($i+1)) # Linux should use bash...:)
+ done
+ done
+ return $error
}
@@ -306,8 +350,6 @@
exit 1
fi
-check_abiword
-
ARG=$1
shift 1
@@ -316,52 +358,36 @@
Usage
;;
--name)
+ echo
echo "$NAME $VERSION"
+ echo
;;
--list)
list_fonts
;;
--add)
if [ $# -lt 1 ]; then
- echo "Missing font filename argument."
+ echo "Missing font filename argument!"
Usage
exit 1
fi
add_fonts $@
- echo "Adding $@."
+ echo "Done!"
;;
--remove)
if [ $# -lt 1 ]; then
- echo "Missing font filename argument."
+ echo "Missing font filename argument!"
Usage
exit 1
fi
remove_fonts $@
- echo "Removing $@."
+ echo "Done!"
;;
--setdefault|--setdefault_ming)
- if [ $# -lt 1 ]; then
- echo "Missing font filename arguments."
- Usage
- exit 1
- elif [ $# -gt 1 ]; then
- echo "Only need one font filename."
- Usage
- exit 1
- fi
- setdefault ming $1
+ echo "No need to set default fonts"
;;
--setdefault_kai)
- if [ $# -lt 1 ]; then
- echo "Missing font filename arguments."
- Usage
- exit 1
- elif [ $# -gt 1 ]; then
- echo "Only need one font filename."
- Usage
- exit 1
- fi
- setdefault kai $1
+ echo "No need to set default fonts"
;;
*)
Usage
@@ -369,7 +395,18 @@
;;
esac
-rm -f $TEMPFILE
+rm -f $TEMPFILE $TEMPFILE.1 $TEMPFILE.2 $TEMPFILE.3
exit 0
+# ChangeLog
+#
+# * Fri Jan 12 2001 Chung-Yen Chang <candyz@cle.linux.org.tw>
+# - first release
+#
+# * Tue Sep 4 2001 Anthony Fok <anthony@thizlinux.com>
+# - Added Big5-HKSCS font support thanks to ThizLinux Laboratory Ltd., Thiz
+# Technology Group. Also added preliminary GBK support
+# - Use the _real_ PostScript font names, and with Bold, Italic and BoldItalic
+# - List InnMing-Light / HKSCS (zh_HK) or ShanHeiSun-Light (zh_TW) first
+#

View File

@ -1,763 +0,0 @@
--- modules/gscjk.ttfm.orig Sun Jun 2 03:40:13 2002
+++ modules/gscjk.ttfm Sun Jun 2 03:39:59 2002
@@ -0,0 +1,760 @@
+#!/bin/sh
+#
+# TTFM module for Ghostscript 6.51 with GS-CJK
+#
+# This script is distributed under the revised BSD license.
+#
+# For any problem reports or suggestions, please contact
+# Chung-Yen Chang <candyz@linux.org.tw>,
+# Anthony Fok <anthony@thizlinux.org>
+# or the original author Jing-Tang Keith Jang <keith@FreeBSD.org>.
+#
+
+# This script can handle both CID and TrueType fonts.
+
+# Name & version
+export NAME; NAME="Ghostscript 7.06 TTF Font Manager"
+export VERSION; VERSION=1.0
+
+# Global constants
+
+export PREFIX; PREFIX=/usr/local
+export TTFINFOPath; TTFINFOPath="${PREFIX}/bin/ttfinfo"
+export GS6Path; GS6Path="${PREFIX}/share/ghostscript"
+export GS6CJKPath; GS6CJKPath="${GS6Path}/Resource"
+export CJKCMapPath; CJKCMapPath="${GS6CJKPath}/CMap"
+export CJKFontPath; CJKFontPath="${GS6CJKPath}/Font"
+export CJKCIDPath; CJKCIDPath="${GS6CJKPath}/CIDFont"
+# Not used
+# export CJKTTFPath; CJKTTFPath="${GS6CJKPath}/TrueType"
+export GS6LibPath; GS6LibPath="${GS6Path}/7.06/lib"
+export DefaultMing_Name; DefaultMing_Name="DEFAULT-MING"
+export DefaultKai_Name; DefaultKai_Name="DEFAULT-KAI"
+export TEMPFILE; TEMPFILE="`mktemp /tmp/ttfm.tmpXXXXXX`"
+
+# Encoding/Ordering table, used to convert the output of ttfinfo(encoding)
+# to CID font's ordering property, and vice versa. See guess_ttf_info()
+# below.
+#
+export eo_table; eo_table=\
+"Adobe CNS1,big5-0\n
+Adobe GB1,gb2312.1980-0\n
+Adobe Korea1,ksc5601.1987-0\n
+Adobe Japan1,jisx0208.1983-0\n
+Adobe Japan2,jisx0212.1990-0\n"
+
+# Postscript command to open TTFs, defined in gs_ttf.ps.
+# It needs gs_ttf.ps-cjkv-*.patch of http://www.aihara.co.jp/~taiji/tops/.
+export OpenTTFont; OpenTTFont=.openttcidfont
+
+# Who am I?
+print_name()
+{
+ echo "$NAME $VERSION"
+}
+
+
+# Usage
+Usage()
+{
+ echo
+ echo "$NAME $VERSION"
+ echo
+ echo "Usage: $NAME [option]"
+ echo
+ echo " --check check Ghostscript 7.06 settings"
+ echo " --add <file>... install CID font"
+ echo " --add [alias=]<file>... install TTF font"
+ echo " --remove <file>... remove font from the system"
+ echo " --list list all fonts on the system"
+ echo " --setdefault <file>"
+ echo " set default font to file"
+ echo " --setdefault_kai <file>"
+ echo " set default \kai font to file"
+ echo " --setdefault_ming <file>"
+ echo " set default \ming font to file"
+ echo " --help show this info"
+ echo
+}
+
+
+#
+# Check if CJK CMap files are correctly installed with Ghostscript 6.
+# Give a warning if Adobe CNS1/GB1/Identity/Japan1/Japan2/Korea1 is not found.
+#
+# We'll also check gs_res.ps & gs_ttf.ps.
+#
+check_gs6()
+{
+ if [ ! -x $TTFINFOPath ]; then
+ echo "ttfinfo not installed!"
+ exit 1
+ fi
+
+ if [ ! -d "${CJKCMapPath}" ]; then
+ echo "Error: You have no CMap files installed!"
+ exit 1
+ fi
+
+ # ac1
+ if [ -z "`grep -l "Adobe CNS1" ${CJKCMapPath}/*`" ]; then
+ echo "Warning: Adobe-CNS1-3 CMap files not installed!"
+ # ag1
+ elif [ -z "`grep -l "Adobe GB1" ${CJKCMapPath}/*`" ]; then
+ echo "Warning: Adobe-GB1-3 CMap files not installed!"
+ # aj1
+ elif [ -z "`grep -l "Adobe Japan1" ${CJKCMapPath}/*`" ]; then
+ echo "Warning: Adobe-Japan1-4 CMap files not installed!"
+ # aj2
+ elif [ -z "`grep -l "Adobe Japan2" ${CJKCMapPath}/*`" ]; then
+ echo "Warning: Adobe-Japan2-0 CMap files not installed!"
+ # ak1
+ elif [ -z "`grep -l "Adobe Korea1" ${CJKCMapPath}/*`" ]; then
+ echo "Warning: Adobe-Korea1-2 CMap files not installed!"
+ # I'm not sure if it's needed, so just a warning if not found.
+ elif [ -z "`grep -l "Adobe Identity" ${CJKCMapPath}/*`" ]; then
+ echo "Warning: Adobe Identity CMap files not installed!"
+ fi
+
+ # These two conditions are pretty weak. :-)
+ if [ -z "`grep -l "Taiji Yamada" ${GS6LibPath}/gs_ttf.ps`" ]; then
+ echo "Error: Your gs_ttf.ps is not patched."
+ echo "See http://www.aihara.co.jp/~taiji/tops/ for details."
+ exit 1
+ elif [ -n "`grep -l -e "/FontResourceDir (/Resource/Font/)\|/FontResourceDir (/Resource/Font/)" ${GS6LibPath}/gs_res.ps`" ]; then
+ echo "Error: Please modify FontResourceDir or FontResourceDir in gs_res.ps."
+ echo "See http://www.aihara.co.jp/~taiji/tops/ for details."
+ exit 1
+ fi
+
+ echo "No errors found."
+}
+
+
+# List all fonts installed in ${CJKFontPath}, cross-referenced with those
+# fonts installed in ${CJKCIDPath}.
+list_fonts()
+{
+ echo "Installed TTF fonts:"
+ for CIDFont in `ls ${CJKCIDPath}`; do
+ echo "${CIDFont}:"
+ cd ${CJKFontPath}; ls ${CIDFont}* 2>/dev/null
+ echo
+ done
+}
+
+
+# Remove fonts
+remove_fonts()
+{
+ for f in "$@"; do
+ targetname=`basename $f`
+
+ rm -f ${CJKCIDPath}/${targetname} ${CJKFontPath}/${targetname}*
+ done
+}
+
+
+#
+# guess_ttf_info <fontfile>, eg. guess_ttf_info bsmi00lp.ttf.
+#
+# Guess the alias of a ttf, and put it in $TTF_ALIAS.
+# Guess which index to use, and put it in $TTF_INDEX.
+# Guess which ordering a ttf should use, eg. "Adobe CNS1" for bsmi00lp.ttf.
+# Then put the ordering in $TTF_ORDERING.
+#
+# Simply put, we guess everything. :-)
+#
+guess_ttf_info()
+{
+ targetname=$1
+
+ eval `$TTFINFOPath -c ${targetname}`
+ # Set fontname from the filename if it's unknown.
+ # I assume there's no ttf filename like "-----.ttf".
+ unset HKSCS
+ ( echo $TTFINFO_FONT_NAME | grep -qi HKSCS ) && export HKSCS=1
+ if [ "$TTFINFO_FONT_NAME" = "unknown" ]; then
+ TTFINFO_FONT_NAME=`basename $targetname |cut -d "." -f 1 |sed -e "s/-//g"`
+ fi
+
+ # Extract slant/property/encoding, then install.
+ MAPNUM=1
+ while [ $MAPNUM -le $TTFINFO_MAPNUM ]; do
+ eval TTFINFO_FONTMAP=\$TTFINFO_FONTMAP${MAPNUM}
+ fontweight=`echo $TTFINFO_FONTMAP |cut -d "-" -f 4`
+ fontslant=`echo $TTFINFO_FONTMAP |cut -d "-" -f 5`
+ encoding1=`echo $TTFINFO_FONTMAP |cut -d "-" -f 14`
+ encoding2=`echo $TTFINFO_FONTMAP |cut -d "-" -f 15`
+ fontencoding=${encoding1}-${encoding2}
+
+ if [ -n "`echo ${fontencoding} |grep -i -e "big5\|cns\|gb\|ksc\|jis"`" ]; then
+ break
+ fi
+
+ MAPNUM=`expr $MAPNUM + 1`
+ done
+
+ if [ -z "`echo ${fontencoding} |grep -i -e "big5\|cns\|gb\|ksc\|jis"`" ]; then
+ echo "${targetname}" is not a CJK TTF!
+ exit 1
+ fi
+
+ # The first characters of foundry & font names should be uppercase.
+ i=`echo "$TTFINFO_FOUNDRY_NAME" |cut -b 1`
+ j=`echo $i |tr [:lower:] [:upper:]`
+ TTFINFO_FOUNDRY_NAME=`echo $TTFINFO_FOUNDRY_NAME |sed -e "s/^$i/$j/"`
+ i=`echo "$TTFINFO_FONT_NAME" |cut -b 1`
+ j=`echo $i |tr [:lower:] [:upper:]`
+ TTFINFO_FONT_NAME=`echo $TTFINFO_FONT_NAME |sed -e "s/^$i/$j/"`
+
+ # Alias property. The first two are in favor of Chinese TTFs.
+ # We'll also strip any spaces in foundry and font names.
+ TTFINFO_FOUNDRY_NAME="`echo $TTFINFO_FOUNDRY_NAME |sed -e "s/ //g"`"
+# if [ -n "`echo ${fontencoding} |grep -i "big5"`" ]; then
+# if [ -z "`echo $TTFINFO_FONT_NAME |grep " "`" ]; then
+# TTF_ALIAS="${TTFINFO_FOUNDRY_NAME}${TTFINFO_FONT_NAME}B5"
+# # The following two are hacks, in favor of Arphic TTF.
+# elif [ -n "`echo $TTFINFO_FONT_NAME |grep -i -e "kai"`" ]; then
+# TTF_ALIAS="${TTFINFO_FOUNDRY_NAME}KaiB5"
+# elif [ -n "`echo $TTFINFO_FONT_NAME |grep -i -e "ming"`" ]; then
+# TTF_ALIAS="${TTFINFO_FOUNDRY_NAME}MingB5"
+# else
+# TTF_ALIAS="${TTFINFO_FOUNDRY_NAME}`echo $TTFINFO_FONT_NAME |sed -e "s/ //g"`B5"
+# fi
+# elif [ -n "`echo ${fontencoding} |grep -i "gb"`" ]; then
+# if [ -z "`echo $TTFINFO_FONT_NAME |grep " "`" ]; then
+# TTF_ALIAS="${TTFINFO_FOUNDRY_NAME}${TTFINFO_FONT_NAME}GB"
+# # The following two are hacks, in favor of Arphic TTF.
+# elif [ -n "`echo $TTFINFO_FONT_NAME |grep -i -e "kai"`" ]; then
+# TTF_ALIAS="${TTFINFO_FOUNDRY_NAME}KaiGB"
+# elif [ -n "`echo $TTFINFO_FONT_NAME |grep -i -e "ming"`" ]; then
+# TTF_ALIAS="${TTFINFO_FOUNDRY_NAME}MingGB"
+# else
+# TTF_ALIAS="${TTFINFO_FOUNDRY_NAME}`echo $TTFINFO_FONT_NAME |sed -e "s/ //g"`GB"
+# fi
+# else
+# TTF_ALIAS=${TTFINFO_FOUNDRY_NAME}"`echo $TTFINFO_FONT_NAME |sed -e "s/ //g"`"
+# fi
+ TTF_ALIAS=$TTFINFO_FONT_PSNAME
+
+# case "$fontweight" in
+# 'bold')
+# TTF_ALIAS="${TTF_ALIAS}-Bold"
+# ;;
+# *)
+# TTF_ALIAS="${TTF_ALIAS}-Regular"
+# ;;
+# esac
+
+ # Index
+ TTF_INDEX=$MAPNUM
+ # Ordering property
+ TTF_ORDERING="`printf "$eo_table" |awk -F "," -v i=$fontencoding '{encoding[$2]=$1} END {print encoding[i]}'`"
+}
+
+
+#
+# install_ttf <alias> <filename>[,ttf_index] eg.
+# install_ttf Arphic-MingB5 /usr/share/fonts/ttf/bsmi00lp.ttf,1.
+#
+# Write CID info file of a TTF, so it can be used as a CID font afterwards.
+# Currently we'll always call install_ttf() with ttf_index.
+#
+install_ttf()
+{
+ alias=$1
+ filename=$2
+
+ TTE=""
+ case "$alias" in
+ *-Adobe-*[0-9])
+ TTE=' /'`echo "$alias" |sed -n -e "s/^.*-\(Adobe-.*[0-9]\)$/\1/p"`"-Unicode"
+ ;;
+ *,Adobe-*[0-9]-*)
+ TTE=' /'`echo "$alias" |sed -n -e "s/^\(.*\),\(Adobe-.*[0-9]-.*\)$/\2/p"`
+ alias=`echo "$alias" |sed -n -e "s/^\(.*\),\(Adobe-.*[0-9]-.*\)$/\1/p"`
+ ;;
+ esac
+
+ case "$filename" in
+ *.[Tt][Tt][CcFf],[0-9])
+ TTF=`echo "$filename" |sed -n -e "s/^\(.*\),\([0-9]\)$/\1/p"`
+ TTI=`echo "$filename" |sed -n -e "s/^\(.*\),\([0-9]\)$/\2/p"`
+ # Regular font
+ [ "$HKSCS" = "1" -o ! -f "$CJKCIDPath/$alias" ] && cat <<EOF > "$CJKCIDPath/$alias" && echo "+$alias=$TTF"
+%!PS-Adobe-3.0 Resource-CIDFont
+%%BeginResource: CIDFont ($FNN)
+/$alias
+($TTF) $TTI$TTE $OpenTTFont
+dup length dict begin {def} forall currentdict end
+/CIDFont defineresource pop
+%%EndResource
+%%EOF
+EOF
+ # Bold font
+ [ "$HKSCS" = "1" -o ! -f "$CJKCIDPath/$alias-Bold" ] && cat <<EOF > "$CJKCIDPath/$alias-Bold" && echo "+$alias=$TTF-Bold"
+%!PS-Adobe-3.0 Resource-CIDFont
+%%BeginResource: CIDFont ($FNN-Bold)
+/$alias-Bold
+/$alias /CIDFont findresource
+16 dict begin
+ /basecidfont exch def
+ /basefont-H /.basefont-H /Identity-H [ basecidfont ] composefont def
+ /basefont-V /.basefont-V /Identity-V [ basecidfont ] composefont def
+ /CIDFontName dup basecidfont exch get def
+ /CIDFontType 1 def
+ /CIDSystemInfo dup basecidfont exch get def
+ /FontInfo dup basecidfont exch get def
+ /FontMatrix [ 1 0 0 1 0 0 ] def
+ /FontBBox [
+ basecidfont /FontBBox get cvx exec
+ 4 2 roll basecidfont /FontMatrix get transform
+ 4 2 roll basecidfont /FontMatrix get transform
+ ] def
+ /cid 2 string def
+ /BuildGlyph {
+ gsave
+ exch begin
+ dup 256 idiv cid exch 0 exch put
+ 256 mod cid exch 1 exch put
+ rootfont /WMode known { rootfont /WMode get 1 eq } { false } ifelse
+ { basefont-V } { basefont-H } ifelse setfont
+ .03 setlinewidth 1 setlinejoin
+ newpath
+ 0 0 moveto cid false charpath stroke
+ 0 0 moveto cid show
+ currentpoint setcharwidth
+ end
+ grestore
+ } bind def
+ currentdict
+end
+/CIDFont defineresource pop
+%%EndResource
+%%EOF
+EOF
+ # Italic font
+ [ "$HKSCS" = "1" -o ! -f "$CJKCIDPath/$alias-Italic" ] && cat <<EOF > "$CJKCIDPath/$alias-Italic" && echo "+$alias=$TTF-Italic"
+%!PS-Adobe-3.0 Resource-CIDFont
+%%BeginResource: CIDFont ($FNN-Italic)
+/$alias-Italic
+/$alias /CIDFont findresource
+dup length dict begin { 1 index /FontMatrix eq { [1 0 .3 1 0 0] matrix concatmatrix def } { def } ifelse } forall currentdict end
+/CIDFont defineresource pop
+%%EndResource
+%%EOF
+EOF
+ # BoldItalic font
+ [ "$HKSCS" = "1" -o ! -f "$CJKCIDPath/$alias-BoldItalic" ] && cat <<EOF > "$CJKCIDPath/$alias-BoldItalic" && echo "+$alias=$TTF-BoldItalic"
+%!PS-Adobe-3.0 Resource-CIDFont
+%%BeginResource: CIDFont ($FNN-BoldItalic)
+/$alias-BoldItalic
+/$alias /CIDFont findresource
+16 dict begin
+ /basecidfont exch def
+ /basefont-H /.basefont-H /Identity-H [ basecidfont ] composefont def
+ /basefont-V /.basefont-V /Identity-V [ basecidfont ] composefont def
+ /CIDFontName dup basecidfont exch get def
+ /CIDFontType 1 def
+ /CIDSystemInfo dup basecidfont exch get def
+ /FontInfo dup basecidfont exch get def
+ /FontMatrix [ 1 0 0 1 0 0 ] def
+ /FontBBox [
+ basecidfont /FontBBox get cvx exec
+ 4 2 roll basecidfont /FontMatrix get transform
+ 4 2 roll basecidfont /FontMatrix get transform
+ ] def
+ /cid 2 string def
+ /BuildGlyph {
+ gsave
+ exch begin
+ dup 256 idiv cid exch 0 exch put
+ 256 mod cid exch 1 exch put
+ rootfont /WMode known { rootfont /WMode get 1 eq } { false } ifelse
+ { basefont-V } { basefont-H } ifelse setfont
+ .03 setlinewidth 1 setlinejoin
+ newpath
+ 0 0 moveto cid false charpath stroke
+ 0 0 moveto cid show
+ currentpoint setcharwidth
+ end
+ grestore
+ } bind def
+ currentdict
+end
+dup length dict begin { 1 index /FontMatrix eq { [1 0 .3 1 0 0] matrix concatmatrix def } { def } ifelse } forall currentdict end
+/CIDFont defineresource pop
+%%EndResource
+%%EOF
+EOF
+ ;;
+ *.[Tt][Tt][CcFf])
+ TTF="$filename"
+ # Regular Font
+ [ "$HKSCS" = "1" -o ! -f "$CJKCIDPath/$alias" ] && cat <<EOF > "$CJKCIDPath/$alias" && echo "+$alias=$TTF"
+%!PS-Adobe-3.0 Resource-CIDFont
+%%BeginResource: CIDFont ($FNN)
+/$alias
+($TTF)$TTE $OpenTTFont
+dup length dict begin {def} forall currentdict end
+/CIDFont defineresource pop
+%%EndResource
+%%EOF
+EOF
+ # Bold Font
+ [ "$HKSCS" = "1" -o ! -f "$CJKCIDPath/$alias-Bold" ] && cat <<EOF > "$CJKCIDPath/$alias-Bold" && echo "+$alias=$TTF-Bold"
+%!PS-Adobe-3.0 Resource-CIDFont
+%%BeginResource: CIDFont ($FNN-Bold)
+/$alias-Bold
+/$alias /CIDFont findresource
+16 dict begin
+ /basecidfont exch def
+ /basefont-H /.basefont-H /Identity-H [ basecidfont ] composefont def
+ /basefont-V /.basefont-V /Identity-V [ basecidfont ] composefont def
+ /CIDFontName dup basecidfont exch get def
+ /CIDFontType 1 def
+ /CIDSystemInfo dup basecidfont exch get def
+ /FontInfo dup basecidfont exch get def
+ /FontMatrix [ 1 0 0 1 0 0 ] def
+ /FontBBox [
+ basecidfont /FontBBox get cvx exec
+ 4 2 roll basecidfont /FontMatrix get transform
+ 4 2 roll basecidfont /FontMatrix get transform
+ ] def
+ /cid 2 string def
+ /BuildGlyph {
+ gsave
+ exch begin
+ dup 256 idiv cid exch 0 exch put
+ 256 mod cid exch 1 exch put
+ rootfont /WMode known { rootfont /WMode get 1 eq } { false } ifelse
+ { basefont-V } { basefont-H } ifelse setfont
+ .03 setlinewidth 1 setlinejoin
+ newpath
+ 0 0 moveto cid false charpath stroke
+ 0 0 moveto cid show
+ currentpoint setcharwidth
+ end
+ grestore
+ } bind def
+ currentdict
+end
+/CIDFont defineresource pop
+%%EndResource
+%%EOF
+EOF
+ # Italic Font
+ [ "$HKSCS" = "1" -o ! -f "$CJKCIDPath/$alias-Italic" ] && cat <<EOF > "$CJKCIDPath/$alias-Italic" && echo "+$alias=$TTF-Italic"
+%!PS-Adobe-3.0 Resource-CIDFont
+%%BeginResource: CIDFont ($FNN-Italic)
+/$alias-Italic
+/$alias /CIDFont findresource
+dup length dict begin { 1 index /FontMatrix eq { [1 0 .3 1 0 0] matrix concatmat
+rix def } { def } ifelse } forall currentdict end
+/CIDFont defineresource pop
+%%EndResource
+%%EOF
+EOF
+ # BoldItalic Font
+ [ "$HKSCS" = "1" -o ! -f "$CJKCIDPath/$alias-BoldItalic" ] && cat <<EOF > "$CJKCIDPath/$alias-BoldItalic" && echo "+$alias=$TTF-BoldItalic"
+%!PS-Adobe-3.0 Resource-CIDFont
+%%BeginResource: CIDFont ($FNN-BoldItalic)
+/$alias-BoldItalic
+/$alias /CIDFont findresource
+16 dict begin
+ /basecidfont exch def
+ /basefont-H /.basefont-H /Identity-H [ basecidfont ] composefont def
+ /basefont-V /.basefont-V /Identity-V [ basecidfont ] composefont def
+ /CIDFontName dup basecidfont exch get def
+ /CIDFontType 1 def
+ /CIDSystemInfo dup basecidfont exch get def
+ /FontInfo dup basecidfont exch get def
+ /FontMatrix [ 1 0 0 1 0 0 ] def
+ /FontBBox [
+ basecidfont /FontBBox get cvx exec
+ 4 2 roll basecidfont /FontMatrix get transform
+ 4 2 roll basecidfont /FontMatrix get transform
+ ] def
+ /cid 2 string def
+ /BuildGlyph {
+ gsave
+ exch begin
+ dup 256 idiv cid exch 0 exch put
+ 256 mod cid exch 1 exch put
+ rootfont /WMode known { rootfont /WMode get 1 eq } { false } ifelse
+ { basefont-V } { basefont-H } ifelse setfont
+ .03 setlinewidth 1 setlinejoin
+ newpath
+ 0 0 moveto cid false charpath stroke
+ 0 0 moveto cid show
+ currentpoint setcharwidth
+ end
+ grestore
+ } bind def
+ currentdict
+end
+dup length dict begin { 1 index /FontMatrix eq { [1 0 .3 1 0 0] matrix concatmat
+rix def } { def } ifelse } forall currentdict end
+/CIDFont defineresource pop
+%%EndResource
+%%EOF
+EOF
+ ;;
+ *)
+ [ "$HKSCS" = "1" -o ! -f "$CJKCIDPath/$alias" ] && cat <<EOF > "$CJKCIDPath/$alias" && echo "+$alias=$filename"
+%!PS-Adobe-3.0 Resource-CIDFont
+%%BeginResource: CIDFont ($FNN)
+/$alias
+/$filename /CIDFont findresource
+dup length dict begin {def} forall currentdict end
+/CIDFont defineresource pop
+%%EndResource
+%%EOF
+EOF
+ ;;
+ esac
+}
+
+
+#
+# install_cid <ordering> <fontname>, eg.
+# install_cid "Adobe CNS1" MOESung-Regular.
+#
+# Write all CID-related font files. It can be used to install TTF once
+# the CID info file of TTF is available.
+#
+install_cid()
+{
+ CID_ordering=$1
+ fontname=$2
+ CMaps=`cd $CJKCMapPath; grep -l -e "$CID_ordering\|Adobe Identity" *`
+
+ for cmap in $CMaps; do
+ if [ $cmap = 'Roman' -o $cmap = 'Katakana' -o $cmap = 'Hiragana' -o $cmap = 'Hankaku' ]; then
+ to='.'
+ else
+ to='-'
+ fi
+ for style in '' '-Bold' '-Italic' '-BoldItalic'; do
+ [ "$HKSCS" = "1" -o ! -f "$CJKFontPath/$fontname$style$to$cmap" ] && cat <<EOF > "$CJKFontPath/$fontname$style$to$cmap" && echo "+$fontname$style$to$cmap"
+%!PS-Adobe-3.0 Resource-Font
+%%DocumentNeededResources: $cmap (CMap)
+%%IncludeResource: $cmap (CMap)
+%%BeginResource: Font ($fontname$style$to$cmap)
+/$fontname$style$to$cmap
+/$cmap /CMap findresource
+[/$fontname$style /CIDFont findresource]
+composefont pop
+%%EndResource
+%%EOF
+EOF
+ done
+ done
+}
+
+
+#
+# Add fonts
+#
+add_fonts()
+{
+ ALIASES=$*
+ for alias in $ALIASES; do
+ case "$alias" in
+ ?*=?*) # We have alias & font filename.
+ FNN="`echo "$alias" |sed -n -e 's/^\(.*\)=\(.*\)$/\1/p'`"
+ fnn="`echo "$alias" |sed -n -e 's/^\(.*\)=\(.*\)$/\2/p'`"
+ if [ ! -f "$fnn" ]; then
+ echo "$fnn not found!"
+ fi
+ guess_ttf_info "$fnn"
+ TTF_ALIAS="$FNN"
+ install_ttf "$FNN" "$fnn",$TTF_INDEX
+ install_cid "$TTF_ORDERING" "$fnn"
+ ;;
+ ?*.[Tt][Tt][CcFf]) # We have to make up an alias.
+ if [ ! -f "$alias" ]; then
+ echo "$alias not found!"
+ fi
+ guess_ttf_info "$alias"
+ FNN=$TTF_ALIAS
+ install_ttf $TTF_ALIAS "$alias",$TTF_INDEX
+ install_cid "$TTF_ORDERING" $TTF_ALIAS
+ ;;
+ *) # CID font
+ if [ ! -f "$alias" ]; then
+ echo "$alias not found!"
+ fi
+ if [ ! -f "$CJKCIDPath/`basename $alias`" ]; then
+ ln -s "$alias" "$CJKCIDPath"
+ fi
+ cid_registry=`head -10 "$alias" |grep ^%%Title |cut -d " " -f 3`
+ cid_ordering=`head -10 "$alias" |grep ^%%Title |cut -d " " -f 4`
+ install_cid "$cid_registry $cid_ordering" "`basename "$alias"`"
+ ;;
+ esac
+ done
+}
+
+
+#
+# setdefault <face> <fontfile>, eg.
+# setdefault ming /usr/share/fonts/ttf/bsmi00lp.ttf.
+#
+# Set default font, accept kai or ming(default) only, all others will be
+# treated as ming.
+#
+# All aliases will be set to "Default<face><encoding>-<weight>", like
+# DefaultMingB5-Regular, or DefaultKaiGB-Regular.
+#
+# Currently we can't assign a CID font as default Kai/Ming. This is
+# because CID font has "/FontName" hard-coded. I'm not sure if there
+# are any safe ways to substitute this.
+#
+setdefault()
+{
+ face=$1
+ if [ "$face" != "Ming" -a "$face" != "Kai" ]; then
+ face="Ming"
+ fi
+ fontfile=$2
+ if [ -n "`echo "$fontfile" |grep '='`" ]; then # Ignore alias
+ fontfile="`echo "$fontfile" |sed -n -e 's/^\(.*\)=\(.*\)$/\2/p'`"
+ fi
+ if [ ! -f "$fontfile" ]; then
+ echo "$fontfile not found!"
+ fi
+
+ case "$fontfile" in
+ *.[Tt][Tt][CcFf])
+ guess_ttf_info "$fontfile"
+
+ case "$TTF_ORDERING" in
+ "Adobe CNS1")
+ TTF_ALIAS="Default${face}B5-`echo $TTF_ALIAS |cut -d '-' -f 2`"
+ ;;
+ "Adobe GB1")
+ TTF_ALIAS="Default${face}GB-`echo $TTF_ALIAS |cut -d '-' -f 2`"
+ ;;
+ *)
+ TTF_ALIAS="Default${face}-`echo $TTF_ALIAS |cut -d '-' -f 2`"
+ ;;
+ esac
+
+ install_ttf "$TTF_ALIAS" "$fontfile",$TTF_INDEX
+ install_cid "$TTF_ORDERING" "$TTF_ALIAS"
+ ;;
+ *) # CID font. Give a message and exit.
+ echo "CID fonts can't be used as default fonts."
+ echo "Please use TTF instead."
+ exit 1
+ ;;
+ esac
+}
+
+
+#
+# main program
+#
+
+if [ $# -lt 1 ]; then
+ Usage
+ exit 1
+fi
+
+ARG=$1
+shift 1
+
+case $ARG in
+--help)
+ Usage
+ ;;
+--name)
+ echo
+ echo "$NAME $VERSION"
+ echo
+ ;;
+--list)
+ list_fonts
+ ;;
+--check)
+ check_gs6
+ ;;
+--add)
+ if [ $# -lt 1 ]; then
+ echo "Missing font filename argument!"
+ Usage
+ exit 1
+ fi
+ add_fonts $@
+ echo "Done!"
+ ;;
+--remove)
+ if [ $# -lt 1 ]; then
+ echo "Missing font filename argument!"
+ Usage
+ exit 1
+ fi
+ remove_fonts $@
+ echo "Done!"
+ ;;
+--setdefault|--setdefault_ming)
+ if [ $# -lt 1 ]; then
+ echo "Missing font filename arguments!"
+ Usage
+ exit 1
+ elif [ $# -gt 1 ]; then
+ echo "Only need one font filename!"
+ Usage
+ exit 1
+ fi
+ setdefault "Ming" $1
+ echo "Done!"
+ ;;
+--setdefault_kai)
+ if [ $# -lt 1 ]; then
+ echo "Missing font filename arguments!"
+ Usage
+ exit 1
+ elif [ $# -gt 1 ]; then
+ echo "Only need one font filename!"
+ Usage
+ exit 1
+ fi
+ setdefault "Kai" $1
+ echo "Done!"
+ ;;
+*)
+ Usage
+ exit 1
+ ;;
+esac
+
+rm -f $TEMPFILE
+exit 0
+
+
+# ChangeLog
+#
+# * Sat Oct 18 2001 Chung-Yen Chang <candyz@linux.org.tw>
+# - add Italic fonts support
+#
+# * Tue Sep 4 2001 Anthony Fok <anthony@thizlinux.com>
+# - Use original PostScript font names instead of making them up :-)
+# - Added poorman's Bold font. Still needs to work on Italic.
+# - Gives HKSCS priority, e.g. kai00m.ttf (Big5&HKSCS) and bkai00mp.ttf
+# are both ZenKai-Medium; kai00m.ttf takes precedence.
+#
+# * Sat Dec 9 2000 Chung-Yen Chang <candyz@cle.linux.org.tw>
+# - Modified for Red Hat Linux
+#
+# $Log: gscjk.ttfm,v $
+# Revision 1.1 2001/12/14 15:21:26 candyz
+# add ttfm.sh.1 gscjk.ttfm
+#
+# Revision 1.1 2000/11/23 04:32:57 Keith
+# Log entry was added.
+#
+# * Thu Nov 23 2000 Jing-Tang Keith Jang <keith@FreeBSD.org>
+# - Initial version.

View File

@ -1,32 +0,0 @@
--- modules/xttfm.ttfm.orig Sat Dec 21 22:56:45 2002
+++ modules/xttfm.ttfm Sat Dec 21 23:01:09 2002
@@ -129,18 +129,25 @@
fontproperties=$7
fontencoding=$8
+ if [ "$fontproperties" = "m" ] ; then
+ fontproperties="p"
+ FONTFACE="fn=1:"
+ else
+ FONTFACE=""
+ fi
+
# Create and update fonts.scale
touch $XTTFFONTPATH/fonts.scale
# Delete the first line, and duplicate entries if exist.
# We can't use uniq(1) here, since filenames may start with numbers.
sed -e "1d" $XTTFFONTPATH/fonts.scale |grep -iv "$fontfoundry-$fontfamily.*-$fontencoding$" > $TEMPFILE
- echo "$targetname -$fontfoundry-$fontfamily-$fontweight-$fontslant-$fontwidth--0-0-0-0-$fontproperties-0-$fontencoding" >> $TEMPFILE
+ echo "${FONTFACE}$targetname -$fontfoundry-$fontfamily-$fontweight-$fontslant-$fontwidth--0-0-0-0-$fontproperties-0-$fontencoding" >> $TEMPFILE
# If it's medium-r, make a {medium,bold}-{i,r} full suite
if [ "X$fontweight" = "Xmedium" ] && [ "X$fontslant" = "Xr" ]; then
- echo "ai=0.3:$targetname -$fontfoundry-$fontfamily-medium-i-$fontwidth--0-0-0-0-$fontproperties-0-$fontencoding" >> $TEMPFILE
- echo "ds=y:$targetname -$fontfoundry-$fontfamily-bold-r-$fontwidth--0-0-0-0-$fontproperties-0-$fontencoding" >> $TEMPFILE
- echo "ds=y:ai=0.3:$targetname -$fontfoundry-$fontfamily-bold-i-$fontwidth--0-0-0-0-$fontproperties-0-$fontencoding" >> $TEMPFILE
+ echo "${FONTFACE}ai=0.3:$targetname -$fontfoundry-$fontfamily-medium-i-$fontwidth--0-0-0-0-$fontproperties-0-$fontencoding" >> $TEMPFILE
+ echo "${FONTFACE}ds=y:$targetname -$fontfoundry-$fontfamily-bold-r-$fontwidth--0-0-0-0-$fontproperties-0-$fontencoding" >> $TEMPFILE
+ echo "${FONTFACE}ds=y:ai=0.3:$targetname -$fontfoundry-$fontfamily-bold-i-$fontwidth--0-0-0-0-$fontproperties-0-$fontencoding" >> $TEMPFILE
fi
echo `cat $TEMPFILE |wc -l` > $XTTFFONTPATH/fonts.scale
cat $TEMPFILE >> $XTTFFONTPATH/fonts.scale

View File

@ -1,143 +0,0 @@
--- ttfinfo.c.orig Sun Dec 17 02:56:41 2000
+++ ttfinfo.c Tue Jul 30 10:48:21 2002
@@ -112,6 +112,7 @@
static void usage (const char *name);
static const char *get_foundry (const TT_Char orig_code[4]);
static const char *get_name (TT_Face face);
+static const char *get_psname (TT_Face face);
static void add_mapping (struct xlfdmapping **listhead,
char *file_name,
const char *foundry_name,
@@ -684,6 +685,7 @@
TT_Face face;
TT_Face_Properties properties;
const char *font_name;
+ const char *font_psname;
const char *foundry_name;
const char *weight_name;
const char *width_name;
@@ -722,6 +724,7 @@
}
font_name = get_name (face);
+ font_psname = get_psname (face);
foundry_name = get_foundry (properties.os2->achVendID);
weight_name = get_weight (path, &properties);
width_name = get_width_name (path, &properties);
@@ -729,6 +732,7 @@
/* basic fone information */
fprintf(outstream,"TTFINFO_FONT_FILE=\"%s\"\n",path);
fprintf(outstream,"TTFINFO_FONT_NAME=\"%s\"\n",font_name);
+ fprintf(outstream,"TTFINFO_FONT_PSNAME=\"%s\"\n",font_psname);
fprintf(outstream,"TTFINFO_FOUNDRY_NAME=\"%s\"\n",foundry_name);
fprintf(outstream,"TTFINFO_WEIGHT_NAME=\"%s\"\n",weight_name);
fprintf(outstream,"TTFINFO_WIDTH=\"%s\"\n",width_name);
@@ -1206,7 +1210,7 @@
function returns as soon as an english name for the font is found,
so most of the time one loop is enough; however some fonts have only
non-english names in their font faminly entry, so the second loop
- to try the Postscript name as last ressort
+ to try the Postscript name as last resort
*/
for (k = 0; k < 2; k++) {
@@ -1276,6 +1280,99 @@
}
}
}
+ }
+
+ /* Not found */
+ return "unknown";
+}
+
+/* This get_psname() function is copied from get_name(). I probably should
+ try to merge the two functions somehow, but unfortunately, I do not have
+ the time right now. :-) Anthony Fok <anthony@thizlinux.com>
+*/
+
+const char *
+get_psname (TT_Face face)
+{
+ int i, j, k, n;
+
+ TT_UShort platform;
+ TT_UShort encoding;
+ TT_UShort language;
+ TT_UShort NameId;
+
+ /* get the number of name strings in this font */
+ if ((n = TT_Get_Name_Count (face)) < 0) {
+ return NULL;
+ }
+ /* printf("\nn=%d\n",n); */
+
+ /* for (k = 0; k < 2; k++) { */
+
+ k = 1;
+ /* now look at every entry */
+ for (i = 0; i < n; i++) {
+ TT_Get_Name_ID (face, i, &platform, &encoding, &language, &NameId);
+ /* printf("k=%d, face=%d, i=%d, platform=%d, encoding=%d, lang=%d, Id=%d\n",k ,face, i, platform, encoding, language, NameId); */
+
+ if (NameId == TT_NAME_ID_PS_NAME) {
+
+ /* Try a Macintosh english name */
+ if ((platform == TT_PLATFORM_MACINTOSH) &&
+ (language == TT_MAC_LANGID_ENGLISH))
+ {
+ char* string;
+ TT_UShort string_len;
+ static char name_buffer[257];
+ int name_len;
+ int english=1;
+
+ TT_Get_Name_String (face, i, &string, &string_len);
+ string_len = string_len < 257 ? string_len : 257;
+ name_len = 0;
+
+ for (j = 0; j < string_len; j++) {
+ /* some font names claim to be in english but aren't */
+ if ((string[j] & 0xff) > 0x7f) english=0;
+ name_buffer[name_len++] = string[j];
+ }
+
+ name_buffer[name_len] = '\0';
+ if (english) return name_buffer;
+ }
+ /* Try to find an Apple Unicode or Microsoft English name */
+ if ((platform == TT_PLATFORM_APPLE_UNICODE) ||
+ ((platform == TT_PLATFORM_MICROSOFT) &&
+ ((language & 0x00FF) ==
+ (TT_MS_LANGID_ENGLISH_UNITED_STATES & 0x00FF))) ||
+ (((platform == TT_PLATFORM_MICROSOFT) &&
+ (encoding == TT_MS_ID_UNICODE_CS)) &&
+ (NameId == TT_NAME_ID_PS_NAME)))
+ {
+ /* The following code was inspired from Mark Leisher's */
+ /* ttf2bdf package */
+ char* string;
+ TT_UShort string_len;
+ static char name_buffer[513];
+ int name_len;
+ int english=1;
+
+ TT_Get_Name_String (face, i, &string, &string_len);
+ string_len = string_len < 512 ? string_len : 512;
+ name_len = 0;
+ /* convert from unicode to ASCII */
+ for (j = 0; j < string_len; j ++) {
+ /* drop the NULL part, dont't use j+=2 to avoid
+ endian problem. */
+ if (string[j] != '\0'){
+ if ((string[j] & 0xff) > 0x7f) english=0;
+ name_buffer[name_len++] = string[j];
+ }
+ }
+ name_buffer[name_len] = '\0';
+ if (english) return name_buffer;
+ }
+ }
}
/* Not found */

View File

@ -2,13 +2,7 @@ bin/ttfinfo
bin/ttfm.sh
share/doc/ttfm/README
share/doc/ttfm/USAGE
share/ttfm/abiword.ttfm
share/ttfm/chitex.ttfm.nop
share/ttfm/ghostscript6.ttfm.nop
share/ttfm/gscjk.ttfm
share/ttfm/ttf2pk.ttfm.nop
share/ttfm/xttfm-tcl.ttfm.nop
share/ttfm/xfreetype.ttfm
share/ttfm/xttfm.ttfm
@dirrm share/ttfm
@dirrm share/doc/ttfm