summaryrefslogtreecommitdiff
path: root/src/gen_messages.sed
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2011-07-11 13:24:47 +0200
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2011-07-11 13:29:35 +0200
commitd4301bdbc057d0fdeb4bceaea693f59490197a74 (patch)
tree46aa0b3414a77ac477b85370d48af6b9fe4ac41c /src/gen_messages.sed
parent8aa06f085b1ea12e3e4503364545c06fa037a624 (diff)
downloadcmumble-d4301bdbc057d0fdeb4bceaea693f59490197a74.tar.gz
cmumble-d4301bdbc057d0fdeb4bceaea693f59490197a74.tar.bz2
cmumble-d4301bdbc057d0fdeb4bceaea693f59490197a74.zip
Use a sed script for generating messages.h
Drop the prior used shell script.
Diffstat (limited to 'src/gen_messages.sed')
-rw-r--r--src/gen_messages.sed25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/gen_messages.sed b/src/gen_messages.sed
new file mode 100644
index 0000000..0bc51f1
--- /dev/null
+++ b/src/gen_messages.sed
@@ -0,0 +1,25 @@
+1 {
+i\
+#ifndef _MESSAGES_H_ \
+#define _MESSAGES_H_ \
+\
+#define MUMBLE_MSGS \\
+}
+
+# Duplicate & Seperate with ","
+s/^.*$/\0, \0/
+
+# Lowercase and prefix uppercase characters that follow a lowercase one
+:a; s/^\([^,]*, .*[a-z]\)\([A-Z]\)/\1_\L\2\E/g; ta
+
+# Lowercase remaining uppercase characters
+s/\([^,]*, [a-z_]*\)\([A-Z]*\)/\1\L\2\E/g
+
+# Put template macro around
+s/^.*$/\tMUMBLE_MSG(\0) \\/
+
+$ {
+a\
+\
+#endif /* _MESSAGES_H_ */
+}