v06i055: dvi2tty patch 2
Brandon S. Allbery - comp.sources.misc
allbery at uunet.UU.NET
Wed Mar 8 11:17:56 AEST 1989
Posting-number: Volume 6, Issue 55
Submitted-by: marcel at nluug.nl (Marcel Mol)
Archive-name: dvi2tty.patch2
Thsi patch fixes some bugs in the check for the .dvi extension
in a given filename, and some dependencies on argument evaluation order.
Furthermore, ligatures are treated better.
Also bugs in the disdvi program are fixed: the given offset in the
file was not always right.
- Marcel
======================================================================
*** ORG/disdvi.c
--- disdvi.c
**************
*** 68,74
exit(2);
}
if ((i >= 5) && (argv[1][i-4] == '.') && (argv[1][i-3] == 'd') &&
! (argv[1][i-2] = 'v') && (argv[1][i-1] = 'i'))
dvi_name = argv[1];
else {
dvi_name = malloc((i+4) * sizeof(char));
--- 68,74 -----
exit(2);
}
if ((i >= 5) && (argv[1][i-4] == '.') && (argv[1][i-3] == 'd') &&
! (argv[1][i-2] == 'v') && (argv[1][i-1] == 'i'))
dvi_name = argv[1];
else {
dvi_name = malloc((i+5) * sizeof(char));
**************
*** 71,77
(argv[1][i-2] = 'v') && (argv[1][i-1] = 'i'))
dvi_name = argv[1];
else {
! dvi_name = malloc((i+4) * sizeof(char));
strcpy(dvi_name, argv[1]);
strcat(dvi_name, ".dvi");
}
--- 71,77 -----
(argv[1][i-2] == 'v') && (argv[1][i-1] == 'i'))
dvi_name = argv[1];
else {
! dvi_name = malloc((i+5) * sizeof(char));
strcpy(dvi_name, argv[1]);
strcat(dvi_name, ".dvi");
}
**************
*** 111,118
case SET4 : printf("SET%d: %ld\n", opcode - SET1 + 1,
num(opcode - SET1 + 1));
break;
! case SET_RULE : printf("SET_RULE: %ld, %ld\n", sget4(),
! sget4());
break;
case PUT1 :
case PUT2 :
--- 111,119 -----
case SET4 : printf("SET%d: %ld\n", opcode - SET1 + 1,
num(opcode - SET1 + 1));
break;
! case SET_RULE : printf("SET_RULE: height: %ld\n", sget4());
! printf("%06ld: ", pc);
! printf(" length: %ld\n", sget4());
break;
case PUT1 :
case PUT2 :
**************
*** 120,127
case PUT4 : printf("PUT%d: %ld\n", opcode - PUT1 + 1,
num(opcode - PUT1 + 1));
break;
! case PUT_RULE : printf("PUT_RULE: %ld, %ld\n", sget4(),
! sget4());
break;
case NOP : printf("NOP\n"); break;
case BOP : bop(); break;
--- 121,129 -----
case PUT4 : printf("PUT%d: %ld\n", opcode - PUT1 + 1,
num(opcode - PUT1 + 1));
break;
! case PUT_RULE : printf("PUT_RULE: height: %ld\n", sget4());
! printf("%06ld: ", pc);
! printf(" length: %ld\n", sget4());
break;
case NOP : printf("NOP\n"); break;
case BOP : bop(); break;
**************
*** 198,207
{
int i;
! printf("BOP page number : %ld\n", sget4());
! for (i=0; i < 3; i++) {
! printf("%06ld: ", pc - 1);
! printf(" %6ld %6ld %6ld\n", sget4(), sget4(), sget4());
}
printf("%06ld: ", pc - 1);
printf(" prev page offset : %06ld\n", sget4());
--- 200,210 -----
{
int i;
! printf("BOP page number : %ld", sget4());
! for (i=0; i < 9; i++) {
! if (i % 3 == 0)
! printf("\n%06ld: ", pc);
! printf(" %6ld", sget4());
}
printf("\n%06ld: ", pc);
printf(" prev page offset : %06ld\n", sget4());
**************
*** 203,209
printf("%06ld: ", pc - 1);
printf(" %6ld %6ld %6ld\n", sget4(), sget4(), sget4());
}
! printf("%06ld: ", pc - 1);
printf(" prev page offset : %06ld\n", sget4());
} /* bop */
--- 206,212 -----
printf("\n%06ld: ", pc);
printf(" %6ld", sget4());
}
! printf("\n%06ld: ", pc);
printf(" prev page offset : %06ld\n", sget4());
} /* bop */
**************
*** 215,221
{
printf("POST last page offset : %06ld\n", sget4());
! printf("%06ld: ", pc - 1);
printf(" numerator : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" denominator : %ld\n", get4());
--- 218,224 -----
{
printf("POST last page offset : %06ld\n", sget4());
! printf("%06ld: ", pc);
printf(" numerator : %ld\n", get4());
printf("%06ld: ", pc);
printf(" denominator : %ld\n", get4());
**************
*** 217,223
printf("POST last page offset : %06ld\n", sget4());
printf("%06ld: ", pc - 1);
printf(" numerator : %ld\n", get4());
! printf("%06ld: ", pc - 1);
printf(" denominator : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" magnification : %ld\n", get4());
--- 220,226 -----
printf("POST last page offset : %06ld\n", sget4());
printf("%06ld: ", pc);
printf(" numerator : %ld\n", get4());
! printf("%06ld: ", pc);
printf(" denominator : %ld\n", get4());
printf("%06ld: ", pc);
printf(" magnification : %ld\n", get4());
**************
*** 219,225
printf(" numerator : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" denominator : %ld\n", get4());
! printf("%06ld: ", pc - 1);
printf(" magnification : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" max page height : %ld\n", get4());
--- 222,228 -----
printf(" numerator : %ld\n", get4());
printf("%06ld: ", pc);
printf(" denominator : %ld\n", get4());
! printf("%06ld: ", pc);
printf(" magnification : %ld\n", get4());
printf("%06ld: ", pc);
printf(" max page height : %ld\n", get4());
**************
*** 221,227
printf(" denominator : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" magnification : %ld\n", get4());
! printf("%06ld: ", pc - 1);
printf(" max page height : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" max page width : %ld\n", get4());
--- 224,230 -----
printf(" denominator : %ld\n", get4());
printf("%06ld: ", pc);
printf(" magnification : %ld\n", get4());
! printf("%06ld: ", pc);
printf(" max page height : %ld\n", get4());
printf("%06ld: ", pc);
printf(" max page width : %ld\n", get4());
**************
*** 223,229
printf(" magnification : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" max page height : %ld\n", get4());
! printf("%06ld: ", pc - 1);
printf(" max page width : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" stack size needed: %d\n", (int) get2());
--- 226,232 -----
printf(" magnification : %ld\n", get4());
printf("%06ld: ", pc);
printf(" max page height : %ld\n", get4());
! printf("%06ld: ", pc);
printf(" max page width : %ld\n", get4());
printf("%06ld: ", pc);
printf(" stack size needed: %d\n", (int) get2());
**************
*** 225,231
printf(" max page height : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" max page width : %ld\n", get4());
! printf("%06ld: ", pc - 1);
printf(" stack size needed: %d\n", (int) get2());
printf("%06ld: ", pc - 1);
printf(" number of pages : %d\n", (int) get2());
--- 228,234 -----
printf(" max page height : %ld\n", get4());
printf("%06ld: ", pc);
printf(" max page width : %ld\n", get4());
! printf("%06ld: ", pc);
printf(" stack size needed: %d\n", (int) get2());
printf("%06ld: ", pc);
printf(" number of pages : %d\n", (int) get2());
**************
*** 227,233
printf(" max page width : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" stack size needed: %d\n", (int) get2());
! printf("%06ld: ", pc - 1);
printf(" number of pages : %d\n", (int) get2());
} /* postamble */
--- 230,236 -----
printf(" max page width : %ld\n", get4());
printf("%06ld: ", pc);
printf(" stack size needed: %d\n", (int) get2());
! printf("%06ld: ", pc);
printf(" number of pages : %d\n", (int) get2());
} /* postamble */
**************
*** 237,243
register int i;
printf("PRE version : %d\n", (int) get1());
! printf("%06ld: ", pc - 1);
printf(" numerator : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" denominator : %ld\n", get4());
--- 240,246 -----
register int i;
printf("PRE version : %d\n", (int) get1());
! printf("%06ld: ", pc);
printf(" numerator : %ld\n", get4());
printf("%06ld: ", pc);
printf(" denominator : %ld\n", get4());
**************
*** 239,245
printf("PRE version : %d\n", (int) get1());
printf("%06ld: ", pc - 1);
printf(" numerator : %ld\n", get4());
! printf("%06ld: ", pc - 1);
printf(" denominator : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" magnification : %ld\n", get4());
--- 242,248 -----
printf("PRE version : %d\n", (int) get1());
printf("%06ld: ", pc);
printf(" numerator : %ld\n", get4());
! printf("%06ld: ", pc);
printf(" denominator : %ld\n", get4());
printf("%06ld: ", pc);
printf(" magnification : %ld\n", get4());
**************
*** 241,247
printf(" numerator : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" denominator : %ld\n", get4());
! printf("%06ld: ", pc - 1);
printf(" magnification : %ld\n", get4());
printf("%06ld: ", pc - 1);
i = (int) get1();
--- 244,250 -----
printf(" numerator : %ld\n", get4());
printf("%06ld: ", pc);
printf(" denominator : %ld\n", get4());
! printf("%06ld: ", pc);
printf(" magnification : %ld\n", get4());
printf("%06ld: ", pc);
i = (int) get1();
**************
*** 243,249
printf(" denominator : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" magnification : %ld\n", get4());
! printf("%06ld: ", pc - 1);
i = (int) get1();
printf(" job name (%03d) :", i);
while (i-- > 0)
--- 246,252 -----
printf(" denominator : %ld\n", get4());
printf("%06ld: ", pc);
printf(" magnification : %ld\n", get4());
! printf("%06ld: ", pc);
i = (int) get1();
printf(" job name (%3d) :", i);
while (i-- > 0)
**************
*** 245,251
printf(" magnification : %ld\n", get4());
printf("%06ld: ", pc - 1);
i = (int) get1();
! printf(" job name (%03d) :", i);
while (i-- > 0)
putchar((int) get1());
putchar('\n');
--- 248,254 -----
printf(" magnification : %ld\n", get4());
printf("%06ld: ", pc);
i = (int) get1();
! printf(" job name (%3d) :", i);
while (i-- > 0)
putchar((int) get1());
putchar('\n');
**************
*** 258,264
register int i;
printf("POSTPOST postamble offset : %06ld\n", get4());
! printf("%06ld: ", pc - 1);
printf(" version : %d\n", (int) get1());
while ((i = (int) get1()) == TRAILER) {
printf("%06d: ", pc - 1);
--- 261,267 -----
register int i;
printf("POSTPOST postamble offset : %06ld\n", get4());
! printf("%06ld: ", pc);
printf(" version : %d\n", (int) get1());
while ((i = (int) get1()) == TRAILER) {
printf("%06d: ", pc - 1);
**************
*** 282,288
len = num(x);
printf("XXX%d: %ld bytes\n", x, len);
! printf("%06ld: ", pc - 1);
for (i = 0; i < len; i++)
putchar((int) get1());
putchar('\n');
--- 285,291 -----
len = num(x);
printf("XXX%d: %ld bytes\n", x, len);
! printf("%06ld: ", pc);
for (i = 0; i < len; i++)
putchar((int) get1());
putchar('\n');
**************
*** 297,303
register int i;
printf("FNT_DEF%d: %ld\n", x, num(x));
! printf("%06ld: ", pc - 1);
printf(" checksum : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" scale : %ld\n", get4());
--- 300,306 -----
register int i;
printf("FNT_DEF%d: %ld\n", x, num(x));
! printf("%06ld: ", pc);
printf(" checksum : %ld\n", get4());
printf("%06ld: ", pc);
printf(" scale : %ld\n", get4());
**************
*** 299,305
printf("FNT_DEF%d: %ld\n", x, num(x));
printf("%06ld: ", pc - 1);
printf(" checksum : %ld\n", get4());
! printf("%06ld: ", pc - 1);
printf(" scale : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" design : %ld\n", get4());
--- 302,308 -----
printf("FNT_DEF%d: %ld\n", x, num(x));
printf("%06ld: ", pc);
printf(" checksum : %ld\n", get4());
! printf("%06ld: ", pc);
printf(" scale : %ld\n", get4());
printf("%06ld: ", pc);
printf(" design : %ld\n", get4());
**************
*** 301,307
printf(" checksum : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" scale : %ld\n", get4());
! printf("%06ld: ", pc - 1);
printf(" design : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" name : ");
--- 304,310 -----
printf(" checksum : %ld\n", get4());
printf("%06ld: ", pc);
printf(" scale : %ld\n", get4());
! printf("%06ld: ", pc);
printf(" design : %ld\n", get4());
printf("%06ld: ", pc);
printf(" name : ");
**************
*** 303,309
printf(" scale : %ld\n", get4());
printf("%06ld: ", pc - 1);
printf(" design : %ld\n", get4());
! printf("%06ld: ", pc - 1);
printf(" name : ");
for (i = (int) get1() + (int) get1(); i > 0; i--)
putchar((int) get1());
--- 306,312 -----
printf(" scale : %ld\n", get4());
printf("%06ld: ", pc);
printf(" design : %ld\n", get4());
! printf("%06ld: ", pc);
printf(" name : ");
for (i = (int) get1() + (int) get1(); i > 0; i--)
putchar((int) get1());
*** ORG/dvi2tty.c
--- dvi2tty.c
**************
*** 1,4
/******************************************************************************
* Marcel Mol: 1989-01-19 (UUCP: duteca!marcel)
* Changed in option handling, no change
* in user interface (only the undocumented
--- 1,9 -----
/******************************************************************************
+ * Marcel Mol: 1989-02-14 (UUCP: duteca!marcel)
+ * Fixed check for .dvi extension.
+ * Allowed more ligatures.
+ * Fixed side effect bugs (2 gets as function arguments).
+ * Version 3.2.
* Marcel Mol: 1989-01-19 (UUCP: duteca!marcel)
* Changed in option handling, no change
* in user interface (only the undocumented
**************
*** 118,124
#define onepp 8 /* only one page list allowed */
#define noarg 9 /* argument expected */
! char *dvi2tty = "@(#) dvi2tty.c 3.1 23/01/89 M.J.E. Mol (c) 1989";
/*---------------------------------------------------------------------------*/
--- 123,129 -----
#define onepp 8 /* only one page list allowed */
#define noarg 9 /* argument expected */
! char *dvi2tty = "@(#) dvi2tty.c 3.2 14/02/89 M.J.E. Mol (c) 1989";
/*---------------------------------------------------------------------------*/
**************
*** 455,461
usage(ign);
strcpy(DVIfilename, str);
if (!((i >= 5) && (str[i-1] == 'i') && (str[i-2] == 'v') &&
! (str[i-3] = 'd') && (str[i-4] = '.'))) {
strcat(DVIfilename, ".dvi");
}
--- 460,466 -----
usage(ign);
strcpy(DVIfilename, str);
if (!((i >= 5) && (str[i-1] == 'i') && (str[i-2] == 'v') &&
! (str[i-3] == 'd') && (str[i-4] == '.'))) {
strcat(DVIfilename, ".dvi");
}
*** ORG/dvistuff.c
--- dvistuff.c
**************
*** 1,5
-
#include "dvi2tty.h"
#include <sys/types.h>
#include <sys/stat.h>
--- 1,4 -----
#include "dvi2tty.h"
#include <sys/types.h>
#include <sys/stat.h>
**************
*** 39,45
#define sget3() snum(3)
#define sget4() snum(4)
! char *dvistuff = "@(#) dvistuff.c 3.1 23/01/89 M.J.E. Mol (c) 1989";
/*---------------------------------------------------------------------------*/
--- 38,44 -----
#define sget3() snum(3)
#define sget4() snum(4)
! char *dvistuff = "@(#) dvistuff.c 3.2 14/02/89 M.J.E. Mol (c) 1989";
/*---------------------------------------------------------------------------*/
**************
*** 293,299
case SET2 : setchar(get2()); break;
case SET3 : setchar(get3()); break;
case SET4 : setchar(get4()); break;
! case SET_RULE : rule(MOVE, sget4(), sget4()); break;
case PUT1 : putcharacter(get1()); break;
case PUT2 : putcharacter(get2()); break;
case PUT3 : putcharacter(get3()); break;
--- 292,300 -----
case SET2 : setchar(get2()); break;
case SET3 : setchar(get3()); break;
case SET4 : setchar(get4()); break;
! case SET_RULE : { long height = sget4();
! rule(MOVE, sget4(), height); break;
! }
case PUT1 : putcharacter(get1()); break;
case PUT2 : putcharacter(get2()); break;
case PUT3 : putcharacter(get3()); break;
**************
*** 298,304
case PUT2 : putcharacter(get2()); break;
case PUT3 : putcharacter(get3()); break;
case PUT4 : putcharacter(get4()); break;
! case PUT_RULE : rule(STAY, sget4(), sget4()); break;
case NOP : break; /* no-op */
case BOP : errorexit(bdbop); break;
/* case EOP : break; strange place to have EOP */
--- 299,307 -----
case PUT2 : putcharacter(get2()); break;
case PUT3 : putcharacter(get3()); break;
case PUT4 : putcharacter(get4()); break;
! case PUT_RULE : { long height = sget4();
! rule(STAY, sget4(), height); break;
! }
case NOP : break; /* no-op */
case BOP : errorexit(bdbop); break;
/* case EOP : break; strange place to have EOP */
**************
*** 746,751
else
ch = 'O';
break;
#if 0
case 92 : ch = '"'; break; /* beginning qoute */
case 123 : ch = '-'; break;
--- 749,760 -----
else
ch = 'O';
break;
+ case 92 : ch = '"'; break; /* \ from `` */
+ case 123 : ch = '-'; break; /* { from -- */
+ case 124 : ch = '_'; break; /* | from --- */
+ case 125 : ch = '"'; break; /* } from \H */
+ case 126 : ch = '"'; break; /* ~ from \~ */
+ case 127 : ch = '"'; break; /* DEL from \" */
#if 0
case 18 : ch = '`'; break /* from \` */
case 19 : ch = ''''; break /* from \' */
**************
*** 747,757
ch = 'O';
break;
#if 0
! case 92 : ch = '"'; break; /* beginning qoute */
! case 123 : ch = '-'; break;
! case 124 : ch = '_'; break;
! case 125 : ch = '"'; break;
! case 126 : ch = '"'; break;
#endif
}
#if 0
--- 756,769 -----
case 126 : ch = '"'; break; /* ~ from \~ */
case 127 : ch = '"'; break; /* DEL from \" */
#if 0
! case 18 : ch = '`'; break /* from \` */
! case 19 : ch = ''''; break /* from \' */
! case 20 : ch = '~'; break /* from \v */
! case 21 : ch = '~'; break /* from \u */
! case 22 : ch = '~'; break /* from \= */
! case 24 : ch = ','; break /* from \c */
! case 94 : ch = '^'; break /* ^ from \^ */
! case 95 : ch = '`'; break /* _ from \. */
#endif
}
#if 0
--
#########################################
# Marcel J.E. Mol # They hate you if your're clever
# Delft, University of Technology # And they despise the fool
# The Netherlands # Till you're so fucking crazy
# UUCP: marcel at duteca.UUCP # You can't follow the rules.
# duteca!marcel #
######################################### - Lennon
More information about the Comp.sources.misc
mailing list