diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /dviware/dvi2pcl/skippages.c |
Initial commit
Diffstat (limited to 'dviware/dvi2pcl/skippages.c')
-rw-r--r-- | dviware/dvi2pcl/skippages.c | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/dviware/dvi2pcl/skippages.c b/dviware/dvi2pcl/skippages.c new file mode 100644 index 0000000000..dd6db636f8 --- /dev/null +++ b/dviware/dvi2pcl/skippages.c @@ -0,0 +1,110 @@ +/* $Log: skippages.c,v $ + * Revision 0.8 92/11/23 19:47:00 19:47:00 bt (Bo Thide') + * Fixed resolution bug. Portable downloading. Added/changed options. PJXL color support + * + * Revision 0.7 92/11/13 02:41:44 02:41:44 bt (Bo Thide') + * More bug fixes and improvements. Support for PaintJet XL + * + * Revision 0.6 92/11/10 21:48:41 21:48:41 bt (Bo Thide') + * Bug fixes. Added -R option. Better font handling. + * + * Revision 0.5 92/11/09 16:25:48 16:25:48 bt (Bo Thide') + * Rewrite of dospecial.c. Extended \special support + * + * Revision 0.4 92/11/08 02:46:04 02:46:04 bt (Bo Thide') + * Changed to portable bit manipulations. Replaced strrstr for non-POSIX compliant C. Fixed numerous bugs. Added support for more \special's. + * + * Revision 0.3 92/08/24 12:45:54 12:45:54 bt (Bo Thide') + * Fixed 8 bit (dc font) support. + * + * Revision 0.2 92/08/23 17:29:01 17:29:01 bt (Bo Thide') + * Source cleaned up. Changed certain function calls. Removed globals. + * + * Revision 0.1 92/08/22 23:58:48 23:58:48 bt (Bo Thide') + * First Release. + * */ + +/* + * This routine is used to pass over pages that are not being translated. It + * is assumed to begin just after the preamble has been read, or just after a + * DVI_BOP has been processed. It continues until either finding a DVI_BOP that + * matches the desired starting page specification, or until running into the + * postamble. + */ + +#include <stdio.h> +#include "dvi.h" +#include "globals.h" +#include "macros.h" + +static char rcsid[] = "$Header: skippages.c,v 0.8 92/11/23 19:47:00 bt Exp $"; + +long skippages(bitfile, dvifile, pcllevel, resolution) +FILE *bitfile; +FILE *dvifile; +short pcllevel; +short resolution; +{ + int i, k, q; + bool badchar; + bool match; + long p; + long hh=0L; /* Pixel analog of DVI unit h */ + long vv=0L; /* Pixel analog of DVI unit v */ + long startloc=0; + + while (TRUE) { + if((k = (int)getubyte(dvifile)) >= DVI_SET1) { + p = firstpar(dvifile, k); + switch(k) { + case DVI_BOP: + scanbop(dvifile); + match = TRUE; + for(i = 0 ; i <= startvals ; i++) + if(startthere[i] && (startcount[i] != count[i])) + match = FALSE; + if(match) { + startloc = lastpage - 1; + goto end; + } + break; + case DVI_SET_RULE: + case DVI_PUT_RULE: + getsquad(dvifile); + break; + case DVI_FNT_DEF1: + case DVI_FNT_DEF2: + case DVI_FNT_DEF3: + case DVI_FNT_DEF4: + definefont(dvifile, p); + break; + case DVI_XXX1: + case DVI_XXX2: + case DVI_XXX3: + case DVI_XXX4: + badchar = FALSE; + if(p + nextnamesfree - names > NAMESIZE) + prerror("Out of string space during special\n"); + for (k=0; k<(int)p; k++) { + q = (int)getubyte(dvifile); + if((q < ' ') || (q > '~')) + badchar = TRUE; + *(nextnamesfree + k) = q; + } + *(nextnamesfree + p) = 0; + if(badchar) + fprintf(stderr,"Non-ASCII character in DVI_XX command\n"); + dospecial(bitfile, PRESCAN_ON, pcllevel, hh, vv, resolution); + break; + case DVI_POST: + inpostamble = TRUE; + goto end; + break; + default: + break; + } + } + } +end: + return(startloc); +} |