+
+static char*
+unfold(char* u)
+{
+ char* new;
+ char* pu = u;
+ char* pn;
+
+ new = xmalloc(strlen(u)+1);
+ pn = new;
+
+#define IS_WHITE(c) ((c) == '\t' || (c)==' ' || c=='\n')
+
+ while (IS_WHITE(*pu))
+ pu++;
+
+ while (*pu != 0){
+ if (IS_WHITE(*pu)){
+ while (IS_WHITE(*pu))
+ pu++;
+ if (*pu != 0)
+ *pn++ = ' ';
+ } else
+ *pn++ = *pu++;
+ }
+ *pn = 0;
+
+ return new;
+}
+
+void
+save_current_headers(struct variable** hash)
+{
+ struct hlist* p;
+ char* u;
+
+ for (p = current_headers;p;p = p->next){
+ u = unfold(p->value);
+ find_var(p->name,u,hash);
+ }
+
+}