summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk/dospecial.c
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-12-07 22:46:13 +0000
committerKarl Berry <karl@freefriends.org>2006-12-07 22:46:13 +0000
commit06c5c638859d4cb20fe3201df1fa9ab6f216d4f0 (patch)
tree269cc6d6c475dc30b51ddf45465197d6620b7e1c /Build/source/texk/dvipsk/dospecial.c
parent954a067e3613a39197a4b981f5652c8fc3c25502 (diff)
accumulated fixes from akira
git-svn-id: svn://tug.org/texlive/trunk@2613 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvipsk/dospecial.c')
-rw-r--r--Build/source/texk/dvipsk/dospecial.c32
1 files changed, 26 insertions, 6 deletions
diff --git a/Build/source/texk/dvipsk/dospecial.c b/Build/source/texk/dvipsk/dospecial.c
index 34e0dacdcb1..d59b8235dba 100644
--- a/Build/source/texk/dvipsk/dospecial.c
+++ b/Build/source/texk/dvipsk/dospecial.c
@@ -85,6 +85,16 @@ void specerror P1C(char *, s)
}
}
+static void outputstring P1C(register char *, p)
+{
+ (void)putc('\n', bitfile) ;
+ while(*p) {
+ (void)putc(*p, bitfile) ;
+ p++ ;
+ }
+ (void)putc('\n', bitfile) ;
+}
+
static void trytobreakout P1C(register char *, p)
{
register int i ;
@@ -93,6 +103,16 @@ static void trytobreakout P1C(register char *, p)
i = 0 ;
(void)putc('\n', bitfile) ;
+
+ if(*p == '%') {
+ while(*p) {
+ (void)putc(*p, bitfile) ;
+ p++ ;
+ }
+ (void)putc('\n', bitfile) ;
+ return ;
+ }
+
while (*p) {
if (i > 65 && *p == ' ' && instring == 0) {
(void)putc('\n', bitfile) ;
@@ -584,10 +604,10 @@ case 'p':
if (p[3]==':') {
if (strncmp(p+4, "[begin]", 7) == 0) {
hvpos() ;
- trytobreakout(&p[11]);
+ outputstring(&p[11]) ;
} else if (strncmp(p+4, "[end]", 5) == 0)
- trytobreakout(&p[9]);
- else trytobreakout(&p[4]);
+ outputstring(&p[9]);
+ else outputstring(&p[4]);
} else if (strncmp(p+3, " plotfile ", 10) == 0) {
char *sfp ;
hvpos() ;
@@ -611,7 +631,7 @@ case 'p':
/* End TJD changes */
} else {
hvpos() ;
- trytobreakout(&p[3]);
+ outputstring(&p[3]);
psflush() ;
hvpos() ;
}
@@ -747,8 +767,8 @@ case '"':
hvpos() ;
cmdout("@beginspecial") ;
cmdout("@setspecial") ;
- trytobreakout(p+1) ;
- cmdout("\n@endspecial") ;
+ outputstring(p+1) ;
+ cmdout("@endspecial") ;
return ;
break ;
default: