+ vls_hdr;
+
+ struct string vls_length_map;
+
+ ds_init_empty (&vls_length_map);
+
+ vls_hdr.rec_type = 7;
+ vls_hdr.subtype = 14;
+ vls_hdr.elem_size = 1;
+
+
+ for (i = 0; i < dict_get_var_cnt (dict); ++i)
+ {
+ const struct variable *v = dict_get_var (dict, i);
+
+ if ( v->width <= MAX_LONG_STRING )
+ continue;
+
+ ds_put_format (&vls_length_map, "%s=%05d", v->short_name, v->width);
+ ds_put_char (&vls_length_map, '\0');
+ ds_put_char (&vls_length_map, '\t');
+ }
+
+ vls_hdr.n_elem = ds_length (&vls_length_map);
+
+ if ( vls_hdr.n_elem > 0 )
+ {
+ buf_write (w, &vls_hdr, sizeof vls_hdr);
+ buf_write (w, ds_data (&vls_length_map), ds_length (&vls_length_map));
+ }
+
+ ds_destroy (&vls_length_map);