aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCloud Wu <cloudwu@gmail.com>2025-10-16 20:47:21 +0800
committerCloud Wu <cloudwu@gmail.com>2025-10-17 07:57:15 +0800
commit02a55ae28f602218f6920905912f928f4b3b0bdd (patch)
treedd8b5ac02ebf2e7e7508d83c934fe40ce6cfa592
parent8c06b5e266f415c1c48b2e668c03df691950c015 (diff)
Restore raw key if value is empty, See #1353
-rw-r--r--sokol_args.h11
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;