/* ******************************************************************************* * * Copyright (C) 2003, International Business Machines * Corporation and others. All Rights Reserved. * ******************************************************************************* * file name: ucdstrip.c * encoding: US-ASCII * tab size: 8 (not used) * indentation:4 * * created on: 2003feb20 * created by: Markus W. Scherer * * Simple tool for Unicode Character Database files with semicolon-delimited fields. * Removes comments behind data lines but not in others. * * To compile, just call a C compiler/linker with this source file. * On Windows: cl ucdstrip.c */ #include #include #include /* return the first character position after the end of the data */ static char * endOfData(const char *l) { char *end; char c; end=strchr(l, '#'); if(end!=NULL) { /* ignore whitespace before the comment */ while(l!=end && ((c=*(end-1))==' ' || c=='\t')) { --end; } } else { end=strchr(l, 0); } return end; } extern int main(int argc, const char *argv[]) { static char line[2000]; char *end; while(gets(line)!=NULL) { if(strtol(line, &end, 16)>=0 && end!=line) { /* code point or range followed by semicolon and data, remove comment */ *endOfData(line)=0; } puts(line); } return 0; }