diff options
author | Karl Berry <karl@freefriends.org> | 2006-12-07 22:46:13 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-12-07 22:46:13 +0000 |
commit | 06c5c638859d4cb20fe3201df1fa9ab6f216d4f0 (patch) | |
tree | 269cc6d6c475dc30b51ddf45465197d6620b7e1c /Build/source/texk/dvipsk/dospecial.c | |
parent | 954a067e3613a39197a4b981f5652c8fc3c25502 (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.c | 32 |
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: |