X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fpfm-read.c;h=0d5fbcc98000079c4739d8ec6d84ac89b5d6f5ea;hb=0f27235bdf621a87df0c9c2d9b01e9198eb7c42d;hp=139532784f686f0a381fa879841261b50a9d1ee5;hpb=4fdeb2145d081ff1b84e3f6c99f9d1c048c0d64a;p=pspp-builds.git diff --git a/src/pfm-read.c b/src/pfm-read.c index 13953278..0d5fbcc9 100644 --- a/src/pfm-read.c +++ b/src/pfm-read.c @@ -408,7 +408,7 @@ read_header (struct pfm_reader *r) static void read_version_data (struct pfm_reader *r, struct pfm_read_info *info) { - char *date, *time, *product, *subproduct; + char *date, *time, *product, *author, *subproduct; int i; /* Read file. */ @@ -417,6 +417,7 @@ read_version_data (struct pfm_reader *r, struct pfm_read_info *info) date = read_pool_string (r); time = read_pool_string (r); product = match (r, '1') ? read_pool_string (r) : (unsigned char *) ""; + author = match (r, '2') ? read_pool_string (r) : (unsigned char *) ""; subproduct = match (r, '3') ? read_pool_string (r) : (unsigned char *) ""; @@ -448,8 +449,8 @@ read_version_data (struct pfm_reader *r, struct pfm_read_info *info) info->creation_time[8] = 0; /* Product. */ - st_trim_copy (info->product, product, sizeof info->product); - st_trim_copy (info->subproduct, subproduct, sizeof info->subproduct); + str_copy_trunc (info->product, sizeof info->product, product); + str_copy_trunc (info->subproduct, sizeof info->subproduct, subproduct); } } @@ -520,32 +521,10 @@ read_variables (struct pfm_reader *r, struct dictionary *dict) read_string (r, name); for (j = 0; j < 6; j++) fmt[j] = read_int (r); -#if 0 - /* Weirdly enough, there is no # character in the SPSS portable - character set, so we can't check for it. */ - if (strlen (name) > SHORT_NAME_LEN) - lose ((r, _("position %d: Variable name has %u characters."), - i, strlen (name))); - if ((name[0] < 74 /* A */ || name[0] > 125 /* Z */) - && name[0] != 152 /* @ */) - lose ((r, _("position %d: Variable name begins with invalid " - "character."), i)); - if (name[0] >= 100 /* a */ && name[0] <= 125 /* z */) - { - corrupt_msg (r, _("position %d: Variable name begins with " - "lowercase letter %c."), - i, name[0] - 100 + 'a'); - name[0] -= 26 /* a - A */; - } - /* Verify remaining characters of variable name. */ - for (j = 1; j < (int) strlen (name); j++) - { - int c = name[j]; -#endif - if (!var_is_valid_name (name, false) || *name == '#') + if (!var_is_valid_name (name, false) || *name == '#' || *name == '$') error (r, _("position %d: Invalid variable name `%s'."), name); - st_uppercase (name); + str_uppercase (name); if (width < 0 || width > 255) error (r, "Bad width %d for variable %s.", width, name); @@ -627,7 +606,7 @@ parse_value (struct pfm_reader *r, struct variable *vv) { char string[256]; read_string (r, string); - st_bare_pad_copy (v.s, string, 8); + buf_copy_str_rpad (v.s, 8, string); } else v.f = read_float (r); @@ -721,7 +700,7 @@ pfm_read_case (struct pfm_reader *r, struct ccase *c) { char string[256]; read_string (r, string); - st_bare_pad_copy (case_data_rw (c, idx)->s, string, width); + buf_copy_str_rpad (case_data_rw (c, idx)->s, width, string); idx += DIV_RND_UP (width, MAX_SHORT_STRING); } }