File source-dviutils.dif of Package texlive

---
 m4/kpse-kpathsea-flags.m4 |    2 +-
 texk/seetexk/a4toa5       |   26 ++++++++++++++++++++++++++
 texk/seetexk/configure    |    2 +-
 texk/seetexk/dvibook.c    |    7 +++----
 texk/seetexk/dviconcat.c  |    6 ++----
 texk/seetexk/dviselect.c  |    8 +++-----
 texk/seetexk/dvitodvi.c   |   41 ++++++++++++++++++++++++++++++++---------
 texk/seetexk/error.c      |   14 +++++---------
 texk/seetexk/gripes.h     |   21 +++++++++++----------
 texk/seetexk/gripes0.c    |   12 +++++-------
 texk/seetexk/gripes1.c    |   17 +++++++++--------
 texk/seetexk/mydvichk     |   12 ++++++++++++
 texk/seetexk/odd2even     |   22 ++++++++++++++++++++++
 texk/seetexk/search.c     |    5 +----
 texk/seetexk/seek.c       |   11 +++++------
 texk/seetexk/tempfile.c   |    5 ++---
 texk/seetexk/types.h      |    2 +-
 17 files changed, 141 insertions(+), 72 deletions(-)

--- m4/kpse-kpathsea-flags.m4
+++ m4/kpse-kpathsea-flags.m4	2021-04-07 09:56:20.318745619 +0000
@@ -16,7 +16,7 @@
 AC_DEFUN([KPSE_KPATHSEA_FLAGS], [dnl
 AC_REQUIRE([KPSE_SAVE_FLAGS])[]dnl
 _KPSE_TEXLIB_FLAGS([kpathsea], [kpathsea], [lt],
-                   [-IBLD/texk -ISRC/texk], [BLD/texk/kpathsea/libkpathsea.la], [],
+                   [-IBLD/texk/kpathsea -ISRC/texk/kpathsea -IBLD/texk -ISRC/texk], [BLD/texk/kpathsea/libkpathsea.la], [],
                    [${top_srcdir}/../kpathsea/*.[ch]],
                    [${top_builddir}/../kpathsea/paths.h])
 m4_if(m4_index([ $1 ], [ no-debug ]), [-1],
--- texk/seetexk/a4toa5
+++ texk/seetexk/a4toa5	2021-04-07 09:56:20.322745677 +0000
@@ -0,0 +1,26 @@
+#!/bin/csh -f
+# 1993 (c) Werner Fink <Werner.Fink@itap.physik.uni-stuttgart.de>
+#
+
+if (${#argv} <= 1) then
+  echo " ${0}: Usage:  infile  outfile"
+  exit
+endif
+
+set NumP=`mydvichk $1 | sed -e 's/totalpages=//g'`
+
+if (${NumP} % 2) then
+  echo " Odd number of pages --- this doesn't work"
+  echo " Please use odd2even: This gives an additional first pages" 
+  echo " Or"
+  echo " use dvibook: It sort the pages in book form"
+  exit
+endif
+
+echo "${0}: For Printing:  dvips -t landscape outfile"
+echo "${0}: For Viewing:   xdvi -paper a4r outfile"
+
+#
+#exec dvitodvi -q '2:707@0(-5.5mm,-10mm)+1(204mm,-10mm)' $1 $2
+#
+exec  dvitodvi -q '2:707@0(-5.5mm,-10mm)+1(190mm,-10mm)' $1 $2
--- texk/seetexk/configure
+++ texk/seetexk/configure	2021-04-07 09:56:20.322745677 +0000
@@ -16075,7 +16075,7 @@ elif test "x$need_kpathsea:$with_system_
   as_fn_error $? "did not find kpathsea" "$LINENO" 5
 fi
 else
-  KPATHSEA_INCLUDES="-I$kpse_BLD/texk -I$kpse_SRC/texk"
+  KPATHSEA_INCLUDES="-I$kpse_BLD/texk/kpathsea -I$kpse_SRC/texk/kpathsea -I$kpse_BLD/texk -I$kpse_SRC/texk"
   KPATHSEA_LIBS="$kpse_BLD/texk/kpathsea/libkpathsea.la"
   KPATHSEA_DEPEND='${top_builddir}/../kpathsea/libkpathsea.la'
   KPATHSEA_RULE='# Rebuild libkpathsea
--- texk/seetexk/dvibook.c
+++ texk/seetexk/dvibook.c	2021-04-07 09:59:15.141300494 +0000
@@ -49,6 +49,7 @@ extern int   optind;
 #include <sys/stat.h>
 #endif
 
+#include <stdlib.h>
 #include "types.h"
 #include "dviclass.h"
 #include "dvicodes.h"
@@ -57,6 +58,8 @@ extern int   optind;
 #include "gripes.h"
 #include "search.h"
 #include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
 #include <ctype.h>
 #include "seek.h"
 #include "common.h"
@@ -126,10 +129,6 @@ i32	Count[10];		/* the 10 \count variabl
 /* save some string space: we use this a lot */
 char	writeerr[] = "error writing DVI file";
 
-#ifndef KPATHSEA
-void *malloc(), *realloc();
-void free();
-#endif
 /*
  * You may get lint warnings about sprintf's return value.
  * Older versions of 4BSD have `char *sprintf()'.  ANSI and
--- texk/seetexk/dviconcat.c
+++ texk/seetexk/dviconcat.c	2021-04-07 09:56:20.322745677 +0000
@@ -46,6 +46,8 @@ extern int optind;
 #include <sys/stat.h>
 #endif
 
+#include <stdlib.h>
+#include <string.h>
 #include "types.h"
 #include "dviclass.h"
 #include "dvicodes.h"
@@ -113,10 +115,6 @@ char	writeerr[] = "error writing DVI fil
 
 static void HandleDVIFile(void);
 
-#ifndef KPATHSEA
-char	*malloc(), *realloc();
-#endif 
-
 /* extern int getopt(int, char **, char*); */
 
 /*
--- texk/seetexk/dviselect.c
+++ texk/seetexk/dviselect.c	2021-04-07 09:59:54.141870365 +0000
@@ -57,6 +57,8 @@ extern int optind;
 #include "gripes.h"
 #include "search.h"
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include <ctype.h>
 #include "common.h"
 
@@ -173,10 +175,6 @@ static void HandleDVIFile(void);
 static void PutFontSelector(i32);
 static void WritePreAmble(void);
 
-#ifndef KPATHSEA
-char	*malloc(), *realloc();
-#endif /* not KPATHSEA */
-
 /*
  * You may get lint warnings about sprintf's return value.
  * Older versions of 4BSD have `char *sprintf()'.  ANSI and
@@ -635,7 +633,7 @@ Usage: %s [-s] [-i infile] [-o outfile]
 static struct pagelist *
 InstallPL(struct pagesel *ps, int n, int absolute)
 {
-	register struct pagelist *pl;
+	struct pagelist *pl;
 
 	pl = (struct pagelist *)malloc(sizeof *pl);
 	if (pl == NULL)
--- texk/seetexk/dvitodvi.c
+++ texk/seetexk/dvitodvi.c	2021-04-07 10:02:34.816217795 +0000
@@ -46,6 +46,7 @@ extern char *optarg;
 extern int   optind;
 #endif
 
+#include <stdlib.h>
 #include "types.h"
 #include "dviclass.h"
 #include "dvicodes.h"
@@ -54,6 +55,8 @@ extern int   optind;
 #include "gripes.h"
 #include "search.h"
 #include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
 #include <ctype.h>
 #include "seek.h"
 #include "common.h"
@@ -89,6 +92,7 @@ struct fontinfo {
 i32     Width;                  /* width of page */
 i32     Height;                 /* height of page */
 i32     Magnification;          /* Magnification of pages */
+i32     MyMag;
 int     Modulo;                 /* page spec modulo */
 struct pagespec *PageSpecs;     /* page specification list */
 
@@ -128,10 +132,6 @@ i32	Count[10];		/* the 10 \count variabl
 
 /* save some string space: we use this a lot */
 char	writeerr[] = "error writing DVI file";
-#ifndef KPATHSEA
-void	*malloc(), *realloc();
-void	free();
-#endif
 
 static void WriteFont(struct fontinfo *fi);
 static void PutFontSelector(i32 index);
@@ -192,6 +192,15 @@ scale(i32 whole, int num, int den, i32 s
    return (v) ;
 }
 
+i32 myscale(i32 whole, i32 verus, i32 sf)
+{
+   i32 v;
+
+   v = (i32) (( (double)whole * ( (double)sf / (double)verus ) ) + 0.5 );
+   return(v);
+}
+
+
 struct pagespec {
    int reversed, pageno, add;
    i32 xoff, yoff;
@@ -299,6 +308,8 @@ parsedimen(char **sp)
       fac = Height;
       s++;
    }
+   if (MyMag)
+      fac = myscale(fac,MyMag,1000);
    whole = scale(whole, num, den, fac) ;
    *sp = s;
    return (neg ? -whole : whole);
@@ -501,9 +512,15 @@ HandlePostAmble(void)
 	PutLong(outf, Denominator);
 	PutLong(outf, DVIMag);
 	c = GetLong(inf);
-	PutLong(outf, c);	/* tallest page height */
+	if ( c >= Height )
+	   PutLong(outf, c);	/* tallest page height */
+	else
+	   PutLong(outf, Height);
 	c = GetLong(inf);
-	PutLong(outf, c);	/* widest page width */
+	if ( c >= Width )
+	   PutLong(outf, c);	/* widest page width */
+	else
+	   PutLong(outf, Width);
 	c = GetWord(inf)+1;
 	PutWord(outf, c);	/* DVI stack size */
 	PutWord(outf, NumberOfOutputPages);
@@ -601,7 +618,8 @@ HandlePreAmble(void)
 		    DVIFileName, DVI_VERSION);
 	Numerator = GetLong(inf);
 	Denominator = GetLong(inf);
-	DVIMag = GetLong(inf) * Magnification / 1000;
+	MyMag = GetLong(inf);
+	DVIMag = MyMag * Magnification / 1000;
 	putbyte(outf, DVI_PRE);
 	putbyte(outf, DVI_VERSION);
 	PutLong(outf, Numerator);
@@ -641,6 +659,7 @@ main(int argc, char **argv)
 	Width = 0;
 	Height = 0;
 	Magnification = 1000;
+	MyMag = 0;
 	Modulo = 1;
 
 	ProgName = *argv;
@@ -752,12 +771,16 @@ Usage: %s [-q] [-i infile] [-o outfile]
 	if (fseek(inf, 16L, 1) == -1)
 	        error(1, -1, "can't seek postamble");
 	if (Height == 0)         /* get height from postamble */
-	   Height = GetLong(inf);
+	   Height = myscale(GetLong(inf),1000,MyMag);
 	else
 	   (void) GetLong(inf); /* ignore height */
 	if (Width == 0)          /* get width from postamble */
-	   Width = GetLong(inf);
+	   Width = myscale(GetLong(inf),1000,MyMag);
+	else
+	   (void) GetLong(inf);
 	PageSpecs = ParseSpecs(specstring, 1);
+	Height = myscale(Height,MyMag,1000);
+	Width =  myscale(Width,MyMag,1000);
 
 	HandleDVIFile();
 	free(StartOfPage);
--- texk/seetexk/error.c
+++ texk/seetexk/error.c	2021-04-07 09:56:20.326745736 +0000
@@ -29,7 +29,12 @@
 #include <config.h>
 #endif
 
+#include <stdarg.h>
 #include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <c-auto.h>
+#include <errno.h>
 
 #include "types.h"
 #include "error.h"
@@ -37,20 +42,11 @@
 
 extern char *ProgName;		/* program name from argv[0] */
 
-#include <errno.h>
-#ifndef errno
-extern int errno;
-#endif
-
 static FILE *trap_file;		/* error diversion file, if any */
 static void (*trap_fn)(int, const char *);	/* trap function */
 static char *trap_buf;		/* buffer for trapped error strings */
 static int trap_size;		/* size of trap_buf */
 
-#ifndef KPATHSEA
-extern char *malloc(), *realloc();
-#endif
-
 #if !defined (HAVE_STRERROR) && !defined (strerror)
 static char *
 strerror (int errnum)
--- texk/seetexk/gripes.h
+++ texk/seetexk/gripes.h	2021-04-07 09:56:20.326745736 +0000
@@ -28,16 +28,17 @@ extern const char *DVIFileName;
  * Declarations for the various gripes.
  */
 
-void GripeOutOfMemory(int n, const char *why);
+#define __NR__ __attribute__ ((noreturn))
+void GripeOutOfMemory(int n, const char *why) __NR__;
 void GripeCannotGetFont(const char *name, i32 mag, i32 dsz, const char *dev, const char *fullname);
 void GripeDifferentChecksums(const char *font, i32 tfmsum, i32 fontsum);
-void GripeMissingFontsPreventOutput(int n);
-void GripeNoSuchFont(i32 n);
-void GripeFontAlreadyDefined(i32 n);
-void GripeUnexpectedDVIEOF(void);
-void GripeUnexpectedOp(const char *s);
-void GripeMissingOp(const char *s);
-void GripeCannotFindPostamble(void);
-void GripeMismatchedValue(const char *s);
-void GripeUndefinedOp(int n);
+void GripeMissingFontsPreventOutput(int n) __NR__;
+void GripeNoSuchFont(i32 n) __NR__;
+void GripeFontAlreadyDefined(i32 n) __NR__;
+void GripeUnexpectedDVIEOF(void) __NR__;
+void GripeUnexpectedOp(const char *s) __NR__;
+void GripeMissingOp(const char *s) __NR__;
+void GripeCannotFindPostamble(void) __NR__;
+void GripeMismatchedValue(const char *s) __NR__;
+void GripeUndefinedOp(int n) __NR__;
 void GripeBadGlyph(i32 c, struct font *f);
--- texk/seetexk/gripes0.c
+++ texk/seetexk/gripes0.c	2021-04-07 09:56:20.326745736 +0000
@@ -28,10 +28,8 @@
 #include "error.h"
 #include "gripes.h"
 #include <stdio.h>
-
-#ifndef WIN32
-extern int errno;
-#endif
+#include <stdlib.h>
+#include <errno.h>
 
 /*
  * Cannot allocate memory.
@@ -41,7 +39,7 @@ GripeOutOfMemory(int n, const char *why)
 {
 
 	error(1, -1, "ran out of memory allocating %d bytes for %s", n, why);
-	/* NOTREACHED */
+	exit(-1); /* NOTREACHED */
 }
 
 /*
@@ -86,7 +84,7 @@ WARNING: TeX and I have different checks
 \t\"%s\"\n\
 \tPlease notify your TeX maintainer\n\
 \t(TFM checksum = 0%lo, my checksum = 0%lo)",
-		font, (long)tfmsum, (long)fontsum);
+		font ? font : "", (long)tfmsum, (long)fontsum);
 }
 
 /*
@@ -99,5 +97,5 @@ GripeMissingFontsPreventOutput(int n)
 
 	error(1, 0, "%d missing font%s prevent%s output (sorry)", n,
 		n > 1 ? s : &s[1], n == 1 ? s : &s[1]);
-	/* NOTREACHED */
+	exit(0); /* NOTREACHED */
 }
--- texk/seetexk/gripes1.c
+++ texk/seetexk/gripes1.c	2021-04-07 09:56:20.326745736 +0000
@@ -29,6 +29,7 @@
 #include "font.h"
 #include "gripes.h"
 #include <stdio.h>
+#include <stdlib.h>
 
 static const char *
 dfn(void)
@@ -40,7 +41,7 @@ dfn(void)
 /*
  * Save string space by declaring these here.
  */
-#if __STDC__ >= 1
+#if 0
 static const char dfl[] = "DVI file";
 static const char areyousure[] = "(are you sure %s is a %s?)";
 #else
@@ -57,7 +58,7 @@ GripeNoSuchFont(i32 n)
 
 	error(0, 0, "%s wants font %ld, which it never defined", dfl, (long)n);
 	error(1, 0, areyousure, dfn(), dfl);
-	/* NOTREACHED */
+	exit (0); /* NOTREACHED */
 }
 
 /*
@@ -69,7 +70,7 @@ GripeFontAlreadyDefined(i32 n)
 
 	error(0, 0, "%s redefines font %ld", dfl, n);
 	error(1, 0, areyousure, dfn(), dfl);
-	/* NOTREACHED */
+	exit (0); /* NOTREACHED */
 }
 
 /*
@@ -92,7 +93,7 @@ GripeUnexpectedOp(const char *s)
 
 	error(0, 0, "unexpected %s in %s", s, dfl);
 	error(1, 0, areyousure, dfn(), dfl);
-	/* NOTREACHED */
+	exit (0); /* NOTREACHED */
 }
 
 /*
@@ -104,7 +105,7 @@ GripeMissingOp(const char *s)
 
 	error(0, 0, "missing %s in %s", s, dfl);
 	error(1, 0, areyousure, dfn(), dfl);
-	/* NOTREACHED */
+	exit (0); /* NOTREACHED */
 }
 
 /*
@@ -116,7 +117,7 @@ GripeCannotFindPostamble(void)
 
 	error(0, 0, "cannot find postamble");
 	error(1, 0, areyousure, dfn(), dfl);
-	/* NOTREACHED */
+	exit (0); /* NOTREACHED */
 }
 
 /*
@@ -128,7 +129,7 @@ GripeMismatchedValue(const char *s)
 
 	error(0, 0, "mismatched %s in %s", s, dfl);
 	error(1, 0, areyousure, dfn(), dfl);
-	/* NOTREACHED */
+	exit (0); /* NOTREACHED */
 }
 
 /*
@@ -140,7 +141,7 @@ GripeUndefinedOp(int n)
 
 	error(0, 0, "undefined DVI opcode %d", n);
 	error(1, 0, areyousure, dfn(), dfl);
-	/* NOTREACHED */
+	exit (0); /* NOTREACHED */
 }
 
 /*
--- texk/seetexk/mydvichk
+++ texk/seetexk/mydvichk	2021-04-07 09:56:20.326745736 +0000
@@ -0,0 +1,12 @@
+#!/bin/csh -f
+# 1993 (c) Werner Fink <Werner.Fink@itap.physik.uni-stuttgart.de>
+#
+dvitype ${1} <<DONE |& tr " " "\012" | fgrep totalpages
+0
+
+
+
+0
+DONE
+
+exit(0)
--- texk/seetexk/odd2even
+++ texk/seetexk/odd2even	2021-04-07 09:56:20.330745794 +0000
@@ -0,0 +1,22 @@
+#!/bin/csh -f
+# 1993 (c) Werner Fink <Werner.Fink@itap.physik.uni-stuttgart.de>
+#
+
+if (${#argv} <= 1) then
+  echo " ${0}: Usage:  infile  outfile"
+  exit
+endif
+
+set NumP=`mydvichk $1 | sed -e 's/totalpages=//g'`
+
+if (${NumP} % 2) then
+  dviselect -s '=1' $1 | \
+  dvibook   -q         | \
+  dviselect -s '=1'    | \
+   dviconcat -o $2 - $1 >& /dev/null
+  echo " ${0}: ready"
+else
+  echo " ${0}: even number of pages --- nothing to do"
+endif
+
+exit 0
--- texk/seetexk/search.c
+++ texk/seetexk/search.c	2021-04-07 09:56:20.330745794 +0000
@@ -34,6 +34,7 @@
  * it runs in increasing-key-value sequence).
  */
 
