diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2010-07-20 15:29:38 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2010-07-20 15:29:38 (GMT) |
commit | c00ba4b1229c79aacf041678a9c667dad2791784 (patch) | |
tree | 355cf0be823410eedde7bd65fa463fc92736c57e /config/cmake/xlatefile.c | |
parent | a67794b1bc35421f1267133a6f7b447db2a71a3a (diff) | |
download | hdf5-c00ba4b1229c79aacf041678a9c667dad2791784.zip hdf5-c00ba4b1229c79aacf041678a9c667dad2791784.tar.gz hdf5-c00ba4b1229c79aacf041678a9c667dad2791784.tar.bz2 |
[svn-r19107] Move Resources folder to config/cmake
Tested: Local Linux
Diffstat (limited to 'config/cmake/xlatefile.c')
-rw-r--r-- | config/cmake/xlatefile.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/config/cmake/xlatefile.c b/config/cmake/xlatefile.c new file mode 100644 index 0000000..c16f573 --- /dev/null +++ b/config/cmake/xlatefile.c @@ -0,0 +1,56 @@ +#include <stdio.h> +#include <string.h> +#include <stdlib.h> + +#define BUFFERSIZE 1024 + +int main(int argc, char *argv[]) { + FILE *infile = NULL; + FILE *outfile = NULL; + char *buffer = NULL; + char argbuf[8]; + unsigned int bytes = 0; + unsigned int idx = 0; + unsigned int lineidx = 0; + unsigned int stripXlines = 3; + + if(argc < 3) + exit(1); + if(NULL == (infile = fopen(argv[1], "rb"))) + exit(2); + if(NULL == (outfile = fopen(argv[2], "wb+"))) + exit(3); + if(argc > 3) + if(argv[3][0] == '-') + if(argv[3][1] == 'l') { + strcpy(argbuf, &argv[3][2]); + stripXlines = atoi(argbuf); + } + buffer = (char*)malloc(BUFFERSIZE); + if(buffer) { + while(!feof(infile)) { + /* read the file into the buffer. */ + bytes = fread(buffer, 1, BUFFERSIZE, infile); + if(lineidx < stripXlines) { + for(idx = 0; idx < bytes; idx++) { + if(buffer[idx] == '\n') { + lineidx++; + if(buffer[idx+1] == '\r') + idx++; + } + if(lineidx >= stripXlines) { + fwrite(&buffer[idx+1], 1, bytes-idx-1, outfile); + idx = bytes; + } + } + } + else + fwrite(buffer, 1, bytes, outfile); + } + free(buffer); + } + fclose(outfile); + fclose(infile); + + return 0; +} |