This *assumes* that all strings passed from perl will be utf8
encoded. So the documentation has been updated accordingly.
struct file_handle *fh =
fh_create_file (NULL, name, fh_default_properties () );
struct sysfile_info *sfi = xmalloc (sizeof (*sfi));
struct file_handle *fh =
fh_create_file (NULL, name, fh_default_properties () );
struct sysfile_info *sfi = xmalloc (sizeof (*sfi));
+ dict_set_encoding (dict, "UTF-8");
sfi->writer = sfm_open_writer (fh, dict, opts);
sfi->dict = dict;
sfi->opened = true;
sfi->writer = sfm_open_writer (fh, dict, opts);
sfi->dict = dict;
sfi->opened = true;
=head3 new ($dict, $name, %input_fmt)
Creates and returns a new variable in the dictionary C<dict>. The
=head3 new ($dict, $name, %input_fmt)
Creates and returns a new variable in the dictionary C<dict>. The
-new variable will have the name C<name>.
+new variable will have the name C<name>. C<name> must be a valid UTF8 string.
The input format is set by the C<input_fmt> parameter
(See L</PSPP::Fmt>).
By default, the write and print formats are the same as the input format.
The input format is set by the C<input_fmt> parameter
(See L</PSPP::Fmt>).
By default, the write and print formats are the same as the input format.
=head3 set_label ($label)
=head3 set_label ($label)
-Sets the variable label to C<label>.
+Sets the variable label to C<label>, which must be a valid UTF8 string.
=head3 add_value_label ($key, $label)
Adds the value label C<label> to the variable for the value C<key>.
=head3 add_value_label ($key, $label)
Adds the value label C<label> to the variable for the value C<key>.
+C<label> must be a valid UTF8 string.
On error the subroutine returns zero.
=head3 add_value_labels (@array)
On error the subroutine returns zero.
=head3 add_value_labels (@array)
-=head3 set_value_labels ($key, $value)
+=head3 set_value_labels ($key, $label)
C<Set_value_labels> is identical to calling L</clear_value_labels>
followed by L</add_value_labels>.
C<Set_value_labels> is identical to calling L</clear_value_labels>
followed by L</add_value_labels>.
Appends a case to the system file.
C<Case> is an array of scalars, each of which are the values of
the variables in the dictionary corresponding to the system file.
Appends a case to the system file.
C<Case> is an array of scalars, each of which are the values of
the variables in the dictionary corresponding to the system file.
+If the case contains strings, then the strings must be UTF8 encoded.
The special value C<PSPP::SYSMIS> may be used to indicate that a value
is system missing.
If the array contains less elements than variables in the dictionary,
The special value C<PSPP::SYSMIS> may be used to indicate that a value
is system missing.
If the array contains less elements than variables in the dictionary,
Returns a scalar containing a string representing C<value> formatted according
to the print format of C<variable>.
Returns a scalar containing a string representing C<value> formatted according
to the print format of C<variable>.
-In the most common ussage, C<value> should be a value of C<variable>.
+In the most common usage, C<value> should be a value of C<variable>.
=head3 PSPP::value_is_missing ($value, $variable)
=head3 PSPP::value_is_missing ($value, $variable)