projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
dict: Make dict_make_unique_var_name() return an allocated string.
[pspp-builds.git]
/
src
/
data
/
gnumeric-reader.c
diff --git
a/src/data/gnumeric-reader.c
b/src/data/gnumeric-reader.c
index 1e18cc7bd5efdadb82bf0e067ef2663cea059123..9772d82af576f36af9219c06ee15d2e196f93529 100644
(file)
--- a/
src/data/gnumeric-reader.c
+++ b/
src/data/gnumeric-reader.c
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* 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
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
@@
-40,25
+40,26
@@
gnumeric_open_reader (struct gnumeric_read_info *gri, struct dictionary **dict)
#else
#else
-#include <data/casereader-provider.h>
+#include <assert.h>
+#include <stdbool.h>
#include <errno.h>
#include <errno.h>
-#include <libpspp/str.h>
-#include <libpspp/i18n.h>
-#include <data/dictionary.h>
-#include <data/variable.h>
+
#include <xalloc.h>
#include <xalloc.h>
-#include <errno.h>
#include <libxml/xmlreader.h>
#include <zlib.h>
#include <libxml/xmlreader.h>
#include <zlib.h>
-#include <stdbool.h>
#include <data/case.h>
#include <data/case.h>
+#include <data/casereader-provider.h>
+#include <data/dictionary.h>
+#include <data/identifier.h>
+#include <data/variable.h>
#include <data/value.h>
#include <data/value.h>
+#include <libpspp/i18n.h>
+#include <libpspp/str.h>
+
#include "gnumeric-reader.h"
#include "gnumeric-reader.h"
-#include <data/identifier.h>
-#include <assert.h>
/* Default width of string variables. */
#define GNUMERIC_DEFAULT_WIDTH 8
/* Default width of string variables. */
#define GNUMERIC_DEFAULT_WIDTH 8
@@
-181,9
+182,9
@@
struct gnumeric_reader
static void process_node (struct gnumeric_reader *r);
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_)
static void
gnm_file_casereader_destroy (struct casereader *reader UNUSED, void *r_)
@@
-328,7
+329,7
@@
convert_xml_string_to_value (struct ccase *c, const struct variable *var,
value_copy_str_rpad (v, var_get_width (var), xv, ' ');
else
{
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;
char *endptr;
errno = 0;
@@
-459,7
+460,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);
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)
{
if ( r->row < r->start_row)
{
@@
-499,25
+500,20
@@
gnumeric_open_reader (struct gnumeric_read_info *gri, struct dictionary **dict)
/* Create the dictionary and populate it */
*dict = r->dict = dict_create ();
/* 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 )
{
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;
/* 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);
dict_create_var (r->dict, name, var_spec[i].width);
+ free (name);
}
/* Create the first case, and cache it */
}
/* Create the first case, and cache it */