summaryrefslogtreecommitdiffstats
path: root/config/cmake/xlatefile.c
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2010-07-20 16:51:49 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2010-07-20 16:51:49 (GMT)
commitde3a870bcd4953a3654b3e9dc92edab86fe858cd (patch)
tree8bf2fc6e0814f67b1388c23136aaff9e4a7cba96 /config/cmake/xlatefile.c
parent98754fa9d12090f5e048fdb05cc5e9ce9111676f (diff)
downloadhdf5-de3a870bcd4953a3654b3e9dc92edab86fe858cd.zip
hdf5-de3a870bcd4953a3654b3e9dc92edab86fe858cd.tar.gz
hdf5-de3a870bcd4953a3654b3e9dc92edab86fe858cd.tar.bz2
[svn-r19110] Description:
Bring r19049:19109 from trunk to revise_chunks branch Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, w/threadsafe, in production mode Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode Mac OS X/32 10.6.4 (amazon) in debug mode Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
Diffstat (limited to 'config/cmake/xlatefile.c')
-rw-r--r--config/cmake/xlatefile.c56
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;
+}