summaryrefslogtreecommitdiffstats
path: root/contrib/groff/src/xditview/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/groff/src/xditview/parse.c')
-rw-r--r--contrib/groff/src/xditview/parse.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/contrib/groff/src/xditview/parse.c b/contrib/groff/src/xditview/parse.c
index e1df8c9..d763268 100644
--- a/contrib/groff/src/xditview/parse.c
+++ b/contrib/groff/src/xditview/parse.c
@@ -141,6 +141,7 @@ ParseInput(dw)
break;
case 'F': /* input files */
case '+': /* continuation of X device control */
+ case 'm': /* color */
case '#': /* comment */
GetLine(dw, NULL, 0);
break;
@@ -205,7 +206,7 @@ DviWidget dw;
char *buf;
{
int v[DRAW_ARGS_MAX];
- int i;
+ int i, no_move = 0;
char *ptr;
v[0] = v[1] = v[2] = v[3] = 0;
@@ -257,24 +258,28 @@ char *buf;
case 'f':
if (i > 0 && v[0] >= 0 && v[0] <= DVI_FILL_MAX)
dw->dvi.fill = v[0];
+ no_move = 1;
break;
default:
#if 0
warning("unknown drawing function %s", buf);
#endif
+ no_move = 1;
break;
}
- if (buf[0] == 'e') {
- if (i > 0)
- dw->dvi.state->x += v[0];
- }
- else {
- while (--i >= 0) {
- if (i & 1)
- dw->dvi.state->y += v[i];
- else
- dw->dvi.state->x += v[i];
+ if (!no_move) {
+ if (buf[0] == 'e') {
+ if (i > 0)
+ dw->dvi.state->x += v[0];
+ }
+ else {
+ while (--i >= 0) {
+ if (i & 1)
+ dw->dvi.state->y += v[i];
+ else
+ dw->dvi.state->x += v[i];
+ }
}
}
}
OpenPOWER on IntegriCloud