const char *finc_name;
const char *hdrfn_saved;
char protostr[256];
+ char path[256];
+ char fname_inc[256];
FILE *finc;
int line = 0;
int ret;
if (p != NULL)
*p = 0;
- finc = fopen(finc_name, "r");
+ path[0] = 0;
+ p = strrchr(hdrfn_saved, '/');
+ if (p) {
+ memcpy(path, hdrfn_saved,
+ p - hdrfn_saved + 1);
+ path[p - hdrfn_saved + 1] = 0;
+ }
+ snprintf(fname_inc, sizeof(fname_inc), "%s%s",
+ path, finc_name);
+ finc = fopen(fname_inc, "r");
if (finc == NULL) {
printf("%s:%d: can't open '%s'\n",
- fname, line, finc_name);
+ fname_inc, line, finc_name);
continue;
}
ret = do_protostrs(finc, finc_name);
"HGDIOBJ",
"HGLOBAL",
"HINSTANCE",
+ "HIMC",
"HMODULE",
"HRGN",
"HRSRC",
"HKEY",
"HMENU",
"HWND",
- "PLONG",
+ "PCRITICAL_SECTION",
"PDWORD",
+ "PHKEY",
+ "PLONG",
+ "PMEMORY_BASIC_INFORMATION",
+ "PUINT",
"PVOID",
"PCVOID",
"DLGPROC",
ret = n1 - name;
type->name = strndup(name, ret);
+ if (IS(type->name, "VOID"))
+ memcpy(type->name, "void", 4);
+
return ret;
}
qsort(pp_cache, pp_cache_size, sizeof(pp_cache[0]), pp_name_cmp);
}
-static const struct parsed_proto *proto_parse(FILE *fhdr, const char *sym)
+static const struct parsed_proto *proto_parse(FILE *fhdr, const char *sym,
+ int quiet)
{
const struct parsed_proto *pp_ret;
struct parsed_proto pp_search;
strcpy(pp_search.name, sym);
pp_ret = bsearch(&pp_search, pp_cache, pp_cache_size,
sizeof(pp_cache[0]), pp_name_cmp);
- if (pp_ret == NULL)
+ if (pp_ret == NULL && !quiet)
printf("%s: sym '%s' is missing\n", hdrfn, sym);
return pp_ret;