|
|
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 a
Length: 3254 (0xcb6)
Types: TextFile
Names: »addto.c«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen
└─⟦3da311d67⟧ »./cops/1.04/cops_104.tar.Z«
└─⟦6a2577110⟧
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen
└─⟦6a2577110⟧ »./cops/1.04/cops_104.tar«
└─⟦this⟧ »cops_104/src/addto.c«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen
└─⟦ed5edc051⟧ »./cops/1.02/cops.102.tar«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen
└─⟦db60b44f1⟧ »./cops/1.02/cops.102.tar.Z«
└─⟦ed5edc051⟧
└─⟦this⟧ »cops/src/addto.c«
/* Copyright 1985 Robert W. Baldwin */
/* Copyright 1986 Robert W. Baldwin */
static char *notice85 = "Copyright 1985 Robert W. Baldwin";
static char *notice86 = "Copyright 1986 Robert W. Baldwin";
/*
August 15, added "Warning!" To prepend warning messages.
-- dan farmer
*/
/*
* Add a goal, check for duplicates and completions.
* Trace messages written to stdout, success messages written to stderr.
* Usage: addto fileroot key comments
* Files are arranged in families based on a root name; for example,
* uids.k -- uids we Know how to access
* uids.n -- uids to process Next
* uids.p -- uids Pending results (for duplicate detection)
* uids.x -- uids being eXamined currently
*/
#include <stdio.h>
#define LINELEN 600 /* Max chars in a line. */
#define SUCCESS "Success" /* Filename to put success messages. */
main(argc, argv)
int argc;
char *argv[];
{
char *type = argv[1];
char *key = argv[2];
int i;
char linebuf[LINELEN];
char keypending[150];
char filename[150];
FILE *tmpfile;
if (argc < 3) {
fprintf(stderr, "addto: missing arguments\n");
exit(1);
}
tmpfile = NULL;
keypending[0] = NULL;
strcat(keypending, key);
strcat(keypending, " ");
/*
* If the uid is known, print out the comments and exit.
*/
filename[0] = NULL;
strcat(filename, type);
strcat(filename, ".k");
if ((tmpfile = fopen(filename, "r")) == NULL) {
fprintf(stderr, "addto: can't open %s.\n", filename);
exit(1);
}
while (fgets(linebuf, LINELEN, tmpfile) != NULL) {
if (strncmp(linebuf, key, strlen(key)) == 0) {
if ((tmpfile = freopen(SUCCESS,"a",tmpfile)) == NULL) {
fprintf(stderr, "addto: can't open %s.\n",
SUCCESS);
exit(1);
}
fprintf(stderr, "Success^G^G\t");
fprintf(tmpfile, "Warning! ");
for (i = 1 ; i < argc ; i++) {
fprintf(tmpfile, argv[i]);
fprintf(tmpfile, " ");
fprintf(stderr, argv[i]);
fprintf(stderr, " ");
}
fprintf(tmpfile, "\n");
fprintf(stderr, "\n");
exit(0);
}
}
/*
* If a duplicate, don't add it.
*/
filename[0] = NULL;
strcat(filename, type);
strcat(filename, ".p");
if (freopen(filename, "r", tmpfile) == NULL) {
fprintf(stderr, "addto: can't open %s.\n", filename);
exit(1);
}
while (fgets(linebuf, LINELEN, tmpfile) != NULL) {
if (strncmp(linebuf, keypending, strlen(keypending)) == 0) {
exit(0); /* Its a duplicate. */
}
}
/*
* Add the goal to the pending file.
*/
filename[0] = NULL;
strcat(filename, type);
strcat(filename, ".p");
if (freopen(filename, "a", tmpfile) == NULL) {
fprintf(stderr,"addto: can't open %s for append.\n", filename);
exit(1);
}
fprintf(tmpfile, keypending);
fprintf(tmpfile, "\n");
/*
* Add the goal to the next goal (type) file.
*/
filename[0] = NULL;
strcat(filename, type);
strcat(filename, ".n");
if (freopen(filename, "a", tmpfile) == NULL) {
fprintf(stderr,"addto: can't open %s for append.\n", filename);
exit(1);
}
fprintf(stdout, " ");
fprintf(stdout, "%s %s ", argv[0], argv[1]);
for (i = 2 ; i < argc ; i++) {
fprintf(tmpfile, argv[i]);
fprintf(tmpfile, " ");
fprintf(stdout, argv[i]);
fprintf(stdout, " ");
}
fprintf(tmpfile, "\n");
fprintf(stdout, "\n");
exit(0);
}