Unified · Split
| @@ -1723,6 +1723,7 @@ PUB_FUNC int tcc_parse_args(TCCState *s, int *pargc, char ***pargv, int optind) · 1722 unmodified lines | ||
| 1723 | 1723 | int tool = 0, arg_start = 0, noaction = optind; |
| 1724 | 1724 | char **argv = *pargv; |
| 1725 | 1725 | int argc = *pargc; |
| 1726 | + int help = 0; /* remember if -h/--help has been seen */ | |
| 1726 | 1727 | |
| 1727 | 1728 | cstr_new(&linker_arg); |
| 1728 | 1729 | |
| @@ -1773,12 +1774,13 @@ reparse: · 44 unmodified lines | ||
| 1773 | 1774 | |
| 1774 | 1775 | switch(popt->index) { |
| 1775 | 1776 | case TCC_OPTION_HELP: |
| 1776 | − if (s->verbose > 0) | |
| 1777 | − return OPT_VERBOSE_HELP; | |
| 1778 | − else | |
| 1779 | − return OPT_HELP; | |
| 1777 | + /* help is requested, postpone return to check for -v */ | |
| 1778 | + help = OPT_HELP; | |
| 1779 | + break; | |
| 1780 | 1780 | case TCC_OPTION_HELP2: |
| 1781 | − return OPT_HELP2; | |
| 1781 | + /* help is requested, postpone return to check for -v */ | |
| 1782 | + help = OPT_HELP2; | |
| 1783 | + break; | |
| 1782 | 1784 | case TCC_OPTION_I: |
| 1783 | 1785 | tcc_add_include_path(s, optarg); |
| 1784 | 1786 | break; |
| @@ -2064,6 +2066,14 @@ unsupported_option: · 279 unmodified lines | ||
| 2064 | 2066 | break; |
| 2065 | 2067 | } |
| 2066 | 2068 | } |
| 2069 | + | |
| 2070 | + if (help) { | |
| 2071 | + if (s->verbose > 0) | |
| 2072 | + return OPT_VERBOSE_HELP; | |
| 2073 | + else | |
| 2074 | + return help; | |
| 2075 | + } | |
| 2076 | + | |
| 2067 | 2077 | if (last_o > 0) |
| 2068 | 2078 | tcc_define_symbol(s, "__OPTIMIZE__", NULL); |
| 2069 | 2079 | if (linker_arg.size) { |
| @@ -273,7 +273,7 @@ redo: · 272 unmodified lines | ||
| 273 | 273 | return 0; |
| 274 | 274 | } |
| 275 | 275 | if (opt == OPT_HELP2) { |
| 276 | − fputs(help, stdout); | |
| 276 | + fputs(help2, stdout); | |
| 277 | 277 | return 0; |
| 278 | 278 | } |
| 279 | 279 | if (opt == OPT_VERBOSE_HELP) { |