----------------------------------------------------------------------------------------------------------------------------------- File USER$1:[ROSE.TG.C]DVI2LN3.C;48 | File USER$1:[ROSE.TG.UNIX]DVI2LN3.C;1 -------------------------------- 3 --------------------------------------------------------------- 3 ------------------------------ Dvi2ln3 is still being developed. Copyright (c) 1985, 1986 by D | Dvi2ln3 is still being developed. Copyright (c) 1985, 1986, 198 -------------------------------- 62 -------------------------------------------------------------- 62 ----------------------------- 3/4/86: Support for landscape added -- very easy, if only I h | known. Fixed bug found by Mark DeVries, error returne | if \special selects device other than LN03. Version 8 | | -------------------------------- 86 -------------------------------------------------------------- 82 ----------------------------- #endif | char *strchr(), *malloc(), *getenv(); | #endif /* Here begins a long list of global variables. */ | -------------------------------- 120 ------------------------------------------------------------- 115 ---------------------------- /* landscape says whether we are printing in landscape or portr | | GLOBAL char landscape; | | -------------------------------- 139 ------------------------------------------------------------- 130 ---------------------------- printf("\n Dvi2ln3 8"); | printf("\n Dvi2ln3 7"); -------------------------------- 151 ------------------------------------------------------------- 142 ---------------------------- find_VMS_filename(infnam,&jnam,&jext); | find_ULTRIX_filename(infnam,&jnam,&jext); -------------------------------- 163 ------------------------------------------------------------- 154 ---------------------------- landscape = 0; | -------------------------------- 170 ------------------------------------------------------------- 160 ---------------------------- if (rewind(dvifile) == -1) { | rewind(dvifile); printf("\n Couldn't rewind dvi file."); | goto exit_label; | } | -------------------------------- 189 ------------------------------------------------------------- 176 ---------------------------- ; | printf("\n"); } | } | /* Find_VMS_filename finds the filename part of a VMS filespec | /* find_ULTRIX_filename finds the filename part of a VMS filesp -------------------------------- 201 ------------------------------------------------------------- 188 ---------------------------- int find_VMS_filename(s,ns,ne) | int find_ULTRIX_filename(s,ns,ne) -------------------------------- 210 ------------------------------------------------------------- 197 ---------------------------- if (s[j] == ':' || s[j] == ']' || | if (s[j] == '/') { s[j] == '>') { | -------------------------------- 219 ------------------------------------------------------------- 205 ---------------------------- if (s[j] == '.' || s[j] == ';') { | if (s[j] == '.') { -------------------------------- 260 ------------------------------------------------------------- 246 ---------------------------- second identifying longword is 8 and third is 3. | second identifying longword is 8 and third is 3. */ | The L option says print in landscape. | /* [[The toupper's below cause difficulty under Ultrix. Probabl | can be fixed by #including .]] */ [[Is a European option needed?]] */ | -------------------------------- 283 ------------------------------------------------------------- 268 ---------------------------- if (toupper(t[0]) == 'L') landscape = 1; | -------------------------------- 327 ------------------------------------------------------------- 311 ---------------------------- jj = creat(outfnam,0); | jj = creat(outfnam, 0700); -------------------------------- 749 ------------------------------------------------------------- 733 ---------------------------- /* The margins are set to values that seem appropriate for Amer | /* The margins are set to values appropriate for American 8 1/2 by 11" paper. It is not clear if this needs to be changed for E | paper. It is not clear if this needs to be changed for European paper. Not changing it might deprive Europeans of access to the | Not changing it might deprive Europeans of access to the bottom 1.5cm of their paper. | their paper. */ | It is not clear what the printable area is, or what happens whe | maxrmar = 2550; exceeded. */ | maxbmar = 3300; | if (landscape == 1) { | /* In the following, esc[?27h means "advance the carriage by th maxrmar = 3300; | width when you set a character", esc[11h and esc[7 I together m maxbmar = 2475; | interpret all dimensions in escape sequences as pixel units; es } else { | our origin of coordinates is the upper left edge of the paper; maxrmar = 2550; | means the "maximum length" of the paper is maxbmar pixels. */ maxbmar = 3300; | } | fprintf(outfile,"\033c\033[?27h\033[11h\033[7 I\033[?52h\03 | /* In the following, esc[?21 J means print in landscape, esc[?2 | "advance the carriage by the character width when you set a cha | esc[11h and esc[7 I together mean to interpret all dimensions i | sequences as pixel units; esc[?52h means our origin of coordina | upper left edge of the paper; esc[%dt means the "maximum length | paper is maxbmar pixels. */ | | fprintf(outfile,"\033c"); | if (landscape == 1) fprintf(outfile,"\033[?21 J"); | fprintf(outfile,"\033[?27h\033[11h\033[7 I\033[?52h\033[%dt | -------------------------------- 919 ------------------------------------------------------------- 892 ---------------------------- fprintf(outfile,"\n;Dvi2ln3 8 font load\033\\"); | fprintf(outfile,"\n;Dvi2ln3 7 font load\033\\"); -------------------------------- 1127 ------------------------------------------------------------ 1100 --------------------------- about Dvi2ln3 even though the error is in their TeX file). | about Dvi2ln3 even though the error is in their TeX file). In m | dvi2ln3 takes no special action at all, since the LN03 will cli In most cases, dvi2ln3 takes no special action at all, since th | for us. Unfortunately, the LN03 doesn't let us specify negative clip the glyphs for us. Unfortunately, the LN03 doesn't let us | or vertical positions, so we have to clip glyphs at such positi negative horizontal or vertical positions, so we have to clip g | ourselves. The following code accomplishes that: */ such positions away ourselves. Also, if one sets at a position | bottom margin, the LN03 will eject a page, so glyphs that are s | that margin also have to be clipped by hand. | | The following code accomplishes that: */ | -------------------------------- 1141 ------------------------------------------------------------ 1109 --------------------------- if (vv+voff > 0 && vv+voff <= maxbmar && hh+hoff > | if (vv+voff > 0 && hh+hoff > 0) { -------------------------------- 1481 ------------------------------------------------------------ 1449 --------------------------- | char *texfontdir; find_VMS_filename(font_name[nf],&jnam,&jext); | | find_ULTRIX_filename(font_name[nf],&jnam,&jext); -------------------------------- 1487 ------------------------------------------------------------ 1456 --------------------------- if (jnam == 0) strcpy(filespec,"tex$fonts:"); | if (jnam == 0) texfontdir = getenv("TEX_FONTS"); | strcpy(filespec,texfontdir); | strcat(filespec,"/"); ----------------------------------------------------------------------------------------------------------------------------------- Number of difference sections found: 21 Number of difference records found: 78 DIFFERENCES /IGNORE=()/OUTPUT=USER$1:[ROSE.TG.C]DVI2LN3.DIF;1/PARALLEL- USER$1:[ROSE.TG.C]DVI2LN3.C;48- USER$1:[ROSE.TG.UNIX]DVI2LN3.C;1