#include #include "buffer.h" #include "logmsg.h" #include "stralloc.h" #include "getln.h" #include "str.h" #define WHO "printmaillist" void badformat() { logmsg(WHO,100,FATAL,"bad mailing list format"); } stralloc line = {0}; int match; int main() { for (;;) { if (getln(buffer_1small,&line,&match,'\0') == -1) logmsg(WHO,111,FATAL,"unable to read input: "); if (!match) { if (line.len) badformat(); if (buffer_flush(buffer_1small) == -1) logmsg(WHO,111,FATAL,"unable to write output: "); _exit(0); } if (line.s[str_chr(line.s,'\n')]) badformat(); if (line.s[line.len - 1] == ' ') badformat(); if (line.s[line.len - 1] == '\t') badformat(); if ((line.s[0] == '.') || (line.s[0] == '/')) { if (buffer_puts(buffer_1small,line.s) == -1) logmsg(WHO,111,FATAL,"unable to write output: "); if (buffer_puts(buffer_1small,"\n") == -1) logmsg(WHO,111,FATAL,"unable to write output: "); continue; } if (line.s[0] == '&') { if (line.len > 900) badformat(); if (buffer_puts(buffer_1small,line.s) == -1) logmsg(WHO,111,FATAL,"unable to write output: "); if (buffer_puts(buffer_1small,"\n") == -1) logmsg(WHO,111,FATAL,"unable to write output: "); continue; } badformat(); } }