X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fsys-file-reader.c;h=4c69d2bfa295cec42b33b347c032ffbfabe988fb;hb=6fdf428d72c5695c1bc21a7158f75a542d96df8b;hp=71fd6814ba544dc120d87741c66894b6e05eedbf;hpb=2322678e8fddbbf158b01b2720db2636404bba3b;p=pspp-builds.git diff --git a/src/data/sys-file-reader.c b/src/data/sys-file-reader.c index 71fd6814..4c69d2bf 100644 --- a/src/data/sys-file-reader.c +++ b/src/data/sys-file-reader.c @@ -18,33 +18,32 @@ 02110-1301, USA. */ #include -#include "sys-file-reader.h" -#include "sfm-private.h" -#include "message.h" + #include -#include #include #include -#include -#include "alloc.h" +#include + +#include +#include +#include +#include +#include +#include + +#include "sys-file-reader.h" +#include "sfm-private.h" #include "case.h" -#include "compiler.h" #include "dictionary.h" -#include "message.h" #include "file-handle-def.h" -#include "filename.h" +#include "file-name.h" #include "format.h" -#include "magic.h" -#include "misc.h" #include "value-labels.h" -#include "str.h" #include "variable.h" #include "gettext.h" #define _(msgid) gettext (msgid) -#include "debug-print.h" - /* System file reader. */ struct sfm_reader { @@ -98,7 +97,7 @@ bswap (char *a, char *b) /* Reverse the byte order of 32-bit integer *X. */ static inline void -bswap_int32 (int32 *x_) +bswap_int32 (int32_t *x_) { char *x = (char *) x_; bswap (x + 0, x + 3); @@ -124,17 +123,22 @@ corrupt_msg (int class, const char *format,...) static void corrupt_msg (int class, const char *format,...) { - struct error e; + struct msg m; va_list args; + struct string text; - e.class = class; - e.where.filename = NULL; - e.where.line_number = 0; - e.title = _("corrupt system file: "); - + ds_create (&text, _("corrupt system file: ")); va_start (args, format); - err_vmsg (&e, format, args); + ds_vprintf (&text, format, args); va_end (args); + + m.category = msg_class_to_category (class); + m.severity = msg_class_to_severity (class); + m.where.file_name = NULL; + m.where.line_number = 0; + m.text = ds_c_str (&text); + + msg_emit (&m); } /* Closes a system file after we're done with it. */ @@ -146,9 +150,9 @@ sfm_close_reader (struct sfm_reader *r) if (r->file) { - if (fn_close (fh_get_filename (r->fh), r->file) == EOF) + if (fn_close (fh_get_file_name (r->fh), r->file) == EOF) msg (ME, _("%s: Closing system file: %s."), - fh_get_filename (r->fh), strerror (errno)); + fh_get_file_name (r->fh), strerror (errno)); r->file = NULL; } @@ -169,7 +173,7 @@ static void *buf_read (struct sfm_reader *, void *buf, size_t byte_cnt, static int read_header (struct sfm_reader *, struct dictionary *, struct sfm_read_info *); -static int parse_format_spec (struct sfm_reader *, int32, +static int parse_format_spec (struct sfm_reader *, int32_t, struct fmt_spec *, const struct variable *); static int read_value_labels (struct sfm_reader *, struct dictionary *, struct variable **var_by_idx); @@ -215,7 +219,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, /* Create and initialize reader. */ r = xmalloc (sizeof *r); r->fh = fh; - r->file = fn_open (fh_get_filename (fh), "rb"); + r->file = fn_open (fh_get_file_name (fh), "rb"); r->reverse_endian = 0; r->fix_specials = 0; @@ -240,7 +244,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, { msg (ME, _("An error occurred while opening \"%s\" for reading " "as a system file: %s."), - fh_get_filename (r->fh), strerror (errno)); + fh_get_file_name (r->fh), strerror (errno)); goto error; } @@ -257,7 +261,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, if (r->weight_idx < 0 || r->weight_idx >= r->value_cnt) lose ((ME, _("%s: Index of weighting variable (%d) is not between 0 " "and number of elements per case (%d)."), - fh_get_filename (r->fh), r->weight_idx, r->value_cnt)); + fh_get_file_name (r->fh), r->weight_idx, r->value_cnt)); weight_var = var_by_idx[r->weight_idx]; @@ -265,10 +269,10 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, if (weight_var == NULL) lose ((ME, _("%s: Weighting variable may not be a continuation of " - "a long string variable."), fh_get_filename (fh))); + "a long string variable."), fh_get_file_name (fh))); else if (weight_var->type == ALPHA) lose ((ME, _("%s: Weighting variable may not be a string variable."), - fh_get_filename (fh))); + fh_get_file_name (fh))); dict_set_weight (*dict, weight_var); } @@ -278,7 +282,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, /* Read records of types 3, 4, 6, and 7. */ for (;;) { - int32 rec_type; + int32_t rec_type; assertive_buf_read (r, &rec_type, sizeof rec_type, 0); if (r->reverse_endian) @@ -295,7 +299,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, lose ((ME, _("%s: Orphaned variable index record (type 4). Type 4 " "records must always immediately follow type 3 " "records."), - fh_get_filename (r->fh))); + fh_get_file_name (r->fh))); case 6: if (!read_documents (r, *dict)) @@ -306,9 +310,9 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, { struct { - int32 subtype P; - int32 size P; - int32 count P; + int32_t subtype P; + int32_t size P; + int32_t count P; } data; unsigned long bytes; @@ -325,7 +329,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, bytes = data.size * data.count; if (bytes < data.size || bytes < data.count) lose ((ME, "%s: Record type %d subtype %d too large.", - fh_get_filename (r->fh), rec_type, data.subtype)); + fh_get_file_name (r->fh), rec_type, data.subtype)); switch (data.subtype) { @@ -352,7 +356,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, { msg (MW, _("%s: Invalid subrecord length. " "Record: 7; Subrecord: 11"), - fh_get_filename (r->fh)); + fh_get_file_name (r->fh)); skip = 1; } @@ -360,9 +364,9 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, { struct { - int32 measure P; - int32 width P; - int32 align P; + int32_t measure P; + int32_t width P; + int32_t align P; } params; @@ -406,14 +410,14 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, { msg (MW, _("%s: Trailing garbage in long variable " "name map."), - fh_get_filename (r->fh)); + fh_get_file_name (r->fh)); break; } if (!var_is_valid_name (long_name, false)) { msg (MW, _("%s: Long variable mapping to invalid " "variable name `%s'."), - fh_get_filename (r->fh), long_name); + fh_get_file_name (r->fh), long_name); break; } @@ -423,7 +427,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, { msg (MW, _("%s: Long variable mapping for " "nonexistent variable %s."), - fh_get_filename (r->fh), short_name); + fh_get_file_name (r->fh), short_name); break; } @@ -432,7 +436,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, NULL != dict_lookup_var (*dict, long_name)) lose ((ME, _("%s: Duplicate long variable name `%s' " "within system file."), - fh_get_filename (r->fh), long_name)); + fh_get_file_name (r->fh), long_name)); /* Set long name. @@ -459,7 +463,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, default: msg (MW, _("%s: Unrecognized record type 7, subtype %d " "encountered in system file."), - fh_get_filename (r->fh), data.subtype); + fh_get_file_name (r->fh), data.subtype); skip = 1; } @@ -475,7 +479,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, case 999: { - int32 filler; + int32_t filler; assertive_buf_read (r, &filler, sizeof filler, 0); goto success; @@ -483,7 +487,7 @@ sfm_open_reader (struct file_handle *fh, struct dictionary **dict, default: corrupt_msg(MW, _("%s: Unrecognized record type %d."), - fh_get_filename (r->fh), rec_type); + fh_get_file_name (r->fh), rec_type); } } @@ -508,15 +512,15 @@ error: static int read_machine_int32_info (struct sfm_reader *r, int size, int count) { - int32 data[8]; + int32_t data[8]; int file_bigendian; int i; - if (size != sizeof (int32) || count != 8) + if (size != sizeof (int32_t) || count != 8) lose ((ME, _("%s: Bad size (%d) or count (%d) field on record type 7, " "subtype 3. Expected size %d, count 8."), - fh_get_filename (r->fh), size, count, sizeof (int32))); + fh_get_file_name (r->fh), size, count, sizeof (int32_t))); assertive_buf_read (r, data, sizeof data, 0); if (r->reverse_endian) @@ -528,7 +532,7 @@ read_machine_int32_info (struct sfm_reader *r, int size, int count) lose ((ME, _("%s: Floating-point representation in system file is not " "IEEE-754. PSPP cannot convert between floating-point " "formats."), - fh_get_filename (r->fh))); + fh_get_file_name (r->fh))); #else #error Add support for your floating-point format. #endif @@ -543,7 +547,7 @@ read_machine_int32_info (struct sfm_reader *r, int size, int count) if (file_bigendian ^ (data[6] == 1)) lose ((ME, _("%s: File-indicated endianness (%s) does not match " "endianness intuited from file header (%s)."), - fh_get_filename (r->fh), + fh_get_file_name (r->fh), file_bigendian ? _("big-endian") : _("little-endian"), data[6] == 1 ? _("big-endian") : (data[6] == 2 ? _("little-endian") : _("unknown")))); @@ -552,7 +556,7 @@ read_machine_int32_info (struct sfm_reader *r, int size, int count) if (data[7] != 2 && data[7] != 3) lose ((ME, _("%s: File-indicated character representation code (%s) is " "not ASCII."), - fh_get_filename (r->fh), + fh_get_file_name (r->fh), (data[7] == 1 ? "EBCDIC" : (data[7] == 4 ? _("DEC Kanji") : _("Unknown"))))); @@ -572,7 +576,7 @@ read_machine_flt64_info (struct sfm_reader *r, int size, int count) if (size != sizeof (flt64) || count != 3) lose ((ME, _("%s: Bad size (%d) or count (%d) field on record type 7, " "subtype 4. Expected size %d, count 8."), - fh_get_filename (r->fh), size, count, sizeof (flt64))); + fh_get_file_name (r->fh), size, count, sizeof (flt64))); assertive_buf_read (r, data, sizeof data, 0); if (r->reverse_endian) @@ -589,7 +593,7 @@ read_machine_flt64_info (struct sfm_reader *r, int size, int count) "for at least one of the three system values. SYSMIS: " "indicated %g, expected %g; HIGHEST: %g, %g; LOWEST: " "%g, %g."), - fh_get_filename (r->fh), (double) data[0], (double) SYSMIS, + fh_get_file_name (r->fh), (double) data[0], (double) SYSMIS, (double) data[1], (double) FLT64_MAX, (double) data[2], (double) second_lowest_flt64); } @@ -614,15 +618,15 @@ read_header (struct sfm_reader *r, if (strncmp ("$FL2", hdr.rec_type, 4) != 0) lose ((ME, _("%s: Bad magic. Proper system files begin with " "the four characters `$FL2'. This file will not be read."), - fh_get_filename (r->fh))); + fh_get_file_name (r->fh))); /* Check eye-category.her string. */ memcpy (prod_name, hdr.prod_name, sizeof hdr.prod_name); for (i = 0; i < 60; i++) - if (!isprint ((unsigned char) prod_name[i])) + if (!c_isprint ((unsigned char) prod_name[i])) prod_name[i] = ' '; for (i = 59; i >= 0; i--) - if (!isgraph ((unsigned char) prod_name[i])) + if (!c_isgraph ((unsigned char) prod_name[i])) { prod_name[i] = '\0'; break; @@ -656,7 +660,7 @@ read_header (struct sfm_reader *r, if (hdr.layout_code != 2) lose ((ME, _("%s: File layout code has unexpected value %d. Value " "should be 2, in big-endian or little-endian format."), - fh_get_filename (r->fh), hdr.layout_code)); + fh_get_file_name (r->fh), hdr.layout_code)); r->reverse_endian = 1; bswap_int32 (&hdr.case_size); @@ -683,13 +687,13 @@ read_header (struct sfm_reader *r, if (r->case_cnt < -1 || r->case_cnt > INT_MAX / 2) lose ((ME, _("%s: Number of cases in file (%ld) is not between -1 and %d."), - fh_get_filename (r->fh), (long) r->case_cnt, INT_MAX / 2)); + fh_get_file_name (r->fh), (long) r->case_cnt, INT_MAX / 2)); r->bias = hdr.bias; if (r->bias != 100.0) corrupt_msg (MW, _("%s: Compression bias (%g) is not the usual " "value of 100."), - fh_get_filename (r->fh), r->bias); + fh_get_file_name (r->fh), r->bias); /* Make a file label only on the condition that the given label is not all spaces or nulls. */ @@ -697,16 +701,18 @@ read_header (struct sfm_reader *r, int i; for (i = sizeof hdr.file_label - 1; i >= 0; i--) - if (!isspace ((unsigned char) hdr.file_label[i]) - && hdr.file_label[i] != 0) - { - char *label = xmalloc (i + 2); - memcpy (label, hdr.file_label, i + 1); - label[i + 1] = 0; - dict_set_label (dict, label); - free (label); - break; - } + { + if (!c_isspace ((unsigned char) hdr.file_label[i]) + && hdr.file_label[i] != 0) + { + char *label = xmalloc (i + 2); + memcpy (label, hdr.file_label, i + 1); + label[i + 1] = 0; + dict_set_label (dict, label); + free (label); + break; + } + } } if (info) @@ -730,7 +736,7 @@ read_header (struct sfm_reader *r, info->case_cnt = hdr.case_cnt; for (cp = &prod_name[skip_amt]; cp < &prod_name[60]; cp++) - if (isgraph ((unsigned char) *cp)) + if (c_isgraph ((unsigned char) *cp)) break; strcpy (info->product, cp); } @@ -812,7 +818,7 @@ read_variables (struct sfm_reader *r, if (sv.type != -1) lose ((ME, _("%s: position %d: String variable does not have " "proper number of continuation records."), - fh_get_filename (r->fh), i)); + fh_get_file_name (r->fh), i)); r->vars[i].width = -1; @@ -823,71 +829,49 @@ read_variables (struct sfm_reader *r, else if (sv.type == -1) lose ((ME, _("%s: position %d: Superfluous long string continuation " "record."), - fh_get_filename (r->fh), i)); + fh_get_file_name (r->fh), i)); /* Check fields for validity. */ if (sv.type < 0 || sv.type > 255) lose ((ME, _("%s: position %d: Bad variable type code %d."), - fh_get_filename (r->fh), i, sv.type)); + fh_get_file_name (r->fh), i, sv.type)); if (sv.has_var_label != 0 && sv.has_var_label != 1) lose ((ME, _("%s: position %d: Variable label indicator field is not " - "0 or 1."), fh_get_filename (r->fh), i)); + "0 or 1."), fh_get_file_name (r->fh), i)); if (sv.n_missing_values < -3 || sv.n_missing_values > 3 || sv.n_missing_values == -1) lose ((ME, _("%s: position %d: Missing value indicator field is not " - "-3, -2, 0, 1, 2, or 3."), fh_get_filename (r->fh), i)); + "-3, -2, 0, 1, 2, or 3."), fh_get_file_name (r->fh), i)); /* Copy first character of variable name. */ - if (!isalpha ((unsigned char) sv.name[0]) - && sv.name[0] != '@' && sv.name[0] != '#') + if (sv.name[0] == '@' || sv.name[0] == '#') lose ((ME, _("%s: position %d: Variable name begins with invalid " "character."), - fh_get_filename (r->fh), i)); - if (islower ((unsigned char) sv.name[0])) - msg (MW, _("%s: position %d: Variable name begins with lowercase letter " - "%c."), - fh_get_filename (r->fh), i, sv.name[0]); - if (sv.name[0] == '#') - msg (MW, _("%s: position %d: Variable name begins with octothorpe " - "(`#'). Scratch variables should not appear in system " - "files."), - fh_get_filename (r->fh), i); - name[0] = toupper ((unsigned char) (sv.name[0])); + fh_get_file_name (r->fh), i)); + + name[0] = sv.name[0]; /* Copy remaining characters of variable name. */ for (j = 1; j < SHORT_NAME_LEN; j++) { int c = (unsigned char) sv.name[j]; - if (isspace (c)) + if (c == ' ') break; - else if (islower (c)) - { - msg (MW, _("%s: position %d: Variable name character %d is " - "lowercase letter %c."), - fh_get_filename (r->fh), i, j + 1, sv.name[j]); - name[j] = toupper ((unsigned char) (c)); - } - else if (isalnum (c) || c == '.' || c == '@' - || c == '#' || c == '$' || c == '_') + else name[j] = c; - else - lose ((ME, _("%s: position %d: character `\\%03o' (%c) is not valid in a " - "variable name."), - fh_get_filename (r->fh), i, c, c)); } name[j] = 0; - if ( ! var_is_valid_name(name, false) ) + if ( ! var_is_plausible_name(name, false) ) lose ((ME, _("%s: Invalid variable name `%s' within system file."), - fh_get_filename (r->fh), name)); + fh_get_file_name (r->fh), name)); /* Create variable. */ - vv = (*var_by_idx)[i] = dict_create_var (dict, name, sv.type); if (vv == NULL) lose ((ME, _("%s: Duplicate variable name `%s' within system file."), - fh_get_filename (r->fh), name)); + fh_get_file_name (r->fh), name)); var_set_short_name (vv, vv->name); @@ -900,7 +884,7 @@ read_variables (struct sfm_reader *r, if (sv.has_var_label == 1) { /* Disk buffer. */ - int32 len; + int32_t len; /* Read length of label. */ assertive_buf_read (r, &len, sizeof len, 0); @@ -911,12 +895,12 @@ read_variables (struct sfm_reader *r, if (len < 0 || len > 255) lose ((ME, _("%s: Variable %s indicates variable label of invalid " "length %d."), - fh_get_filename (r->fh), vv->name, len)); + fh_get_file_name (r->fh), vv->name, len)); if ( len != 0 ) { /* Read label into variable structure. */ - vv->label = buf_read (r, NULL, ROUND_UP (len, sizeof (int32)), len + 1); + vv->label = buf_read (r, NULL, ROUND_UP (len, sizeof (int32_t)), len + 1); if (vv->label == NULL) goto error; vv->label[len] = '\0'; @@ -932,7 +916,7 @@ read_variables (struct sfm_reader *r, if (vv->width > MAX_SHORT_STRING) lose ((ME, _("%s: Long string variable %s may not have missing " "values."), - fh_get_filename (r->fh), vv->name)); + fh_get_file_name (r->fh), vv->name)); assertive_buf_read (r, mv, sizeof *mv * mv_cnt, 0); @@ -953,7 +937,7 @@ read_variables (struct sfm_reader *r, if (vv->type == ALPHA) lose ((ME, _("%s: String variable %s may not have missing " "values specified as a range."), - fh_get_filename (r->fh), vv->name)); + fh_get_file_name (r->fh), vv->name)); if (mv[0] == r->lowest) mv_add_num_range (&vv->miss, LOWEST, mv[1]); @@ -980,12 +964,12 @@ read_variables (struct sfm_reader *r, if (long_string_count != 0) lose ((ME, _("%s: Long string continuation records omitted at end of " "dictionary."), - fh_get_filename (r->fh))); + fh_get_file_name (r->fh))); if (next_value != r->value_cnt) corrupt_msg(MW, _("%s: System file header indicates %d variable positions but " "%d were read from file."), - fh_get_filename (r->fh), r->value_cnt, next_value); + fh_get_file_name (r->fh), r->value_cnt, next_value); return 1; @@ -997,19 +981,19 @@ error: /* Translates the format spec from sysfile format to internal format. */ static int -parse_format_spec (struct sfm_reader *r, int32 s, +parse_format_spec (struct sfm_reader *r, int32_t s, struct fmt_spec *f, const struct variable *v) { f->type = translate_fmt ((s >> 16) & 0xff); if (f->type == -1) lose ((ME, _("%s: Bad format specifier byte (%d)."), - fh_get_filename (r->fh), (s >> 16) & 0xff)); + fh_get_file_name (r->fh), (s >> 16) & 0xff)); f->w = (s >> 8) & 0xff; f->d = s & 0xff; if ((v->type == ALPHA) ^ ((formats[f->type].cat & FCAT_STRING) != 0)) lose ((ME, _("%s: %s variable %s has %s format specifier %s."), - fh_get_filename (r->fh), + fh_get_file_name (r->fh), v->type == ALPHA ? _("String") : _("Numeric"), v->name, formats[f->type].cat & FCAT_STRING ? _("string") : _("numeric"), @@ -1043,10 +1027,10 @@ read_value_labels (struct sfm_reader *r, }; struct label *labels = NULL; - int32 n_labels; /* Number of labels. */ + int32_t n_labels; /* Number of labels. */ struct variable **var = NULL; /* Associated variables. */ - int32 n_vars; /* Number of associated variables. */ + int32_t n_vars; /* Number of associated variables. */ int i; @@ -1059,10 +1043,10 @@ read_value_labels (struct sfm_reader *r, if (r->reverse_endian) bswap_int32 (&n_labels); - if ( n_labels >= ((int32) ~0) / sizeof *labels) + if ( n_labels >= ((int32_t) ~0) / sizeof *labels) { corrupt_msg(MW, _("%s: Invalid number of labels: %d. Ignoring labels."), - fh_get_filename (r->fh), n_labels); + fh_get_file_name (r->fh), n_labels); n_labels = 0; } @@ -1096,7 +1080,7 @@ read_value_labels (struct sfm_reader *r, /* Read record type of type 4 record. */ { - int32 rec_type; + int32_t rec_type; assertive_buf_read (r, &rec_type, sizeof rec_type, 0); if (r->reverse_endian) @@ -1105,7 +1089,7 @@ read_value_labels (struct sfm_reader *r, if (rec_type != 4) lose ((ME, _("%s: Variable index record (type 4) does not immediately " "follow value label record (type 3) as it should."), - fh_get_filename (r->fh))); + fh_get_file_name (r->fh))); } /* Read number of variables associated with value label from type 4 @@ -1116,13 +1100,13 @@ read_value_labels (struct sfm_reader *r, if (n_vars < 1 || n_vars > dict_get_var_cnt (dict)) lose ((ME, _("%s: Number of variables associated with a value label (%d) " "is not between 1 and the number of variables (%d)."), - fh_get_filename (r->fh), n_vars, dict_get_var_cnt (dict))); + fh_get_file_name (r->fh), n_vars, dict_get_var_cnt (dict))); /* Read the list of variables. */ var = xnmalloc (n_vars, sizeof *var); for (i = 0; i < n_vars; i++) { - int32 var_idx; + int32_t var_idx; struct variable *v; /* Read variable index, check range. */ @@ -1132,7 +1116,7 @@ read_value_labels (struct sfm_reader *r, if (var_idx < 1 || var_idx > r->value_cnt) lose ((ME, _("%s: Variable index associated with value label (%d) is " "not between 1 and the number of values (%d)."), - fh_get_filename (r->fh), var_idx, r->value_cnt)); + fh_get_file_name (r->fh), var_idx, r->value_cnt)); /* Make sure it's a real variable. */ v = var_by_idx[var_idx - 1]; @@ -1140,11 +1124,11 @@ read_value_labels (struct sfm_reader *r, lose ((ME, _("%s: Variable index associated with value label (%d) " "refers to a continuation of a string variable, not to " "an actual variable."), - fh_get_filename (r->fh), var_idx)); + fh_get_file_name (r->fh), var_idx)); if (v->type == ALPHA && v->width > MAX_SHORT_STRING) lose ((ME, _("%s: Value labels are not allowed on long string " "variables (%s)."), - fh_get_filename (r->fh), v->name)); + fh_get_file_name (r->fh), v->name)); /* Add it to the list of variables. */ var[i] = v; @@ -1156,7 +1140,7 @@ read_value_labels (struct sfm_reader *r, lose ((ME, _("%s: Variables associated with value label are not all of " "identical type. Variable %s has %s type, but variable " "%s has %s type."), - fh_get_filename (r->fh), + fh_get_file_name (r->fh), var[0]->name, var[0]->type == ALPHA ? _("string") : _("numeric"), var[i]->name, var[i]->type == ALPHA ? _("string") : _("numeric"))); @@ -1196,11 +1180,11 @@ read_value_labels (struct sfm_reader *r, if (var[0]->type == NUMERIC) msg (MW, _("%s: File contains duplicate label for value %g for " "variable %s."), - fh_get_filename (r->fh), label->value.f, v->name); + fh_get_file_name (r->fh), label->value.f, v->name); else msg (MW, _("%s: File contains duplicate label for value `%.*s' " "for variable %s."), - fh_get_filename (r->fh), v->width, label->value.s, v->name); + fh_get_file_name (r->fh), v->width, label->value.s, v->name); } } @@ -1241,10 +1225,10 @@ buf_read (struct sfm_reader *r, void *buf, size_t byte_cnt, size_t min_alloc) { if (ferror (r->file)) msg (ME, _("%s: Reading system file: %s."), - fh_get_filename (r->fh), strerror (errno)); + fh_get_file_name (r->fh), strerror (errno)); else corrupt_msg (ME, _("%s: Unexpected end of file."), - fh_get_filename (r->fh)); + fh_get_file_name (r->fh)); r->ok = false; return NULL; } @@ -1260,7 +1244,7 @@ buf_unread(struct sfm_reader *r, size_t byte_cnt) if ( 0 != fseek(r->file, -byte_cnt, SEEK_CUR)) { msg (ME, _("%s: Seeking system file: %s."), - fh_get_filename (r->fh), strerror (errno)); + fh_get_file_name (r->fh), strerror (errno)); } } @@ -1270,19 +1254,19 @@ buf_unread(struct sfm_reader *r, size_t byte_cnt) static int read_documents (struct sfm_reader *r, struct dictionary *dict) { - int32 line_cnt; + int32_t line_cnt; char *documents; if (dict_get_documents (dict) != NULL) lose ((ME, _("%s: System file contains multiple " "type 6 (document) records."), - fh_get_filename (r->fh))); + fh_get_file_name (r->fh))); assertive_buf_read (r, &line_cnt, sizeof line_cnt, 0); if (line_cnt <= 0) lose ((ME, _("%s: Number of document lines (%ld) " "must be greater than 0."), - fh_get_filename (r->fh), (long) line_cnt)); + fh_get_file_name (r->fh), (long) line_cnt)); documents = buf_read (r, NULL, 80 * line_cnt, line_cnt * 80 + 1); /* FIXME? Run through asciify. */ @@ -1315,7 +1299,7 @@ buffer_input (struct sfm_reader *r) if (ferror (r->file)) { msg (ME, _("%s: Error reading file: %s."), - fh_get_filename (r->fh), strerror (errno)); + fh_get_file_name (r->fh), strerror (errno)); r->ok = false; return 0; } @@ -1355,14 +1339,14 @@ read_compressed_data (struct sfm_reader *r, flt64 *buf) return 0; lose ((ME, _("%s: Compressed data is corrupted. Data ends " "in partial case."), - fh_get_filename (r->fh))); + fh_get_file_name (r->fh))); case 253: /* Code 253 indicates that the value is stored explicitly following the instruction bytes. */ if (r->ptr == NULL || r->ptr >= r->end) if (!buffer_input (r)) lose ((ME, _("%s: Unexpected end of file."), - fh_get_filename (r->fh))); + fh_get_file_name (r->fh))); memcpy (buf++, r->ptr++, sizeof *buf); if (buf >= buf_end) goto success; @@ -1403,7 +1387,7 @@ read_compressed_data (struct sfm_reader *r, flt64 *buf) { if (buf_beg != buf) lose ((ME, _("%s: Unexpected end of file."), - fh_get_filename (r->fh))); + fh_get_file_name (r->fh))); else return 0; } @@ -1524,13 +1508,13 @@ fread_ok (struct sfm_reader *r, void *buffer, size_t byte_cnt) if (ferror (r->file)) { msg (ME, _("%s: Reading system file: %s."), - fh_get_filename (r->fh), strerror (errno)); + fh_get_file_name (r->fh), strerror (errno)); r->ok = false; } else if (read_bytes != 0) { msg (ME, _("%s: Partial record at end of system file."), - fh_get_filename (r->fh)); + fh_get_file_name (r->fh)); r->ok = false; } return 0; @@ -1558,3 +1542,4 @@ sfm_detect (FILE *file) return false; return true; } +