4898794edd81be5285ea6e544acbedeaeb31bf78 max Tue Nov 23 08:10:57 2021 -0800 Fixing pointers to README file for license in all source code files. refs #27614 diff --git src/hg/xmlCat/xmlCat.c src/hg/xmlCat/xmlCat.c index c664b3f..21fab51 100644 --- src/hg/xmlCat/xmlCat.c +++ src/hg/xmlCat/xmlCat.c @@ -1,99 +1,99 @@ /* xmlCat - Concatenate xml files together, stuffing all records inside a single outer tag. . */ /* Copyright (C) 2011 The Regents of the University of California - * See README in this or parent directory for licensing information. */ + * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */ #include "common.h" #include "linefile.h" #include "hash.h" #include "options.h" #include "xmlEscape.h" #include "xp.h" void usage() /* Explain usage and exit. */ { errAbort( "xmlCat - Concatenate xml files together, stuffing all records inside a single outer tag. \n" "usage:\n" " xmlCat XXX\n" "options:\n" " -xxx=XXX\n" ); } static struct optionSpec options[] = { {NULL, 0}, }; boolean showFirst, showLast; int level = 0; void atStart(void *userData, char *name, char **atts) /* Handle start tag. */ { if (level != 0 || showFirst) { char *att; spaceOut(stdout, level*2); printf("<%s", name); while ((att = *atts++) != NULL) { printf(" %s=\"", att); xmlEscapeStringToFile(*atts++, stdout); fputc('"', stdout); } printf(">\n"); } level += 1; } void atEnd(void *userData, char *name, char *text) /* Handle end tag. */ { level -= 1; if (level != 0 || showLast) { text = trimSpaces(text); if (text[0] != 0) { xmlEscapeStringToFile(text, stdout); fputc('\n', stdout); } spaceOut(stdout, level*2); printf("</%s>\n", name); } } struct xp *xpNew(void *userData, void (*atStartTag)(void *userData, char *name, char **atts), void (*atEndTag)(void *userData, char *name, char *text), int (*read)(void *userData, char *buf, int bufSize), char *fileName); void xmlCat(int fileCount, char *fileNames[]) /* xmlCat - Concatenate xml files together, stuffing all records inside * a single outer tag. . */ { int i; for (i=0; i<fileCount; ++i) { char *fileName = fileNames[i]; FILE *f = mustOpen(fileName, "r"); struct xp *xp = xpNew(f, atStart, atEnd, xpReadFromFile, fileName); showFirst = (i == 0); showLast = (i == fileCount-1); xpParse(xp); carefulClose(&f); } } int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); if (argc < 2) usage(); xmlCat(argc-1, argv+1); return 0; }