Fixed my ChangeLog e-mail address.
[mdsms.git] / manfmt.c
1 #include "config.h"
2 #ifndef lint
3 static char rcsid[] ATTR_UNUSED = "$Id$";
4 #endif
5
6 #include <stdio.h>
7 #include <string.h>
8 #include <stdlib.h>
9 #include <limits.h>
10
11 static char buf[LINE_MAX];
12
13 int main(void)
14 {
15 char *s,*s2,*d;
16 char f;
17
18         while (fgets(buf,sizeof(buf),stdin)) {
19                 if (*buf=='#') continue;
20                 for (s=buf;*s==' ';s++);
21                 if (*s=='\n' || !*s) continue;
22                 f=0;
23                 for (d=s=buf;*s;s++) {
24                         if (*s=='\t') {
25                                 if ((f=!f)) {
26 /*fprintf(stderr,"DURING TURN-ON:%s",s);*/
27                                         if (s[1]=='"') s++;
28                                         }
29                                 else {
30 /*fprintf(stderr,"DURING TURN-OFF:%s",s);*/
31                                         while (d>buf && (d[-1]=='"' || d[-1]==' ')) d--;
32                                         }
33                                 continue;
34                                 }
35                         s2=s;
36                         if (*s=='~' ) *s='"';
37                         else if (f && s[0]=='"' && s[1]==' ') {
38                                 while (*++s==' ');
39                                 if (*s=='"') continue;
40                                 s=s2;
41                                 }
42                         *d++=*s;
43                         }
44                 *d='\0';
45                 fputs(buf,stdout);
46                 }
47         return(EXIT_SUCCESS);
48 }