From cc9ce94021dcb487c98b49fb08aa570671c4c57c Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 4 May 2008 17:04:24 +0000 Subject: lcdf-typetools 2.68 git-svn-id: svn://tug.org/texlive/trunk@7841 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/README | 2 +- Build/source/texk/lcdf-typetools/Makefile.in | 2 +- Build/source/texk/lcdf-typetools/NEWS | 7 + Build/source/texk/lcdf-typetools/README | 2 +- .../source/texk/lcdf-typetools/cfftot1/Makefile.in | 2 +- Build/source/texk/lcdf-typetools/cfftot1/cfftot1.1 | 2 +- Build/source/texk/lcdf-typetools/config.h.in | 2 +- Build/source/texk/lcdf-typetools/configure | 2 +- Build/source/texk/lcdf-typetools/configure.in | 484 --------------------- .../texk/lcdf-typetools/include/lcdf/permstr.hh | 138 +++--- .../source/texk/lcdf-typetools/lcdf-typetools.spec | 2 +- .../texk/lcdf-typetools/libefont/Makefile.in | 2 +- .../source/texk/lcdf-typetools/liblcdf/Makefile.in | 2 +- .../source/texk/lcdf-typetools/liblcdf/permstr.cc | 98 ++--- Build/source/texk/lcdf-typetools/mmafm/Makefile.in | 2 +- Build/source/texk/lcdf-typetools/mmafm/mmafm.1 | 2 +- Build/source/texk/lcdf-typetools/mmpfb/Makefile.in | 2 +- Build/source/texk/lcdf-typetools/mmpfb/mmpfb.1 | 2 +- .../source/texk/lcdf-typetools/otfinfo/Makefile.in | 2 +- Build/source/texk/lcdf-typetools/otfinfo/otfinfo.1 | 2 +- .../texk/lcdf-typetools/otftotfm/Makefile.in | 2 +- .../texk/lcdf-typetools/otftotfm/dvipsencoding.cc | 20 +- .../source/texk/lcdf-typetools/otftotfm/metrics.cc | 44 +- .../source/texk/lcdf-typetools/otftotfm/otftotfm.1 | 2 +- .../texk/lcdf-typetools/t1dotlessj/Makefile.in | 2 +- .../texk/lcdf-typetools/t1dotlessj/t1dotlessj.1 | 2 +- .../source/texk/lcdf-typetools/t1lint/Makefile.in | 2 +- Build/source/texk/lcdf-typetools/t1lint/t1lint.1 | 2 +- .../texk/lcdf-typetools/t1reencode/Makefile.in | 2 +- .../texk/lcdf-typetools/t1reencode/t1reencode.1 | 2 +- .../texk/lcdf-typetools/t1testpage/Makefile.in | 2 +- .../texk/lcdf-typetools/t1testpage/t1testpage.1 | 2 +- .../texk/lcdf-typetools/ttftotype42/Makefile.in | 2 +- .../texk/lcdf-typetools/ttftotype42/ttftotype42.1 | 2 +- 34 files changed, 197 insertions(+), 650 deletions(-) delete mode 100644 Build/source/texk/lcdf-typetools/configure.in (limited to 'Build') diff --git a/Build/source/texk/README b/Build/source/texk/README index 16fac43a463..56cd983389f 100644 --- a/Build/source/texk/README +++ b/Build/source/texk/README @@ -69,7 +69,7 @@ musixflx - ? ps2pkm - ? -lcdf-typetools 2.67 - ok 28apr08 +lcdf-typetools 2.68 - ok 4may08 http://www.lcdf.org/type/ tex4htk diff --git a/Build/source/texk/lcdf-typetools/Makefile.in b/Build/source/texk/lcdf-typetools/Makefile.in index b010058122d..008851ca60b 100644 --- a/Build/source/texk/lcdf-typetools/Makefile.in +++ b/Build/source/texk/lcdf-typetools/Makefile.in @@ -36,7 +36,7 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(top_srcdir)/configure COPYING ChangeLog INSTALL NEWS depcomp \ install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ diff --git a/Build/source/texk/lcdf-typetools/NEWS b/Build/source/texk/lcdf-typetools/NEWS index 496739e872f..adc2dd8e516 100644 --- a/Build/source/texk/lcdf-typetools/NEWS +++ b/Build/source/texk/lcdf-typetools/NEWS @@ -1,4 +1,11 @@ LCDF Typetools NEWS + +Version 2.68 2.May.2008 + +* otftotfm: Tweak the ligature sorting algorithm. Prefer lowercase + ligatures to mixed-case and uppercase ligatures; prefer the conventional + f-ligatures to all others. Reported by Ulrich Dirr. + Version 2.67 25.Apr.2008 diff --git a/Build/source/texk/lcdf-typetools/README b/Build/source/texk/lcdf-typetools/README index 4a7ad78ba42..5b8edec1d76 100644 --- a/Build/source/texk/lcdf-typetools/README +++ b/Build/source/texk/lcdf-typetools/README @@ -1,4 +1,4 @@ -LCDF-TYPETOOLS 2.67 +LCDF-TYPETOOLS 2.68 =================== USAGE diff --git a/Build/source/texk/lcdf-typetools/cfftot1/Makefile.in b/Build/source/texk/lcdf-typetools/cfftot1/Makefile.in index 1753ef0a6d4..5fbc8d09731 100644 --- a/Build/source/texk/lcdf-typetools/cfftot1/Makefile.in +++ b/Build/source/texk/lcdf-typetools/cfftot1/Makefile.in @@ -34,7 +34,7 @@ bin_PROGRAMS = cfftot1$(EXEEXT) subdir = cfftot1 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/cfftot1/cfftot1.1 b/Build/source/texk/lcdf-typetools/cfftot1/cfftot1.1 index 50b7b7a7e1b..152bb31238e 100644 --- a/Build/source/texk/lcdf-typetools/cfftot1/cfftot1.1 +++ b/Build/source/texk/lcdf-typetools/cfftot1/cfftot1.1 @@ -1,4 +1,4 @@ -.ds V 2.67 +.ds V 2.68 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/texk/lcdf-typetools/config.h.in b/Build/source/texk/lcdf-typetools/config.h.in index 2e7760b31dc..dad53d351ee 100644 --- a/Build/source/texk/lcdf-typetools/config.h.in +++ b/Build/source/texk/lcdf-typetools/config.h.in @@ -1,4 +1,4 @@ -/* config.h.in. Generated from configure.in by autoheader. */ +/* config.h.in. Generated from configure.ac by autoheader. */ #ifndef LCDF_TYPETOOLS_CONFIG_H #define LCDF_TYPETOOLS_CONFIG_H diff --git a/Build/source/texk/lcdf-typetools/configure b/Build/source/texk/lcdf-typetools/configure index 248c3f03dca..616f7b48ec6 100755 --- a/Build/source/texk/lcdf-typetools/configure +++ b/Build/source/texk/lcdf-typetools/configure @@ -2094,7 +2094,7 @@ fi # Define the identity of the package. PACKAGE=lcdf-typetools - VERSION=2.67 + VERSION=2.68 cat >>confdefs.h <<_ACEOF diff --git a/Build/source/texk/lcdf-typetools/configure.in b/Build/source/texk/lcdf-typetools/configure.in deleted file mode 100644 index 520f88ba90e..00000000000 --- a/Build/source/texk/lcdf-typetools/configure.in +++ /dev/null @@ -1,484 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(NEWS) -AM_INIT_AUTOMAKE(lcdf-typetools, 2.67) -AM_CONFIG_HEADER(config.h) -AM_MAINTAINER_MODE - -AC_PROG_MAKE_SET - -AC_PROG_CC -AC_PROG_CPP -AC_PROG_CXX -AC_PROG_CXXCPP -if test -n "$GCC" ; then CC="$CC -W -Wall" ; CXX="$CXX -W -Wall" ; fi - -dnl AN_MAKEVAR([AR], [AC_PROG_AR]) -dnl AN_PROGRAM([ar], [AC_PROG_AR]) -dnl AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)]) -dnl AC_PROG_AR - -AC_PROG_RANLIB - - -dnl Available from the GNU Autoconf Macro Archive at: -dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_template_objs.html -dnl -AC_DEFUN([AC_CXX_TEMPLATE_OBJS], -[AC_CACHE_CHECK(where template objects are stored, ac_cv_cxx_templobjs, - [ ac_cv_cxx_templobjs='unknown' - if test "$GXX" = yes; then - ac_cv_cxx_templobjs='nowhere' - else - case $CXX in - CC|*/CC) - cat > conftest.cc < class A { public : A () {} }; -template void f (const A&) {} -main() -{ A d; - A i; - f (d); - f (i); - return 0; -} -EOF - if test "$ac_cv_cxx_templobjs" = 'unknown' ; then - if test -d Templates.DB ; then - rm -fr Templates.DB - fi - if $CXX $CXXFLAGS -ptr. -c conftest.cc 1> /dev/null 2>&1; then - if test -d Templates.DB ; then -# this should be Sun CC <= 4.2 - CXXFLAGS="$CXXFLAGS -ptr." - if test x"$LIBTOOL" = x ; then - ac_cv_cxx_templobjs='Templates.DB/*.o' - else - ac_cv_cxx_templobjs='Templates.DB/*.lo' - fi - rm -fr Templates.DB - fi - fi - fi - if test "$ac_cv_cxx_templobjs" = 'unknown' ; then - if test -d SunWS_cache ; then - rm -fr SunWS_cache - fi - if $CXX $CXXFLAGS -c conftest.cc 1> /dev/null 2>&1; then - if test -d SunWS_cache ; then -# this should be Sun WorkShop C++ compiler 5.x -# or Sun Forte C++ compiler >= 6.x - if test x"$LIBTOOL" = x ; then - ac_cv_cxx_templobjs='SunWS_cache/*/*.o' - else - ac_cv_cxx_templobjs='SunWS_cache/*/*.lo' - fi - rm -fr SunWS_cache - fi - fi - fi - rm -f conftest* ;; - esac - fi - case "x$ac_cv_cxx_templobjs" in - xunknown|xnowhere) - TEMPLATE_OBJS="" ;; - *) - TEMPLATE_OBJS="$ac_cv_cxx_templobjs" ;; - esac - AC_SUBST(TEMPLATE_OBJS)])]) - -AC_CXX_TEMPLATE_OBJS - - -dnl -dnl directory searching -dnl - -AC_HEADER_DIRENT - - -dnl -dnl select programs to be compiled -dnl - -AC_ARG_ENABLE(cfftot1, [ --disable-cfftot1 do not build the cfftot1 program], :, enable_cfftot1=yes) -AC_ARG_ENABLE(mmafm, [ --disable-mmafm do not build the mmafm program], :, enable_mmafm=yes) -AC_ARG_ENABLE(mmpfb, [ --disable-mmpfb do not build the mmpfb program], :, enable_mmpfb=yes) -AC_ARG_ENABLE(otfinfo, [ --disable-otfinfo do not build the otfinfo program], :, enable_otfinfo=yes) -AC_ARG_ENABLE(otftotfm, [ --disable-otftotfm do not build the otftotfm program], :, enable_otftotfm=yes) -AC_ARG_ENABLE(t1lint, [ --disable-t1dotlessj do not build the t1dotlessj program], :, enable_t1dotlessj=yes) -AC_ARG_ENABLE(t1lint, [ --disable-t1lint do not build the t1lint program], :, enable_t1lint=yes) -AC_ARG_ENABLE(t1reencode, [ --disable-t1reencode do not build the t1reencode program], :, enable_t1reencode=yes) -AC_ARG_ENABLE(t1testpage, [ --disable-t1testpage do not build the t1testpage program], :, enable_t1testpage=yes) -AC_ARG_ENABLE(ttftotype42, [ --disable-ttftotype42 do not build the ttftotype42 program], :, enable_ttftotype42=yes) - -SELECTED_SUBDIRS='' -for i in cfftot1 mmafm mmpfb otfinfo otftotfm t1dotlessj t1lint t1reencode t1testpage ttftotype42; do - y=`eval 'echo $enable_'"$i"` - if test "x$y" != xno; then SELECTED_SUBDIRS="$SELECTED_SUBDIRS $i"; fi -done -AC_SUBST(SELECTED_SUBDIRS) - - -dnl -dnl kpathsea, auto-cfftot1 -dnl - -AC_ARG_ENABLE(tetex-build, [ --enable-tetex-build build as part of a teTeX installation], :, enable_tetex_build=no) -AC_ARG_WITH(kpathsea, [ --with-kpathsea=PREFIX Kpathsea is installed (under PREFIX)], - [kpathsea=$withval], [kpathsea=]) - -if test "x$kpathsea" = xno; then - KPSEINTERFACE_O= - LIBKPATHSEA= -else - if test "x$enable_tetex_build" = xyes; then - if test ! -d $srcdir/../../texk/kpathsea; then - AC_MSG_ERROR([ -========================================= - -You specified --enable-tetex-build, but I can't find the kpathsea -directory. I expected it to be in $srcdir/../../texk/kpathsea. - -=========================================]) - fi - CPPFLAGS="$CPPFLAGS -I\$(top_builddir)/../../texk -I\$(top_srcdir)/../../texk" - LDFLAGS="$LDFLAGS -L\$(top_builddir)/../../texk/kpathsea/.libs" - AC_MSG_NOTICE([tetex build of lcdf-typetools, CPPFLAGS now: $CPPFLAGS]) - elif test "x$kpathsea" != x -a "x$kpathsea" != xyes; then - CPPFLAGS="$CPPFLAGS -I$kpathsea/include" - LDFLAGS="$LDFLAGS -L$kpathsea/lib" - else - kpathsea=yes - fi - - dnl check for kpathsea/kpathsea.h - if test "x$enable_tetex_build" = xyes; then - kpse_header=yes - else - AC_CHECK_HEADER(kpathsea/kpathsea.h, [kpse_header=yes], [kpse_header=no]) - fi - - dnl if not found and kpathsea prefix not set, check /usr/local - if test "x$kpse_header" != xyes -a "x$kpathsea" = xyes -a -r /usr/local/include/kpathsea/tex-file.h; then - CPPFLAGS="$CPPFLAGS -I/usr/local/include" - LDFLAGS="$LDFLAGS -L/usr/local/lib" - AC_CHECK_HEADER(kpathsea/tex-file.h, [kpse_header=yes], [kpse_header=no]) - fi - - dnl check for -lkpathsea - if test "x$enable_tetex_build" = xyes; then - kpse_library=yes - else - AC_CHECK_LIB(kpathsea, kpse_set_program_name, [kpse_library=yes], [kpse_library=no]) - fi - - dnl bail out if not found - if test "x$kpse_header" != xyes -o "x$kpse_library" != xyes; then - AC_MSG_ERROR([ -========================================= - -I can't find the kpathsea library and/or header files. Tell me where to look -using the --with-kpathsea=PREFIX option (header files should be under -PREFIX/include/kpathsea, and library under PREFIX/lib), or disable support -using --without-kpathsea. - -=========================================]) - fi - - dnl OK, found - AC_DEFINE(HAVE_KPATHSEA, 1, [Define if you want to use kpathsea.]) - KPSEINTERFACE_O='kpseinterface.$(OBJEXT)' - if test "x$enable_tetex_build" = xyes; then - LIBKPATHSEA='$(top_builddir)/../../texk/kpathsea/.libs/libkpathsea.a' - LIBKPATHSEA_DEP="$LIBKPATHSEA" - else - LIBKPATHSEA='-lkpathsea' - LIBKPATHSEA_DEP='' - fi - - dnl does it have opentype support? - if test "x$enable_tetex_build" = xyes; then - AC_DEFINE(HAVE_DECL_KPSE_OPENTYPE_FORMAT) - else - AC_CHECK_DECLS(kpse_opentype_format, :, :, [#include ]) - fi -fi -AC_SUBST([KPSEINTERFACE_O]) -AC_SUBST([LIBKPATHSEA]) -AC_SUBST([LIBKPATHSEA_DEP]) - -AC_ARG_ENABLE(selfauto-set, [ --disable-selfauto-set disable setting SELFAUTO variables from kpsewhich], :, enable_selfauto_set=yes) - -if test "x$enable_selfauto_set" = xyes -a "x$kpathsea" != xno -a "x$enable_tetex_build" != xyes; then - kpsewhich='kpsewhich' - test "x$kpathsea" != xyes -a -x "$kpathsea/bin/kpsewhich" && kpsewhich="$kpathsea/bin/kpsewhich" - SELFAUTOLOC=`$kpsewhich --expand-var='$SELFAUTOLOC' 2>/dev/null` - SELFAUTODIR=`$kpsewhich --expand-var='$SELFAUTODIR' 2>/dev/null` - SELFAUTOPARENT=`$kpsewhich --expand-var='$SELFAUTOPARENT' 2>/dev/null` - if test -z "$SELFAUTODIR"; then - AC_MSG_WARN([ -========================================= - -Could not extract SELFAUTO variables from $kpsewhich. -Either supply the correct PREFIX to --with-kpathsea, or supply ---disable-selfauto-loc. - -=========================================]) - fi - AC_DEFINE_UNQUOTED(SELFAUTOLOC, "$SELFAUTOLOC", [kpsewhich's $SELFAUTOLOC variable]) - AC_DEFINE_UNQUOTED(SELFAUTODIR, "$SELFAUTODIR", [kpsewhich's $SELFAUTODIR variable]) - AC_DEFINE_UNQUOTED(SELFAUTOPARENT, "$SELFAUTOPARENT", [kpsewhich's $SELFAUTOPARENT variable]) -fi - -AC_ARG_ENABLE(auto-cfftot1, [ --disable-auto-cfftot1 disable running cfftot1 from otftotfm], :, enable_auto_cfftot1=yes) -AC_ARG_ENABLE(auto-t1dotlessj, [ --disable-auto-t1dotlessj disable running t1dotlessj from otftotfm], :, enable_auto_t1dotlessj=yes) -AC_ARG_ENABLE(auto-updmap, [ --disable-auto-updmap disable running updmap from otftotfm], :, enable_auto_updmap=yes) - -if test "x$enable_auto_cfftot1" = xyes; then - AC_DEFINE(HAVE_AUTO_CFFTOT1, 1, [Define to run cfftot1 automatically from otftotfm.]) -fi -if test "x$enable_auto_t1dotlessj" = xyes; then - AC_DEFINE(HAVE_AUTO_T1DOTLESSJ, 1, [Define to run t1dotlessj automatically from otftotfm.]) -fi -if test "x$enable_auto_updmap" = xyes; then - AC_DEFINE(HAVE_AUTO_UPDMAP, 1, [Define to run system updmap automatically from otftotfm.]) -fi - - -dnl -dnl and/or -dnl - -AC_LANG_CPLUSPLUS -AC_CACHE_CHECK([whether works], ac_cv_good_new_hdr, -[AC_TRY_LINK([#include ], [ - int a; - int *b = new(&a) int; - return 0; -], ac_cv_good_new_hdr=yes, ac_cv_good_new_hdr=no)]) -if test "$ac_cv_good_new_hdr" = yes; then - AC_DEFINE(HAVE_NEW_HDR, 1, [Define if exists and works.]) -fi -AC_CHECK_HEADERS(new.h) - - -dnl -dnl functions such as strerror, working strtod, strtoul, time -dnl headers such as unistd.h -dnl - -AC_LANG_C -FIXLIBC_O='' -AC_CHECK_FUNCS(strerror, :, FIXLIBC_O='fixlibc.o') - -AC_CACHE_CHECK(whether strtod works, ac_cv_working_strtod, -[AC_TRY_RUN([#include -#include -int main(int c, char **v) { - char s[] = "12 "; - char *endp; - double d = strtod(s, &endp); - exit(*endp == 0 ? 1 : 0); -}], ac_cv_working_strtod=yes, ac_cv_working_strtod=no, -ac_cv_working_strtod=yes)]) -if test $ac_cv_working_strtod = no; then - FIXLIBC_O='fixlibc.o' - AC_DEFINE(BROKEN_STRTOD, 1, [Define if strtod is broken.]) -fi - -AC_CHECK_FUNCS(strtoul ctime mkstemp ftruncate sigaction waitpid) -AC_CHECK_FUNC(floor, :, [AC_CHECK_LIB(m, floor)]) -AC_CHECK_FUNC(fabs, :, [AC_CHECK_LIB(m, fabs)]) -AC_CHECK_HEADERS(unistd.h fcntl.h sys/time.h sys/wait.h) - -AC_SUBST(FIXLIBC_O) - - -dnl -dnl integer types -dnl - -AC_CHECK_HEADERS(inttypes.h, have_inttypes_h=yes, have_inttypes_h=no) -AC_CHECK_HEADERS(sys/types.h, have_sys_types_h=yes, have_sys_types_h=no) - -if test $have_inttypes_h = no -a $have_sys_types_h = yes; then - AC_CACHE_CHECK([for uintXX_t typedefs], ac_cv_uint_t, - [AC_EGREP_HEADER(dnl -changequote(<<,>>)<<(^|[^a-zA-Z_0-9])uint32_t[^a-zA-Z_0-9]>>changequote([,]), - sys/types.h, ac_cv_uint_t=yes, ac_cv_uint_t=no)]) -fi -if test $have_inttypes_h = no -a $have_sys_types_h = yes -a "$ac_cv_uint_t" = no; then - AC_CACHE_CHECK([for u_intXX_t typedefs], ac_cv_u_int_t, - [AC_EGREP_HEADER(dnl -changequote(<<,>>)<<(^|[^a-zA-Z_0-9])u_int32_t[^a-zA-Z_0-9]>>changequote([,]), - sys/types.h, ac_cv_u_int_t=yes, ac_cv_u_int_t=no)]) -fi -if test $have_inttypes_h = yes -o "$ac_cv_uint_t" = yes; then - : -elif test "$ac_cv_u_int_t" = yes; then - AC_DEFINE(HAVE_U_INT_TYPES, 1, [Define if you have u_intXX_t types but not uintXX_t types.]) -else - AC_MSG_WARN([ -========================================= - -Neither uint32_t nor u_int32_t defined by or ! -Assuming "short" has 16 bits and "int" has 32 bits. - -=========================================]) - AC_DEFINE(HAVE_FAKE_INT_TYPES, 1, [Define if intXX_t types are not available.]) -fi - -AC_CHECK_TYPES(uintptr_t, [], [], -[#if HAVE_INTTYPES_H -# include -#endif -#if HAVE_SYS_TYPES_H -# include -#endif -]) - -AC_CHECK_SIZEOF(void *) -AC_CHECK_SIZEOF(unsigned long) -AC_CHECK_SIZEOF(unsigned int) - - -dnl -dnl ntohs, ntohl (need them in C++ code) -dnl - -AC_LANG_CPLUSPLUS -AC_CHECK_HEADERS(byteorder.h netinet/in.h sys/param.h) -AC_MSG_CHECKING([whether ntohs and ntohl are defined]) -ac_ntoh_defined=no -AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[#if HAVE_SYS_TYPES_H -# include -#endif -#if HAVE_BYTEORDER_H -# include -#elif HAVE_NETINET_IN_H -# include -#elif HAVE_SYS_PARAM_H -# include -#endif -]], [[(void) ntohs(0x0020), (void) ntohl(0x03040020);]])], - [AC_MSG_RESULT(yes) -ac_ntoh_defined=yes], - [AC_MSG_RESULT(no)]) -if test $ac_ntoh_defined = no; then - AC_CHECK_HEADERS([arpa/inet.h], [have_arpa_inet_h=yes], [have_arpa_inet_h=no]) - if test $have_arpa_inet_h = yes; then - AC_MSG_CHECKING([whether ntohs and ntohl are defined in ]) - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[#if HAVE_SYS_TYPES_H -# include -#endif -#include -]], [[(void) ntohs(0x0020), (void) ntohl(0x03040020);]])], - [AC_MSG_RESULT(yes) -AC_DEFINE(NEED_ARPA_INET_H, 1, [Define to 1 if you must include to get `ntohl'.]) -ac_ntoh_defined=yes], - [AC_MSG_RESULT(no)]) - fi -fi -if test $ac_ntoh_defined = no; then - AC_MSG_ERROR([ -========================================= - -Cannot find a definition for ntohs and/or ntohl! - -=========================================]) -fi -AC_LANG_C - - -dnl -dnl is va_list addressable? -dnl - -AC_LANG_CPLUSPLUS -AC_CACHE_CHECK([for addressable va_list type], - ac_cv_va_list_addr, - [AC_TRY_COMPILE([#include -void f(va_list *) { -} -void g(va_list val) { - f(&val); -} -void h(int a, ...) { - va_list val; - va_start(val, a); - g(val); - va_end(val); -}], [h(2, 3, 4);], ac_cv_va_list_addr=yes, ac_cv_va_list_addr=no)]) -if test "x$ac_cv_va_list_addr" = xyes; then - AC_DEFINE(HAVE_ADDRESSABLE_VA_LIST, 1, [Define if the va_list type is addressable.]) -fi - - -dnl -dnl verbatim portions of the header -dnl - -AC_DEFINE(HAVE_PERMSTRING, 1, [Define if PermStrings are available.]) -AC_DEFINE(MMAFM_RUN_MMPFB, 1, [Define to 0 if you don't want mmafm to run mmpfb when it needs to get an intermediate master conversion program.]) -dnl PATHNAME_SEPARATOR? - -AH_TOP([#ifndef LCDF_TYPETOOLS_CONFIG_H -#define LCDF_TYPETOOLS_CONFIG_H]) - -AH_BOTTOM([/* Allow compilation on Windows (thanks, Fabrice Popineau). */ -#ifdef WIN32 -# include -#else -# define CDECL /* nothing */ -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* Prototype strerror if we don't have it. */ -#if !HAVE_STRERROR -char *strerror(int errno); -#endif - -/* Prototype good_strtod if we need it. */ -#if BROKEN_STRTOD -double good_strtod(const char *nptr, char **endptr); -#endif - -#ifdef __cplusplus -} -/* Get rid of a possible inline macro under C++. */ -# define inline inline -#endif - -#endif /* LCDF_TYPETOOLS_CONFIG_H */]) - - -dnl -dnl set path variables -dnl - -shell_expand () { - val=`eval echo '$'"$1"` - while echo "x$val" | fgrep '$' >/dev/null 2>&1; do val=`eval echo "$val"`; done - eval "$1='$val'" -} - -dnl Preset $prefix and $exec_prefix. -test "x$prefix" = xNONE && prefix=$ac_default_prefix -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -shell_expand datadir - -AC_DEFINE_UNQUOTED(SHAREDIR, "$datadir/lcdf-typetools", [Data directory.]) - - -dnl -dnl Output -dnl - -AC_OUTPUT(Makefile liblcdf/Makefile libefont/Makefile cfftot1/Makefile mmafm/Makefile mmpfb/Makefile otfinfo/Makefile otftotfm/Makefile t1dotlessj/Makefile t1lint/Makefile t1reencode/Makefile t1testpage/Makefile ttftotype42/Makefile) diff --git a/Build/source/texk/lcdf-typetools/include/lcdf/permstr.hh b/Build/source/texk/lcdf-typetools/include/lcdf/permstr.hh index 2db15772ded..82d338140c9 100644 --- a/Build/source/texk/lcdf-typetools/include/lcdf/permstr.hh +++ b/Build/source/texk/lcdf-typetools/include/lcdf/permstr.hh @@ -4,10 +4,11 @@ #include #include #include +#include #include class PermString; -inline bool operator==(PermString, PermString); -inline bool operator!=(PermString, PermString); +inline bool operator==(PermString a, PermString b); +inline bool operator!=(PermString a, PermString b); class PermString { struct Doodad; public: @@ -16,25 +17,37 @@ class PermString { struct Doodad; public: // static global PermStrings. struct Initializer { Initializer(); }; - PermString() : _rep(zero_char_doodad.data) { } - explicit PermString(char c); - inline PermString(const char*); - inline PermString(const char*, int); - inline PermString(const char*, const char*); - - inline operator bool() const; + PermString() + : _rep(zero_char_doodad.data) { + } + explicit PermString(char c) + : _rep(one_char_doodad[(unsigned char) c].data) { + } + inline PermString(const char *s); + inline PermString(const char *s, int len); + inline PermString(const char *begin, const char *end); + + typedef int (PermString::*unspecified_bool_type)() const; + inline operator unspecified_bool_type() const; inline bool operator!() const; inline int length() const; - char operator[](int) const; - const char* begin() const { return _rep; } - inline const char* end() const; + char operator[](int i) const; + + inline const char *c_str() const { + return _rep; + } + inline char operator*() const { + return *_rep; + } + + inline const char *begin() const; + inline const char *end() const; + + inline bool equals(const char *s, int len) const; + friend inline bool operator==(PermString a, PermString b); + friend inline bool operator!=(PermString a, PermString b); - friend inline bool operator==(PermString, PermString); - friend inline bool operator!=(PermString, PermString); - - const char* c_str() const { return _rep; } - inline Capsule capsule() const; inline static PermString decapsule(Capsule c); @@ -46,12 +59,12 @@ class PermString { struct Doodad; public: private: struct Doodad { - Doodad* next; + Doodad *next; int length; char data[2]; }; - const char* _rep; + const char *_rep; PermString(Doodad* d) : _rep(d->data) { } void initialize(const char*, int); @@ -66,102 +79,115 @@ class PermString { struct Doodad; public: }; -inline -PermString::PermString(const char* s) +inline PermString::PermString(const char* s) { initialize(s, -1); } -inline -PermString::PermString(const char* s, int len) +inline PermString::PermString(const char* s, int len) { initialize(s, len); } -inline -PermString::PermString(const char* begin, const char* end) +inline PermString::PermString(const char* begin, const char* end) { assert(end); initialize(begin, end > begin ? end - begin : 0); } -inline -PermString::operator bool() const +inline PermString::operator unspecified_bool_type() const { - return _rep != zero_char_doodad.data; + return _rep != zero_char_doodad.data ? &PermString::length : 0; } -inline bool -PermString::operator!() const +inline bool PermString::operator!() const { return _rep == zero_char_doodad.data; } -inline int -PermString::length() const +inline int PermString::length() const { return doodad()->length; } -inline const char* -PermString::end() const +inline const char *PermString::begin() const +{ + return _rep; +} + +inline const char *PermString::end() const { return _rep + doodad()->length; } -inline bool -operator==(PermString a, PermString b) +inline char PermString::operator[](int i) const +{ + assert((unsigned) i < (unsigned) length()); + return c_str()[i]; +} + +inline bool operator==(PermString a, PermString b) { return a._rep == b._rep; } -bool operator==(PermString, const char*); +inline bool operator==(PermString a, const char *b) +{ + return (!a || !b ? !a && !b : strcmp(a.c_str(), b) == 0); +} -inline bool -operator==(const char* a, PermString b) +inline bool operator==(const char *a, PermString b) { return b == a; } -inline bool -operator!=(PermString a, PermString b) +inline bool operator!=(PermString a, PermString b) { return a._rep != b._rep; } -inline bool -operator!=(PermString a, const char* b) +inline bool operator!=(PermString a, const char *b) { return !(a == b); } -inline bool -operator!=(const char* a, PermString b) +inline bool operator!=(const char *a, PermString b) { return !(b == a); } -inline PermString::Capsule -PermString::capsule() const +inline bool operator<(PermString a, PermString b) +{ + // NOT lexicographic ordering! + return a.begin() < b.begin(); +} + +inline bool PermString::equals(const char *s, int len) const +{ + if (len > 0) + return len == length() && memcmp(s, _rep, len) == 0; + else + return strcmp(s, _rep) == 0; +} + +inline PermString::Capsule PermString::capsule() const { return doodad(); } -inline PermString -PermString::decapsule(Capsule c) +inline PermString PermString::decapsule(Capsule c) { return PermString(c); } -inline unsigned -hashcode(PermString s) +inline size_t hashcode(PermString s) { - return (uintptr_t)(s.c_str()); + return (uintptr_t) s.c_str(); } -PermString permprintf(const char*, ...); -PermString vpermprintf(const char*, va_list); -PermString permcat(PermString, PermString); -PermString permcat(PermString, PermString, PermString); +PermString permprintf(const char *format, ...); +PermString vpermprintf(const char *format, va_list val); + +PermString permcat(PermString a, PermString b); #endif diff --git a/Build/source/texk/lcdf-typetools/lcdf-typetools.spec b/Build/source/texk/lcdf-typetools/lcdf-typetools.spec index d527794de59..76c709032b2 100644 --- a/Build/source/texk/lcdf-typetools/lcdf-typetools.spec +++ b/Build/source/texk/lcdf-typetools/lcdf-typetools.spec @@ -1,6 +1,6 @@ Summary: Programs to manipulate OpenType and multiple-master fonts Name: lcdf-typetools -Version: 2.67 +Version: 2.68 Copyright: GPL Vendor: Little Cambridgeport Design Factory Group: Utilities/Printing diff --git a/Build/source/texk/lcdf-typetools/libefont/Makefile.in b/Build/source/texk/lcdf-typetools/libefont/Makefile.in index 17cb8d67ab5..ed15d89ebdc 100644 --- a/Build/source/texk/lcdf-typetools/libefont/Makefile.in +++ b/Build/source/texk/lcdf-typetools/libefont/Makefile.in @@ -33,7 +33,7 @@ POST_UNINSTALL = : subdir = libefont DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/liblcdf/Makefile.in b/Build/source/texk/lcdf-typetools/liblcdf/Makefile.in index 5c974fd93dd..55397c13099 100644 --- a/Build/source/texk/lcdf-typetools/liblcdf/Makefile.in +++ b/Build/source/texk/lcdf-typetools/liblcdf/Makefile.in @@ -33,7 +33,7 @@ POST_UNINSTALL = : subdir = liblcdf DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/liblcdf/permstr.cc b/Build/source/texk/lcdf-typetools/liblcdf/permstr.cc index 421714a0e35..4d6744215c3 100644 --- a/Build/source/texk/lcdf-typetools/liblcdf/permstr.cc +++ b/Build/source/texk/lcdf-typetools/liblcdf/permstr.cc @@ -2,7 +2,7 @@ /* permstr.{cc,hh} -- permanent strings * - * Copyright (c) 1998-2006 Eddie Kohler + * Copyright (c) 1998-2008 Eddie Kohler * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -21,7 +21,6 @@ #include #include - static PermString::Initializer initializer; PermString::Doodad PermString::zero_char_doodad = { @@ -125,7 +124,7 @@ PermString::initialize(const char* s, int length) return; } - unsigned int hash; + unsigned hash; int l; for (hash = 0, l = length, mm = m; l; mm++, l--) hash = (hash << 1) + scatter[*mm]; @@ -149,40 +148,10 @@ PermString::initialize(const char* s, int length) _rep = buck->data; } -PermString::PermString(char c) -{ - unsigned char u = (unsigned char) c; - _rep = one_char_doodad[u].data; -} - - - -bool -operator==(PermString a, const char *b) -{ - if (!a || !b) - return !a && !b; - int l = strlen(b); - return a.length() == l && memcmp(a.c_str(), b, l) == 0; -} - - -char -PermString::operator[](int e) const -{ - assert(e >= 0 && e <= length()); - if (e >= 0 && e < length()) - return c_str()[e]; - else - return 0; -} - - static int pspos; static int pscap = 64; static char *psc = (char *)malloc(pscap); - static void append(const char *s, int len) { @@ -223,11 +192,11 @@ vpermprintf(const char *s, va_list val) int iflag = -1; while (1) switch (*++s) { - + case '0': /* zeroflag = 1; */ break; - + case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': assert(iflag == -1 /* Too many decimal flags in permprintf */); @@ -237,12 +206,12 @@ vpermprintf(const char *s, va_list val) s++; } break; - + case '*': assert(iflag == -1 /* iflag given */); iflag = va_arg(val, int); break; - + case 's': { const char *x = va_arg(val, const char *); if (x) { @@ -259,7 +228,7 @@ vpermprintf(const char *s, va_list val) append(&c, 1); goto pctdone; } - + case 'p': { PermString::Capsule x = va_arg(val, PermString::Capsule); PermString px; @@ -271,24 +240,24 @@ vpermprintf(const char *s, va_list val) append(px.c_str(), iflag); goto pctdone; } - + case 'd': { // FIXME FIXME rewrite for sense int x = va_arg(val, int); if (pspos == pscap) extend(1); - + // FIXME -2^31 unsigned int ux = x; if (x < 0) { psc[pspos++] = '-'; ux = -x; } - + int numdigits = 0; for (unsigned digcountx = ux; digcountx > 9; digcountx /= 10) numdigits++; - + extend(numdigits + 1); int digit = numdigits; do { @@ -297,10 +266,10 @@ vpermprintf(const char *s, va_list val) digit--; } while (ux); pspos += numdigits + 1; - + goto pctdone; } - + case 'g': { // FIXME FIXME rewrite for sense double x = va_arg(val, double); @@ -312,11 +281,11 @@ vpermprintf(const char *s, va_list val) pspos += len; goto pctdone; } - + default: assert(0 /* Bad % in permprintf */); goto pctdone; - + } pctdone: @@ -326,9 +295,7 @@ vpermprintf(const char *s, va_list val) return PermString(psc, pspos); } - -PermString -permprintf(const char *s, ...) +PermString permprintf(const char *s, ...) { va_list val; va_start(val, s); @@ -337,31 +304,16 @@ permprintf(const char *s, ...) return p; } - -PermString -permcat(PermString p1, PermString p2) -{ - unsigned l1 = p1.length(); - unsigned l2 = p2.length(); - char *s = new char[l1 + l2]; - memcpy(s, p1.c_str(), l1); - memcpy(s + l1, p2.c_str(), l2); - PermString p(s, l1 + l2); - delete[] s; - return p; -} - -PermString -permcat(PermString p1, PermString p2, PermString p3) +PermString permcat(PermString a, PermString b) { - unsigned l1 = p1.length(); - unsigned l2 = p2.length(); - unsigned l3 = p3.length(); - char *s = new char[l1 + l2 + l3]; - memcpy(s, p1.c_str(), l1); - memcpy(s + l1, p2.c_str(), l2); - memcpy(s + l1 + l2, p3.c_str(), l3); - PermString p(s, l1 + l2 + l3); + if (!a || !b) + return a ? a : b; + unsigned al = a.length(); + unsigned bl = b.length(); + char *s = new char[al + bl]; + memcpy(s, a.c_str(), al); + memcpy(s + al, b.c_str(), bl); + PermString p(s, al + bl); delete[] s; return p; } diff --git a/Build/source/texk/lcdf-typetools/mmafm/Makefile.in b/Build/source/texk/lcdf-typetools/mmafm/Makefile.in index 8664b398f9d..d7131677d8a 100644 --- a/Build/source/texk/lcdf-typetools/mmafm/Makefile.in +++ b/Build/source/texk/lcdf-typetools/mmafm/Makefile.in @@ -34,7 +34,7 @@ bin_PROGRAMS = mmafm$(EXEEXT) subdir = mmafm DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/mmafm/mmafm.1 b/Build/source/texk/lcdf-typetools/mmafm/mmafm.1 index c56e333a0d5..a37ae534ab3 100644 --- a/Build/source/texk/lcdf-typetools/mmafm/mmafm.1 +++ b/Build/source/texk/lcdf-typetools/mmafm/mmafm.1 @@ -1,5 +1,5 @@ .\" -*-nroff-*- -.ds V 2.67 +.ds V 2.68 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/texk/lcdf-typetools/mmpfb/Makefile.in b/Build/source/texk/lcdf-typetools/mmpfb/Makefile.in index e15821f5727..a2daff581d5 100644 --- a/Build/source/texk/lcdf-typetools/mmpfb/Makefile.in +++ b/Build/source/texk/lcdf-typetools/mmpfb/Makefile.in @@ -34,7 +34,7 @@ bin_PROGRAMS = mmpfb$(EXEEXT) subdir = mmpfb DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/mmpfb/mmpfb.1 b/Build/source/texk/lcdf-typetools/mmpfb/mmpfb.1 index 9d4cc1be988..8daea584ff0 100644 --- a/Build/source/texk/lcdf-typetools/mmpfb/mmpfb.1 +++ b/Build/source/texk/lcdf-typetools/mmpfb/mmpfb.1 @@ -1,5 +1,5 @@ .\" -*-nroff-*- -.ds V 2.67 +.ds V 2.68 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/texk/lcdf-typetools/otfinfo/Makefile.in b/Build/source/texk/lcdf-typetools/otfinfo/Makefile.in index f55051dc67c..5184bda2bb4 100644 --- a/Build/source/texk/lcdf-typetools/otfinfo/Makefile.in +++ b/Build/source/texk/lcdf-typetools/otfinfo/Makefile.in @@ -34,7 +34,7 @@ bin_PROGRAMS = otfinfo$(EXEEXT) subdir = otfinfo DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/otfinfo/otfinfo.1 b/Build/source/texk/lcdf-typetools/otfinfo/otfinfo.1 index 9bef7bc8f1f..6b6940ab4e7 100644 --- a/Build/source/texk/lcdf-typetools/otfinfo/otfinfo.1 +++ b/Build/source/texk/lcdf-typetools/otfinfo/otfinfo.1 @@ -1,5 +1,5 @@ '\"t -.ds V 2.67 +.ds V 2.68 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/texk/lcdf-typetools/otftotfm/Makefile.in b/Build/source/texk/lcdf-typetools/otftotfm/Makefile.in index 60622f925b8..9fb215b4bde 100644 --- a/Build/source/texk/lcdf-typetools/otftotfm/Makefile.in +++ b/Build/source/texk/lcdf-typetools/otftotfm/Makefile.in @@ -34,7 +34,7 @@ bin_PROGRAMS = otftotfm$(EXEEXT) subdir = otftotfm DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/otftotfm/dvipsencoding.cc b/Build/source/texk/lcdf-typetools/otftotfm/dvipsencoding.cc index 94c1cc79486..a8b68fc2961 100644 --- a/Build/source/texk/lcdf-typetools/otftotfm/dvipsencoding.cc +++ b/Build/source/texk/lcdf-typetools/otftotfm/dvipsencoding.cc @@ -1,6 +1,6 @@ /* dvipsencoding.{cc,hh} -- store a DVIPS encoding * - * Copyright (c) 2003-2007 Eddie Kohler + * Copyright (c) 2003-2008 Eddie Kohler * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -754,7 +754,23 @@ DvipsEncoding::make_metrics(Metrics &metrics, const FontInfo &finfo, Secondary * // find named glyph, if any Efont::OpenType::Glyph named_glyph = finfo.glyphid(chname); - +#if 0 + // 2.May.2008: ff, fi, fl, ffi, and ffl might map to f_f, f_i, f_l, + // f_f_i, and f_f_l + if (!named_glyph && chname.length() > 0 && chname.length() <= 3 + && chname[0] == 'f') { + if (chname.equals("ff", 2)) + named_glyph = finfo.glyphid("f_f"); + else if (chname.equals("fi", 2)) + named_glyph = finfo.glyphid("f_i"); + else if (chname.equals("fl", 2)) + named_glyph = finfo.glyphid("f_l"); + else if (chname.equals("ffi", 2)) + named_glyph = finfo.glyphid("f_f_i"); + else if (chname.equals("ffl", 2)) + named_glyph = finfo.glyphid("f_f_l"); + } +#endif // do not use a Unicode-mapped glyph if literal if (literal) glyph = named_glyph; diff --git a/Build/source/texk/lcdf-typetools/otftotfm/metrics.cc b/Build/source/texk/lcdf-typetools/otftotfm/metrics.cc index 8386263ecdc..4a6d40a0be7 100644 --- a/Build/source/texk/lcdf-typetools/otftotfm/metrics.cc +++ b/Build/source/texk/lcdf-typetools/otftotfm/metrics.cc @@ -1,6 +1,6 @@ /* metrics.{cc,hh} -- an encoding during and after OpenType features * - * Copyright (c) 2003-2007 Eddie Kohler + * Copyright (c) 2003-2008 Eddie Kohler * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -1030,17 +1030,30 @@ Metrics::cut_encoding(int size) namespace { // preference-sorting extra characters -enum { BASIC_LATIN_SCORE = 2, LATIN1_SUPPLEMENT_SCORE = 5, - LOW_16_SCORE = 6, OTHER_SCORE = 7, NOCHAR_SCORE = 100000, - CONTEXT_PENALTY = 4 }; +enum { + CONVENTIONAL_F_LIGATURE_SCORE = 1, + CONVENTIONAL_F_F_LIGATURE_SCORE = 2, + BASIC_LATIN_LOWER_SCORE = 3, + BASIC_LATIN_UPPER_SCORE = 4, + BASIC_LATIN_OTHER_SCORE = 5, + LATIN1_SUPPLEMENT_SCORE = 6, + LOW_16_SCORE = 7, + OTHER_SCORE = 8, + NOCHAR_SCORE = 100000, + CONTEXT_PENALTY = 4 +}; static int unicode_score(uint32_t u) { if (u == 0) return NOCHAR_SCORE; + else if (u >= 'a' && u <= 'z') + return BASIC_LATIN_LOWER_SCORE; + else if (u >= 'A' && u <= 'Z') + return BASIC_LATIN_UPPER_SCORE; else if (u < 0x0080) - return BASIC_LATIN_SCORE; + return BASIC_LATIN_OTHER_SCORE; else if (u < 0x0100) return LATIN1_SUPPLEMENT_SCORE; else if (u < 0x8000) @@ -1106,8 +1119,24 @@ Metrics::shrink_encoding(int size, const DvipsEncoding &dvipsenc, ErrorHandler * changed = false; for (Ligature3 *l = all_ligs.begin(); l != all_ligs.end(); l++) { int score = scores[l->in1] + scores[l->in2]; - if (score < scores[l->out]) + if (score < scores[l->out]) { + /* 2.May.2008: Prefer conventional f-ligatures. */ + if (score == 2 * BASIC_LATIN_LOWER_SCORE + && _encoding[l->in1].unicode == 'f' + && (_encoding[l->in2].unicode == 'f' + || _encoding[l->in2].unicode == 'i' + || _encoding[l->in2].unicode == 'l')) + score = CONVENTIONAL_F_LIGATURE_SCORE; + else if (score == CONVENTIONAL_F_LIGATURE_SCORE + BASIC_LATIN_LOWER_SCORE) { + if (scores[l->in1] == CONVENTIONAL_F_LIGATURE_SCORE + && (_encoding[l->in2].unicode == 'i' + || _encoding[l->in2].unicode == 'l')) + score = CONVENTIONAL_F_F_LIGATURE_SCORE; + else + score = 3 * BASIC_LATIN_LOWER_SCORE; + } scores[l->out] = score; + } } for (Code c = 0; c < _encoding.size(); c++) @@ -1219,7 +1248,8 @@ Metrics::shrink_encoding(int size, const DvipsEncoding &dvipsenc, ErrorHandler * errh->lwarning(" ", (unencoded.size() == 1 ? "not enough room in encoding, ignoring %d glyph" : "not enough room in encoding, ignoring %d glyphs"), unencoded.size()); errh->lmessage(" ", "(\ This encoding doesn't have room for all the glyphs used by the\n\ -font, so I've ignored these:\n%s.)", sa.c_str()); +font, so these have been left out:\n%s.\n\ +To select specific glyphs, add them to the input encoding.)", sa.c_str()); } /* Reencode changed slots. */ diff --git a/Build/source/texk/lcdf-typetools/otftotfm/otftotfm.1 b/Build/source/texk/lcdf-typetools/otftotfm/otftotfm.1 index 6875aeae000..b04203bbf55 100644 --- a/Build/source/texk/lcdf-typetools/otftotfm/otftotfm.1 +++ b/Build/source/texk/lcdf-typetools/otftotfm/otftotfm.1 @@ -1,5 +1,5 @@ '\"t -.ds V 2.67 +.ds V 2.68 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/texk/lcdf-typetools/t1dotlessj/Makefile.in b/Build/source/texk/lcdf-typetools/t1dotlessj/Makefile.in index 2cdd9df1114..e86a5eef87b 100644 --- a/Build/source/texk/lcdf-typetools/t1dotlessj/Makefile.in +++ b/Build/source/texk/lcdf-typetools/t1dotlessj/Makefile.in @@ -34,7 +34,7 @@ bin_PROGRAMS = t1dotlessj$(EXEEXT) subdir = t1dotlessj DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/t1dotlessj/t1dotlessj.1 b/Build/source/texk/lcdf-typetools/t1dotlessj/t1dotlessj.1 index eeeeadbceb2..48e9b0d871e 100644 --- a/Build/source/texk/lcdf-typetools/t1dotlessj/t1dotlessj.1 +++ b/Build/source/texk/lcdf-typetools/t1dotlessj/t1dotlessj.1 @@ -1,4 +1,4 @@ -.ds V 2.67 +.ds V 2.68 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/texk/lcdf-typetools/t1lint/Makefile.in b/Build/source/texk/lcdf-typetools/t1lint/Makefile.in index b328e968ab4..820124286fa 100644 --- a/Build/source/texk/lcdf-typetools/t1lint/Makefile.in +++ b/Build/source/texk/lcdf-typetools/t1lint/Makefile.in @@ -34,7 +34,7 @@ bin_PROGRAMS = t1lint$(EXEEXT) subdir = t1lint DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/t1lint/t1lint.1 b/Build/source/texk/lcdf-typetools/t1lint/t1lint.1 index b4c19fc11ee..03855025691 100644 --- a/Build/source/texk/lcdf-typetools/t1lint/t1lint.1 +++ b/Build/source/texk/lcdf-typetools/t1lint/t1lint.1 @@ -1,4 +1,4 @@ -.ds V 2.67 +.ds V 2.68 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/texk/lcdf-typetools/t1reencode/Makefile.in b/Build/source/texk/lcdf-typetools/t1reencode/Makefile.in index 095287ad7b9..5a71ce95aa6 100644 --- a/Build/source/texk/lcdf-typetools/t1reencode/Makefile.in +++ b/Build/source/texk/lcdf-typetools/t1reencode/Makefile.in @@ -34,7 +34,7 @@ bin_PROGRAMS = t1reencode$(EXEEXT) subdir = t1reencode DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/t1reencode/t1reencode.1 b/Build/source/texk/lcdf-typetools/t1reencode/t1reencode.1 index a9dd293326f..3402cdf1414 100644 --- a/Build/source/texk/lcdf-typetools/t1reencode/t1reencode.1 +++ b/Build/source/texk/lcdf-typetools/t1reencode/t1reencode.1 @@ -1,4 +1,4 @@ -.ds V 2.67 +.ds V 2.68 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/texk/lcdf-typetools/t1testpage/Makefile.in b/Build/source/texk/lcdf-typetools/t1testpage/Makefile.in index 0ceaa1c4443..372edba86b7 100644 --- a/Build/source/texk/lcdf-typetools/t1testpage/Makefile.in +++ b/Build/source/texk/lcdf-typetools/t1testpage/Makefile.in @@ -34,7 +34,7 @@ bin_PROGRAMS = t1testpage$(EXEEXT) subdir = t1testpage DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/t1testpage/t1testpage.1 b/Build/source/texk/lcdf-typetools/t1testpage/t1testpage.1 index d60079bdc11..582c40ae15c 100644 --- a/Build/source/texk/lcdf-typetools/t1testpage/t1testpage.1 +++ b/Build/source/texk/lcdf-typetools/t1testpage/t1testpage.1 @@ -1,4 +1,4 @@ -.ds V 2.67 +.ds V 2.68 .de M .BR "\\$1" "(\\$2)\\$3" .. diff --git a/Build/source/texk/lcdf-typetools/ttftotype42/Makefile.in b/Build/source/texk/lcdf-typetools/ttftotype42/Makefile.in index a91aac6bbd5..cbd6698c082 100644 --- a/Build/source/texk/lcdf-typetools/ttftotype42/Makefile.in +++ b/Build/source/texk/lcdf-typetools/ttftotype42/Makefile.in @@ -34,7 +34,7 @@ bin_PROGRAMS = ttftotype42$(EXEEXT) subdir = ttftotype42 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/configure.in +am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d diff --git a/Build/source/texk/lcdf-typetools/ttftotype42/ttftotype42.1 b/Build/source/texk/lcdf-typetools/ttftotype42/ttftotype42.1 index 8890bd167eb..2b9cd17c233 100644 --- a/Build/source/texk/lcdf-typetools/ttftotype42/ttftotype42.1 +++ b/Build/source/texk/lcdf-typetools/ttftotype42/ttftotype42.1 @@ -1,4 +1,4 @@ -.ds V 2.67 +.ds V 2.68 .de M .BR "\\$1" "(\\$2)\\$3" .. -- cgit v1.2.3