From f45f390ac4fee8469907ae9e1d8067165e9cce7f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 9 Jun 2007 23:17:44 +0000 Subject: ps::nobreak special git-svn-id: svn://tug.org/texlive/trunk@4422 c570f23f-e606-0410-a88d-b1316a301751 --- Build/source/texk/dvipsk/ChangeLog | 6 ++++++ Build/source/texk/dvipsk/dospecial.c | 17 ++++++++++------- Build/source/texk/dvipsk/dvips.texi | 7 ++++++- 3 files changed, 22 insertions(+), 8 deletions(-) (limited to 'Build/source') diff --git a/Build/source/texk/dvipsk/ChangeLog b/Build/source/texk/dvipsk/ChangeLog index 98c5abba49d..4624c515416 100644 --- a/Build/source/texk/dvipsk/ChangeLog +++ b/Build/source/texk/dvipsk/ChangeLog @@ -1,3 +1,9 @@ +2007-06-10 Karl Berry + + * dospecial.c: implement ps::nobreak for Scott (Pakin); we need + to break by default because pstricks is written to assume that, + and we can't ask Herbert to rewrite thousands of lines of code. + 2007-05-31 Karl Berry * hps.c (finish_hps): remove head.tmp and body.tmp unless diff --git a/Build/source/texk/dvipsk/dospecial.c b/Build/source/texk/dvipsk/dospecial.c index d59b8235dba..620d2ef14a9 100644 --- a/Build/source/texk/dvipsk/dospecial.c +++ b/Build/source/texk/dvipsk/dospecial.c @@ -602,12 +602,15 @@ case 'p': if (strncmp(p, "ps:", 3)==0) { psflush() ; /* now anything can happen. */ if (p[3]==':') { - if (strncmp(p+4, "[begin]", 7) == 0) { + if (strncmp(p+4, "[nobreak]", 9) == 0) { hvpos() ; - outputstring(&p[11]) ; + outputstring(&p[13]) ; + } else if (strncmp(p+4, "[begin]", 7) == 0) { + hvpos() ; + trytobreakout(&p[11]) ; } else if (strncmp(p+4, "[end]", 5) == 0) - outputstring(&p[9]); - else outputstring(&p[4]); + trytobreakout(&p[9]); + else trytobreakout(&p[4]); } else if (strncmp(p+3, " plotfile ", 10) == 0) { char *sfp ; hvpos() ; @@ -631,7 +634,7 @@ case 'p': /* End TJD changes */ } else { hvpos() ; - outputstring(&p[3]); + trytobreakout(&p[3]); psflush() ; hvpos() ; } @@ -767,8 +770,8 @@ case '"': hvpos() ; cmdout("@beginspecial") ; cmdout("@setspecial") ; - outputstring(p+1) ; - cmdout("@endspecial") ; + trytobreakout(p+1) ; + cmdout("\n@endspecial") ; return ; break ; default: diff --git a/Build/source/texk/dvipsk/dvips.texi b/Build/source/texk/dvipsk/dvips.texi index d5d92ee97c7..8e371c82f9e 100644 --- a/Build/source/texk/dvipsk/dvips.texi +++ b/Build/source/texk/dvipsk/dvips.texi @@ -3,7 +3,7 @@ @settitle Dvips: A DVI-to-PostScript translator @set version 5.96dev -@set month-year May 2007 +@set month-year June 2007 @copying This manual documents Dvips version @value{version} @@ -2636,6 +2636,7 @@ of the following will work: \special@{ps::@var{text}@} \special@{ps::[begin]@var{text}@} \special@{ps::[end]@var{text}@} +\special@{ps::[nobreak]@var{text}@} @end example @noindent @@ -2644,6 +2645,10 @@ present). @samp{ps::} and @samp{ps::[end]} do no positioning, so they can be used to continue PostScript literals started with @samp{ps:} or @samp{ps::[begin]}. +Literal PostScript instructions after @samp{ps::[nobreak]} are +@emph{not} broken into lines. This feature may be used to include +PostScript comments, for example. + @findex plotfile@r{, @samp{ps} subspecial} In addition, the variant -- cgit v1.2.3