diff options
| author | Cloud Wu <cloudwu@gmail.com> | 2025-10-16 20:47:21 +0800 |
|---|---|---|
| committer | Cloud Wu <cloudwu@gmail.com> | 2025-10-17 07:57:15 +0800 |
| commit | 02a55ae28f602218f6920905912f928f4b3b0bdd (patch) | |
| tree | dd8b5ac02ebf2e7e7508d83c934fe40ce6cfa592 | |
| parent | 8c06b5e266f415c1c48b2e668c03df691950c015 (diff) | |
Restore raw key if value is empty, See #1353
| -rw-r--r-- | sokol_args.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sokol_args.h b/sokol_args.h index e39b6f29..78536e06 100644 --- a/sokol_args.h +++ b/sokol_args.h @@ -671,7 +671,18 @@ _SOKOL_PRIVATE bool _sargs_parse_cargs(int argc, const char** argv) { _sargs_expect_key(); bool retval = true; for (int i = 1; i < argc; i++) { + int last_pos = _sargs.buf_pos; retval &= _sargs_parse_carg(argv[i]); + if (*_sargs_str(_sargs.args[i-1].val) == '\0') { + /* no value, copy key string */ + const char* ptr = argv[i]; + char c; + _sargs.buf_pos = last_pos; + while (0 != (c = *ptr++)) { + _sargs_putc(c); + } + _sargs_putc(0); + } } _sargs.parse_state = 0; return retval; |