/* ************************************************************************
* file: split.c Part of CircleMud *
* Usage: split one large file into multiple smaller ones, with index *
* Written by Jeremy Elson *
* All Rights Reserved *
* Copyright (C) 1993 The Trustees of The Johns Hopkins University *
************************************************************************* */
#define INDEX_NAME "index"
#define BSZ 256
#define MAGIC_CHAR '='
#include <stdio.h>
#include <string.h>
main ()
{
char line[BSZ+1];
FILE * index = 0, *outfile = 0;
if (!(index = fopen(INDEX_NAME, "w"))) {
perror("error opening index for write");
exit();
}
while (fgets(line, BSZ, stdin)) {
if (*line == MAGIC_CHAR) {
*(strchr(line, '\n')) = '\0';
if (outfile) {
fputs("#99999\n$~\n", outfile);
fclose(outfile);
}
if (!(outfile = fopen((line + 1), "w"))) {
perror("Error opening output file");
exit();
}
fputs(line + 1, index);
fputs("\n", index);
} else if (outfile)
fputs(line, outfile);
}
fputs("$\n\r", index);
fclose(index);
if (outfile)
fclose(outfile);
}