\f
/* Driver initialization. */
-int
+static int
ps_open_global (struct outp_class *this unused)
{
init_fonts ();
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. */
return valid_sizes;
}
-int
+static int
ps_preopen_driver (struct outp_driver *this)
{
struct ps_driver_ext *x;
return 1;
}
-int
+static int
ps_postopen_driver (struct outp_driver *this)
{
struct ps_driver_ext *x = this->ext;
return 1;
}
-int
+static int
ps_close_driver (struct outp_driver *this)
{
struct ps_driver_ext *x = this->ext;
};
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;
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)
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);
return 1;
}
-int
+static int
ps_open_page (struct outp_driver *this)
{
struct ps_driver_ext *x = this->ext;
return !ferror (x->file.file);
}
-int
+static int
ps_close_page (struct outp_driver *this)
{
struct ps_driver_ext *x = this->ext;
/* 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. */
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]));
(*f)->ndep++;
}
-void
+static void
ps_line_horz (struct outp_driver *this, const struct rect *r,
const struct color *c unused, int style)
{
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)
{
#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)
}
}
-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);
\f
/* Text. */
-void
+static void
ps_text_set_font_by_name (struct outp_driver *this, const char *dit)
{
struct ps_driver_ext *x = this->ext;
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;
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;
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;
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;
return x->family;
}
-int
+static int
ps_text_set_size (struct outp_driver *this, int size)
{
struct ps_driver_ext *x = this->ext;
return 1;
}
-int
+static int
ps_text_get_size (struct outp_driver *this, int *em_width)
{
struct ps_driver_ext *x = this->ext;
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);