diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-17 21:41:51 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-17 21:41:51 +0000 |
commit | 487ca4806cc046076293cf6cc5fbba0db282bac7 (patch) | |
tree | 847b412ab5158dd7bdd7ed7e5a4cc3fbca94be32 /Build/source/texk/dvipsk/vms/vmscli.c | |
parent | a3d3111bfe26b8e5f5bc6049dfb2a4ca2edc7881 (diff) |
texk 1
git-svn-id: svn://tug.org/texlive/trunk@1485 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipsk/vms/vmscli.c')
-rw-r--r-- | Build/source/texk/dvipsk/vms/vmscli.c | 466 |
1 files changed, 466 insertions, 0 deletions
diff --git a/Build/source/texk/dvipsk/vms/vmscli.c b/Build/source/texk/dvipsk/vms/vmscli.c new file mode 100644 index 00000000000..438e23ec841 --- /dev/null +++ b/Build/source/texk/dvipsk/vms/vmscli.c @@ -0,0 +1,466 @@ +/* EJG - 02-Jul-1996 */ +/* fix processing of filter qualifier */ +/* add secure qualifier */ +/* add oddpages qualifier */ +/* add evenpages qualifier */ +/* set sendcontrold only if qualifier present, not if merely negated */ +/* check for setting or resetting disablecomments was cli$_negated in both cases - fix */ +/* add downloadps (as PK) fonts qualifier */ +/* add hyperps qualifier */ +/* EJG - 07-Jul-1996 */ +/* test for INC_COM was looking for negated in both cases, so fixed */ +#ifdef __GNUC__ +#include "ssdef.h" +#else +#include ssdef +#endif +/* this code is included into dvips.c; don't compile it separately. */ +int vmscli() + {long int k,scnt; + int length,status,maxdrift,jext; + float offset,conversion; + char *u; + static char dummy[100],prtr[20]; + static $DESCRIPTOR(qual1,"copies"); + static $DESCRIPTOR(qual2,"debug"); + static $DESCRIPTOR(qual3,"maxdrift"); + static $DESCRIPTOR(qual4,"filter"); + static $DESCRIPTOR(qual5,"last"); + static $DESCRIPTOR(qual6,"manual"); + static $DESCRIPTOR(qual7,"number"); + static $DESCRIPTOR(qual8,"output"); + static $DESCRIPTOR(qual9,"start"); + static $DESCRIPTOR(qual10,"quiet"); + static $DESCRIPTOR(qual11,"reverse"); + static $DESCRIPTOR(qual12,"sav_res"); + static $DESCRIPTOR(qual13,"mode"); + static $DESCRIPTOR(qual14,"magnification"); + static $DESCRIPTOR(qual15,"collate"); + static $DESCRIPTOR(qual16,"dpi"); + static $DESCRIPTOR(qual17,"ctrld"); + static $DESCRIPTOR(qual18,"inc_com"); + static $DESCRIPTOR(qual19,"comment"); + static $DESCRIPTOR(qual20,"vm_save"); + static $DESCRIPTOR(qual21,"h_dpi"); + static $DESCRIPTOR(qual22,"v_dpi"); + static $DESCRIPTOR(qual23,"compress"); + static $DESCRIPTOR(qual24,"printer"); + static $DESCRIPTOR(qual25,"header"); + static $DESCRIPTOR(qual26,"absolute"); + static $DESCRIPTOR(qual27,"epsf"); + static $DESCRIPTOR(qual28,"prescan"); + static $DESCRIPTOR(qual29,"pagecopies"); + static $DESCRIPTOR(qual30,"separate"); + static $DESCRIPTOR(qual31,"cropmarks"); + static $DESCRIPTOR(qual32,"sec_size"); + static $DESCRIPTOR(qual33,"help"); + static $DESCRIPTOR(qual34,"makefont"); + static $DESCRIPTOR(qual35,"psize"); + static $DESCRIPTOR(qual36,"poffset"); + static $DESCRIPTOR(qual37,"secure"); /* EJG 02-Jul-1996 */ + static $DESCRIPTOR(qual38,"oddpages"); /* EJG 02-Jul-1996 */ + static $DESCRIPTOR(qual39,"evenpages"); /* EJG 02-Jul-1996 */ + static $DESCRIPTOR(qual40,"downloadps"); /* EJG 02-Jul-1996 */ + static $DESCRIPTOR(qual41,"hyperps"); /* EJG 02-Jul-1996 */ + static $DESCRIPTOR(dumdum,dummy); + static $DESCRIPTOR(dvi_file,"dvifile"); + static $DESCRIPTOR(input_file,infnme); + scnt=0; + status = cli$present(&dvi_file); + + if(status == CLI$_PRESENT) + {status = cli$get_value(&dvi_file,&input_file,&jext); + length=0; + for(k=0;k<252;k++) + { if(infnme[k] == ':' || infnme[k] == ']') + scnt=k+1; + } + for(k=scnt;k<252;k++) + {if(infnme[k]=='.') + {length=k; + jext=k; + } + else + {if(infnme[k]=='/' || infnme[k]==' ' || infnme[k]=='\0') + infnme[k]='\0'; + } + } + if(length==0) + {jext= strlen(infnme); + strcat(infnme,".DVI");} + + iname = &infnme[0] ; + length = 0; /* Initialize length...VAX C bug? */ + + } + status = cli$present(&qual1); + + if(status == CLI$_PRESENT | status == CLI$_DEFAULTED) + {status = cli$get_value(&qual1,&dumdum,&length); + + if(sscanf(&dummy[0],"%d",&numcopies) == 0) + error("!Bad copies option"); + } +#ifdef DEBUG + status = cli$present(&qual2); + + if(status == CLI$_PRESENT) + { + status = cli$get_value(&qual2,&dumdum,&length); + + if(sscanf(&dummy[0],"%d",&debug_flag) == 0) + error("!Bad debug option"); + } +#else + error("not compiled in debug mode"); +#endif + status = cli$present(&qual3); + + if(status == CLI$_PRESENT) + {status = cli$get_value(&qual3,&dumdum,&length); + + if(sscanf(&dummy[0],"%d",&maxdrift) == 0 ||maxdrift <0) + error("bad maxdrift option"); + vmaxdrift=maxdrift; + } + + + status = cli$present(&qual5); + + if(status == CLI$_PRESENT) + {status = cli$get_value(&qual5,&dumdum,&length); + +#ifdef SHORTINT + switch(sscanf(&dummy[0], "%ld.%ld", &lastpage, &lastseq)) { +#else /* ~SHORTINT */ + switch(sscanf(&dummy[0], "%ld.%ld", &lastpage, &lastseq)) { +#endif /* ~SHORTINT */ +case 1: lastseq = 0 ; +case 2: break ; +default: + error("! Bad last page option.") ; + } + notlast = 1 ; + } + status = cli$present(&qual6); + + if(status == CLI$_PRESENT) + manualfeed=1; + else + if(status == CLI$_NEGATED) + manualfeed=0; + + status = cli$present(&qual7); + if(status == CLI$_PRESENT) + {status = cli$get_value(&qual7,&dumdum,&length); +#ifdef SHORTINT + if (sscanf(&dummy[0], "%ld", &maxpages)==0) +#else /* ~SHORTINT */ + if (sscanf(&dummy[0], "%d", &maxpages)==0) +#endif /* ~SHORTINT */ + error("! Bad number of pages option.") ; + } + + status = cli$present(&qual8); + if(status == CLI$_PRESENT) + {status = cli$get_value(&qual8,&dumdum,&length); + sscanf(&dummy[0],"%s",ofnme); + } + else + {for(k=scnt;k<jext;k++)ofnme[k-scnt]=infnme[k]; + strcat(ofnme,".PS");} + oname = &ofnme[0] ; + + status = cli$present(&qual4); + + if(status == CLI$_PRESENT) + {oname=""; + filter=1; /* EJG 02-Jul-1996 */ + noenv=(1==1); + } + else /* EJG 02-Jul-1996 */ + filter=0; /* EJG 02-Jul-1996 */ + + status = cli$present(&qual9); + if(status == CLI$_PRESENT) + {status = cli$get_value(&qual9,&dumdum,&length); +#ifdef SHORTINT + switch(sscanf(&dummy[0], "%ld.%ld", &firstpage, &firstseq)) { +#else /* ~SHORTINT */ + switch(sscanf(&dummy[0], "%ld.%ld", &firstpage, &firstseq)) { +#endif /* ~SHORTINT */ +case 1: firstseq = 0 ; +case 2: break ; +default: + error("! Bad first page option.") ; + } + notfirst = 1 ; + } + + status = cli$present(&qual10); + + if(status == CLI$_PRESENT) + quiet=(1==1); + else + if(status == CLI$_NEGATED) + quiet=(1==0); + + status = cli$present(&qual11); + + if(status == CLI$_PRESENT) + reverse=1; + else + if(status == CLI$_NEGATED) + reverse=0; + + status = cli$present(&qual12); + + if(status == CLI$_PRESENT) + safetyenclose=1; + else + if(status == CLI$_NEGATED) + safetyenclose=0; + + status = cli$present(&qual13); + if(status == CLI$_PRESENT | status == CLI$_DEFAULTED) + {status = cli$get_value(&qual13,&dumdum,&length); + sscanf(&dummy[0],"%s",pap); + if (strcmp(&pap[0], "landscape") == 0) + { if (hpapersize || vpapersize) + error( "both landscape and papersize specified; ignoring landscape") ; + else + landscape = 1 ; + /* The following lines have been added by G.Bonacci */ + if ((status=cli$get_value(&qual13,&dumdum,&length))==1) + { + sscanf(&dummy[0],"%s",pap); + + paperfmt = &pap[0] ; + } + /* end G.Bonacci 20.3.92 */ + } + else + paperfmt = &pap[0] ; + } + + status = cli$present(&qual14); + + if(status == CLI$_PRESENT) + {status = cli$get_value(&qual14,&dumdum,&length); + + if(sscanf(&dummy[0],"%d",&mag) == 0 || mag < 10 || mag >100000) + error("!Bad magnification parameter."); + overridemag=1; + } + status = cli$present(&qual15); + + if(status == CLI$_PRESENT | status == CLI$_DEFAULTED) + {status = cli$get_value(&qual15,&dumdum,&length); + + if(sscanf(&dummy[0],"%d",&collatedcopies) == 0) + error("!Bad number of collated copies"); + } + status = cli$present(&qual16); + + if(status == CLI$_PRESENT | status == CLI$_DEFAULTED) + {status = cli$get_value(&qual16,&dumdum,&length); + + if(sscanf(&dummy[0],"%d",&actualdpi) == 0 || + actualdpi < 10 || actualdpi >10000) + error("!Bad dpi parameter."); + vactualdpi=actualdpi; + } + + status = cli$present(&qual17); + + if(status == CLI$_PRESENT) /* EJG 02-Jul-1996 */ + sendcontrolD =1; + else + if(status == CLI$_NEGATED | status==CLI$_DEFAULTED) /* EJG 02-Jul-1996 */ + sendcontrolD =0; + + status = cli$present(&qual18); + + if(status == CLI$_PRESENT) /* EJG 07-Jul-1996 */ + removecomments =0; + else + if(status == CLI$_NEGATED) + removecomments =1; + + status = cli$present(&qual19); + + if(status == CLI$_PRESENT) /* EJG 02-JUL-1996 */ + disablecomments = 0; + else + if(status == CLI$_NEGATED) + disablecomments = 1; + + status = cli$present(&qual20); + + if(status == CLI$_PRESENT) + nosmallchars=1; + else + if(status == CLI$_NEGATED) + nosmallchars=0; + + status = cli$present(&qual21); + + if(status == CLI$_PRESENT) + {status = cli$get_value(&qual21,&dumdum,&length); + + if(sscanf(&dummy[0],"%d",&actualdpi) == 0 || + actualdpi < 10 || actualdpi >10000) + error("!Bad dpi parameter in X."); + } + + status = cli$present(&qual22); + + if(status == CLI$_PRESENT) + {status = cli$get_value(&qual22,&dumdum,&length); + + if(sscanf(&dummy[0],"%d",&vactualdpi) == 0 || + vactualdpi < 10 || vactualdpi >10000) + error("!Bad dpi parameter in Y."); + } + + status = cli$present(&qual23); + + if(status == CLI$_PRESENT) + compressed=1; + else + if(status == CLI$_NEGATED) + compressed=0; + + status = cli$present(&qual24); + if(status == CLI$_PRESENT) + {status = cli$get_value(&qual24,&dumdum,&length); + sscanf(&dummy[0],"%s",prtr); + u = &dummy[0] ; + strcpy(u,"config."); + strcat(u,&prtr[0]); + getdefaults(""); + noenv=1; + getdefaults(u); + } + + status = cli$present(&qual25); + if(status == CLI$_PRESENT) { + while (status != SS$_NORMAL) { + status = cli$get_value(&qual25,&dumdum,&length); + dummy[length] = '\0'; + if (strcmp(dummy, "-") == 0) + headers_off = 1; + else + (void)add_header(dummy) ; + } + } + else { + if(status == CLI$_NEGATED) + headers_off = 1; + } + + status = cli$present(&qual26); + if(status == CLI$_PRESENT) abspage = 1; + + status = cli$present(&qual27); + if(status == CLI$_PRESENT | status==CLI$_DEFAULTED) tryepsf = 1; + else + if(status == CLI$_NEGATED) tryepsf = 0; + + status = cli$present(&qual28); + if(status == CLI$_PRESENT | status==CLI$_DEFAULTED) dopprescan = 1; + else + if(status == CLI$_NEGATED) dopprescan = 0; + + status = cli$present(&qual29); + + if(status == CLI$_PRESENT | status == CLI$_DEFAULTED) + {status = cli$get_value(&qual29,&dumdum,&length); + + if(sscanf(&dummy[0],"%d",&pagecopies) == 0) + error("!Bad number of page copies option /PAGECOPIES"); + if (pagecopies < 1 || pagecopies > 1000) + error("! can only print one to a thousand page copies") ; + } + + status = cli$present(&qual30); + if(status == CLI$_PRESENT | status==CLI$_DEFAULTED) sepfiles = 1; + else + if(status == CLI$_NEGATED) sepfiles = 0; + + status = cli$present(&qual31); + if(status == CLI$_PRESENT | status==CLI$_DEFAULTED) cropmarks = 1; + else + if(status == CLI$_NEGATED) cropmarks = 0; + + status = cli$present(&qual32); + if(status == CLI$_PRESENT) + {status = cli$get_value(&qual32,&dumdum,&length); +#ifdef SHORTINT + if (sscanf(&dummy[0], "%ld", &maxsecsize)==0) +#else /* ~SHORTINT */ + if (sscanf(&dummy[0], "%d", &maxsecsize)==0) +#endif /* ~SHORTINT */ + error("! Bad section size arg (/SEC_SIZE).") ; + } + + status = cli$present(&qual33); + if(status == CLI$_PRESENT) + { (void)fprintf(stderr, banner) ; + help() ; + } + + status = cli$present(&qual34); + if(status == CLI$_NEGATED) dontmakefont = 1; +/*----------------------------------------------------------------------- + * Currently one uses /PSIZE="5mm,10mm" This way CASE is preserved + * Should I convert the PSIZE to allow a LIST => /PSIZE=(5mm,10mm) and + * convert the case back to lowercase in here. + *-----------------------------------------------------------------------*/ + status = cli$present(&qual35); + if(status == CLI$_PRESENT) { + status = cli$get_value(&qual35,&dumdum,&length); + dummy[length] = '\0'; + handlepapersize(&dummy[0], &hpapersize, &vpapersize) ; + if (landscape) { + error("both landscape and papersize specified; ignoring landscape") ; + landscape = 0 ; + } + } + + status = cli$present(&qual36); + if(status == CLI$_PRESENT) { + status = cli$get_value(&qual36,&dumdum,&length); + dummy[length] = '\0'; + handlepapersize(&dummy[0], &hoff, &voff) ; + } + + status = cli$present(&qual37); /* EJG 02-Jul-1996 */ + if(status == CLI$_PRESENT) secure = 1; /* EJG 02-Jul-1996 */ + else /* EJG 02-Jul-1996 */ + if(status == CLI$_NEGATED | status == CLI$_DEFAULTED) secure = 0; /* EJG 02-Jul-1996 */ + + status = cli$present(&qual38); /* EJG 02-Jul-1996 */ + if(status == CLI$_PRESENT) oddpages = 1; /* EJG 02-Jul-1996 */ + else /* EJG 02-Jul-1996 */ + if(status == CLI$_NEGATED | status == CLI$_DEFAULTED) oddpages = 0; /* EJG 02-Jul-1996 */ + + status = cli$present(&qual39); /* EJG 02-Jul-1996 */ + if(status == CLI$_PRESENT) evenpages = 1; /* EJG 02-Jul-1996 */ + else /* EJG 02-Jul-1996 */ + if(status == CLI$_NEGATED | status == CLI$_DEFAULTED) evenpages = 0; /* EJG 02-Jul-1996 */ + + status = cli$present(&qual40); /* EJG 02-Jul-1996 */ + if(status == CLI$_PRESENT) downloadpspk = 1; /* EJG 02-Jul-1996 */ + else /* EJG 02-Jul-1996 */ + if(status == CLI$_NEGATED | status == CLI$_DEFAULTED) downloadpspk = 0; /* EJG 02-Jul-1996 */ + +#ifdef HPS /* EJG 02-Jul-1996 */ + + status = cli$present(&qual41); /* EJG 02-Jul-1996 */ + if(status == CLI$_PRESENT) HPS_FLAG = 1; /* EJG 02-Jul-1996 */ + else /* EJG 02-Jul-1996 */ + if(status == CLI$_NEGATED | status == CLI$_DEFAULTED) HPS_FLAG = 0; /* EJG 02-Jul-1996 */ +#endif /* EJG 02-Jul-1996 */ + +} |