From 4613cb05be51de6c1fb89ba784df417cfdb7296e Mon Sep 17 00:00:00 2001 From: jjgarcia Date: Tue, 3 May 2005 11:18:13 +0000 Subject: [PATCH] Small replacement for sed --- src/util/cut.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/util/cut.c diff --git a/src/util/cut.c b/src/util/cut.c new file mode 100644 index 000000000..ba451b980 --- /dev/null +++ b/src/util/cut.c @@ -0,0 +1,57 @@ +#include +#include + +void +sed_emulator(int narg, char **patterns) +{ + char buffer[1024]; + char buffer2[1024]; + size_t i, lengths[1024]; + char *b1 = buffer, *b2 = buffer2; + + for (i = 0; i < narg; i++) + lengths[i] = strlen(patterns[i]); + + while(1) { + if (gets(b1) == 0) + exit(0); + for (i = 0; i < narg; i+=2) { + char *b3, *b4; + while ((b3 = strstr(b1, patterns[i]))) { + b3[0] = 0; + strcpy(b2, b1); + strcat(b2, patterns[i+1]); + strcat(b2, b3 + lengths[i]); + b4 = b2; b2 = b1; b1 = b4; + } + } + puts(b1); + } +} + +int +main(int narg, char **argv) { + char buffer[1024]; + + narg--; + argv++; + + if (narg >= 2) + sed_emulator(narg, argv); + + while(1) { + if (gets(buffer) == 0) { + exit(0); + } + if (narg == 0) { + /* This is used to remove part of config.h */ + if (strstr(buffer, "/-CUT-/")) { + exit(0); + } + } else if (strstr(buffer, "declspec(dllimport)")) { + /* This is used to removed the declspec(dllimport) from external.h */ + continue; + } + puts(buffer); + } +}