+/* Read record type 7, subtype 5. */
+static void
+read_variable_sets (struct sfm_reader *r, size_t size, size_t count)
+{
+ printf ("%08llx: variable sets\n", (long long int) ftello (r->file));
+ struct text_record *text = open_text_record (r, size, count);
+ for (;;)
+ {
+ while (text_match (text, '\n'))
+ continue;
+
+ const char *set = text_tokenize (text, '=');
+ if (!set)
+ break;
+
+ /* Always present even for an empty set. */
+ text_match (text, ' ');
+
+ char *variables = text_tokenize (text, '\n');
+ if (!variables)
+ printf ("\tset \"%s\" is empty\n", set);
+ else
+ {
+ size_t length = strlen (variables);
+ if (variables[length - 1] == '\r')
+ variables[length - 1] = '\0';
+ printf ("\tset \"%s\" contains \"%s\"\n", set, variables);
+ }
+ }
+ close_text_record (text);
+}
+