X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fgnumeric-reader.c;h=6392f9b805d620ccbea4bf139bbbfc3c0cf3aac9;hb=81579d9e9f994fb2908f50af41c3eb033d216e58;hp=1e18cc7bd5efdadb82bf0e067ef2663cea059123;hpb=173d1687aea88e0e5e1b1d8615ed68ebefb15d08;p=pspp-builds.git diff --git a/src/data/gnumeric-reader.c b/src/data/gnumeric-reader.c index 1e18cc7b..6392f9b8 100644 --- a/src/data/gnumeric-reader.c +++ b/src/data/gnumeric-reader.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 2007, 2009, 2010, 2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -18,10 +18,10 @@ #include -#include -#include +#include "libpspp/message.h" +#include "libpspp/misc.h" -#include "minmax.h" +#include "gl/minmax.h" #include "gettext.h" #define _(msgid) gettext (msgid) @@ -40,25 +40,24 @@ gnumeric_open_reader (struct gnumeric_read_info *gri, struct dictionary **dict) #else -#include -#include -#include -#include -#include -#include -#include +#include "data/gnumeric-reader.h" +#include +#include #include #include #include -#include -#include -#include +#include "data/case.h" +#include "data/casereader-provider.h" +#include "data/dictionary.h" +#include "data/identifier.h" +#include "data/value.h" +#include "data/variable.h" +#include "libpspp/i18n.h" +#include "libpspp/str.h" -#include "gnumeric-reader.h" -#include -#include +#include "gl/xalloc.h" /* Default width of string variables. */ #define GNUMERIC_DEFAULT_WIDTH 8 @@ -181,9 +180,9 @@ struct gnumeric_reader static void process_node (struct gnumeric_reader *r); -#define _xml(X) (const xmlChar *)(X) +#define _xml(X) (CHAR_CAST (const xmlChar *, X)) -#define _xmlchar_to_int(X) atoi((const char *)X) +#define _xmlchar_to_int(X) (atoi(CHAR_CAST (const char *, X))) static void gnm_file_casereader_destroy (struct casereader *reader UNUSED, void *r_) @@ -328,7 +327,7 @@ convert_xml_string_to_value (struct ccase *c, const struct variable *var, value_copy_str_rpad (v, var_get_width (var), xv, ' '); else { - const char *text = (const char *) xv; + const char *text = CHAR_CAST (const char *, xv); char *endptr; errno = 0; @@ -459,7 +458,7 @@ gnumeric_open_reader (struct gnumeric_read_info *gri, struct dictionary **dict) if ( r->node_type == XML_READER_TYPE_TEXT ) { xmlChar *value = xmlTextReaderValue (r->xtr); - const char *text = (const char *) value; + const char *text = CHAR_CAST (const char *, value); if ( r->row < r->start_row) { @@ -499,25 +498,20 @@ gnumeric_open_reader (struct gnumeric_read_info *gri, struct dictionary **dict) /* Create the dictionary and populate it */ *dict = r->dict = dict_create (); - dict_set_encoding (r->dict, (const char *) xmlTextReaderConstEncoding (r->xtr)); + dict_set_encoding (r->dict, CHAR_CAST (const char *, xmlTextReaderConstEncoding (r->xtr))); for (i = 0 ; i < n_var_specs ; ++i ) { - char name[VAR_NAME_LEN + 1]; + char *name; /* Probably no data exists for this variable, so allocate a default width */ if ( var_spec[i].width == -1 ) var_spec[i].width = GNUMERIC_DEFAULT_WIDTH; - if ( ! dict_make_unique_var_name (r->dict, var_spec[i].name, - &vstart, name)) - { - msg (ME, _("Cannot create variable name from %s"), var_spec[i].name); - goto error; - } - + name = dict_make_unique_var_name (r->dict, var_spec[i].name, &vstart); dict_create_var (r->dict, name, var_spec[i].width); + free (name); } /* Create the first case, and cache it */