1040f3be43
FTP: ftp://ftp.dinoex.org/pub/c-news/ WWW: http://www.dinoex.net/c-news.html
70 lines
1.7 KiB
Text
70 lines
1.7 KiB
Text
$NetBSD: patch-ac,v 1.1 2003/09/30 15:39:59 hfath Exp $
|
|
|
|
--- input/newsspool.c.orig Fri Apr 28 02:50:59 1995
|
|
+++ input/newsspool.c
|
|
@@ -156,7 +156,7 @@
|
|
register char *p;
|
|
|
|
p = strsave(fullartfile("in.coming/nspool.XXXXXX"));
|
|
- mktemp(p);
|
|
+ mkstemp(p);
|
|
return(p);
|
|
}
|
|
|
|
@@ -215,12 +215,16 @@
|
|
char *bufp;
|
|
int count;
|
|
{
|
|
- static char goop[] = "cunbatch";
|
|
-# define GOOPLEN (sizeof(goop)-1) /* strlen(goop) */
|
|
- static char suf[] = ".Z";
|
|
+ static char c_goop[] = "cunbatch";
|
|
+# define C_GOOPLEN (sizeof(c_goop)-1) /* strlen(c_goop) */
|
|
+ static char g_goop[] = "gunbatch";
|
|
+# define G_GOOPLEN (sizeof(g_goop)-1) /* strlen(g_goop) */
|
|
+ static char csuf[] = ".Z";
|
|
+ static char gsuf[] = ".gz";
|
|
static char comp[] = "\037\235"; /* compress's magic no. */
|
|
- register char *p;
|
|
- register int nleft;
|
|
+ static char gzip[] = "\037\213"; /* gzip's magic no. */
|
|
+ char *p;
|
|
+ int nleft;
|
|
# define MINCBATCH 5 /* one character, compressed */
|
|
|
|
nleft = count;
|
|
@@ -232,7 +236,14 @@
|
|
if (p[0] == comp[0] && p[1] == comp[1]) { /* compressed */
|
|
if (nleft < MINCBATCH)
|
|
return(count);
|
|
- suffix = suf;
|
|
+ suffix = csuf;
|
|
+ return(0);
|
|
+ }
|
|
+
|
|
+ if (p[0] == gzip[0] && p[1] == gzip[1]) { /* gzipped */
|
|
+ if (nleft < MINCBATCH)
|
|
+ return(count);
|
|
+ suffix = gsuf;
|
|
return(0);
|
|
}
|
|
|
|
@@ -247,10 +258,14 @@
|
|
}
|
|
|
|
/* recognize headers (the +1s ensure room for the newline) */
|
|
- if (nleft >= GOOPLEN+1 && STREQN(p, goop, GOOPLEN)) {
|
|
- p += GOOPLEN;
|
|
- nleft -= GOOPLEN;
|
|
- suffix = suf;
|
|
+ if (nleft >= C_GOOPLEN+1 && STREQN(p, c_goop, C_GOOPLEN)) {
|
|
+ p += C_GOOPLEN;
|
|
+ nleft -= C_GOOPLEN;
|
|
+ suffix = csuf;
|
|
+ } else if (nleft >= G_GOOPLEN+1 && STREQN(p, g_goop, G_GOOPLEN)) {
|
|
+ p += G_GOOPLEN;
|
|
+ nleft -= G_GOOPLEN;
|
|
+ suffix = gsuf;
|
|
} else /* no header */
|
|
return(0);
|
|
|