summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichal Krol <mjkrol@gmail.org>2005-03-18 14:07:47 +0000
committerMichal Krol <mjkrol@gmail.org>2005-03-18 14:07:47 +0000
commit706bb1c714683fe8ff39962f38938e57301f9fc1 (patch)
tree041025dfe003bba75d94f146be274cb9f96fa6cd /src
parent1d5c727bbabf80b0d92dd3fb3822e476a42f347f (diff)
a little program to change // comments to /* */ ones
Diffstat (limited to 'src')
-rw-r--r--src/mesa/shader/slang/MachineIndependent/preprocessor/cpp_comment_fix.c76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/mesa/shader/slang/MachineIndependent/preprocessor/cpp_comment_fix.c b/src/mesa/shader/slang/MachineIndependent/preprocessor/cpp_comment_fix.c
new file mode 100644
index 0000000000..0c3073590d
--- /dev/null
+++ b/src/mesa/shader/slang/MachineIndependent/preprocessor/cpp_comment_fix.c
@@ -0,0 +1,76 @@
+/* converts c++ to c comments */
+/* usage: ./cpp_comment_fix source */
+
+#include <stdio.h>
+
+int main (int argc, char *argv[])
+{
+ FILE *f;
+ int c;
+ char *buf = NULL;
+ int size = 0, i = 0;
+
+ f = fopen (argv[1], "r");
+ while ((c = fgetc (f)) != EOF)
+ {
+ buf = (void *) realloc (buf, size + 1);
+ buf[size] = c;
+ size++;
+ }
+ fclose (f);
+
+ f = fopen (argv[1], "w");
+
+ while (i < size)
+ {
+ if (buf[i] == '/')
+ {
+ if (buf[i+1] == '/')
+ {
+ fprintf (f, "/*");
+ i+=2;
+ while (buf[i] != '\n' && buf[i] != '\r' && i < size)
+ fprintf (f, "%c", buf[i++]);
+ fprintf (f, " */\n");
+ if (i < size && buf[i] == '\n')
+ i++;
+ else if (i < size && buf[i] == '\r')
+ i+=2;
+ }
+ else
+ {
+ fprintf (f, "/");
+ i++;
+
+ if (buf[i] == '*')
+ {
+ fprintf (f, "*");
+ i++;
+
+ for (;;)
+ {
+ if (buf[i] == '*' && buf[i+1] == '/')
+ {
+ fprintf (f, "*/");
+ i+=2;
+ break;
+ }
+ else
+ {
+ fprintf (f, "%c", buf[i]);
+ i++;
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ fprintf (f, "%c", buf[i]);
+ i++;
+ }
+ }
+ fclose (f);
+ return 0;
+}
+