From 2f10847d456fff212f0b3e602f7d6b57512f4830 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Mon, 25 May 2009 20:21:08 -0700 Subject: [PATCH] Fix portable file reader use of long strings. This code hadn't been converted to the new "union value" representation, where a single "union value" always represents a whole data item. This commit fixes that. --- src/data/por-file-reader.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/data/por-file-reader.c b/src/data/por-file-reader.c index 96af30b1..461796bf 100644 --- a/src/data/por-file-reader.c +++ b/src/data/por-file-reader.c @@ -819,7 +819,6 @@ por_file_casereader_read (struct casereader *reader, void *r_) struct pfm_reader *r = r_; struct ccase *volatile c; size_t i; - size_t idx; c = case_create (r->proto); setjmp (r->bail_out); @@ -837,22 +836,17 @@ por_file_casereader_read (struct casereader *reader, void *r_) return NULL; } - idx = 0; for (i = 0; i < r->var_cnt; i++) { int width = caseproto_get_width (r->proto, i); if (width == 0) - { - case_data_rw_idx (c, idx)->f = read_float (r); - idx++; - } + case_data_rw_idx (c, i)->f = read_float (r); else { char string[256]; read_string (r, string); - buf_copy_str_rpad (case_str_rw_idx (c, idx), width, string, ' '); - idx += DIV_RND_UP (width, MAX_SHORT_STRING); + buf_copy_str_rpad (case_str_rw_idx (c, i), width, string, ' '); } } -- 2.30.2