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 <win32lib.h>
+// 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 <win32lib.h>
+
 #include <stdio.h>
 #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 <windows.h>
-#    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 <kpathsea/config.h>
 #include <kpathsea/c-fopen.h>
 #include <kpathsea/c-ctype.h>
-#include <kpathsea/c-pathch.h>
 #include <kpathsea/cnf.h>
 #include <kpathsea/db.h>
 #include <kpathsea/hash.h>
@@ -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 <kpathsea/tex-file.h>
 #include <kpathsea/variable.h>
 
-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 <kpathsea/config.h>
-
-#ifdef KPSE_DEBUG /* whole file */
+#include <kpathsea/c-pathch.h>
+#include <kpathsea/remote.h>
 
 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 <kpathsea/config.h>
 #include <kpathsea/c-ctype.h>
 
@@ -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 <ret.size; b++)
-    ret.buckets[b] = NULL;
-    
+  for (b = 0; b <ret->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 <kpathsea/c-proto.h>
 #include <kpathsea/types.h>
+#include <kpathsea/str-list.h>
 
+#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 <kpathsea/config.h>
 #include <kpathsea/absolute.h>
-#include <kpathsea/c-auto.h>
 #include <kpathsea/c-ctype.h>
 #include <kpathsea/c-dir.h>
 #include <kpathsea/c-errno.h>
@@ -34,6 +33,7 @@
 #include <kpathsea/proginit.h>
 #include <kpathsea/progname.h>
 #include <kpathsea/readable.h>
+#include <kpathsea/remote.h>
 #include <kpathsea/str-list.h>
 #include <kpathsea/str-llist.h>
 #include <kpathsea/systypes.h>
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 <kpathsea/pathsearch.h>
 /* For kpse_reset_progname */
 #include <kpathsea/tex-file.h>
+#ifdef HASH_SHARED
+#include <kpathsea/hash.h>
+#endif
 
 #if defined (WIN32) || defined (DJGPP)
 #include <kpathsea/c-pathmx.h>
@@ -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 <kpathsea/config.h>
 #include <kpathsea/c-stat.h>
 #include <kpathsea/pathsearch.h>
+#include <kpathsea/c-pathch.h>
 #include <kpathsea/readable.h>
 #include <kpathsea/tex-hush.h>
 #include <kpathsea/truncate.h>
@@ -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 <kpathsea/config.h>
 #include <kpathsea/c-pathch.h>
 
+#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 <kpathsea/c-ctype.h>
+#include <kpathsea/c-pathmx.h>
 #include <kpathsea/line.h>
 #include <kpathsea/readable.h>
 #include <kpathsea/variable.h>
@@ -45,7 +46,11 @@
 #elif defined (pdfeTeX)
 #include <pdfetexdir/pdfetexextra.h>
 #elif defined (Omega)
+#ifdef OLD_OMEGA
+#include <omegadir-1.15/omegaextra.h>
+#else
 #include <omegadir/omegaextra.h>
+#endif
 #elif defined (eOmega)
 #include <eomegadir/eomegaextra.h>
 #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 %&<dumpname> 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, &timestatp, 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 <config.h>
 
+#ifdef FPTEX
+#include <win32lib.h>
+#else
 #ifdef MIKTEX
 #include <gnu-miktex.h>
 #define S_ISDIR(x) ((x)&_S_IFDIR) 
@@ -34,6 +37,7 @@
    this Microsoft-ism here.  */
 extern char *substring ();
 #endif
+#endif
 
 /* <unistd.h> 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 <pwd.h>
 #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 <head> 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 <link> 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[] = "<dl>\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., &uml;.  */
 
-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 ("&#140;", command);
+        add_word_args ("&#140;", command);
       else if (strcmp (command, "oe") == 0)
-        add_word ("&#156;", command);
+        add_word_args ("&#156;", 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 <kama@hippo.fido.de>.  */
 
 #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 <Fabrice.Popineau@supelec.fr>
 # 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