X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdata-io%2Fget.c;h=f8a84b142919d59d43f31222bf42c45fdb747b8d;hb=a9afcdd22;hp=abfc62472a3b50e11bbf61bfaa5e9ac5c18acf23;hpb=0553d00dca10c2d2beeffd88fd12120e43a01025;p=pspp-builds.git diff --git a/src/language/data-io/get.c b/src/language/data-io/get.c index abfc6247..f8a84b14 100644 --- a/src/language/data-io/get.c +++ b/src/language/data-io/get.c @@ -37,7 +37,6 @@ #include #include #include -#include #include #include #include @@ -46,6 +45,8 @@ #include #include +#include "xalloc.h" + #include "gettext.h" #define _(msgid) gettext (msgid) @@ -80,6 +81,7 @@ parse_read_command (struct lexer *lexer, struct dataset *ds, enum reader_command { lex_match (lexer, '='); + fh_unref (fh); fh = fh_parse (lexer, FH_REF_FILE | FH_REF_SCRATCH); if (fh == NULL) goto error; @@ -132,9 +134,11 @@ parse_read_command (struct lexer *lexer, struct dataset *ds, enum reader_command proc_set_active_file (ds, reader, dict); + fh_unref (fh); return CMD_SUCCESS; error: + fh_unref (fh); casereader_destroy (reader); if (dict != NULL) dict_destroy (dict); @@ -360,9 +364,11 @@ parse_write_command (struct lexer *lexer, struct dataset *ds, map); dict_destroy (dict); + fh_unref (handle); return writer; error: + fh_unref (handle); casewriter_destroy (writer); dict_destroy (dict); case_map_destroy (map); @@ -563,10 +569,10 @@ rename_variables (struct lexer *lexer, struct dictionary *dict) goto done; if (nn != nv) { - msg (SE, _("Number of variables on left side of `=' (%d) does not " - "match number of variables on right side (%d), in " + msg (SE, _("Number of variables on left side of `=' (%zu) does not " + "match number of variables on right side (%zu), in " "parenthesized group %d of RENAME subcommand."), - (unsigned) (nv - old_nv), (unsigned) (nn - old_nv), group); + nv - old_nv, nn - old_nv, group); goto done; } if (!lex_force_match (lexer, ')')) @@ -722,8 +728,8 @@ cmd_match_files (struct lexer *lexer, struct dataset *ds) bool saw_in = false; struct casereader *active_file = NULL; - char first_name[LONG_NAME_LEN + 1] = ""; - char last_name[LONG_NAME_LEN + 1] = ""; + char first_name[VAR_NAME_LEN + 1] = ""; + char last_name[VAR_NAME_LEN + 1] = ""; struct taint *taint = NULL; @@ -1081,6 +1087,7 @@ mtf_close_all_files (struct mtf_proc *mtf) ll_for_each_preremove (file, struct mtf_file, ll, &mtf->files) { + fh_unref (file->handle); casereader_destroy (file->reader); free (file->by); dict_destroy (file->dict);