Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

[PATCH 2/2] zformat: Allow the specifying minimum width and a dot with an empty maximum width.



Before this commit, format specs such as '%5.s' would be printed
literally.  Now, they are treated as equivalent to '%5s'.

The '.' character is not allowed to be used in specs, so there is no
incompatibility.
---

I'm thinking of pushing 45131 and this to a new "5.9" branch in git,
and merge that branch to master after 5.8 when we're happy there won't
be a 5.8.1.  This way, 5.8 won't be destabilized but the patches will
live in git, rather than in the list archives.

Cheers,

Daniel


 Src/Modules/zutil.c  | 3 +--
 Test/V13zformat.ztst | 2 ++
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/Src/Modules/zutil.c b/Src/Modules/zutil.c
index de5fe8034..7d9bf05d6 100644
--- a/Src/Modules/zutil.c
+++ b/Src/Modules/zutil.c
@@ -797,8 +797,7 @@ static char *zformat_substring(char* instr, char **specs, char **outp,
 	    if ((*s == '.' || testit) && idigit(s[1])) {
 		for (max = 0, s++; idigit(*s); s++)
 		    max = (max * 10) + (int) STOUC(*s) - '0';
-	    }
-	    else if (testit)
+	    } else if (*s == '.' || testit)
 		s++;
 
 	    if (testit && STOUC(*s)) {
diff --git a/Test/V13zformat.ztst b/Test/V13zformat.ztst
index d8de2bb04..982866e13 100644
--- a/Test/V13zformat.ztst
+++ b/Test/V13zformat.ztst
@@ -17,12 +17,14 @@
  zformat_and_print_s '%s'   foo
  zformat_and_print_s '%5s'  min
  zformat_and_print_s '%-5s' neg
+ zformat_and_print_s '%5.s' empty
  zformat_and_print_s '%.5s' max
  zformat_and_print_s '%.5s' truncated
 0:basic zformat test
 >'foo'
 >'min  '
 >'  neg'
+>'empty'
 >'max'
 >'trunc'
 



Messages sorted by: Reverse Date, Date, Thread, Author