struct string *str)
{
char *s = data_out (value, var_get_encoding (v), &v->print);
- ds_put_cstr (str, s);
+ struct substring ss = ss_cstr (s);
+ ss_rtrim (&ss, ss_cstr (" "));
+ ds_put_substring (str, ss);
free (s);
}
-/* Append STR with a string representing VALUE for variable V.
- That is, if VALUE has a label, append that label,
- otherwise format VALUE and append the formatted string.
- STR must be a pointer to an initialised struct string.
-*/
void
-var_append_value_name (const struct variable *v, const union value *value,
- struct string *str)
+var_append_value_name__ (const struct variable *v, const union value *value,
+ enum settings_value_show show, struct string *str)
{
- enum settings_value_style style = settings_get_value_style ();
- const char *name = var_lookup_value_label (v, value);
+ const char *label = var_lookup_value_label (v, value);
- switch (style)
+ switch (show)
{
- case SETTINGS_VAL_STYLE_VALUES:
+ case SETTINGS_VALUE_SHOW_VALUE:
append_value (v, value, str);
break;
- case SETTINGS_VAL_STYLE_LABELS:
- if (name == NULL)
- append_value (v, value, str);
+ default:
+ case SETTINGS_VALUE_SHOW_LABEL:
+ if (label)
+ ds_put_cstr (str, label);
else
- ds_put_cstr (str, name);
+ append_value (v, value, str);
break;
- case SETTINGS_VAL_STYLE_BOTH:
- default:
+ case SETTINGS_VALUE_SHOW_BOTH:
append_value (v, value, str);
- if (name != NULL)
- {
- ds_put_cstr (str, " (");
- ds_put_cstr (str, name);
- ds_put_cstr (str, ")");
- }
+ if (label != NULL)
+ ds_put_format (str, " %s", label);
break;
- };
+ }
+}
+
+/* Append STR with a string representing VALUE for variable V.
+ That is, if VALUE has a label, append that label,
+ otherwise format VALUE and append the formatted string.
+ STR must be a pointer to an initialised struct string.
+*/
+void
+var_append_value_name (const struct variable *v, const union value *value,
+ struct string *str)
+{
+ var_append_value_name__ (v, value, settings_get_show_values (), str);
}
\f
/* Print and write formats. */
const char *
var_to_string (const struct variable *v)
{
- enum settings_var_style style = settings_get_var_style ();
-
- switch (style)
- {
- case SETTINGS_VAR_STYLE_NAMES:
+ switch (settings_get_show_variables ())
+ {
+ case SETTINGS_VALUE_SHOW_VALUE:
return v->name;
- break;
- case SETTINGS_VAR_STYLE_LABELS:
+
+ case SETTINGS_VALUE_SHOW_LABEL:
+ default:
return v->label != NULL ? v->label : v->name;
- break;
- case SETTINGS_VAR_STYLE_BOTH:
+
+ case SETTINGS_VALUE_SHOW_BOTH:
update_vl_string (v);
return ds_cstr (&v->name_and_label);
- break;
- default:
- NOT_REACHED ();
- break;
- };
+ }
}
/* Returns V's variable label, or a null pointer if it has none. */
return m == MEASURE_NOMINAL || m == MEASURE_ORDINAL || m == MEASURE_SCALE;
}
-/* Returns a string version of measurement level M, for display to a user. */
+/* Returns a string version of measurement level M, for display to a user.
+ The caller may translate the string by passing it to gettext(). */
const char *
measure_to_string (enum measure m)
{
assert (m == measure[m].value);
- return gettext (measure[m].label);
+ return measure[m].label;
}
/* Returns a string version of measurement level M, for use in PSPP command
}
}
-/* Returns a string version of ROLE, for display to a user. */
+/* Returns a string version of ROLE, for display to a user.
+ The caller may translate the string by passing it to gettext(). */
const char *
var_role_to_string (enum var_role r)
{
assert (r == role[r].value);
- return gettext (role[r].label);
+ return role[r].label;
}
/* Returns a string version of ROLE, for use in PSPP comamnd syntax. */
return a == ALIGN_LEFT || a == ALIGN_RIGHT || a == ALIGN_CENTRE;
}
-/* Returns a string version of alignment A, for display to a user. */
+/* Returns a string version of alignment A, for display to a user.
+ The caller may translate the string by passing it to gettext(). */
const char *
alignment_to_string (enum alignment a)
{
assert (a == align[a].value);
- return gettext (align[a].label);
+ return align[a].label;
}
/* Returns a string version of alignment A, for use in PSPP command syntax. */