-# if D1
-fprintf(stderr, "finished reading file \n");
-# endif
-fclose(ftemp);
-unlink(fnam);
-# if D1
-fprintf(stderr, "le\ 1aving recopy\n");
-# endif
+ fclose(ftemp);
+ unlink(fnam);
+}
+
+/*
+ * sort and condense referance signals when they are placed in
+ * the text. Viz, the signal 1,2,3,4 is condensed to 1-4 and signals
+ * of the form 5,2,9 are converted to 2,5,9
+ */
+condense(wref, wcnt, sig)
+int *wref;
+int wcnt;
+char *sig;
+{
+ register int i = 0;
+ char wt[4];
+ extern int wswap();
+
+ qsort(wref, wcnt, sizeof(int), wswap);
+ sig[0] = 0;
+ while (i < wcnt) {
+ sprintf(wt,"%d",wref[i]);
+ strcat(sig,wt);
+ if ((i+2 < wcnt) && (wref[i] == (wref[i+2] - 2))) {
+ while (wref[i] == (wref[i+1] - 1))
+ i++;
+ strcat(sig, "-");
+ } else if (++i < wcnt)
+ strcat(sig,",\\|");
+ }
+}
+
+wswap(iw1, iw2)
+register int *iw1,*iw2;
+{
+ return(*iw1 - *iw2);