diff options
| author | dana <dana@dana.is> | 2025-05-13 22:11:59 -0500 |
|---|---|---|
| committer | dana <dana@dana.is> | 2025-05-13 22:14:09 -0500 |
| commit | a2f390701ad0fe2253c721356138ec21b7120362 (patch) | |
| tree | c36e6593874965d24be45c6c9b13520384022cc4 | |
| parent | 53602: "typeset -nu" always refers to at a call level above the declaration (diff) | |
| download | zsh-a2f390701ad0fe2253c721356138ec21b7120362.tar zsh-a2f390701ad0fe2253c721356138ec21b7120362.tar.gz zsh-a2f390701ad0fe2253c721356138ec21b7120362.tar.bz2 zsh-a2f390701ad0fe2253c721356138ec21b7120362.tar.lz zsh-a2f390701ad0fe2253c721356138ec21b7120362.tar.xz zsh-a2f390701ad0fe2253c721356138ec21b7120362.tar.zst zsh-a2f390701ad0fe2253c721356138ec21b7120362.zip | |
53588: zsystem flock: handle optargs in the same word
with small tweak to test, just in case
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | Src/Modules/system.c | 6 | ||||
| -rw-r--r-- | Test/V14system.ztst | 10 |
3 files changed, 18 insertions, 3 deletions
@@ -1,3 +1,8 @@ +2025-05-13 dana@dana.is <dana@dana.is> + + * 53588 (tweaked): Src/Modules/system.c, Test/V14system.ztst: + make `zsystem flock` handle optargs in the same word + 2025-05-12 Bart Schaefer <schaefer@zsh.org> * 53602: Doc/Zsh/func.yo, Src/params.c, Test/K01nameref.ztst: diff --git a/Src/Modules/system.c b/Src/Modules/system.c index 929a8b002..f1c0d7042 100644 --- a/Src/Modules/system.c +++ b/Src/Modules/system.c @@ -572,7 +572,7 @@ bin_zsystem_flock(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) /* variable for fd */ if (optptr[1]) { fdvar = optptr + 1; - optptr += strlen(fdvar) - 1; + optptr += strlen(fdvar); } else if (*args) { fdvar = *args++; } @@ -592,7 +592,7 @@ bin_zsystem_flock(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) /* timeout in seconds */ if (optptr[1]) { optarg = optptr + 1; - optptr += strlen(optarg) - 1; + optptr += strlen(optarg); } else if (!*args) { zwarnnam(nam, "flock: option %c requires a numeric timeout", opt); @@ -622,7 +622,7 @@ bin_zsystem_flock(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) /* retry interval in seconds */ if (optptr[1]) { optarg = optptr + 1; - optptr += strlen(optarg) - 1; + optptr += strlen(optarg); } else if (!*args) { zwarnnam(nam, "flock: option %c requires " diff --git a/Test/V14system.ztst b/Test/V14system.ztst index 81253324f..bcabe4082 100644 --- a/Test/V14system.ztst +++ b/Test/V14system.ztst @@ -148,6 +148,16 @@ F:This timing test might fail due to process scheduling issues unrelated to zsh. ?elapsed time seems OK F:This timing test might fail due to process scheduling issues unrelated to zsh. + ( + zsystem flock -t 0.1 -i 0.1 -f XYZ $tst_dir/file + echo $XYZ + zsystem flock -t0.1 -i0.1 -fZYX $tst_dir/file + echo $ZYX + ) +0:regression: zsystem flock optarg parsing +*><-> +*><-> + unset chars REPLY print -n a few words | sysread -i 0 -c chars ret=$? |
