scanner: Use protocol name for #include guards
authorKristian Høgsberg <krh@bitplanet.net>
Tue, 14 Sep 2010 19:52:43 +0000 (15:52 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 14 Sep 2010 19:53:10 +0000 (15:53 -0400)
wayland/protocol.xml
wayland/scanner.c

index 9fa5db4..1f880cd 100644 (file)
@@ -1,4 +1,4 @@
-<protocol>
+<protocol name="wayland">
 
   <interface name="display" version="1">
     <request name="sync">
index 613e12b..aaaf551 100644 (file)
@@ -57,6 +57,8 @@ usage(int ret)
 #define XML_BUFFER_SIZE 4096
 
 struct protocol {
+       char *name;
+       char *uppercase_name;
        struct wl_list interface_list;
 };
 
@@ -139,7 +141,15 @@ start_element(void *data, const char *element_name, const char **atts)
                        interface_name = atts[i + 1];
        }
 
-       if (strcmp(element_name, "interface") == 0) {
+       if (strcmp(element_name, "protocol") == 0) {
+               if (name == NULL) {
+                       fprintf(stderr, "no protocol name given\n");
+                       exit(EXIT_FAILURE);
+               }
+
+               ctx->protocol->name = strdup(name);
+               ctx->protocol->uppercase_name = uppercase_dup(name);
+       } else if (strcmp(element_name, "interface") == 0) {
                if (name == NULL) {
                        fprintf(stderr, "no interface name given\n");
                        exit(EXIT_FAILURE);
@@ -499,10 +509,11 @@ static void
 emit_header(struct protocol *protocol, int server)
 {
        struct interface *i;
+       const char *s = server ? "SERVER" : "CLIENT";
 
        printf("%s\n\n"
-              "#ifndef WAYLAND_PROTOCOL_H\n"
-              "#define WAYLAND_PROTOCOL_H\n"
+              "#ifndef %s_%s_PROTOCOL_H\n"
+              "#define %s_%s_PROTOCOL_H\n"
               "\n"
               "#ifdef  __cplusplus\n"
               "extern \"C\" {\n"
@@ -510,7 +521,10 @@ emit_header(struct protocol *protocol, int server)
               "\n"
               "#include <stdint.h>\n"
               "#include \"wayland-util.h\"\n\n"
-              "struct wl_client;\n\n", copyright);
+              "struct wl_client;\n\n",
+              copyright,
+              protocol->uppercase_name, s,
+              protocol->uppercase_name, s);
 
        wl_list_for_each(i, &protocol->interface_list, link)
                printf("struct wl_%s;\n", i->name);