summaryrefslogtreecommitdiff
path: root/Build/source/texk/dviljk
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dviljk')
-rw-r--r--Build/source/texk/dviljk/ChangeLog4
-rw-r--r--Build/source/texk/dviljk/dvi2xx.c19
-rw-r--r--Build/source/texk/dviljk/dvi2xx.h5
3 files changed, 24 insertions, 4 deletions
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