home *** CD-ROM | disk | FTP | other *** search
- From decwrl!ucbvax!tut.cis.ohio-state.edu!mailrus!ames!amdahl!uunet!allbery Fri Mar 24 22:24:42 PST 1989
- Article 820 of comp.sources.misc:
- Path: decwrl!ucbvax!tut.cis.ohio-state.edu!mailrus!ames!amdahl!uunet!allbery
- From: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
- Newsgroups: comp.sources.misc
- Subject: v06i055: dvi2tty patch 2
- Message-ID: <50623@uunet.UU.NET>
- Date: 8 Mar 89 01:17:56 GMT
- Sender: allbery@uunet.UU.NET
- Reply-To: duteca!marcel (Marcel J.E. Mol)
- Organization: Delft University of Technology, Dep. of Electrotechnical engineering.
- Lines: 615
- Approved: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
- Organisation: University of Technology, Delft The Netherlands.
-
- Posting-number: Volume 6, Issue 55
- Submitted-by: marcel@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@duteca.UUCP # You can't follow the rules.
- # duteca!marcel #
- ######################################### - Lennon
-
-
-