X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fascii.c;h=738526f388e2b4ba3241471faeac348133374d29;hb=0ef6ac022673935ef842a1059aad45b89d59f025;hp=b91b6a6b4b1fd43e53593dc22889fea49de62d40;hpb=33a381c1da6c8a92ad8e1809e64a4953e9586b26;p=pspp-builds.git diff --git a/src/ascii.c b/src/ascii.c index b91b6a6b..738526f3 100644 --- a/src/ascii.c +++ b/src/ascii.c @@ -26,12 +26,16 @@ #include "alloc.h" #include "error.h" #include "filename.h" +#include "glob.h" #include "main.h" #include "misc.h" #include "output.h" #include "pool.h" #include "version.h" +#include "gettext.h" +#define _(msgid) gettext (msgid) + /* ASCII driver options: (defaults listed first) output-file="pspp.list" @@ -192,14 +196,14 @@ static struct outp_option_info *option_info; static int ascii_open_global (struct outp_class *this UNUSED) { - option_info = xmalloc ( sizeof (struct outp_option_info ) ) ; + option_info = xmalloc (sizeof *option_info); option_info->initial = 0; option_info->options = 0; return 1; } -static unsigned char *s=0; +static char *s; static int ascii_close_global (struct outp_class *this UNUSED) { @@ -228,7 +232,7 @@ ascii_preopen_driver (struct outp_driver *this) assert (this->driver_open == 0); msg (VM (1), _("ASCII driver initializing as `%s'..."), this->name); - this->ext = x = xmalloc (sizeof (struct ascii_driver_ext)); + this->ext = x = xmalloc (sizeof *x); x->char_set = CHS_ASCII; x->headers = 1; x->page_length = 66; @@ -713,7 +717,7 @@ ascii_open_page (struct outp_driver *this) if (x->l > x->lines_cap) { - x->lines = xrealloc (x->lines, sizeof *x->lines * x->l); + x->lines = xnrealloc (x->lines, x->l, sizeof *x->lines); for (i = x->lines_cap; i < x->l; i++) { struct line *line = &x->lines[i]; @@ -743,8 +747,8 @@ expand_line (struct ascii_driver_ext *x, int i, int l) if (l > line->char_cap) { line->char_cap = l * 2; - line->chars = xrealloc (line->chars, - line->char_cap * sizeof *line->chars); + line->chars = xnrealloc (line->chars, + line->char_cap, sizeof *line->chars); } for (j = line->char_cnt; j < l; j++) line->chars[j] = ' '; @@ -1155,8 +1159,8 @@ text_draw (struct outp_driver *this, struct outp_text *t) /* ascii_close_page () and support routines. */ #define LINE_BUF_SIZE 1024 -static unsigned char *line_buf; -static unsigned char *line_p; +static char *line_buf; +static char *line_p; static inline int commit_line_buf (struct outp_driver *this) @@ -1309,7 +1313,7 @@ output_shorts (struct outp_driver *this, /* Writes CH into line_buf N times, or to THIS->output if line_buf overflows. */ static inline void -output_char (struct outp_driver *this, int n, int ch) +output_char (struct outp_driver *this, int n, char ch) { if (LINE_BUF_SIZE - (line_p - line_buf) >= n) { @@ -1471,7 +1475,7 @@ output_lines (struct outp_driver *this, int first, int count) } if (n_passes > 1) { - unsigned char ch; + char ch; return_carriage (this, n_chars); n_chars = 0; @@ -1535,7 +1539,7 @@ ascii_close_page (struct outp_driver *this) struct ascii_driver_ext *x = this->ext; int nl_len, ff_len, total_len; - unsigned char *cp; + char *cp; int i; assert (this->driver_open && this->page_open); @@ -1576,7 +1580,8 @@ ascii_close_page (struct outp_driver *this) { char temp[40]; - snprintf (temp, 80, _("%s - Page %d"), curdate, x->page_number); + snprintf (temp, 80, _("%s - Page %d"), get_start_date (), + x->page_number); memcpy (&s[x->w - strlen (temp)], temp, strlen (temp)); } @@ -1621,11 +1626,7 @@ ascii_close_page (struct outp_driver *this) output_string (this, s, &s[total_len]); if (line_p != line_buf && !commit_line_buf (this)) - { - free(s); - s=0; return 0; - } this->page_open = 0; return 1;