|
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 m
Length: 2606 (0xa2e) Types: TextFile Names: »makedict.c«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen └─⟦123909933⟧ »./npasswd/npasswd.tar.Z« └─⟦22a202e7d⟧ └─⟦this⟧ »npass-new/npasswd_jpl/old.checkpasswd/dict/makedict.c«
/* -------------------------------------------------------------------- */ /* */ /* Author: Clyde Hoover */ /* Computation Center */ /* The University of Texas at Austin */ /* Austin, Texas 78712 */ /* clyde@emx.utexas.edu */ /* uunet!cs.utexas.edu!ut-emx!clyde */ /* */ /*This code may be distributed freely, provided this notice is retained. */ /* */ /* -------------------------------------------------------------------- */ /* * makedict - Make DBM version of password dictionary */ #ifndef lint static char sccsid[] = "@(#)makedict.c 1.2 10/4/89 (cc.utexas.edu) /usr/src/ut/bin/passwd/checkpasswd/dict/SCCS/s.makedict.c"; #endif #ifdef MDBM #include "mdbm.h" #define DBM struct mdbm #define DBM_CLOSE mdbm_close #endif #ifdef NDBM #include <ndbm.h> #define DBM_CLOSE dbm_close #endif /* * What cpp needs is a way for the programmer to issue an error * message here and abort compilation */ #if !defined(MDBM) && !defined(NDBM) "Either NDBM or MDBM must be defined" #endif #include <sys/file.h> #include <stdio.h> char line[80]; /* Input buffer */ main(argc, argv) int argc; char *argv[]; { DBM *dp; /* Database pointer */ int recs = 0; /* Record counter */ datum d, /* Data datum */ k; /* Key datum */ #ifdef SYSV #define index strchr #endif char *index(); if (argc < 2) { printf("Usage: makedict dbm-file < input\n"); exit(1); } #ifdef NDBM dp = dbm_open(argv[1], O_RDWR, 0); if (dp == 0) { if ((dp = dbm_open(argv[1], O_RDWR|O_CREAT, 0644)) == 0) { perror(argv[1]); exit(1); } } #endif #ifdef MDBM dp = mdbm_open(argv[1], O_RDWR, (int *)0, (int *)0, (char *)0); if (dp == 0) { if ((dp = mdbm_open(argv[1], O_RDWR|O_CREAT, 0644, (int *)0, (int *)0, (char *)0)) == 0) { perror(argv[1]); exit(1); } } #endif while (!feof(stdin)) { char *p; (void) fgets(line, sizeof(line), stdin); if (p = index(line, '\n')) *p = 0; d.dptr = line; d.dsize = strlen(line); #ifdef MDBM mdbm_store(dp, d, d, 1); #endif #ifdef NDBM dbm_store(dp, d, d, DBM_INSERT); #endif recs++; } DBM_CLOSE(dp); printf("%s built, %d records\n", argv[1], recs); }