v->val_labs = val_labs_create (v->width);
}
-/* Attempts to add a value label with the given VALUE and LABEL
- to V. Returns true if successful, false otherwise (probably
- due to an existing label). */
+/* Attempts to add a value label with the given VALUE and UTF-8 encoded LABEL
+ to V. Returns true if successful, false otherwise (probably due to an
+ existing label).
+
+ In LABEL, the two-byte sequence "\\n" is interpreted as a new-line. */
bool
var_add_value_label (struct variable *v,
const union value *value, const char *label)
return val_labs_add (v->val_labs, value, label);
}
-/* Adds or replaces a value label with the given VALUE and LABEL
+/* Adds or replaces a value label with the given VALUE and UTF-8 encoded LABEL
to V.
-*/
+
+ In LABEL, the two-byte sequence "\\n" is interpreted as a new-line. */
void
var_replace_value_label (struct variable *v,
const union value *value, const char *label)
var_set_value_labels (v, NULL);
}
-/* Returns the label associated with VALUE for variable V,
- or a null pointer if none. */
+/* Returns the label associated with VALUE for variable V, as a UTF-8 string in
+ a format suitable for output, or a null pointer if none. */
const char *
var_lookup_value_label (const struct variable *v, const union value *value)
{
return idx < var->short_name_cnt ? var->short_names[idx] : NULL;
}
-/* Sets VAR's short name with the given IDX to SHORT_NAME,
- truncating it to SHORT_NAME_LEN characters and converting it
- to uppercase in the process. Specifying a null pointer for
- SHORT_NAME clears the specified short name. */
+/* Sets VAR's short name with the given IDX to the UTF-8 string SHORT_NAME.
+ The caller must already have checked that, in the dictionary encoding,
+ SHORT_NAME is no more than SHORT_NAME_LEN bytes long. The new short name
+ will be converted to uppercase.
+
+ Specifying a null pointer for SHORT_NAME clears the specified short name. */
void
var_set_short_name (struct variable *var, size_t idx, const char *short_name)
{
for (i = old_cnt; i < var->short_name_cnt; i++)
var->short_names[i] = NULL;
}
- var->short_names[idx] = xstrndup (short_name, MAX_SHORT_STRING);
+ var->short_names[idx] = xstrdup (short_name);
str_uppercase (var->short_names[idx]);
}