X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fany-reader.c;h=5a20ccef8360d6cd7f6c225afc5b3feb7a972330;hb=3ebfe454cbb12c70277cc101ab5e2a04235620aa;hp=aee034ce319ae8131669305e3e3fa6aa4fc9ec3b;hpb=0df9cdd3df66caf4353128feff3008289cda8115;p=pspp diff --git a/src/data/any-reader.c b/src/data/any-reader.c index aee034ce31..5a20ccef83 100644 --- a/src/data/any-reader.c +++ b/src/data/any-reader.c @@ -51,7 +51,7 @@ static const struct any_reader_class *classes[] = enum { N_CLASSES = sizeof classes / sizeof *classes }; int -any_reader_detect (const char *file_name, +any_reader_detect (const struct file_handle *file_handle, const struct any_reader_class **classp) { struct detector @@ -66,11 +66,11 @@ any_reader_detect (const char *file_name, if (classp) *classp = NULL; - file = fn_open (file_name, "rb"); + file = fn_open (file_handle, "rb"); if (file == NULL) { msg (ME, _("An error occurred while opening `%s': %s."), - file_name, strerror (errno)); + fh_get_file_name (file_handle), strerror (errno)); return -errno; } @@ -90,9 +90,9 @@ any_reader_detect (const char *file_name, } if (retval < 0) - msg (ME, _("Error reading `%s': %s."), file_name, strerror (-retval)); + msg (ME, _("Error reading `%s': %s."), fh_get_file_name (file_handle), strerror (-retval)); - fn_close (file_name, file); + fn_close (file_handle, file); return retval; } @@ -107,7 +107,7 @@ any_reader_open (struct file_handle *handle) const struct any_reader_class *class; int retval; - retval = any_reader_detect (fh_get_file_name (handle), &class); + retval = any_reader_detect (handle, &class); if (retval <= 0) { if (retval == 0) @@ -129,6 +129,10 @@ any_reader_open (struct file_handle *handle) NOT_REACHED (); } +/* gnulib on some systems defines "close" as something else, + which causes problems for this code. So undefine it here. */ +#undef close + bool any_reader_close (struct any_reader *any_reader) { @@ -222,7 +226,7 @@ static bool dataset_reader_close (struct any_reader *r_) { struct dataset_reader *r = dataset_reader_cast (r_); - dict_destroy (r->dict); + dict_unref (r->dict); casereader_destroy (r->reader); free (r); @@ -244,7 +248,7 @@ dataset_reader_decode (struct any_reader *r_, const char *encoding UNUSED, info->integer_format = INTEGER_NATIVE; info->float_format = FLOAT_NATIVE_DOUBLE; info->compression = ANY_COMP_NONE; - info->case_cnt = casereader_get_case_cnt (reader); + info->n_cases = casereader_get_n_cases (reader); } free (r);