projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gui: Rename psppire_data_sheet_show_variable().
[pspp]
/
src
/
data
/
dictionary.c
diff --git
a/src/data/dictionary.c
b/src/data/dictionary.c
index 2d99f6d72cfe2a7e6dc442102f16a4dc687cbe32..5731d78695148ad14e199d51ea0431109769f65e 100644
(file)
--- a/
src/data/dictionary.c
+++ b/
src/data/dictionary.c
@@
-1,5
+1,5
@@
/* PSPP - a program for statistical analysis.
/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000, 2006, 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2006, 2007, 2009, 2010, 2011
, 2012
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
@@
-194,10
+194,6
@@
dict_clone (const struct dictionary *s)
d = dict_create (s->encoding);
d = dict_create (s->encoding);
- /* Set the new dictionary's encoding early so that string length limitations
- are interpreted correctly. */
- d->encoding = xstrdup (s->encoding);
-
for (i = 0; i < s->var_cnt; i++)
{
struct variable *sv = s->var[i].var;
for (i = 0; i < s->var_cnt; i++)
{
struct variable *sv = s->var[i].var;
@@
-305,6
+301,7
@@
dict_destroy (struct dictionary *d)
d->callbacks = NULL ;
dict_clear (d);
d->callbacks = NULL ;
dict_clear (d);
+ string_array_destroy (&d->documents);
hmap_destroy (&d->name_map);
attrset_destroy (&d->attributes);
dict_clear_mrsets (d);
hmap_destroy (&d->name_map);
attrset_destroy (&d->attributes);
dict_clear_mrsets (d);
@@
-600,7
+597,6
@@
dict_delete_var (struct dictionary *d, struct variable *v)
{
int dict_index = var_get_dict_index (v);
const int case_index = var_get_case_index (v);
{
int dict_index = var_get_dict_index (v);
const int case_index = var_get_case_index (v);
- const int width = var_get_width (v);
assert (dict_contains_var (d, v));
assert (dict_contains_var (d, v));
@@
-628,13
+624,14
@@
dict_delete_var (struct dictionary *d, struct variable *v)
/* Free memory. */
var_clear_vardict (v);
/* Free memory. */
var_clear_vardict (v);
- var_destroy (v);
if ( d->changed ) d->changed (d, d->changed_data);
invalidate_proto (d);
if (d->callbacks && d->callbacks->var_deleted )
if ( d->changed ) d->changed (d, d->changed_data);
invalidate_proto (d);
if (d->callbacks && d->callbacks->var_deleted )
- d->callbacks->var_deleted (d, dict_index, case_index, width, d->cb_data);
+ d->callbacks->var_deleted (d, v, dict_index, case_index, d->cb_data);
+
+ var_destroy (v);
}
/* Deletes the COUNT variables listed in VARS from D. This is
}
/* Deletes the COUNT variables listed in VARS from D. This is
@@
-1250,15
+1247,18
@@
dict_get_label (const struct dictionary *d)
return d->label;
}
return d->label;
}
-/* Sets D's file label to LABEL, truncating it to a
maximum of 60
-
characters
.
+/* Sets D's file label to LABEL, truncating it to a
t most 60 bytes in D's
+
encoding
.
Removes D's label if LABEL is null or the empty string. */
void
dict_set_label (struct dictionary *d, const char *label)
{
free (d->label);
Removes D's label if LABEL is null or the empty string. */
void
dict_set_label (struct dictionary *d, const char *label)
{
free (d->label);
- d->label = label != NULL && label[0] != '\0' ? xstrndup (label, 60) : NULL;
+ if (label == NULL || label[0] == '\0')
+ d->label = NULL;
+ else
+ d->label = utf8_encoding_trunc (label, d->encoding, 60);
}
/* Returns the documents for D, as an UTF-8 encoded string_array. The
}
/* Returns the documents for D, as an UTF-8 encoded string_array. The