Man page formatter fix for SunOS compatibility.
[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                                         while (s[1]==' ') s++;
28                                         if (s[1]=='"') s++;
29                                         }
30                                 else {
31 /*fprintf(stderr,"DURING TURN-OFF:%s",s);*/
32                                         while (d>buf && (d[-1]=='"' || d[-1]==' ')) d--;
33                                         }
34                                 continue;
35                                 }
36                         s2=s;
37                         if (*s=='~' ) *s='"';
38                         else if (f && s[0]=='"' && s[1]==' ') {
39                                 while (*++s==' ');
40                                 if (*s=='"') continue;
41                                 s=s2;
42                                 }
43                         *d++=*s;
44                         }
45                 *d='\0';
46                 fputs(buf,stdout);
47                 }
48         return(EXIT_SUCCESS);
49 }