+/* List of temporary files. */
+struct name_list
+{
+ struct qelem q;
+ const char *name;
+} *name_list;
+
+/* Add temporary files in list. */
+void
+add_temp_file (const char *name)
+{
+ struct name_list *newp = (struct name_list *) calloc (sizeof (*newp), 1);
+ if (newp != NULL)
+ {
+ newp->name = name;
+ if (name_list == NULL)
+ name_list = (struct name_list *) &newp->q;
+ else
+ insque (newp, name_list);
+ }
+}
+
+/* Delete all temporary files. */
+void
+delete_temp_files (void)
+{
+ while (name_list != NULL)
+ {
+ remove (name_list->name);
+ name_list = (struct name_list *) name_list->q.q_forw;
+ }
+}
+