|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T v
Length: 1237 (0x4d5) Types: TextFile Names: »vrfy.c«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit └─⟦f91e15335⟧ »EurOpenD3/news/nntp/nntplink2.0.0.tar.Z« └─⟦2c70c5e6b⟧ └─⟦this⟧ »vrfy.c«
#include "global.h" #ifdef VERIFYQFILE vrfy(name) char *name; { char tmpfn[64]; char filen[256]; register bad = 0; FILE *a, *b; char *cp; if ((a = fopen(name, "r")) == NULL) { dprintf(stderr, "vrfy: Can't open %s for read: %s\n", name, sys_errlist[errno]); return; } sprintf(tmpfn, "%s.vrfy%d", name, getpid()); if ((b = fopen(tmpfn, "w")) == NULL) { dprintf(stderr, "vrfy: Can't open %s for write: %s\n", tmpfn, sys_errlist[errno]); return; } while (fgets(filen,sizeof(filen),a) != NULL) { char *cp; filen[strlen(filen)-1]='\0'; if (access(filen, 0) == -1) { if (strlen(filen) < 10) { ++bad; continue; } cp = filen; while ((cp = index(cp+1, '/')) != NULL) { *cp = '\0'; if (!strncmp(cp+1, "usr/spool/news", 14)) { fprintf(b, "%s\n", filen); fprintf(b, "/%s\n", cp+1); break; } *cp = '/'; } } else { fprintf(b, "%s\n", filen); } } fclose(a); fclose(b); if (unlink(name) == -1) dprintf(stderr, "unlink %s failed (%s)\n", name, sys_errlist[errno]); if (rename(tmpfn, name) == -1) dprintf(stderr, "rename %s %s failed (%s)\n", tmpfn, name, sys_errlist[errno]); } #endif