Hello community,
here is the log from the commit of package lcdf-typetools for openSUSE:Factory checked in at 2014-03-18 14:14:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/lcdf-typetools (Old)
and /work/SRC/openSUSE:Factory/.lcdf-typetools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lcdf-typetools"
Changes:
--------
--- /work/SRC/openSUSE:Factory/lcdf-typetools/lcdf-typetools.changes 2013-08-14 22:45:18.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.lcdf-typetools.new/lcdf-typetools.changes 2014-03-18 14:14:54.000000000 +0100
@@ -1,0 +2,9 @@
+Sun Mar 16 02:00:11 UTC 2014 - mrdocs@opensuse.org
+
+- update to 2.100
++ otftotfm: On some fonts, ligature handling could enter an infinite
+ loop. Fix this. Reported by Marc Penninga and Bob Tennent.
++ Fix updmap runs.
++ Build updates for C++11 and other compilers.
+
+-------------------------------------------------------------------
Old:
----
lcdf-typetools-2.99.tar.gz
New:
----
lcdf-typetools-2.100.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ lcdf-typetools.spec ++++++
--- /var/tmp/diff_new_pack.YIWEeB/_old 2014-03-18 14:14:55.000000000 +0100
+++ /var/tmp/diff_new_pack.YIWEeB/_new 2014-03-18 14:14:55.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package lcdf-typetools
#
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
Summary: Programs to manipulate OpenType and multiple-master fonts
Name: lcdf-typetools
-Version: 2.99
+Version: 2.100
Release: 0
License: GPL-2.0
Url: http://www.lcdf.org/type/
++++++ lcdf-typetools-2.99.tar.gz -> lcdf-typetools-2.100.tar.gz ++++++
++++ 2383 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/NEWS new/lcdf-typetools-2.100/NEWS
--- old/lcdf-typetools-2.99/NEWS 2013-08-13 23:31:28.000000000 +0200
+++ new/lcdf-typetools-2.100/NEWS 2014-01-08 17:24:54.000000000 +0100
@@ -1,5 +1,15 @@
LCDF Typetools NEWS
+Version 2.100 8.Jan.2014
+
+* otftotfm: On some fonts, ligature handling could enter an infinite
+ loop. Fix this. Reported by Marc Penninga and Bob Tennent.
+
+* Fix updmap runs.
+
+* Build updates for C++11 and other compilers.
+
+
Version 2.99 13.Aug.2013
* cfftot1: Correct bug that rarely corrupted Type 1 output fonts.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/autoconf.h.in new/lcdf-typetools-2.100/autoconf.h.in
--- old/lcdf-typetools-2.99/autoconf.h.in 2013-08-13 23:32:55.000000000 +0200
+++ new/lcdf-typetools-2.100/autoconf.h.in 2014-01-08 17:25:18.000000000 +0100
@@ -223,6 +223,5 @@
# endif
#endif
-/* Define to 1 if your processor stores words with the least significant byte
- first (like Intel and VAX, unlike Motorola and SPARC). */
-#undef WORDS_LITTLEENDIAN
+/* Define if WORDS_BIGENDIAN has been set. */
+#undef WORDS_BIGENDIAN_SET
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/cfftot1/cfftot1.1 new/lcdf-typetools-2.100/cfftot1/cfftot1.1
--- old/lcdf-typetools-2.99/cfftot1/cfftot1.1 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/cfftot1/cfftot1.1 2014-01-08 17:26:03.000000000 +0100
@@ -1,4 +1,4 @@
-.ds V 2.99
+.ds V 2.100
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/configure.ac new/lcdf-typetools-2.100/configure.ac
--- old/lcdf-typetools-2.99/configure.ac 2013-08-13 23:31:39.000000000 +0200
+++ new/lcdf-typetools-2.100/configure.ac 2014-01-08 17:25:10.000000000 +0100
@@ -1,5 +1,5 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT([lcdf-typetools], [2.99])
+AC_INIT([lcdf-typetools], [2.100])
AC_CONFIG_SRCDIR([NEWS])
AM_INIT_AUTOMAKE
AC_CONFIG_HEADERS([autoconf.h])
@@ -135,8 +135,8 @@
dnl endianness
dnl
-AC_C_BIGENDIAN(, [AC_DEFINE([WORDS_LITTLEENDIAN], 1, [Define to 1 if your processor stores words with the least significant byte
- first (like Intel and VAX, unlike Motorola and SPARC).])])
+AC_DEFINE([WORDS_BIGENDIAN_SET], [1], [Define if WORDS_BIGENDIAN has been set.])
+AC_C_BIGENDIAN()
dnl
@@ -241,7 +241,7 @@
dnl
AC_LANG_CPLUSPLUS
-AC_CHECK_HEADERS(byteorder.h netinet/in.h sys/param.h)
+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(
@@ -290,6 +290,7 @@
=========================================])
fi
AC_LANG_C
+AC_SEARCH_LIBS([ntohs], [-lnet -lwinsock32])
dnl
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/include/lcdf/clp.h new/lcdf-typetools-2.100/include/lcdf/clp.h
--- old/lcdf-typetools-2.99/include/lcdf/clp.h 2013-08-13 22:12:16.000000000 +0200
+++ new/lcdf-typetools-2.100/include/lcdf/clp.h 2014-01-08 16:36:51.000000000 +0100
@@ -8,7 +8,7 @@
/* clp.h - Public interface to CLP.
* This file is part of CLP, the command line parser package.
*
- * Copyright (c) 1997-2012 Eddie Kohler, ekohler@gmail.com
+ * Copyright (c) 1997-2013 Eddie Kohler, ekohler@gmail.com
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -165,7 +165,7 @@
* value types, and current arguments.
* @sa Clp_NewParser, Clp_SetOptions, Clp_SetArguments */
struct Clp_Parser {
- int opt; /**< The last option. */
+ const Clp_Option *option; /**< The last option. */
int negated; /**< Whether the last option was negated. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/lcdf-typetools.spec new/lcdf-typetools-2.100/lcdf-typetools.spec
--- old/lcdf-typetools-2.99/lcdf-typetools.spec 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/lcdf-typetools.spec 2014-01-08 17:26:03.000000000 +0100
@@ -1,6 +1,6 @@
Summary: Programs to manipulate OpenType and multiple-master fonts
Name: lcdf-typetools
-Version: 2.99
+Version: 2.100
Copyright: GPL
Vendor: Little Cambridgeport Design Factory http://www.lcdf.org/
Group: Utilities/Printing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/libefont/cff.cc new/lcdf-typetools-2.100/libefont/cff.cc
--- old/lcdf-typetools-2.99/libefont/cff.cc 2013-08-13 22:22:52.000000000 +0200
+++ new/lcdf-typetools-2.100/libefont/cff.cc 2014-01-08 16:36:51.000000000 +0100
@@ -28,7 +28,7 @@
#include
#ifndef static_assert
-#define static_assert(c) switch (c) case 0: case (c):
+#define static_assert(c, msg) switch (c) case 0: case (c):
#endif
namespace Efont {
@@ -346,9 +346,12 @@
: _data_string(s), _data(reinterpret_cast(_data_string.data())), _len(_data_string.length()),
_strings_map(-2)
{
- static_assert((sizeof(standard_strings) / sizeof(standard_strings[0])) == NSTANDARD_STRINGS);
- static_assert((sizeof(standard_encoding) / sizeof(standard_encoding[0])) == 256);
- static_assert((sizeof(expert_encoding) / sizeof(expert_encoding[0])) == 256);
+ static_assert((sizeof(standard_strings) / sizeof(standard_strings[0])) == NSTANDARD_STRINGS,
+ "NSTANDARD_STRINGS defined incorrectly");
+ static_assert((sizeof(standard_encoding) / sizeof(standard_encoding[0])) == 256,
+ "standard_encoding has wrong size");
+ static_assert((sizeof(expert_encoding) / sizeof(expert_encoding[0])) == 256,
+ "expert_encoding has wrong size");
_error = parse_header(errh ? errh : ErrorHandler::silent_handler());
}
@@ -372,7 +375,7 @@
if (_len == 0)
return errh->error("not a PostScript-flavored OpenType font"), -EFAULT;
if (_len < HEADER_SIZE)
- return errh->error("CFF file too small for header (have %d, want %d)", _len, HEADER_SIZE), -EFAULT;
+ return errh->error("CFF file corrupted (too small)"), -EFAULT;
if (_data[0] != 1) // major version number
return errh->error("bad major version number %d", _data[0]), -ERANGE;
int hdrSize = _data[2], offSize = _data[3];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/libefont/otf.cc new/lcdf-typetools-2.100/libefont/otf.cc
--- old/lcdf-typetools-2.99/libefont/otf.cc 2013-08-13 22:23:45.000000000 +0200
+++ new/lcdf-typetools-2.100/libefont/otf.cc 2014-01-08 16:36:51.000000000 +0100
@@ -26,10 +26,6 @@
#include // for ntohl()
#include
-#ifndef static_assert
-#define static_assert(c) switch (c) case 0: case (c):
-#endif
-
namespace Efont { namespace OpenType {
Vector<PermString> debug_glyph_names;
@@ -52,7 +48,7 @@
int len = length();
const uint8_t *data = this->data();
if (HEADER_SIZE > len)
- return errh->error("OTF too small for header"), -EFAULT;
+ return errh->error("OTF file corrupted (too small)"), -EFAULT;
if ((data[0] != 'O' || data[1] != 'T' || data[2] != 'T' || data[3] != 'O')
&& (data[0] != '\000' || data[1] != '\001'))
return errh->error("not an OpenType font (bad magic number)"), -ERANGE;
@@ -815,7 +811,7 @@
// USHORT glyphCount
const uint8_t *data = _str.udata();
if (_str.length() < HEADERSIZE)
- return errh->error("OTF coverage table too small for header");
+ return errh->error("OTF coverage table too small");
int coverageFormat = Data::u16_aligned(data);
int count = Data::u16_aligned(data + 2);
@@ -1252,7 +1248,7 @@
// USHORT glyphCount
const uint8_t *data = _str.udata();
if (_str.length() < 6) // NB: prevents empty format-2 tables
- return errh->error("OTF class def table too small for header");
+ return errh->error("OTF class def table too small");
int classFormat = Data::u16_aligned(data);
int len;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/libefont/otfcmap.cc new/lcdf-typetools-2.100/libefont/otfcmap.cc
--- old/lcdf-typetools-2.99/libefont/otfcmap.cc 2013-08-13 22:18:57.000000000 +0200
+++ new/lcdf-typetools-2.100/libefont/otfcmap.cc 2014-01-08 16:36:51.000000000 +0100
@@ -45,7 +45,7 @@
int len = _str.length();
const uint8_t *data = _str.udata();
if (HEADER_SIZE > len)
- return errh->error("OTF cmap too small for header"), -EFAULT;
+ return errh->error("OTF cmap too small"), -EFAULT;
if (!(data[0] == '\000' && data[1] == '\000'))
return errh->error("bad cmap version number"), -ERANGE;
_ntables = USHORT_AT(data + 2);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/libefont/otfos2.cc new/lcdf-typetools-2.100/libefont/otfos2.cc
--- old/lcdf-typetools-2.99/libefont/otfos2.cc 2013-08-13 22:18:57.000000000 +0200
+++ new/lcdf-typetools-2.100/libefont/otfos2.cc 2014-01-08 16:36:51.000000000 +0100
@@ -38,7 +38,7 @@
// HEADER FORMAT:
// USHORT version
if (HEADER_SIZE > _data.length())
- return errh->error("OTF OS/2 too small for header"), -EFAULT;
+ return errh->error("OTF OS/2 table too small"), -EFAULT;
if (_data.u16(0) > 4)
return errh->error("unexpected OS/2 version number %d", _data.u16(0)), -ERANGE;
return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/libefont/otfpost.cc new/lcdf-typetools-2.100/libefont/otfpost.cc
--- old/lcdf-typetools-2.99/libefont/otfpost.cc 2013-08-13 22:18:57.000000000 +0200
+++ new/lcdf-typetools-2.100/libefont/otfpost.cc 2014-01-08 16:36:51.000000000 +0100
@@ -122,7 +122,7 @@
int len = _str.length();
const uint8_t *data = _str.udata();
if (HEADER_SIZE > len)
- return errh->error("OTF post too small for header"), -EFAULT;
+ return errh->error("OTF post table too small"), -EFAULT;
_version = USHORT_AT(data); // ignore minor version number
// except that version 2.5 isn't compatible
if (_version < 1 || _version > 3
@@ -136,7 +136,7 @@
if (HEADER_SIZE + 2 > len
|| ((_nglyphs = USHORT_AT(data + HEADER_SIZE)),
HEADER_SIZE + 2 + 2 * _nglyphs > len))
- return errh->error("OTF post too small for glyph map"), -EFAULT;
+ return errh->error("OTF post table too small for glyph map"), -EFAULT;
const uint8_t *gni = data + HEADER_SIZE + 2;
const uint8_t *names = gni + 2 * _nglyphs;
int next_name = N_MAC_GLYPHS, g;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/libefont/t1interp.cc new/lcdf-typetools-2.100/libefont/t1interp.cc
--- old/lcdf-typetools-2.99/libefont/t1interp.cc 2013-08-13 22:18:57.000000000 +0200
+++ new/lcdf-typetools-2.100/libefont/t1interp.cc 2014-01-08 16:36:51.000000000 +0100
@@ -31,7 +31,7 @@
#define CHECK_PATH_END() do { if (_state == S_PATH) { act_closepath(cmd); } _state = S_IPATH; } while (0)
#ifndef static_assert
-# define static_assert(c) switch (c) case 0: case (c):
+# define static_assert(c, msg) switch (c) case 0: case (c):
#endif
namespace Efont {
@@ -111,7 +111,8 @@
String
CharstringInterp::error_string(int error, int error_data)
{
- static_assert(-errLastError == (sizeof(error_formats) / sizeof(error_formats[0])) - 1);
+ static_assert(-errLastError == (sizeof(error_formats) / sizeof(error_formats[0])) - 1,
+ "errLastError defined incorrectly");
if (error >= 0)
return error_formats[0];
else if (error < errLastError)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/liblcdf/clp.c new/lcdf-typetools-2.100/liblcdf/clp.c
--- old/lcdf-typetools-2.99/liblcdf/clp.c 2013-08-13 22:18:57.000000000 +0200
+++ new/lcdf-typetools-2.100/liblcdf/clp.c 2014-01-08 16:36:51.000000000 +0100
@@ -2,7 +2,7 @@
/* clp.c - Complete source code for CLP.
* This file is part of CLP, the command line parser package.
*
- * Copyright (c) 1997-2012 Eddie Kohler, ekohler@gmail.com
+ * Copyright (c) 1997-2013 Eddie Kohler, ekohler@gmail.com
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -233,6 +233,14 @@
} Clp_StringList;
+static const Clp_Option clp_option_sentinel[] = {
+ {"", 0, Clp_NotOption, 0, 0},
+ {"", 0, Clp_Done, 0, 0},
+ {"", 0, Clp_BadOption, 0, 0},
+ {"", 0, Clp_Error, 0, 0}
+};
+
+
static int parse_string(Clp_Parser *, const char *, int, void *);
static int parse_int(Clp_Parser *, const char *, int, void *);
static int parse_bool(Clp_Parser *, const char *, int, void *);
@@ -430,6 +438,18 @@
}
}
+static void
+calculate_lmm(Clp_Parser *clp, const Clp_Option *opt, Clp_InternOption *iopt, int nopt)
+{
+ int i, j;
+ for (i = 0; i < nopt; ++i) {
+ iopt[i].lmmpos = iopt[i].lmmneg = 1;
+ iopt[i].lmmpos_short = iopt[i].lmmneg_short = 0;
+ for (j = 0; j < nopt; ++j)
+ compare_options(clp, &opt[i], &iopt[i], &opt[j], &iopt[j]);
+ }
+}
+
/** @param argc number of arguments
* @param argv argument array
* @param nopt number of option definitions
@@ -476,7 +496,7 @@
if (!clp || !cli || !iopt || !cli->valtype)
goto failed;
- clp->opt = -1;
+ clp->option = &clp_option_sentinel[-Clp_Done];
clp->negated = 0;
clp->have_val = 0;
clp->vstr = 0;
@@ -599,15 +619,9 @@
Clp_SetUTF8(Clp_Parser *clp, int utf8)
{
Clp_Internal *cli = clp->internal;
- int i, j, old_utf8 = cli->utf8;
+ int old_utf8 = cli->utf8;
cli->utf8 = utf8;
- for (i = 0; i < cli->nopt; ++i) {
- cli->iopt[i].lmmpos = cli->iopt[i].lmmneg = 1;
- cli->iopt[i].lmmpos_short = cli->iopt[i].lmmneg_short = 0;
- for (j = 0; j < cli->nopt; ++j)
- compare_options(clp, &cli->opt[i], &cli->iopt[i],
- &cli->opt[j], &cli->iopt[j]);
- }
+ calculate_lmm(clp, cli->opt, cli->iopt, cli->nopt);
return old_utf8;
}
@@ -679,7 +693,7 @@
int
Clp_SetOptionChar(Clp_Parser *clp, int c, int type)
{
- int i, j, long1pos, long1neg;
+ int i, long1pos, long1neg;
int old = Clp_OptionChar(clp, c);
Clp_Internal *cli = clp->internal;
@@ -718,13 +732,7 @@
/* Must recheck option set */
cli->long1pos = long1pos;
cli->long1neg = long1neg;
- for (i = 0; i < cli->nopt; ++i) {
- cli->iopt[i].lmmpos = cli->iopt[i].lmmneg = 1;
- cli->iopt[i].lmmpos_short = cli->iopt[i].lmmneg_short = 0;
- for (j = 0; j < cli->nopt; ++j)
- compare_options(clp, &cli->opt[i], &cli->iopt[i],
- &cli->opt[j], &cli->iopt[j]);
- }
+ calculate_lmm(clp, cli->opt, cli->iopt, cli->nopt);
}
return old;
@@ -762,7 +770,7 @@
{
Clp_Internal *cli = clp->internal;
Clp_InternOption *iopt;
- int i, j;
+ int i;
static unsigned opt_generation = 0;
if (nopt > cli->nopt) {
@@ -819,12 +827,7 @@
}
/* Check option set */
- for (i = 0; i < nopt; ++i) {
- iopt[i].lmmpos = iopt[i].lmmneg = 1;
- iopt[i].lmmpos_short = iopt[i].lmmneg_short = 0;
- for (j = 0; j < nopt; ++j)
- compare_options(clp, &opt[i], &iopt[i], &opt[j], &iopt[j]);
- }
+ calculate_lmm(clp, opt, iopt, nopt);
return 0;
}
@@ -1176,18 +1179,15 @@
}
if (complain) {
- const char *complaint;
- if (ambiguous)
- complaint = "ambiguous value %<%s%> for option %<%O%>";
- else {
- complaint = "unknown value %<%s%> for option %<%O%>";
+ const char *complaint = (ambiguous ? "ambiguous" : "invalid");
+ if (!ambiguous) {
ambiguous = sl->nitems_invalid_report;
for (idx = 0; idx < ambiguous; idx++)
ambiguous_values[idx] = idx;
}
return ambiguity_error
(clp, ambiguous, ambiguous_values, sl->items, sl->iopt,
- "", complaint, arg);
+ "", "option %<%O%> value %<%s%> is %s", arg, complaint);
} else
return 0;
}
@@ -1197,7 +1197,7 @@
finish_string_list(Clp_Parser *clp, int val_type, int flags,
Clp_Option *items, int nitems, int itemscap)
{
- int i, j;
+ int i;
Clp_StringList *clsl = (Clp_StringList *)malloc(sizeof(Clp_StringList));
Clp_InternOption *iopt = (Clp_InternOption *)malloc(sizeof(Clp_InternOption) * nitems);
if (!clsl || !iopt)
@@ -1219,12 +1219,8 @@
for (i = 0; i < nitems; i++) {
iopt[i].ilong = iopt[i].ipos = 1;
iopt[i].ishort = iopt[i].ineg = iopt[i].ilongoff = iopt[i].iprefmatch = 0;
- iopt[i].lmmpos = 1;
- iopt[i].lmmpos_short = 0;
}
- for (i = 0; i < nitems; i++)
- for (j = 0; j < nitems; j++)
- compare_options(clp, &items[i], &iopt[i], &items[j], &iopt[j]);
+ calculate_lmm(clp, items, iopt, nitems);
if (Clp_AddType(clp, val_type, 0, parse_string_list, clsl) >= 0)
return 0;
@@ -1759,8 +1755,10 @@
for (i = 0; i < cli->nopt; i++)
if (iopt[i].ishort && opt[i].short_name == c
- && (clp->negated ? iopt[i].ineg : iopt[i].ipos))
+ && (!clp->negated || iopt[i].ineg)) {
+ clp->negated = clp->negated || !iopt[i].ipos;
return i;
+ }
return -1;
}
@@ -1824,8 +1822,9 @@
/* Get the next argument or option */
if (!next_argument(clp, cli->option_processing ? 0 : 2)) {
clp->val.s = clp->vstr;
- clp->opt = clp->have_val ? Clp_NotOption : Clp_Done;
- return clp->opt;
+ optno = clp->have_val ? Clp_NotOption : Clp_Done;
+ clp->option = &clp_option_sentinel[-optno];
+ return optno;
}
clp->negated = cli->whole_negated;
@@ -1863,7 +1862,8 @@
Clp_OptionError(clp, "unrecognized option %<%s%s%>",
cli->option_chars, cli->xtext);
- return (clp->opt = Clp_BadOption);
+ clp->option = &clp_option_sentinel[-Clp_BadOption];
+ return Clp_BadOption;
}
/* Set the current option */
@@ -1876,20 +1876,27 @@
|| (!cli->iopt[optno].imandatory && !cli->iopt[optno].ioptional)) {
if (clp->have_val) {
Clp_OptionError(clp, "%<%O%> can%,t take an argument");
- clp->opt = Clp_BadOption;
- } else
- clp->opt = cli->opt[optno].option_id;
- return clp->opt;
+ clp->option = &clp_option_sentinel[-Clp_BadOption];
+ return Clp_BadOption;
+ } else {
+ clp->option = &cli->opt[optno];
+ return cli->opt[optno].option_id;
+ }
}
/* Get an argument if we need one, or if it's optional */
/* Sanity-check the argument type. */
opt = &cli->opt[optno];
- if (opt->val_type <= 0)
- return (clp->opt = Clp_Error);
+ if (opt->val_type <= 0) {
+ clp->option = &clp_option_sentinel[-Clp_Error];
+ return Clp_Error;
+ }
vtpos = val_type_binsearch(cli, opt->val_type);
- if (vtpos == cli->nvaltype || cli->valtype[vtpos].val_type != opt->val_type)
- return (clp->opt = Clp_Error);
+ if (vtpos == cli->nvaltype
+ || cli->valtype[vtpos].val_type != opt->val_type) {
+ clp->option = &clp_option_sentinel[-Clp_Error];
+ return Clp_Error;
+ }
/* complain == 1 only if the argument was explicitly given,
or it is mandatory. */
@@ -1909,16 +1916,15 @@
Clp_OptionError(clp, "%<%O%> requires a non-option argument");
else
Clp_OptionError(clp, "%<%O%> requires an argument");
- return (clp->opt = Clp_BadOption);
+ clp->option = &clp_option_sentinel[-Clp_BadOption];
+ return Clp_BadOption;
}
} else if (cli->is_short && !clp->have_val
- && cli->xtext[clp_utf8_charlen(cli, cli->xtext)]) {
+ && cli->xtext[clp_utf8_charlen(cli, cli->xtext)])
/* The -[option]argument case:
Assume that the rest of the current string is the argument. */
next_argument(clp, 1);
- complain = 1;
- }
/* Parse the argument */
if (clp->have_val) {
@@ -1926,14 +1932,16 @@
if (atr->func(clp, clp->vstr, complain, atr->user_data) <= 0) {
/* parser failed */
clp->have_val = 0;
- if (complain)
- return (clp->opt = Clp_BadOption);
- else
+ if (cli->iopt[optno].imandatory) {
+ clp->option = &clp_option_sentinel[-Clp_BadOption];
+ return Clp_BadOption;
+ } else
Clp_RestoreParser(clp, &clpsave);
}
}
- return (clp->opt = opt->option_id);
+ clp->option = opt;
+ return opt->option_id;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/liblcdf/md5.c new/lcdf-typetools-2.100/liblcdf/md5.c
--- old/lcdf-typetools-2.99/liblcdf/md5.c 2013-08-13 22:12:16.000000000 +0200
+++ new/lcdf-typetools-2.100/liblcdf/md5.c 2013-09-17 16:09:44.000000000 +0200
@@ -111,10 +111,10 @@
p2[0] = *p1++;
}
}
-#elif WORDS_LITTLEENDIAN
+#elif WORDS_BIGENDIAN_SET
memcpy(correct_words, data, 64);
#else
-# error "Neither WORDS_BIGENDIAN nor WORDS_LITTLEENDIAN is defined!"
+# error "WORDS_BIGENDIAN has not been set!"
#endif
@@ -310,13 +310,13 @@
#if WORDS_BIGENDIAN
#define X(a) do { *p++ = hd->a ; *p++ = hd->a >> 8; \
*p++ = hd->a >> 16; *p++ = hd->a >> 24; } while(0)
-#elif WORDS_LITTLEENDIAN
+#elif WORDS_BIGENDIAN_SET
/*#define X(a) do { *(uint32_t*)p = hd->##a ; p += 4; } while(0)*/
/* Unixware's cpp doesn't like the above construct so we do it his way:
* (reported by Allan Clark) */
#define X(a) do { *(uint32_t*)p = (*hd).a ; p += 4; } while(0)
#else
-# error "Neither WORDS_BIGENDIAN nor WORDS_LITTLEENDIAN is defined!"
+# error "WORDS_BIGENDIAN has not been set!"
#endif
X(A);
X(B);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/liblcdf/string.cc new/lcdf-typetools-2.100/liblcdf/string.cc
--- old/lcdf-typetools-2.99/liblcdf/string.cc 2013-08-13 22:18:57.000000000 +0200
+++ new/lcdf-typetools-2.100/liblcdf/string.cc 2013-09-17 16:09:44.000000000 +0200
@@ -643,7 +643,7 @@
} else {
# if WORDS_BIGENDIAN
# define get16(p) (((unsigned char) (p)[0] << 8) + (unsigned char) (p)[1])
-# elif WORDS_LITTLEENDIAN
+# elif WORDS_BIGENDIAN_SET
# define get16(p) ((unsigned char) (p)[0] + ((unsigned char) (p)[1] << 8))
# else
# error "unknown byte order"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/missing new/lcdf-typetools-2.100/missing
--- old/lcdf-typetools-2.99/missing 2013-08-13 22:12:30.000000000 +0200
+++ new/lcdf-typetools-2.100/missing 2013-08-13 22:26:21.000000000 +0200
@@ -1,10 +1,11 @@
#! /bin/sh
-# Common wrapper for a few potentially missing GNU programs.
+# Common stub for a few missing GNU programs while installing.
-scriptversion=2012-06-26.16; # UTC
+scriptversion=2012-01-06.13; # UTC
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
-# Originally written by Fran,cois Pinard , 1996.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard , 1996.
# 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
@@ -25,40 +26,68 @@
# the same distribution terms that you use for the rest of that program.
if test $# -eq 0; then
- echo 1>&2 "Try '$0 --help' for more information"
+ echo 1>&2 "Try \`$0 --help' for more information"
exit 1
fi
-case $1 in
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+ configure_ac=configure.ac
+else
+ configure_ac=configure.in
+fi
- --is-lightweight)
- # Used by our autoconf macros to check whether the available missing
- # script is modern enough.
- exit 0
- ;;
+msg="missing on your system"
- --run)
- # Back-compat with the calling convention used by older automake.
- shift
- ;;
+case $1 in
+--run)
+ # Try to run requested program, and just exit if it succeeds.
+ run=
+ shift
+ "$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
+ ;;
-h|--h|--he|--hel|--help)
echo "\
$0 [OPTION]... PROGRAM [ARGUMENT]...
-Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
-to PROGRAM being missing or too old.
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
Options:
-h, --help display this help and exit
-v, --version output version information and exit
+ --run try to run the given command, and emulate it if it fails
Supported PROGRAM values:
- aclocal autoconf autoheader autom4te automake makeinfo
- bison yacc flex lex help2man
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ autom4te touch the output file, or create a stub one
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ help2man touch the output file
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
-Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
-'g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
Send bug reports to ."
exit $?
@@ -70,141 +99,228 @@
;;
-*)
- echo 1>&2 "$0: unknown '$1' option"
- echo 1>&2 "Try '$0 --help' for more information"
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
exit 1
;;
esac
-# Run the given program, remember its exit status.
-"$@"; st=$?
+# normalize program name to check for.
+program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program). This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+ lex*|yacc*)
+ # Not GNU programs, they don't have --version.
+ ;;
-# If it succeeded, we are done.
-test $st -eq 0 && exit 0
+ *)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running `$TOOL --version' or `$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
+ fi
+ ;;
+esac
-# Also exit now if we it failed (or wasn't found), and '--version' was
-# passed; such an option is passed most likely to detect whether the
-# program is present and works.
-case $2 in --version|--help) exit $st;; esac
-
-# Exit code 63 means version mismatch. This often happens when the user
-# tries to use an ancient version of a tool on a file that requires a
-# minimum version.
-if test $st -eq 63; then
- msg="probably too old"
-elif test $st -eq 127; then
- # Program was missing.
- msg="missing on your system"
-else
- # Program was found and executed, but failed. Give up.
- exit $st
-fi
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $program in
+ aclocal*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`${configure_ac}'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acconfig.h' or \`${configure_ac}'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case $f in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ autom4te*)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them.
+ You can get \`$1' as part of \`Autoconf' from any GNU
+ archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo "#! /bin/sh"
+ echo "# Created by GNU Automake missing as a replacement of"
+ echo "# $ $@"
+ echo "exit 0"
+ chmod +x $file
+ exit 1
+ fi
+ ;;
+
+ bison*|yacc*)
+ echo 1>&2 "\
+WARNING: \`$1' $msg. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if test $# -ne 1; then
+ eval LASTARG=\${$#}
+ case $LASTARG in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f y.tab.h; then
+ echo >y.tab.h
+ fi
+ if test ! -f y.tab.c; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex*|flex*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if test $# -ne 1; then
+ eval LASTARG=\${$#}
+ case $LASTARG in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f lex.yy.c; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ help2man*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a dependency of a manual page. You may need the
+ \`Help2man' package in order for those modifications to take
+ effect. You can get \`Help2man' from any GNU archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo ".ab help2man is required to generate this page"
+ exit $?
+ fi
+ ;;
+
+ makeinfo*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -z "$file"; then
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '
+ /^@setfilename/{
+ s/.* \([^ ]*\) *$/\1/
+ p
+ q
+ }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+ fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
+ touch $file
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequisites for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
-
-program_details ()
-{
- case $1 in
- aclocal|automake)
- echo "The '$1' program is part of the GNU Automake package:"
- echo "<$gnu_software_URL/automake>"
- echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/autoconf>"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- autoconf|autom4te|autoheader)
- echo "The '$1' program is part of the GNU Autoconf package:"
- echo "<$gnu_software_URL/autoconf/>"
- echo "It also requires GNU m4 and Perl in order to run:"
- echo "<$gnu_software_URL/m4/>"
- echo "<$perl_URL>"
- ;;
- esac
-}
-
-give_advice ()
-{
- # Normalize program name to check for.
- normalized_program=`echo "$1" | sed '
- s/^gnu-//; t
- s/^gnu//; t
- s/^g//; t'`
-
- printf '%s\n' "'$1' is $msg."
-
- configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
- case $normalized_program in
- autoconf*)
- echo "You should only need it if you modified 'configure.ac',"
- echo "or m4 files included by it."
- program_details 'autoconf'
- ;;
- autoheader*)
- echo "You should only need it if you modified 'acconfig.h' or"
- echo "$configure_deps."
- program_details 'autoheader'
- ;;
- automake*)
- echo "You should only need it if you modified 'Makefile.am' or"
- echo "$configure_deps."
- program_details 'automake'
- ;;
- aclocal*)
- echo "You should only need it if you modified 'acinclude.m4' or"
- echo "$configure_deps."
- program_details 'aclocal'
- ;;
- autom4te*)
- echo "You might have modified some maintainer files that require"
- echo "the 'automa4te' program to be rebuilt."
- program_details 'autom4te'
- ;;
- bison*|yacc*)
- echo "You should only need it if you modified a '.y' file."
- echo "You may want to install the GNU Bison package:"
- echo "<$gnu_software_URL/bison/>"
- ;;
- lex*|flex*)
- echo "You should only need it if you modified a '.l' file."
- echo "You may want to install the Fast Lexical Analyzer package:"
- echo "<$flex_URL>"
- ;;
- help2man*)
- echo "You should only need it if you modified a dependency" \
- "of a man page."
- echo "You may want to install the GNU Help2man package:"
- echo "<$gnu_software_URL/help2man/>"
- ;;
- makeinfo*)
- echo "You should only need it if you modified a '.texi' file, or"
- echo "any other file indirectly affecting the aspect of the manual."
- echo "You might want to install the Texinfo package:"
- echo "<$gnu_software_URL/texinfo/>"
- echo "The spurious makeinfo call might also be the consequence of"
- echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
- echo "want to install GNU make:"
- echo "<$gnu_software_URL/make/>"
- ;;
- *)
- echo "You might have modified some files without having the proper"
- echo "tools for further handling them. Check the 'README' file, it"
- echo "often tells you about the needed prerequisites for installing"
- echo "this package. You may also peek at any GNU archive site, in"
- echo "case some other package contains this missing '$1' program."
- ;;
- esac
-}
-
-give_advice "$1" | sed -e '1s/^/WARNING: /' \
- -e '2,$s/^/ /' >&2
-
-# Propagate the correct exit status (expected to be 127 for a program
-# not found, 63 for a program that failed due to version mismatch).
-exit $st
+exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/mmafm/mmafm.1 new/lcdf-typetools-2.100/mmafm/mmafm.1
--- old/lcdf-typetools-2.99/mmafm/mmafm.1 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/mmafm/mmafm.1 2014-01-08 17:26:03.000000000 +0100
@@ -1,5 +1,5 @@
.\" -*-nroff-*-
-.ds V 2.99
+.ds V 2.100
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/mmpfb/mmpfb.1 new/lcdf-typetools-2.100/mmpfb/mmpfb.1
--- old/lcdf-typetools-2.99/mmpfb/mmpfb.1 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/mmpfb/mmpfb.1 2014-01-08 17:26:03.000000000 +0100
@@ -1,5 +1,5 @@
.\" -*-nroff-*-
-.ds V 2.99
+.ds V 2.100
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/otfinfo/otfinfo.1 new/lcdf-typetools-2.100/otfinfo/otfinfo.1
--- old/lcdf-typetools-2.99/otfinfo/otfinfo.1 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/otfinfo/otfinfo.1 2014-01-08 17:26:03.000000000 +0100
@@ -1,5 +1,5 @@
'\"t
-.ds V 2.99
+.ds V 2.100
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/otftotfm/automatic.cc new/lcdf-typetools-2.100/otftotfm/automatic.cc
--- old/lcdf-typetools-2.99/otftotfm/automatic.cc 2013-08-13 22:18:57.000000000 +0200
+++ new/lcdf-typetools-2.100/otftotfm/automatic.cc 2014-01-08 17:23:16.000000000 +0100
@@ -1,6 +1,6 @@
/* automatic.{cc,hh} -- code for automatic mode and interfacing with kpathsea
*
- * Copyright (c) 2003-2012 Eddie Kohler
+ * Copyright (c) 2003-2014 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
@@ -660,30 +660,28 @@
nl = text.find_left('\n', fl) + 1;
}
- // special case: empty mapline, unchanged file
if (!mapline && !changed) {
- fclose(f);
+ // special case: empty mapline, unchanged file
if (verbose)
errh->message("%s unchanged", map_file.c_str());
- return 0;
- }
-
- // add our text
- text += mapline;
+ } else {
+ // add our text
+ text += mapline;
- // rewind file
+ // rewind file
#if HAVE_FTRUNCATE
- rewind(f);
- if (ftruncate(fd, 0) < 0)
+ rewind(f);
+ if (ftruncate(fd, 0) < 0)
#endif
- {
- fclose(f);
- f = fopen(map_file.c_str(), "w");
- fd = fileno(f);
- }
-
- // write data
- ignore_result(fwrite(text.data(), 1, text.length(), f));
+ {
+ fclose(f);
+ f = fopen(map_file.c_str(), "w");
+ fd = fileno(f);
+ }
+
+ // write data
+ ignore_result(fwrite(text.data(), 1, text.length(), f));
+ }
fclose(f);
@@ -738,14 +736,12 @@
// run system updmap
if (output_flags & G_UPDMAP) {
String filename = map_file;
- int slash = filename.find_right('\'');
+ int slash = filename.find_right('/');
if (slash >= 0)
filename = filename.substring(slash + 1);
- String command = "updmap --nomkmap --enable Map " + shell_quote(filename) + CMD_SEP " updmap";
- if (verbose)
- command += " 1>&2";
- else
- command += " >" DEV_NULL " 2>&1";
+ String redirect = verbose ? " 1>&2" : " >" DEV_NULL " 2>&1";
+ String command = "updmap --nomkmap --enable Map " + shell_quote(filename) + redirect
+ + CMD_SEP " updmap" + redirect;
int retval = mysystem(command.c_str(), errh);
if (retval == 127)
errh->warning("could not run %<%s%>", command.c_str());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/otftotfm/dvipsencoding.cc new/lcdf-typetools-2.100/otftotfm/dvipsencoding.cc
--- old/lcdf-typetools-2.99/otftotfm/dvipsencoding.cc 2013-08-13 22:18:57.000000000 +0200
+++ new/lcdf-typetools-2.100/otftotfm/dvipsencoding.cc 2013-09-17 16:09:44.000000000 +0200
@@ -444,7 +444,7 @@
return errh->warning("%<%s%> has no encoding, ignoring %<%s%>", v[2].c_str(), v[1].c_str());
if ((op & JT_KERN) && l && (av == J_ALL || bv == J_ALL))
return errh->warning("%<%s %s %s%> illegal, only {0} works with *", v[0].c_str(), v[1].c_str(), v[2].c_str());
- Ligature lig = { av, bv, op, l, 0 };
+ Ligature lig = { av, bv, op, static_cast<int>(l), 0 };
add_ligkern(lig, override);
return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/otftotfm/metrics.cc new/lcdf-typetools-2.100/otftotfm/metrics.cc
--- old/lcdf-typetools-2.99/otftotfm/metrics.cc 2013-08-13 22:18:57.000000000 +0200
+++ new/lcdf-typetools-2.100/otftotfm/metrics.cc 2014-01-08 17:19:11.000000000 +0100
@@ -1,6 +1,6 @@
/* metrics.{cc,hh} -- an encoding during and after OpenType features
*
- * Copyright (c) 2003-2012 Eddie Kohler
+ * Copyright (c) 2003-2014 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
@@ -1074,8 +1074,8 @@
namespace {
// preference-sorting extra characters
enum {
- CONVENTIONAL_F_LIGATURE_SCORE = 1,
- CONVENTIONAL_F_F_LIGATURE_SCORE = 2,
+ CONVENTIONAL_F_LIGATURE_SCORE = 4,
+ CONVENTIONAL_F_F_LIGATURE_SCORE = 5,
BASIC_LATIN_LOWER_SCORE = 3,
BASIC_LATIN_UPPER_SCORE = 4,
BASIC_LATIN_OTHER_SCORE = 5,
@@ -1154,6 +1154,28 @@
if (_encoding[i].unicode)
scores[i] = unicode_score(_encoding[i].unicode);
+ /* Prefer conventional f-ligatures. */
+ bool has_ff = false;
+ for (Ligature3* l = all_ligs.begin(); l != all_ligs.end(); ++l)
+ if (_encoding[l->in1].unicode == 'f'
+ && (_encoding[l->in2].unicode == 'f'
+ || _encoding[l->in2].unicode == 'i'
+ || _encoding[l->in2].unicode == 'l')) {
+ if (scores[l->out] > CONVENTIONAL_F_LIGATURE_SCORE)
+ scores[l->out] = CONVENTIONAL_F_LIGATURE_SCORE;
+ if (_encoding[l->in2].unicode == 'f') {
+ _encoding[l->out].flags |= Char::IS_FF;
+ has_ff = true;
+ }
+ }
+ if (has_ff)
+ for (Ligature3* l = all_ligs.begin(); l != all_ligs.end(); ++l)
+ if (_encoding[l->in1].flag(Char::IS_FF)
+ && (_encoding[l->in2].unicode == 'i'
+ || _encoding[l->in2].unicode == 'l')
+ && scores[l->out] > CONVENTIONAL_F_F_LIGATURE_SCORE)
+ scores[l->out] = CONVENTIONAL_F_F_LIGATURE_SCORE;
+
/* Repeat these steps until you reach a stable set of scores: Score
ligatures (ligscore = SUM[char scores]), then score characters touched
only by fakes. */
@@ -1162,24 +1184,8 @@
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]) {
- /* 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;
- }
+ if (scores[l->out] > score)
+ scores[l->out] = score, changed = true;
}
for (Code c = 0; c < _encoding.size(); c++)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/otftotfm/metrics.hh new/lcdf-typetools-2.100/otftotfm/metrics.hh
--- old/lcdf-typetools-2.99/otftotfm/metrics.hh 2013-08-13 22:12:16.000000000 +0200
+++ new/lcdf-typetools-2.100/otftotfm/metrics.hh 2014-01-08 16:57:13.000000000 +0100
@@ -140,7 +140,7 @@
Code built_in2;
int lookup_source;
enum { BUILT = 1, INTERMEDIATE = 2, CONTEXT_ONLY = 4, LIVE = 8,
- BASE_LIVE = 16, BASE_REP = 32 };
+ BASE_LIVE = 16, BASE_REP = 32, IS_FF = 64 };
int flags;
Char() : virtual_char(0) { clear(); }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/otftotfm/otftotfm.1 new/lcdf-typetools-2.100/otftotfm/otftotfm.1
--- old/lcdf-typetools-2.99/otftotfm/otftotfm.1 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/otftotfm/otftotfm.1 2014-01-08 17:26:03.000000000 +0100
@@ -1,5 +1,5 @@
'\"t
-.ds V 2.99
+.ds V 2.100
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/t1dotlessj/t1dotlessj.1 new/lcdf-typetools-2.100/t1dotlessj/t1dotlessj.1
--- old/lcdf-typetools-2.99/t1dotlessj/t1dotlessj.1 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/t1dotlessj/t1dotlessj.1 2014-01-08 17:26:03.000000000 +0100
@@ -1,4 +1,4 @@
-.ds V 2.99
+.ds V 2.100
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/t1lint/t1lint.1 new/lcdf-typetools-2.100/t1lint/t1lint.1
--- old/lcdf-typetools-2.99/t1lint/t1lint.1 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/t1lint/t1lint.1 2014-01-08 17:26:03.000000000 +0100
@@ -1,4 +1,4 @@
-.ds V 2.99
+.ds V 2.100
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/t1rawafm/t1rawafm.1 new/lcdf-typetools-2.100/t1rawafm/t1rawafm.1
--- old/lcdf-typetools-2.99/t1rawafm/t1rawafm.1 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/t1rawafm/t1rawafm.1 2014-01-08 17:26:03.000000000 +0100
@@ -1,4 +1,4 @@
-.ds V 2.99
+.ds V 2.100
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/t1reencode/t1reencode.1 new/lcdf-typetools-2.100/t1reencode/t1reencode.1
--- old/lcdf-typetools-2.99/t1reencode/t1reencode.1 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/t1reencode/t1reencode.1 2014-01-08 17:26:03.000000000 +0100
@@ -1,4 +1,4 @@
-.ds V 2.99
+.ds V 2.100
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/t1testpage/t1testpage.1 new/lcdf-typetools-2.100/t1testpage/t1testpage.1
--- old/lcdf-typetools-2.99/t1testpage/t1testpage.1 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/t1testpage/t1testpage.1 2014-01-08 17:26:03.000000000 +0100
@@ -1,4 +1,4 @@
-.ds V 2.99
+.ds V 2.100
.de M
.BR "\\$1" "(\\$2)\\$3"
..
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/lcdf-typetools-2.99/ttftotype42/ttftotype42.1 new/lcdf-typetools-2.100/ttftotype42/ttftotype42.1
--- old/lcdf-typetools-2.99/ttftotype42/ttftotype42.1 2013-08-13 23:33:01.000000000 +0200
+++ new/lcdf-typetools-2.100/ttftotype42/ttftotype42.1 2014-01-08 17:26:03.000000000 +0100
@@ -1,4 +1,4 @@
-.ds V 2.99
+.ds V 2.100
.de M
.BR "\\$1" "(\\$2)\\$3"
..