SHA256
1
0
forked from pool/texlive
texlive/source-dviutils.dif

581 lines
15 KiB
Plaintext

---
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
@@ -14943,7 +14943,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
@@ -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"
@@ -123,10 +126,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
@@ -43,6 +43,8 @@ extern char *optarg;
extern int optind;
#endif
+#include <stdlib.h>
+#include <string.h>
#include "types.h"
#include "dviclass.h"
#include "dvicodes.h"
@@ -110,10 +112,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
@@ -633,7 +631,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);
@@ -639,6 +657,7 @@ main(int argc, char **argv)
Width = 0;
Height = 0;
Magnification = 1000;
+ MyMag = 0;
Modulo = 1;
ProgName = *argv;
@@ -750,12 +769,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)
/*