date and time created 83/05/06 23:30:11 by tut
authorBill Tuthill <tut@ucbvax.Berkeley.EDU>
Sat, 7 May 1983 14:30:11 +0000 (06:30 -0800)
committerBill Tuthill <tut@ucbvax.Berkeley.EDU>
Sat, 7 May 1983 14:30:11 +0000 (06:30 -0800)
SCCS-vsn: old/refer/refer/refer4.c 4.1

usr/src/old/refer/refer/refer4.c [new file with mode: 0644]

diff --git a/usr/src/old/refer/refer/refer4.c b/usr/src/old/refer/refer/refer4.c
new file mode 100644 (file)
index 0000000..0cb8e87
--- /dev/null
@@ -0,0 +1,86 @@
+#ifndef lint
+static char *sccsid = "@(#)refer4.c    4.1 (Berkeley) %G%";
+#endif
+
+#include "refer..c"
+#define punctuat(c) (c=='.' || c=='?' || c=='!' || c==',' || c==';' || c==':')
+
+static gate = 0;
+static char buff[BUFSIZ];
+
+output(s)
+char *s;
+{
+       if (gate)
+               fputs(buff,ftemp);
+       else
+               gate = 1;
+       strcpy(buff, s);
+       if (strlen(buff) > BUFSIZ)
+               err("one buff too big (%d)!", BUFSIZ);
+}
+
+append(s)
+char *s;
+{
+       char *p;
+       int lch;
+
+       trimnl(buff);
+       for (p = buff; *p; p++)
+               ;
+       lch = *--p;
+       if (postpunct && punctuat(lch))
+               *p = NULL;
+       else /* pre-punctuation */
+               switch (lch) {
+               case '.': 
+               case '?':
+               case '!':
+               case ',':
+               case ';':
+               case ':':
+                       *p++ = lch;
+                       *p = NULL;
+               }
+       strcat(buff, s);
+       if (postpunct)
+               switch(lch) {
+               case '.': 
+               case '?':
+               case '!':
+               case ',':
+               case ';':
+               case ':':
+                       for(p = buff; *p; p++)
+                               ;
+                       if (*--p == '\n')
+                               *p = NULL;
+                       *p++ = lch;
+                       *p++ = '\n';
+                       *p = NULL;
+               }
+       if (strlen(buff) > BUFSIZ)
+               err("output buff too long (%d)", BUFSIZ);
+}
+
+flout()
+{
+       if (gate)
+               fputs(buff,ftemp);
+       gate = 0;
+}
+
+char *
+trimnl(ln)
+char *ln;
+{
+       register char *p = ln;
+
+       while (*p)
+               p++;
+       p--;
+       if (*p == '\n')
+               *p = 0;
+       return(ln);
+}