diff options
| author | rajdakin <rajdakin@gmail.com> | 2024-09-07 15:20:17 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-07 15:20:17 +0200 |
| commit | f0d7582845e124ed61b86f43da30a7b3f3f0c3f5 (patch) | |
| tree | 2ee0c53821805b33ca47e0919fea95ccb920cd52 /wrapperhelper/src/lang.c | |
| parent | 75bdb328284b8e5b6827eeb7d5cedef26222e7db (diff) | |
| download | box64-f0d7582845e124ed61b86f43da30a7b3f3f0c3f5.tar.gz box64-f0d7582845e124ed61b86f43da30a7b3f3f0c3f5.zip | |
Upgraded the wrapper helper (#1803)
* [WRAPPERHELPER] Fixed unsigned comparison in macros, added macro expanding in include commands, added -I option * [WRAPPERHELPER] Forgot the README
Diffstat (limited to 'wrapperhelper/src/lang.c')
| -rw-r--r-- | wrapperhelper/src/lang.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/wrapperhelper/src/lang.c b/wrapperhelper/src/lang.c index 9ca51b15..1c4cba6c 100644 --- a/wrapperhelper/src/lang.c +++ b/wrapperhelper/src/lang.c @@ -15,6 +15,41 @@ #define DISP_ADDR_ARG(v) v, #endif +preproc_token_t preproc_token_dup(preproc_token_t tok) { + preproc_token_t ret; + ret.tokt = tok.tokt; + switch (tok.tokt) { + case PPTOK_IDENT: + case PPTOK_IDENT_UNEXP: + case PPTOK_NUM: + ret.tokv.str = string_dup(tok.tokv.str); + if (!ret.tokv.str) { + ret.tokt = PPTOK_INVALID; + ret.tokv.c = '\0'; + } + break; + case PPTOK_STRING: + case PPTOK_INCL: + ret.tokv.sisstr = tok.tokv.sisstr; + ret.tokv.sstr = string_dup(tok.tokv.sstr); + if (!ret.tokv.sstr) { + ret.tokt = PPTOK_INVALID; + ret.tokv.c = '\0'; + } + string_del(tok.tokv.sstr); + break; + case PPTOK_INVALID: + case PPTOK_SYM: + case PPTOK_NEWLINE: + case PPTOK_BLANK: + case PPTOK_START_LINE_COMMENT: + case PPTOK_EOF: + ret.tokv.c = tok.tokv.c; + break; + } + return ret; +} + void preproc_token_del(preproc_token_t *tok) { switch (tok->tokt) { case PPTOK_IDENT: |