diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/jpeg/jmorecfg.h ./libs/jpeg/jmorecfg.h --- c:\source\TeXLive\Build\source\TeX/libs/jpeg/jmorecfg.h Fri Apr 25 23:34:31 2003 +++ ./libs/jpeg/jmorecfg.h Fri Jul 25 02:06:12 2003 @@ -180,14 +180,22 @@ * or code profilers that require it. */ +#if defined(WIN32) +#define JPEGAPI __fastcall +#elif defined(_WIN32) +#define JPEGAPI __cdecl +#else +#define JPEGAPI +#endif + /* a function called through method pointers: */ #define METHODDEF(type) static type /* a function used only in its module: */ #define LOCAL(type) static type /* a function referenced thru EXTERNs: */ -#define GLOBAL(type) type +#define GLOBAL(type) type JPEGAPI /* a reference to a GLOBAL function: */ -#define EXTERN(type) extern JPEGDLL type +#define EXTERN(type) extern JPEGDLL type JPEGAPI /* This macro is used to declare a "method", that is, a function pointer. @@ -197,9 +205,9 @@ */ #ifdef HAVE_PROTOTYPES -#define JMETHOD(type,methodname,arglist) type (*methodname) arglist +#define JMETHOD(type,methodname,arglist) type (JPEGAPI * methodname) arglist #else -#define JMETHOD(type,methodname,arglist) type (*methodname) () +#define JMETHOD(type,methodname,arglist) type (JPEGAPI * methodname) () #endif diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/jpeg/jpeglib.h ./libs/jpeg/jpeglib.h --- c:\source\TeXLive\Build\source\TeX/libs/jpeg/jpeglib.h Fri Apr 25 23:34:31 2003 +++ ./libs/jpeg/jpeglib.h Wed Jun 25 14:03:23 2003 @@ -52,9 +52,14 @@ * we strongly discourage changing C_MAX_BLOCKS_IN_MCU; just because Adobe * sometimes emits noncompliant files doesn't mean you should too. */ -#define C_MAX_BLOCKS_IN_MCU 10 /* compressor's limit on blocks per MCU */ + +/* + * Read "JPEG" files with up to 64 blocks/MCU for Adobe compatibility. + * Note that this #define will have no effect in pre-v6 IJG versions. + */ +#define C_MAX_BLOCKS_IN_MCU 64 /* compressor's limit on blocks per MCU */ #ifndef D_MAX_BLOCKS_IN_MCU -#define D_MAX_BLOCKS_IN_MCU 10 /* decompressor's limit on blocks per MCU */ +#define D_MAX_BLOCKS_IN_MCU 64 /* decompressor's limit on blocks per MCU */ #endif diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/libpng/png.c ./libs/libpng/png.c --- c:\source\TeXLive\Build\source\TeX/libs/libpng/png.c Thu Oct 03 12:32:28 2002 +++ ./libs/libpng/png.c Fri Nov 15 16:04:50 2002 @@ -138,7 +138,7 @@ #ifdef PNG_1_0_X voidpf PNGAPI #else -voidpf /* private */ +voidpf ZLIBAPI /* private */ #endif png_zalloc(voidpf png_ptr, uInt items, uInt size) { @@ -173,7 +173,7 @@ #ifdef PNG_1_0_X void PNGAPI #else -void /* private */ +void ZLIBAPI /* private */ #endif png_zfree(voidpf png_ptr, voidpf ptr) { diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/libpng/png.h ./libs/libpng/png.h --- c:\source\TeXLive\Build\source\TeX/libs/libpng/png.h Thu Oct 03 12:32:27 2002 +++ ./libs/libpng/png.h Fri Nov 15 16:05:54 2002 @@ -2699,10 +2699,10 @@ #ifndef PNG_1_0_X /* Function to allocate memory for zlib. */ -PNG_EXTERN voidpf png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size)); +PNG_EXTERN voidpf ZLIBAPI png_zalloc PNGARG((voidpf png_ptr, uInt items, uInt size)); /* Function to free memory for zlib */ -PNG_EXTERN void png_zfree PNGARG((voidpf png_ptr, voidpf ptr)); +PNG_EXTERN void ZLIBAPI png_zfree PNGARG((voidpf png_ptr, voidpf ptr)); /* Next four functions are used internally as callbacks. PNGAPI is required * but not PNG_EXPORT. PNGAPI added at libpng version 1.2.3. */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/libpng/pngconf.h ./libs/libpng/pngconf.h --- c:\source\TeXLive\Build\source\TeX/libs/libpng/pngconf.h Thu Oct 03 12:32:28 2002 +++ ./libs/libpng/pngconf.h Fri Jun 27 00:38:11 2003 @@ -1179,7 +1179,7 @@ # endif #endif -#if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF) +#if !defined(PNG_IMPEXP) && defined(PNG_BUILD_DLL) && !defined(PNG_NO_MODULEDEF) && !defined(WIN32) # define PNG_IMPEXP #endif @@ -1188,7 +1188,7 @@ defined(WIN32) || defined(_WIN32) || defined(__WIN32__) )) # if defined(__GNUC__) || (defined (_MSC_VER) && (_MSC_VER >= 800)) -# define PNGAPI __cdecl +# define PNGAPI __fastcall # else # define PNGAPI _cdecl # endif diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/libpng/pngtest.c ./libs/libpng/pngtest.c --- c:\source\TeXLive\Build\source\TeX/libs/libpng/pngtest.c Thu Oct 03 12:32:31 2002 +++ ./libs/libpng/pngtest.c Fri Nov 15 16:12:18 2002 @@ -116,15 +116,10 @@ static int status_dots_requested=0; static int status_dots=1; -void -#ifdef PNG_1_0_X -PNGAPI -#endif +void PNGAPI read_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass); -void -#ifdef PNG_1_0_X -PNGAPI -#endif + +void PNGAPI read_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass) { if(png_ptr == NULL || row_number > PNG_MAX_UINT) return; @@ -143,15 +138,10 @@ fprintf(stdout, "r"); } -void -#ifdef PNG_1_0_X -PNGAPI -#endif +void PNGAPI write_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass); -void -#ifdef PNG_1_0_X -PNGAPI -#endif + +void PNGAPI write_row_callback(png_structp png_ptr, png_uint_32 row_number, int pass) { if(png_ptr == NULL || row_number > PNG_MAX_UINT || pass > 7) return; @@ -164,15 +154,11 @@ but merely examine the row filters. We set this to 256 rather than 5 in case illegal filter values are present.) */ static png_uint_32 filters_used[256]; -void -#ifdef PNG_1_0_X -PNGAPI -#endif + +void PNGAPI count_filters(png_structp png_ptr, png_row_infop row_info, png_bytep data); -void -#ifdef PNG_1_0_X -PNGAPI -#endif + +void PNGAPI count_filters(png_structp png_ptr, png_row_infop row_info, png_bytep data) { if(png_ptr != NULL && row_info != NULL) @@ -186,15 +172,10 @@ static png_uint_32 zero_samples; -void -#ifdef PNG_1_0_X -PNGAPI -#endif +void PNGAPI count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data); -void -#ifdef PNG_1_0_X -PNGAPI -#endif + +void PNGAPI count_zero_samples(png_structp png_ptr, png_row_infop row_info, png_bytep data) { png_bytep dp = data; Binary files c:\source\TeXLive\Build\source\TeX/libs/xpdf/misc/hello.pdf and ./libs/xpdf/misc/hello.pdf differ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/xpdf/xpdf/FontFile.cc ./libs/xpdf/xpdf/FontFile.cc --- c:\source\TeXLive\Build\source\TeX/libs/xpdf/xpdf/FontFile.cc Fri Mar 21 06:01:03 2003 +++ ./libs/xpdf/xpdf/FontFile.cc Fri Apr 25 02:08:53 2003 @@ -3600,11 +3600,11 @@ return 0; } -static int cmpTrueTypeLocaIdx(const void *p1, const void *p2) { +static int CDECL cmpTrueTypeLocaIdx(const void *p1, const void *p2) { return ((TrueTypeLoca *)p1)->idx - ((TrueTypeLoca *)p2)->idx; } -static int cmpTrueTypeLocaPos(const void *p1, const void *p2) { +static int CDECL cmpTrueTypeLocaPos(const void *p1, const void *p2) { if (((TrueTypeLoca *)p1)->pos == ((TrueTypeLoca *)p2)->pos) { return ((TrueTypeLoca *)p1)->idx - ((TrueTypeLoca *)p2)->idx; } else { diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/xpdf/xpdf/config.h ./libs/xpdf/xpdf/config.h --- c:\source\TeXLive\Build\source\TeX/libs/xpdf/xpdf/config.h Fri Mar 21 06:01:06 2003 +++ ./libs/xpdf/xpdf/config.h Sat Apr 26 01:27:45 2003 @@ -82,7 +82,7 @@ // popen //------------------------------------------------------------------------ -#ifdef _MSC_VER +#if defined(_MSC_VER) && !defined(FPTEX) #define popen _popen #define pclose _pclose #endif @@ -97,6 +97,13 @@ // Win32 stuff //------------------------------------------------------------------------ +#ifdef FPTEX + +#include +// Used in Function.cc ! +#undef index +#else + #ifdef CDECL #undef CDECL #endif @@ -105,6 +112,8 @@ #define CDECL __cdecl #else #define CDECL +#endif + #endif #endif diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/zlib/minigzip.c ./libs/zlib/minigzip.c --- c:\source\TeXLive\Build\source\TeX/libs/zlib/minigzip.c Mon Mar 11 12:16:02 2002 +++ ./libs/zlib/minigzip.c Mon Sep 23 17:53:17 2002 @@ -15,6 +15,8 @@ /* @(#) $Id$ */ +#include + #include #include "zlib.h" diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/zlib/zconf.h ./libs/zlib/zconf.h --- c:\source\TeXLive\Build\source\TeX/libs/zlib/zconf.h Mon Mar 11 12:16:02 2002 +++ ./libs/zlib/zconf.h Sun Jul 06 02:58:38 2003 @@ -162,16 +162,21 @@ /* Compile with -DZLIB_DLL for Windows DLL support */ #if defined(ZLIB_DLL) -# if defined(_WINDOWS) || defined(WINDOWS) +# if defined(_MSC_VER) +# pragma warning (disable : 4007 4096) # ifdef FAR # undef FAR # endif # include -# define ZEXPORT WINAPI -# ifdef WIN32 -# define ZEXPORTVA WINAPIV +# define ZLIBAPI __fastcall +# if defined (MAKE_ZLIB_DLL) +# define ZEXTERN extern __declspec(dllexport) +# define ZEXPORT __fastcall +# define ZEXPORTVA __cdecl # else -# define ZEXPORTVA FAR _cdecl _export +# define ZEXTERN extern __declspec(dllimport) +# define ZEXPORT __fastcall +# define ZEXPORTVA __cdecl # endif # endif # if defined (__BORLANDC__) @@ -186,6 +191,11 @@ # endif # endif # endif +#else +# if defined(_MSC_VER) +# define ZEXPORT __fastcall +# define ZEXPORTVA __cdecl +# endif #endif #if defined (__BEOS__) @@ -208,6 +218,14 @@ #ifndef FAR # define FAR +#endif + +#ifndef ZLIBAPI +# ifdef _MSC_VER +# define ZLIBAPI __fastcall +# else +# define ZLIBAPI +# endif #endif #if !defined(MACOS) && !defined(TARGET_OS_MAC) diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/zlib/zlib.h ./libs/zlib/zlib.h --- c:\source\TeXLive\Build\source\TeX/libs/zlib/zlib.h Mon Mar 11 12:56:39 2002 +++ ./libs/zlib/zlib.h Sat Apr 26 01:27:51 2003 @@ -60,8 +60,8 @@ crash even in case of corrupted input. */ -typedef voidpf (*alloc_func) OF((voidpf opaque, uInt items, uInt size)); -typedef void (*free_func) OF((voidpf opaque, voidpf address)); +typedef voidpf (ZLIBAPI * alloc_func) OF((voidpf opaque, uInt items, uInt size)); +typedef void (ZLIBAPI * free_func) OF((voidpf opaque, voidpf address)); struct internal_state; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/zlib/zutil.c ./libs/zlib/zutil.c --- c:\source\TeXLive\Build\source\TeX/libs/zlib/zutil.c Mon Mar 11 12:16:02 2002 +++ ./libs/zlib/zutil.c Sat Apr 26 01:27:50 2003 @@ -205,7 +205,7 @@ extern void free OF((voidpf ptr)); #endif -voidpf zcalloc (opaque, items, size) +voidpf ZLIBAPI zcalloc (opaque, items, size) voidpf opaque; unsigned items; unsigned size; @@ -214,7 +214,7 @@ return (voidpf)calloc(items, size); } -void zcfree (opaque, ptr) +void ZLIBAPI zcfree (opaque, ptr) voidpf opaque; voidpf ptr; { diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/libs/zlib/zutil.h ./libs/zlib/zutil.h --- c:\source\TeXLive\Build\source\TeX/libs/zlib/zutil.h Mon Mar 11 12:16:02 2002 +++ ./libs/zlib/zutil.h Sat Apr 26 01:27:51 2003 @@ -209,8 +209,8 @@ typedef uLong (ZEXPORT *check_func) OF((uLong check, const Bytef *buf, uInt len)); -voidpf zcalloc OF((voidpf opaque, unsigned items, unsigned size)); -void zcfree OF((voidpf opaque, voidpf ptr)); +voidpf ZLIBAPI zcalloc OF((voidpf opaque, unsigned items, unsigned size)); +void ZLIBAPI zcfree OF((voidpf opaque, voidpf ptr)); #define ZALLOC(strm, items, size) \ (*((strm)->zalloc))((strm)->opaque, (items), (size)) diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/detex/detex.l ./texk/detex/detex.l --- c:\source\TeXLive\Build\source\TeX/texk/detex/detex.l Thu Jul 17 14:23:45 2003 +++ ./texk/detex/detex.l Thu Nov 14 22:43:13 2002 @@ -4,7 +4,7 @@ #endif /* - * detex [-e environment-list] [-c] [-l] [-n] [-s] [-t] [-w] [file[.tex] ] + * detex [-e environment-list] [-c] [-l] [-n] [-s] [-t] [-w] [file[.tex]] * * This program is used to remove TeX or LaTeX constructs from a text * file. diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/absolute.c ./texk/kpathsea/absolute.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/absolute.c Fri Dec 13 11:14:56 2002 +++ ./texk/kpathsea/absolute.c Thu Oct 24 15:07:06 2002 @@ -36,6 +36,12 @@ /* Novell allows non-alphanumeric drive letters. */ || (*filename && IS_DEVICE_SEP (filename[1])) #endif /* DOSISH */ +#ifdef WIN32 + /* UNC names */ + || IS_UNC_NAME(filename) +#endif + /* URL names */ + || IS_URL_NAME(filename) #ifdef AMIGA /* Colon anywhere means a device. */ || strchr (filename, ':') diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/c-pathch.h ./texk/kpathsea/c-pathch.h --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/c-pathch.h Mon Nov 19 06:40:35 2001 +++ ./texk/kpathsea/c-pathch.h Sat Apr 26 01:30:36 2003 @@ -74,6 +74,15 @@ #define IS_UNC_NAME(name) 0 #endif +#ifdef HAVE_GETURL +#define IS_URL_PREFIX(name, prefix) ((strlen(name) >= sizeof(prefix)) && STRNEQ(name, prefix, sizeof(prefix) - 1)) +#define IS_URL_NAME(name) (IS_URL_PREFIX(name, "ftp://") \ + || IS_URL_PREFIX(name, "http://") \ + || IS_URL_PREFIX(name, "file://")) +#else +#define IS_URL_NAME(name) 0 +#endif + /* What separates elements in environment variable path lists? */ #ifndef ENV_SEP #ifdef VMS diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/cnf.c ./texk/kpathsea/cnf.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/cnf.c Sat Mar 01 20:18:30 2003 +++ ./texk/kpathsea/cnf.c Thu Jul 24 08:45:20 2003 @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -37,7 +36,7 @@ `kpse_init_format' can distinguish between values originating from the cnf file and ones from environment variables, which can be useful for users trying to figure out what's going on. */ -static hash_table_type cnf_hash; +hash_table_type *cnf_hash = NULL; #define CNF_HASH_SIZE 751 #define CNF_NAME "texmf.cnf" @@ -127,6 +126,19 @@ -DALLOW_SEMICOLON_IN_FILENAMES. (And there's no way to get :'s in your filenames, sorry.) */ +/* gcc -ansi doesn't predefine `unix', since ANSI forbids it. And AIX + generally doesn't predefine unix, who knows why. HP-UX is, of course, + also different. Apple's MacOsX is also unix-like. */ +#ifndef unix +#if defined (__unix__) || defined (_AIX) || defined (_HPUX_SOURCE) +#define unix +#elif defined (__APPLE__) && defined (__MACH__) +#define unix +#elif defined (__NetBSD__) +#define unix +#endif +#endif + #if IS_ENV_SEP(':') && !defined (ALLOW_SEMICOLON_IN_FILENAMES) { string loc; @@ -147,8 +159,12 @@ free (prog); var = lhs; } - hash_insert (&cnf_hash, var, value); - + hash_insert (cnf_hash, var, value); + + /* hash_insert will xstrdup() the strings */ + free(var); + free(value); + /* We could check that anything remaining is preceded by a comment character, but let's not bother. */ } @@ -161,7 +177,10 @@ string *cnf_files; const_string cnf_path = kpse_init_format (kpse_cnf_format); - cnf_hash = hash_create (CNF_HASH_SIZE); + if ((cnf_hash = hash_exists_p(hashtable_cnf)) != NULL) + return; + + cnf_hash = hash_create (CNF_HASH_SIZE, hashtable_cnf); for (cnf_files = kpse_all_path_search (cnf_path, CNF_NAME); cnf_files && *cnf_files; cnf_files++) { @@ -215,7 +234,7 @@ if (doing_cnf_init) return NULL; - if (cnf_hash.size == 0) { + if (cnf_hash == NULL || cnf_hash->size == 0) { doing_cnf_init = true; read_all_cnf (); doing_cnf_init = false; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/db.c ./texk/kpathsea/db.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/db.c Wed Feb 19 05:58:01 2003 +++ ./texk/kpathsea/db.c Fri Feb 21 15:48:58 2003 @@ -30,7 +30,7 @@ #include #include -static hash_table_type db; /* The hash table for all the ls-R's. */ +hash_table_type *db; /* The hash table for all the ls-R's. */ /* SMALL: The old size of the hash table was 7603, with the assumption that a minimal ls-R bas about 3500 entries. But a typical ls-R will be more like double that size. */ @@ -41,7 +41,7 @@ #define DB_NAME "ls-R" #endif -static hash_table_type alias_db; +hash_table_type *alias_db; #ifndef ALIAS_NAME #define ALIAS_NAME "aliases" #endif @@ -49,7 +49,7 @@ #define ALIAS_HASH_SIZE 1009 #endif -static str_list_type db_dir_list; +str_list_type db_dir_list; /* If DIRNAME contains any element beginning with a `.' (that is more than just `./'), return true. This is to allow ``hidden'' @@ -121,7 +121,11 @@ Note that we assume that all names in the ls-R file have already been case-smashed to lowercase where appropriate. */ - hash_insert_normalized (table, xstrdup (line), cur_dir); +#ifdef NORMALIZED + hash_insert_normalized (table, line, cur_dir); +#else + hash_insert (table, line, cur_dir); +#endif file_count++; } /* else ignore blank lines or top-level files @@ -151,7 +155,7 @@ DEBUGF4 ("%s: %u entries in %d directories (%d hidden).\n", db_filename, file_count, dir_count, ignore_dir_count); DEBUGF ("ls-R hash table:"); - hash_print (*table, hash_summary_only); + hash_print (table, hash_summary_only); fflush (stderr); } #endif /* KPSE_DEBUG */ @@ -172,7 +176,7 @@ { /* We might not have found ls-R, or even had occasion to look for it yet, so do nothing if we have no hash table. */ - if (db.buckets) { + if (db && db->buckets) { const_string dir_part; string fname = xstrdup (passed_fname); string baseptr = (string)xbasename (fname); @@ -181,8 +185,10 @@ *baseptr = '\0'; /* Chop off the filename. */ dir_part = fname; /* That leaves the dir, with the trailing /. */ - /* Note that we do not assuse that these names have been normalized. */ - hash_insert (&db, file_part, dir_part); + hash_insert (db, file_part, dir_part); + + free(file_part); + free(fname); } } @@ -305,7 +311,11 @@ for potential errors? */ if (strlen (real) != 0 && strlen (alias) != 0) { /* Stuff in the alias file should be normalized. */ - hash_insert_normalized (table, xstrdup (alias), xstrdup (real)); +#ifdef NORMALIZED + hash_insert_normalized (table, alias, real); +#else + hash_insert (table, alias, real); +#endif count++; } } @@ -318,7 +328,7 @@ boolean hash_summary_only = true; DEBUGF2 ("%s: %u aliases.\n", alias_filename, count); DEBUGF ("alias hash table:"); - hash_print (*table, hash_summary_only); + hash_print (table, hash_summary_only); fflush (stderr); } #endif /* KPSE_DEBUG */ @@ -340,12 +350,14 @@ string *db_files = kpse_all_path_search (db_path, DB_NAME); string *orig_db_files = db_files; + if ((db = hash_exists_p(hashtable_db)) == NULL) { + /* Must do this after the path searching (which ends up calling kpse_db_search recursively), so db.buckets stays NULL. */ - db = hash_create (DB_HASH_SIZE); + db = hash_create (DB_HASH_SIZE, hashtable_db); while (db_files && *db_files) { - if (db_build (&db, *db_files)) + if (db_build (db, *db_files)) ok = true; free (*db_files); db_files++; @@ -354,12 +366,15 @@ if (!ok) { /* If db can't be built, leave `size' nonzero (so we don't rebuild it), but clear `buckets' (so we don't look in it). */ - free (db.buckets); - db.buckets = NULL; + hash_free (db->buckets); + db->buckets = NULL; } free (orig_db_files); + hash_save_str_list(db_dir_list); + } + /* Add the content of any alias databases. There may exist more than one alias file along DB_NAME files. This duplicates the above code -- should be a function. */ @@ -367,18 +382,22 @@ db_files = kpse_all_path_search (db_path, ALIAS_NAME); orig_db_files = db_files; - alias_db = hash_create (ALIAS_HASH_SIZE); + if ((alias_db = hash_exists_p(hashtable_alias)) == NULL) { + + alias_db = hash_create (ALIAS_HASH_SIZE, hashtable_alias); while (db_files && *db_files) { - if (alias_build (&alias_db, *db_files)) + if (alias_build (alias_db, *db_files)) ok = true; free (*db_files); db_files++; } if (!ok) { - free (alias_db.buckets); - alias_db.buckets = NULL; + hash_free (alias_db->buckets); + alias_db->buckets = NULL; + } + } free (orig_db_files); @@ -401,7 +420,7 @@ /* If we failed to build the database (or if this is the recursive call to build the db path), quit. */ - if (db.buckets == NULL) + if (db == NULL || db->buckets == NULL) return NULL; /* When tex-glyph.c calls us looking for, e.g., dpi600/cmr10.pk, we @@ -433,7 +452,7 @@ return NULL; /* If we have aliases for this name, use them. */ - if (alias_db.buckets) + if (alias_db && alias_db->buckets) aliases = hash_lookup (alias_db, name); if (!aliases) { @@ -539,13 +558,13 @@ boolean done; str_list_type *ret; unsigned e; - string *aliases; + string *aliases = NULL; boolean relevant = false; int n; /* If we failed to build the database (or if this is the recursive call to build the db path), quit. */ - if (db.buckets == NULL) + if (db->buckets == NULL) return NULL; /* Don't bother doing any lookups if this `path_elt' isn't covered by @@ -563,7 +582,7 @@ /* Handle each name. */ for (n = 0; !done && names[n]; n++) { /* If we have aliases for this name, use them. */ - if (alias_db.buckets) + if (alias_db->buckets) aliases = hash_lookup (alias_db, names[n]); else aliases = NULL; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/debug.c ./texk/kpathsea/debug.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/debug.c Mon May 29 10:52:17 2000 +++ ./texk/kpathsea/debug.c Thu May 22 22:29:32 2003 @@ -17,8 +17,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include - -#ifdef KPSE_DEBUG /* whole file */ +#include +#include unsigned kpathsea_debug = 0; @@ -29,7 +29,75 @@ fopen P2C(const_string, filename, const_string, mode) { #undef fopen - FILE *ret = fopen (filename, mode); + FILE *ret; + +#ifdef HAVE_GETURL + if (IS_URL_NAME(filename)) { + if (strncasecmp(filename, "file:", 5) == 0) { + char *buf = xstrdup(filename+5); + char *pathname = buf; + if (*pathname == '/' && *(pathname+1) == '/') pathname++; + if (*pathname == '/' && *(pathname+1) == '/') pathname++; + if (toupper(*(pathname+1)) >= 'A' && toupper(*(pathname+1)) <= 'Z') { + if (*(pathname+2) == '/' + || *(pathname+2) == '|') { + *(pathname+2) = '/'; + *pathname = *(pathname+1); + *(pathname+1) = ':'; + } + else if (NAME_BEGINS_WITH_DEVICE(pathname+1)) { + pathname++; + } + else { + char *p = pathname - 1; + if (IS_UNC_NAME(p)) { + pathname--; + } + else { + p--; + if (IS_UNC_NAME(p)) { + pathname -= 2; + } + else + pathname++; + } + } + } + /* We need to remove any %xx encoded char on top of this ! */ + { + char *p, *q; + for (p = q = pathname; p && *p; ) { + if (*p == '%' && isdigit(*(p+1)) && isdigit(*(p+2))) { + *q = (char)((*(p+1) - '0') * 10 + *(p+2)); + q++; + p += 3; + } + else { + *q++ = *p++; + } + } + *q = '\0'; + } + ret = fopen(pathname, mode); + free(buf); + } + else { + string localname; + localname = get_remote_file(filename); + if (localname == NULL) + ret = NULL; + else + ret = fopen(localname, mode); + } + } + else { +#endif + + ret = fopen (filename, mode); + +#ifdef HAVE_GETURL + } +#endif if (KPSE_DEBUG_P (KPSE_DEBUG_FOPEN)) DEBUGF3 ("fopen(%s, %s) => 0x%lx\n", filename, mode, (unsigned long) ret); @@ -49,4 +117,3 @@ return ret; } -#endif /* KPSE DEBUG */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/debug.h ./texk/kpathsea/debug.h --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/debug.h Mon May 29 10:52:17 2000 +++ ./texk/kpathsea/debug.h Sat Apr 26 01:30:36 2003 @@ -68,6 +68,7 @@ #define KPSE_DEBUG_EXPAND 4 /* path element expansion */ #define KPSE_DEBUG_SEARCH 5 /* searches */ #define KPSE_DEBUG_VARS 6 /* variable values */ +#define KPSE_DEBUG_SHM 7 /* shared memory */ #define KPSE_LAST_DEBUG KPSE_DEBUG_VARS /* A printf for the debugging. */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/dir.c ./texk/kpathsea/dir.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/dir.c Mon Dec 23 17:08:29 2002 +++ ./texk/kpathsea/dir.c Sat Apr 26 01:30:33 2003 @@ -64,14 +64,15 @@ The process is a bit different under Win32 : the first call memoizes the nlinks value, the following ones retrieve it. */ +hash_table_type *link_table; + int dir_links P2C(const_string, fn, long, nlinks) { - static hash_table_type link_table; string *hash_ret; - if (link_table.size == 0) - link_table = hash_create (457); + if (link_table == NULL || link_table->size == 0) + link_table = hash_create (457, hashtable_links); #ifdef KPSE_DEBUG /* This is annoying, but since we're storing integers as pointers, we @@ -103,8 +104,8 @@ memcpy(str_nlinks, (char *)&nlinks, sizeof(nlinks)); str_nlinks[sizeof(nlinks)] = '\0'; /* It's up to us to copy the value. */ - hash_insert(&link_table, xstrdup(fn), (const_string)str_nlinks); - } + hash_insert (link_table, fn, (const_string) str_nlinks); + } #else struct stat stats; if (stat (fn, &stats) == 0 && S_ISDIR (stats.st_mode)) diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/elt-dirs.c ./texk/kpathsea/elt-dirs.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/elt-dirs.c Mon Nov 12 07:29:44 2001 +++ ./texk/kpathsea/elt-dirs.c Sat Apr 26 01:30:33 2003 @@ -367,24 +367,27 @@ unsigned i; if (NAME_BEGINS_WITH_DEVICE(elt)) { - if (*elt >= 'A' && *elt <= 'Z') - *elt += 'a' - 'A'; - for (i = 2; IS_DIR_SEP(elt[i]); ++i) - ; - if (i > 3) - memmove(elt+3, elt+i, strlen(elt+i) + 1); - ret = 2; - } else if (IS_UNC_NAME(elt)) { - for (ret = 2; elt[ret] && !IS_DIR_SEP(elt[ret]); ++ret) - ; - for (i = ret; elt[i] && IS_DIR_SEP(elt[i]); ++i) - ; - if (i > ret+1) - memmove(elt+ret+1, elt+i, strlen(elt+i) + 1); - } else { - for (ret = 0; IS_DIR_SEP(elt[ret]); ++ret) - ; + if (*elt >= 'A' && *elt <= 'Z') + *elt += 'a' - 'A'; + ret = IS_DIR_SEP(*(elt+2)) ? 3 : 2; + } +#ifdef WIN32 + else if (IS_UNC_NAME(elt)) + ret = unc_part_len(elt); +#endif +#ifdef HAVE_GETURL + else if (IS_URL_NAME(elt)) + ret = url_part_len(elt); +#endif + else { + ret = IS_DIR_SEP(*elt) ? 1 : 0; } + + for (i = ret; IS_DIR_SEP(elt[i]); ++i) + ; + + if (i > ret+1) + memmove(elt+ret+1, elt+i, strlen(elt+i) + 1); if (KPSE_DEBUG_P (KPSE_DEBUG_STAT)) DEBUGF2 ("kpse_normalize_path (%s) => %u\n", elt, ret); diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/expand.c ./texk/kpathsea/expand.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/expand.c Fri Dec 13 12:31:34 2002 +++ ./texk/kpathsea/expand.c Sat Apr 26 01:30:33 2003 @@ -220,14 +220,16 @@ string thedir = STR_LLIST (*dir); unsigned dirlen = strlen (thedir); string save_ret = ret; - /* We need to retain trailing slash if that's the root directory. - * On unix, "/" is root dir, "" often taken to be current dir. - * On windows, "C:/" is root dir of drive C, and "C:" is current - * on drive C. There's no need to look at other cases, like UNC - * names. - */ - if (dirlen == 1 || (dirlen == 3 && NAME_BEGINS_WITH_DEVICE (thedir) - && IS_DIR_SEP (thedir[2]))) { + /* Retain trailing slash if that's the root directory. */ + if (dirlen == 1 + || (dirlen == 3 && NAME_BEGINS_WITH_DEVICE (thedir) && IS_DIR_SEP (thedir[2])) +#ifdef WIN32 + || (IS_UNC_NAME (thedir) && IS_DIR_SEP(thedir[unc_part_len(thedir) + 1])) +#endif +#ifdef HAVE_GETURL + || (IS_URL_NAME (thedir) && IS_DIR_SEP(thedir[url_part_len(thedir) + 1])) +#endif + ) { ret = concat3 (ret, thedir, ENV_SEP_STRING); len += dirlen + 1; ret[len - 1] = ENV_SEP; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/fontmap.c ./texk/kpathsea/fontmap.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/fontmap.c Sat Dec 14 11:13:05 2002 +++ ./texk/kpathsea/fontmap.c Thu Feb 20 21:36:24 2003 @@ -29,7 +29,7 @@ /* We have one and only one fontmap, so may as well make it static instead of passing it around. */ -static hash_table_type map; +hash_table_type *map; #ifndef MAP_NAME #define MAP_NAME "texfonts.map" #endif @@ -130,7 +130,11 @@ } else { /* We've got everything. Insert the new entry. They were already dynamically allocated, so don't bother with xstrdup. */ - hash_insert_normalized (&map, alias, filename); +#ifdef NORMALIZED + hash_insert_normalized (map, alias, filename); +#else + hash_insert (map, alias, filename); +#endif } } @@ -149,15 +153,17 @@ { string *filenames; + if ((map = hash_exists_p(hashtable_map)) == NULL) { map_path = kpse_init_format (kpse_fontmap_format); filenames = kpse_all_path_search (map_path, MAP_NAME); - map = hash_create (MAP_HASH_SIZE); + map = hash_create (MAP_HASH_SIZE, hashtable_map); while (*filenames) { map_file_parse (*filenames); filenames++; } + } } /* Look up KEY in texfonts.map's; if it's not found, remove any suffix @@ -169,7 +175,7 @@ string *ret; string suffix = find_suffix (key); - if (map.size == 0) { + if (map == NULL || map->size == 0) { read_all_maps (); } diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/hash.c ./texk/kpathsea/hash.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/hash.c Tue Jan 28 17:19:13 2003 +++ ./texk/kpathsea/hash.c Fri Feb 21 00:14:37 2003 @@ -16,6 +16,8 @@ License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#undef HASH_SHARED + #include #include @@ -37,47 +39,56 @@ #define TRANSFORM(x) (x) #endif -static unsigned -hash P2C(hash_table_type, table, const_string, key) +#define MAX_HASH_TABLES 64 + +static hash_table_type *hashtable_list[MAX_HASH_TABLES]; + +unsigned +hash P2C(hash_table_type *, table, const_string, key) { unsigned n = 0; - + /* Our keys aren't often anagrams of each other, so no point in weighting the characters. */ while (*key != 0) - n = (n + n + TRANSFORM (*key++)) % table.size; + n = (n + n + TRANSFORM (*key++)) % table->size; return n; } - + +#ifdef NORMALIZED /* Identical has function as above, but does not normalize keys. */ -static unsigned -hash_normalized P2C(hash_table_type, table, const_string, key) +unsigned +hash_normalized P2C(hash_table_type *, table, const_string, key) { unsigned n = 0; /* Our keys aren't often anagrams of each other, so no point in weighting the characters. */ while (*key != 0) - n = (n + n + (*key++)) % table.size; + n = (n + n + (*key++)) % table->size; return n; } +#endif -hash_table_type -hash_create P1C(unsigned, size) +hash_table_type * +hash_unshared_create P2C(unsigned, size, hashtable_instances, instance) { /* hash_table_type ret; changed into "static ..." to work around gcc optimizer bug for Alpha. */ - static hash_table_type ret; + static hash_table_type *ret; unsigned b; - ret.buckets = XTALLOC (size, hash_element_type *); - ret.size = size; + ret = XTALLOC (sizeof(hash_table_type), hash_table_type); + ret->buckets = XTALLOC (size, hash_element_type *); + ret->size = size; /* calloc's zeroes aren't necessarily NULL, so be safe. */ - for (b = 0; b size; b++) + ret->buckets[b] = NULL; + + hashtable_list[instance] = ret; + return ret; } @@ -85,11 +96,11 @@ duplicate the strings, in case they're being purposefully shared. */ void -hash_insert P3C(hash_table_type *, table, +hash_unshared_insert P3C(hash_table_type *, table, const_string, key, const_string, value) { - unsigned n = hash (*table, key); + unsigned n = hash (table, key); hash_element_type *new_elt = XTALLOC1 (hash_element_type); new_elt->key = key; @@ -108,14 +119,15 @@ loc->next = new_elt; /* Insert the new one after. */ } } - + +#ifdef NORMALIZED /* Same as above, for normalized keys. */ void -hash_insert_normalized P3C(hash_table_type *, table, +hash_unshared_insert_normalized P3C(hash_table_type *, table, const_string, key, const_string, value) { - unsigned n = hash_normalized (*table, key); + unsigned n = hash_normalized (table, key); hash_element_type *new_elt = XTALLOC1 (hash_element_type); new_elt->key = key; @@ -134,16 +146,17 @@ loc->next = new_elt; /* Insert the new one after. */ } } +#endif /* WIN32*/ /* Remove a (KEY, VALUE) pair. */ void -hash_remove P3C(hash_table_type *, table, const_string, key, +hash_unshared_remove P3C(hash_table_type *, table, const_string, key, const_string, value) { hash_element_type *p; hash_element_type *q; - unsigned n = hash (*table, key); + unsigned n = hash (table, key); /* Find pair. */ for (q = NULL, p = table->buckets[n]; p != NULL; q = p, p = p->next) @@ -162,11 +175,11 @@ #ifdef KPSE_DEBUG /* Print the hash values as integers if this is nonzero. */ -boolean kpse_debug_hash_lookup_int = false; +boolean kpse_debug_hash_unshared_lookup_int = false; #endif string * -hash_lookup P2C(hash_table_type, table, const_string, key) +hash_unshared_lookup P2C(hash_table_type, *table, const_string, key) { hash_element_type *p; str_list_type ret; @@ -174,7 +187,7 @@ ret = str_list_init (); /* Look at everything in this bucket. */ - for (p = table.buckets[n]; p != NULL; p = p->next) + for (p = table->buckets[n]; p != NULL; p = p->next) if (FILESTRCASEEQ (key, p->key)) /* Cast because the general str_list_type shouldn't force const data. */ str_list_add (&ret, (string) p->value); @@ -186,7 +199,7 @@ #ifdef KPSE_DEBUG if (KPSE_DEBUG_P (KPSE_DEBUG_HASH)) { - DEBUGF1 ("hash_lookup(%s) =>", key); + DEBUGF1 ("hash_unshared_lookup(%s) =>", key); if (!STR_LIST (ret)) fputs (" (nil)\n", stderr); else @@ -195,7 +208,7 @@ for (r = STR_LIST (ret); *r; r++) { putc (' ', stderr); - if (kpse_debug_hash_lookup_int) + if (kpse_debug_hash_unshared_lookup_int) fprintf (stderr, "%ld", (long) *r); else fputs (*r, stderr); @@ -212,13 +225,13 @@ /* We only print nonempty buckets, to decrease output volume. */ void -hash_print P2C(hash_table_type, table, boolean, summary_only) +hash_unshared_print P2C(hash_table_type *, table, boolean, summary_only) { unsigned b; unsigned total_elements = 0, total_buckets = 0; - for (b = 0; b < table.size; b++) { - hash_element_type *bucket = table.buckets[b]; + for (b = 0; b < table->size; b++) { + hash_element_type *bucket = table->buckets[b]; if (bucket) { unsigned len = 1; @@ -242,9 +255,36 @@ fprintf (stderr, "%u buckets, %u nonempty (%u%%); %u entries, average chain %.1f.\n", - table.size, + table->size, total_buckets, - 100 * total_buckets / table.size, + 100 * total_buckets / table->size, total_elements, total_buckets ? total_elements / (double) total_buckets : 0.0); +} + + +/* Simple iterator over hash-table elements */ +void +hash_unshared_iter P2C(hash_table_type *, table, hash_iter_fn, fn) +{ + unsigned b; + + if (! table) return; + + for (b = 0; b < table->size; b++) { + hash_element_type *bucket = table->buckets[b]; + if (bucket) { + unsigned len = 1; + hash_element_type *tb; + for (tb = bucket; tb != NULL ; tb = tb->next) { +#ifdef KPSE_DEBUG + if (KPSE_DEBUG_P (KPSE_DEBUG_HASH)) + { + DEBUGF2("applying fn to %s%s\n", tb->key, tb->value); + } +#endif + (*fn)(tb->key, tb->value); + } + } + } } diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/hash.h ./texk/kpathsea/hash.h --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/hash.h Sat Dec 14 10:48:52 2002 +++ ./texk/kpathsea/hash.h Fri Feb 21 11:25:18 2003 @@ -21,7 +21,47 @@ #include #include +#include +#ifdef HASH_SHARED +#define hash_create hash_shared_create +#define hash_insert hash_shared_insert +#define hash_insert_normalized hash_shared_insert_normalized +#define hash_remove hash_shared_remove +#define hash_lookup hash_shared_lookup +#define hash_print hash_shared_print +#define hash_iter hash_shared_iter +#define hash_end_init hash_shared_end_init +#define hash_exists_p hash_shared_exists_p +#define hash_init hash_shared_init +#else +#define hash_create hash_unshared_create +#define hash_insert hash_unshared_insert +#define hash_insert_normalized hash_unshared_insert_normalized +#define hash_remove hash_unshared_remove +#define hash_lookup hash_unshared_lookup +#define hash_print hash_unshared_print +#define hash_iter hash_unshared_iter +#define hash_end_init hash_unshared_end_init +#define hash_exists_p hash_unshared_exists_p +#define hash_init hash_unshared_init +#endif + +#define hash_reinit hash_shared_reinit + +typedef enum { + hashtable_cnf = 0, + hashtable_db, + hashtable_alias, + hashtable_map, + hashtable_links, + hashtable_symtab, + hashtable_remote, + hashtable_t1fonts, + hashtable_tfminfo, + hashtable_fontmaps, + hashtable_last /* This one must be the last one ! */ +} hashtable_instances; /* A single (key,value) pair. */ typedef struct hash_element_struct @@ -37,6 +77,23 @@ hash_element_type **buckets; unsigned size; } hash_table_type; + +extern hash_table_type *cnf_hash; +extern hash_table_type *db; +extern hash_table_type *alias_db; +extern hash_table_type *map; +extern hash_table_type *link_table; +extern hash_table_type *remote_db; + +void hash_free P1H(void *address); +extern KPSEDLL void hash_end_init P1H(void); +extern KPSEDLL hash_table_type *hash_exists_p P1H(hashtable_instances n); +extern KPSEDLL void hash_init P1H(void); +extern KPSEDLL void hash_reinit P1H(void); +void hash_save_str_list P1H(str_list_type l); + +extern KPSEDLL boolean hash_init_needed; + #ifdef KPSE_DEBUG /* How to print the hash results when debugging. */ @@ -44,7 +101,11 @@ #endif /* Create a hash table of size SIZE. */ -extern KPSEDLL hash_table_type hash_create P1H(unsigned size); +extern KPSEDLL hash_table_type *hash_create P2H(unsigned size, hashtable_instances instance); +#if 0 +/* reset an existing table. */ +extern KPSEDLL hash_table_type *hash_reset P1H(hashtable_instances instance); +#endif /* Insert the (KEY,VALUE) association into TABLE. KEY may have more than one VALUE. Neither KEY nor VALUE is copied. */ @@ -65,9 +126,13 @@ /* Look up KEY in MAP, and return NULL-terminated list of all matching values (not copies), in insertion order. If none, return NULL. */ -extern KPSEDLL string *hash_lookup P2H(hash_table_type table, const_string key); +extern KPSEDLL string *hash_lookup P2H(hash_table_type *table, const_string key); /* Print TABLE to stderr. */ -extern void hash_print P2H(hash_table_type table, boolean summary_only); +extern void hash_print P2H(hash_table_type *table, boolean summary_only); + +typedef void (CDECL * hash_iter_fn) P2H(const_string key, const_string value); + +extern KPSEDLL void hash_iter P2H(hash_table_type *table, hash_iter_fn fn); #endif /* not HASH_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/kpathsea.h ./texk/kpathsea/kpathsea.h --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/kpathsea.h Mon May 29 10:52:17 2000 +++ ./texk/kpathsea/kpathsea.h Wed Sep 17 23:50:03 2003 @@ -1,6 +1,5 @@ #include #include -#include #include #include #include @@ -34,6 +33,7 @@ #include #include #include +#include #include #include #include diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/lib.h ./texk/kpathsea/lib.h --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/lib.h Fri Jan 31 18:57:40 2003 +++ ./texk/kpathsea/lib.h Fri Aug 22 23:27:36 2003 @@ -116,8 +116,23 @@ pointer into NAME. */ extern KPSEDLL const_string xbasename P1H(const_string name); +#ifdef WIN32 +/* Simplify in place path NAME. This removes /./ and /../ path elements. */ +extern KPSEDLL string xdirsimplify P1H(const_string name); +#endif + /* Return directory part of NAME. This returns a new string. */ extern KPSEDLL string xdirname P1H(const_string name); + +#ifdef WIN32 +/* Return the length of the UNC part if there is one in `name' */ +extern unsigned unc_part_len P1H(const_string name); +#endif + +#ifdef HAVE_GETURL +/* Return the length of the URL prefix if there is one in `name' */ +extern unsigned url_part_len P1H(const_string name); +#endif #ifndef HAVE_STRSTR extern string strstr P2H(const_string haystack, const_string needle); diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/pathsearch.c ./texk/kpathsea/pathsearch.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/pathsearch.c Tue Feb 11 18:01:42 2003 +++ ./texk/kpathsea/pathsearch.c Sat Apr 26 01:30:34 2003 @@ -41,7 +41,7 @@ need to do various special things in this case, since we obviously don't yet have the configuration files when we're searching for the configuration files. */ -static boolean first_search = true; +boolean first_search = true; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/progname.c ./texk/kpathsea/progname.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/progname.c Fri Dec 13 13:11:14 2002 +++ ./texk/kpathsea/progname.c Fri Feb 21 09:14:17 2003 @@ -23,6 +23,9 @@ #include /* For kpse_reset_progname */ #include +#ifdef HASH_SHARED +#include +#endif #if defined (WIN32) || defined (DJGPP) #include @@ -593,6 +596,18 @@ kpse_program_name = xstrdup (program_invocation_short_name); } } + +#ifdef HASH_SHARED + /* + Remap hash tables in the current space if available. + */ + hash_init(); + + /* Force initialisation and read texmf.cnf ù*/ + kpse_cnf_get("TEXMF"); + + hash_end_init(); +#endif } /* This function is deprecated, because when we pretend to have a different diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/readable.c ./texk/kpathsea/readable.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/readable.c Mon Nov 19 06:40:35 2001 +++ ./texk/kpathsea/readable.c Sat Apr 26 01:30:34 2003 @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -79,6 +80,10 @@ #else /* ! WIN32 */ struct stat st; #endif + + if (IS_URL_NAME(name)) { + return (string)name; + } kpse_normalize_path((string)name); if (READABLE (name, st)) { diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/stamp-paths ./texk/kpathsea/stamp-paths --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/stamp-paths Thu Jan 01 01:00:00 1970 +++ ./texk/kpathsea/stamp-paths Wed Sep 17 22:58:32 2003 @@ -0,0 +1,2 @@ +17/09/2003 +22:58 diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/tex-file.c ./texk/kpathsea/tex-file.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/tex-file.c Sat Feb 08 09:35:10 2003 +++ ./texk/kpathsea/tex-file.c Sun Jun 22 01:11:41 2003 @@ -701,6 +701,19 @@ || format == kpse_ofm_format); string ret = NULL; +#ifdef NO_MULTIPLE_EXTENSIONS + /* Will be 0 for unset, 1 for allow, 2 for disable. */ + static boolean allow_multiple_suffixes = 0; + boolean first_pass; + + if (!allow_multiple_suffixes) { + string v = kpse_var_value("allow_multiple_suffixes"); + /* No explicit false value means allow. */ + allow_multiple_suffixes = ((v && (*v == 'f' || *v == 'n' || *v == '0')) ? 2 : 1); + free(v); + } +#endif + /* NAME being NULL is a programming bug somewhere. NAME can be empty, though; this happens with constructs like `\input\relax'. */ assert (name); @@ -708,6 +721,22 @@ if (FMT_INFO.path == NULL) kpse_init_format (format); + /* Set up target list. */ + count = 0; + target = XTALLOC1 (const_string); + +#ifdef NO_MULTIPLE_EXTENSIONS + /* The first pass which tries standard suffixes will be omitted + if texmf.cnf says explicitly so, and if the file has not already + a 3 chars suffix. */ + if (IS_URL_NAME(name)) + first_pass = false; + else + first_pass = (allow_multiple_suffixes == 1 || + !(strlen(name) >= 4 && name[strlen(name) - 4] == '.')); + + if (first_pass) { +#endif /* Does NAME already end in a possible suffix? */ name_len = strlen (name); if (FMT_INFO.suffix) { @@ -725,9 +754,6 @@ } } - /* Set up target list. */ - count = 0; - target = XTALLOC1 (const_string); /* Case #1: NAME doesn't have a suffix which is equal to a "standard" suffix. For example, foo.bar, but not foo.tex. We look for the name with the standard suffixes appended. */ @@ -747,9 +773,17 @@ } } } +#ifdef NO_MULTIPLE_EXTENSIONS + } +#endif /* Case #2: Just look for the name we've been given, provided non-suffix searches are allowed or the name already includes a suffix. */ - if (name_has_suffix_already || !FMT_INFO.suffix_search_only) { + if (name_has_suffix_already || !FMT_INFO.suffix_search_only +#ifdef NO_MULTIPLE_EXTENSIONS + /* or provided no search occured yet */ + || !first_pass +#endif + ) { target[count++] = xstrdup (name); XRETALLOC(target, count+1, const_string); if (use_fontmaps && (mapped_names = kpse_fontmap_lookup (name)) != NULL) { diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/texmf.in ./texk/kpathsea/texmf.in --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/texmf.in Sat Mar 01 20:18:31 2003 +++ ./texk/kpathsea/texmf.in Sun Jun 22 14:48:53 2003 @@ -353,6 +353,13 @@ % Allow TeX, MF, and MP to parse the first line of an input file for % the %&format construct. parse_first_line = f +parse_first_line.mpost = t + +% Disable search on multiple suffixes filenames. In many case, when `foo.bar' +% is looked for, you do not want to look for `foo.bar.tex' before. This flag +% disables searching for standard suffixes if the file name has already an +% extension of 3 characters. Default value is true (old behaviour). +allow_multiple_suffixes = f % Enable the mktex... scripts by default? These must be set to 0 or 1. % Particular programs can and do override these settings, for example diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/xbasename.c ./texk/kpathsea/xbasename.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/xbasename.c Fri Dec 13 11:57:45 2002 +++ ./texk/kpathsea/xbasename.c Sat Apr 26 01:30:35 2003 @@ -31,6 +31,9 @@ const_string base = NULL; unsigned len; + if (name == NULL) + return NULL; + for (len = strlen (name); len > 0; len--) { if (IS_DIR_SEP (name[len - 1]) || IS_DEVICE_SEP (name[len - 1])) { base = name + len; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/kpathsea/xdirname.c ./texk/kpathsea/xdirname.c --- c:\source\TeXLive\Build\source\TeX/texk/kpathsea/xdirname.c Mon Nov 19 06:40:35 2001 +++ ./texk/kpathsea/xdirname.c Fri Aug 22 23:32:39 2003 @@ -25,6 +25,120 @@ #include #include +#ifdef HAVE_GETURL +unsigned url_part_len P1C(const_string, name) +{ + int limit; + for(limit = 0; name[limit] && name[limit] != ':'; limit++) + ; + if (name[limit] != ':' + || !IS_DIR_SEP(name[limit+1]) + || !IS_DIR_SEP(name[limit+2])) { + limit = 0; + } + else { + for(limit +=3; name[limit] && !IS_DIR_SEP(name[limit]); limit++) + ; + if (!IS_DIR_SEP(name[limit])) + limit = 0; + else + limit++; + } + + return limit; +} +#endif +#ifdef WIN32 +unsigned unc_part_len P1C(const_string, name) +{ + int limit; + + for (limit = 2; name[limit] && !IS_DIR_SEP(name[limit]); limit++) + ; + if (name[limit]) { + for (limit++ ; name[limit] && !IS_DIR_SEP(name[limit]); limit++) + ; + if (!IS_DIR_SEP(name[limit])) + limit = 0; + else + limit++; + } else { + /* malformed UNC name, backup */ + limit = 0; + } + return limit; +} +#endif + +#ifdef WIN32 +string +xdirsimplify P1C(string, name) +{ + char *begin, *p, *q, *end; + + if (*name == '\0') return name; + end = name + strlen(name); + begin = name; + + if (NAME_BEGINS_WITH_DEVICE(begin)) { + begin += 2; +#ifdef HAVE_GETURL + } else if (IS_URL_NAME(begin)) { + begin += url_part_len(begin) - 1; +#endif +#ifdef WIN32 + } else if (IS_UNC_NAME(begin)) { + begin += unc_part_len(begin) - 1; + } +#endif + + /* Remove multiple path separators */ + p = begin; + while (p != end) { + if (IS_DIR_SEP(*p)) { + q = p + 1; + while (IS_DIR_SEP(*q)) q++; + if (q > p + 1) + memmove(p + 1, q, end - q + 1); + } + p++; + } + + /* Simplify path, removing /../ and /./ */ + p = begin; + + while (p != end) { + if (IS_DIR_SEP(*p)) { + if (*(p+1) == '.') { + if (IS_DIR_SEP(*(p+2))) { + memmove(p, p + 2, end - p + 1); + p = p - 1; + } + else if (*(p+2) == '.' && IS_DIR_SEP(*(p+3))) { + char *q; + if (p == begin) { + /* Remove /../ at beginning */ + memmove(p, p+3, end - (p + 3) + 1); + p--; + } + else { + q = p - 1; + while (q > begin && !IS_DIR_SEP(*q)) q--; + if (IS_DIR_SEP(*q)) { + memmove(q, p + 3, end - (p + 3) + 1); + p = q - 1; + } + } + } + } + } + p++; + } + + return name; +} +#endif /* WIN32 */ + string xdirname P1C(const_string, name) { @@ -37,18 +151,13 @@ if (NAME_BEGINS_WITH_DEVICE(name)) { limit = 2; +#ifdef HAVE_GETURL + } else if (IS_URL_NAME(name)) { + limit = url_part_len(name); +#endif #ifdef WIN32 } else if (IS_UNC_NAME(name)) { - for (limit = 2; name[limit] && !IS_DIR_SEP(name[limit]); limit++) - ; - if (name[limit]) { - for (limit++ ; name[limit] && !IS_DIR_SEP(name[limit]); limit++) - ; - limit--; - } else { - /* malformed UNC name, backup */ - limit = 2; - } + limit = unc_part_len(name); #endif } @@ -82,7 +191,7 @@ #ifdef TEST char *tab[] = { - "\\\\neuromancer\\fptex\\bin\\win32\\kpsewhich.exe", + "\\\\neuromancer.ese-metz.fr\\fptex\\bin\\win32\\kpsewhich.exe", "\\\\neuromancer\\fptex\\win32\\kpsewhich.exe", "\\\\neuromancer\\fptex\\kpsewhich.exe", "\\\\neuromancer\\kpsewhich.exe", @@ -98,6 +207,10 @@ "/usr/kpsewhich.exe", "///usr/kpsewhich.exe", "///kpsewhich.exe", + "ftp://neuromancer.ese-metz.fr/fptex/bin/win32/kpsewhich.exe", + "ftp://neuromancer/fptex/win32/kpsewhich.exe", + "ftp://neuromancer/fptex/kpsewhich.exe", + "ftp://neuromancer/kpsewhich.exe", NULL }; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/AUTHORS ./texk/odvipsk/AUTHORS --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/AUTHORS Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/AUTHORS Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/AUTHORS diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/ChangeLog ./texk/odvipsk/ChangeLog --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/ChangeLog Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/ChangeLog Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/ChangeLog diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/INSTALL ./texk/odvipsk/INSTALL --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/INSTALL Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/INSTALL Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/INSTALL diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/INSTALLATION ./texk/odvipsk/INSTALLATION --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/INSTALLATION Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/INSTALLATION Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/INSTALLATION diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/README ./texk/odvipsk/README --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/README Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/README Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/README diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/acconfig.h ./texk/odvipsk/acconfig.h --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/acconfig.h Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/acconfig.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/acconfig.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/adobe ./texk/odvipsk/adobe --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/adobe Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/adobe Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/adobe diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/afm2tfm.1 ./texk/odvipsk/afm2tfm.1 --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/afm2tfm.1 Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/afm2tfm.1 Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/afm2tfm.1 diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/afm2tfm.c ./texk/odvipsk/afm2tfm.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/afm2tfm.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/afm2tfm.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/afm2tfm.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/atari ./texk/odvipsk/atari --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/atari Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/atari Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/atari diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/bbox.c ./texk/odvipsk/bbox.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/bbox.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/bbox.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/bbox.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/c-auto.in ./texk/odvipsk/c-auto.in --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/c-auto.in Wed Jan 17 08:59:16 2001 +++ ./texk/odvipsk/c-auto.in Mon Dec 09 14:37:38 2002 @@ -1 +1,4 @@ -../dvipsk/c-auto.in +/* c-auto.in. Generated automatically from configure.in by autoheader. */ + +/* The number of bytes in a int. */ +#undef SIZEOF_INT diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/cmfonts.map ./texk/odvipsk/cmfonts.map --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/cmfonts.map Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/cmfonts.map Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/cmfonts.map diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/color.c ./texk/odvipsk/color.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/color.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/color.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/color.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/color.lpro ./texk/odvipsk/color.lpro --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/color.lpro Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/color.lpro Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/color.lpro diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/crop.lpro ./texk/odvipsk/crop.lpro --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/crop.lpro Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/crop.lpro Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/crop.lpro diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/cyrfonts.map ./texk/odvipsk/cyrfonts.map --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/cyrfonts.map Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/cyrfonts.map Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/cyrfonts.map diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/debug.h ./texk/odvipsk/debug.h --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/debug.h Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/debug.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/debug.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/depend.make ./texk/odvipsk/depend.make --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/depend.make Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/depend.make Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/depend.make diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dopage.c ./texk/odvipsk/dopage.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dopage.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/dopage.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dopage.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dosection.c ./texk/odvipsk/dosection.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dosection.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/dosection.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dosection.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dospecial.c ./texk/odvipsk/dospecial.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dospecial.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/dospecial.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dospecial.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/download.c ./texk/odvipsk/download.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/download.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/download.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/download.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dpicheck.c ./texk/odvipsk/dpicheck.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dpicheck.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/dpicheck.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dpicheck.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/drawPS.c ./texk/odvipsk/drawPS.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/drawPS.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/drawPS.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/drawPS.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dviinput.c ./texk/odvipsk/dviinput.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dviinput.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/dviinput.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dviinput.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.1 ./texk/odvipsk/dvips.1 --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.1 Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/dvips.1 Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dvips.1 diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.c ./texk/odvipsk/dvips.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/dvips.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dvips.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.h ./texk/odvipsk/dvips.h --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.h Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/dvips.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dvips.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.help ./texk/odvipsk/dvips.help --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.help Mon Oct 14 21:39:22 2002 +++ ./texk/odvipsk/dvips.help Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dvips.help diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.info ./texk/odvipsk/dvips.info --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.info Mon Oct 14 21:39:25 2002 +++ ./texk/odvipsk/dvips.info Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dvips.info diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.info-1 ./texk/odvipsk/dvips.info-1 --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.info-1 Mon Oct 14 21:39:26 2002 +++ ./texk/odvipsk/dvips.info-1 Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dvips.info-1 diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.info-2 ./texk/odvipsk/dvips.info-2 --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.info-2 Mon Oct 14 21:39:28 2002 +++ ./texk/odvipsk/dvips.info-2 Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dvips.info-2 diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.info-3 ./texk/odvipsk/dvips.info-3 --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.info-3 Mon Oct 14 21:39:30 2002 +++ ./texk/odvipsk/dvips.info-3 Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dvips.info-3 diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.info-4 ./texk/odvipsk/dvips.info-4 --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.info-4 Mon Oct 14 21:39:32 2002 +++ ./texk/odvipsk/dvips.info-4 Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dvips.info-4 diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.texi ./texk/odvipsk/dvips.texi --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/dvips.texi Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/dvips.texi Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/dvips.texi diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/emspecial.c ./texk/odvipsk/emspecial.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/emspecial.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/emspecial.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/emspecial.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/eufonts.map ./texk/odvipsk/eufonts.map --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/eufonts.map Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/eufonts.map Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/eufonts.map diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/finclude.c ./texk/odvipsk/finclude.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/finclude.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/finclude.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/finclude.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/finclude.lpro ./texk/odvipsk/finclude.lpro --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/finclude.lpro Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/finclude.lpro Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/finclude.lpro diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/flib.c ./texk/odvipsk/flib.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/flib.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/flib.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/flib.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/fontdef.c ./texk/odvipsk/fontdef.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/fontdef.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/fontdef.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/fontdef.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/header.c ./texk/odvipsk/header.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/header.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/header.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/header.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/hps ./texk/odvipsk/hps --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/hps Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/hps Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/hps diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/hps.c ./texk/odvipsk/hps.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/hps.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/hps.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/hps.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/hps.lpro ./texk/odvipsk/hps.lpro --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/hps.lpro Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/hps.lpro Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/hps.lpro diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/lafonts.map ./texk/odvipsk/lafonts.map --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/lafonts.map Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/lafonts.map Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/lafonts.map diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/loadfont.c ./texk/odvipsk/loadfont.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/loadfont.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/loadfont.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/loadfont.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/makefont.c ./texk/odvipsk/makefont.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/makefont.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/makefont.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/makefont.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/mtest.ps ./texk/odvipsk/mtest.ps --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/mtest.ps Tue Oct 15 22:14:18 2002 +++ ./texk/odvipsk/mtest.ps Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/mtest.ps diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/mvs ./texk/odvipsk/mvs --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/mvs Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/mvs Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/mvs diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/output.c ./texk/odvipsk/output.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/output.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/output.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/output.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/papersiz.c ./texk/odvipsk/papersiz.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/papersiz.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/papersiz.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/papersiz.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/paths.h ./texk/odvipsk/paths.h --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/paths.h Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/paths.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/paths.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/pc ./texk/odvipsk/pc --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/pc Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/pc Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/pc diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/pprescan.c ./texk/odvipsk/pprescan.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/pprescan.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/pprescan.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/pprescan.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/prescan.c ./texk/odvipsk/prescan.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/prescan.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/prescan.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/prescan.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/protos.h ./texk/odvipsk/protos.h --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/protos.h Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/protos.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/protos.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/psfonts.map ./texk/odvipsk/psfonts.map --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/psfonts.map Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/psfonts.map Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/psfonts.map diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/ptexmac.h ./texk/odvipsk/ptexmac.h --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/ptexmac.h Sun Mar 19 19:11:29 2000 +++ ./texk/odvipsk/ptexmac.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/ptexmac.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/reencode ./texk/odvipsk/reencode --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/reencode Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/reencode Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/reencode diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/repack.c ./texk/odvipsk/repack.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/repack.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/repack.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/repack.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/resident.c ./texk/odvipsk/resident.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/resident.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/resident.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/resident.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/scalewidth.c ./texk/odvipsk/scalewidth.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/scalewidth.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/scalewidth.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/scalewidth.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/scanpage.c ./texk/odvipsk/scanpage.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/scanpage.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/scanpage.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/scanpage.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/search.c ./texk/odvipsk/search.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/search.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/search.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/search.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/skippage.c ./texk/odvipsk/skippage.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/skippage.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/skippage.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/skippage.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/special.lpro ./texk/odvipsk/special.lpro --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/special.lpro Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/special.lpro Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/special.lpro diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/squeeze.c ./texk/odvipsk/squeeze.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/squeeze.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/squeeze.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/squeeze.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/stamp-auto.in ./texk/odvipsk/stamp-auto.in --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/stamp-auto.in Mon Oct 14 21:39:34 2002 +++ ./texk/odvipsk/stamp-auto.in Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/stamp-auto.in diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/t1part.c ./texk/odvipsk/t1part.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/t1part.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/t1part.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/t1part.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/t1part.h ./texk/odvipsk/t1part.h --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/t1part.h Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/t1part.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/t1part.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/test.ps ./texk/odvipsk/test.ps --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/test.ps Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/test.ps Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/test.ps diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/testdata ./texk/odvipsk/testdata --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/testdata Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/testdata Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/testdata diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/tex ./texk/odvipsk/tex --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/tex Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/tex Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/tex diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/tex.lpro ./texk/odvipsk/tex.lpro --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/tex.lpro Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/tex.lpro Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/tex.lpro diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/texc.script ./texk/odvipsk/texc.script --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/texc.script Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/texc.script Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/texc.script diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/texps.lpro ./texk/odvipsk/texps.lpro --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/texps.lpro Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/texps.lpro Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/texps.lpro diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/tfmload.c ./texk/odvipsk/tfmload.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/tfmload.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/tfmload.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/tfmload.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/unpack.c ./texk/odvipsk/unpack.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/unpack.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/unpack.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/unpack.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/virtualfont.c ./texk/odvipsk/virtualfont.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/virtualfont.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/virtualfont.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/virtualfont.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/vmcms ./texk/odvipsk/vmcms --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/vmcms Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/vmcms Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/vmcms diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/vms ./texk/odvipsk/vms --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/vms Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/vms Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/vms diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/odvipsk/writet1.c ./texk/odvipsk/writet1.c --- c:\source\TeXLive\Build\source\TeX/texk/odvipsk/writet1.c Wed Feb 09 08:31:02 2000 +++ ./texk/odvipsk/writet1.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../dvipsk/writet1.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/ANNOUNCE ./texk/oxdvik/ANNOUNCE --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/ANNOUNCE Wed Jan 30 20:18:42 2002 +++ ./texk/oxdvik/ANNOUNCE Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/ANNOUNCE diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/BUGS ./texk/oxdvik/BUGS --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/BUGS Wed Jan 30 20:18:42 2002 +++ ./texk/oxdvik/BUGS Fri Nov 26 10:08:01 1999 @@ -1 +0,0 @@ -../xdvik/BUGS diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/FAQ ./texk/oxdvik/FAQ --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/FAQ Wed Jan 30 20:18:42 2002 +++ ./texk/oxdvik/FAQ Fri Nov 26 10:08:01 1999 @@ -1 +0,0 @@ -../xdvik/FAQ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/MAKE-VMS.COM ./texk/oxdvik/MAKE-VMS.COM --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/MAKE-VMS.COM Wed Jan 30 20:18:42 2002 +++ ./texk/oxdvik/MAKE-VMS.COM Fri Nov 26 10:08:04 1999 @@ -1 +0,0 @@ -../xdvik/MAKE-VMS.COM diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/README.VMS ./texk/oxdvik/README.VMS --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/README.VMS Wed Jan 30 20:18:42 2002 +++ ./texk/oxdvik/README.VMS Fri Nov 26 10:08:02 1999 @@ -1 +0,0 @@ -../xdvik/README.VMS diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/README.src-specials ./texk/oxdvik/README.src-specials --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/README.src-specials Mon Oct 14 21:39:36 2002 +++ ./texk/oxdvik/README.src-specials Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/README.src-specials diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/README.t1fonts ./texk/oxdvik/README.t1fonts --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/README.t1fonts Mon Oct 14 21:39:37 2002 +++ ./texk/oxdvik/README.t1fonts Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/README.t1fonts diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/VMS-C.OPT ./texk/oxdvik/VMS-C.OPT --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/VMS-C.OPT Wed Jan 30 20:18:42 2002 +++ ./texk/oxdvik/VMS-C.OPT Fri Nov 26 10:08:04 1999 @@ -1 +0,0 @@ -../xdvik/VMS-C.OPT diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/XDVI.RNH ./texk/oxdvik/XDVI.RNH --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/XDVI.RNH Wed Jan 30 20:18:42 2002 +++ ./texk/oxdvik/XDVI.RNH Fri Nov 26 10:08:02 1999 @@ -1 +0,0 @@ -../xdvik/XDVI.RNH diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/alloc-debug.h ./texk/oxdvik/alloc-debug.h --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/alloc-debug.h Sat Jun 02 22:15:57 2001 +++ ./texk/oxdvik/alloc-debug.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/alloc-debug.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/app-defaults-xdvik ./texk/oxdvik/app-defaults-xdvik --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/app-defaults-xdvik Mon Oct 14 21:39:40 2002 +++ ./texk/oxdvik/app-defaults-xdvik Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/app-defaults-xdvik diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/dvips.c ./texk/oxdvik/dvips.c --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/dvips.c Mon Oct 14 21:39:52 2002 +++ ./texk/oxdvik/dvips.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/dvips.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/gs ./texk/oxdvik/gs --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/gs Wed Jan 30 20:18:42 2002 +++ ./texk/oxdvik/gs Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/gs diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/help-window.c ./texk/oxdvik/help-window.c --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/help-window.c Sun Nov 03 12:25:49 2002 +++ ./texk/oxdvik/help-window.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/help-window.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/help-window.h ./texk/oxdvik/help-window.h --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/help-window.h Sat Jun 02 22:15:57 2001 +++ ./texk/oxdvik/help-window.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/help-window.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/message-window.c ./texk/oxdvik/message-window.c --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/message-window.c Mon Oct 14 21:40:02 2002 +++ ./texk/oxdvik/message-window.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/message-window.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/message-window.h ./texk/oxdvik/message-window.h --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/message-window.h Mon Oct 14 21:40:04 2002 +++ ./texk/oxdvik/message-window.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/message-window.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/mksedscript ./texk/oxdvik/mksedscript --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/mksedscript Wed Jan 30 20:18:42 2002 +++ ./texk/oxdvik/mksedscript Fri Nov 26 10:08:03 1999 @@ -1 +0,0 @@ -../xdvik/mksedscript diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/my-snprintf.c ./texk/oxdvik/my-snprintf.c --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/my-snprintf.c Thu Nov 14 04:32:23 2002 +++ ./texk/oxdvik/my-snprintf.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/my-snprintf.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/my-snprintf.h ./texk/oxdvik/my-snprintf.h --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/my-snprintf.h Thu Nov 14 04:32:23 2002 +++ ./texk/oxdvik/my-snprintf.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/my-snprintf.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/my-vsnprintf.c ./texk/oxdvik/my-vsnprintf.c --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/my-vsnprintf.c Mon Oct 14 21:40:05 2002 +++ ./texk/oxdvik/my-vsnprintf.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/my-vsnprintf.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/my-vsnprintf.h ./texk/oxdvik/my-vsnprintf.h --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/my-vsnprintf.h Mon Oct 14 21:40:06 2002 +++ ./texk/oxdvik/my-vsnprintf.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/my-vsnprintf.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/stamp-auto.in ./texk/oxdvik/stamp-auto.in --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/stamp-auto.in Sun Nov 03 12:25:49 2002 +++ ./texk/oxdvik/stamp-auto.in Fri Nov 26 10:08:03 1999 @@ -1 +0,0 @@ -../xdvik/stamp-auto.in diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/startxdvi ./texk/oxdvik/startxdvi --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/startxdvi Mon Oct 14 21:40:14 2002 +++ ./texk/oxdvik/startxdvi Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/startxdvi diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/statusline.c ./texk/oxdvik/statusline.c --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/statusline.c Mon Oct 14 21:40:16 2002 +++ ./texk/oxdvik/statusline.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/statusline.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/statusline.h ./texk/oxdvik/statusline.h --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/statusline.h Sat Jun 02 22:15:57 2001 +++ ./texk/oxdvik/statusline.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/statusline.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/string-utils.c ./texk/oxdvik/string-utils.c --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/string-utils.c Mon Oct 14 21:40:19 2002 +++ ./texk/oxdvik/string-utils.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/string-utils.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/string-utils.h ./texk/oxdvik/string-utils.h --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/string-utils.h Sat Jun 02 22:15:57 2001 +++ ./texk/oxdvik/string-utils.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/string-utils.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/t1mapper ./texk/oxdvik/t1mapper --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/t1mapper Mon Oct 14 21:40:20 2002 +++ ./texk/oxdvik/t1mapper Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/t1mapper diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/t1mapper.1 ./texk/oxdvik/t1mapper.1 --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/t1mapper.1 Wed Jan 30 20:18:43 2002 +++ ./texk/oxdvik/t1mapper.1 Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/t1mapper.1 diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/tfmload.c ./texk/oxdvik/tfmload.c --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/tfmload.c Mon Oct 14 21:40:36 2002 +++ ./texk/oxdvik/tfmload.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/tfmload.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/withenable.ac ./texk/oxdvik/withenable.ac --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/withenable.ac Wed Jan 30 20:18:43 2002 +++ ./texk/oxdvik/withenable.ac Fri Nov 26 10:08:03 1999 @@ -1 +0,0 @@ -../xdvik/withenable.ac diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/xdvi-search.el ./texk/oxdvik/xdvi-search.el --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/xdvi-search.el Mon Oct 14 21:40:45 2002 +++ ./texk/oxdvik/xdvi-search.el Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/xdvi-search.el diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/xdvi.man ./texk/oxdvik/xdvi.man --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/xdvi.man Sun Nov 03 12:25:49 2002 +++ ./texk/oxdvik/xdvi.man Fri Nov 26 10:08:03 1999 @@ -1 +0,0 @@ -../xdvik/xdvi.man diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/xserver-info.c ./texk/oxdvik/xserver-info.c --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/xserver-info.c Sun Nov 03 11:30:47 2002 +++ ./texk/oxdvik/xserver-info.c Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/xserver-info.c diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/xserver-info.h ./texk/oxdvik/xserver-info.h --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/xserver-info.h Sun Nov 03 11:30:47 2002 +++ ./texk/oxdvik/xserver-info.h Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/xserver-info.h diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/oxdvik/xt.ac ./texk/oxdvik/xt.ac --- c:\source\TeXLive\Build\source\TeX/texk/oxdvik/xt.ac Sat Feb 01 18:58:29 2003 +++ ./texk/oxdvik/xt.ac Thu Jan 01 01:00:00 1970 @@ -1 +0,0 @@ -../xdvik/xt.ac diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/tetex/epstopdf ./texk/tetex/epstopdf --- c:\source\TeXLive\Build\source\TeX/texk/tetex/epstopdf Wed Apr 09 17:12:09 2003 +++ ./texk/tetex/epstopdf Sat Apr 05 09:00:18 2003 @@ -4,7 +4,7 @@ # perl along $PATH rather than guessing a fixed location. The above # construction should work with most shells. -use strict; +use Strict; # A script to transform an EPS file so that: # a) it is guarenteed to start at the 0,0 coordinate diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/tetex/texdoctk ./texk/tetex/texdoctk --- c:\source\TeXLive\Build\source\TeX/texk/tetex/texdoctk Mon May 05 18:04:29 2003 +++ ./texk/tetex/texdoctk Sun Jun 22 14:48:53 2003 @@ -12,17 +12,17 @@ # add support for a texdoctk-local.dat, patch by Hans Fr. Nordhaug # ############################################################################### -use strict; +use Strict; use Tk; use Getopt::Long; Getopt::Long::config('bundling'); my $IsWin32 = ($^O =~ /MSWin32/i); -#if ($IsWin32) { -# use Win32::Registry; -# use Win32::API; -#} +if ($IsWin32) { + use Win32::Registry; + use Win32::API; +} # initialization of some internal variables $|=1; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/tetex/thumbpdf ./texk/tetex/thumbpdf --- c:\source\TeXLive\Build\source\TeX/texk/tetex/thumbpdf Sun Jun 15 22:22:27 2003 +++ ./texk/tetex/thumbpdf Thu Aug 14 11:42:26 2003 @@ -1,6 +1,6 @@ eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' && eval 'exec perl -S $0 $argv:q' if 0; -use strict; +use Strict; $^W=1; # turn warning on # # thumbpdf.pl @@ -20,8 +20,8 @@ # This file "thumbpdf.pl" may be renamed to "thumbpdf" # for installation purposes. # -my $file = "thumbpdf.pl"; -my $program = uc($&) if $file =~ /^\w+/; +my $tfile = "thumbpdf.pl"; +my $program = uc($&) if $tfile =~ /^\w+/; my $version = "3.4"; my $date = "2003/06/06"; my $author = "Heiko Oberdiek"; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/web2c/lib/openclose.c ./texk/web2c/lib/openclose.c --- c:\source\TeXLive\Build\source\TeX/texk/web2c/lib/openclose.c Tue Nov 27 19:40:29 2001 +++ ./texk/web2c/lib/openclose.c Sat Oct 26 18:59:30 2002 @@ -15,9 +15,16 @@ extern string fullnameoffile; /* For the filename recorder. */ extern boolean recorder_enabled; +#ifdef JOBTIME +/* For the job-time option */ +extern boolean jobtimep; +#endif /* Define some variables. */ string fullnameoffile = NULL; +#ifdef OUTPUT_DIR +string output_directory = NULL; +#endif static string recorder_name = NULL; static FILE *recorder_file; /* Defaults to NULL. */ boolean recorder_enabled; /* Defaults to false. */ @@ -74,6 +81,29 @@ funny_core_dump (); #endif +#ifdef OUTPUT_DIR + /* Here we suppose that : + - all of the input paths specify the current directory first + - if an output directory has been given, we should look for the file + there first, next on the normal path. + */ + if (output_directory != NULL) { + string fname = concat3(output_directory, "/", nameoffile + 1); + *f_ptr = fopen(fname, fopen_mode); + + if (*f_ptr != NULL) { + if (fullnameoffile) { + free(fullnameoffile); + fullnameoffile = NULL; + } + fullnameoffile = fname; + + return true; + } + + } +#endif + /* A negative FILEFMT means don't use a path. */ if (filefmt < 0) { /* no_file_path, for BibTeX .aux files and MetaPost things. */ @@ -163,6 +193,61 @@ succeeded. If it did, `nameoffile' is reset to the name opened if necessary, and `namelength' to its length. */ +#ifdef OUTPUT_DIR + +boolean +open_output P2C(FILE **, f_ptr, const_string, fopen_mode) +{ + string fname = NULL; + boolean same_output_directory_p = false; + + /* If we have an explicit output directory, use it. */ + if (output_directory != NULL) { + fname = concat3(output_directory, "/", nameoffile + 1); + } + else { + fname = xstrdup(nameoffile + 1); + same_output_directory_p = true; + } + + /* Is the filename openable as given? */ + *f_ptr = fopen (fname, fopen_mode); + + if (! *f_ptr) + { /* Can't open as given. Try the envvar. */ + string texmfoutput = kpse_var_value ("TEXMFOUTPUT"); + + if (texmfoutput && *texmfoutput && !kpse_absolute_p(nameoffile+1, false)) + { + free(fname); + fname = concat3 (texmfoutput, DIR_SEP_STRING, nameoffile + 1); + *f_ptr = fopen (fname, fopen_mode); + } + } + + /* If this succeeded, change nameoffile accordingly. */ + if (*f_ptr && !same_output_directory_p) + { + free (nameoffile); + namelength = strlen (fname); + nameoffile = (string)xmalloc (namelength + 2); + strcpy (nameoffile + 1, fname); + } + + /* FIXME: Shouldn't we be doing this always if we opened a file? */ + if (recorder_enabled) { + if (!recorder_file) + recorder_start(); + fprintf(recorder_file, "OUTPUT %s\n", fname); + } + + free (fname); + + return *f_ptr != NULL; +} + +#else + boolean open_output P2C(FILE **, f_ptr, const_string, fopen_mode) { @@ -202,6 +287,7 @@ return *f_ptr != NULL; } +#endif /* Close F. */ @@ -213,6 +299,22 @@ if (!f) return; +#ifdef JOBTIME +#if defined (TeX) || defined (MF) || defined (MP) + if (jobtimep) { +#ifdef WIN32 + extern SYSTEMTIME *get_startup_time(); + HANDLE h = (HANDLE)(_get_osfhandle(fileno(f))); + FILETIME filetime; + SYSTEMTIME *systemtime = get_startup_time (); + SystemTimeToFileTime (systemtime, &filetime); + SetFileTime (h, &filetime, &filetime, &filetime); +#else +#endif + } +#endif +#endif + if (fclose (f) == EOF) { /* It's not always nameoffile, we might have opened something else in the meantime. And it's not easy to extract the filenames out diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/web2c/lib/texmfmp.c ./texk/web2c/lib/texmfmp.c --- c:\source\TeXLive\Build\source\TeX/texk/web2c/lib/texmfmp.c Mon Sep 15 16:23:30 2003 +++ ./texk/web2c/lib/texmfmp.c Mon Sep 15 18:06:35 2003 @@ -14,6 +14,7 @@ #include "TEX-OR-MF-OR-MPd.h" #include +#include #include #include #include @@ -45,7 +46,11 @@ #elif defined (pdfeTeX) #include #elif defined (Omega) +#ifdef OLD_OMEGA +#include +#else #include +#endif #elif defined (eOmega) #include #else @@ -111,9 +116,31 @@ /* The C version of the jobname, if given. */ static const_string job_name; +#ifdef WIN32 +/* Potential input files */ +static string in_name; +#endif + /* Full source file name. */ extern string fullnameoffile; +#ifdef OUTPUT_DIR +/* The directory in which we want the files to be written. */ +extern string output_directory; +#endif + +#ifdef JOBTIME +/* Set job time option variables */ +boolean jobtimep = false; +SYSTEMTIME startup_time; +#endif + +#ifdef TIME_STATS +/* If we want run time statistics */ +static boolean timestatp = false; +static clock_t clock_start; +#endif + /* The filename for dynamic character translation, or NULL. */ string translate_filename; string default_translate_filename; @@ -175,6 +202,39 @@ any path searching. */ kpse_set_program_name (argv[0], user_progname); +#ifdef WIN32 + { + int argind = optind; + while (argind < argc) { + char first_char = argind < argc ? argv[argind][0] : 0; + + if (first_char && first_char != '&' && first_char != '\\') { + /* If the file can't be found, don't look too hard now. We'll + detect that it's missing in the normal course of things and give + the error then. */ + string name = argv[argind]; + if (first_char =='*') + name++; + in_name = kpse_find_file (name, INPUT_FORMAT, false); + if (in_name) { + char *p; + if (strchr(in_name, ' ') && job_name == NULL) { + char temp[PATH_MAX]; + _splitpath(in_name, 0, 0, temp, 0); + job_name = quote_filename(temp); + } + for (p = name; p && *p; p++) { + if (*p == ' ') *p = '*'; + else if (*p == '~') *p = '?'; + else if (*p == '\\') *p = '/'; + } + } + } + argind++; + } + } +#endif /* WIN32 */ + /* If no dump default yet, and we're not doing anything special on this run, we may want to look at the first line of the main input file for a %& specifier. */ @@ -652,7 +712,7 @@ translate_filename = kpse_var_value ("CHARTRANSLATE"); } #endif - + /* Load up cp8bit.tcx to do 1->1 translation if not other mapping is specified. */ if (!translate_filename) @@ -662,6 +722,7 @@ if (translate_filename) { read_char_translation_file (); } + #if 0 /* Code to set the isprintable array based on the locale. The code * was removed because in this form it affected not just output to @@ -712,7 +773,19 @@ #endif /* TeX */ #if defined (TeX) || defined (MF) || defined (MP) { "file-line-error-style", 0, &filelineerrorstylep, 1 }, +#ifdef HALT_ON_ERROR + { "halt-on-error", 0, &haltonerrorp, 1 }, +#endif { "jobname", 1, 0, 0 }, +#ifdef JOBTIME + { "jobtime", 1, &jobtimep, 1 }, +#endif +#ifdef OUTPUT_DIR + { "output-directory", 1, 0, 0 }, +#endif +#ifdef TIME_STATS + { "time-statistics", 0, ×tatp, 1}, +#endif { "parse-first-line", 0, &parsefirstlinep, 1 }, #if !defined(Omega) && !defined(eOmega) { "translate-file", 1, 0, 0 }, @@ -733,6 +806,76 @@ #endif /* MP */ { 0, 0, 0, 0 } }; +#ifdef WIN32 +void +TimetToFileTime (time_t t, LPFILETIME pft) +{ + LONGLONG ll = Int32x32To64(t, 10000000) + 116444736000000000; + pft->dwLowDateTime = (DWORD)(ll & 0xffffffff); + pft->dwHighDateTime = (DWORD)(ll >> 32); +} + +void +set_startup_time(SYSTEMTIME *st) +{ + assert(st != NULL); + memcpy(&startup_time, st, sizeof(SYSTEMTIME)); +} + +SYSTEMTIME * +get_startup_time() +{ + return &startup_time; +} + +/* Print filenames cleanly under Win32 */ + +void +texmfprintfilename(strnumber ipath, strnumber iname, strnumber iext) +{ + extern string gettexstring(strnumber); + + boolean must_quote = false; + char *spath = (ipath ? gettexstring(ipath) : ""); + char *sname = (iname ? gettexstring(iname) : ""); + char *sext = (iext ? gettexstring(iext) : ""); + char *full_name = concatn(spath, sname, sext, NULL); + char *p; + if (spath && *spath) free(spath); + if (sname && *sname) free(sname); + if (sext && *sext) free(sext); + if (full_name) { + must_quote = strchr(full_name, ' '); + if (must_quote) { + printchar('"'); + } + for (p = full_name; p && *p; p++) { + if (*p == '/') printchar('\\'); + else if (*p == '*') printchar(' '); + else if (*p == '?') printchar('~'); + else printchar(*p); + } + if (must_quote) { + printchar('"'); + } + } +} + +#else /* not WIN32 */ + +void +set_startup_time(struct utimbuf *utb) +{ + +} + +struct utimbuf * +get_startup_time() +{ + return &startup_time; +} + +#endif /* not WIN32 */ static void parse_options P2C(int, argc, string *, argv) @@ -761,6 +904,39 @@ } else if (ARGUMENT_IS ("jobname")) { job_name = optarg; +#ifdef JOBTIME + } else if (ARGUMENT_IS ("job-time")) { +#ifdef WIN32 + HANDLE h = CreateFile(optarg, GENERIC_READ, 0, 0, OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, 0); + if (h != INVALID_HANDLE_VALUE) { + FILETIME filetime; + if (GetFileTime(h, 0, 0, &filetime)) { + SYSTEMTIME systemtime; + FileTimeToSystemTime (&filetime, &systemtime); + set_startup_time (&systemtime); + } + CloseHandle (h); + } + else { + unsigned t; + if (sscanf(optarg, "%u", &t) == 1) { + FILETIME filetime; + SYSTEMTIME systemtime; + TimetToFileTime ((time_t)(t), &filetime); + FileTimeToSystemTime (&filetime, &systemtime); + set_startup_time (&systemtime); + } +#else /* not WIN32 */ +#endif /* not WIN32 */ + } +#endif /* JOBTIME */ + +#ifdef OUTPUT_DIR + } else if (ARGUMENT_IS ("output-directory")) { + output_directory = optarg; +#endif + } else if (ARGUMENT_IS (DUMP_OPTION)) { dump_name = optarg; if (!user_progname) user_progname = optarg; @@ -922,7 +1098,9 @@ /* If the file can't be found, don't look too hard now. We'll detect that it's missing in the normal course of things and give the error then. */ +#ifndef WIN32 string in_name = kpse_find_file (argv[optind], INPUT_FORMAT, false); +#endif FILE *f = in_name ? fopen (in_name, FOPEN_R_MODE) : NULL; if (f) { string first_line = read_line (f); @@ -1122,13 +1300,25 @@ get_date_and_time P4C(integer *, minutes, integer *, day, integer *, month, integer *, year) { - time_t clock = time ((time_t *) 0); - struct tm *tmptr = localtime (&clock); +#ifdef JOBTIME + if (jobtimep) { + *minutes = startup_time.wMinute; + *day = startup_time.wDay; + *month = startup_time.wMonth; + *year = startup_time.wYear; + } + else { +#endif + time_t clock = time ((time_t *) 0); + struct tm *tmptr = localtime (&clock); - *minutes = tmptr->tm_hour * 60 + tmptr->tm_min; - *day = tmptr->tm_mday; - *month = tmptr->tm_mon + 1; - *year = tmptr->tm_year + 1900; + *minutes = tmptr->tm_hour * 60 + tmptr->tm_min; + *day = tmptr->tm_mday; + *month = tmptr->tm_mon + 1; + *year = tmptr->tm_year + 1900; +#ifdef JOBTIME + } +#endif { #ifdef SA_INTERRUPT @@ -1182,6 +1372,66 @@ #endif } +void +texmfstartjob() +{ +#ifdef TIME_STATS + if (! timestatp) + return; + + clock_start = clock(); +#endif +} + +void +texmffinishjob() +{ +#ifdef TIME_STATS + clock_t clock_since_start; + + if (! timestatp) + return; + + clock_since_start = (clock() - clock_start) * 1000 / CLOCKS_PER_SEC; + + fprintf (stderr, "gross execution time: %u ms\n", clock_since_start); + +#ifdef WIN32 + + if (GetVersion() < 0x80000000) { + HINSTANCE hinstKernel; + FARPROC pfGetProcessTimes; + FILETIME ftCreate, ftExit, ftKernel, ftUser; + LARGE_INTEGER tUser64; + LARGE_INTEGER tKernel64; + DWORD tUser, tKernel; + hinstKernel = LoadLibrary("kernel32.dll"); + if (hinstKernel == 0) { + return; + } + pfGetProcessTimes = GetProcAddress(hinstKernel, "GetProcessTimes"); + if (pfGetProcessTimes == 0) { + return; + } + if (! GetProcessTimes(GetCurrentProcess(), &ftCreate, &ftExit, + &ftKernel, &ftUser)) { + return; + } + tUser64.LowPart = ftUser.dwLowDateTime; + tUser64.HighPart = ftUser.dwHighDateTime; + tKernel64.LowPart = ftKernel.dwLowDateTime; + tKernel64.HighPart = ftKernel.dwHighDateTime; + tUser = (DWORD)(tUser64.QuadPart / 10000); + tKernel = (DWORD)(tKernel64.QuadPart / 10000); + fprintf (stderr, "user mode: %u ms, kernel mode: %u ms, total: %u", + tUser, tKernel, tUser + tKernel); + } +#else /* not WIN32 */ +#endif /* WIN32 */ + +#endif /* TIME_STATS */ +} + /* Read a line of input as efficiently as possible while still looking like Pascal. We set `last' to `first' and return `false' if we get to eof. Otherwise, we return `true' and set last = first + @@ -1511,8 +1761,15 @@ getjobname() { strnumber ret = curname; - if (job_name != NULL) + if (job_name != NULL) { +#ifdef WIN32 + char *quoted_name = quote_filename(job_name); + ret = maketexstring(quoted_name); + free(quoted_name); +#else ret = maketexstring(job_name); +#endif + } return ret; } #endif @@ -1534,7 +1791,9 @@ ret = (ret < 0 ? -1 : (ret > 0 ? 1 : 0)); return ret; } +#endif +#if defined (TeX) || defined (MF) || defined (MP) string gettexstring P1C(strnumber, s) { @@ -1555,7 +1814,9 @@ name[len] = 0; return name; } +#endif +#if defined(TeX) boolean isnewsource P2C(strnumber, srcfilename, int, lineno) { @@ -1625,21 +1886,26 @@ } else { /* We will invoke something. Compile-time default if nothing else. */ string cmd; + string qmpname = quote_filename(mpname); + string qmpxname = quote_filename(mpxname); + if (!cnf_cmd) cnf_cmd = xstrdup (MPXCOMMAND); if (troffmode) cmd = concatn (cnf_cmd, " -troff ", - mpname, " ", mpxname, NULL); + qmpname, " ", qmpxname, NULL); else if (mpost_tex_program && *mpost_tex_program) cmd = concatn (cnf_cmd, " -tex=", mpost_tex_program, " ", - mpname, " ", mpxname, NULL); + qmpname, " ", qmpxname, NULL); else - cmd = concatn (cnf_cmd, " -tex ", mpname, " ", mpxname, NULL); + cmd = concatn (cnf_cmd, " -tex ", qmpname, " ", qmpxname, NULL); /* Run it. */ ret = system (cmd); free (cmd); + free(qmpname); + free(qmpxname); } free (cnf_cmd); diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/web2c/omegadir/comsrcspec.ch ./texk/web2c/omegadir/comsrcspec.ch --- c:\source\TeXLive\Build\source\TeX/texk/web2c/omegadir/comsrcspec.ch Fri Oct 11 20:02:08 2002 +++ ./texk/web2c/omegadir/comsrcspec.ch Sat Apr 26 01:31:03 2003 @@ -8,6 +8,7 @@ @!parse_first_line_p:boolean; {parse the first line for options} @!file_line_error_style_p:boolean; {output error messages with a C style. } +@!halt_on_error_p:boolean; {allow only on error.} @!src_specials_p : boolean; @!insert_src_special_auto : boolean; @@ -60,6 +61,18 @@ else begin print_nl("! "); print(#) end; @z +@x +print_char("."); show_context; +@y +if not file_line_error_style_p then begin + print_char("."); show_context +end; + +if (halt_on_error_p) then begin + history:=fatal_error_stop; jump_out; +end; + +@z @x @!in_open : 0..max_in_open; {the number of lines in the buffer, less one} @!open_parens : 0..max_in_open; {the number of open text files} diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/web2c/stamp-tangle ./texk/web2c/stamp-tangle --- c:\source\TeXLive\Build\source\TeX/texk/web2c/stamp-tangle Wed Apr 09 17:12:14 2003 +++ ./texk/web2c/stamp-tangle Thu Aug 14 19:12:02 2003 @@ -1,2 +1,2 @@ -21/02/2003 -17:03 +14/08/2003 +19:12 Binary files c:\source\TeXLive\Build\source\TeX/texk/web2c/tests/cmti10.tfm and ./texk/web2c/tests/cmti10.tfm differ Binary files c:\source\TeXLive\Build\source\TeX/texk/web2c/tests/cmtt10.tfm and ./texk/web2c/tests/cmtt10.tfm differ Binary files c:\source\TeXLive\Build\source\TeX/texk/web2c/tests/cmtt8.tfm and ./texk/web2c/tests/cmtt8.tfm differ Binary files c:\source\TeXLive\Build\source\TeX/texk/web2c/tests/logo8.tfm and ./texk/web2c/tests/logo8.tfm differ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/web2c/texmfmp-help.h ./texk/web2c/texmfmp-help.h --- c:\source\TeXLive\Build\source\TeX/texk/web2c/texmfmp-help.h Thu Aug 21 00:09:09 2003 +++ ./texk/web2c/texmfmp-help.h Thu Aug 21 00:09:07 2003 @@ -41,6 +41,9 @@ "", "-efmt=FMTNAME use FMTNAME instead of program name or a %& line", "-file-line-error-style print file:line:error style messages", +#ifdef HALT_ON_ERROR + "-halt-on-error stop at the first error", +#endif "-ini be einitex, for dumping formats; this is implicitly", " true if the program name is `einitex'", "-interaction=STRING set interaction mode (STRING=batchmode/nonstopmode/", @@ -51,11 +54,20 @@ "-ipc-start as -ipc, and also start the server at the other end", #endif /* IPC */ "-jobname=STRING set the job name to STRING", +#ifdef JOBTIME + "-jobtime=FILENAME set the job time by taking FILENAME's timestamp as the reference", +#endif "-kpathsea-debug=NUMBER set path searching debugging flags according to", " the bits of NUMBER", "[-no]-mktex=FMT disable/enable mktexFMT generation (FMT=tex/tfm)", "-mltex enable MLTeX extensions such as \\charsubdef", +#ifdef OEM + "-oem use DOS codepage for console output.\n", +#endif "-output-comment=STRING use STRING for DVI file comment instead of date", +#ifdef OUTPUT_DIR + "-output-directory=DIR use DIR as the directory to write files to", +#endif "-parse-first-line parse of the first line of the input file", "-progname=STRING set program (and fmt) name to STRING", "-recorder enable filename recorder", @@ -64,6 +76,9 @@ "-src-specials=WHERE insert source specials in certain places of", " the DVI file. WHERE is a comma-separated value", " list: cr display hbox math par parend vbox", +#ifdef TIME_STATS + "-time-statistics print processing time statistics about the current job", +#endif "-translate-file=TCXNAME use the TCX file TCXNAME", "-help display this help and exit", "-version output version information and exit", @@ -95,17 +110,32 @@ "", "-base=BASENAME use BASENAME instead of program name or a %& line", "-file-line-error-style print file:line:error style messages", +#ifdef HALT_ON_ERROR + "-halt-on-error stop at the first error", +#endif "-ini be inimf, for dumping bases; this is implicitly", " true if the program name is `inimf'", "-interaction=STRING set interaction mode (STRING=batchmode/nonstopmode/", " scrollmode/errorstopmode)", "-jobname=STRING set the job name to STRING", +#ifdef JOBTIME + "-jobtime=FILENAME set the job time by taking FILENAME's timestamp as the reference", +#endif "-kpathsea-debug=NUMBER set path searching debugging flags according to", " the bits of NUMBER", "[-no]-mktex=FMT disable/enable mktexFMT generation (FMT=mf)", +#ifdef OEM + "-oem use DOS codepage for console output.\n", +#endif +#ifdef OUTPUT_DIR + "-output-directory=DIR use DIR as the directory to write files to", +#endif "-parse-first-line parse of the first line of the input file", "-progname=STRING set program (and base) name to STRING", "-recorder enable filename recorder", +#ifdef TIME_STATS + "-time-statistics print processing time statistics about the current job", +#endif "-translate-file=TCXNAME use the TCX file TCXNAME", "-help display this help and exit", "-version output version information and exit", @@ -136,18 +166,33 @@ " If no arguments or options are specified, prompt for input.", "", "-file-line-error-style print file:line:error style messages", +#ifdef HALT_ON_ERROR + "-halt-on-error stop at the first error", +#endif "-ini be inimpost, for dumping mems; this is implicitly", " true if the program name is `inimpost'", "-interaction=STRING set interaction mode (STRING=batchmode/nonstopmode/", " scrollmode/errorstopmode)", "-jobname=STRING set the job name to STRING", +#ifdef JOBTIME + "-jobtime=FILENAME set the job time by taking FILENAME's timestamp as the reference", +#endif "-kpathsea-debug=NUMBER set path searching debugging flags according to", " the bits of NUMBER", "-mem=MEMNAME use MEMNAME instead of program name or a %& line", +#ifdef OEM + "-oem use DOS codepage for console output.\n", +#endif +#ifdef OUTPUT_DIR + "-output-directory=DIR use DIR as the directory to write files to", +#endif "-parse-first-line parse of the first line of the input file", "-progname=STRING set program (and mem) name to STRING", "-recorder enable filename recorder", "-tex=TEXPROGRAM use TEXPROGRAM for text labels.", +#ifdef TIME_STATS + "-time-statistics print processing time statistics about the current job", +#endif "-translate-file=TCXNAME use the TCX file TCXNAME", "-T, -troff set the prologues variable, use `makempx -troff'", "-help display this help and exit", @@ -177,6 +222,9 @@ " If no arguments or options are specified, prompt for input.", "", "-file-line-error-style print file:line:error style messages", +#ifdef HALT_ON_ERROR + "-halt-on-error stop at the first error", +#endif "-ini be iniomega, for dumping formats; this is implicitly", " true if the program name is `iniomega'", "-interaction=STRING set interaction mode (STRING=batchmode/nonstopmode/", @@ -187,11 +235,20 @@ "-ipc-start as -ipc, and also start the server at the other end", #endif /* IPC */ "-jobname=STRING set the job name to STRING", +#ifdef JOBTIME + "-jobtime=FILENAME set the job time by taking FILENAME's timestamp as the reference", +#endif "-kpathsea-debug=NUMBER set path searching debugging flags according to", " the bits of NUMBER", "[-no]-mktex=FMT disable/enable mktexFMT generation (FMT=tex/tfm)", +#ifdef OEM + "-oem use DOS codepage for console output.\n", +#endif "-oft=FMTNAME use FMTNAME instead of program name or a %& line", "-output-comment=STRING use STRING for DVI file comment instead of date", +#ifdef OUTPUT_DIR + "-output-directory=DIR use DIR as the directory to write files to", +#endif "-parse-first-line parse of the first line of the input file", "-progname=STRING set program (and fmt) name to STRING", "-recorder enable filename recorder (always on)", @@ -200,6 +257,9 @@ "-src-specials=WHERE insert source specials in certain places of", " the DVI file. WHERE is a comma-separated value", " list: cr display hbox math par parend vbox", +#ifdef TIME_STATS + "-time-statistics print processing time statistics about the current job", +#endif "-help display this help and exit", "-version output version information and exit", NULL @@ -227,6 +287,9 @@ " If no arguments or options are specified, prompt for input.", "", "-file-line-error-style print file:line:error style messages", +#ifdef HALT_ON_ERROR + "-halt-on-error stop at the first error", +#endif "-ini be inieomega, for dumping formats; this is implicitly", " true if the program name is `inieomega'", "-interaction=STRING set interaction mode (STRING=batchmode/nonstopmode/", @@ -237,11 +300,20 @@ "-ipc-start as -ipc, and also start the server at the other end", #endif /* IPC */ "-jobname=STRING set the job name to STRING", +#ifdef JOBTIME + "-jobtime=FILENAME set the job time by taking FILENAME's timestamp as the reference", +#endif "-kpathsea-debug=NUMBER set path searching debugging flags according to", " the bits of NUMBER", "[-no]-mktex=FMT disable/enable mktexFMT generation (FMT=tex/tfm)", +#ifdef OEM + "-oem use DOS codepage for console output.\n", +#endif "-eoft=FMTNAME use FMTNAME instead of program name or a %& line", "-output-comment=STRING use STRING for DVI file comment instead of date", +#ifdef OUTPUT_DIR + "-output-directory=DIR use DIR as the directory to write files to", +#endif "-parse-first-line parse of the first line of the input file", "-progname=STRING set program (and fmt) name to STRING", "-recorder enable filename recorder (always on)", @@ -250,6 +322,9 @@ "-src-specials=WHERE insert source specials in certain places of", " the DVI file. WHERE is a comma-separated value", " list: cr display hbox math par parend vbox", +#ifdef TIME_STATS + "-time-statistics print processing time statistics about the current job", +#endif "-help display this help and exit", "-version output version information and exit", NULL @@ -278,6 +353,9 @@ "", "-file-line-error-style print file:line:error style messages", "-fmt=FMTNAME use FMTNAME instead of program name or a %& line", +#ifdef HALT_ON_ERROR + "-halt-on-error stop at the first error", +#endif "-ini be pdfinitex, for dumping formats; this is implicitly", " true if the program name is `pdfinitex'", "-interaction=STRING set interaction mode (STRING=batchmode/nonstopmode/", @@ -288,11 +366,20 @@ "-ipc-start as -ipc, and also start the server at the other end", #endif /* IPC */ "-jobname=STRING set the job name to STRING", +#ifdef JOBTIME + "-jobtime=FILENAME set the job time by taking FILENAME's timestamp as the reference", +#endif "-kpathsea-debug=NUMBER set path searching debugging flags according to", " the bits of NUMBER", "[-no]-mktex=FMT disable/enable mktexFMT generation (FMT=tex/tfm)", "-mltex enable MLTeX extensions such as \\charsubdef", +#ifdef OEM + "-oem use DOS codepage for console output.\n", +#endif "-output-comment=STRING use STRING for PDF file comment instead of date", +#ifdef OUTPUT_DIR + "-output-directory=DIR use DIR as the directory to write files to", +#endif "-parse-first-line parse of the first line of the input file", "-progname=STRING set program (and fmt) name to STRING", "-recorder enable filename recorder", @@ -301,6 +388,9 @@ "-src-specials=WHERE insert source specials in certain places of", " the DVI file. WHERE is a comma-separated value", " list: cr display hbox math par parend vbox", +#ifdef TIME_STATS + "-time-statistics print processing time statistics about the current job", +#endif "-translate-file=TCXNAME use the TCX file TCXNAME", "-help display this help and exit", "-version output version information and exit", @@ -330,6 +420,9 @@ "", "-efmt=FMTNAME use FMTNAME instead of program name or a %& line", "-file-line-error-style print file:line:error style messages", +#ifdef HALT_ON_ERROR + "-halt-on-error stop at the first error", +#endif "-ini be pdfeinitex, for dumping formats; this is implicitly", " true if the program name is `pdfeinitex'", "-interaction=STRING set interaction mode (STRING=batchmode/nonstopmode/", @@ -340,11 +433,20 @@ "-ipc-start as -ipc, and also start the server at the other end", #endif /* IPC */ "-jobname=STRING set the job name to STRING", +#ifdef JOBTIME + "-jobtime=FILENAME set the job time by taking FILENAME's timestamp as the reference", +#endif "-kpathsea-debug=NUMBER set path searching debugging flags according to", " the bits of NUMBER", "[-no]-mktex=FMT disable/enable mktexFMT generation (FMT=tex/tfm)", "-mltex enable MLTeX extensions such as \\charsubdef", +#ifdef OEM + "-oem use DOS codepage for console output.\n", +#endif "-output-comment=STRING use STRING for PDF file comment instead of date", +#ifdef OUTPUT_DIR + "-output-directory=DIR use DIR as the directory to write files to", +#endif "-parse-first-line parse of the first line of the input file", "-progname=STRING set program (and fmt) name to STRING", "-recorder enable filename recorder", @@ -353,6 +455,9 @@ "-src-specials=WHERE insert source specials in certain places of", " the DVI file. WHERE is a comma-separated value", " list: cr display hbox math par parend vbox", +#ifdef TIME_STATS + "-time-statistics print processing time statistics about the current job", +#endif "-translate-file=TCXNAME use the TCX file TCXNAME", "-help display this help and exit", "-version output version information and exit", @@ -382,6 +487,9 @@ "", "-file-line-error-style print file:line:error style messages", "-fmt=FMTNAME use FMTNAME instead of program name or a %& line", +#ifdef HALT_ON_ERROR + "-halt-on-error stop at the first error", +#endif "-ini be initex, for dumping formats; this is implicitly", " true if the program name is `initex'", "-interaction=STRING set interaction mode (STRING=batchmode/nonstopmode/", @@ -392,11 +500,20 @@ "-ipc-start as -ipc, and also start the server at the other end", #endif /* IPC */ "-jobname=STRING set the job name to STRING", +#ifdef JOBTIME + "-jobtime=FILENAME set the job time by taking FILENAME's timestamp as the reference", +#endif "-kpathsea-debug=NUMBER set path searching debugging flags according to", " the bits of NUMBER", "[-no]-mktex=FMT disable/enable mktexFMT generation (FMT=tex/tfm)", "-mltex enable MLTeX extensions such as \\charsubdef", +#ifdef OEM + "-oem use DOS codepage for console output.\n", +#endif "-output-comment=STRING use STRING for DVI file comment instead of date", +#ifdef OUTPUT_DIR + "-output-directory=DIR use DIR as the directory to write files to", +#endif "-parse-first-line parse of the first line of the input file", "-progname=STRING set program (and fmt) name to STRING", "-recorder enable filename recorder", @@ -405,6 +522,9 @@ "-src-specials=WHERE insert source specials in certain places of", " the DVI file. WHERE is a comma-separated value", " list: cr display hbox math par parend vbox", +#ifdef TIME_STATS + "-time-statistics print processing time statistics about the current job", +#endif "-translate-file=TCXNAME use the TCX file TCXNAME", "-help display this help and exit", "-version output version information and exit", diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/texk/web2c/web2c/texmf.defines ./texk/web2c/web2c/texmf.defines --- c:\source\TeXLive\Build\source\TeX/texk/web2c/web2c/texmf.defines Sun Oct 20 17:23:29 2002 +++ ./texk/web2c/web2c/texmf.defines Tue Feb 04 16:05:07 2003 @@ -57,6 +57,9 @@ @define procedure setupboundvariable (); @define procedure setupcharset; @define procedure system (); +@define procedure texmfstartjob; +@define procedure texmffinishjob; +@define procedure texmfprintfilename(); @define procedure topenin; @define procedure undumphh (); @define procedure undumpint (); diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/bzip2/bzlib.h ./utils/bzip2/bzlib.h --- c:\source\TeXLive\Build\source\TeX/utils/bzip2/bzlib.h Tue Jan 21 07:58:54 2003 +++ ./utils/bzip2/bzlib.h Sun Jul 06 02:56:41 2003 @@ -120,11 +120,11 @@ # undef small # endif # ifdef BZ_EXPORT -# define BZ_API(func) WINAPI func +# define BZ_API(func) __fastcall func # define BZ_EXTERN extern __declspec(dllexport) # else /* import windows dll dynamically */ -# define BZ_API(func) (WINAPI * func) +# define BZ_API(func) (__fastcall * func) # define BZ_EXTERN __declspec(dllimport) # endif #else diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/lib/gettext.h ./utils/texinfo/lib/gettext.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/lib/gettext.h Fri Sep 20 21:22:12 2002 +++ ./utils/texinfo/lib/gettext.h Sun Dec 22 01:54:28 2002 @@ -57,6 +57,14 @@ #endif +#ifdef WIN32 + +# ifndef LOCALEDIR +# define LOCALEDIR "c:\\windows\\locale" +# endif + +#endif + /* A pseudo function call that serves as a marker for the automated extraction of messages, but does not call gettext(). The run-time translation is done at a different place in the code. diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/lib/system.h ./utils/texinfo/lib/system.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/lib/system.h Thu Oct 31 12:44:07 2002 +++ ./utils/texinfo/lib/system.h Thu Nov 14 20:11:04 2002 @@ -25,6 +25,9 @@ #include +#ifdef FPTEX +#include +#else #ifdef MIKTEX #include #define S_ISDIR(x) ((x)&_S_IFDIR) @@ -34,6 +37,7 @@ this Microsoft-ism here. */ extern char *substring (); #endif +#endif /* should be included before any preprocessor test of _POSIX_VERSION. */ @@ -54,9 +58,13 @@ #endif /* For gettext (NLS). */ +#ifndef WIN32 #define const +#endif #include "gettext.h" +#ifndef WIN32 #undef const +#endif #define _(String) gettext (String) #define N_(String) (String) @@ -247,13 +255,29 @@ #ifdef HAVE_PWD_H #include #endif + +#ifdef __STDC__ +#define PROTO(x) x +#else +#define PROTO(x) () +#endif + +#ifndef WIN32 /* Some systems don't declare this function in pwd.h. */ struct passwd *getpwnam (); +#define CDECL /* Our library routines not included in any system library. */ extern void *xmalloc (), *xrealloc (); extern char *xstrdup (); extern void xexit (); +extern char *substring (); + +#else /* WIN32 */ + +extern void xexit(int); + +#endif /* ! WIN32 */ /* For convenience. */ #define STREQ(s1,s2) (strcmp (s1, s2) == 0) diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/cmds.c ./utils/texinfo/makeinfo/cmds.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/cmds.c Sun Jan 12 14:18:25 2003 +++ ./utils/texinfo/makeinfo/cmds.c Sat Apr 26 01:32:03 2003 @@ -23,7 +23,7 @@ #include "defun.h" #include "files.h" #include "footnote.h" -#include "html.h" +#include "index.h" #include "insertion.h" #include "lang.h" #include "macro.h" @@ -31,6 +31,8 @@ #include "node.h" #include "sectioning.h" #include "toc.h" +#include "multi.h" +#include "html.h" #include "xml.h" #ifdef TM_IN_SYS_TIME @@ -40,44 +42,11 @@ #endif -void insert_self (), insert_space (), cm_ignore_line (), cm_ignore_arg (); - -void - cm_TeX (), cm_acronym (), cm_asterisk (), cm_b (), cm_bullet (), cm_cite (), - cm_code (), cm_copyright (), cm_ctrl (), cm_dfn (), cm_dircategory (), - cm_direntry (), cm_dmn (), cm_dots (), cm_emph (), cm_enddots (), cm_i (), - cm_image (), cm_kbd (), cm_key (), cm_no_op (), - cm_novalidate (), cm_not_fixed_width (), cm_r (), - cm_strong (), cm_var (), cm_sc (), cm_w (), cm_email (), cm_url (), - cm_verb (), cm_copying (), cm_insert_copying (), - cm_documentdescription (); - -void - cm_anchor (), cm_node (), cm_menu (), cm_xref (), cm_ftable (), - cm_vtable (), cm_pxref (), cm_inforef (), cm_uref (), cm_email (), - cm_quotation (), cm_display (), cm_smalldisplay (), cm_itemize (), - cm_enumerate (), cm_tab (), cm_table (), cm_itemx (), cm_noindent (), - cm_setfilename (), cm_br (), cm_sp (), cm_page (), cm_group (), - cm_center (), cm_ref (), cm_include (), cm_bye (), cm_item (), cm_end (), - cm_kindex (), cm_cindex (), cm_findex (), cm_pindex (), cm_vindex (), - cm_tindex (), cm_synindex (), cm_printindex (), cm_minus (), - cm_example (), cm_smallexample (), cm_smalllisp (), cm_lisp (), - cm_format (), cm_smallformat (), cm_exdent (), cm_defindex (), - cm_defcodeindex (), cm_result (), cm_expansion (), cm_equiv (), - cm_print (), cm_error (), cm_point (), cm_today (), cm_flushleft (), - cm_flushright (), cm_finalout (), cm_cartouche (), cm_detailmenu (), - cm_multitable (), cm_settitle (), cm_titlefont (), cm_titlepage (), cm_tie (), cm_tt (), - cm_verbatim (), cm_verbatiminclude (); - -/* Conditionals. */ -void cm_set (), cm_clear (), cm_ifset (), cm_ifclear (); -void cm_value (), cm_ifeq (); - /* Options. */ -static void cm_paragraphindent (), cm_exampleindent (); +static void CDECL cm_paragraphindent (), CDECL cm_exampleindent (); /* Internals. */ -static void cm_obsolete (); +static void CDECL cm_obsolete (); /* A random string. */ static const char small_tag[] = "small"; @@ -378,7 +347,7 @@ /* The bulk of the Texinfo commands. */ /* Commands which insert their own names. */ -void +void CDECL insert_self (arg) int arg; { @@ -386,7 +355,7 @@ add_word (command); } -void +void CDECL insert_space (arg) int arg; { @@ -400,7 +369,7 @@ } /* Force a line break in the output. */ -void +void CDECL cm_asterisk () { if (html) @@ -417,7 +386,7 @@ } /* Insert ellipsis. */ -void +void CDECL cm_dots (arg) int arg; { @@ -434,7 +403,7 @@ } /* Insert ellipsis for sentence end. */ -void +void CDECL cm_enddots (arg) int arg; { @@ -453,7 +422,7 @@ } } -void +void CDECL cm_bullet (arg) int arg; { @@ -470,7 +439,7 @@ } } -void +void CDECL cm_minus (arg) int arg; { @@ -484,7 +453,7 @@ } /* Insert "TeX". */ -void +void CDECL cm_TeX (arg) int arg; { @@ -498,7 +467,7 @@ } /* Copyright symbol. */ -void +void CDECL cm_copyright (arg) int arg; { @@ -515,7 +484,7 @@ } } -void +void CDECL cm_today (arg) int arg; { @@ -532,7 +501,7 @@ } } -void +void CDECL cm_acronym (arg) int arg; { @@ -542,7 +511,7 @@ xml_insert_element (ACRONYM, arg); } -void +void CDECL cm_tt (arg) int arg; { @@ -553,7 +522,7 @@ xml_insert_element (TT, arg); } -void +void CDECL cm_code (arg) int arg; { @@ -582,7 +551,7 @@ } } -void +void CDECL cm_kbd (arg) int arg; { @@ -604,7 +573,7 @@ } } -void +void CDECL cm_url (arg, start, end) { if (xml) @@ -624,7 +593,7 @@ add_word (">"); } -void +void CDECL cm_key (arg) int arg; { @@ -637,7 +606,7 @@ } /* Handle a command that switches to a non-fixed-width font. */ -void +void CDECL not_fixed_width (arg) int arg; { @@ -646,7 +615,7 @@ } /* @var in makeinfo just uppercases the text. */ -void +void CDECL cm_var (arg, start_pos, end_pos) int arg, start_pos, end_pos; { @@ -672,7 +641,7 @@ } } -void +void CDECL cm_sc (arg, start_pos, end_pos) int arg, start_pos, end_pos; { @@ -715,7 +684,7 @@ } } -void +void CDECL cm_dfn (arg, position) int arg, position; { @@ -732,7 +701,7 @@ } } -void +void CDECL cm_emph (arg) int arg; { @@ -744,7 +713,7 @@ add_char ('_'); } -void +void CDECL cm_verb (arg) int arg; { @@ -823,7 +792,7 @@ } -void +void CDECL cm_strong (arg, position) int arg, position; { @@ -835,7 +804,7 @@ add_char ('*'); } -void +void CDECL cm_cite (arg, position) int arg, position; { @@ -853,7 +822,7 @@ } /* No highlighting, but argument switches fonts. */ -void +void CDECL cm_not_fixed_width (arg, start, end) int arg, start, end; { @@ -862,7 +831,7 @@ not_fixed_width (arg); } -void +void CDECL cm_i (arg) int arg; { @@ -874,7 +843,7 @@ not_fixed_width (arg); } -void +void CDECL cm_b (arg) int arg; { @@ -886,7 +855,7 @@ not_fixed_width (arg); } -void +void CDECL cm_r (arg) int arg; { @@ -901,7 +870,7 @@ } } -void +void CDECL cm_titlefont (arg) int arg; { @@ -923,7 +892,7 @@ int titlepage_cmd_present = 0; -void +void CDECL cm_titlepage (arg) int arg; { @@ -932,14 +901,14 @@ } /* Various commands are no-op's. */ -void +void CDECL cm_no_op () { } /* For proofing single chapters, etc. */ -void +void CDECL cm_novalidate () { validating = 0; @@ -947,9 +916,9 @@ /* Prevent the argument from being split across two lines. */ -void -cm_w (arg, start, end) - int arg, start, end; +void CDECL +cm_w (arg) + int arg; { if (arg == START) non_splitting_words++; @@ -961,7 +930,7 @@ /* An unbreakable word space. Same as @w{ } for makeinfo, but different for TeX (the space stretches and stretches, and does not inhibit hyphenation). */ -void +void CDECL cm_tie (arg) int arg; { @@ -976,7 +945,7 @@ /* Explain that this command is obsolete, thus the user shouldn't do anything with it. */ -static void +static void CDECL cm_obsolete (arg, start, end) int arg, start, end; { @@ -987,7 +956,7 @@ /* This says to inhibit the indentation of the next paragraph, but not of following paragraphs. */ -void +void CDECL cm_noindent () { if (!inhibit_paragraph_indentation) @@ -1000,7 +969,7 @@ Another option: ignore it, since they don't *really* want to switch files. Finally, complain, or at least warn. It doesn't really matter, anyway, since this doesn't get executed. */ -void +void CDECL cm_setfilename () { char *filename; @@ -1011,7 +980,7 @@ free (filename); } -void +void CDECL cm_settitle () { if (xml) @@ -1035,7 +1004,7 @@ /* Ignore argument in braces. */ -void +void CDECL cm_ignore_arg (arg, start_pos, end_pos) int arg, start_pos, end_pos; { @@ -1044,14 +1013,14 @@ } /* Ignore argument on rest of line. */ -void +void CDECL cm_ignore_line () { discard_until ("\n"); } /* Insert the number of blank lines passed as argument. */ -void +void CDECL cm_sp () { int lines; @@ -1098,7 +1067,7 @@ } /* @dircategory LINE outputs INFO-DIR-SECTION LINE, unless --no-headers. */ -void +void CDECL cm_dircategory () { char *line; @@ -1132,7 +1101,7 @@ /* Start a new line with just this text on it. Then center the line of text. */ -void +void CDECL cm_center () { if (xml) @@ -1201,7 +1170,7 @@ } /* Show what an expression returns. */ -void +void CDECL cm_result (arg) int arg; { @@ -1210,7 +1179,7 @@ } /* What an expression expands to. */ -void +void CDECL cm_expansion (arg) int arg; { @@ -1219,7 +1188,7 @@ } /* Indicates two expressions are equivalent. */ -void +void CDECL cm_equiv (arg) int arg; { @@ -1228,7 +1197,7 @@ } /* What an expression may print. */ -void +void CDECL cm_print (arg) int arg; { @@ -1237,7 +1206,7 @@ } /* An error signaled. */ -void +void CDECL cm_error (arg) int arg; { @@ -1246,7 +1215,7 @@ } /* The location of point in an example of a buffer. */ -void +void CDECL cm_point (arg) int arg; { @@ -1256,7 +1225,7 @@ /* @exdent: Start a new line with just this text on it. The text is outdented one level if possible. */ -void +void CDECL cm_exdent () { char *line; @@ -1337,6 +1306,10 @@ if (!find_and_load (filename)) { +#ifndef WIN32 + extern int errno; +#endif + popfile (); line_number--; @@ -1363,7 +1336,7 @@ /* Include file as if put in @verbatim environment */ -void +void CDECL cm_verbatiminclude () { handle_include (1); @@ -1371,7 +1344,7 @@ /* Remember this file, and move onto the next. */ -void +void CDECL cm_include () { handle_include (0); @@ -1380,7 +1353,7 @@ /* @bye: Signals end of processing. Easy to make this happen. */ -void +void CDECL cm_bye () { discard_braces (); /* should not have any unclosed braces left */ @@ -1390,7 +1363,7 @@ /* @paragraphindent */ -static void +static void CDECL cm_paragraphindent () { char *arg; @@ -1416,7 +1389,7 @@ return 0; } -static void +static void CDECL cm_exampleindent () { char *arg; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/cmds.h ./utils/texinfo/makeinfo/cmds.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/cmds.h Mon Nov 04 21:15:20 2002 +++ ./utils/texinfo/makeinfo/cmds.h Thu Nov 14 20:23:08 2002 @@ -20,10 +20,12 @@ #ifndef CMDS_H #define CMDS_H +extern int titlepage_cmd_present; + /* The three arguments a command can get are a flag saying whether it is before argument parsing (START) or after (END), the starting position of the arguments, and the ending position. */ -typedef void COMMAND_FUNCTION (); /* So we can say COMMAND_FUNCTION *foo; */ +typedef void CDECL COMMAND_FUNCTION (); /* So we can say COMMAND_FUNCTION *foo; */ /* Each command has an associated function. When the command is encountered in the text, the associated function is called with START @@ -47,7 +49,61 @@ extern COMMAND command_table[]; -/* Nonzero if we have seen an @titlepage command. */ -extern int titlepage_cmd_present; +extern void CDECL insert_self PROTO((int arg)); +extern void CDECL insert_space PROTO((int arg)); +extern void CDECL cm_asterisk PROTO(()); +extern void CDECL cm_dots PROTO((int arg)); +extern void CDECL cm_enddots PROTO((int arg)); +extern void CDECL cm_bullet PROTO((int arg)); +extern void CDECL cm_minus PROTO((int arg)); +extern void CDECL cm_TeX PROTO((int arg)); +extern void CDECL cm_copyright PROTO((int arg)); +extern void CDECL cm_today PROTO((int arg)); +extern void CDECL cm_acronym PROTO((int arg)); +extern void CDECL cm_tt PROTO((int arg)); +extern void CDECL cm_code PROTO((int arg)); +extern void CDECL cm_kbd PROTO((int arg)); +extern void CDECL cm_url PROTO((int arg, int start, int end)); +extern void CDECL cm_key PROTO((int arg)); +extern void CDECL not_fixed_width PROTO((int arg)); +extern void CDECL cm_var PROTO((int arg, int start_pos, int end_pos)); +extern void CDECL cm_sc PROTO((int arg, int start_pos, int end_pos)); +extern void CDECL cm_dfn PROTO((int arg, int position)); +extern void CDECL cm_emph PROTO((int arg)); +extern void CDECL cm_strong PROTO((int arg, int position)); +extern void CDECL cm_cite PROTO((int arg, int position)); +extern void CDECL cm_not_fixed_width PROTO((int arg, int start, int end)); +extern void CDECL cm_i PROTO((int arg)); +extern void CDECL cm_b PROTO((int arg)); +extern void CDECL cm_r PROTO((int arg)); +extern void CDECL cm_titlefont PROTO((int arg)); +extern void CDECL cm_titlepage PROTO((int arg)); +extern void CDECL cm_no_op PROTO(()); +extern void CDECL cm_novalidate PROTO(()); +extern void CDECL cm_w PROTO((int arg)); +extern void CDECL cm_tie PROTO((int arg)); + +extern void CDECL cm_noindent PROTO(()); +extern void CDECL cm_setfilename PROTO(()); +extern void CDECL cm_settitle PROTO(()); +extern void CDECL cm_ignore_arg PROTO((int arg, int start_pos, int end_pos)); +extern void CDECL cm_ignore_line PROTO(()); +extern void CDECL cm_sp PROTO(()); +extern void CDECL cm_dircategory PROTO(()); +extern void CDECL cm_center PROTO(()); +extern void CDECL cm_result PROTO((int arg)); +extern void CDECL cm_expansion PROTO((int arg)); +extern void CDECL cm_equiv PROTO((int arg)); +extern void CDECL cm_print PROTO((int arg)); +extern void CDECL cm_error PROTO((int arg)); +extern void CDECL cm_point PROTO((int arg)); +extern void CDECL cm_exdent PROTO(()); +extern void CDECL cm_include PROTO(()); +extern void CDECL cm_include PROTO(()); +extern void CDECL cm_verbatiminclude PROTO(()); +extern void CDECL cm_bye PROTO(()); +extern enum insertion_type get_base_type PROTO((enum insertion_type type)); +extern void CDECL cm_defun PROTO(()); +extern void CDECL cm_verb PROTO((int)); #endif /* !CMDS_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/defun.c ./utils/texinfo/makeinfo/defun.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/defun.c Mon Nov 11 07:01:56 2002 +++ ./utils/texinfo/makeinfo/defun.c Sat Apr 26 01:32:03 2003 @@ -710,7 +710,7 @@ /* Add an entry for a function, macro, special form, variable, or option. If the name of the calling command ends in `x', then this is an extra entry included in the body of an insertion of the same type. */ -void +void CDECL cm_defun () { int x_p; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/defun.h ./utils/texinfo/makeinfo/defun.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/defun.h Mon Aug 26 00:38:39 2002 +++ ./utils/texinfo/makeinfo/defun.h Thu Nov 14 17:35:22 2002 @@ -24,8 +24,8 @@ #include "insertion.h" -extern enum insertion_type get_base_type (); -extern void cm_defun (); +extern enum insertion_type get_base_type PROTO((enum insertion_type type)); +extern void CDECL cm_defun PROTO((void)); #endif /* !DEFUN_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/files.h ./utils/texinfo/makeinfo/files.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/files.h Mon Aug 26 00:38:39 2002 +++ ./utils/texinfo/makeinfo/files.h Thu Nov 14 17:07:44 2002 @@ -34,13 +34,18 @@ } FSTACK; extern FSTACK *filestack; -extern void pushfile (), popfile (); -extern void flush_file_stack (); -extern char *find_and_load (); -extern char *output_name_from_input_name (); -extern char *expand_filename (); -extern char *filename_part (); -extern char *pathname_part (); -extern char *normalize_filename (); +extern char *find_and_load PROTO((char *filename)); +extern void push_node_filename PROTO(()); +extern void pop_node_filename PROTO(()); +extern void pushfile PROTO(()); +extern void popfile PROTO(()); +extern void flush_file_stack PROTO(()); +extern char *filename_non_directory PROTO((char *name)); +extern char *filename_part PROTO((char *filename)); +extern char *pathname_part PROTO((char *filename)); +extern char *expand_filename PROTO((char *filename, char *name)); +extern char *full_pathname PROTO((char *filename)); +extern char *output_name_from_input_name PROTO((char *name)); +extern char *normalize_filename PROTO((char *fname)); #endif /* !FILES_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/footnote.c ./utils/texinfo/makeinfo/footnote.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/footnote.c Tue Nov 05 02:04:27 2002 +++ ./utils/texinfo/makeinfo/footnote.c Sat Apr 26 01:32:03 2003 @@ -21,6 +21,7 @@ #include "footnote.h" #include "macro.h" #include "makeinfo.h" +#include "node.h" #include "xml.h" /* Nonzero means that the footnote style for this document was set on @@ -69,7 +70,7 @@ return 0; } -void +void CDECL cm_footnotestyle () { char *arg; @@ -132,7 +133,7 @@ /* Handle a "footnote". footnote *{this is a footnote} where "*" is the (optional) marker character for this note. */ -void +void CDECL cm_footnote () { char *marker; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/footnote.h ./utils/texinfo/makeinfo/footnote.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/footnote.h Mon Aug 26 00:38:39 2002 +++ ./utils/texinfo/makeinfo/footnote.h Thu Nov 14 17:35:22 2002 @@ -27,11 +27,13 @@ extern int already_outputting_pending_notes; /* The Texinfo @commands. */ -extern void cm_footnote (); -extern void cm_footnotestyle (); +extern int set_footnote_style PROTO((char *string)); +extern void CDECL cm_footnotestyle PROTO((void)); +extern void remember_note PROTO((char *marker, char *note)); +extern void CDECL cm_footnote PROTO((void)); -extern int set_footnote_style (); /* called for -s option */ +extern int set_footnote_style PROTO(()); /* called for -s option */ -extern void output_pending_notes (); /* called for output */ +extern void output_pending_notes PROTO((void)); /* called for output */ #endif /* !FOOTNOTE_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/html.c ./utils/texinfo/makeinfo/html.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/html.c Mon Nov 04 21:14:41 2002 +++ ./utils/texinfo/makeinfo/html.c Thu Nov 14 20:24:03 2002 @@ -187,7 +187,7 @@ } if (start_or_end != START) - pop_tag (tag); + pop_tag (); if (htmlstack) old_tag = htmlstack->tag; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/html.h ./utils/texinfo/makeinfo/html.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/html.h Thu Oct 31 21:08:24 2002 +++ ./utils/texinfo/makeinfo/html.h Thu Nov 14 17:35:23 2002 @@ -34,22 +34,23 @@ extern int html_title_written; /* Perform the output. */ -extern void html_output_head (); +extern void html_output_head PROTO(()); /* Escape &<>. */ -extern char *escape_string (/* char * */); +extern char *escape_string PROTO((char *string)); /* Open or close TAG according to START_OR_END. */ -extern void insert_html_tag (/* int start_or_end, char *tag */); +extern void insert_html_tag PROTO((int start_or_end, char *tag)); /* Output HTML to NODE, plus extra ATTRIBUTES. */ -extern void add_link (/* char *node, char *attributes */); +extern void add_link PROTO((char *node, char *attributes)); /* Escape URL-special characters as %xy. */ -extern void add_escaped_anchor_name (/* char *name */); +extern void add_escaped_anchor_name PROTO((char *name)); /* See html.c. */ -extern void add_anchor_name (/* nodename, href */); +extern void add_anchor_name PROTO((char *nodename, int href)); + extern void add_url_name ( /* nodename, href */ ); extern char* nodename_to_filename ( /* nodename */ ); extern void add_nodename_to_filename ( /*nodename, href */ ); diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/index.c ./utils/texinfo/makeinfo/index.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/index.c Tue Nov 26 21:54:32 2002 +++ ./utils/texinfo/makeinfo/index.c Sat Apr 26 01:32:03 2003 @@ -19,9 +19,11 @@ #include "system.h" #include "index.h" +#include "makeinfo.h" #include "lang.h" #include "macro.h" #include "toc.h" +#include "html.h" #include "xml.h" /* An index element... */ @@ -86,7 +88,11 @@ int user_command_array_len = 0; /* How to compare index entries for sorting. May be set to strcoll. */ +#ifdef WIN32 +int (CDECL * index_compare_fn) () = _stricmp; +#else int (*index_compare_fn) () = strcasecmp; +#endif /* Find which element in the known list of indices has this name. Returns -1 if NAME isn't found. */ @@ -244,7 +250,7 @@ } /* The function which user defined index commands call. */ -static void +static void CDECL gen_index () { char *name = xstrdup (command); @@ -407,13 +413,13 @@ free (name); } -void +void CDECL cm_defindex () { gen_defindex (0); } -void +void CDECL cm_defcodeindex () { gen_defindex (1); @@ -422,7 +428,7 @@ /* Expects 2 args, on the same line. Both are index abbreviations. Make the first one be a synonym for the second one, i.e. make the first one have the same index as the second one. */ -void +void CDECL cm_synindex () { int source, target; @@ -449,43 +455,43 @@ free (abbrev2); } -void +void CDECL cm_pindex () /* Pinhead index. */ { index_add_arg ("pg"); } -void +void CDECL cm_vindex () /* Variable index. */ { index_add_arg ("vr"); } -void +void CDECL cm_kindex () /* Key index. */ { index_add_arg ("ky"); } -void +void CDECL cm_cindex () /* Concept index. */ { index_add_arg ("cp"); } -void +void CDECL cm_findex () /* Function index. */ { index_add_arg ("fn"); } -void +void CDECL cm_tindex () /* Data Type index. */ { index_add_arg ("tp"); } -int +int CDECL index_element_compare (element1, element2) INDEX_ELT **element1, **element2; { @@ -632,7 +638,7 @@ /* Takes one arg, a short name of an index to print. Outputs a menu of the sorted elements of the index. */ -void +void CDECL cm_printindex () { if (xml && !docbook) diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/index.h ./utils/texinfo/makeinfo/index.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/index.h Mon Aug 26 00:38:39 2002 +++ ./utils/texinfo/makeinfo/index.h Thu Nov 14 17:15:21 2002 @@ -21,16 +21,36 @@ #define INDEX_H #include "makeinfo.h" +#include "insertion.h" #include "cmds.h" /* User commands are only new indices. (Macros are handled separately.) */ extern COMMAND **user_command_array; extern int user_command_array_len; +extern void define_user_command PROTO((char *name, COMMAND_FUNCTION *proc, + int needs_braces_p)); + /* Initialize all indices. */ -extern void init_indices (); +extern void init_indices PROTO((void)); /* Function to compare index entries for sorting. */ -extern int (*index_compare_fn) (); +extern int (CDECL * index_compare_fn) (); + +extern int translate_index PROTO((char *name)); +extern struct index_elt *index_list PROTO((char *name)); +extern void CDECL cm_defindex PROTO((void)); +extern void CDECL cm_defcodeindex PROTO((void)); +extern void CDECL cm_synindex PROTO((void)); +extern void CDECL cm_pindex PROTO((void)); +extern void CDECL cm_vindex PROTO((void)); +extern void CDECL cm_kindex PROTO((void)); +extern void CDECL cm_cindex PROTO((void)); +extern void CDECL cm_findex PROTO((void)); +extern void CDECL cm_tindex PROTO((void)); +extern int CDECL index_element_compare PROTO((struct index_elt **element1, struct index_elt **element2 )); +extern void make_index_entries_unique PROTO((struct index_elt **array, int count )); +extern struct index_elt **sort_index PROTO((struct index_elt *index)) ; +extern void CDECL cm_printindex PROTO((void)); #endif /* !INDEX_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/insertion.c ./utils/texinfo/makeinfo/insertion.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/insertion.c Thu Jan 02 22:46:30 2003 +++ ./utils/texinfo/makeinfo/insertion.c Sat Apr 26 01:32:03 2003 @@ -24,6 +24,7 @@ #include "insertion.h" #include "macro.h" #include "makeinfo.h" +#include "multi.h" #include "xml.h" /* Must match list in insertion.h. */ @@ -63,7 +64,6 @@ int in_paragraph = 0; static const char dl_tag[] = "
\n"; -extern void cm_insert_copying (); void @@ -343,7 +343,7 @@ } /* Conditionally parse based on the current command name. */ -void +void CDECL command_name_condition () { char *discarder = xmalloc (8 + strlen (command)); @@ -995,7 +995,7 @@ /* Insertion (environment) commands. */ -void +void CDECL cm_quotation () { if (xml) @@ -1003,7 +1003,7 @@ begin_insertion (quotation); } -void +void CDECL cm_example () { if (xml) @@ -1011,7 +1011,7 @@ begin_insertion (example); } -void +void CDECL cm_smallexample () { if (xml) @@ -1019,7 +1019,7 @@ begin_insertion (smallexample); } -void +void CDECL cm_lisp () { if (xml) @@ -1027,7 +1027,7 @@ begin_insertion (lisp); } -void +void CDECL cm_smalllisp () { if (xml) @@ -1035,7 +1035,7 @@ begin_insertion (smalllisp); } -void +void CDECL cm_cartouche () { if (xml) @@ -1043,7 +1043,7 @@ begin_insertion (cartouche); } -void +void CDECL cm_copying () { if (xml) @@ -1052,7 +1052,7 @@ } /* Not an insertion, despite the name, but it goes with cm_copying. */ -void +void CDECL cm_insert_copying () { if (copying_text) @@ -1067,7 +1067,7 @@ } } -void +void CDECL cm_format () { if (xml) @@ -1083,7 +1083,7 @@ begin_insertion (format); } -void +void CDECL cm_smallformat () { if (xml) @@ -1091,7 +1091,7 @@ begin_insertion (smallformat); } -void +void CDECL cm_display () { if (xml) @@ -1099,7 +1099,7 @@ begin_insertion (display); } -void +void CDECL cm_smalldisplay () { if (xml) @@ -1107,7 +1107,7 @@ begin_insertion (smalldisplay); } -void +void CDECL cm_direntry () { if (html || xml) @@ -1116,7 +1116,7 @@ begin_insertion (direntry); } -void +void CDECL cm_documentdescription () { if (html || xml) @@ -1126,7 +1126,7 @@ } -void +void CDECL cm_itemize () { begin_insertion (itemize); @@ -1163,7 +1163,7 @@ begin_insertion (type); } -void +void CDECL cm_enumerate () { do_enumeration (enumerate, "1"); @@ -1240,44 +1240,44 @@ inhibit_paragraph_indentation = save_inhibit_paragraph_indentation; } -void +void CDECL cm_verbatim () { handle_verbatim_environment (1); } -void +void CDECL cm_table () { begin_insertion (table); } -void +void CDECL cm_multitable () { begin_insertion (multitable); /* @@ */ } -void +void CDECL cm_ftable () { begin_insertion (ftable); } -void +void CDECL cm_vtable () { begin_insertion (vtable); } -void +void CDECL cm_group () { begin_insertion (group); } /* Insert raw HTML (no escaping of `<' etc.). */ -void +void CDECL cm_html () { if (process_html || process_xml) @@ -1286,7 +1286,7 @@ command_name_condition (); } -void +void CDECL cm_ifhtml () { if (process_html) @@ -1295,7 +1295,7 @@ command_name_condition (); } -void +void CDECL cm_ifnothtml () { if (!process_html) @@ -1305,7 +1305,7 @@ } -void +void CDECL cm_ifinfo () { if (process_info) @@ -1314,7 +1314,7 @@ command_name_condition (); } -void +void CDECL cm_ifnotinfo () { if (!process_info) @@ -1324,7 +1324,7 @@ } -void +void CDECL cm_ifplaintext () { if (process_plaintext) @@ -1333,7 +1333,7 @@ command_name_condition (); } -void +void CDECL cm_ifnotplaintext () { if (!process_plaintext) @@ -1343,7 +1343,7 @@ } -void +void CDECL cm_tex () { if (process_tex) @@ -1352,7 +1352,7 @@ command_name_condition (); } -void +void CDECL cm_iftex () { if (process_tex) @@ -1361,7 +1361,7 @@ command_name_condition (); } -void +void CDECL cm_ifnottex () { if (!process_tex) @@ -1370,7 +1370,7 @@ command_name_condition (); } -void +void CDECL cm_ifxml () { if (process_xml) @@ -1379,7 +1379,7 @@ command_name_condition (); } -void +void CDECL cm_ifnotxml () { if (!process_xml) @@ -1390,7 +1390,7 @@ /* Begin an insertion where the lines are not filled or indented. */ -void +void CDECL cm_flushleft () { begin_insertion (flushleft); @@ -1398,13 +1398,13 @@ /* Begin an insertion where the lines are not filled, and each line is forced to the right-hand side of the page. */ -void +void CDECL cm_flushright () { begin_insertion (flushright); } -void +void CDECL cm_menu () { if (current_node == NULL) @@ -1417,7 +1417,7 @@ begin_insertion (menu); } -void +void CDECL cm_detailmenu () { if (current_node == NULL) @@ -1429,7 +1429,7 @@ } /* End existing insertion block. */ -void +void CDECL cm_end () { char *temp; @@ -1481,7 +1481,7 @@ } -void +void CDECL cm_item () { char *rest_of_line, *item_func; @@ -1744,7 +1744,7 @@ } } -void +void CDECL cm_itemx () { itemx_flag++; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/insertion.h ./utils/texinfo/makeinfo/insertion.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/insertion.h Sun Sep 29 20:15:21 2002 +++ ./utils/texinfo/makeinfo/insertion.h Thu Nov 14 17:21:33 2002 @@ -55,10 +55,62 @@ extern int had_menu_commentary; extern int in_paragraph; -extern void command_name_condition (); -extern void cm_ifhtml (), cm_ifnothtml(), cm_html (); -extern void cm_ifinfo (), cm_ifnotinfo (); -extern void cm_ifplaintext (), cm_ifnotplaintext(); -extern void cm_iftex (), cm_ifnottex (), cm_tex (); -extern void cm_ifxml (), cm_ifnotxml (); +extern int command_needs_braces PROTO((char *cmd)); +extern void init_insertion_stack PROTO((void)); +extern char *get_item_function PROTO((void)); +extern void push_insertion PROTO((enum insertion_type type, char *item_function)); +extern void pop_insertion PROTO((void)); +extern char *insertion_type_pname PROTO((enum insertion_type type)); +extern enum insertion_type find_type_from_name PROTO((char *name)); +extern int defun_insertion PROTO((enum insertion_type type)); +extern void start_enumerating PROTO((int at, int type)); +extern void stop_enumerating PROTO((void)); +extern void enumerate_item PROTO((void)); +extern void CDECL command_name_condition PROTO((void)); +extern void begin_insertion PROTO((enum insertion_type type)); +extern void end_insertion PROTO((enum insertion_type type)); +extern void discard_insertions PROTO((int specials_ok)); +extern void CDECL cm_insert_copying PROTO((void)); +extern void CDECL cm_copying PROTO((void)); +extern void CDECL cm_ifnotplaintext PROTO((void)); +extern void CDECL cm_ifplaintext PROTO((void)); +extern void CDECL cm_quotation PROTO((void)); +extern void CDECL cm_example PROTO((void)); +extern void CDECL cm_smallexample PROTO((void)); +extern void CDECL cm_lisp PROTO((void)); +extern void CDECL cm_smalllisp PROTO((void)); +extern void CDECL cm_cartouche PROTO((void)); +extern void CDECL cm_format PROTO((void)); +extern void CDECL cm_smallformat PROTO((void)); +extern void CDECL cm_display PROTO((void)); +extern void CDECL cm_smalldisplay PROTO((void)); +extern void CDECL cm_direntry PROTO((void)); +extern void CDECL cm_documentdescription PROTO((void)); +extern void CDECL cm_itemize PROTO((void)); +extern void handle_verbatim_environment PROTO(()); +extern void CDECL cm_enumerate PROTO((void)); +extern void CDECL cm_table PROTO((void)); +extern void CDECL cm_multitable PROTO((void)); +extern void CDECL cm_ftable PROTO((void)); +extern void CDECL cm_vtable PROTO((void)); +extern void CDECL cm_group PROTO((void)); +extern void CDECL cm_ifinfo PROTO((void)); +extern void CDECL cm_ifnotinfo PROTO((void)); +extern void CDECL cm_html PROTO((void)); +extern void CDECL cm_ifhtml PROTO((void)); +extern void CDECL cm_ifnothtml PROTO((void)); +extern void CDECL cm_ifxml PROTO((void)); +extern void CDECL cm_ifnotxml PROTO((void)); +extern void CDECL cm_tex PROTO((void)); +extern void CDECL cm_iftex PROTO((void)); +extern void CDECL cm_ifnottex PROTO((void)); +extern void CDECL cm_flushleft PROTO((void)); +extern void CDECL cm_flushright PROTO((void)); +extern void CDECL cm_menu PROTO((void)); +extern void CDECL cm_detailmenu PROTO((void)); +extern void CDECL cm_end PROTO((void)); +extern void CDECL cm_item PROTO((void)); +extern void CDECL cm_itemx PROTO((void)); +extern void CDECL cm_verbatim PROTO((void)); + #endif /* !INSERTION_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/lang.c ./utils/texinfo/makeinfo/lang.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/lang.c Tue Nov 12 22:39:12 2002 +++ ./utils/texinfo/makeinfo/lang.c Thu Nov 14 20:27:50 2002 @@ -23,6 +23,8 @@ #include "cmds.h" #include "lang.h" #include "makeinfo.h" +#include "sectioning.h" +#include "insertion.h" #include "xml.h" /* Current document encoding. */ @@ -306,7 +308,7 @@ /* @documentlanguage. Maybe we'll do something useful with this in the future. For now, we just recognize it. */ -void +void CDECL cm_documentlanguage () { language_code_type c; @@ -360,7 +362,7 @@ /* @documentencoding. Set the translation table. */ -void +void CDECL cm_documentencoding () { encoding_code_type enc; @@ -521,7 +523,7 @@ /* Accent commands that take explicit arguments and don't have any special HTML support. */ -void +void CDECL cm_accent (arg) int arg; { @@ -564,7 +566,7 @@ can manage. If HTML_SOLO_STANDALONE is nonzero the given HTML_SOLO exists as valid standalone character in HTML, e.g., ¨. */ -static void +static void CDECL cm_accent_generic (arg, start, end, html_supported, single, html_solo_standalone, html_solo) int arg, start, end; @@ -589,42 +591,42 @@ } } -void +void CDECL cm_accent_umlaut (arg, start, end) int arg, start, end; { cm_accent_generic (arg, start, end, "aouAOUEeIiy", '"', 1, "uml"); } -void +void CDECL cm_accent_acute (arg, start, end) int arg, start, end; { cm_accent_generic (arg, start, end, "AEIOUYaeiouy", '\'', 1, "acute"); } -void +void CDECL cm_accent_cedilla (arg, start, end) int arg, start, end; { cm_accent_generic (arg, start, end, "Cc", ',', 1, "cedil"); } -void +void CDECL cm_accent_hat (arg, start, end) int arg, start, end; { cm_accent_generic (arg, start, end, "AEIOUaeiou", '^', 0, "circ"); } -void +void CDECL cm_accent_grave (arg, start, end) int arg, start, end; { cm_accent_generic (arg, start, end, "AEIOUaeiou", '`', 0, "grave"); } -void +void CDECL cm_accent_tilde (arg, start, end) int arg, start, end; { @@ -634,7 +636,7 @@ /* Non-English letters/characters that don't insert themselves. */ -void +void CDECL cm_special_char (arg) { int old_escape_html = escape_html; @@ -665,9 +667,9 @@ else if (strcmp (command, "ae") == 0) add_encoded_char ("aelig", command); else if (strcmp (command, "OE") == 0) - add_word ("Œ", command); + add_word_args ("Œ", command); else if (strcmp (command, "oe") == 0) - add_word ("œ", command); + add_word_args ("œ", command); else if (strcmp (command, "AA") == 0) add_encoded_char ("Aring", command); else if (strcmp (command, "aa") == 0) @@ -681,7 +683,7 @@ } /* Dotless i or j. */ -void +void CDECL cm_dotless (arg, start, end) int arg, start, end; { diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/lang.h ./utils/texinfo/makeinfo/lang.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/lang.h Thu Nov 07 15:10:50 2002 +++ ./utils/texinfo/makeinfo/lang.h Thu Nov 14 17:23:32 2002 @@ -127,12 +127,18 @@ /* The commands. */ -extern void cm_documentlanguage (), cm_documentencoding (); +extern void CDECL cm_documentlanguage PROTO((void)); +extern void CDECL cm_documentencoding PROTO((void)); /* Accents, other non-English characters. */ -void cm_accent (), cm_special_char (), cm_dotless (); - -extern void cm_accent_umlaut (), cm_accent_acute (), cm_accent_cedilla (), - cm_accent_hat (), cm_accent_grave (), cm_accent_tilde (); +extern void CDECL cm_accent PROTO((int arg)); +extern void CDECL cm_accent_umlaut PROTO((int arg, int start, int end)); +extern void CDECL cm_accent_acute PROTO((int arg, int start, int end)); +extern void CDECL cm_accent_cedilla PROTO((int arg, int start, int end)); +extern void CDECL cm_accent_hat PROTO((int arg, int start, int end)); +extern void CDECL cm_accent_grave PROTO((int arg, int start, int end)); +extern void CDECL cm_accent_tilde PROTO((int arg, int start, int end)); +extern void CDECL cm_special_char PROTO((int arg)); +extern void CDECL cm_dotless PROTO((int arg, int start, int end)); #endif /* not LANG_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/macro.c ./utils/texinfo/makeinfo/macro.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/macro.c Thu Oct 31 21:11:42 2002 +++ ./utils/texinfo/makeinfo/macro.c Sat Apr 26 01:32:03 2003 @@ -18,10 +18,11 @@ Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "system.h" -#include "cmds.h" #include "macro.h" #include "makeinfo.h" #include "insertion.h" +#include "files.h" +#include "cmds.h" /* If non-NULL, this is an output stream to write the full macro expansion of the input text to. The result is another texinfo file, but @@ -692,13 +693,13 @@ remember_itext (input_text, input_text_offset); } -void +void CDECL cm_macro () { define_macro ("macro", 0); } -void +void CDECL cm_rmacro () { define_macro ("rmacro", 1); @@ -728,7 +729,7 @@ return def; } -void +void CDECL cm_unmacro () { int i; @@ -993,7 +994,7 @@ static alias_type *aliases; /* @alias */ -void +void CDECL cm_alias () { alias_type *a = xmalloc (sizeof (alias_type)); @@ -1053,7 +1054,7 @@ static enclosure_stack_type *enclosure_stack; /* @definfoenclose */ -void +void CDECL cm_definfoenclose () { enclosure_type *e = xmalloc (sizeof (enclosure_type)); @@ -1095,7 +1096,7 @@ } /* actually perform the enclosure expansion */ -void +void CDECL enclosure_expand (arg, start, end) int arg, start, end; { diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/macro.h ./utils/texinfo/makeinfo/macro.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/macro.h Mon Aug 26 00:38:39 2002 +++ ./utils/texinfo/makeinfo/macro.h Thu Nov 14 17:35:24 2002 @@ -48,24 +48,32 @@ #define ME_RECURSE 0x01 #define ME_QUOTE_ARG 0x02 -extern void execute_macro (); -extern MACRO_DEF *find_macro (); -extern char *expand_macro (); +extern int array_len PROTO((char **array )); +extern void free_array PROTO((char **array )); +extern void add_macro PROTO((char *name, char **arglist, char *body, + char *source_file, int source_llineno, + int flags)); +extern char **get_brace_args PROTO((int quote_single)) ; +extern char *apply PROTO((char **named, char **actuals, char *body )); +extern void CDECL cm_macro PROTO((void)); +extern void CDECL cm_rmacro PROTO((void)); +extern void CDECL cm_unmacro PROTO((void)); +extern void execute_macro PROTO((MACRO_DEF *def)); +extern MACRO_DEF *find_macro PROTO((char *name)); +extern char *expand_macro PROTO((MACRO_DEF *def)); -extern ITEXT *remember_itext (); -extern void forget_itext (); -extern void maybe_write_itext (); -extern void write_region_to_macro_output (); -extern void append_to_expansion_output (); -extern void me_append_before_this_command (); -extern void me_execute_string (); - -extern char *alias_expand (); -extern int enclosure_command (); -extern void enclosure_expand (); - -/* The @commands. */ -extern void cm_macro (), cm_rmacro (), cm_unmacro (); -extern void cm_alias (), cm_definfoenclose (); +extern ITEXT *remember_itext PROTO((char *pointer, int offset)); +extern void forget_itext PROTO((char *pointer)); +extern void me_append_before_this_command PROTO((void)); +extern void me_execute_string PROTO((char *execution_string)); +extern void me_execute_string_keep_state PROTO((char *execution_string, char *apppend_string)); +extern void append_to_expansion_output PROTO((int offset)); +extern void maybe_write_itext PROTO((char *pointer, int offset)); +extern void write_region_to_macro_output PROTO((char *string, int start, int end)); +extern void CDECL cm_alias PROTO((void)); +extern char *alias_expand PROTO((char *tok)); +extern void CDECL cm_definfoenclose PROTO((void)); +extern int enclosure_command PROTO((char *tok)); +extern void CDECL enclosure_expand PROTO((int arg, int start, int end)); #endif /* not MACRO_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/makeinfo.c ./utils/texinfo/makeinfo/makeinfo.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/makeinfo.c Sun Jan 19 17:44:29 2003 +++ ./utils/texinfo/makeinfo/makeinfo.c Sat Apr 26 01:32:04 2003 @@ -243,7 +243,7 @@ } /* Just like error (), but print the input file and line number as well. */ -void +void CDECL #if defined (VA_FPRINTF) && __STDC__ file_line_error (char *infile, int lno, char *format, ...) #else @@ -274,7 +274,7 @@ /* Just like file_line_error (), but take the input file and the line number from global variables. */ -void +void CDECL #if defined (VA_FPRINTF) && __STDC__ line_error (char *format, ...) #else @@ -347,7 +347,7 @@ } /* The other side of a malformed expression. */ -void +void CDECL misplaced_brace () { line_error (_("Misplaced %c"), '}'); @@ -542,7 +542,9 @@ /* Do not use LC_ALL, because LC_NUMERIC screws up the scanf parsing of the argument to @multicolumn. */ setlocale (LC_TIME, ""); +#ifndef WIN32 setlocale (LC_MESSAGES, ""); +#endif setlocale (LC_CTYPE, ""); setlocale (LC_COLLATE, ""); #endif @@ -1367,7 +1369,11 @@ if (strlen (dir)) strcat (output_filename, "/"); strcat (output_filename, subdir); - if (mkdir (output_filename, 0777) == -1 && errno != EEXIST + if (mkdir (output_filename +#ifndef WIN32 + , 0777 +#endif + ) == -1 && errno != EEXIST /* output_filename might exist, but be a non-directory. */ || (stat (output_filename, &st) == 0 && !S_ISDIR (st.st_mode))) { /* that failed, try subdir name with .html */ @@ -1375,7 +1381,11 @@ if (strlen (dir)) strcat (output_filename, "/"); strcat (output_filename, basename); - if (mkdir (output_filename, 0777) == -1) + if (mkdir (output_filename +#ifndef WIN32 + , 0777 +#endif + ) == -1) { char *errmsg = strerror (errno); @@ -1615,7 +1625,7 @@ output_pending_notes (); if (tag_table) { - tag_table = (TAG_ENTRY *) reverse_list (tag_table); + tag_table = (TAG_ENTRY *) reverse_list ((struct generic_list *)tag_table); if (!no_headers && !html) write_tag_table (); } @@ -2053,7 +2063,6 @@ } else { /* We don't mind `extra' braces inside @math. */ - extern void cm_no_op (); remember_brace (cm_no_op); } /* remember_brace advances input_text_offset. */ @@ -2972,7 +2981,7 @@ execute_string, because they will be escaped. See the mess? */ /* Make a cross reference. */ -void +void CDECL cm_xref (arg) { if (arg == START) @@ -3202,7 +3211,7 @@ } } -void +void CDECL cm_pxref (arg) int arg; { @@ -3218,7 +3227,7 @@ the required character itself, when needed. */ } -void +void CDECL cm_ref (arg) int arg; { @@ -3230,7 +3239,7 @@ } } -void +void CDECL cm_inforef (arg) int arg; { @@ -3295,7 +3304,7 @@ } /* A URL reference. */ -void +void CDECL cm_uref (arg) int arg; { @@ -3366,7 +3375,7 @@ } /* An email reference. */ -void +void CDECL cm_email (arg) int arg; { @@ -3424,7 +3433,7 @@ /* An external image is a reference, kind of. The parsing is (not coincidentally) similar, anyway. */ -void +void CDECL cm_image (arg) int arg; { @@ -3614,26 +3623,26 @@ } /* Create a variable whose name appears as the first word on this line. */ -void +void CDECL cm_set () { handle_variable (SET); } /* Remove a variable whose name appears as the first word on this line. */ -void +void CDECL cm_clear () { handle_variable (CLEAR); } -void +void CDECL cm_ifset () { handle_variable (IFSET); } -void +void CDECL cm_ifclear () { handle_variable (IFCLEAR); @@ -3645,7 +3654,7 @@ The syntax @ifeq{arg1, arg2, texinfo-commands} performs texinfo-commands if ARG1 and ARG2 caselessly string compare to the same string, otherwise, it produces no output. */ -void +void CDECL cm_ifeq () { char **arglist; @@ -3665,7 +3674,7 @@ } } -void +void CDECL cm_value (arg, start_pos, end_pos) int arg, start_pos, end_pos; { diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/makeinfo.h ./utils/texinfo/makeinfo/makeinfo.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/makeinfo.h Fri Jan 17 16:14:35 2003 +++ ./utils/texinfo/makeinfo/makeinfo.h Sat Apr 26 01:32:04 2003 @@ -286,4 +286,87 @@ #define looking_at(string) \ (strncmp (input_text + input_text_offset, string, strlen (string)) == 0) +extern int fs_error PROTO((char *filename)); +extern void error PROTO((char *format, ...)); +extern void line_error PROTO((char *format, ...)); +extern void warning PROTO((char *format, ...)); +extern void remember_error PROTO((void)); +extern void CDECL misplaced_brace PROTO((void)); +extern int main PROTO((int argc, char **argv)); +extern char *read_token PROTO((void)); +extern int self_delimiting PROTO((int character)); +extern void canon_white PROTO((char *string)); +extern void fix_whitespace PROTO((char *string)); +extern void discard_until PROTO((char *string)); +extern int get_until PROTO((char *match, char **string)); +extern void replace_with_expansion PROTO((int from, int *to)); +extern void get_until_in_line PROTO((int expand, char *match, char **string)); +extern void get_rest_of_line PROTO((int expand, char **string)); +extern void backup_input_pointer PROTO((void)); +extern void get_until_in_braces PROTO((char *match, char **string)); +extern void initialize_conversion PROTO((void)); +extern struct generic_list *reverse_list PROTO((struct generic_list *list)); +extern void convert_from_stream PROTO((FILE *stream, char *name)); +extern void convert_from_file PROTO((char *name)); +extern void convert_from_loaded_file PROTO((char *name)); +extern void free_and_clear PROTO((char **pointer )); +extern void init_internals PROTO((void)); +extern void init_paragraph PROTO((void)); +extern void reader_loop PROTO((void)); +extern void init_brace_stack PROTO((void)); +extern void remember_brace PROTO((void (CDECL * proc) ())); +extern void remember_brace_1 PROTO((void (CDECL * proc) (), int position)); +extern void pop_and_call_brace PROTO((void)); +extern void adjust_braces_following PROTO((int here, int amount)); +extern void discard_braces PROTO((void)); +extern int get_char_len PROTO((int character)); +extern void add_word_args PROTO((char *format, ...)); +extern void add_word PROTO((char *string)); +extern void add_char PROTO((int character)); +extern void add_meta_char PROTO((int character)); +extern void insert PROTO((int character)); +extern void insert_string PROTO((char *string)); +extern void kill_self_indent PROTO((int count)); +extern void inhibit_output_flushing PROTO((void)); +extern void uninhibit_output_flushing PROTO((void)); +extern void flush_output PROTO((void)); +extern void close_single_paragraph PROTO((void)); +extern void close_insertion_paragraph PROTO((void)); +extern void close_paragraph PROTO((void)); +extern void ignore_blank_line PROTO((void)); +extern void do_flush_right_indentation PROTO((void)); +extern void start_paragraph PROTO((void)); +extern void indent PROTO((int amount)); +extern int search_forward PROTO((char *string, int from)); +extern char *get_xref_token PROTO((int expand)); +extern void CDECL cm_xref PROTO((int arg)); +extern void CDECL cm_pxref PROTO((int arg)); +extern void CDECL cm_ref PROTO((int arg)); +extern void CDECL cm_inforef PROTO((int arg)); +extern void CDECL cm_uref PROTO((int arg)); +extern void CDECL cm_email PROTO((int arg)); +extern void CDECL cm_image PROTO((int arg)); +extern void set PROTO((char *name, char *value)); +extern void clear PROTO((char *name)); +extern char *set_p PROTO((char *name)); +extern void CDECL cm_set PROTO((void)); +extern void CDECL cm_clear PROTO((void)); +extern void CDECL cm_ifset PROTO((void)); +extern void CDECL cm_ifclear PROTO((void)); +extern void CDECL cm_ifeq PROTO((void)); +extern void CDECL cm_value PROTO((int arg, int start_pos, int end_pos)); +extern void handle_variable PROTO((int action)); +extern void handle_variable_internal PROTO((int action, char *name)); +extern void maybe_update_execution_strings PROTO((char **text, unsigned new_len )); +extern void execute_string PROTO((char *format, ...)); +extern char *expansion PROTO((char *str, int implicit_code)); +extern char *text_expansion PROTO((char *str)); +extern int set_paragraph_indent PROTO((char *string)); +extern void CDECL file_line_error PROTO((char *infile, int lno, char *format, ...)); +extern void CDECL line_error PROTO((char *format, ...)); +extern void add_html_elt PROTO((string)); + +extern void xexit PROTO((int exit_status)); +extern char *substring PROTO((char *start, char *end)); + #endif /* not MAKEINFO_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/multi.c ./utils/texinfo/makeinfo/multi.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/multi.c Mon Nov 04 20:28:11 2002 +++ ./utils/texinfo/makeinfo/multi.c Thu Nov 14 20:39:49 2002 @@ -21,8 +21,10 @@ Written by phr@gnu.org (Paul Rubin). */ #include "system.h" +#include "multi.h" #include "insertion.h" #include "makeinfo.h" +#include "cmds.h" #include "xml.h" #define MAXCOLS 100 /* remove this limit later @@ */ @@ -524,7 +526,7 @@ #undef CHAR_ADDR /* select a new column in current row of multitable */ -void +void CDECL cm_tab () { if (!multitable_active) diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/multi.h ./utils/texinfo/makeinfo/multi.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/multi.h Thu Jan 01 01:00:00 1970 +++ ./utils/texinfo/makeinfo/multi.h Thu Nov 14 20:38:54 2002 @@ -0,0 +1,34 @@ +/* multi.h -- declarations for multi-related utilities. + $Id: multi.h,v 1.1 1999/04/25 20:53:33 karl Exp $ + + Copyright (C) 1999 Free Software Foundation, Inc. + + 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 Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +#ifndef MULTI_H +#define MULTI_H + +extern void draw_horizontal_separator PROTO((void)); +extern void do_multitable PROTO((void)); +extern int setup_multitable_parameters PROTO((void)); +extern int setup_output_environment PROTO((int env_no, int width)); +extern int select_output_environment PROTO((int n)); +extern void nselect_next_environment PROTO((void)); +extern void init_column PROTO((void)); +extern int multitable_item PROTO((void)); +extern void CDECL cm_tab PROTO((void)); +extern void end_multitable PROTO((void)); + +#endif /* ! MULTI_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/node.c ./utils/texinfo/makeinfo/node.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/node.c Sat Jan 18 16:16:18 2003 +++ ./utils/texinfo/makeinfo/node.c Sat Apr 26 01:32:04 2003 @@ -487,7 +487,7 @@ with a sectioning command (e.g., @chapter) giving the "level" of that node. It is an error not to do so. The defaults come from the menu in this node's parent. */ -void +void CDECL cm_node () { static long epilogue_len = 0L; @@ -1029,7 +1029,7 @@ } /* Cross-reference target at an arbitrary spot. */ -void +void CDECL cm_anchor (arg) int arg; { diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/node.h ./utils/texinfo/makeinfo/node.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/node.h Mon Aug 26 00:38:40 2002 +++ ./utils/texinfo/makeinfo/node.h Thu Nov 14 17:31:26 2002 @@ -97,17 +97,35 @@ /* A search string which is used to find a line defining a node. */ DECLARE (char *, node_search_string, "\n@node "); -/* Extract node name from a menu item. */ -extern char *glean_node_from_menu (); + +extern void init_tag_table PROTO((void)); +extern void write_tag_table PROTO((void)); +extern void write_tag_table_indirect PROTO((void)); +extern char *get_node_token PROTO((int expand)); -/* Remember a node for later validation. */ -extern void remember_node_reference (); +/* Expand macros and commands in the node name and canonicalize + whitespace in the resulting expansion. */ +extern char *expand_node_name PROTO((char *node)); + +extern struct tentry *find_node PROTO((char *name)); +extern void remember_node PROTO((char *node, char *prev, char *next, char *up, + int position, int line_no, char *fname, int flags)); +extern void remember_node_reference PROTO((char *node, int line, enum reftype type)); + +/* Extract node name from a menu item. */ +extern char *glean_node_from_menu PROTO((int remember_ref, enum reftype ref_type)); /* Remember the name of the current output file. */ -extern void set_current_output_filename (); +extern void set_current_output_filename PROTO((const char *fname)); +extern void CDECL cm_node PROTO((void)); +extern void CDECL cm_anchor PROTO((int arg)); +extern void free_node_references PROTO((void)); +extern void free_node_node_references PROTO((void)); +extern int number_of_node PROTO((char *node)); +extern void validate_file PROTO((struct tentry *tag_table)); +extern void split_file PROTO((char *filename, int size)); -/* Expand macros and commands in the node name and canonicalize - whitespace in the resulting expansion. */ -extern char *expand_node_name (); +/* Remember a node for later validation. */ +extern void remember_node_reference PROTO((char *node, int line, enum reftype type)); #endif /* NODE_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/sectioning.c ./utils/texinfo/makeinfo/sectioning.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/sectioning.c Fri Nov 08 01:21:08 2002 +++ ./utils/texinfo/makeinfo/sectioning.c Thu Nov 14 17:35:25 2002 @@ -20,12 +20,14 @@ Originally written by Karl Heinz Marbaise . */ #include "system.h" -#include "cmds.h" #include "macro.h" #include "makeinfo.h" #include "node.h" #include "toc.h" #include "sectioning.h" +#include "insertion.h" +#include "cmds.h" +#include "html.h" #include "xml.h" /* See comment in sectioning.h. */ @@ -483,7 +485,7 @@ /* Shift the meaning of @section to @chapter. */ -void +void CDECL cm_raisesections () { discard_until ("\n"); @@ -491,7 +493,7 @@ } /* Shift the meaning of @chapter to @section. */ -void +void CDECL cm_lowersections () { discard_until ("\n"); @@ -499,7 +501,7 @@ } /* The command still works, but prints a warning message in addition. */ -void +void CDECL cm_ideprecated (arg, start, end) int arg, start, end; { @@ -511,7 +513,7 @@ /* Treat this just like @unnumbered. The only difference is in node defaulting. */ -void +void CDECL cm_top () { /* It is an error to have more than one @top. */ @@ -590,42 +592,42 @@ } /* The remainder of the text on this line is a chapter heading. */ -void +void CDECL cm_chapter () { sectioning_underscore ("chapter"); } /* The remainder of the text on this line is a section heading. */ -void +void CDECL cm_section () { sectioning_underscore ("section"); } /* The remainder of the text on this line is a subsection heading. */ -void +void CDECL cm_subsection () { sectioning_underscore ("subsection"); } /* The remainder of the text on this line is a subsubsection heading. */ -void +void CDECL cm_subsubsection () { sectioning_underscore ("subsubsection"); } /* The remainder of the text on this line is an unnumbered heading. */ -void +void CDECL cm_unnumbered () { sectioning_underscore ("unnumbered"); } /* The remainder of the text on this line is an unnumbered section heading. */ -void +void CDECL cm_unnumberedsec () { sectioning_underscore ("unnumberedsec"); @@ -633,7 +635,7 @@ /* The remainder of the text on this line is an unnumbered subsection heading. */ -void +void CDECL cm_unnumberedsubsec () { sectioning_underscore ("unnumberedsubsec"); @@ -641,28 +643,28 @@ /* The remainder of the text on this line is an unnumbered subsubsection heading. */ -void +void CDECL cm_unnumberedsubsubsec () { sectioning_underscore ("unnumberedsubsubsec"); } /* The remainder of the text on this line is an appendix heading. */ -void +void CDECL cm_appendix () { sectioning_underscore ("appendix"); } /* The remainder of the text on this line is an appendix section heading. */ -void +void CDECL cm_appendixsec () { sectioning_underscore ("appendixsec"); } /* The remainder of the text on this line is an appendix subsection heading. */ -void +void CDECL cm_appendixsubsec () { sectioning_underscore ("appendixsubsec"); @@ -670,38 +672,38 @@ /* The remainder of the text on this line is an appendix subsubsection heading. */ -void +void CDECL cm_appendixsubsubsec () { sectioning_underscore ("appendixsubsubsec"); } /* Compatibility functions substitute for chapter, section, etc. */ -void +void CDECL cm_majorheading () { sectioning_underscore ("majorheading"); } -void +void CDECL cm_chapheading () { sectioning_underscore ("chapheading"); } -void +void CDECL cm_heading () { sectioning_underscore ("heading"); } -void +void CDECL cm_subheading () { sectioning_underscore ("subheading"); } -void +void CDECL cm_subsubheading () { sectioning_underscore ("subsubheading"); diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/sectioning.h ./utils/texinfo/makeinfo/sectioning.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/sectioning.h Mon Aug 26 00:38:40 2002 +++ ./utils/texinfo/makeinfo/sectioning.h Thu Nov 14 17:35:25 2002 @@ -22,29 +22,34 @@ #ifndef SECTIONING_H #define SECTIONING_H -/* Sectioning. */ -extern void - cm_chapter (), cm_unnumbered (), cm_appendix (), cm_top (), - cm_section (), cm_unnumberedsec (), cm_appendixsec (), - cm_subsection (), cm_unnumberedsubsec (), cm_appendixsubsec (), - cm_subsubsection (), cm_unnumberedsubsubsec (), cm_appendixsubsubsec (), - cm_heading (), cm_chapheading (), cm_subheading (), cm_subsubheading (), - cm_majorheading (), cm_raisesections (), cm_lowersections (), - - cm_ideprecated (); - -extern void - sectioning_underscore (), insert_and_underscore (); - -extern int what_section (); - - - -/* is needed in node.c */ -extern int set_top_section_level (); - -extern void sectioning_html (); -extern int what_section (); +extern char *get_sectioning_number PROTO((int level, int num)); +extern int set_top_section_level PROTO((int level)); +extern int search_sectioning PROTO((char *text)); +extern int what_section PROTO((char *text)); +extern void sectioning_underscore PROTO((char *cmd)); +extern void insert_and_underscore PROTO((int level, int with_char, char *cmd)); +extern void sectioning_html PROTO((int level, char *cmd)); +extern void CDECL cm_raisesections PROTO((void)); +extern void CDECL cm_lowersections PROTO((void)); +extern void CDECL cm_ideprecated PROTO((int arg, int start, int end)); +extern void CDECL cm_top PROTO((void)); +extern void CDECL cm_chapter PROTO((void)); +extern void CDECL cm_section PROTO((void)); +extern void CDECL cm_subsection PROTO((void)); +extern void CDECL cm_subsubsection PROTO((void)); +extern void CDECL cm_unnumbered PROTO((void)); +extern void CDECL cm_unnumberedsec PROTO((void)); +extern void CDECL cm_unnumberedsubsec PROTO((void)); +extern void CDECL cm_unnumberedsubsubsec PROTO((void)); +extern void CDECL cm_appendix PROTO((void)); +extern void CDECL cm_appendixsec PROTO((void)); +extern void CDECL cm_appendixsubsec PROTO((void)); +extern void CDECL cm_appendixsubsubsec PROTO((void)); +extern void CDECL cm_majorheading PROTO((void)); +extern void CDECL cm_chapheading PROTO((void)); +extern void CDECL cm_heading PROTO((void)); +extern void CDECL cm_subheading PROTO((void)); +extern void CDECL cm_subsubheading PROTO((void)); /* The argument of @settitle, used for HTML. */ extern char *title; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/toc.c ./utils/texinfo/makeinfo/toc.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/toc.c Thu Nov 07 15:14:00 2002 +++ ./utils/texinfo/makeinfo/toc.c Thu Nov 14 17:35:21 2002 @@ -21,6 +21,7 @@ #include "system.h" #include "makeinfo.h" +#include "insertion.h" #include "cmds.h" #include "files.h" #include "macro.h" @@ -473,7 +474,7 @@ shortcontents_update (); } -void +void CDECL cm_contents (arg) int arg; { @@ -502,7 +503,7 @@ } } -void +void CDECL cm_shortcontents (arg) int arg; { diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/toc.h ./utils/texinfo/makeinfo/toc.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/toc.h Mon Aug 26 00:38:40 2002 +++ ./utils/texinfo/makeinfo/toc.h Thu Nov 14 17:34:03 2002 @@ -39,12 +39,12 @@ int level; /* level: chapter, section, subsection... */ } TOC_ENTRY_ELT; -/* all routines which have relationship with TOC should start with - toc_ (this is a kind of name-space) */ -extern int toc_add_entry (); /* return the number for the toc-entry */ -extern void toc_free (); -extern char *toc_find_section_of_node (); - -extern void cm_contents (), cm_shortcontents (); +extern int toc_add_entry PROTO((char *tocname, int level, + char *node_name, char *anchor)); +extern char *toc_find_section_of_node PROTO((char *node)); +extern void toc_free PROTO(()); +extern void toc_update PROTO(()); +extern void CDECL cm_contents PROTO((int arg)); +extern void CDECL cm_shortcontents PROTO((int arg)); #endif /* not TOC_H */ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/win32.mak ./utils/texinfo/makeinfo/win32.mak --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/win32.mak Sat Jan 04 20:33:45 2003 +++ ./utils/texinfo/makeinfo/win32.mak Thu Nov 14 20:21:20 2002 @@ -3,7 +3,7 @@ # Makefile : TeXInfo/makeinfo # Author : Fabrice Popineau # Platform : Win32, Microsoft VC++ 6.0, depends upon fpTeX 0.5 sources -# Time-stamp: <02/12/23 00:33:50 popineau> +# Time-stamp: <02/11/14 20:21:20 popineau> # ################################################################################ root_srcdir = ..\..\.. diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/xml.c ./utils/texinfo/makeinfo/xml.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/xml.c Tue Dec 17 15:34:23 2002 +++ ./utils/texinfo/makeinfo/xml.c Sat Apr 26 01:32:04 2003 @@ -389,7 +389,7 @@ static int xml_current_element (); -void +void CDECL #if defined (VA_FPRINTF) && __STDC__ xml_insert_element_with_attribute (int elt, int arg, char *format, ...); #else @@ -1229,6 +1229,7 @@ to have real multilivel indexing support, not just string analysis. */ #define INDEX_SEP "@this string will never appear@" /* was , */ +void xml_insert_indexterm (indexterm, index) char *indexterm; char *index; diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/xml.h ./utils/texinfo/makeinfo/xml.h --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/makeinfo/xml.h Tue Nov 12 07:08:08 2002 +++ ./utils/texinfo/makeinfo/xml.h Thu Nov 14 20:44:41 2002 @@ -80,7 +80,46 @@ PARA }; -extern void xml_insert_element (/* int name, int arg */); -extern char *xml_id (/* char *id */); +extern int xml_sort_index; + +extern char *xml_id PROTO((char *id)); +extern int xml_element PROTO((char *name)); +extern void xml_begin_document PROTO((char *output_filename)); +static void xml_push_current_element PROTO((int elt)); +extern void xml_pop_current_element PROTO(()); +static int xml_current_element PROTO(()); +static void xml_indent PROTO(()); +static void xml_indent_end_para PROTO(()); +extern void xml_end_document PROTO(()); +extern void CDECL xml_insert_element_with_attribute PROTO((int elt,int arg,char *format,...)); +extern void xml_insert_element PROTO((int elt,int arg)); +extern void xml_insert_entity PROTO((char *entity_name)); +extern void xml_begin_node PROTO(()); +extern void xml_close_sections PROTO((int level)); +extern void xml_open_section PROTO((int level, char *name)); +extern void xml_start_menu_entry PROTO((char *tem)); +extern void xml_end_menu PROTO(()); +extern void xml_add_char PROTO((int character)); +extern void xml_insert_footnote PROTO((char *note)); +extern void xml_begin_table PROTO((int type,char *item_function)); +extern void xml_end_table PROTO((int type)); +extern void xml_begin_item PROTO(()); +extern void xml_begin_table_item PROTO(()); +extern void xml_continue_table_item PROTO(()); +extern void xml_begin_enumerate PROTO((char *enum_arg)); +extern void xml_end_enumerate PROTO((void)); +static void xml_insert_text_file PROTO((char *name_arg)); +extern void xml_insert_docbook_image PROTO((char *name_arg)); +extern void xml_asterisk PROTO(()); +extern void xml_insert_indexterm PROTO((char *indexterm,char *index)); +static void xml_close_indexentry PROTO(()); +extern void xml_begin_index PROTO(()); +extern void xml_end_index PROTO(()); +extern void xml_index_divide PROTO((char *entry)); +extern void xml_insert_indexentry PROTO((char *entry,char *node)); +extern void xml_begin_multitable PROTO((int ncolumns, int *columnwidths)); +extern void xml_end_multitable_row PROTO((int first_row)); +extern void xml_end_multitable_column PROTO(()); +extern void xml_end_multitable PROTO(()); #endif /* XML_H */ Binary files c:\source\TeXLive\Build\source\TeX/utils/texinfo/po/hr.gmo and ./utils/texinfo/po/hr.gmo differ Binary files c:\source\TeXLive\Build\source\TeX/utils/texinfo/po/nl.gmo and ./utils/texinfo/po/nl.gmo differ diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/util/install-info.c ./utils/texinfo/util/install-info.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/util/install-info.c Sun Jan 19 17:46:52 2003 +++ ./utils/texinfo/util/install-info.c Sat Apr 26 01:32:04 2003 @@ -25,7 +25,7 @@ struct line_data *findlines (); void insert_entry_here (); -int compare_section_names (), compare_entries_text (); +int CDECL compare_section_names (), CDECL compare_entries_text (); struct spec_entry; @@ -165,6 +165,13 @@ xexit (1); } + +#if defined(KPATHSEA) && defined(WIN32) + +#define concat(s1,s2,s3) concat3(s1,s2,s3) + +#else + /* Memory allocation and string operations. */ /* Like malloc but get fatal error if memory is exhausted. */ @@ -172,7 +179,9 @@ xmalloc (size) unsigned int size; { +#ifndef STDC_HEADERS extern void *malloc (); +#endif void *result = malloc (size); if (result == NULL) fatal (_("virtual memory exhausted"), 0, 0); @@ -185,7 +194,9 @@ void *obj; unsigned int size; { +#ifndef STDC_HEADERS extern void *realloc (); +#endif void *result = realloc (obj, size); if (result == NULL) fatal (_("virtual memory exhausted"), 0, 0); @@ -209,6 +220,8 @@ return result; } +#endif /* ! KPATHSEA || ! WIN32 */ + /* Return a string containing SIZE characters copied from starting at STRING. */ @@ -1562,7 +1575,7 @@ for a vector of pointers to struct spec_section. Compare the section names. */ -int +int CDECL compare_section_names (sec1, sec2) struct spec_section **sec1, **sec2; { @@ -1575,7 +1588,7 @@ for a vector of pointers to struct spec_entry. Compare the entries' text. */ -int +int CDECL compare_entries_text (entry1, entry2) struct spec_entry **entry1, **entry2; { diff -ruN -X mswin32\diff.exclude -x */texk.development/* c:\source\TeXLive\Build\source\TeX/utils/texinfo/util/texindex.c ./utils/texinfo/util/texindex.c --- c:\source\TeXLive\Build\source\TeX/utils/texinfo/util/texindex.c Sun Jan 19 17:47:16 2003 +++ ./utils/texinfo/util/texindex.c Sat Apr 26 01:32:04 2003 @@ -37,7 +37,9 @@ #define memset(ptr, ignore, count) bzero (ptr, count) #endif +#ifndef STDC_HEADERS char *mktemp (); +#endif #if !defined (SEEK_SET) # define SEEK_SET 0 @@ -120,28 +122,44 @@ /* Nonzero means do not delete tempfiles -- for debugging. */ int keep_tempfiles; -/* Forward declarations of functions in this file. */ -void decode_command (); -void sort_in_core (); -void sort_offline (); -char **parsefile (); -char *find_field (); -char *find_pos (); -long find_value (); -char *find_braced_pos (); -char *find_braced_end (); -void writelines (); -int compare_field (); -int compare_full (); -long readline (); -int merge_files (); -int merge_direct (); -void pfatal_with_name (); -void fatal (); -void error (); -void *xmalloc (), *xrealloc (); -char *concat (); -void flush_tempfiles (); +#if defined(KPATHSEA) && defined(WIN32) +#define concat(s1,s2,s3) concat3(s1,s2,s3) +#else +extern char *concat(char *s1, char *s2, char *s3); +#endif +extern void usage PROTO((int result_value)); +extern void decode_command PROTO((int argc,char **argv )); +static char *maketempname PROTO((int count)); +extern void flush_tempfiles PROTO((int to_count)); +extern char *tempcopy PROTO((int idesc)); +extern int CDECL compare_full PROTO((char **line1 ,char **line2 )); +extern int CDECL compare_prepared PROTO((struct lineinfo *line1,struct lineinfo *line2)); +extern int compare_general PROTO((char *str1,char *str2,long pos1,long pos2,int use_keyfields)); +extern char *find_field PROTO((struct keyfield *keyfield,char *str,long *lengthptr)); +extern char *find_pos PROTO((char *str,int words,int chars,int ignore_blanks)); +extern char *find_braced_pos PROTO((char *str,int words,int chars,int ignore_blanks)); +extern char *find_braced_end PROTO((char *str)); +extern long find_value PROTO((char *start,long length)); +extern void init_char_order PROTO((void)); +extern int compare_field PROTO((struct keyfield *keyfield,char *start1,long length1,long pos1,char *start2,long length2,long pos2)); +extern void initbuffer PROTO((struct linebuffer *linebuffer)); +extern long readline PROTO((struct linebuffer *linebuffer,FILE *stream)); +extern void sort_offline PROTO((char *infile, /* int nfiles, */ off_t total,char *outfile)); +extern void sort_in_core PROTO((char *infile, off_t total,char *outfile)); +extern char **parsefile PROTO((char *filename,char **nextline ,char *data,long size)) ; +extern void init_index PROTO((void)); +extern void indexify PROTO((char *line,FILE *ostream)); +extern void finish_index PROTO((FILE *ostream)); +extern void writelines PROTO((char **linearray ,int nlines,FILE *ostream)); +extern int merge_files PROTO((char **infiles ,int nfiles,char *outfile)); +extern int merge_direct PROTO((char **infiles ,int nfiles,char *outfile)); +extern void fatal PROTO((char *format,char *arg)); +extern void error PROTO((char *format,char *arg)); +extern void perror_with_name PROTO((char *name)); +extern void pfatal_with_name PROTO((char *name)); +extern void memory_error PROTO((char *callers_name,int bytes_wanted)); +extern void xexit PROTO((int exit_status)); + #define MAX_IN_CORE_SORT 500000 @@ -314,15 +332,17 @@ /* Store default values into parameter variables. */ - tempdir = getenv ("TMPDIR"); - if (tempdir == NULL) - tempdir = getenv ("TEMP"); - if (tempdir == NULL) - tempdir = getenv ("TMP"); - if (tempdir == NULL) - tempdir = DEFAULT_TMPDIR; - else - tempdir = concat (tempdir, "/", ""); + if (tempdir == NULL) { + tempdir = getenv ("TMPDIR"); + if (tempdir == NULL) + tempdir = getenv ("TEMP"); + if (tempdir == NULL) + tempdir = getenv ("TMP"); + if (tempdir == NULL) + tempdir = DEFAULT_TMPDIR; + else + tempdir = concat (tempdir, "/", ""); + } keep_tempfiles = 0; @@ -401,14 +421,32 @@ if (!tempbase) { int fd; - char *tmpdir = getenv ("TEMPDIR"); - if (!tmpdir) - tmpdir = "/tmp"; - tempbase = concat (tmpdir, "/txidxXXXXXX"); + if (tempdir == NULL) { + tempdir = getenv ("TMPDIR"); + if (tempdir == NULL) + tempdir = getenv ("TEMP"); + if (tempdir == NULL) + tempdir = getenv ("TMP"); + if (tempdir == NULL) + tempdir = DEFAULT_TMPDIR; + else + tempdir = concat (tempdir, "/", ""); + } + + tempbase = concat (tempdir, "txidxXXXXXX", ""); + +#ifdef WIN32 + if (! _mktemp(tempbase)) + pfatal_with_name (tempbase); + fd = _open(tempbase, _O_CREAT | _O_BINARY, _S_IREAD | _S_IWRITE); +#else fd = mkstemp (tempbase); +#endif if (fd == -1) pfatal_with_name (tempbase); + + close(fd); } sprintf (tempsuffix, ".%d", count); @@ -431,7 +469,7 @@ /* Compare LINE1 and LINE2 according to the specified set of keyfields. */ -int +int CDECL compare_full (line1, line2) char **line1, **line2; { @@ -464,7 +502,7 @@ For positional sorting, assumes that the order of the lines in core reflects their nominal order. */ -int +int CDECL compare_prepared (line1, line2) struct lineinfo *line1, *line2; { @@ -1672,6 +1710,8 @@ xexit (1); } +#if ! defined(KPATHSEA) || ! defined(WIN32) + /* Return a newly-allocated string whose contents concatenate those of S1, S2, S3. */ @@ -1689,6 +1729,8 @@ return result; } + +#endif #if !defined (HAVE_STRCHR) char * Binary files c:\source\TeXLive\Build\source\TeX/utils/vlna/vlna.dvi and ./utils/vlna/vlna.dvi differ