X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=src%2Fpostscript.c;h=8a4c9acb7d5bf44ad3097ac55051f5e8ef5854a4;hb=b9e28aa5614a079548c616bcf97aa804024ad647;hp=8a11935aa6029e4b3a822995a517a6a940dd7e79;hpb=7b98b3a4f58f6dc5a8e9cbc188b627966d5e652d;p=pspp-builds.git diff --git a/src/postscript.c b/src/postscript.c index 8a11935a..8a4c9acb 100644 --- a/src/postscript.c +++ b/src/postscript.c @@ -23,7 +23,7 @@ #if !NO_POSTSCRIPT #include -#include +#include "error.h" #include #include #include @@ -661,6 +661,7 @@ ps_option (struct outp_driver *this, const char *key, const struct string *val) break; default: assert (0); + abort (); } if (setting) x->output_options |= mask; @@ -762,6 +763,7 @@ ps_option (struct outp_driver *this, const char *key, const struct string *val) break; default: assert (0); + abort (); } if (*dest) free (*dest); @@ -1106,8 +1108,6 @@ read_ps_encodings (struct outp_driver *this) for (;;) { - char *bp; - if (!ds_get_config_line (f, &line, &where)) { if (ferror (f)) @@ -1115,7 +1115,7 @@ read_ps_encodings (struct outp_driver *this) break; } - add_encoding (this, bp); + add_encoding (this, line.string); } ds_destroy (&line); @@ -2410,6 +2410,9 @@ write_text (struct outp_driver *this, case OUTP_T_JUST_CENTER: ofs = width_left / 2; break; + default: + assert (0); + abort (); } lp = line; @@ -2547,11 +2550,16 @@ text (struct outp_driver *this, struct outp_text *t, int draw) x = t->x; y = t->y; } + else + x = y = 0; width = width_left = (t->options & OUTP_T_HORZ) ? t->h : INT_MAX; height_left = (t->options & OUTP_T_VERT) ? t->v : INT_MAX; max_height = 0; prev_char = -1; space_char = NULL; + space_buf_loc = NULL; + space_width_left = 0; + if (!width || !height_left) goto exit; @@ -2566,9 +2574,12 @@ text (struct outp_driver *this, struct outp_text *t, int draw) /* Set char_name to the name of the character or ligature at *cp. */ + local_char_name[0] = *cp; + char_name = local_char_name; if (ext->current->font->ligatures && *cp == 'f') { int lig = 0; + char_name = NULL; if (cp < end - 1) switch (cp[1]) @@ -2596,11 +2607,9 @@ text (struct outp_driver *this, struct outp_text *t, int draw) } if ((lig & ext->current->font->ligatures) == 0) { - local_char_name[0] = *cp++; /* 'f' */ + local_char_name[0] = *cp; /* 'f' */ char_name = local_char_name; } - else - cp += strlen (char_name); } else if (*cp == '\n') { @@ -2623,11 +2632,7 @@ text (struct outp_driver *this, struct outp_text *t, int draw) set separate to 1. */ continue; } - else - { - local_char_name[0] = *cp++; - char_name = local_char_name; - } + cp += strlen (char_name); /* Figure out what size this character is, and what kern adjustment we need. */