X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fvariable.c;h=1f9b62e1929114db84b74ad9ee8f517d88d9d085;hb=refs%2Fbuilds%2F20110914030501%2Fpspp;hp=121a57517cd4fecc4ce0cbe1cc6b25b9609092e6;hpb=fd2104e10011b87d6558e8623d629da4cee82b25;p=pspp diff --git a/src/data/variable.c b/src/data/variable.c index 121a57517c..1f9b62e192 100644 --- a/src/data/variable.c +++ b/src/data/variable.c @@ -583,7 +583,7 @@ var_set_label (struct variable *v, const char *label, bool issue_warning) free (v->label); v->label = NULL; - if (label != NULL) + if (label != NULL && label[strspn (label, CC_SPACES)]) { const char *dict_encoding = var_get_encoding (v); struct substring s = ss_cstr (label); @@ -605,8 +605,6 @@ var_set_label (struct variable *v, const char *label, bool issue_warning) } } - ss_trim (&s, ss_cstr (CC_SPACES)); - if (!ss_is_empty (s)) v->label = ss_xstrdup (s); } @@ -638,6 +636,26 @@ measure_is_valid (enum measure m) return m == MEASURE_NOMINAL || m == MEASURE_ORDINAL || m == MEASURE_SCALE; } +/* Returns a string version of measurement level M, for display to a user. */ +const char * +measure_to_string (enum measure m) +{ + switch (m) + { + case MEASURE_NOMINAL: + return _("Nominal"); + + case MEASURE_ORDINAL: + return _("Ordinal"); + + case MEASURE_SCALE: + return _("Scale"); + + default: + return "Invalid"; + } +} + /* Returns V's measurement level. */ enum measure var_get_measure (const struct variable *v) @@ -675,14 +693,12 @@ var_get_display_width (const struct variable *v) void var_set_display_width (struct variable *v, int new_width) { - int old_width = v->display_width; - - v->display_width = new_width; - - if ( old_width != new_width) - dict_var_display_width_changed (v); - - dict_var_changed (v); + if (v->display_width != new_width) + { + v->display_width = new_width; + dict_var_display_width_changed (v); + dict_var_changed (v); + } } /* Returns the default display width for a variable of the given @@ -702,6 +718,26 @@ alignment_is_valid (enum alignment a) return a == ALIGN_LEFT || a == ALIGN_RIGHT || a == ALIGN_CENTRE; } +/* Returns a string version of alignment A, for display to a user. */ +const char * +alignment_to_string (enum alignment a) +{ + switch (a) + { + case ALIGN_LEFT: + return _("Left"); + + case ALIGN_RIGHT: + return _("Right"); + + case ALIGN_CENTRE: + return _("Center"); + + default: + return "Invalid"; + } +} + /* Returns V's display alignment, which applies only to GUIs. */ enum alignment var_get_alignment (const struct variable *v)