[packages/texlive/TEXLIVE_20080816] add types and missing includes patches (fixes build with gcc15/c23); rel 45
atler
atler at pld-linux.org
Fri Sep 26 20:55:15 CEST 2025
commit 4566fd19e445b7d886fc88a672ef237ffd5beed9
Author: Jan Palus <atler at pld-linux.org>
Date: Fri Sep 26 20:53:10 2025 +0200
add types and missing includes patches (fixes build with gcc15/c23); rel 45
includes.patch | 42 +
texlive.spec | 18 +-
types.patch | 3722 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 3781 insertions(+), 1 deletion(-)
---
diff --git a/texlive.spec b/texlive.spec
index 4ecd853..162a6f3 100644
--- a/texlive.spec
+++ b/texlive.spec
@@ -22,7 +22,7 @@ Summary(pt_BR.UTF-8): Sistema de typesetting TeX e formatador de fontes MetaFont
Summary(tr.UTF-8): TeX dizgi sistemi ve MetaFont yazıtipi biçimlendiricisi
Name: texlive
Version: 20080816
-Release: 44
+Release: 45
Epoch: 1
License: distributable
Group: Applications/Publishing/TeX
@@ -90,6 +90,8 @@ Patch18: %{name}-open.patch
Patch19: %{name}-info.patch
Patch20: %{name}-throw.patch
Patch21: python3.patch
+Patch22: types.patch
+Patch23: includes.patch
URL: https://tug.org/texlive/
BuildRequires: autoconf
BuildRequires: automake
@@ -6846,6 +6848,8 @@ lzma -dc %{SOURCE0} | tar xf - -C ..
%patch -P18 -p1
%patch -P19 -p1
%patch -P20 -p1
+%patch -P22 -p1
+%patch -P23 -p1
CURDIR=$(pwd)
cd utils/xindy/make-rules/alphabets
@@ -6872,6 +6876,18 @@ cat ax*.m4 > acinclude.m4
%{__autoconf}
%{__automake}
cd ../..
+cd libs/obsdcompat
+%{__aclocal}
+%{__autoconf}
+cd ../..
+cd texk/xdvik
+%{__aclocal} -I../m4
+%{__autoconf}
+cd ../..
+cd texk/web2c
+%{__aclocal} -I../m4
+%{__autoconf}
+cd ../..
%ifarch ppc ppc64
# clisp does not work properly on forge
diff --git a/includes.patch b/includes.patch
new file mode 100644
index 0000000..c8f3457
--- /dev/null
+++ b/includes.patch
@@ -0,0 +1,42 @@
+--- texlive-20080816-source/texk/kpathsea/tex-make.c.orig 2008-05-31 18:15:55.000000000 +0200
++++ texlive-20080816-source/texk/kpathsea/tex-make.c 2025-09-23 23:46:48.878392977 +0200
+@@ -27,6 +27,7 @@
+ #include <kpathsea/tex-make.h>
+ #include <kpathsea/variable.h>
+
++#include <sys/wait.h>
+
+ /* We never throw away stdout, since that is supposed to be the filename
+ found, if all is successful. This variable controls whether stderr
+--- texlive-20080816-source/texk/xdvipdfmx/src/epdf.c.orig 2008-05-25 17:00:35.000000000 +0200
++++ texlive-20080816-source/texk/xdvipdfmx/src/epdf.c 2025-09-26 01:37:28.977159601 +0200
+@@ -42,6 +42,7 @@
+
+ #include "pdfobj.h"
+ #include "pdfdev.h"
++#include "pdfdoc.h"
+ #include "pdfdraw.h"
+ #include "pdfparse.h"
+
+--- texlive-20080816-source/texk/xdvipdfmx/src/pdfdev.c.orig 2008-06-18 16:25:06.000000000 +0200
++++ texlive-20080816-source/texk/xdvipdfmx/src/pdfdev.c 2025-09-26 01:39:00.781127346 +0200
+@@ -52,6 +52,8 @@
+
+ #include "pdfdev.h"
+
++#include "dvi.h"
++
+ static int verbose = 0;
+
+ void
+--- texlive-20080816-source/texk/xdvipdfmx/src/spc_dvips.c.orig 2008-06-24 15:12:22.000000000 +0200
++++ texlive-20080816-source/texk/xdvipdfmx/src/spc_dvips.c 2025-09-26 01:43:02.704025085 +0200
+@@ -46,6 +46,8 @@
+ #include "pdfcolor.h"
+ #include "pdfdev.h"
+
++#include "epdf.h"
++
+ #include "specials.h"
+ #include "spc_util.h"
+ #include "mfileio.h"
diff --git a/types.patch b/types.patch
new file mode 100644
index 0000000..2b2859f
--- /dev/null
+++ b/types.patch
@@ -0,0 +1,3722 @@
+--- texlive-20080816-source/texk/kpathsea/c-std.h.orig 2008-05-04 19:19:13.000000000 +0200
++++ texlive-20080816-source/texk/kpathsea/c-std.h 2025-09-23 22:21:22.369548841 +0200
+@@ -90,8 +90,8 @@
+ #ifndef WIN32
+ /* `popen' and `pclose' are part of POSIX.2, not POSIX.1. So
+ STDC_HEADERS isn't enough. */
+-extern FILE *popen ();
+-extern int pclose ();
++extern FILE *popen (const char*, const char*);
++extern int pclose (FILE*);
+ #endif /* not WIN32 */
+ #endif /* not VMS */
+
+--- texlive-20080816-source/libs/obsdcompat/configure.ac.orig 2006-12-26 00:52:20.000000000 +0100
++++ texlive-20080816-source/libs/obsdcompat/configure.ac 2025-09-23 22:49:08.815694868 +0200
+@@ -259,7 +259,7 @@
+ AC_MSG_CHECKING(compiler and flags for sanity)
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([
+-#include <stdio.h>
++#include <stdlib.h>
+ int main(){exit(0);}
+ ])],
+ [ AC_MSG_RESULT(yes) ],
+@@ -322,6 +322,7 @@
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ #include <stdio.h>
++#include <stdlib.h>
+ int main(void){char b[5];snprintf(b,5,"123456789");exit(b[4]!='\0');}
+ ]])],
+ [AC_MSG_RESULT(yes)],
+--- texlive-20080816-source/texk/xdvik/acinclude.m4.orig 2008-07-01 17:42:36.000000000 +0200
++++ texlive-20080816-source/texk/xdvik/acinclude.m4 2025-09-23 23:06:19.389466186 +0200
+@@ -237,7 +237,8 @@
+ AC_CACHE_VAL(xdvi_cv_bitmap_type,
+ [AC_TRY_RUN(
+ [#include <stdio.h>
+-main()
++#include <stdlib.h>
++int main()
+ {
+ FILE *f=fopen("conftestval", "w");
+ if (!f) exit(1);
+--- texlive-20080816-source/texk/kpathsea/xputenv.c.orig 2008-05-04 19:19:13.000000000 +0200
++++ texlive-20080816-source/texk/kpathsea/xputenv.c 2025-09-24 00:14:38.449766104 +0200
+@@ -24,7 +24,7 @@
+ #else
+ /* Avoid implicit declaration warning. But since some systems do
+ declare it, don't use a prototype, for fear of conflicts. */
+-extern int putenv ();
++extern int putenv (char*);
+ #endif /* not WIN32 */
+
+ /* These record the strings we've set and have to keep around.
+--- texlive-20080816-source/texk/web2c/web2c/web2c.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/web2c/web2c/web2c.h 2025-09-24 00:31:09.067648782 +0200
+@@ -66,7 +66,7 @@
+
+ extern void get_string_literal P1H(char*);
+ extern void get_single_char P1H(char*);
+-extern void get_return_type P1H(char*);
++extern void get_result_type P1H(char*);
+
+ /* No prototypes for these two. As used, neither takes arguments. */
+ extern int yylex(), yyparse();
+--- texlive-20080816-source/texk/web2c/web2c/makecpool.c.orig 2008-05-20 20:10:52.000000000 +0200
++++ texlive-20080816-source/texk/web2c/web2c/makecpool.c 2025-09-24 00:55:23.530763425 +0200
+@@ -45,6 +45,7 @@
+ "#include <string.h>\n"
+ "#include \"%s\"\n"
+ "\n"
++ "extern strnumber makestring(void);\n"
+ "static const char *poolfilearr[] = {\n", argv[0], filename,
+ headername, headername);
+ while (fgets(data, 1024, fh)) {
+--- texlive-20080816-source/texk/web2c/window/x11-Xt.c.orig 2008-02-29 16:40:00.000000000 +0100
++++ texlive-20080816-source/texk/web2c/window/x11-Xt.c 2025-09-24 02:43:26.048781543 +0200
+@@ -79,10 +79,10 @@
+ };
+
+ static void mf_events ();
+-static void mf_mapstatus ();
++static void mf_mapstatus P4H(Widget, XtPointer, XEvent*, Boolean*);
+ static void mf_newpixmap P2H(unsigned int, unsigned int);
+ static void mf_redraw ();
+-static void mf_repaint ();
++static void mf_repaint P4H(Widget, XtPointer, XEvent*, Boolean*);
+
+ /* Return 1 if display opened successfully, else 0. */
+
+@@ -310,7 +310,7 @@
+ }
+
+ static void
+-mf_repaint P3C(Widget, w, XtPointer, data, XEvent*, ev)
++mf_repaint P4C(Widget, w, XtPointer, data, XEvent*, ev, Boolean*, cd)
+ {
+ if (!mf_mapped || !ev || ev->type != Expose)
+ return;
+@@ -330,7 +330,7 @@
+
+
+ static void
+-mf_mapstatus P3C(Widget, w, XtPointer, data, XEvent*, ev)
++mf_mapstatus P4C(Widget, w, XtPointer, data, XEvent*, ev, Boolean*, cd)
+ {
+ switch (ev->type)
+ {
+--- texlive-20080816-source/texk/web2c/c-auto.in.orig 2008-06-26 12:21:46.000000000 +0200
++++ texlive-20080816-source/texk/web2c/c-auto.in 2025-09-24 13:11:08.217371932 +0200
+@@ -218,4 +218,7 @@
+ #undef inline
+ #endif
+
++/* Define to 1 if your compiler understands prototypes. */
++#undef HAVE_PROTOTYPES
++
+ #endif /* !WEB2C_C_AUTO_H */
+--- texlive-20080816-source/texk/web2c/configure.in.orig 2008-07-08 20:21:45.000000000 +0200
++++ texlive-20080816-source/texk/web2c/configure.in 2025-09-24 13:14:10.499436001 +0200
+@@ -50,6 +50,17 @@
+ dnl pdfTeX likes inline functions in C code.
+ AC_C_INLINE
+
++# Check whether prototypes work.
++AC_MSG_CHECKING(whether the compiler accepts prototypes)
++AC_CACHE_VAL(kb_cv_c_prototypes,
++[AC_TRY_COMPILE([#include <stdarg.h>], [extern void foo(int i,...);],
++ kb_cv_c_prototypes=yes, kb_cv_c_prototypes=no)])dnl
++AC_MSG_RESULT($kb_cv_c_prototypes)
++if test "$kb_cv_c_prototypes" = yes; then
++ AC_DEFINE([HAVE_PROTOTYPES], 1,
++ [Define to 1 if your compiler understands prototypes.])
++fi
++
+ dnl These are standard among *NIX systems, but not when cross-compiling
+ AC_DEFUN([CF_SUBST],
+ [AC_MSG_CHECKING(for $1 (symbol $2))
+--- texlive-20080816-source/texk/web2c/mpdir/utils.c.orig 2008-04-11 18:33:03.000000000 +0200
++++ texlive-20080816-source/texk/web2c/mpdir/utils.c 2025-09-24 13:49:52.086311439 +0200
+@@ -19,6 +19,8 @@
+ $Id $
+ */
+
++#include "config.h"
++
+ #ifdef HAVE_ASPRINTF /* asprintf is not defined in openbsd-compat.h, but in stdio.h */
+ # include <stdio.h>
+ #endif
+--- texlive-20080816-source/texk/web2c/omegadir/omegamem.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/web2c/omegadir/omegamem.h 2025-09-24 14:07:21.644400824 +0200
+@@ -24,10 +24,10 @@
+ extern boolean new_input_line (FILE *, halfword);
+ /* argument(s) added to function, by team 18 */
+ extern boolean newinputln (FILE*, halfword, halfword, boolean);
+-extern int getc_two ();
++extern int getc_two P1H(FILE*);
+ /* argument(s) added to function, by team 18 */
+ extern int getfilemode (FILE*, int);
+-extern void ungetc_two ();
++extern void ungetc_two P2H(int, FILE*);
+ extern int ocptemp;
+
+ #define newinputline(stream, mode, flag) new_input_line (stream, mode)
+--- texlive-20080816-source/texk/web2c/omegadir/omega.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/web2c/omegadir/omega.c 2025-09-24 14:21:14.083395464 +0200
+@@ -254,7 +254,7 @@
+ }
+
+
+-extern boolean zpnewinputln ();
++extern boolean zpnewinputln (alphafile,halfword,halfword,boolean);
+
+ boolean
+ newinputln P4C(FILE *,f, halfword,themode, halfword,translation, boolean,bypass)
+@@ -337,7 +337,7 @@
+ return true;
+ }
+
+-extern memoryword ziniteqtbentry () ;
++extern memoryword ziniteqtbentry (halfword) ;
+
+ hashword hashtable[HASHTABLESIZE];
+
+--- texlive-20080816-source/texk/web2c/alephdir/aleph.c.orig 2006-05-25 18:11:33.000000000 +0200
++++ texlive-20080816-source/texk/web2c/alephdir/aleph.c 2025-09-24 14:27:49.861362946 +0200
+@@ -130,7 +130,7 @@
+ ungetc((c>>8), f);
+ }
+
+-extern boolean zpnewinputln ();
++extern boolean zpnewinputln (alphafile,halfword,halfword,boolean);
+
+ boolean
+ newinputln P4C(FILE *,f, halfword,themode, halfword,translation, boolean,bypass)
+@@ -192,7 +192,7 @@
+ return true;
+ }
+
+-extern memoryword ziniteqtbentry () ;
++extern memoryword ziniteqtbentry (halfword) ;
+
+ hashword hashtable[HASHTABLESIZE];
+
+--- texlive-20080816-source/texk/web2c/alephdir/alephmem.h.orig 2006-05-25 18:11:33.000000000 +0200
++++ texlive-20080816-source/texk/web2c/alephdir/alephmem.h 2025-09-24 16:00:39.086658238 +0200
+@@ -21,11 +21,11 @@
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+
+
+-extern boolean new_input_line ();
+-extern boolean newinputln ();
+-extern int getc_two ();
+-extern int getfilemode ();
+-extern void ungetc_two ();
++extern boolean new_input_line (FILE*, halfword);
++extern boolean newinputln (FILE *, halfword, halfword, boolean);
++extern int getc_two (FILE*);
++extern int getfilemode (FILE*, int);
++extern void ungetc_two (int, FILE*);
+ extern int ocptemp;
+
+ #define newinputline(stream, mode, flag) new_input_line (stream, mode)
+@@ -42,24 +42,24 @@
+ } hashword;
+
+ extern hashword hashtable[];
+-extern hashword *createhashpos();
+-extern hashword *createeqtbpos();
+-extern hashword *createxeqlevel();
++extern hashword *createhashpos(int);
++extern hashword *createeqtbpos(int);
++extern hashword *createxeqlevel(int);
+ extern void inithhashtable();
+ extern void dumphhashtable();
+ extern void undumphhashtable();
+-extern void allocatefonttable();
+-extern void dumpfonttable();
+-extern void undumpfonttable();
+-extern void allocatefontsorttable();
+-extern void dumpfontsorttable();
+-extern void undumpfontsorttable();
+-extern void allocateocptable();
+-extern void dumpocptable();
+-extern void undumpocptable();
+-extern void odateandtime();
++extern void allocatefonttable(int, int);
++extern void dumpfonttable(int, int);
++extern void undumpfonttable(int);
++extern void allocatefontsorttable(int, int);
++extern void dumpfontsorttable(int, int);
++extern void undumpfontsorttable(int);
++extern void allocateocptable(int, int);
++extern void dumpocptable(int);
++extern void undumpocptable(int);
++extern void odateandtime(int, int, int, int);
+ extern void btestin();
+-extern void runexternalocp();
++extern void runexternalocp(string);
+
+ #define initeqtbtable() inithhashtable();
+ #define dumpeqtbtable() dumphhashtable();
+--- texlive-20080816-source/texk/web2c/pdftexdir/pdftex.web.orig 2008-07-16 16:09:41.000000000 +0200
++++ texlive-20080816-source/texk/web2c/pdftexdir/pdftex.web 2025-09-24 16:14:12.076588515 +0200
+@@ -10751,7 +10751,7 @@
+ @!save_scanner_status:small_number; {|scanner_status| upon entry}
+ @!save_def_ref: pointer; {|def_ref| upon entry, important if inside `\.{\\message}'}
+ @!save_warning_index: pointer;
+-@!bool: boolean; {temp boolean}
++@!boolv: boolean; {temp boolean}
+ @!i: integer; {first temp integer}
+ @!j: integer; {second temp integer}
+ @!b:pool_pointer; {base of temporary string}
+@@ -10935,7 +10935,7 @@
+ save_warning_index := warning_index;
+ save_def_ref := def_ref;
+ save_cur_string;
+- bool := scan_keyword("file");
++ boolv := scan_keyword("file");
+ scan_pdf_ext_toks;
+ s := tokens_to_string(def_ref);
+ delete_token_ref(def_ref);
+@@ -10943,7 +10943,7 @@
+ warning_index := save_warning_index;
+ scanner_status := save_scanner_status;
+ b := pool_ptr;
+- getmd5sum(s, bool);
++ getmd5sum(s, boolv);
+ link(garbage) := str_toks(b);
+ flush_str(s);
+ ins_list(link(temp_head));
+@@ -11006,7 +11006,7 @@
+ save_def_ref := def_ref;
+ save_cur_string;
+ {scan for icase}
+- bool := scan_keyword("icase");
++ boolv := scan_keyword("icase");
+ {scan for subcount}
+ i := -1; {default for subcount}
+ if scan_keyword("subcount") then begin
+@@ -11023,7 +11023,7 @@
+ warning_index := save_warning_index;
+ scanner_status := save_scanner_status;
+ b := pool_ptr;
+- matchstrings(s, t, i, bool);
++ matchstrings(s, t, i, boolv);
+ link(garbage) := str_toks(b);
+ flush_str(t);
+ flush_str(s);
+@@ -11062,7 +11062,7 @@
+ end;
+ pdf_colorstack_init_code:
+ begin
+- bool := scan_keyword("page");
++ boolv := scan_keyword("page");
+ if scan_keyword("direct") then
+ cur_val := direct_always
+ else
+@@ -11080,7 +11080,7 @@
+ def_ref := save_def_ref;
+ warning_index := save_warning_index;
+ scanner_status := save_scanner_status;
+- cur_val := newcolorstack(s, cur_val, bool);
++ cur_val := newcolorstack(s, cur_val, boolv);
+ flush_str(s);
+ cur_val_level := int_val;
+ if cur_val < 0 then begin
+--- texlive-20080816-source/texk/web2c/synctexdir/synctex.mk.orig 2008-06-21 02:42:36.000000000 +0200
++++ texlive-20080816-source/texk/web2c/synctexdir/synctex.mk 2025-09-24 19:02:53.100975178 +0200
+@@ -60,7 +60,7 @@
+ echo "s|\#include \"texmfmp.h\"|&\\"> synctex_sed_command.txt;\
+ echo "/* Start of SyncTeX Section */\\" >> synctex_sed_command.txt;\
+ echo "\#define __SyncTeX__\\" >> synctex_sed_command.txt;\
+- echo "\#include \"$(synctex_dir)/synctex-common.h\"\\" >> synctex_sed_command.txt;\
++ echo "\#include \"$(synctex_dir)/synctex.h\"\\" >> synctex_sed_command.txt;\
+ echo "/* End of SyncTeX Section */|g" >> synctex_sed_command.txt
+
+ ### SyncTeX support in tex
+--- texlive-20080816-source/texk/web2c/synctexdir/synctex.h.orig 2008-06-21 02:42:36.000000000 +0200
++++ texlive-20080816-source/texk/web2c/synctexdir/synctex.h 2025-09-24 21:42:29.364633172 +0200
+@@ -43,6 +43,8 @@
+
+ #include "synctex-common.h"
+
++typedef integer halfword;
++
+ /* Send this message when starting a new input. */
+ extern void synctexstartinput(void);
+
+--- texlive-20080816-source/texk/web2c/pdftexdir/utils.c.orig 2008-05-08 16:25:16.000000000 +0200
++++ texlive-20080816-source/texk/web2c/pdftexdir/utils.c 2025-09-24 21:46:52.018120052 +0200
+@@ -18,6 +18,7 @@
+ Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
++#include "config.h"
+ #include "openbsd-compat.h"
+ #ifdef HAVE_ASPRINTF /* asprintf is not defined in openbsd-compat.h, but in stdio.h */
+ # include <stdio.h>
+--- texlive-20080816-source/texk/web2c/xetexdir/XeTeX_ext.h.orig 2008-05-08 15:28:50.000000000 +0200
++++ texlive-20080816-source/texk/web2c/xetexdir/XeTeX_ext.h 2025-09-24 22:15:47.057709171 +0200
+@@ -277,7 +277,7 @@
+ int input_line(UFILE* f);
+ void makeutf16name();
+
+- int initpool();
++ int initpool(int);
+ void terminatefontmanager();
+ int maketexstring(const char* s);
+
+--- texlive-20080816-source/texk/web2c/xetexdir/jpegimage.c.orig 2007-11-21 13:32:29.000000000 +0100
++++ texlive-20080816-source/texk/web2c/xetexdir/jpegimage.c 2025-09-24 22:18:17.716661089 +0200
+@@ -74,6 +74,8 @@
+ * Level 2.
+ */
+
++#include "config.h"
++
+ #include "mfileio.h"
+ #include "numbers.h"
+
+--- texlive-20080816-source/texk/web2c/luatexdir/luatex.web.orig 2008-07-17 23:41:42.000000000 +0200
++++ texlive-20080816-source/texk/web2c/luatexdir/luatex.web 2025-09-24 22:28:27.428944538 +0200
+@@ -11195,7 +11195,7 @@
+ @!save_scanner_status:small_number; {|scanner_status| upon entry}
+ @!save_def_ref: pointer; {|def_ref| upon entry, important if inside `\.{\\message}'}
+ @!save_warning_index: pointer;
+-@!bool: boolean; {temp boolean}
++@!boolv: boolean; {temp boolean}
+ @!i: integer; {first temp integer}
+ @!j: integer; {second temp integer}
+ @!b:pool_pointer; {base of temporary string}
+@@ -11262,7 +11262,7 @@
+ job_name_code: if job_name=0 then open_log_file;
+ pdf_colorstack_init_code:
+ begin
+- bool := scan_keyword("page");
++ boolv := scan_keyword("page");
+ if scan_keyword("direct") then
+ cur_val := direct_always
+ else
+@@ -11280,7 +11280,7 @@
+ def_ref := save_def_ref;
+ warning_index := save_warning_index;
+ scanner_status := save_scanner_status;
+- cur_val := newcolorstack(s, cur_val, bool);
++ cur_val := newcolorstack(s, cur_val, boolv);
+ flush_str(s);
+ cur_val_level := int_val;
+ if cur_val < 0 then begin
+--- texlive-20080816-source/texk/web2c/luatexdir/ptexlib.h.orig 2008-03-24 16:47:15.000000000 +0100
++++ texlive-20080816-source/texk/web2c/luatexdir/ptexlib.h 2025-09-24 22:36:56.393721296 +0200
+@@ -606,6 +606,7 @@
+ void pdf_print(str_number n);
+ void pdf_print_str(str_number n);
+ void pdf_print_int(integer n);
++void pdf_print_real(integer, integer);
+
+ /* textoken.c */
+
+--- texlive-20080816-source/texk/web2c/luatexdir/luatex.h.orig 2008-03-24 16:47:15.000000000 +0100
++++ texlive-20080816-source/texk/web2c/luatexdir/luatex.h 2025-09-24 22:38:30.374225290 +0200
+@@ -72,11 +72,11 @@
+
+ extern int **ocp_tables;
+
+-extern void allocate_ocp_table();
+-extern void dump_ocp_table();
+-extern void undump_ocp_table();
++extern void allocate_ocp_table(int, int);
++extern void dump_ocp_table(int);
++extern void undump_ocp_table(int);
+
+-extern void run_external_ocp();
++extern void run_external_ocp(string);
+ extern void b_test_in();
+
+ /* Additions to texmfmp.h for pdfTeX */
+--- texlive-20080816-source/texk/web2c/luatexdir/font/texfont.h.orig 2008-03-24 16:47:15.000000000 +0100
++++ texlive-20080816-source/texk/web2c/luatexdir/font/texfont.h 2025-09-24 23:40:01.566535211 +0200
+@@ -372,6 +372,9 @@
+ extern void set_charinfo_kerns (charinfo *ci, kerninfo *val);
+ extern void set_charinfo_packets (charinfo *ci, real_eight_bits *val);
+ extern void set_charinfo_extensible (charinfo *ci, int a, int b, int c, int d);
++extern void set_charinfo_ef (charinfo *ci, scaled val);
++extern void set_charinfo_lp (charinfo *ci, scaled val);
++extern void set_charinfo_rp (charinfo *ci, scaled val);
+
+ #define set_char_used(f,a,b) set_charinfo_used(get_charinfo(f,a),b)
+
+@@ -389,6 +392,9 @@
+ extern kerninfo *get_charinfo_kerns (charinfo *ci);
+ extern real_eight_bits *get_charinfo_packets (charinfo *ci);
+ extern integer get_charinfo_extensible (charinfo *ci, int which);
++extern integer get_charinfo_ef (charinfo *ci);
++extern integer get_charinfo_rp (charinfo *ci);
++extern integer get_charinfo_lp (charinfo *ci);
+
+ extern integer ext_top (internal_font_number f, integer c);
+ extern integer ext_bot (internal_font_number f, integer c);
+--- texlive-20080816-source/texk/web2c/luatexdir/utils.c.orig 2008-03-24 16:47:15.000000000 +0100
++++ texlive-20080816-source/texk/web2c/luatexdir/utils.c 2025-09-24 23:54:00.191097130 +0200
+@@ -20,6 +20,7 @@
+ $Id: utils.c 7124 2008-03-24 15:47:15Z martin $
+ */
+
++#include "config.h"
+ #include "sys/types.h"
+ #ifndef __MINGW32__
+ #include "sysexits.h"
+--- texlive-20080816-source/libs/luafontforge/fontforge/fontforge/splineutil2.c.orig 2008-03-24 16:47:15.000000000 +0100
++++ texlive-20080816-source/libs/luafontforge/fontforge/fontforge/splineutil2.c 2025-09-24 23:56:38.809676931 +0200
+@@ -3607,7 +3607,7 @@
+ Spline *spline, *first, *next;
+ BasePoint tp;
+ SplinePoint *temp;
+- int bool;
++ int boolv;
+ /* reverse the splineset so that what was the start point becomes the end */
+ /* and vice versa. This entails reversing every individual spline, and */
+ /* each point */
+@@ -3620,12 +3620,12 @@
+ tp = spline->from->nextcp;
+ spline->from->nextcp = spline->from->prevcp;
+ spline->from->prevcp = tp;
+- bool = spline->from->nonextcp;
++ boolv = spline->from->nonextcp;
+ spline->from->nonextcp = spline->from->noprevcp;
+- spline->from->noprevcp = bool;
+- bool = spline->from->nextcpdef;
++ spline->from->noprevcp = boolv;
++ boolv = spline->from->nextcpdef;
+ spline->from->nextcpdef = spline->from->prevcpdef;
+- spline->from->prevcpdef = bool;
++ spline->from->prevcpdef = boolv;
+
+ for ( ; spline!=NULL && spline!=first; spline=next ) {
+ next = spline->to->next;
+@@ -3634,12 +3634,12 @@
+ tp = spline->to->nextcp;
+ spline->to->nextcp = spline->to->prevcp;
+ spline->to->prevcp = tp;
+- bool = spline->to->nonextcp;
++ boolv = spline->to->nonextcp;
+ spline->to->nonextcp = spline->to->noprevcp;
+- spline->to->noprevcp = bool;
+- bool = spline->to->nextcpdef;
++ spline->to->noprevcp = boolv;
++ boolv = spline->to->nextcpdef;
+ spline->to->nextcpdef = spline->to->prevcpdef;
+- spline->to->prevcpdef = bool;
++ spline->to->prevcpdef = boolv;
+ }
+
+ temp = spline->to;
+--- texlive-20080816-source/libs/luafontforge/fontforge/Unicode/ustring.c.orig 2008-03-24 16:47:15.000000000 +0100
++++ texlive-20080816-source/libs/luafontforge/fontforge/Unicode/ustring.c 2025-09-25 00:00:13.536540897 +0200
+@@ -392,7 +392,7 @@
+ char buf[60], *pt, *ret;
+ const unichar_t *upt;
+ double val;
+- extern double strtod(); /* Please don't delete this, not all of us have good ansi headers */
++ extern double strtod(const char*, char**); /* Please don't delete this, not all of us have good ansi headers */
+
+ for ( upt=str, pt=buf; *upt<128 && *upt!='\0'; )
+ *pt++ = *upt++;
+@@ -411,7 +411,7 @@
+ char buf[60], *pt, *ret;
+ const unichar_t *upt;
+ long val;
+- extern long strtol(); /* Please don't delete this, not all of us have good ansi headers */
++ extern long strtol(const char*, char**, int); /* Please don't delete this, not all of us have good ansi headers */
+
+ for ( upt=str, pt=buf; *upt<128 && *upt!='\0' && pt<buf+sizeof(buf)-1; )
+ *pt++ = *upt++;
+--- texlive-20080816-source/texk/web2c/mpware/dmp.h.orig 2006-11-28 14:24:53.000000000 +0100
++++ texlive-20080816-source/texk/web2c/mpware/dmp.h 2025-09-25 00:03:54.229827158 +0200
+@@ -11,6 +11,7 @@
+
+ extern FILE *fsearch(char *nam, char *ext, int path_type);
+ extern void fsearch_init(int argc, char **argv);
++extern void quit(char *msg1, char *msg2, char *msg3);
+
+ #define POOLMAX 65000 /* total characters in all font and char names */
+
+--- texlive-20080816-source/texk/web2c/otps/routines.h.orig 2006-05-25 23:55:05.000000000 +0200
++++ texlive-20080816-source/texk/web2c/otps/routines.h 2025-09-25 00:11:26.489517837 +0200
+@@ -76,15 +76,15 @@
+ left val; } lcell;
+ typedef lcell *llist;
+
+-extern list cons();
+-extern list list1();
+-extern list list2();
+-extern list append();
+-extern list append1();
++extern list cons(int, list);
++extern list list1(int);
++extern list list2(int, int);
++extern list append(list, list);
++extern list append1(list, int);
+
+-extern llist lcons();
++extern llist lcons(left, llist);
+ extern llist llist1 P1H(left);
+-extern llist llist2();
++extern llist llist2(left, left);
+ extern llist lappend P2H(llist,llist);
+ extern llist lappend1 P2H(llist,left);
+
+@@ -98,7 +98,7 @@
+ extern left CompleteLeft P3H(left,int,int);
+ extern left BeginningLeft();
+ extern left EndLeft();
+-extern list gen_left();
++extern list gen_left(left);
+ extern void fill_in_left();
+ extern void out_left P1H(llist);
+ extern int no_lefts;
+--- texlive-20080816-source/texk/bibtex8/getopt.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/bibtex8/getopt.h 2025-09-25 00:26:13.012956028 +0200
+@@ -95,14 +95,7 @@
+ #define optional_argument 2
+
+ #if defined (__STDC__) && __STDC__
+-#ifdef __GNU_LIBRARY__
+-/* Many other libraries have conflicting prototypes for getopt, with
+- differences in the consts, in stdlib.h. To avoid compilation
+- errors, only prototype getopt for the GNU C library. */
+ extern int getopt (int argc, char *const *argv, const char *shortopts);
+-#else /* not __GNU_LIBRARY__ */
+-extern int getopt ();
+-#endif /* __GNU_LIBRARY__ */
+ extern int getopt_long (int argc, char *const *argv, const char *shortopts,
+ const struct option *longopts, int *longind);
+ extern int getopt_long_only (int argc, char *const *argv,
+--- texlive-20080816-source/texk/cjkutils/hbf2gf/hbf.c.orig 2006-10-21 12:06:15.000000000 +0200
++++ texlive-20080816-source/texk/cjkutils/hbf2gf/hbf.c 2025-09-25 00:28:56.824724151 +0200
+@@ -82,7 +82,7 @@
+
+ #define reg register
+
+-typedef int bool;
++typedef int bool_t;
+ #define TRUE 1
+ #define FALSE 0
+
+@@ -176,8 +176,8 @@
+ BM_FILE *code_bm_file;
+ long code_offset;
+ CHAR_INDEX code_pos;
+- bool code_transposed;
+- bool code_inverted;
++ bool_t code_transposed;
++ bool_t code_inverted;
+ CODE_RANGE *code_next;
+ };
+
+@@ -222,7 +222,7 @@
+ #endif
+
+ static void add_b2r _((B2_RANGE **last_b2r, int start, int finish));
+-static bool add_code_range _((HBF_STRUCT *hbf, const char *line));
++static bool_t add_code_range _((HBF_STRUCT *hbf, const char *line));
+ static void add_property _((HBF_STRUCT *hbf, const char *lp));
+ static CHAR_INDEX b2_pos _((HBF_STRUCT *hbf, HBF_CHAR code));
+ static int b2_size _((B2_RANGE *b2r));
+@@ -235,17 +235,17 @@
+ static byte *local_buffer _((HBF_STRUCT *hbf));
+ static void invert _((byte *buffer, unsigned length));
+ #ifdef IN_MEMORY
+-static bool read_bitmap_file _((BM_FILE *bmf, FILE *f));
+-static bool copy_transposed
++static bool_t read_bitmap_file _((BM_FILE *bmf, FILE *f));
++static bool_t copy_transposed
+ _((HBF *hbf, byte *bitmap, const byte *source));
+ #else
+-static bool get_transposed _((HBF *hbf, FILE *f, byte *bitmap));
++static bool_t get_transposed _((HBF *hbf, FILE *f, byte *bitmap));
+ #endif
+-static bool match _((const char *lp, const char *sp));
+-static bool parse_file _((FILE *f, HBF_STRUCT *hbf));
++static bool_t match _((const char *lp, const char *sp));
++static bool_t parse_file _((FILE *f, HBF_STRUCT *hbf));
+ static FILE *path_open
+ _((const char *path, const char *filename, char **fullp));
+-static bool real_open _((const char *filename, HBF_STRUCT *hbf));
++static bool_t real_open _((const char *filename, HBF_STRUCT *hbf));
+
+ /* Error reporting */
+
+@@ -381,7 +381,7 @@
+ * String stuff
+ */
+
+-static bool
++static bool_t
+ match(lp, sp)
+ reg const char *lp;
+ reg const char *sp;
+@@ -649,7 +649,7 @@
+ char *bmfname;
+ #ifdef IN_MEMORY
+ #ifdef unix
+- bool from_pipe;
++ bool_t from_pipe;
+ #endif
+ #endif
+
+@@ -720,7 +720,7 @@
+ #ifdef IN_MEMORY
+ #define GRAIN_SIZE 512
+
+-static bool
++static bool_t
+ read_bitmap_file(bmf, f)
+ BM_FILE *bmf;
+ FILE *f;
+@@ -759,7 +759,7 @@
+ */
+
+ /* check that a code range fits within its bitmap file */
+-static bool
++static bool_t
+ too_short(hbf, cp)
+ HBF_STRUCT *hbf;
+ CODE_RANGE *cp;
+@@ -828,7 +828,7 @@
+ }
+ }
+
+-static bool
++static bool_t
+ add_code_range(hbf, line)
+ HBF_STRUCT *hbf;
+ const char *line;
+@@ -895,7 +895,7 @@
+ */
+
+ /* get line, truncating to len, and trimming trailing spaces */
+-static bool
++static bool_t
+ get_line(buf, len, f)
+ char *buf;
+ int len;
+@@ -925,7 +925,7 @@
+ }
+
+ /* get next non-COMMENT line */
+-static bool
++static bool_t
+ get_text_line(buf, len, f)
+ char *buf;
+ int len;
+@@ -937,7 +937,7 @@
+ return FALSE;
+ }
+
+-static bool
++static bool_t
+ get_property(line, keyword, hbf)
+ const char *line;
+ const char *keyword;
+@@ -951,7 +951,7 @@
+ return TRUE;
+ }
+
+-static bool
++static bool_t
+ get_bbox(line, keyword, bbox)
+ const char *line;
+ const char *keyword;
+@@ -994,7 +994,7 @@
+ * Anything after HBF_END_FONT is ignored.
+ */
+
+-static bool
++static bool_t
+ parse_file(f, hbf)
+ FILE *f;
+ reg HBF_STRUCT *hbf;
+@@ -1127,7 +1127,7 @@
+ }
+ }
+
+-static bool
++static bool_t
+ real_open(filename, hbf)
+ const char *filename;
+ reg HBF_STRUCT *hbf;
+@@ -1352,7 +1352,7 @@
+ }
+
+ #ifdef IN_MEMORY
+-static bool
++static bool_t
+ copy_transposed(hbf, bitmap, source)
+ HBF *hbf;
+ reg byte *bitmap;
+@@ -1401,7 +1401,7 @@
+ return TRUE;
+ }
+ #else /* ! IN_MEMORY */
+-static bool
++static bool_t
+ get_transposed(hbf, f, bitmap)
+ HBF *hbf;
+ FILE *f;
+--- texlive-20080816-source/texk/detex/detex.l.orig 2007-01-20 12:02:18.000000000 +0100
++++ texlive-20080816-source/texk/detex/detex.l 2025-09-26 02:09:27.045503307 +0200
+@@ -60,18 +60,18 @@
+ #endif
+
+ extern void SetEnvIgnore(char *sbEnvList);
+-extern int BeginEnv(char *sbEnv);
+-extern int EndEnv(char *sbEnv);
++int BeginEnv(char *sbEnv);
++int EndEnv(char *sbEnv);
+ extern void InputFile(char *sbFile);
+ extern void IncludeFile(char *sbFile);
+ extern void AddInclude(char *sbFile);
+-extern int InList(char *sbFile);
++int InList(char *sbFile);
+ extern void SetInputPaths();
+-extern int SeparateList(char *sbList,char **rgsbList ,char chSep,int csbMax);
+-extern FILE * TexOpen(char *sbFile);
+-extern char * SafeMalloc(int cch,char *sbMessage);
++int SeparateList(char *sbList,char **rgsbList ,char chSep,int csbMax);
++FILE * TexOpen(char *sbFile);
++char * SafeMalloc(int cch,char *sbMessage);
+ extern void Warning(char *sb1,char *sb2);
+-extern int ErrorExit(char *sb1);
++int ErrorExit(char *sb1);
+
+ #define LaBEGIN if (fLatex) BEGIN
+ #define CITEBEGIN if (fLatex && !fCite) BEGIN
+@@ -79,7 +79,6 @@
+ #define SPACE if (!fWord) putchar(' ')
+ #define NEWLINE if (!fWord) putchar('\n')
+
+-char *SafeMalloc();
+ #ifdef OS2
+ void yyless(int);
+ #endif
+@@ -271,12 +270,11 @@
+ ** If no input files are specified on the command line, process stdin.
+ ******/
+
+-main(cArgs,rgsbArgs)
++int main(cArgs,rgsbArgs)
+ int cArgs;
+ char *rgsbArgs[];
+ {
+ char *pch, *sbEnvList = DEFAULTENV, sbBadOpt[2];
+- FILE *TexOpen();
+ int fSawFile = 0, iArgs = 1;
+
+ /* get base name and decide what we are doing, detex or delatex */
+@@ -382,7 +380,7 @@
+ ** return the termination signal for lex.
+ ******/
+
+-yywrap()
++int yywrap()
+ {
+ (void)fclose(yyin);
+ if (cfp > 0) {
+@@ -432,7 +430,7 @@
+ ** is, sbCurrentEnv is set to sbEnv.
+ ******/
+
+-BeginEnv(sbEnv)
++int BeginEnv(sbEnv)
+ char *sbEnv;
+ {
+ int i;
+@@ -450,7 +448,7 @@
+ ** EndEnv -- checks to see if sbEnv is the current environment being ignored.
+ ******/
+
+-EndEnv(sbEnv)
++int EndEnv(sbEnv)
+ char *sbEnv;
+ {
+ if (!fLatex) return(0);
+@@ -468,7 +466,6 @@
+ InputFile(sbFile)
+ char *sbFile;
+ {
+- FILE *TexOpen();
+
+ if (!fFollow)
+ return;
+@@ -488,7 +485,6 @@
+ IncludeFile(sbFile)
+ char *sbFile;
+ {
+- FILE *TexOpen();
+
+ if (!fFollow)
+ return;
+@@ -523,7 +519,7 @@
+ ** no list, all files are assumed to be "in the list".
+ ******/
+
+-InList(sbFile)
++int InList(sbFile)
+ char *sbFile;
+ {
+ char *pch, sbBase[PATH_MAX];
+@@ -555,7 +551,7 @@
+ {
+ char *sb, *sbPaths;
+ #ifndef WIN32
+- char *getenv();
++ char *getenv(const char*);
+ #endif
+ int cchDefaults, cchPaths;
+
+@@ -594,7 +590,7 @@
+ ** ERROR is returned if there are more than csbMax words.
+ ******/
+
+-SeparateList(sbList, rgsbList, chSep, csbMax)
++int SeparateList(sbList, rgsbList, chSep, csbMax)
+ char *sbList, *rgsbList[], chSep;
+ int csbMax;
+ {
+@@ -717,7 +713,7 @@
+ ** Stdout is flushed and detex exits.
+ ******/
+
+-ErrorExit(sb1)
++int ErrorExit(sb1)
+ char *sb1;
+ {
+ (void)fflush(stdout);
+--- texlive-20080816-source/texk/dvi2tty/dvi2tty.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/dvi2tty/dvi2tty.h 2025-09-25 00:42:09.533282569 +0200
+@@ -54,22 +54,22 @@
+
+ /*---------------------------------------------------------------------------*/
+
+-typedef char bool;
++typedef char bool_t;
+
+ typedef struct prlistptr { /* list of pages selected for output */
+ int pag; /* number of pages */
+- bool all; /* pages in interval selected */
++ bool_t all; /* pages in interval selected */
+ struct prlistptr *prv; /* previous item in list */
+ struct prlistptr *nxt; /* next item in list */
+ } printlisttype;
+
+ /*---------------------------------------------------------------------------*/
+
+-extern bool outputtofile; /* output to file or stdout(dvi2tty.c)*/
+-extern bool pageswitchon; /* user-set pages to print(dvistuff.c)*/
+-extern bool sequenceon; /* not TeX pagenrs (dvistuff.c) */
+-extern bool scascii; /* Scand. nat. chars (dvistuff.c) */
+-extern bool noffd; /* output ^L or formfeed (dvistuff.c) */
++extern bool_t outputtofile; /* output to file or stdout(dvi2tty.c)*/
++extern bool_t pageswitchon; /* user-set pages to print(dvistuff.c)*/
++extern bool_t sequenceon; /* not TeX pagenrs (dvistuff.c) */
++extern bool_t scascii; /* Scand. nat. chars (dvistuff.c) */
++extern bool_t noffd; /* output ^L or formfeed (dvistuff.c) */
+
+ extern printlisttype *currentpage; /* current page to print (dvi2tty.c) */
+ extern printlisttype *firstpage; /* first page selected (dvi2tty.c) */
+--- texlive-20080816-source/texk/dvi2tty/dvi2tty.c.orig 2007-01-20 12:00:43.000000000 +0100
++++ texlive-20080816-source/texk/dvi2tty/dvi2tty.c 2025-09-25 00:42:30.331735450 +0200
+@@ -151,13 +151,13 @@
+
+ FILE * DVIfile;
+ FILE * output;
+-bool outputtofile; /* tells if output goes to file or stdout */
++bool_t outputtofile; /* tells if output goes to file or stdout */
+ int ttywidth; /* max nr of chars per printed line */
+ int espace; /* to fake calcs with ttywidth */
+
+ long foo; /* utility variable, "register" */
+ #if !defined(MSDOS) && !defined(VMS)
+-bool pager; /* tells if output is piped to a pager */
++bool_t pager; /* tells if output is piped to a pager */
+ char * path; /* name of the pager to run */
+ #endif
+ char * progname; /* our name */
+@@ -329,7 +329,7 @@
+ void getargs()
+ {
+ char *str, *envp;
+- bool DVIfound; /* if a dvi filename found */
++ bool_t DVIfound; /* if a dvi filename found */
+
+ if (Argc <= 1)
+ usage(ign);
+--- texlive-20080816-source/texk/dvi2tty/dvistuff.c.orig 2025-09-26 13:53:03.620750731 +0200
++++ texlive-20080816-source/texk/dvi2tty/dvistuff.c 2025-09-25 00:43:04.047444087 +0200
+@@ -79,10 +79,10 @@
+
+ /*---------------------------------------------------------------------------*/
+
+-bool pageswitchon; /* true if user-set pages to print */
+-bool sequenceon; /* false if pagesw-nrs refers to TeX-nrs */
+-bool scascii; /* if true make Scand. nat. chars right */
+-bool noffd; /* if true output ^L instead of formfeed */
++bool_t pageswitchon; /* true if user-set pages to print */
++bool_t sequenceon; /* false if pagesw-nrs refers to TeX-nrs */
++bool_t scascii; /* if true make Scand. nat. chars right */
++bool_t noffd; /* if true output ^L instead of formfeed */
+
+ int opcode; /* dvi-opcodes */
+
+@@ -118,8 +118,8 @@
+ void dopage P1H(void);
+ void skippage P1H(void);
+ void printpage P1H(void);
+-bool inlist P1H(long);
+-void rule P3H(bool, long, long);
++bool_t inlist P1H(long);
++void rule P3H(bool_t, long, long);
+ void ruleaux P3H(long, long, char);
+ long horizontalmove P1H(long);
+ int skipnops P1H(void);
+@@ -144,8 +144,8 @@
+ void dopage (void);
+ void skippage (void);
+ void printpage (void);
+-bool inlist (long);
+-void rule (bool, long, long);
++bool_t inlist (long);
++void rule (bool_t, long, long);
+ void ruleaux (long, long, char);
+ long horizontalmove (long);
+ int skipnops (void);
+@@ -169,7 +169,7 @@
+ void dopage ();
+ void skippage ();
+ void printpage ();
+-bool inlist ();
++bool_t inlist ();
+ void rule ();
+ void ruleaux ();
+ long horizontalmove ();
+@@ -276,7 +276,7 @@
+
+ void walkpages() /* process the pages in the DVI-file */
+ {
+- register bool wantpage;
++ register bool_t wantpage;
+
+ pagecounter = 0L;
+ while ((opcode = skipnops()) != POST) {
+@@ -554,7 +554,7 @@
+
+ /*----------------------------------------------------------------------------*/
+
+-bool inlist(pagenr) /* ret true if in list of pages */
++bool_t inlist(pagenr) /* ret true if in list of pages */
+ register long pagenr;
+ {
+
+@@ -576,7 +576,7 @@
+
+ /*----------------------------------------------------------------------------*/
+
+-void rule(bool moving, long rulewt, long ruleht)
++void rule(bool_t moving, long rulewt, long ruleht)
+ { /* output a rule (vertical or horizontal), increment h if moving is true */
+
+ register char ch; /* character to set rule with */
+--- texlive-20080816-source/texk/dviljk/config.h.orig 2008-02-17 14:34:01.000000000 +0100
++++ texlive-20080816-source/texk/dviljk/config.h 2025-09-25 00:45:37.213065339 +0200
+@@ -156,8 +156,8 @@
+ #endif
+
+
+-#define _TRUE (bool) 1
+-#define _FALSE (bool) 0
++#define _TRUE (bool_t) 1
++#define _FALSE (bool_t) 0
+ #define UNKNOWN -1
+
+ #define STRSIZE 255 /* stringsize for file specifications */
+@@ -165,10 +165,10 @@
+
+ #ifdef __riscos
+ # ifndef types_H /* for compatibility with OSLib */
+-typedef int bool;
++typedef int bool_t;
+ # endif
+ #else
+-typedef char bool;
++typedef char bool_t;
+ #endif
+
+
+--- texlive-20080816-source/texk/dviljk/dvi2xx.h.orig 2008-02-17 13:58:17.000000000 +0100
++++ texlive-20080816-source/texk/dviljk/dvi2xx.h 2025-09-25 00:47:08.313776999 +0200
+@@ -382,7 +382,7 @@
+ short xOffset, yOffset, yyOffset; /* x offset and y offset in pixels*/
+ #endif
+ struct {
+- bool isloaded;
++ bool_t isloaded;
+ union {
+ long4 fileOffset;
+ long4 *pixptr;
+@@ -409,9 +409,9 @@
+ struct font_entry *next;
+ unsigned short ncdl; /* #of different chars actually downloaded */
+ unsigned short plusid; /* Font id in Printer */
+- bool used_on_this_page;
++ bool_t used_on_this_page;
+ #ifdef LJ_RESIDENT_FONTS
+- bool resident_p; /* is font resident in printer? */
++ bool_t resident_p; /* is font resident in printer? */
+ char symbol_set[40]; /* symbol set value (resident fonts) */
+ unsigned short resid; /* typeface id (resident fonts) */
+ unsigned spacing; /* 0=monospace, 1=variable (resident fonts) */
+@@ -465,7 +465,7 @@
+ #endif
+
+ double ActualFactor DVIPROTO((long4));
+-void AllDone DVIPROTO((bool));
++void AllDone DVIPROTO((bool_t));
+ #ifdef MSC5
+ void AssureBinary DVIPROTO((FILEPTR)); /* DOS and Microsoft C dependent !!! */
+ #endif
+@@ -487,8 +487,8 @@
+ void FormFeed DVIPROTO((void));
+ void GetFontDef DVIPROTO((void));
+ char *GetKeyStr DVIPROTO((char *, KeyWord *));
+-bool GetKeyVal DVIPROTO((KeyWord *, KeyDesc[], int, int *));
+-bool IsSame DVIPROTO((char *, char *));
++bool_t GetKeyVal DVIPROTO((KeyWord *, KeyDesc[], int, int *));
++bool_t IsSame DVIPROTO((char *, char *));
+ void LoadAChar DVIPROTO((long4, register struct char_entry *));
+ long4 NoSignExtend DVIPROTO((FILEPTR, int));
+ void OpenFontFile DVIPROTO((void));
+@@ -498,15 +498,15 @@
+ unsigned int, unsigned char *));
+ void RasterChar DVIPROTO((struct char_entry *));
+ void ReadFontDef DVIPROTO((long4));
+-void ReadPostAmble DVIPROTO((bool));
+-void SetChar DVIPROTO((long4, short, int, bool, bool));
+-void SetFntNum DVIPROTO((long4, bool));
++void ReadPostAmble DVIPROTO((bool_t));
++void SetChar DVIPROTO((long4, short, int, bool_t, bool_t));
++void SetFntNum DVIPROTO((long4, bool_t));
+ void SetPosn DVIPROTO((long4, long4));
+ void SetRule DVIPROTO((long4, long4, int));
+ void SetString DVIPROTO((short, int));
+ long4 SignExtend DVIPROTO((FILEPTR, int));
+ void SkipFontDef DVIPROTO((void));
+-bool tfm_read_info DVIPROTO((char *, tfm_info_type *));
++bool_t tfm_read_info DVIPROTO((char *, tfm_info_type *));
+ void Warning DVIELI();
+ unsigned char skip_specials DVIPROTO((long4 *));
+ #ifdef LJ4
+@@ -531,12 +531,12 @@
+ /**********************************************************************/
+ /************************* Global Variables *************************/
+ /**********************************************************************/
+-bool ManualFeed = _FALSE;
++bool_t ManualFeed = _FALSE;
+ long4 FirstPage = -1000000; /* first page to print (uses count0) */
+ long4 LastPage = 1000000; /* last page to print */
+ long4 PrintPages = 1000000; /* nr of pages to print */
+-bool FirstPageSpecified = _FALSE;
+-bool LastPageSpecified = _FALSE;
++bool_t FirstPageSpecified = _FALSE;
++bool_t LastPageSpecified = _FALSE;
+ #ifndef KPATHSEA
+ char *PXLpath = FONTAREA;
+ #endif
+@@ -548,35 +548,35 @@
+ char tmp_dir[STRSIZE] = ""; /* temporary directory for auxiliary files */
+ enum { Ignore, PSFile_dvilj /*, PSFile_dvips */ } PSFileSyntaxTyp = PSFile_dvilj;
+ #ifdef IBM3812
+-bool FirstAlternate = _FALSE; /* first page from alternate casette ? */
++bool_t FirstAlternate = _FALSE; /* first page from alternate casette ? */
+ #endif
+-bool Reverse = _FALSE; /* process DVI pages in reverse order? */
+-bool Landscape = _FALSE; /* print document in ladscape mode */
+-bool ResetPrinter = _TRUE; /* reset printer at the begin of the job */
+-bool DoublePage = _FALSE; /* print on both sides of a paper */
+-bool PrintSecondPart = _TRUE; /* print First Part when DoublePage */
+-bool PrintFirstPart = _TRUE; /* print Second Part when DoublePage */
+-bool PrintEmptyPages = _TRUE; /* print Empty pages in DoublePage mode */
++bool_t Reverse = _FALSE; /* process DVI pages in reverse order? */
++bool_t Landscape = _FALSE; /* print document in ladscape mode */
++bool_t ResetPrinter = _TRUE; /* reset printer at the begin of the job */
++bool_t DoublePage = _FALSE; /* print on both sides of a paper */
++bool_t PrintSecondPart = _TRUE; /* print First Part when DoublePage */
++bool_t PrintFirstPart = _TRUE; /* print Second Part when DoublePage */
++bool_t PrintEmptyPages = _TRUE; /* print Empty pages in DoublePage mode */
+ short PageParity = 1;
+ #ifdef MAKETEXPK
+ #ifdef KPATHSEA
+-bool makeTexPK = MAKE_TEX_PK_BY_DEFAULT;
++bool_t makeTexPK = MAKE_TEX_PK_BY_DEFAULT;
+ #else
+-bool makeTexPK = _TRUE;
++bool_t makeTexPK = _TRUE;
+ #endif
+ #endif
+
+ #ifdef LJ
+-bool kyocera_mode = _FALSE; /* bug fixes for Kyocera F-1200 LJ-Emulation */
+-bool brother_mode = _FALSE; /* bug fixes for Brother HL-8D LJ-Emulation */
++bool_t kyocera_mode = _FALSE; /* bug fixes for Kyocera F-1200 LJ-Emulation */
++bool_t brother_mode = _FALSE; /* bug fixes for Brother HL-8D LJ-Emulation */
+ #ifdef LJ2P
+ int DuplexMode = 0;
+ #endif
+ #ifdef LJ4
+-bool econoMode = _FALSE;
+-bool LJ6 = _FALSE;
++bool_t econoMode = _FALSE;
++bool_t LJ6 = _FALSE;
+ #endif
+-bool PrintTestPage = _FALSE; /* print testpage with pagecounter after job */
++bool_t PrintTestPage = _FALSE; /* print testpage with pagecounter after job */
+ unsigned short pagesize = 0; /* page size value */
+ unsigned short pgsiz_dots = 0; /* page size in dots (for rule-clipping)*/
+ #endif
+@@ -587,10 +587,10 @@
+ #else
+ long4 G_errenc = SS$_NORMAL; /* has an error been encountered? */
+ #endif
+-bool G_header = _FALSE; /* copy header file to output? */
+-bool G_quiet = _FALSE; /* for quiet operation */
+-bool G_verbose = _FALSE; /* inform user about pxl-files used */
+-bool G_nowarn = _FALSE; /* don't print out warnings */
++bool_t G_header = _FALSE; /* copy header file to output? */
++bool_t G_quiet = _FALSE; /* for quiet operation */
++bool_t G_verbose = _FALSE; /* inform user about pxl-files used */
++bool_t G_nowarn = _FALSE; /* don't print out warnings */
+ short x_origin; /* x-origin in dots */
+ short y_origin; /* y-origin in dots */
+ short x_goffset; /* global x-offset in dots */
+@@ -624,8 +624,8 @@
+ static int last_rx = UNKNOWN; /* last x-position on page */
+ long4 StartPrintPages; /* notpad for double paged output */
+ int WouldPrint = 0;
+-bool ZeroPage = _FALSE; /* Document starts with a Zero Page */
+-bool EvenPage = _FALSE; /* Document starts with an even Page */
++bool_t ZeroPage = _FALSE; /* Document starts with a Zero Page */
++bool_t EvenPage = _FALSE; /* Document starts with an even Page */
+ long4 LastPtobePrinted = 0;
+ int G_ncdl = 0;
+
+@@ -656,7 +656,7 @@
+ int PrevSize = 0; /* Size of PrevLine */
+ /* Downloaded chars compression */
+ int CChar_Off, CChar_Last; /* For compressed character downloading */
+-bool CompressFontMode = _TRUE; /* Download characters compressed */
++bool_t CompressFontMode = _TRUE; /* Download characters compressed */
+ #endif /* LJ4 */
+
+ #ifdef RISC_USE_OSL
+@@ -673,8 +673,8 @@
+ #define DIAGDIRSIZE 32
+ char diagdir[DIAGDIRSIZE] = "LJdiag"; /* Prefix name of directory for
+ cached printouts */
+-bool cachediag = _FALSE; /* cache PDriver's output in document folder */
+-bool printdiag = _TRUE; /* printf diagrams */
++bool_t cachediag = _FALSE; /* cache PDriver's output in document folder */
++bool_t printdiag = _TRUE; /* printf diagrams */
+ FILEPTR metafile = FPNULL; /* Filepointer of file containing
+ metafont directives*/
+
+--- texlive-20080816-source/texk/dviljk/dvi2xx.c.orig 2008-02-18 00:36:52.000000000 +0100
++++ texlive-20080816-source/texk/dviljk/dvi2xx.c 2025-09-25 00:55:12.803030023 +0200
+@@ -140,12 +140,12 @@
+ short command; /* current command */
+ long4 count[10]; /* the 10 counters at begining of each page*/
+ long4 cpagep = 0; /* current page pointer */
+- bool Emitting = _FALSE; /* outputting typsetting instructions? */
++ bool_t Emitting = _FALSE; /* outputting typsetting instructions? */
+ int i; /* command parameter; loop index */
+ int k; /* temporary parameter */
+ char n[STRSIZE]; /* command parameter */
+ int PassNo = 0; /* which pass over the DVI page are we on? */
+- bool SkipMode = _FALSE; /* in skip mode flag */
++ bool_t SkipMode = _FALSE; /* in skip mode flag */
+ int sp = 0; /* stack pointer */
+ struct stack_entry stack[STACK_SIZE]; /* stack */
+ char SpecialStr[STRSIZE]; /* "\special" strings */
+@@ -319,7 +319,7 @@
+ if (DoublePage) {
+ StartPrintPages = PrintPages;
+ #ifdef IBM3812
+- Reverse = (bool)!Reverse; /* perverse and strange */
++ Reverse = (bool_t)!Reverse; /* perverse and strange */
+ #endif
+ }
+
+@@ -398,7 +398,7 @@
+ fprintf(ERR_STREAM,"skimode %d, count %d, F %d, L %d\n",
+ (int)SkipMode,(int)count[0],(int)FirstPageSpecified,(int)LastPageSpecified);
+ */
+- SkipMode = (bool)((FirstPageSpecified && count[0] < FirstPage) ||
++ SkipMode = (bool_t)((FirstPageSpecified && count[0] < FirstPage) ||
+ (LastPageSpecified && count[0] > LastPage ));
+ /*
+ fprintf(ERR_STREAM,"skimode %d, count %d, F %d, L %d\n",
+@@ -414,7 +414,7 @@
+ EvenPage = _FALSE;
+ }
+ else {
+- EvenPage = (bool)( (count[0]<0? labs(count[0])+1: count[0]) %2 == 0);
++ EvenPage = (bool_t)( (count[0]<0? labs(count[0])+1: count[0]) %2 == 0);
+
+ if (PrintEmptyPages && EvenPage && PageParity==1) {
+ WouldPrint ++;
+@@ -444,13 +444,13 @@
+ fprintf(ERR_STREAM,"FirstPart\n count %d, mod %d, pp %d\n",(int)count[0],(int)count[0]%2,PageParity);
+ */
+ SkipMode =
+- (bool)(PageParity != (short)((count[0]<0 ?
++ (bool_t)(PageParity != (short)((count[0]<0 ?
+ labs(count[0])+1 : count[0])%2));
+- if (count[0] == 0) SkipMode = (bool)!SkipMode;
++ if (count[0] == 0) SkipMode = (bool_t)!SkipMode;
+ }
+
+ }
+- Emitting = (bool)((PassNo != 0) && !SkipMode);
++ Emitting = (bool_t)((PassNo != 0) && !SkipMode);
+ /*
+ fprintf(ERR_STREAM,"Emitting= %d, PassNo=%d, SkipMode = %d\n",(int)Emitting,(int)PassNo,(int)SkipMode);
+ */
+@@ -493,12 +493,12 @@
+ FSEEK(dvifp, ppagep, SEEK_SET);
+ else {
+ if (DoublePage && !SkipMode)
+- ZeroPage = (bool)(count[0] == 0);
++ ZeroPage = (bool_t)(count[0] == 0);
+
+ if (ZeroPage)
+ EvenPage = _FALSE;
+ else
+- EvenPage = (bool)((int)LastPtobePrinted%2 == 0);
++ EvenPage = (bool_t)((int)LastPtobePrinted%2 == 0);
+
+ AllDone(_FALSE);
+ }
+@@ -1222,7 +1222,7 @@
+ static char buffer[OUTBUFSIZE];
+ static unsigned short bp = 0; /* range 0..OUTBUFSIZE */
+ static long4 continuous = 0l;
+- static bool buffered = _TRUE;
++ static bool_t buffered = _TRUE;
+
+ if (l == 0) {
+ if (bp == 0)
+@@ -1236,7 +1236,7 @@
+ continuous = (long4)s;
+ if (continuous + (long4)bp + 5l > (long4)OUTBUFSIZE)
+ PMPflush;
+- buffered = (bool)((continuous + 5l <= (long4)OUTBUFSIZE));
++ buffered = (bool_t)((continuous + 5l <= (long4)OUTBUFSIZE));
+ if (!buffered) {
+ EMIT3("\033[C%c%c", (unsigned char)(continuous & 0xFF),
+ (unsigned char)((continuous >> 8) & 0xFF));
+@@ -1252,7 +1252,7 @@
+ bp += (unsigned short)l;
+ } else {
+ EMITB((int)l, s);
+- buffered = (bool)((continuous -= (long4)l) <= 0);
++ buffered = (bool_t)((continuous -= (long4)l) <= 0);
+ }
+ }
+
+@@ -1666,7 +1666,7 @@
+ int rp;
+ int current_line;
+ int wordwidth;
+- bool turnon;
++ bool_t turnon;
+ unsigned short nbpl;
+ long4 rowsleft, word, wordweight, hbit, count, i, j, tl;
+ long4 row[101];
+@@ -1681,7 +1681,7 @@
+ current_line = 0;
+ pkloc = (unsigned char *)ce->where.address.pixptr;
+ dyn_f = (unsigned char)(ce->flag_byte >> 4);
+- turnon = (bool)((ce->flag_byte & 8) == 8);
++ turnon = (bool_t)((ce->flag_byte & 8) == 8);
+ wordwidth = (int)(ce->width + 31) >> 5;
+ nbpl = ((int)(ce->width) + 7) >> 3;
+
+@@ -1697,7 +1697,7 @@
+ printf(" |");
+ #endif
+ for (j = 1; j <= (long4)ce->width; j++) {
+- bool getbit;
++ bool_t getbit;
+ /* bp = 0; SOWA */
+ /*******************************************begin Getbit *********/
+ bitweight /= 2;
+@@ -1705,7 +1705,7 @@
+ inputbyte = PKBYTE;
+ bitweight = 128;
+ }
+- getbit = (bool)
++ getbit = (bool_t)
+ ( inputbyte >= bitweight );
+ if ( getbit )
+ inputbyte -= bitweight;
+@@ -2480,17 +2480,17 @@
+ /**********************************************************************/
+ void
+ #if NeedFunctionPrototypes
+-SetChar(long4 c, short command, int PassNo, bool do_posn, bool in_string)
++SetChar(long4 c, short command, int PassNo, bool_t do_posn, bool_t in_string)
+ #else
+ SetChar(c, command, PassNo, do_posn,in_string)
+ long4 c;
+ short command;
+ int PassNo;
+-bool do_posn,in_string;
++bool_t do_posn,in_string;
+ #endif
+ {
+ register struct char_entry *ptr; /* temporary char_entry pointer */
+- bool pos_after = _FALSE;
++ bool_t pos_after = _FALSE;
+
+ ptr = &(fontptr->ch[c]);
+ if (!((ptr->where.isloaded) || (ptr->charsize == HUGE_SIZE)))
+@@ -2714,7 +2714,7 @@
+ if (Debug)
+ fprintf(ERR_STREAM, "%d(%c) ", c, c);
+ #endif
+- SetChar((long4)c, c, PassNo, (bool)(i==0), _TRUE);
++ SetChar((long4)c, c, PassNo, (bool_t)(i==0), _TRUE);
+ c = (short)NoSignExtend(dvifp, 1);
+ }
+ FSEEK(dvifp, -1l, SEEK_CUR); /* backup one character */
+@@ -3215,7 +3215,7 @@
+ G_quiet = _TRUE;
+ break;
+ case 'r': /* switch order to process pages */
+- Reverse = (bool)(!Reverse);
++ Reverse = (bool_t)(!Reverse);
+ break;
+ #ifdef LJ
+ case 's': /* specify X-origin in dots */
+@@ -3285,7 +3285,7 @@
+ break;
+ #ifdef LJ
+ case 'z':
+- PrintTestPage = (bool)(!PrintTestPage);
++ PrintTestPage = (bool_t)(!PrintTestPage);
+ break;
+ #endif
+ #ifdef LJ4
+@@ -3566,10 +3566,10 @@
+ /****************************** AllDone ******************************/
+ /**********************************************************************/
+ #if NeedFunctionPrototypes
+-void AllDone(bool PFlag)
++void AllDone(bool_t PFlag)
+ #else
+ void AllDone(PFlag)
+-bool PFlag;
++bool_t PFlag;
+ #endif
+ {
+ #ifdef TIMING
+@@ -3586,7 +3586,7 @@
+ FormFeed();
+ }
+ #ifdef LJ
+- Reverse = (bool)!Reverse;
++ Reverse = (bool_t)!Reverse;
+ #endif
+ if (Reverse) {
+ if (!PFlag) {
+@@ -3782,9 +3782,9 @@
+ s1 pointer to null-terminated keyword, s2 pointer to parseline;
+ returns (if successful) pointer to character following keyword in s2 */
+ #if NeedFunctionPrototypes
+-bool StrCompare(char *s1, char *s2, char **end)
++bool_t StrCompare(char *s1, char *s2, char **end)
+ #else
+-bool StrCompare(s1, s2, end)
++bool_t StrCompare(s1, s2, end)
+ char *s1;
+ char *s2;
+ char **end;
+@@ -3837,9 +3837,9 @@
+ /* Diagram commands are parsed separately since the format varies from the one
+ + used by the other special commands */
+ #if NeedFunctionPrototypes
+-bool ParseDiagram(char *str)
++bool_t ParseDiagram(char *str)
+ #else
+-bool ParseDiagram(str)
++bool_t ParseDiagram(str)
+ char *str;
+ #endif
+ {
+@@ -3944,7 +3944,7 @@
+ int n;
+ #endif
+ {
+- bool first_keyword = _TRUE;
++ bool_t first_keyword = _TRUE;
+ char xs[STRSIZE], ys[STRSIZE];
+ char *include_file = NULL;
+ enum { None, VerbFile, HPFile, PSFile } file_type = None;
+@@ -3953,9 +3953,9 @@
+ KeyWord k;
+ int i, j, j1;
+ static int GrayScale = 10, Pattern = 1;
+- static bool GrayFill = _TRUE;
++ static bool_t GrayFill = _TRUE;
+ static long4 p_x[MAX_SPECIAL_DEFPOINTS], p_y[MAX_SPECIAL_DEFPOINTS];
+- static bool need_init_pxy = _TRUE;
++ static bool_t need_init_pxy = _TRUE;
+ int llx=0, lly=0, urx=0, ury=0, rwi=0;
+
+ str[n] = '\0';
+@@ -4408,9 +4408,9 @@
+ /**********************************************************************/
+ /* get next keyword-value pair decode value according to table entry */
+ #if NeedFunctionPrototypes
+-bool GetKeyVal(KeyWord *kw, KeyDesc tab[], int nt, int *tno)
++bool_t GetKeyVal(KeyWord *kw, KeyDesc tab[], int nt, int *tno)
+ #else
+-bool GetKeyVal( kw, tab, nt, tno)
++bool_t GetKeyVal( kw, tab, nt, tno)
+ KeyWord *kw;
+ KeyDesc tab[];
+ int nt;
+@@ -4452,9 +4452,9 @@
+ /**********************************************************************/
+ /* compare strings, ignore case */
+ #if NeedFunctionPrototypes
+-bool IsSame(char *a, char *b)
++bool_t IsSame(char *a, char *b)
+ #else
+-bool IsSame(a, b)
++bool_t IsSame(a, b)
+ char *a, *b;
+ #endif
+ {
+@@ -4509,10 +4509,10 @@
+ starting printing the document.
+ ***********************************************************************/
+ #if NeedFunctionPrototypes
+-void ReadPostAmble(bool load)
++void ReadPostAmble(bool_t load)
+ #else
+ void ReadPostAmble(load)
+-bool load;
++bool_t load;
+ #endif
+ {
+ FindPostAmblePtr(&postambleptr);
+@@ -4981,13 +4981,12 @@
+ /**************************** TryResident ***************************/
+ /**********************************************************************/
+ #if NeedFunctionPrototypes
+-bool TryResident(struct font_entry *fontptr)
++bool_t TryResident(struct font_entry *fontptr)
+ #else
+-bool TryResident(fontptr)
++bool_t TryResident(fontptr)
+ struct font_entry *fontptr;
+ #endif
+ {
+- extern bool tfm_read_info();
+ tfm_info_type tfm_info;
+
+ /* To determine if a font is resident, check for a special family
+@@ -5138,9 +5137,9 @@
+ struct font_entry *tfontptr; /* temporary font_entry pointer */
+ struct char_entry *tcharptr; /* temporary char_entry pointer */
+ static int plusid = 0;
+- bool font_found = _FALSE;
++ bool_t font_found = _FALSE;
+ #ifdef LJ_RESIDENT_FONTS
+- bool resident_font_located = _FALSE;
++ bool_t resident_font_located = _FALSE;
+ #endif
+ #ifdef LJ
+ int depth, max_depth;
+@@ -5196,7 +5195,7 @@
+ #ifdef LJ_RESIDENT_FONTS
+ /* Pass in the name; fills in resident_p and resid (if resident). */
+
+- resident_font_located = (bool)TryResident(tfontptr);
++ resident_font_located = (bool_t)TryResident(tfontptr);
+
+ if (tfontptr->resident_p)
+ return;
+@@ -5555,11 +5554,11 @@
+ /**************************** SetFntNum *****************************/
+ /**********************************************************************/
+ #if NeedFunctionPrototypes
+-void SetFntNum(long4 k, bool Emitting)
++void SetFntNum(long4 k, bool_t Emitting)
+ #else
+ void SetFntNum(k, Emitting)
+ long4 k;
+-bool Emitting;
++bool_t Emitting;
+ #endif
+ /* this routine is used to specify the font to be used in printing future
+ characters */
+--- texlive-20080816-source/texk/dviljk/tfm.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/dviljk/tfm.c 2025-09-25 00:47:48.952604069 +0200
+@@ -41,7 +41,7 @@
+ #define TFM_GET_TWO() NoSignExtend (tfm_fp, 2)
+ #define TFM_GET_FOUR() NoSignExtend (tfm_fp, 4)
+
+-extern bool G_quiet;
++extern bool_t G_quiet;
+ extern void Warning();
+
+ /* Read N words (N * 4 bytes) from TFM_FP and return it in *OUTBUF, unless
+@@ -112,7 +112,7 @@
+ The first (BigEndian) byte of header word #18 is DATA[0].
+ Assume DATA is long enough for everything we might try to read. */
+
+-static bool
++static bool_t
+ #if NeedFunctionPrototypes
+ get_pcl_info (unsigned char *data, unsigned *spacing, unsigned *style,
+ int *weight, unsigned *typeface_id)
+@@ -148,7 +148,7 @@
+ /* If the TFM file NAME exists, set the elements of RET and return true.
+ Otherwise, return false. */
+
+-bool
++bool_t
+ #if NeedFunctionPrototypes
+ tfm_read_info (char *name, tfm_info_type *ret)
+ #else
+--- texlive-20080816-source/texk/dvipdfmx/src/pngimage.c.orig 2025-09-23 22:35:33.457648550 +0200
++++ texlive-20080816-source/texk/dvipdfmx/src/pngimage.c 2025-09-25 00:58:24.004100823 +0200
+@@ -533,7 +533,7 @@
+ png_uint_32 proflen;
+
+ if (!png_get_valid(png_ptr, info_ptr, PNG_INFO_iCCP) ||
+- !png_get_iCCP(png_ptr, info_ptr, &name, &compression_type, &profile, &proflen))
++ !png_get_iCCP(png_ptr, info_ptr, &name, &compression_type, (unsigned char**) &profile, &proflen))
+ return NULL;
+
+ color_type = png_get_color_type(png_ptr, info_ptr);
+--- texlive-20080816-source/texk/dvipsk/afm2tfm.c.orig 2025-09-23 22:35:33.440694472 +0200
++++ texlive-20080816-source/texk/dvipsk/afm2tfm.c 2025-09-25 01:02:00.867739296 +0200
+@@ -67,7 +67,7 @@
+ /* debug.h redefines fopen to my_real_fopen, but it's still a FILE * */
+ #ifdef fopen
+ #undef fopen
+-extern FILE *fopen ();
++extern FILE *fopen (const char*, const char*);
+ #endif
+
+ struct encoding {
+--- texlive-20080816-source/texk/dvipsk/dvips.c.orig 2008-07-10 01:40:36.000000000 +0200
++++ texlive-20080816-source/texk/dvipsk/dvips.c 2025-09-25 01:06:14.480286927 +0200
+@@ -565,7 +565,6 @@
+ /*
+ * Finally, our main routine.
+ */
+-extern void handlepapersize() ;
+ #ifdef VMS
+ main P1H(void)
+ #else
+--- texlive-20080816-source/texk/dvipsk/writet1.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/dvipsk/writet1.c 2025-09-25 01:32:11.833538633 +0200
+@@ -104,9 +104,10 @@
+ #define make_subset_tag(a, b)
+ #define update_subset_tag()
+
++#include "protos.h"
++
+ static char *dvips_extra_charset ;
+ extern FILE *bitfile ;
+-extern FILE *search();
+ static char *cur_file_name;
+ static char *cur_enc_name;
+ static unsigned char *grid;
+--- texlive-20080816-source/texk/dvipsk/t1part.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/dvipsk/t1part.h 2025-09-25 01:33:23.715891006 +0200
+@@ -35,7 +35,6 @@
+ #endif
+
+ #ifdef DVIPS
+-extern FILE *search();
+ #ifndef KPATHSEA
+ extern char *headerpath ;
+ #endif /* not KPATHSEA */
+--- texlive-20080816-source/texk/lacheck/lacheck.lex.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/lacheck/lacheck.lex 2025-09-25 01:41:12.690797836 +0200
+@@ -145,16 +145,16 @@
+ #define CG_ITALIC gstack[gstackp-1].italic
+ #define CG_FILE gstack[gstackp-1].s_file
+
+-char *bg_command();
++char *bg_command(char*);
+ void pop();
+-void push();
++void push(unsigned char *, int, int);
+ void linecount();
+-void g_checkend();
+-void e_checkend();
+-void f_checkend();
+-void input_file();
+-void print_bad_match();
+-int check_top_level_end();
++void g_checkend(int);
++void e_checkend(int, char*);
++void f_checkend(char*);
++void input_file(char*);
++void print_bad_match(char*, int);
++int check_top_level_end(char*,int);
+
+ /* global variables */
+
+--- texlive-20080816-source/texk/ps2pkm/arith.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/arith.h 2025-09-25 02:04:35.504370454 +0200
+@@ -29,12 +29,10 @@
+ /*SHARED*/
+
+ #include "types.h"
+-
+-void DLmult(),DLdiv(),DLadd(),DLsub();
+
+-fractpel FPmult();
+-fractpel FPdiv();
+-fractpel FPstarslash();
++fractpel FPmult(fractpel,fractpel);
++fractpel FPdiv(fractpel,fractpel);
++fractpel FPstarslash(fractpel,fractpel,fractpel);
+
+ /*END SHARED*/
+ /*SHARED*/
+@@ -55,6 +53,11 @@
+ LONG high;
+ ULONG low;
+ } doublelong;
++
++void DLmult(doublelong*, ULONG, ULONG);
++void DLdiv(doublelong*, ULONG);
++void DLadd(doublelong*, doublelong*);
++void DLsub(doublelong*, doublelong*);
+
+ /*END SHARED*/
+ /*SHARED*/
+--- texlive-20080816-source/texk/ps2pkm/blues.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/blues.h 2025-09-25 23:24:54.309740919 +0200
+@@ -31,8 +31,6 @@
+
+ #include "types.h"
+
+-extern psobj *GetType1CharString();
+-
+ #define TOPLEFT 1
+ #define BOTTOMRIGHT 2
+
+--- texlive-20080816-source/texk/ps2pkm/curves.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/curves.h 2025-09-25 10:18:36.602736081 +0200
+@@ -35,6 +35,6 @@
+ #define FlattenBezier(xB,yB,xC,yC,xD,yD) t1_StepBezier(NULL,(fractpel)0,(fractpel)0,xB,yB,xC,yC,xD,yD)
+
+ struct segment *t1_StepConic();
+-struct segment *t1_StepBezier();
++extern struct segment *t1_StepBezier(struct region *R,fractpel xA,fractpel yA,fractpel xB,fractpel yB,fractpel xC,fractpel yC,fractpel xD,fractpel yD);
+
+ /*END SHARED*/
+--- texlive-20080816-source/texk/ps2pkm/ffilest.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/ffilest.h 2025-09-25 21:54:14.035811538 +0200
+@@ -119,9 +119,9 @@
+ char *fileSuffix;
+ int fileSuffixLen;
+ int (*OpenBitmap)(/* fpe, pFont, flags, entry, fileName, format, fmask */);
+- int (*OpenScalable)(/* fpe, pFont, flags, entry, fileName, vals, format, fmask */);
++ int (*OpenScalable)(char*[256], FontPtr *, int, FontEntryPtr, char *, FontScalablePtr, fsBitmapFormat, fsBitmapFormatMask, DOUBLE, DOUBLE);
+ int (*GetInfoBitmap)(/* fpe, pFontInfo, entry, fileName */);
+- int (*GetInfoScalable)(/* fpe, pFontInfo, entry, fileName, vals */);
++ int (*GetInfoScalable)(FontPathElementPtr, FontInfoPtr, FontEntryPtr, FontNamePtr, char *, FontScalablePtr);
+ int number;
+ } FontRendererRec;
+
+--- texlive-20080816-source/texk/ps2pkm/fontfcn.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/fontfcn.c 2025-09-25 12:58:44.977215795 +0200
+@@ -40,7 +40,7 @@
+ extern void objFormatName(psobj *, int, char *);
+ #endif
+
+-extern xobject Type1Char();
++extern struct xobject *Type1Char(char, struct XYspace *, psobj *c, psobj *, psobj *, struct blues_struct *, int *);
+ extern boolean Init_BuiltInEncoding();
+
+ /***================================================================***/
+@@ -171,14 +171,14 @@
+ /* scale the Adobe fonts to 1 unit high */
+ S = Permanent(Scale(S, 1.0 , 1.0));
+ /* call the type 1 routine to rasterize the character */
+- charpath = Type1Char(FontP,S,theStringP,SubrsArrayP,NULL,
++ charpath = (path) Type1Char((char)FontP,(void*)S,theStringP,SubrsArrayP,NULL,
+ FontP->BluesP , mode);
+ Destroy(S);
+ /* if Type1Char reported an error, then return */
+ if ( *mode == FF_PARSE_ERROR) return(NULL);
+ /* fill with winding rule unless path was requested */
+ if (*mode != FF_PATH) {
+- charpath = Interior(charpath,WINDINGRULE+CONTINUITY);
++ charpath = (path) Interior((void *)charpath,WINDINGRULE+CONTINUITY);
+ }
+ return(charpath);
+ }
+--- texlive-20080816-source/texk/ps2pkm/fontfcn.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/fontfcn.h 2025-09-25 23:57:11.029705448 +0200
+@@ -42,8 +42,9 @@
+ /***================================================================***/
+
+ extern boolean Init_StdEnc();
+-extern int scan_font();
++extern int scan_font(struct ps_font*);
+ extern int GetFontInfo();
++extern psobj *GetType1CharString(psfont *, unsigned char);
+ /***================================================================***/
+ /* Return codes from scan_font */
+ /***================================================================***/
+--- texlive-20080816-source/texk/ps2pkm/fontstruct.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/fontstruct.h 2025-09-25 21:42:22.507350656 +0200
+@@ -118,13 +118,13 @@
+ char glyph;
+ char scan;
+ fsBitmapFormat format;
+- int (*get_glyphs) ( /* font, count, chars, encoding, count, glyphs */ );
+- int (*get_metrics) ( /* font, count, chars, encoding, count, glyphs */ );
++ int (*get_glyphs) (FontPtr, ULONG, unsigned char *, FontEncoding, ULONG *, CharInfoPtr *);
++ int (*get_metrics) (FontPtr, ULONG, unsigned char *, FontEncoding, ULONG *, xCharInfo **);
+ int (*get_bitmaps) (/* client, font, flags, ranges, nranges,
+ nextents, extents */ );
+ int (*get_extents) (/* client, font, format, flags, ranges,
+ nranges, nglyphs, offsets, glyphs */ );
+- void (*unload_font) ( /* font */ );
++ void (*unload_font) (FontPtr);
+ FontPathElementPtr fpe;
+ pointer svrPrivate;
+ pointer fontPrivate;
+--- texlive-20080816-source/texk/ps2pkm/hints.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/hints.c 2025-09-25 13:03:14.465846925 +0200
+@@ -630,7 +630,7 @@
+ A debug tool.
+ */
+
+-static struct edgelist *before(); /* subroutine of DumpSubPaths */
++static struct edgelist *before(struct edgelist*); /* subroutine of DumpSubPaths */
+
+ static void DumpSubPaths(anchor)
+ struct edgelist *anchor;
+--- texlive-20080816-source/texk/ps2pkm/hints.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/hints.h 2025-09-25 13:03:54.301325824 +0200
+@@ -30,13 +30,13 @@
+
+ #define InitHints() t1_InitHints()
+ void t1_InitHints(); /* Initialize hint data structure */
+-
++
+ #define CloseHints(hintP) t1_CloseHints(hintP)
+-void t1_CloseHints(); /* Reverse hints that are still open */
++void t1_CloseHints(struct fractpoint*); /* Reverse hints that are still open */
+
+ #define ProcessHint(hP, currX, currY, hintP) t1_ProcessHint(hP, currX, currY, hintP)
+-void t1_ProcessHint(); /* Process a rasterization hint */
++void t1_ProcessHint(struct hintsegment*, fractpel, fractpel, struct fractpoint *); /* Process a rasterization hint */
+
+ #define ApplyContinuity(R) t1_ApplyContinuity(R)
+-void t1_ApplyContinuity(); /* fix false connection breaks in a region */
++void t1_ApplyContinuity(struct region*); /* fix false connection breaks in a region */
+ /*END SHARED*/
+--- texlive-20080816-source/texk/ps2pkm/lines.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/lines.h 2025-09-25 13:42:48.446415774 +0200
+@@ -31,7 +31,7 @@
+ #define StepLine(R,x1,y1,x2,y2) t1_StepLine(R,x1,y1,x2,y2)
+ #define Bresenham(e,x1,y1,x2,y2) t1_Bresenham(e,x1,y1,x2,y2)
+
+-void t1_StepLine(); /* check for special conditions, call Bresenham */
+-void t1_Bresenham(); /* produce run ends for lines */
++extern void t1_StepLine(struct region *R,fractpel x1,fractpel y1,fractpel x2,fractpel y2); /* check for special conditions, call Bresenham */
++void t1_Bresenham(pel*, fractpel, fractpel, fractpel, fractpel); /* produce run ends for lines */
+
+ /*END SHARED*/
+--- texlive-20080816-source/texk/ps2pkm/objects.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/objects.c 2025-09-25 14:15:42.927286629 +0200
+@@ -73,7 +73,7 @@
+ #include "pictures.h"
+ #include "strokes.h"
+ #include "cluts.h"
+-static char *TypeFmt();
++static char *TypeFmt(int);
+ static int ObjectPostMortem(struct xobject *obj);
+
+ /*
+@@ -287,11 +287,7 @@
+ register struct xobject *template; /* example structure to allocate */
+ register int extra; /* any extra uninitialized bytes needed contiguously */
+ {
+-#ifdef WIN32
+ extern char *Xalloc(int); /* standard C routine */
+-#else
+- extern char *Xalloc(); /* standard C routine */
+-#endif
+ register struct xobject *r;
+
+ /*
+@@ -535,15 +531,15 @@
+ return(NULL);
+
+ if (ISPATHTYPE(obj->type))
+- obj = (struct xobject *) CopyPath(obj);
++ obj = (struct xobject *) CopyPath((struct segment*)obj);
+ else
+ switch (obj->type) {
+ case SPACETYPE:
+- obj = (struct xobject *) CopySpace(obj); break;
++ obj = (struct xobject *) CopySpace((struct XYspace*)obj); break;
+ case FONTTYPE:
+ obj = (struct xobject *) CopyFont(obj); break;
+ case REGIONTYPE:
+- obj = (struct xobject *) CopyRegion(obj); break;
++ obj = (struct xobject *) CopyRegion((struct region*)obj); break;
+ case PICTURETYPE:
+ obj = (struct xobject *) CopyPicture(obj); break;
+ case LINESTYLETYPE:
+@@ -577,11 +573,11 @@
+ return(NULL);
+ }
+ if (ISPATHTYPE(obj->type))
+- KillPath(obj);
++ KillPath((struct segment*)obj);
+ else {
+ switch (obj->type) {
+ case REGIONTYPE:
+- KillRegion(obj);
++ KillRegion((struct region*)obj);
+ break;
+ case SPACETYPE:
+ KillSpace(obj);
+--- texlive-20080816-source/texk/ps2pkm/objects.h.orig 2025-09-23 22:35:33.496469395 +0200
++++ texlive-20080816-source/texk/ps2pkm/objects.h 2025-09-25 21:32:20.478908365 +0200
+@@ -49,13 +49,13 @@
+ #define Pragmatics(f,v) t1_Pragmatics(f,v)
+ #define ErrorMsg() t1_ErrorMsg()
+
+-struct xobject *t1_Permanent(); /* make an object permanent */
++struct xobject *t1_Permanent(struct xobject*); /* make an object permanent */
+ struct xobject *t1_Temporary(); /* make an object temporary */
+-struct xobject *t1_Destroy(); /* destroy an object */
+-struct xobject *t1_Dup(); /* duplicate an object */
++struct xobject *t1_Destroy(struct xobject*); /* destroy an object */
++struct xobject *t1_Dup(struct xobject*); /* duplicate an object */
+ void t1_InitImager(); /* initialize TYPE1IMAGER */
+ void t1_TermImager(); /* terminate TYPE1IMAGER */
+-void t1_Pragmatics(); /* set debug flags, etc. */
++void t1_Pragmatics(char*,int); /* set debug flags, etc. */
+ char *t1_ErrorMsg(); /* return last TYPE1IMAGER error message */
+
+ /*END SHARED*/
+@@ -70,18 +70,18 @@
+ #define Copy(obj) t1_Copy(obj)
+ #define Unique(obj) t1_Unique(obj)
+
+-void t1_abort(); /* crash; software logic error */
+-struct xobject *t1_Allocate(); /* allocate memory */
+-void t1_Free(); /* free memory */
+-struct xobject *t1_Unique(); /* make a unique temporary copy of an object */
+-struct xobject *t1_ArgErr(); /* handle argument errors */
+-struct xobject *t1_TypeErr(); /* handle 'bad type' argument errors */
++void t1_abort(char*); /* crash; software logic error */
++struct xobject *t1_Allocate(int, struct xobject*, int); /* allocate memory */
++void t1_Free(struct xobject*); /* free memory */
++struct xobject *t1_Unique(struct xobject*); /* make a unique temporary copy of an object */
++struct xobject *t1_ArgErr(char*, struct xobject*, struct xobject*); /* handle argument errors */
++struct xobject *t1_TypeErr(char*, struct xobject*, int, struct xobject*); /* handle 'bad type' argument errors */
+ #ifdef KPATHSEA
+ void t1_Consume PVAR1H(int); /* consume a variable number of arguments */
+ #else
+ void t1_Consume(); /* consume a variable number of arguments */
+ #endif
+-struct xobject *t1_Copy(); /* make a new copy, not reference bump PNM */
++struct xobject *t1_Copy(struct xobject*); /* make a new copy, not reference bump PNM */
+
+ /*END SHARED*/
+ /*SHARED*/
+@@ -300,21 +300,5 @@
+
+ extern void Xfree(void*);
+
+-/*
+-We define other routines formatting parameters
+-*/
+-#define DumpArea(area) t1_DumpArea(area)
+-#define DumpText(text) t1_DumpText(text)
+-#define DumpPath(path) t1_DumpPath(path)
+-#define DumpSpace(space) t1_DumpSpace(space)
+-#define DumpEdges(e) t1_DumpEdges(e)
+-#define FormatFP(s,p) t1_FormatFP(s,p)
+-
+-void t1_DumpArea(); /* dump a region structure */
+-void t1_DumpText(); /* dump a textpath structure */
+-void t1_DumpPath(); /* dump a path list */
+-void t1_DumpSpace(); /* dump a coordinate space structure */
+-void t1_DumpEdges(); /* dump a region's edge list */
+-void t1_FormatFP(); /* dump a format a "fractpel" coordinate */
+
+ /*END SHARED*/
+--- texlive-20080816-source/texk/ps2pkm/paths.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/paths.c 2025-09-25 18:52:38.602300630 +0200
+@@ -53,8 +53,8 @@
+ #include "trig.h"
+
+ #ifdef KPATHSEA
+-static int UnClose P1H(struct segment *);
+-extern void DumpText P1H(struct segment *);
++static int UnClose (struct segment *);
++extern void DumpText (struct segment *);
+ #else
+ static Unclose();
+ #endif
+@@ -128,12 +128,12 @@
+ for (p = p0, anchor = NULL; p != NULL; p = p->link) {
+
+ ARGCHECK((!ISPATHTYPE(p->type) || (p != p0 && p->last != NULL)),
+- "CopyPath: invalid segment", p, NULL, (0), struct segment *);
++ "CopyPath: invalid segment", (struct xobject*) p, NULL, (0), struct segment *);
+
+ if (p->type == TEXTTYPE)
+ n = (struct segment *) CopyText(p);
+ else
+- n = (struct segment *)Allocate(p->size, p, 0);
++ n = (struct segment *)Allocate(p->size, (struct xobject*) p, 0);
+ n->last = NULL;
+ if (anchor == NULL)
+ anchor = n;
+@@ -170,14 +170,14 @@
+
+ while (p != NULL) {
+ if (!ISPATHTYPE(p->type)) {
+- ArgErr("KillPath: bad segment", p, NULL);
++ ArgErr("KillPath: bad segment", (struct xobject*) p, NULL);
+ return;
+ }
+ linkp = p->link;
+ if (p->type == TEXTTYPE)
+ KillText(p);
+ else
+- Free(p);
++ Free((struct xobject*) p);
+ p = linkp;
+ }
+ }
+@@ -217,8 +217,8 @@
+
+ IfTrace3((MustTraceCalls),"..Loc(S=%z, x=%f, y=%f)\n", S, &x, &y);
+
+- r = (struct segment *)Allocate(sizeof(struct segment), &movetemplate, 0);
+- TYPECHECK("Loc", S, SPACETYPE, r, (0), struct segment *);
++ r = (struct segment *)Allocate(sizeof(struct segment), (struct xobject*) &movetemplate, 0);
++ TYPECHECK("Loc", (struct xobject*) S, SPACETYPE, (struct xobject*) r, (0), struct segment *);
+
+ r->last = r;
+ r->context = S->context;
+@@ -238,8 +238,8 @@
+
+ IfTrace3((MustTraceCalls),"..ILoc(S=%z, x=%d, y=%d)\n",
+ S, (LONG) x, (LONG) y);
+- r = (struct segment *)Allocate(sizeof(struct segment), &movetemplate, 0);
+- TYPECHECK("Loc", S, SPACETYPE, r, (0), struct segment *);
++ r = (struct segment *)Allocate(sizeof(struct segment), (struct xobject*) &movetemplate, 0);
++ TYPECHECK("Loc", (struct xobject*) S, SPACETYPE, (struct xobject*) r, (0), struct segment *);
+
+ r->last = r;
+ r->context = S->context;
+@@ -264,8 +264,8 @@
+ {
+ IfTrace2((MustTraceCalls),"SubLoc(%z, %z)\n", p1, p2);
+
+- ARGCHECK(!ISLOCATION(p1), "SubLoc: bad first arg", p1, NULL, (0), struct segment *);
+- ARGCHECK(!ISLOCATION(p2), "SubLoc: bad second arg", p2, NULL, (0), struct segment *);
++ ARGCHECK(!ISLOCATION(p1), "SubLoc: bad first arg", (struct xobject*) p1, NULL, (0), struct segment *);
++ ARGCHECK(!ISLOCATION(p2), "SubLoc: bad second arg", (struct xobject*) p2, NULL, (0), struct segment *);
+ p1 = UniquePath(p1);
+ p1->dest.x -= p2->dest.x;
+ p1->dest.y -= p2->dest.y;
+@@ -291,7 +291,7 @@
+ {
+ register struct segment *r; /* newly created segment */
+
+- r = (struct segment *)Allocate(sizeof(struct segment), &movetemplate, 0);
++ r = (struct segment *)Allocate(sizeof(struct segment), (struct xobject*) &movetemplate, 0);
+ r->type = type;
+ r->last = r; /* last points to itself for singleton */
+ r->dest.x = x;
+@@ -308,7 +308,7 @@
+ {
+
+ IfTrace1((MustTraceCalls),"..Line(%z)\n", P);
+- ARGCHECK(!ISLOCATION(P), "Line: arg not a location", P, NULL, (0), struct segment *);
++ ARGCHECK(!ISLOCATION(P), "Line: arg not a location", (struct xobject*) P, NULL, (0), struct segment *);
+
+ P = UniquePath(P);
+ P->type = LINETYPE;
+@@ -351,11 +351,11 @@
+ register struct beziersegment *r; /* output segment */
+
+ IfTrace3((MustTraceCalls),"..Bezier(%z, %z, %z)\n", B, C, D);
+- ARGCHECK(!ISLOCATION(B), "Bezier: bad B", B, NULL, (2,C,D), struct beziersegment *);
+- ARGCHECK(!ISLOCATION(C), "Bezier: bad C", C, NULL, (2,B,D), struct beziersegment *);
+- ARGCHECK(!ISLOCATION(D), "Bezier: bad D", D, NULL, (2,B,C), struct beziersegment *);
++ ARGCHECK(!ISLOCATION(B), "Bezier: bad B", (struct xobject*) B, NULL, (2,C,D), struct beziersegment *);
++ ARGCHECK(!ISLOCATION(C), "Bezier: bad C", (struct xobject*) C, NULL, (2,B,D), struct beziersegment *);
++ ARGCHECK(!ISLOCATION(D), "Bezier: bad D", (struct xobject*) D, NULL, (2,B,C), struct beziersegment *);
+
+- r = (struct beziersegment *)Allocate(sizeof(struct beziersegment), &template, 0);
++ r = (struct beziersegment *)Allocate(sizeof(struct beziersegment), (struct xobject*) &template, 0);
+ r->last = (struct segment *) r;
+ r->dest.x = D->dest.x;
+ r->dest.y = D->dest.y;
+@@ -396,7 +396,7 @@
+
+ register struct hintsegment *r;
+
+- r = (struct hintsegment *)Allocate(sizeof(struct hintsegment), &template, 0);
++ r = (struct hintsegment *)Allocate(sizeof(struct hintsegment), (struct xobject*) &template, 0);
+
+ r->orientation = orientation;
+ if (width == 0.0) width = 1.0;
+@@ -433,11 +433,11 @@
+ */
+ #define POP(p) \
+ { register struct segment *linkp; \
+- linkp = p->link; \
++ linkp = (struct segment*) p->link; \
+ if (linkp != NULL) \
+- linkp->last = p->last; \
+- Free(p); \
+- p = linkp; }
++ linkp->last = (struct segment*)p->last; \
++ Free((struct xobject*)p); \
++ p = (void*)linkp; }
+ /*
+ INSERT inserts a single segment in the middle of a chain. 'b' is
+ the segment before, 'p' the segment to be inserted, and 'a' the
+@@ -466,7 +466,7 @@
+ if (!ISPATHTYPE(p2->type)) {
+
+ if (p1 == NULL)
+- return((struct segment *)Unique(p2));
++ return((struct segment *)Unique((struct xobject*) p2));
+
+ switch (p1->type) {
+
+@@ -481,7 +481,7 @@
+ }
+ }
+
+- ARGCHECK((p2->last == NULL), "Join: right arg not anchor", p2, NULL, (1,p1), struct segment *);
++ ARGCHECK((p2->last == NULL), "Join: right arg not anchor", (struct xobject*) p2, NULL, (1,p1), struct segment *);
+ p2 = UniquePath(p2);
+
+ /*
+@@ -501,7 +501,7 @@
+ }
+ }
+ else
+- return((struct segment *)Unique(p1));
++ return((struct segment *)Unique((struct xobject*) p1));
+
+ if (p1 != NULL) {
+ if (!ISPATHTYPE(p1->type))
+@@ -518,7 +518,7 @@
+ return((struct segment *)EndHandle(p1, p2));
+ }
+
+- ARGCHECK((p1->last == NULL), "Join: left arg not anchor", p1, NULL, (1,p2), struct segment *);
++ ARGCHECK((p1->last == NULL), "Join: left arg not anchor", (struct xobject*) p1, NULL, (1,p2), struct segment *);
+ p1 = UniquePath(p1);
+ }
+ else
+@@ -555,7 +555,7 @@
+ if (ISLOCATION(p1)) {
+ p2->dest.x += p1->dest.x;
+ p2->dest.y += p1->dest.y;
+- Free(p1);
++ Free((struct xobject*) p1);
+ return(p2);
+ }
+ else
+@@ -617,7 +617,7 @@
+ if (p0 != NULL && p0->type == TEXTTYPE)
+ return(UniquePath(p0));
+ if (p0->type == STROKEPATHTYPE)
+- return((struct segment *)Unique(p0));
++ return((struct segment *)Unique((struct xobject*) p0));
+ /*
+ * NOTE: a null closed path is different from a null open path
+ * and is denoted by a closed (0,0) move segment. We make
+@@ -625,7 +625,7 @@
+ */
+ if (p0 == NULL || p0->type != MOVETYPE)
+ p0 = JoinSegment(NULL, MOVETYPE, 0, 0, p0);
+- TYPECHECK("ClosePath", p0, MOVETYPE, NULL, (0), struct segment *);
++ TYPECHECK("ClosePath", (struct xobject*) p0, MOVETYPE, NULL, (0), struct segment *);
+ if (p0->last->type != MOVETYPE)
+ p0 = JoinSegment(p0, MOVETYPE, 0, 0, NULL);
+
+@@ -697,9 +697,9 @@
+ We need three subroutines:
+ */
+
+-static struct segment *SplitPath(); /* break a path at any point */
+-static struct segment *DropSubPath(); /* breaks a path after first sub-path */
+-static struct segment *ReverseSubPath(); /* reverses a single sub-path */
++static struct segment *SplitPath(struct segment*, struct segment*); /* break a path at any point */
++static struct segment *DropSubPath(struct segment*); /* breaks a path after first sub-path */
++static struct segment *ReverseSubPath(struct segment*); /* reverses a single sub-path */
+
+ /*
+ :h3.Reverse() - User Operator to Reverse a Path
+@@ -718,7 +718,7 @@
+ if (p == NULL)
+ return(NULL);
+
+- ARGCHECK(!ISPATHANCHOR(p), "Reverse: invalid path", p, NULL, (0), struct segment *);
++ ARGCHECK(!ISPATHANCHOR(p), "Reverse: invalid path", (struct xobject*) p, NULL, (0), struct segment *);
+
+ if (p->type == TEXTTYPE)
+ p = CoerceText(p);
+@@ -882,7 +882,7 @@
+ if (p == NULL)
+ return(NULL);
+
+- ARGCHECK(!ISPATHANCHOR(p), "ReverseSubPaths: invalid path", p, NULL, (0), struct segment *);
++ ARGCHECK(!ISPATHANCHOR(p), "ReverseSubPaths: invalid path", (struct xobject*) p, NULL, (0), struct segment *);
+
+ if (p->type == TEXTTYPE)
+ p = CoerceText(p);
+@@ -924,7 +924,7 @@
+ return(r);
+ }
+
+-static UnClose(p0)
++static int UnClose(p0)
+ register struct segment *p0;
+ {
+ register struct segment *p;
+@@ -934,7 +934,7 @@
+ if (!LASTCLOSED(p->link->flag))
+ t1_abort("UnClose: no LASTCLOSED");
+
+- Free(SplitPath(p0, p));
++ Free((struct xobject*) SplitPath(p0, p));
+ p0->flag &= ~ISCLOSED(ON);
+ }
+
+@@ -1102,14 +1102,14 @@
+ IfTrace4((MustTraceCalls),"QueryLoc(P=%z, S=%z, (%x, %x))\n",
+ P, S, xP, yP);
+ if (!ISLOCATION(P)) {
+- ArgErr("QueryLoc: first arg not a location", P, NULL);
++ ArgErr("QueryLoc: first arg not a location", (struct xobject*) P, NULL);
+ return;
+ }
+ if (S->type != SPACETYPE) {
+- ArgErr("QueryLoc: second arg not a space", S, NULL);
++ ArgErr("QueryLoc: second arg not a space", (struct xobject*) S, NULL);
+ return;
+ }
+- UnConvert(S, &P->dest, xP, yP);
++ UnConvert(S, (void*)&P->dest, xP, yP);
+ }
+ /*
+ :h3.QueryPath() - Find Out the Type of Segment at the Head of a Path
+@@ -1139,7 +1139,7 @@
+ return;
+ }
+ if (!ISPATHANCHOR(path)) {
+- ArgErr("QueryPath: arg not a valid path", path, NULL);
++ ArgErr("QueryPath: arg not a valid path", (struct xobject*) path, NULL);
+ }
+ if (path->type == TEXTTYPE) {
+ path = CoerceText(path);
+@@ -1214,7 +1214,7 @@
+ IfTrace4((MustTraceCalls), " %x, %x, %x, %x)\n",
+ xminP, yminP, xmaxP, ymaxP);
+ if (S->type != SPACETYPE) {
+- ArgErr("QueryBounds: bad XYspace", S, NULL);
++ ArgErr("QueryBounds: bad XYspace", (struct xobject*) S, NULL);
+ return;
+ }
+
+@@ -1224,10 +1224,10 @@
+ switch(p0->type) {
+ case STROKEPATHTYPE:
+ /* replaced DupStrokePath() with Dup() 3-26-91 PNM */
+- p0 = (struct segment *) DoStroke(Dup(p0));
++ p0 = (struct segment *) DoStroke(Dup((struct xobject*) p0));
+ /* no break here, we have a region in p0 */
+ case REGIONTYPE:
+- p0 = RegionBounds(p0);
++ p0 = RegionBounds((struct region*)p0);
+ break;
+
+ case PICTURETYPE:
+@@ -1235,14 +1235,14 @@
+ break;
+
+ default:
+- ArgErr("QueryBounds: bad object", p0, NULL);
++ ArgErr("QueryBounds: bad object", (struct xobject*) p0, NULL);
+ return;
+ }
+ coerced = TRUE;
+ }
+ if (p0->type == TEXTTYPE) {
+ /* replaced CopyPath() with Dup() 3-26-91 PNM */
+- p0 = (struct segment *)CoerceText(Dup(p0)); /* there are faster ways */
++ p0 = (struct segment *)CoerceText(Dup((struct xobject*) p0)); /* there are faster ways */
+ coerced = TRUE;
+ }
+ if (p0->type == MOVETYPE) {
+@@ -1359,7 +1359,7 @@
+ else if (y4 > *ymaxP) *ymaxP = y4;
+
+ if (coerced)
+- Destroy(p0);
++ Destroy((struct xobject*) p0);
+ }
+ /*
+ :h3.BoxPath()
+@@ -1390,7 +1390,7 @@
+ if (path != NULL && path->type == STROKEPATHTYPE)
+ path = CoercePath(path);
+ ARGCHECK((path == NULL || !ISPATHANCHOR(path)),
+- "DropSegment: arg not a non-null path", path, path, (0), struct segment *);
++ "DropSegment: arg not a non-null path", (struct xobject*) path, (struct xobject*) path, (0), struct segment *);
+ if (path->type == TEXTTYPE)
+ path = CoerceText(path);
+ path = UniquePath(path);
+@@ -1413,7 +1413,7 @@
+ return(NULL);
+ if (path->type == STROKEPATHTYPE)
+ path = CoercePath(path);
+- ARGCHECK(!ISPATHANCHOR(path), "HeadSegment: arg not a path", path, path, (0), struct segment *);
++ ARGCHECK(!ISPATHANCHOR(path), "HeadSegment: arg not a path", (struct xobject*) path, (struct xobject*) path, (0), struct segment *);
+ if (path->type == TEXTTYPE)
+ path = CoerceText(path);
+ path = UniquePath(path);
+--- texlive-20080816-source/texk/ps2pkm/paths.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/paths.h 2025-09-25 20:09:37.729138835 +0200
+@@ -28,6 +28,8 @@
+ */
+ /*SHARED*/
+
++#pragma once
++
+ #include "types.h"
+
+ #define Loc(S,x,y) t1_Loc(S,(DOUBLE)x,(DOUBLE)y)
+@@ -51,27 +53,31 @@
+ #define QueryLoc(P,S,x,y) t1_QueryLoc(P,S,x,y)
+ #define QueryPath(p,t,B,C,D,r) t1_QueryPath(p,t,B,C,D,r)
+ #define QueryBounds(p,S,x1,y1,x2,y2) t1_QueryBounds(p,S,x1,y1,x2,y2)
++#define DumpPath(path) t1_DumpPath(path)
++#define DumpText(text) t1_DumpText(text)
+
+
+-struct segment *t1_Loc(); /* create a location object (or "move" segment) */
+-struct segment *t1_ILoc(); /* integer argument version of same */
+-struct segment *t1_Line(); /* straight line path segment */
+-struct segment *t1_Join(); /* join two paths or regions together */
+-struct segment *t1_ClosePath(); /* close a path or path set */
++struct segment *t1_Loc(struct XYspace*,DOUBLE,DOUBLE); /* create a location object (or "move" segment) */
++struct segment *t1_ILoc(struct XYspace*, int, int); /* integer argument version of same */
++struct segment *t1_Line(struct segment*); /* straight line path segment */
++struct segment *t1_Join(struct segment*, struct segment*); /* join two paths or regions together */
++struct segment *t1_ClosePath(struct segment*, int); /* close a path or path set */
+ struct conicsegment *t1_Conic(); /* conic curve path segment */
+ struct conicsegment *t1_RoundConic(); /* ditto, specified another way */
+ struct conicsegment *t1_ArcP3(); /* circular path segment with three points */
+ struct conicsegment *t1_ArcCA(); /* ditto, with center point and angle */
+-struct beziersegment *t1_Bezier(); /* Bezier third order curve path segment */
+-struct hintsegment *t1_Hint(); /* produce a font 'hint' path segment */
+-struct segment *t1_Reverse(); /* reverse the complete order of paths */
+-struct segment *t1_ReverseSubPaths(); /* reverse only sub-paths; moves unchanged */
+-struct segment *t1_SubLoc(); /* subtract two location objects */
+-struct segment *t1_DropSegment(); /* Drop the first segment in a path */
+-struct segment *t1_HeadSegment(); /* return the first segment in a path */
+-void t1_QueryLoc(); /* Query location; return its (x,y) */
+-void t1_QueryPath(); /* Query segment at head of a path */
+-void t1_QueryBounds(); /* Query the bounding box of a path */
++struct beziersegment *t1_Bezier(struct segment*,struct segment*,struct segment*); /* Bezier third order curve path segment */
++struct hintsegment *t1_Hint(struct XYspace *, float, float, char, char, char, char, int); /* produce a font 'hint' path segment */
++struct segment *t1_Reverse(struct segment*); /* reverse the complete order of paths */
++struct segment *t1_ReverseSubPaths(struct segment*); /* reverse only sub-paths; moves unchanged */
++struct segment *t1_SubLoc(struct segment*, struct segment*); /* subtract two location objects */
++struct segment *t1_DropSegment(struct segment*); /* Drop the first segment in a path */
++struct segment *t1_HeadSegment(struct segment*); /* return the first segment in a path */
++void t1_QueryLoc(struct segment*, struct XYspace*, DOUBLE*, DOUBLE*); /* Query location; return its (x,y) */
++void t1_QueryPath(struct segment*,int*,struct segment**,struct segment**,struct segment**,DOUBLE*); /* Query segment at head of a path */
++void t1_QueryBounds(struct segment*,struct XYspace*,DOUBLE*,DOUBLE*,DOUBLE*,DOUBLE*); /* Query the bounding box of a path */
++void t1_DumpPath(struct segment*); /* dump a path list */
++void t1_DumpText(struct segment*); /* dump a textpath structure */
+
+ /*END SHARED*/
+ /*SHARED*/
+@@ -86,14 +92,14 @@
+ #define Hypoteneuse(dx,dy) t1_Hypoteneuse(dx,dy)
+ #define BoxPath(S,h,w) t1_BoxPath(S,h,w)
+
+-struct segment *t1_CopyPath(); /* duplicate a path */
+-void t1_KillPath(); /* destroy a path */
+-struct segment *t1_PathXform(); /* transform a path arbitrarily */
+-void t1_PathDelta(); /* calculate the ending point of a path */
+-struct segment *t1_PathSegment(); /* produce a MOVE or LINE segment */
+-struct segment *t1_JoinSegment(); /* join a MOVE or LINE segment to a path */
++struct segment *t1_CopyPath(struct segment*); /* duplicate a path */
++void t1_KillPath(struct segment*); /* destroy a path */
++struct segment *t1_PathXform(struct segment*, struct XYspace*); /* transform a path arbitrarily */
++void t1_PathDelta(struct segment*, struct fractpoint*); /* calculate the ending point of a path */
++struct segment *t1_PathSegment(int, fractpel, fractpel); /* produce a MOVE or LINE segment */
++struct segment *t1_JoinSegment(struct segment *, int, fractpel, fractpel, struct segment *); /* join a MOVE or LINE segment to a path */
+ DOUBLE t1_Hypoteneuse(); /* returns the length of a line */
+-struct segment *t1_BoxPath(); /* returns a rectangular path */
++struct segment *t1_BoxPath(struct XYspace*,int,int); /* returns a rectangular path */
+
+ /*END SHARED*/
+ /*SHARED*/
+--- texlive-20080816-source/texk/ps2pkm/pictures.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/pictures.h 2025-09-25 23:48:57.210426003 +0200
+@@ -44,5 +44,5 @@
+ #define Phantom(o) t1_Phantom(o)
+ #define Snap(o) t1_Snap(o)
+
+-struct segment *t1_Phantom();
+-struct segment *t1_Snap();
++struct segment *t1_Phantom(struct xobject*);
++struct segment *t1_Snap(struct segment*);
+--- texlive-20080816-source/texk/ps2pkm/pk2bm.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/pk2bm.c 2025-09-25 01:48:22.442338401 +0200
+@@ -33,13 +33,14 @@
+ #include <stdio.h>
+ #include "pkin.h"
+
++void dots(quarterword u, int n);
++quarterword lsbf(quarterword u);
++
+ int main(int argc, char *argv[])
+ {
+ int done, C = 0, c, h = 0, w = 0, row, col;
+ unsigned int bitmap = 0, hexmap = 0;
+ halfword *word;
+- quarterword lsbf();
+- void dots();
+ chardesc cd;
+ char *myname = "pk2bm", *pkname;
+ int atoo(char *);
+--- texlive-20080816-source/texk/ps2pkm/pkin.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/pkin.c 2025-09-25 01:53:17.313982562 +0200
+@@ -25,7 +25,7 @@
+ /*
+ * Forward declaration
+ */
+-static void error();
++static void error(char*);
+
+ /*
+ * Now we have some routines to get stuff from the pk file. pkbyte returns
+@@ -149,7 +149,7 @@
+
+ static halfword (*realfunc)() ;
+ long PKremainder ;
+-static halfword handlehuge() ;
++static halfword handlehuge(unsigned short, unsigned short) ;
+
+ static halfword pkpackednum () {
+ register halfword i, j ;
+--- texlive-20080816-source/texk/ps2pkm/pkin.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/pkin.h 2025-09-25 01:45:45.066714255 +0200
+@@ -58,4 +58,4 @@
+ halfword *raster ;
+ } chardesc ;
+
+-int readchar();
++int readchar(char name[], shalfword c, chardesc *cd);
+--- texlive-20080816-source/texk/ps2pkm/ps2pk.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/ps2pk.c 2025-09-26 00:05:12.335812597 +0200
+@@ -201,7 +201,10 @@
+ FontEntryRec entry;
+ #define Succesful 85
+
+-extern int Type1OpenScalable ();
++extern int Type1OpenScalable(char **ev, struct _Font **ppFont, int flags,
++ struct _FontEntry *entry, char *fileName,
++ struct _FontScalable *vals, fsBitmapFormat format,
++ ULONG fmask, double efactor,double slant);
+ extern int Type1RegisterFontFileFunctions();
+ extern void Type1CloseFont();
+
+@@ -231,7 +234,7 @@
+ UINT32 old_checksum(encoding, int [256]);
+ UINT32 (*pchecksum)(encoding, int [256]) = checksum;
+
+-main(argc, argv)
++int main(argc, argv)
+ int argc; char *argv[];
+ { char *argp, c;
+ int done, i;
+@@ -673,7 +676,7 @@
+ return (long)p;
+ }
+
+-GetClientResolutions(resP)
++int GetClientResolutions(resP)
+ int *resP;
+ {
+ *resP = 0;
+@@ -702,9 +705,9 @@
+
+ void FontFileRegisterRenderer() { ; }
+
+-GenericGetBitmaps() { ; }
+-GenericGetExtents() { ; }
++int GenericGetBitmaps() { ; }
++int GenericGetExtents() { ; }
+
+ void FontParseXLFDName() { ; }
+-FontComputeInfoAccelerators() { ; }
++int FontComputeInfoAccelerators() { ; }
+ #endif
+--- texlive-20080816-source/texk/ps2pkm/regions.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/regions.c 2025-09-25 20:15:46.087988016 +0200
+@@ -51,7 +51,7 @@
+ #include "fonts.h"
+ #include "hints.h"
+ #include "strokes.h" /* to pick up 'DoStroke' */
+-static int Unwind();
++static int Unwind(struct edgelist*);
+ #ifdef HAVE_PROTOTYPES
+ static void newfilledge(register struct region *, fractpel, fractpel,
+ fractpel, fractpel, int);
+@@ -68,11 +68,11 @@
+ static int edgemin();
+ static int edgemax();
+ #endif
+-static struct edgelist *splitedge();
+-static int touches();
+-static int crosses();
+-static int edgecheck();
+-static struct edgelist *NewEdge();
++static struct edgelist *splitedge(struct edgelist*,pel);
++static int touches(int, pel*, pel*);
++static int crosses(int, pel*, pel*);
++static int edgecheck(struct edgelist *, int, int);
++static struct edgelist *NewEdge(pel,pel,pel,pel,pel*,int);
+
+ /*
+ :h3.Functions Provided to the TYPE1IMAGER User
+@@ -249,11 +249,11 @@
+
+ for (p=area->anchor; p != NULL; p=next) {
+ next = p->link;
+- Free(p);
++ Free((struct xobject*) p);
+ }
+ if (area->thresholded != NULL)
+ KillPicture(area->thresholded);
+- Free(area);
++ Free((struct xobject*) area);
+ }
+ /*
+ :h3.CopyRegion() - Makes a Copy of a Region
+@@ -265,7 +265,7 @@
+ register struct edgelist *last; /* loop variable */
+ register struct edgelist *p,*newp; /* loop variables */
+
+- r = (struct region *)Allocate(sizeof(struct region), area, 0);
++ r = (struct region *)Allocate(sizeof(struct region), (struct xobject*) area, 0);
+ r->anchor = NULL;
+
+ for (p=area->anchor; VALIDEDGE(p); p=p->link) {
+@@ -280,7 +280,7 @@
+ }
+ if (area->thresholded != NULL)
+ /* replaced DupPicture with Dup() 3-26-91 PNM */
+- r->thresholded = (struct picture *)Dup(area->thresholded);
++ r->thresholded = (struct picture *)Dup((struct xobject*) area->thresholded);
+ return(r);
+ }
+ /*
+@@ -321,7 +321,7 @@
+ #else
+ iy = ymin - (((int) xvalues) & (sizeof(LONG) - 1)) / sizeof(pel);
+ #endif
+- r = (struct edgelist *)Allocate(sizeof(struct edgelist), &template,
++ r = (struct edgelist *)Allocate(sizeof(struct edgelist), (struct xobject*) &template,
+ (ymax - iy) * sizeof(pel));
+
+ if (isdown) r->flag = ISDOWN(ON);
+@@ -416,10 +416,10 @@
+ else
+ p = CoercePath(p);
+
+- R = (struct region *)Allocate(sizeof(struct region), &EmptyRegion, 0);
++ R = (struct region *)Allocate(sizeof(struct region), (struct xobject*) &EmptyRegion, 0);
+
+- ARGCHECK(!ISPATHANCHOR(p), "Interior: bad path", p, R, (0), struct region *);
+- ARGCHECK((p->type != MOVETYPE), "Interior: path not closed", p, R, (0), struct region *);
++ ARGCHECK(!ISPATHANCHOR(p), "Interior: bad path", (struct xobject*) p, (struct xobject*) R, (0), struct region *);
++ ARGCHECK((p->type != MOVETYPE), "Interior: path not closed", (struct xobject*) p, (struct xobject*) R, (0), struct region *);
+
+
+ /* changed definition from !ISPERMANENT to references <= 1 3-26-91 PNM */
+@@ -497,14 +497,14 @@
+
+ while ((nextP != NULL) && (nextP->type == HINTTYPE)) {
+ if (ProcessHints)
+- ProcessHint(nextP, x + hint.x, y + hint.y, &hint);
++ ProcessHint((struct hintsegment*)nextP, x + hint.x, y + hint.y, &hint);
+
+ {
+ register struct segment *saveP = nextP;
+
+ nextP = nextP->link;
+ if (tempflag)
+- Free(saveP);
++ Free((struct xobject*) saveP);
+ }
+ }
+
+@@ -563,7 +563,7 @@
+ MOVETYPE at the end of the path, if it isn't closed:
+ */
+ if (!ISCLOSED(p->flag) && p->link != NULL)
+- return((struct region *)ArgErr("Fill: sub-path not closed", p, NULL));
++ return((struct region *)ArgErr("Fill: sub-path not closed", (struct xobject*) p, NULL));
+ break;
+
+ default:
+@@ -576,7 +576,7 @@
+ lastx = x; lasty = y;
+
+ if (tempflag)
+- Free(p);
++ Free((struct xobject*) p);
+ p = nextP;
+ }
+ ChangeDirection(CD_LAST, R, lastx, lasty, (fractpel) 0);
+@@ -758,7 +758,7 @@
+ int isdown; /* flag: TRUE means edge goes down, else up */
+ #endif
+ {
+- struct edgelist *swathxsort(); /* 'SortSwath' function */
++ struct edgelist *swathxsort(struct edgelist*, struct edgelist*); /* 'SortSwath' function */
+
+ register pel pelxmin,pelymin,pelxmax,pelymax; /* pel versions of bounds */
+ register struct edgelist *edge; /* newly created edge */
+@@ -813,7 +813,7 @@
+ struct edgelist *SortSwath(anchor, edge, swathfcn)
+ struct edgelist *anchor; /* list being built */
+ register struct edgelist *edge; /* incoming edge or pair of edges */
+- struct edgelist *(*swathfcn)(); /* horizontal sorter */
++ struct edgelist *(*swathfcn)(struct edgelist *, struct edgelist *); /* horizontal sorter */
+ {
+ register struct edgelist *before,*after;
+ struct edgelist base;
+@@ -946,7 +946,7 @@
+ if (y == list->ymin)
+ t1_abort("splitedge: would be null");
+
+- r = (struct edgelist *)Allocate(sizeof(struct edgelist), list, 0);
++ r = (struct edgelist *)Allocate(sizeof(struct edgelist), (struct xobject*) list, 0);
+ /*
+ At this point 'r' points to a copy of the single structure at 'list'.
+ We will make 'r' be the new split 'edgelist'--the lower half.
+@@ -1482,7 +1482,7 @@
+ /*
+ */
+
+-static OptimizeRegion(R)
++static int OptimizeRegion(R)
+ struct region *R; /* region to optimize */
+ {
+ register pel *xP; /* pel pointer for inner loop */
+--- texlive-20080816-source/texk/ps2pkm/regions.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/regions.h 2025-09-25 20:13:12.502637293 +0200
+@@ -27,6 +27,8 @@
+ * THIS SOFTWARE.
+ */
+ /*SHARED*/
++
++#include "paths.h"
+
+ #define Interior(p,rule) t1_Interior(p,rule)
+ #define Union(a1,a2) t1_Union(a1,a2)
+@@ -34,7 +36,7 @@
+ #define Complement(area) t1_Complement(area)
+ #define Overlap(a1,a2) t1_OverLap(a1,a2)
+
+-struct region *t1_Interior(); /* returns the interior of a closed path */
++struct region *t1_Interior(struct segment*,int); /* returns the interior of a closed path */
+ struct region *t1_Union(); /* set union of paths or regions */
+ struct region *t1_Intersect(); /* set intersection of regions */
+ struct region *t1_Complement(); /* complement of a region */
+@@ -47,11 +49,11 @@
+
+ #define ChangeDirection(type,R,x,y,dy) t1_ChangeDirection(type,R,x,y,dy)
+
+-void t1_ChangeDirection(); /* called when we change direction in Y */
++void t1_ChangeDirection(int, struct region*, fractpel, fractpel, fractpel); /* called when we change direction in Y */
+ #define CD_FIRST -1 /* enumeration of ChangeDirection type */
+ #define CD_CONTINUE 0 /* enumeration of ChangeDirection type */
+ #define CD_LAST 1 /* enumeration of ChangeDirection type */
+-
++
+ #define MoreWorkArea(R,x1,y1,x2,y2) t1_MoreWorkArea(R,x1,y1,x2,y2)
+ #define KillRegion(area) t1_KillRegion(area)
+ #define CopyRegion(area) t1_CopyRegion(area)
+@@ -62,17 +64,21 @@
+ #define CoerceRegion(p) t1_CoerceRegion(p)
+ #define MoveEdges(R,dx,dy) t1_MoveEdges(R,dx,dy)
+ #define UnJumble(R) t1_UnJumble(R)
++#define DumpArea(area) t1_DumpArea(area)
++#define DumpEdges(e) t1_DumpEdges(e)
+
+-void t1_MoreWorkArea(); /* get longer edge list for stepping */
+-struct region *t1_CopyRegion(); /* duplicate a region */
+-void t1_KillRegion(); /* destroy a region */
+-struct region *t1_BoxClip(); /* clip a region to a rectangle */
+-struct edgelist *t1_SortSwath(); /* sort edges onto growing edge list */
+-struct edgelist *t1_SwathUnion(); /* 'union' two edges into a swath */
+-struct segment *t1_RegionBounds(); /* returns bounding box of a region */
++void t1_MoreWorkArea(struct region*, fractpel, fractpel, fractpel, fractpel); /* get longer edge list for stepping */
++struct region *t1_CopyRegion(struct region*); /* duplicate a region */
++void t1_KillRegion(struct region*); /* destroy a region */
++struct region *t1_BoxClip(struct region*, pel, pel, pel, pel); /* clip a region to a rectangle */
++struct edgelist *t1_SortSwath(struct edgelist *,struct edgelist *,struct edgelist *(*)(struct edgelist *, struct edgelist *)); /* sort edges onto growing edge list */
++struct edgelist *t1_SwathUnion(struct edgelist*, struct edgelist*); /* 'union' two edges into a swath */
++struct segment *t1_RegionBounds(struct region*); /* returns bounding box of a region */
+ struct region *t1_CoerceRegion(); /* force text to become a true region */
+-void t1_MoveEdges(); /* moves the edge values in a region */
+-void t1_UnJumble(); /* sort the edges and reset the jumbled flag */
++void t1_MoveEdges(struct region*, fractpel, fractpel); /* moves the edge values in a region */
++void t1_UnJumble(struct region*); /* sort the edges and reset the jumbled flag */
++void t1_DumpArea(struct region*); /* dump a region structure */
++void t1_DumpEdges(struct edgelist*); /* dump a region's edge list */
+
+ /*END SHARED*/
+ /*SHARED*/
+--- texlive-20080816-source/texk/ps2pkm/spaces.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/spaces.c 2025-09-25 21:33:18.637147821 +0200
+@@ -46,8 +46,8 @@
+ #include "arith.h"
+ #include "trig.h"
+
+-static void FindFfcn();
+-static void FindIfcn();
++static void FindFfcn(DOUBLE, DOUBLE, fractpel (**)(DOUBLE,DOUBLE,DOUBLE,DOUBLE));
++static void FindIfcn(DOUBLE, DOUBLE, fractpel*, fractpel*, fractpel (**)(fractpel, fractpel, LONG, LONG));
+ /*
+ :h3.Entry Points Provided to the TYPE1IMAGER User
+ */
+@@ -125,7 +125,7 @@
+ struct XYspace *CopySpace(S)
+ register struct XYspace *S;
+ {
+- S = (struct XYspace *)Allocate(sizeof(struct XYspace), S, 0);
++ S = (struct XYspace *)Allocate(sizeof(struct XYspace), (struct xobject*) S, 0);
+ S->ID = NEXTID;
+ return(S);
+ }
+@@ -704,7 +704,7 @@
+ if (ISPATHTYPE(obj->type)) {
+ struct XYspace pseudo; /* local temporary space */
+ PseudoSpace(&pseudo, M);
+- return((struct xobject *) PathTransform(obj, &pseudo));
++ return((struct xobject *) PathTransform((struct segment*)obj, &pseudo));
+ }
+
+
+@@ -940,7 +940,7 @@
+ DOUBLE M[2][2]; /* temp matrix to build user's answer */
+
+ if (S->type != SPACETYPE) {
+- ArgErr("QuerySpace: not a space", S, NULL);
++ ArgErr("QuerySpace: not a space", (struct xobject*) S, NULL);
+ return;
+ }
+ MatrixMultiply(S->tofract.normal, IDENTITY->tofract.inverse, M);
+--- texlive-20080816-source/texk/ps2pkm/spaces.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/spaces.h 2025-09-25 21:34:55.300888320 +0200
+@@ -29,6 +29,13 @@
+ /*SHARED*/
+
+ #include "types.h"
++
++typedef SHORT pel; /* integer pel locations */
++typedef LONG fractpel; /* fractional pel locations */
++
++struct fractpoint {
++ fractpel x,y;
++} ;
+
+ #define USER t1_User
+ #define IDENTITY t1_Identity
+@@ -41,11 +48,11 @@
+ #define Warp(s1,o,s2) t1_Warp(s1,o,s2)
+
+ struct XYspace *t1_Context(); /* creates a coordinate space for a device */
+-struct xobject *t1_Transform(); /* transform an object */
++struct xobject *t1_Transform(struct xobject*, DOUBLE, DOUBLE, DOUBLE, DOUBLE); /* transform an object */
+ struct xobject *t1_Rotate(); /* rotate an object */
+-struct xobject *t1_Scale(); /* scale an object */
++struct xobject *t1_Scale(struct xobject*,DOUBLE,DOUBLE); /* scale an object */
+ struct xobject *t1_Warp(); /* transform like delta of two spaces */
+-void t1_QuerySpace(); /* returns coordinate space matrix */
++void t1_QuerySpace(struct XYspace*, DOUBLE*, DOUBLE*, DOUBLE*, DOUBLE*); /* returns coordinate space matrix */
+
+ /*END SHARED*/
+ /*SHARED*/
+@@ -59,15 +66,20 @@
+ #define MatrixInvert(A,B) t1_MInvert(A,B)
+ #define PseudoSpace(S,M) t1_PseudoSpace(S,M)
+ #define FindContext(M) t1_FindContext(M)
++#define DumpSpace(space) t1_DumpSpace(space)
++#define FormatFP(s,p) t1_FormatFP(s,p)
+
+ void t1_InitSpaces(); /* initialize pre-defined coordinate spaces */
+-struct XYspace *t1_CopySpace(); /* duplicate a coordinate space */
+-struct xobject *t1_Xform(); /* transform object by matrix */
+-void t1_UnConvert(); /* return user coordinates from device coordinates */
+-void t1_MMultiply(); /* multiply two matrices */
+-void t1_MInvert(); /* invert a matrix */
+-void t1_PseudoSpace(); /* force a coordinate space from a matrix */
++struct XYspace *t1_CopySpace(struct XYspace*); /* duplicate a coordinate space */
++struct xobject *t1_Xform(struct xobject*, DOUBLE[2][2]); /* transform object by matrix */
++void t1_UnConvert(struct XYspace*, struct fractpoint*, DOUBLE*, DOUBLE*); /* return user coordinates from device coordinates */
++void t1_MMultiply(DOUBLE[2][2], DOUBLE[2][2], DOUBLE[2][2]); /* multiply two matrices */
++void t1_MInvert(DOUBLE[2][2], DOUBLE[2][2]); /* invert a matrix */
++void t1_PseudoSpace(struct XYspace*, DOUBLE[2][2]); /* force a coordinate space from a matrix */
+ int t1_FindContext(); /* return the "context" represented by a matrix */
++void t1_DumpSpace(struct XYspace*); /* dump a coordinate space structure */
++void t1_FormatFP(char*, fractpel); /* dump a format a "fractpel" coordinate */
++
+
+ /*END SHARED*/
+ /*SHARED*/
+@@ -78,7 +90,7 @@
+
+ #define KillSpace(s) if ( (--(s->references) == 0) ||\
+ ( (s->references == 1) && ISPERMANENT(s->flag) ) )\
+- Free(s)
++ Free((struct xobject*)(s))
+
+ #define ConsumeSpace(s) MAKECONSUME(s,KillSpace(s))
+ #define UniqueSpace(s) MAKEUNIQUE(s,CopySpace(s))
+@@ -86,9 +98,6 @@
+ /*END SHARED*/
+ /*SHARED*/
+
+-typedef SHORT pel; /* integer pel locations */
+-typedef LONG fractpel; /* fractional pel locations */
+-
+ #define FRACTBITS 16 /* number of fractional bits in 'fractpel' */
+ /*
+ We define the following macros to convert from 'fractpel' to 'pel' and
+@@ -113,12 +122,12 @@
+ struct XYspace {
+ XOBJ_COMMON /* xobject common data define 3-26-91 PNM */
+ /* type = SPACETYPE */
+- void (*convert)(); /* calculate "fractpoint" X,Y from float X,Y */
+- void (*iconvert)(); /* calculate "fractpoint" X,Y from int X,Y */
+- fractpel (*xconvert)(); /* subroutine of convert */
+- fractpel (*yconvert)(); /* subroutine of convert */
+- fractpel (*ixconvert)(); /* subroutine of iconvert */
+- fractpel (*iyconvert)(); /* subroutine of iconvert */
++ void (*convert)(struct fractpoint*, struct XYspace*, DOUBLE, DOUBLE); /* calculate "fractpoint" X,Y from float X,Y */
++ void (*iconvert)(struct fractpoint*, struct XYspace*, LONG, LONG); /* calculate "fractpoint" X,Y from int X,Y */
++ fractpel (*xconvert)(DOUBLE, DOUBLE, DOUBLE, DOUBLE); /* subroutine of convert */
++ fractpel (*yconvert)(DOUBLE, DOUBLE, DOUBLE, DOUBLE); /* subroutine of convert */
++ fractpel (*ixconvert)(fractpel, fractpel, LONG, LONG); /* subroutine of iconvert */
++ fractpel (*iyconvert)(fractpel, fractpel, LONG, LONG); /* subroutine of iconvert */
+ int ID; /* unique identifier (used in font caching) */
+ unsigned char context; /* device context of coordinate space */
+ struct doublematrix tofract; /* xform to get to fractional pels */
+@@ -130,10 +139,6 @@
+ /*END SHARED*/
+ /*SHARED*/
+
+-struct fractpoint {
+- fractpel x,y;
+-} ;
+-
+ /*END SHARED*/
+ /*SHARED*/
+
+--- texlive-20080816-source/texk/ps2pkm/t1funcs.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/t1funcs.c 2025-09-25 21:55:42.309806008 +0200
+@@ -204,23 +204,23 @@
+ int rc;
+ QueryFontLib(fileName,"FontMatrix",fontmatrix,&rc);
+ if (!rc) {
+- S = (struct XYspace *) Transform(IDENTITY,
++ S = (struct XYspace *) Transform((struct xobject*) IDENTITY,
+ fontmatrix[0], fontmatrix[1], fontmatrix[2], fontmatrix[3]);
+ }
+ else {
+- S = (struct XYspace *) Scale(IDENTITY,0.001,0.001);
++ S = (struct XYspace *) Scale((struct xobject*) IDENTITY,0.001,0.001);
+ }
+ }
+ /* End of additional code */
+
+ if (efactor == 1.0 && slant == 0.0)
+- S = (struct XYspace *)Permanent(Scale(S, scale, - scale));
++ S = (struct XYspace *)Permanent(Scale((struct xobject*)S, scale, - scale));
+ else {
+ txx = (DOUBLE)vals->x * efactor * vals->point / DECIPOINTSPERINCH;
+ tyy = (DOUBLE)vals->y * vals->point / DECIPOINTSPERINCH;
+ tyx = 0.0;
+ txy = (DOUBLE)vals->x * slant * vals->point / DECIPOINTSPERINCH;
+- S = (struct XYspace *) Permanent(Transform(S, txx, tyx, txy, -tyy));
++ S = (struct XYspace *) Permanent(Transform((struct xobject*)S, txx, tyx, txy, -tyy));
+ }
+
+ glyphs = type1->glyphs;
+@@ -279,7 +279,7 @@
+ fill(glyphs[i].bits, h, paddedW, area, byte, bit, wordsize );
+ }
+
+- Destroy(area);
++ Destroy((struct xobject*) area);
+ }
+
+ if (i != 256 - FIRSTCOL) {
+@@ -542,7 +542,7 @@
+ }
+ }
+
+-
++
+ static FontRendererRec renderers[] = {
+ { ".pfa", 4, (int (*)()) 0, Type1OpenScalable,
+ (int (*)()) 0, Type1GetInfoScalable, 0 },
+@@ -550,7 +550,7 @@
+ (int (*)()) 0, Type1GetInfoScalable, 0 }
+ };
+
+-Type1RegisterFontFileFunctions()
++int Type1RegisterFontFileFunctions()
+ {
+ int i;
+
+--- texlive-20080816-source/texk/ps2pkm/t1imager.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/t1imager.h 2025-09-25 12:39:35.401508194 +0200
+@@ -43,18 +43,18 @@
+ */
+ extern path t1_Bezier();
+ extern path t1_ClosePath();
+-extern xobject t1_Destroy();
++extern xobject t1_Destroy(xobject);
+ extern xobject t1_Dup();
+ extern char *t1_ErrorMsg();
+ extern void t1_InitImager();
+-extern region t1_Interior();
++extern region t1_Interior(struct segment *,int);
+ extern location t1_ILoc();
+ extern xobject t1_Join();
+ extern path t1_Line();
+-extern xobject t1_Permanent();
++extern xobject t1_Permanent(xobject);
+ extern path t1_Phantom();
+ extern location t1_Loc();
+-extern xobject t1_Scale();
++extern xobject t1_Scale(xobject,DOUBLE,DOUBLE);
+ extern xobject t1_Snap();
+ extern location t1_SubLoc();
+ extern xobject t1_Temporary();
+--- texlive-20080816-source/texk/ps2pkm/t1io.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/t1io.c 2025-09-25 21:58:32.911308291 +0200
+@@ -59,10 +59,7 @@
+ STATIC unsigned char TheBuffer[F_BUFSIZ];
+
+ /* Our routines */
+-F_FILE *T1Open(), *T1Eexec();
+-int T1Close();
+-int T1Read(), T1Getc(), T1Ungetc();
+-STATIC int T1Decrypt(), T1Fill();
++STATIC int T1Decrypt(unsigned char*, int), T1Fill(F_FILE*);
+
+ /* -------------------------------------------------------------- */
+ /*ARGSUSED*/
+--- texlive-20080816-source/texk/ps2pkm/t1snap.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/t1snap.c 2025-09-25 21:59:33.461544379 +0200
+@@ -48,7 +48,7 @@
+ if (obj == NULL)
+ pt.x = pt.y = 0;
+ else
+- PathDelta(obj, &pt);
++ PathDelta((struct segment*)obj, &pt);
+
+ return(PathSegment(MOVETYPE, pt.x, pt.y));
+ }
+--- texlive-20080816-source/texk/ps2pkm/t1stdio.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/t1stdio.h 2025-09-25 21:00:28.903542554 +0200
+@@ -96,8 +96,11 @@
+ T1Getc(f) \
+ )
+
+-extern FILE *T1Open(), *T1eexec();
+-extern int T1Close(), T1ungetc(), T1Read();
++extern FILE *T1Open(char*, char*);
++extern FILE *T1eexec(F_FILE*);
++extern int T1Close(F_FILE*);
++extern int T1ungetc();
++extern int T1Read(char*, int, int, F_FILE*);
+
+ #define fclose(f) T1Close(f)
+ #define fopen(name,mode) T1Open(name,mode)
+--- texlive-20080816-source/texk/ps2pkm/t1stub.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/t1stub.c 2025-09-25 22:00:34.400963936 +0200
+@@ -30,7 +30,7 @@
+
+ #include "objects.h" /* get #define for t1_abort() */
+
+-xiStub()
++int xiStub()
+ {
+ printf("xiStub called\n");
+ t1_abort("xiStub called");
+--- texlive-20080816-source/texk/ps2pkm/token.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/token.c 2025-09-25 23:22:47.137032978 +0200
+@@ -1160,7 +1160,7 @@
+ int ch;
+ unsigned char *stateP = s0;
+ unsigned char entry;
+- int (*actionP)();
++ int (*actionP)(int);
+
+ /* Define input source */
+ inputFileP = inputP->data.fileP;
+--- texlive-20080816-source/texk/ps2pkm/token.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/token.h 2025-09-25 20:18:23.755455583 +0200
+@@ -56,7 +56,7 @@
+ #define TOKEN_IMMED_NAME (16)
+
+ /* Token routines */
+-extern void scan_token();
++extern void scan_token(psobj*);
+
+ /*
+ * -------------------------------------------------------------------------
+--- texlive-20080816-source/texk/ps2pkm/tokst.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/tokst.h 2025-09-25 23:22:14.998042993 +0200
+@@ -291,41 +291,41 @@
+ * state. There are several entries for each state.
+ *
+ */
+-static int AAH_NAME();
+-static int BREAK_SIGNAL();
+-static int HEX_STRING();
+-static int IMMED_NAME();
+-static int INTEGER();
+-static int LEFT_BRACE();
+-static int LEFT_BRACKET();
+-static int LITERAL_NAME();
+-static int NAME();
+-static int NO_TOKEN();
+-static int OOPS_NAME();
+-static int RADIX_NUMBER();
+-static int REAL();
+-static int RIGHT_ANGLE();
+-static int RIGHT_BRACE();
+-static int RIGHT_BRACKET();
+-static int RIGHT_PAREN();
+-static int STRING();
+-static int add_1st_decpt();
+-static int add_1st_digits();
+-static int add_char();
+-static int add_decpt();
+-static int add_digits();
+-static int add_e_sign();
+-static int add_exponent();
+-static int add_fraction();
+-static int add_r_digits();
+-static int add_radix();
+-static int add_sign();
+-static int next_char();
+-static int skip_comment();
+-static int skip_space();
++static int AAH_NAME(int);
++static int BREAK_SIGNAL(int);
++static int HEX_STRING(int);
++static int IMMED_NAME(int);
++static int INTEGER(int);
++static int LEFT_BRACE(int);
++static int LEFT_BRACKET(int);
++static int LITERAL_NAME(int);
++static int NAME(int);
++static int NO_TOKEN(int);
++static int OOPS_NAME(int);
++static int RADIX_NUMBER(int);
++static int REAL(int);
++static int RIGHT_ANGLE(int);
++static int RIGHT_BRACE(int);
++static int RIGHT_BRACKET(int);
++static int RIGHT_PAREN(int);
++static int STRING(int);
++static int add_1st_decpt(int);
++static int add_1st_digits(int);
++static int add_char(int);
++static int add_decpt(int);
++static int add_digits(int);
++static int add_e_sign(int);
++static int add_exponent(int);
++static int add_fraction(int);
++static int add_r_digits(int);
++static int add_radix(int);
++static int add_sign(int);
++static int next_char(int);
++static int skip_comment(int);
++static int skip_space(int);
+
+ static struct cat {
+- int (*actionRoutineP)();
++ int (*actionRoutineP)(int);
+ unsigned char *nextStateP;
+ } classActionTable[] = {
+
+--- texlive-20080816-source/texk/ps2pkm/type1.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/type1.c 2025-09-25 23:59:16.836085798 +0200
+@@ -58,7 +58,8 @@
+ typedef struct xobject xobject;
+ #include "util.h" /* PostScript objects */
+ #include "blues.h" /* Blues structure for font-level hints */
+-
++#include "fontfcn.h" /* Blues structure for font-level hints */
++
+ /**********************************/
+ /* Type1 Constants and Structures */
+ /**********************************/
+@@ -129,6 +130,9 @@
+ #define Error0(errmsg) { CC; IfTrace0(TRUE, errmsg); Error;}
+
+ #define Error1(errmsg,arg) { CC; IfTrace1(TRUE, errmsg, arg); Error;}
++
++#define Error_return(r) {errflag = TRUE; return (r);}
++#define Error0_return(errmsg, r) { CC; IfTrace0(TRUE, errmsg); Error_return(r);}
+
+ /********************/
+ /* global variables */
+@@ -266,10 +270,10 @@
+ if (i < blues->numFamilyBlues) { /* we must consider FamilyBlues */
+ p = ILoc(CharSpace,0,blues->BlueValues[i] - blues->BlueValues[i+1]);
+ QueryLoc(p, IDENTITY, &dummy, &bluezonepixels);
+- Destroy(p);
++ Destroy((struct xobject*) p);
+ p = ILoc(CharSpace,0,blues->FamilyBlues[i]-blues->FamilyBlues[i+1]);
+ QueryLoc(p, IDENTITY, &dummy, &familyzonepixels);
+- Destroy(p);
++ Destroy((struct xobject*) p);
+ /* is the difference in size of the zones less than 1 pixel? */
+ if (FABS(bluezonepixels - familyzonepixels) < 1.0) {
+ /* use the Family zones */
+@@ -292,11 +296,11 @@
+ if (i < blues->numFamilyOtherBlues) {/* consider FamilyOtherBlues */
+ p = ILoc(CharSpace,0,blues->OtherBlues[i] - blues->OtherBlues[i+1]);
+ QueryLoc(p, IDENTITY, &dummy, &bluezonepixels);
+- Destroy(p);
++ Destroy((struct xobject*) p);
+ p = ILoc(CharSpace,0,blues->FamilyOtherBlues[i] -
+ blues->FamilyOtherBlues[i+1]);
+ QueryLoc(p, IDENTITY, &dummy, &familyzonepixels);
+- Destroy(p);
++ Destroy((struct xobject*) p);
+ /* is the difference in size of the zones less than 1 pixel? */
+ if (FABS(bluezonepixels - familyzonepixels) < 1.0) {
+ /* use the Family zones */
+@@ -337,10 +341,10 @@
+ int i;
+
+ for (i = 0; i < numstems; i++) {
+- Destroy(stems[i].lbhint);
+- Destroy(stems[i].lbrevhint);
+- Destroy(stems[i].rthint);
+- Destroy(stems[i].rtrevhint);
++ Destroy((struct xobject*) stems[i].lbhint);
++ Destroy((struct xobject*) stems[i].lbrevhint);
++ Destroy((struct xobject*) stems[i].rthint);
++ Destroy((struct xobject*) stems[i].rtrevhint);
+ }
+ }
+
+@@ -404,7 +408,7 @@
+ else
+ p = ILoc(CharSpace, 0, 1);
+ QueryLoc(p, IDENTITY, &Xpixels, &Ypixels);
+- Destroy(p);
++ Destroy((struct xobject*) p);
+ if (verticalondevice)
+ unitpixels = FABS(Xpixels);
+ else
+@@ -571,10 +575,10 @@
+ rthintvalue = stemshift + widthdiff; /* top */
+ }
+
+- stems[stemno].lbhint = (struct segment *)Permanent(Loc(CharSpace, 0.0, lbhintvalue));
+- stems[stemno].lbrevhint = (struct segment *)Permanent(Loc(CharSpace, 0.0, -lbhintvalue));
+- stems[stemno].rthint = (struct segment *)Permanent(Loc(CharSpace, 0.0, rthintvalue));
+- stems[stemno].rtrevhint = (struct segment *)Permanent(Loc(CharSpace, 0.0, -rthintvalue));
++ stems[stemno].lbhint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, 0.0, lbhintvalue));
++ stems[stemno].lbrevhint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, 0.0, -lbhintvalue));
++ stems[stemno].rthint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, 0.0, rthintvalue));
++ stems[stemno].rtrevhint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, 0.0, -rthintvalue));
+
+ return;
+
+@@ -594,15 +598,15 @@
+ rthintvalue = stemshift + widthdiff / 2; /* right or top */
+
+ if (stems[stemno].vertical) {
+- stems[stemno].lbhint = (struct segment *)Permanent(Loc(CharSpace, lbhintvalue, 0.0));
+- stems[stemno].lbrevhint = (struct segment *)Permanent(Loc(CharSpace, -lbhintvalue, 0.0));
+- stems[stemno].rthint = (struct segment *)Permanent(Loc(CharSpace, rthintvalue, 0.0));
+- stems[stemno].rtrevhint = (struct segment *)Permanent(Loc(CharSpace, -rthintvalue, 0.0));
++ stems[stemno].lbhint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, lbhintvalue, 0.0));
++ stems[stemno].lbrevhint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, -lbhintvalue, 0.0));
++ stems[stemno].rthint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, rthintvalue, 0.0));
++ stems[stemno].rtrevhint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, -rthintvalue, 0.0));
+ } else {
+- stems[stemno].lbhint = (struct segment *)Permanent(Loc(CharSpace, 0.0, lbhintvalue));
+- stems[stemno].lbrevhint = (struct segment *)Permanent(Loc(CharSpace, 0.0, -lbhintvalue));
+- stems[stemno].rthint = (struct segment *)Permanent(Loc(CharSpace, 0.0, rthintvalue));
+- stems[stemno].rtrevhint = (struct segment *)Permanent(Loc(CharSpace, 0.0, -rthintvalue));
++ stems[stemno].lbhint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, 0.0, lbhintvalue));
++ stems[stemno].lbrevhint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, 0.0, -lbhintvalue));
++ stems[stemno].rthint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, 0.0, rthintvalue));
++ stems[stemno].rtrevhint = (struct segment *)Permanent((struct xobject*) Loc(CharSpace, 0.0, -rthintvalue));
+ }
+ }
+
+@@ -800,7 +804,7 @@
+ static DOUBLE PSFakePop ()
+ {
+ if (PSFakeTop >= 0) return(PSFakeStack[PSFakeTop--]);
+- else Error0("PSFakePop : Stack empty\n");
++ else Error0_return("PSFakePop : Stack empty\n", 0);
+ /*NOTREACHED*/
+ }
+
+@@ -823,7 +827,7 @@
+
+ p = Join(p, Loc(CharSpace, edge2, 0.0));
+ QueryLoc(p, IDENTITY, &rightx, &righty);
+- Destroy(p);
++ Destroy((struct xobject*) p);
+
+ widthx = FABS(rightx - leftx);
+ widthy = FABS(righty - lefty);
+@@ -1239,10 +1243,10 @@
+ /* Since XIMAGER is not completely relative, */
+ /* we need to add up the delta values */
+
+- C = Join(C, Dup(B));
+- D = Join(D, Dup(C));
++ C = Join(C, (struct segment*) Dup((struct xobject*) B));
++ D = Join(D, (struct segment*) Dup((struct xobject*) C));
+
+- path = Join(path, Bezier(B, C, D));
++ path = Join(path, (struct segment*)Bezier(B, C, D));
+ }
+
+ /* - CLOSEPATH |- */
+@@ -1253,7 +1257,7 @@
+ struct segment *CurrentPoint;
+
+ IfTrace0((FontDebug), "DoClosePath\n");
+- CurrentPoint = Phantom(path);
++ CurrentPoint = Phantom((struct xobject*) path);
+ path = ClosePath(path);
+ path = Join(Snap(path), CurrentPoint);
+ }
+@@ -1357,7 +1361,7 @@
+ path = NULL;
+
+ /* Go find the CharString for the accent's code via an upcall */
+- CharStringP = GetType1CharString(Environment, achar);
++ CharStringP = GetType1CharString((psfont*)Environment, achar);
+ if (CharStringP == NULL) {
+ Error1("Invalid accent ('%03o) in SEAC\n", achar);
+ return;
+@@ -1381,7 +1385,7 @@
+ accentoffsetX = accentoffsetY = 0;
+
+ /* go find the CharString for the base char's code via an upcall */
+- CharStringP = GetType1CharString(Environment, bchar);
++ CharStringP = GetType1CharString((psfont*)Environment, bchar);
+ StartDecrypt();
+
+ ClearStack();
+@@ -1453,13 +1457,13 @@
+ #define dtransform(dxusr,dyusr,dxdev,dydev) { \
+ register struct segment *point = Loc(CharSpace, dxusr, dyusr); \
+ QueryLoc(point, IDENTITY, dxdev, dydev); \
+- Destroy(point); \
++ Destroy((struct xobject*) point); \
+ }
+
+ #define itransform(xdev,ydev,xusr,yusr) { \
+ register struct segment *point = Loc(IDENTITY, xdev, ydev); \
+ QueryLoc(point, CharSpace, xusr, yusr); \
+- Destroy(point); \
++ Destroy((struct xobject*) point); \
+ }
+
+ #define transform(xusr,yusr,xdev,ydev) dtransform(xusr,yusr,xdev,ydev)
+@@ -1469,18 +1473,18 @@
+ #define lineto(x,y) { \
+ struct segment *CurrentPoint; \
+ DOUBLE CurrentX, CurrentY; \
+- CurrentPoint = Phantom(path); \
++ CurrentPoint = Phantom((struct xobject*) path); \
+ QueryLoc(CurrentPoint, CharSpace, &CurrentX, &CurrentY); \
+- Destroy(CurrentPoint); \
++ Destroy((struct xobject*) CurrentPoint); \
+ RLineTo(x - CurrentX, y - CurrentY); \
+ }
+
+ #define curveto(x0,y0,x1,y1,x2,y2) { \
+ struct segment *CurrentPoint; \
+ DOUBLE CurrentX, CurrentY; \
+- CurrentPoint = Phantom(path); \
++ CurrentPoint = Phantom((struct xobject*) path); \
+ QueryLoc(CurrentPoint, CharSpace, &CurrentX, &CurrentY); \
+- Destroy(CurrentPoint); \
++ Destroy((struct xobject*) CurrentPoint); \
+ RRCurveTo(x0 - CurrentX, y0 - CurrentY, x1 - x0, y1 - y0, x2 - x1, y2 - y1); \
+ }
+
+@@ -1533,7 +1537,7 @@
+ DOUBLE cx, cy;
+ DOUBLE ex, ey;
+
+- Destroy(path);
++ Destroy((struct xobject*) path);
+ path = FlxOldPath; /* Restore previous path (stored in FlxProc1) */
+
+ if (ProcessHints) {
+@@ -1678,7 +1682,7 @@
+ {
+ struct segment *CurrentPoint;
+
+- CurrentPoint = Phantom(path);
++ CurrentPoint = Phantom((struct xobject*) path);
+
+ FlxOldPath = path;
+ path = CurrentPoint;
+@@ -1692,9 +1696,9 @@
+ struct segment *CurrentPoint;
+ DOUBLE CurrentX, CurrentY;
+
+- CurrentPoint = Phantom(path);
++ CurrentPoint = Phantom((struct xobject*) path);
+ QueryLoc(CurrentPoint, CharSpace, &CurrentX, &CurrentY);
+- Destroy(CurrentPoint);
++ Destroy((struct xobject*) CurrentPoint);
+
+ /* Push CurrentPoint on fake PostScript stack */
+ PSFakePush(CurrentX);
+@@ -1816,7 +1820,7 @@
+ /* Clean up if an error has occurred */
+ if (errflag) {
+ if (path != NULL) {
+- Destroy(path); /* Reclaim storage */
++ Destroy((struct xobject*) path); /* Reclaim storage */
+ path = NULL; /* Indicate that character could not be built */
+ }
+ }
+--- texlive-20080816-source/texk/ps2pkm/util.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/util.c 2025-09-26 00:01:43.528520029 +0200
+@@ -34,7 +34,7 @@
+ #include "util.h"
+ #include "fontmisc.h"
+
+-extern char *Xalloc();
++extern char *Xalloc(size_t);
+
+ static char *vm_base = NULL; /* Start of virtual memory area */
+ char *vm_next = NULL; /* Pointer to first free byte */
+--- texlive-20080816-source/texk/ps2pkm/util.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/ps2pkm/util.h 2025-09-25 21:02:54.029048329 +0200
+@@ -77,7 +77,7 @@
+ extern LONG vm_free;
+ extern LONG vm_size;
+ extern char *vm_next;
+-extern char *vm_alloc();
++extern char *vm_alloc(unsigned int);
+ /***================================================================***/
+ /* Macros for managing virtual memory */
+ /***================================================================***/
+@@ -176,9 +176,4 @@
+ #define objPSetName(o) ((o)->type = OBJ_NAME)
+ #define objPSetFile(o) ((o)->type = OBJ_FILE)
+
+-/***================================================================***/
+-/* Entry point for Type1Char to get entry from CharStrings */
+-/***================================================================***/
+-extern psobj *GetType1CharString();
+-
+ #endif
+--- texlive-20080816-source/texk/seetexk/dviconcat.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/seetexk/dviconcat.c 2025-09-26 00:29:00.510283415 +0200
+@@ -94,7 +94,7 @@
+ void HandleDVIFile();
+ void HandleFontDef(i32);
+ void HandleSpecial(int, int, i32);
+-void UseFont();
++void UseFont(i32);
+ #ifdef _AMIGA
+ #define bcmp(s1, s2, len) memcmp(s1, s2, len)
+ #define bzero(s, len) memset(s, '\0', len)
+--- texlive-20080816-source/texk/seetexk/dviselect.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/seetexk/dviselect.c 2025-09-26 00:46:31.249217429 +0200
+@@ -184,7 +184,7 @@
+ /*
+ * Return true iff the 10 \counts are one of the desired output pages.
+ */
+-DesiredPageP()
++int DesiredPageP()
+ {
+ register struct pagelist *pl;
+
+--- texlive-20080816-source/texk/seetexk/error.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/seetexk/error.c 2025-09-26 00:36:40.613300519 +0200
+@@ -41,7 +41,7 @@
+ #endif
+
+ static FILE *trap_file; /* error diversion file, if any */
+-static void (*trap_fn)(); /* trap function */
++static void (*trap_fn)(int, char*); /* trap function */
+ static char *trap_buf; /* buffer for trapped error strings */
+ static int trap_size; /* size of trap_buf */
+
+@@ -49,7 +49,7 @@
+ extern char *malloc(), *realloc();
+ #endif
+
+-extern int MakeRWTempFile();
++extern int MakeRWTempFile(char*);
+
+
+ #if !defined (HAVE_STRERROR) && !defined (strerror)
+@@ -106,6 +106,7 @@
+ */
+ static void
+ verror(quit, a0, fmt, l, e)
++ int quit;
+ char *a0, *fmt;
+ va_list l;
+ int e;
+--- texlive-20080816-source/texk/seetexk/fio.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/seetexk/fio.h 2025-09-26 00:29:26.182851672 +0200
+@@ -50,4 +50,4 @@
+ /*
+ * Function types
+ */
+-i32 GetByte(), GetWord(), Get3Byte(), GetLong();
++i32 GetByte(FILE*), GetWord(FILE*), Get3Byte(FILE*), GetLong(FILE*);
+--- texlive-20080816-source/texk/seetexk/gripes0.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/seetexk/gripes0.c 2025-09-26 00:42:30.522974552 +0200
+@@ -19,7 +19,7 @@
+ #include "gripes.h"
+
+ #ifndef WIN32
+-extern errno;
++extern int errno;
+ #endif
+
+ /*
+--- texlive-20080816-source/texk/seetexk/gripes.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/seetexk/gripes.h 2025-09-26 00:27:44.875874060 +0200
+@@ -9,8 +9,8 @@
+ * Declarations for the various gripes.
+ */
+
+-void GripeOutOfMemory(), GripeCannotGetFont(), GripeDifferentChecksums();
+-void GripeMissingFontsPreventOutput(), GripeNoSuchFont();
+-void GripeFontAlreadyDefined(), GripeUnexpectedDVIEOF(), GripeUnexpectedOp();
+-void GripeMissingOp(), GripeCannotFindPostamble(), GripeMismatchedValue();
+-void GripeUndefinedOp(), GripeBadGlyph();
++void GripeOutOfMemory(int, char*), GripeCannotGetFont(char*, i32, i32, char*, char*), GripeDifferentChecksums(char*, i32, i32);
++void GripeMissingFontsPreventOutput(int), GripeNoSuchFont(i32);
++void GripeFontAlreadyDefined(i32), GripeUnexpectedDVIEOF(), GripeUnexpectedOp(char*);
++void GripeMissingOp(char*), GripeCannotFindPostamble(), GripeMismatchedValue(char*);
++void GripeUndefinedOp(int), GripeBadGlyph(i32, struct font*);
+--- texlive-20080816-source/texk/seetexk/search.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/seetexk/search.c 2025-09-26 00:41:12.465715579 +0200
+@@ -168,7 +168,7 @@
+ void
+ SEnumerate(s, f)
+ register struct search *s;
+- register void (*f)();
++ register void (*f)(char*, long);
+ {
+ register int n;
+ register char *p;
+--- texlive-20080816-source/texk/seetexk/search.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/seetexk/search.h 2025-09-26 00:40:41.836178878 +0200
+@@ -15,10 +15,10 @@
+ };
+
+ /* returns a pointer to the search table (for future search/installs) */
+-struct search *SCreate(); /* create a search table */
++struct search *SCreate(unsigned int); /* create a search table */
+
+ /* returns a pointer to the data object found or created */
+-char *SSearch(); /* search for a data object */
++char *SSearch(struct search*, i32, int*); /* search for a data object */
+
+ /* clears a search table (wipes out all entries) */
+ #define SClear(s) ((s)->s_space += (s)->s_n, (s)->s_n = 0)
+@@ -34,4 +34,4 @@
+ #define S_NEW 0x10 /* created (occurs iff S_CREATE && !S_EXCL) */
+ #define S_ERROR 0x20 /* problem creating (out of memory) */
+
+-void SEnumerate();
++void SEnumerate(struct search*, void (*)(char*, long));
+--- texlive-20080816-source/texk/seetexk/seek.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/seetexk/seek.h 2025-09-26 00:44:55.738696375 +0200
+@@ -10,9 +10,4 @@
+ * version of `fp' on which `fseek' functions properly;
+ * CopyFile(FILE *fp) returns a temporary copy of fp.
+ */
+-#ifdef WIN32
+-#undef CopyFile
+ FILE *SeekFile(FILE *fp), *CopyFile(FILE *fp);
+-#else
+-FILE *SeekFile(/* FILE *fp */), *CopyFile(/* FILE *fp */);
+-#endif
+--- texlive-20080816-source/texk/seetexk/tempfile.c.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/seetexk/tempfile.c 2025-09-26 00:43:54.077179261 +0200
+@@ -14,6 +14,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <sys/types.h>
+
+ #ifdef _AMIGA
+@@ -25,8 +26,6 @@
+ #else
+ #include <sys/file.h>
+
+-char *getenv();
+-
+ #endif
+
+ #ifdef KPATHSEA
+--- texlive-20080816-source/texk/tex4htk/t4ht.c.orig 2025-09-23 22:35:33.502071854 +0200
++++ texlive-20080816-source/texk/tex4htk/t4ht.c 2025-09-26 00:53:43.556588279 +0200
+@@ -221,15 +221,7 @@
+
+
+
+-#ifdef DOS
+ #define PROTOTYP
+-#endif
+-#ifdef ANSI
+-#define PROTOTYP
+-#endif
+-#ifdef KWIN32
+-#define PROTOTYP
+-#endif
+
+
+ #ifdef KPATHSEA
+--- texlive-20080816-source/texk/tex4htk/tex4ht.c.orig 2025-09-23 22:35:33.498224010 +0200
++++ texlive-20080816-source/texk/tex4htk/tex4ht.c 2025-09-26 00:52:39.461716649 +0200
+@@ -262,15 +262,7 @@
+
+
+
+-#ifdef DOS
+ #define PROTOTYP
+-#endif
+-#ifdef ANSI
+-#define PROTOTYP
+-#endif
+-#ifdef KWIN32
+-#define PROTOTYP
+-#endif
+
+
+
+--- texlive-20080816-source/texk/xdvik/dvi-draw.c.orig 2008-07-01 17:42:36.000000000 +0200
++++ texlive-20080816-source/texk/xdvik/dvi-draw.c 2025-09-26 01:17:17.066067524 +0200
+@@ -637,7 +637,6 @@
+ #ifdef VMS
+ #define off_t int
+ #endif
+-extern off_t lseek();
+
+ #ifndef SEEK_SET /* if <unistd.h> is not provided (or for <X11R5) */
+ #define SEEK_SET 0
+@@ -6195,8 +6194,6 @@
+
+ #if GREY
+
+-extern double pow();
+-
+ static void
+ mask_shifts(Pixel mask, int *pshift1, int *pshift2)
+ {
+--- texlive-20080816-source/texk/xdvik/gui/menu.c.orig 2008-07-01 17:42:36.000000000 +0200
++++ texlive-20080816-source/texk/xdvik/gui/menu.c 2025-09-26 01:08:33.044603646 +0200
+@@ -62,7 +62,7 @@
+
+
+ static void
+-set_menu_info(void *val, XtActionProc proc, Boolean (*cmp)(), struct button_info *item)
++set_menu_info(void *val, XtActionProc proc, Boolean (*cmp)(void*, const char*), struct button_info *item)
+ {
+ size_t i;
+ ASSERT(item != NULL, "item in set_menu_info musn't be NULL!");
+@@ -95,7 +95,7 @@
+
+ /* set a menu according to val and the compare function cmp */
+ void
+-set_menu(void *val, XtActionProc proc, Boolean (*cmp)())
++set_menu(void *val, XtActionProc proc, Boolean (*cmp)(void*, const char*))
+ {
+ /* removed following since cast from function pointer to void pointer is not supported by ANSI C */
+ /* TRACE_GUI((stderr, "set_menu_info: %d, %p, %p", *(int *)val, (void *)proc, (void *)cmp)); */
+--- texlive-20080816-source/texk/xdvik/gui/menu.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/xdvik/gui/menu.h 2025-09-26 01:09:36.889423372 +0200
+@@ -68,6 +68,6 @@
+ #endif
+ );
+
+-extern void set_menu(void *val, XtActionProc proc, Boolean (*cmp)());
++extern void set_menu(void *val, XtActionProc proc, Boolean (*cmp)(void*, const char*));
+
+ #endif /* MENU_H_ */
+--- texlive-20080816-source/texk/xdvik/gui/pagesel.c.orig 2008-07-01 17:42:36.000000000 +0200
++++ texlive-20080816-source/texk/xdvik/gui/pagesel.c 2025-09-26 01:11:07.280138697 +0200
+@@ -536,7 +536,7 @@
+ button_width = get_panel_width() - 2 * (resource.btn_side_spacing + resource.btn_border_width);
+ /* delete and re-create list */
+ ASSERT(total_pages <= (int)page_info.index_size, "");
+- XawListChange(LIST_WIDGET, page_info.page_labels, 0,
++ XawListChange(LIST_WIDGET, (const char **)page_info.page_labels, 0,
+ MAX(button_width, pagelist_width), False);
+ /* restore selected item */
+ if (idx != XAW_LIST_NONE) {
+--- texlive-20080816-source/texk/xdvik/gui/sfDraw.c.orig 2008-07-01 17:42:36.000000000 +0200
++++ texlive-20080816-source/texk/xdvik/gui/sfDraw.c 2025-09-26 01:14:21.677831678 +0200
+@@ -237,7 +237,7 @@
+ struct stat statBuf;
+ char save;
+ int last;
+- extern int SFchdir();
++ extern int SFchdir(char*);
+
+ /*
+ * must be restored before returning
+--- texlive-20080816-source/texk/xdvik/gui/sfDraw.h.orig 2006-01-17 22:41:51.000000000 +0100
++++ texlive-20080816-source/texk/xdvik/gui/sfDraw.h 2025-09-26 01:13:06.280020711 +0200
+@@ -58,7 +58,7 @@
+ void SFpathSliderMovedCallback(Widget w, XtPointer client_data, float *new);
+ void SFpathAreaSelectedCallback(Widget w, XtPointer client_data, int pnew);
+ Boolean SFworkProc(void);
+-extern int (*SFfunc)();
++extern int (*SFfunc)(char *, char **, struct stat *);
+
+ extern Widget selFileField, selFileForm, selFileHScroll, selFileHScrolls[], selFileLists[], selFileVScrolls[];
+ extern Display *SFdisplay;
+--- texlive-20080816-source/texk/xdvik/gui/sfSelFile.c.orig 2008-07-01 17:42:36.000000000 +0200
++++ texlive-20080816-source/texk/xdvik/gui/sfSelFile.c 2025-09-26 01:12:42.694038477 +0200
+@@ -117,7 +117,7 @@
+ int SFpathScrollWidth, SFvScrollHeight, SFhScrollWidth;
+ char SFtextBuffer[MAXPATHLEN];
+ XtIntervalId SFdirModTimerId;
+-int (*SFfunc) ();
++int (*SFfunc) (char *, char **, struct stat *);
+
+ static int SFstatus = SEL_FILE_NULL;
+
+--- texlive-20080816-source/texk/xdvik/squeeze.c.orig 2008-07-01 17:42:36.000000000 +0200
++++ texlive-20080816-source/texk/xdvik/squeeze.c 2025-09-26 01:29:44.797527257 +0200
+@@ -119,7 +119,6 @@
+ int c;
+ char *b;
+ char seeking;
+- extern void exit();
+
+ if (argc > 3 || (in = (argc < 2 ? stdin : fopen(argv[1], "r"))) == NULL ||
+ (out = (argc < 3 ? stdout : fopen(argv[2], "w"))) == NULL) {
+--- texlive-20080816-source/texk/xdvik/c-auto.in.orig 2008-07-01 17:42:36.000000000 +0200
++++ texlive-20080816-source/texk/xdvik/c-auto.in 2025-09-26 02:47:00.616700966 +0200
+@@ -324,3 +324,6 @@
+
+ /* Define as `fork' if `vfork' does not work. */
+ #undef vfork
++
++/* Define to 1 if your compiler understands prototypes. */
++#undef HAVE_PROTOTYPES
+--- texlive-20080816-source/texk/xdvik/configure.in.orig 2008-07-01 17:42:36.000000000 +0200
++++ texlive-20080816-source/texk/xdvik/configure.in 2025-09-26 01:23:48.494672672 +0200
+@@ -14,6 +14,17 @@
+ dnl allow for --program-suffix
+ AC_ARG_PROGRAM
+
++# Check whether prototypes work.
++AC_MSG_CHECKING(whether the compiler accepts prototypes)
++AC_CACHE_VAL(kb_cv_c_prototypes,
++[AC_TRY_COMPILE([#include <stdarg.h>], [extern void foo(int i,...);],
++ kb_cv_c_prototypes=yes, kb_cv_c_prototypes=no)])dnl
++AC_MSG_RESULT($kb_cv_c_prototypes)
++if test "$kb_cv_c_prototypes" = yes; then
++ AC_DEFINE([HAVE_PROTOTYPES], 1,
++ [Define to 1 if your compiler understands prototypes.])
++fi
++
+ sinclude(../kpathsea/withenable.ac)
+ sinclude(../../withenable.ac)
+ sinclude(kpathsea.ac)
+--- texlive-20080816-source/texk/xdvipdfmx/src/agl.c.orig 2008-05-21 15:19:17.000000000 +0200
++++ texlive-20080816-source/texk/xdvipdfmx/src/agl.c 2025-09-26 01:35:42.163636588 +0200
+@@ -52,6 +52,8 @@
+
+ #include "agl.h"
+
++int agl_load_line(char* p, char* endptr, int is_predef);
++
+ static int verbose = 0;
+
+ void
+--- texlive-20080816-source/texk/xdvipdfmx/src/pngimage.c.orig 2025-09-23 22:35:33.459171297 +0200
++++ texlive-20080816-source/texk/xdvipdfmx/src/pngimage.c 2025-09-26 01:41:24.080252279 +0200
+@@ -533,7 +533,7 @@
+ png_uint_32 proflen;
+
+ if (!png_get_valid(png_ptr, info_ptr, PNG_INFO_iCCP) ||
+- !png_get_iCCP(png_ptr, info_ptr, &name, &compression_type, &profile, &proflen))
++ !png_get_iCCP(png_ptr, info_ptr, &name, &compression_type, (png_bytepp) &profile, &proflen))
+ return NULL;
+
+ color_type = png_get_color_type(png_ptr, info_ptr);
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/texlive.git/commitdiff/4566fd19e445b7d886fc88a672ef237ffd5beed9
More information about the pld-cvs-commit
mailing list