From 95373b09c88da7661e3af62adaf5c6884eaf7dbb Mon Sep 17 00:00:00 2001 From: Joachim Schrod Date: Tue, 3 Jul 2007 17:33:14 +0000 Subject: Add special dvips-syntax, to specify what shall be done with psfile specials, since they are incompatible to dvips. git-svn-id: svn://tug.org/texlive/trunk@4540 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/dviljk/ChangeLog | 4 ++++ Build/source/texk/dviljk/dvi2xx.c | 19 +++++++++++++++++-- Build/source/texk/dviljk/dvi2xx.h | 5 +++-- 3 files changed, 24 insertions(+), 4 deletions(-) (limited to 'Build') diff --git a/Build/source/texk/dviljk/ChangeLog b/Build/source/texk/dviljk/ChangeLog index da2f4b18468..78d467af42d 100644 --- a/Build/source/texk/dviljk/ChangeLog +++ b/Build/source/texk/dviljk/ChangeLog @@ -12,6 +12,10 @@ Add special comment, to include meta-information in a DVI file. For compatibility with other drivers, allow "comment" without equal sign and value. + Add special dvips-syntax, to specify what shall be done with + psfile specials, since they are incompatible to dvips. Supported + values: "ignore" and "dvilj". Later, support for "dvips" should be + added. (CopyFile, CopyHPFile): Implement TEX_HUSH option `readable.' diff --git a/Build/source/texk/dviljk/dvi2xx.c b/Build/source/texk/dviljk/dvi2xx.c index c790c25b7ae..d44400909fe 100644 --- a/Build/source/texk/dviljk/dvi2xx.c +++ b/Build/source/texk/dviljk/dvi2xx.c @@ -3734,6 +3734,7 @@ typedef enum { COMMENT, HPFILE, HPFILE_VERBATIM, + PSFILE_SYNTAX, PSFILE, LLX, LLY, @@ -3754,6 +3755,7 @@ KeyDesc KeyTab[] = { { COMMENT, "comment", String}, { HPFILE, "hpfile", String}, { HPFILE_VERBATIM, "hpfile-verbatim", String}, + { PSFILE_SYNTAX, "psfile-syntax", String }, { PSFILE, "psfile", String }, { LLX, "llx", Integer}, { LLY, "lly", Integer}, @@ -4096,13 +4098,26 @@ int n; file_type = VerbFile; break; + case PSFILE_SYNTAX: + if ( EQ(k.Val, "ignore") ) + PSFileSyntaxTyp = Ignore; + else if ( EQ(k.Val, "dvilj") ) + PSFileSyntaxTyp = PSFile_dvilj; + else + Warning("Ignored invalid value '%s' for psfile-syntax", k.Val); + break; + case PSFILE: if ( include_file ) { Warning("More than one \\special file name given. %s ignored", include_file); free(include_file); } - include_file = xstrdup(k.Val); - file_type = PSFile; + if ( PSFileSyntaxTyp != Ignore ) { + include_file = xstrdup(k.Val); + file_type = PSFile; + } else { + include_file = NULL; + } break; case LLX: llx = k.v.i; break; diff --git a/Build/source/texk/dviljk/dvi2xx.h b/Build/source/texk/dviljk/dvi2xx.h index dcfe4d95902..80396410f7f 100644 --- a/Build/source/texk/dviljk/dvi2xx.h +++ b/Build/source/texk/dviljk/dvi2xx.h @@ -356,7 +356,7 @@ extern int seekchar(); /********************** Special Data Structures ***********************/ /**********************************************************************/ -typedef enum { None, String, Integer /*, Number, Dimension*/ } ValTyp; +typedef enum { None, String, Integer /*, Number, Dimension*/ } ValTyp; typedef struct { char *Key; /* the keyword string */ char *Val; /* the value string */ @@ -545,7 +545,8 @@ char *filename; /* DVI file name */ char *rootname; /* DVI filename without extension */ char *HeaderFileName = ""; /* file name & path of Headerfile */ char *EmitFileName = ""; /* file name & path for output */ -char tmp_dir[STRSIZE] = ""; /* temporary directory for auxilliary files */ +char tmp_dir[STRSIZE] = ""; /* temporary directory for auxiliary files */ +enum { Ignore, PSFile_dvilj /*, PSFile_dvips */ } PSFileSyntaxTyp = PSFile_dvilj; #ifdef IBM3812 bool FirstAlternate = _FALSE; /* first page from alternate casette ? */ #endif -- cgit v1.2.3