X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tools%2Fprotoparse.h;h=27752cf946643bf2fef15ccc22cfbdbf2c08e4d6;hb=179b79a987ed0f464f47f724032aff6c90bc50c0;hp=0ae46f6976c07cb16ded99e8d5d16630e46ec9fe;hpb=23fd0b111f4f6437346e1889099f7a5a7652a9d8;p=ia32rtools.git diff --git a/tools/protoparse.h b/tools/protoparse.h index 0ae46f6..27752cf 100644 --- a/tools/protoparse.h +++ b/tools/protoparse.h @@ -41,7 +41,8 @@ struct parsed_proto { unsigned int is_noreturn:1; unsigned int is_unresolved:1; unsigned int is_userstack:1; - unsigned int is_arg:1; // decl in func arg + unsigned int is_oslib:1; // OS/system library func + unsigned int is_arg:1; // declared in some func arg unsigned int has_structarg:1; unsigned int has_retreg:1; }; @@ -52,7 +53,7 @@ static int hdrfline = 0; static void pp_copy_arg(struct parsed_proto_arg *d, const struct parsed_proto_arg *s); -static int b_pp_c_handler(char *proto, const char *fname); +static int b_pp_c_handler(char *proto, const char *fname, int is_oslib); static int do_protostrs(FILE *fhdr, const char *fname) { @@ -61,6 +62,7 @@ static int do_protostrs(FILE *fhdr, const char *fname) char protostr[256]; char path[256]; char fname_inc[256]; + int is_oslib; FILE *finc; int line = 0; int ret; @@ -69,6 +71,9 @@ static int do_protostrs(FILE *fhdr, const char *fname) hdrfn_saved = hdrfn; hdrfn = fname; + is_oslib = strstr(fname, "stdc.hlist") + || strstr(fname, "win32.hlist"); + while (fgets(protostr, sizeof(protostr), fhdr)) { line++; @@ -110,7 +115,7 @@ static int do_protostrs(FILE *fhdr, const char *fname) hdrfline = line; - ret = b_pp_c_handler(protostr, hdrfn); + ret = b_pp_c_handler(protostr, hdrfn, is_oslib); if (ret < 0) break; } @@ -653,7 +658,7 @@ static struct parsed_proto *pp_cache; static int pp_cache_size; static int pp_cache_alloc; -static int b_pp_c_handler(char *proto, const char *fname) +static int b_pp_c_handler(char *proto, const char *fname, int is_oslib) { int ret; @@ -671,6 +676,7 @@ static int b_pp_c_handler(char *proto, const char *fname) if (ret < 0) return -1; + pp_cache[pp_cache_size].is_oslib = is_oslib; pp_cache_size++; return 0; }