notaz.gp2x.de
/
ia32rtools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
deal with all non-reg-arg funcs
[ia32rtools.git]
/
tools
/
protoparse.h
diff --git
a/tools/protoparse.h
b/tools/protoparse.h
index
ec9d4ad
..
b49c216
100644
(file)
--- a/
tools/protoparse.h
+++ b/
tools/protoparse.h
@@
-124,6
+124,7
@@
static const char *known_type_mod[] = {
"unsigned",
"struct",
"enum",
"unsigned",
"struct",
"enum",
+ "CONST",
};
static const char *known_ptr_types[] = {
};
static const char *known_ptr_types[] = {
@@
-136,17
+137,24
@@
static const char *known_ptr_types[] = {
"HGDIOBJ",
"HGLOBAL",
"HINSTANCE",
"HGDIOBJ",
"HGLOBAL",
"HINSTANCE",
+ "HIMC",
"HMODULE",
"HRGN",
"HRSRC",
"HKEY",
"HMENU",
"HWND",
"HMODULE",
"HRGN",
"HRSRC",
"HKEY",
"HMENU",
"HWND",
- "P
LONG
",
+ "P
CRITICAL_SECTION
",
"PDWORD",
"PDWORD",
+ "PHKEY",
+ "PLONG",
+ "PMEMORY_BASIC_INFORMATION",
+ "PUINT",
"PVOID",
"PCVOID",
"DLGPROC",
"PVOID",
"PCVOID",
"DLGPROC",
+ "TIMERPROC",
+ "WNDENUMPROC",
"va_list",
"__VALIST",
};
"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);
ret = n1 - name;
type->name = strndup(name, ret);
+ if (IS(type->name, "VOID"))
+ memcpy(type->name, "void", 4);
+
return ret;
}
return ret;
}
@@
-431,8
+442,14
@@
static int parse_protostr(char *protostr, struct parsed_proto *pp)
p++;
break;
}
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);
p = sskip(p + 1);
+ }
if (!strncmp(p, "...", 3)) {
pp->is_vararg = 1;
if (!strncmp(p, "...", 3)) {
pp->is_vararg = 1;