X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fpostscript.c;h=be8abb5a60bd97025a1909d5bfcce0f107bf7e52;hb=d69833d7d425cd98c3793a89945153306dfa7ab3;hp=16d02094133ecac1a8374b30e17cdc7a9a7f7891;hpb=b18e1b9c95a478d434e9fcef9d8579d0b96b9a8d;p=pspp-builds.git diff --git a/src/postscript.c b/src/postscript.c index 16d02094..be8abb5a 100644 --- a/src/postscript.c +++ b/src/postscript.c @@ -17,23 +17,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* AIX requires this to be the first thing in the file. */ #include -#if __GNUC__ -#define alloca __builtin_alloca -#else -#if HAVE_ALLOCA_H -#include -#else -#ifdef _AIX -#pragma alloca -#else -#ifndef alloca /* predefined by HP cc +Olibcalls */ -char *alloca (); -#endif -#endif -#endif -#endif /*this #if encloses the remainder of the file. */ #if !NO_POSTSCRIPT @@ -302,7 +286,7 @@ static char *quote_ps_string (char *dest, const char *string); /* Driver initialization. */ -int +static int ps_open_global (struct outp_class *this unused) { init_fonts (); @@ -310,13 +294,13 @@ ps_open_global (struct outp_class *this unused) return 1; } -int +static int ps_close_global (struct outp_class *this unused) { return 1; } -int * +static int * ps_font_sizes (struct outp_class *this unused, int *n_valid_sizes) { /* Allow fonts up to 1" in height. */ @@ -328,7 +312,7 @@ ps_font_sizes (struct outp_class *this unused, int *n_valid_sizes) return valid_sizes; } -int +static int ps_preopen_driver (struct outp_driver *this) { struct ps_driver_ext *x; @@ -403,7 +387,7 @@ ps_preopen_driver (struct outp_driver *this) return 1; } -int +static int ps_postopen_driver (struct outp_driver *this) { struct ps_driver_ext *x = this->ext; @@ -476,7 +460,7 @@ ps_postopen_driver (struct outp_driver *this) return 1; } -int +static int ps_close_driver (struct outp_driver *this) { struct ps_driver_ext *x = this->ext; @@ -578,7 +562,7 @@ static struct outp_option option_tab[] = }; static struct outp_option_info option_info; -void +static void ps_option (struct outp_driver *this, const char *key, const struct string *val) { struct ps_driver_ext *x = this->ext; @@ -955,8 +939,11 @@ output_encodings (struct outp_driver *this) while (ds_get_config_line (f, &buf, &where)) { - char *sp; - + char *sp; + + if (buf.length == 0) + continue; + pschar = strtok_r (ds_value (&buf), " \t\r\n", &sp); code = strtok_r (NULL, " \t\r\n", &sp); if (*pschar == 0 || *code == 0) @@ -1064,14 +1051,13 @@ static void add_encoding (struct outp_driver *this, char *filename) { struct ps_driver_ext *x = this->ext; - struct ps_encoding **pe; filename = find_encoding_file (this, filename); if (!filename) return; - pe = (struct ps_encoding **) hsh_probe (x->encodings, (void *) &filename); + pe = (struct ps_encoding **) hsh_probe (x->encodings, &filename); if (*pe) { free (filename); @@ -1650,7 +1636,7 @@ preclose (struct file_ext *f) return 1; } -int +static int ps_open_page (struct outp_driver *this) { struct ps_driver_ext *x = this->ext; @@ -1707,7 +1693,7 @@ ps_open_page (struct outp_driver *this) return !ferror (x->file.file); } -int +static int ps_close_page (struct outp_driver *this) { struct ps_driver_ext *x = this->ext; @@ -1730,16 +1716,22 @@ ps_close_page (struct outp_driver *this) /* qsort() comparison function for int tuples. */ static int -int_2_compare (const void *a, const void *b) +int_2_compare (const void *a_, const void *b_) { - return *((const int *) a) - *((const int *) b); + const int *a = a_; + const int *b = b_; + + return *a < *b ? -1 : *a > *b; } /* Hash table comparison function for cached lines. */ static int -compare_line (const void *a, const void *b, void *foo unused) +compare_line (const void *a_, const void *b_, void *foo unused) { - return ((struct line_form *) a)->ind - ((struct line_form *) b)->ind; + const struct line_form *a = a_; + const struct line_form *b = b_; + + return a->ind < b->ind ? -1 : a->ind > b->ind; } /* Hash table hash function for cached lines. */ @@ -1883,8 +1875,7 @@ line (struct outp_driver *this, int type, int ind, int dep1, int dep2) if (ext->lines[type] == NULL) ext->lines[type] = hsh_create (31, compare_line, hash_line, free_line, NULL); - f = (struct line_form **) hsh_probe (ext->lines[type], - (struct line_form *) & ind); + f = (struct line_form **) hsh_probe (ext->lines[type], &ind); if (*f == NULL) { *f = xmalloc (sizeof **f + sizeof (int[15][2])); @@ -1905,7 +1896,7 @@ line (struct outp_driver *this, int type, int ind, int dep1, int dep2) (*f)->ndep++; } -void +static void ps_line_horz (struct outp_driver *this, const struct rect *r, const struct color *c unused, int style) { @@ -1922,7 +1913,7 @@ ps_line_horz (struct outp_driver *this, const struct rect *r, line (this, style, y, r->x1, r->x2); } -void +static void ps_line_vert (struct outp_driver *this, const struct rect *r, const struct color *c unused, int style) { @@ -1944,7 +1935,7 @@ ps_line_vert (struct outp_driver *this, const struct rect *r, #define T (style->t != OUTP_L_NONE) #define B (style->b != OUTP_L_NONE) -void +static void ps_line_intersection (struct outp_driver *this, const struct rect *r, const struct color *c unused, const struct outp_styles *style) @@ -2026,38 +2017,25 @@ ps_line_intersection (struct outp_driver *this, const struct rect *r, } } -void -ps_line_width (struct outp_driver *this, int *width, int *height) -{ - struct ps_driver_ext *x = this->ext; - - assert (this->driver_open && this->page_open); - width[0] = height[0] = 0; - width[1] = height[1] = 2 * x->line_gutter + x->line_width; - width[2] = height[2] = (2 * x->line_gutter + 2 * x->line_width - + x->line_space); - width[3] = height[3] = 2 * x->line_gutter + x->line_width; -} - -void +static void ps_box (struct outp_driver *this unused, const struct rect *r unused, const struct color *bord unused, const struct color *fill unused) { assert (this->driver_open && this->page_open); } -void +static void ps_polyline_begin (struct outp_driver *this unused, const struct color *c unused) { assert (this->driver_open && this->page_open); } -void +static void ps_polyline_point (struct outp_driver *this unused, int x unused, int y unused) { assert (this->driver_open && this->page_open); } -void +static void ps_polyline_end (struct outp_driver *this unused) { assert (this->driver_open && this->page_open); @@ -2154,7 +2132,7 @@ draw_headers (struct outp_driver *this) /* Text. */ -void +static void ps_text_set_font_by_name (struct outp_driver *this, const char *dit) { struct ps_driver_ext *x = this->ext; @@ -2183,7 +2161,7 @@ ps_text_set_font_by_name (struct outp_driver *this, const char *dit) x->current = fe; } -void +static void ps_text_set_font_by_position (struct outp_driver *this, int pos) { struct ps_driver_ext *x = this->ext; @@ -2230,7 +2208,7 @@ ps_text_set_font_by_position (struct outp_driver *this, int pos) local_free (dit); } -void +static void ps_text_set_font_family (struct outp_driver *this, const char *s) { struct ps_driver_ext *x = this->ext; @@ -2241,7 +2219,7 @@ ps_text_set_font_family (struct outp_driver *this, const char *s) x->family = xstrdup (s); } -const char * +static const char * ps_text_get_font_name (struct outp_driver *this) { struct ps_driver_ext *x = this->ext; @@ -2250,7 +2228,7 @@ ps_text_get_font_name (struct outp_driver *this) return x->current->font->name; } -const char * +static const char * ps_text_get_font_family (struct outp_driver *this) { struct ps_driver_ext *x = this->ext; @@ -2259,7 +2237,7 @@ ps_text_get_font_family (struct outp_driver *this) return x->family; } -int +static int ps_text_set_size (struct outp_driver *this, int size) { struct ps_driver_ext *x = this->ext; @@ -2269,7 +2247,7 @@ ps_text_set_size (struct outp_driver *this, int size) return 1; } -int +static int ps_text_get_size (struct outp_driver *this, int *em_width) { struct ps_driver_ext *x = this->ext; @@ -2781,14 +2759,14 @@ exit: ext->size = old_size; } -void +static void ps_text_metrics (struct outp_driver *this, struct outp_text *t) { assert (this->driver_open && this->page_open); text (this, t, 0); } -void +static void ps_text_draw (struct outp_driver *this, struct outp_text *t) { assert (this->driver_open && this->page_open);