+#include <stdlib.h>
 #include "types.h"
 #include "search.h"
 
@@ -45,10 +46,6 @@
 
 static int DOffset;		/* part of alignment code */
 
-#ifndef KPATHSEA
-char	*malloc(), *realloc();
-#endif
-
 struct search *
 SCreate(unsigned int dsize)
 {
--- texk/seetexk/seek.c
+++ texk/seetexk/seek.c	2021-04-07 09:56:20.330745794 +0000
@@ -43,6 +43,10 @@
 #endif
 
 #include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <errno.h>
 #include "types.h"		/* for BSD_FILE_SYSTEM */
 #include "seek.h"
 #include "tempfile.h"
@@ -55,12 +59,7 @@
 #endif
 #include <sys/stat.h>
 
-#ifndef KPATHSEA
-long	lseek();
-char	*malloc();
-
-extern int errno;
-#endif
+extern int MakeRWTempFile();
 
 /*
  * Make and return a version of `f' on which fseek works (unconditionally).
--- texk/seetexk/tempfile.c
+++ texk/seetexk/tempfile.c	2021-04-07 09:56:20.330745794 +0000
@@ -25,6 +25,7 @@
 #endif
 
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/types.h>
 
 #ifdef HAVE_UNISTD_H
@@ -39,9 +40,7 @@
 #include "types.h"
 #else
 #include <sys/file.h>
-
-char	*getenv();
-
+#include <unistd.h>
 #endif
 
 #include "tempfile.h"
--- texk/seetexk/types.h
+++ texk/seetexk/types.h	2021-04-07 09:56:20.330745794 +0000
@@ -58,7 +58,7 @@
  *
  * (The bcopy provided in lib/bcopy.c does handle overlap.)
  */
-/* #define BLOCK_COPY(from, to, len) memmove(to, from, len) */
+#include <string.h>
 #define BLOCK_COPY(from, to, len) memmove(to, from, len)
 
 /*
openSUSE Build Service is sponsored by