X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tools%2Fprotoparse.h;h=b49c21620ed8c8c5610633ce613a64e84dbff8d4;hb=46411e6ce8749031ba7b19b9fd20c2a8c6968b22;hp=ec9d4adca755b1fb45b2ec51c44b6a4a2d45f019;hpb=a652aa9f7b2c4ddd5fac0c960e9de8f4e821827b;p=ia32rtools.git diff --git a/tools/protoparse.h b/tools/protoparse.h index ec9d4ad..b49c216 100644 --- a/tools/protoparse.h +++ b/tools/protoparse.h @@ -124,6 +124,7 @@ static const char *known_type_mod[] = { "unsigned", "struct", "enum", + "CONST", }; static const char *known_ptr_types[] = { @@ -136,17 +137,24 @@ static const char *known_ptr_types[] = { "HGDIOBJ", "HGLOBAL", "HINSTANCE", + "HIMC", "HMODULE", "HRGN", "HRSRC", "HKEY", "HMENU", "HWND", - "PLONG", + "PCRITICAL_SECTION", "PDWORD", + "PHKEY", + "PLONG", + "PMEMORY_BASIC_INFORMATION", + "PUINT", "PVOID", "PCVOID", "DLGPROC", + "TIMERPROC", + "WNDENUMPROC", "va_list", "__VALIST", }; @@ -232,6 +240,9 @@ static int check_type(const char *name, struct parsed_type *type) ret = n1 - name; type->name = strndup(name, ret); + if (IS(type->name, "VOID")) + memcpy(type->name, "void", 4); + return ret; } @@ -431,8 +442,14 @@ static int parse_protostr(char *protostr, struct parsed_proto *pp) p++; break; } - if (*p == ',') + if (xarg > 0) { + if (*p != ',') { + printf("%s:%d:%zd: ',' expected\n", + hdrfn, hdrfline, (p - protostr) + 1); + return -1; + } p = sskip(p + 1); + } if (!strncmp(p, "...", 3)) { pp->is_vararg = 1;