---
 src/scanner.c |   28 +++++++++++++++++++++++-----
 1 files changed, 23 insertions(+), 5 deletions(-)
 mode change 100644 => 100755 src/scanner.c

diff --git a/src/scanner.c b/src/scanner.c
old mode 100644
new mode 100755
index e4797b0..fcfb5a5
--- a/src/scanner.c
+++ b/src/scanner.c
@@ -82,12 +82,14 @@ struct message {
 enum arg_type {
        NEW_ID,
        INT,
-       UNSIGNED,
+       UINT,
        FIXED,
        STRING,
        OBJECT,
        ARRAY,
-       FD
+       FD,
+       INT_PTR,
+       UINT_PTR,
 };
 
 struct arg {
@@ -334,7 +336,7 @@ start_element(void *data, const char *element_name, const 
char **atts)
                if (strcmp(type, "int") == 0)
                        arg->type = INT;
                else if (strcmp(type, "uint") == 0)
-                       arg->type = UNSIGNED;
+                       arg->type = UINT;
                else if (strcmp(type, "fixed") == 0)
                        arg->type = FIXED;
                else if (strcmp(type, "string") == 0)
@@ -347,6 +349,10 @@ start_element(void *data, const char *element_name, const 
char **atts)
                        arg->type = NEW_ID;
                } else if (strcmp(type, "object") == 0) {
                        arg->type = OBJECT;
+               } else if (strcmp(type, "int*") == 0) {
+                       arg->type = INT_PTR;
+               } else if (strcmp(type, "uint*") == 0) {
+                       arg->type = UINT_PTR;
                } else {
                        fail(ctx, "unknown type");
                }
@@ -484,7 +490,7 @@ emit_type(struct arg *a)
                printf("int32_t ");
                break;
        case NEW_ID:
-       case UNSIGNED:
+       case UINT:
                printf("uint32_t ");
                break;
        case FIXED:
@@ -499,6 +505,12 @@ emit_type(struct arg *a)
        case ARRAY:
                printf("struct wl_array *");
                break;
+       case INT_PTR:
+               printf("int32_t *");
+               break;
+       case UINT_PTR:
+               printf("uint32_t *");
+               break;
        }
 }
 
@@ -975,7 +987,7 @@ emit_messages(struct wl_list *message_list,
                        case NEW_ID:
                                printf("n");
                                break;
-                       case UNSIGNED:
+                       case UINT:
                                printf("u");
                                break;
                        case FIXED:
@@ -993,6 +1005,12 @@ emit_messages(struct wl_list *message_list,
                        case FD:
                                printf("h");
                                break;
+                       case INT_PTR:
+                               printf("I");
+                               break;
+                       case UINT_PTR:
+                               printf("U");
+                               break;
                        }
                }
                printf("\", types + %d },\n", m->type_index);
-- 
1.7.5.4

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to