From 653facd0d5c1a4f7eae43eefbf8148f57e28e606 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sat, 25 Aug 2012 22:46:22 +0200 Subject: [PATCH] Add support for '%a' and '%A' to string.format. --- src/lib_string.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib_string.c b/src/lib_string.c index 3dac9d37..89ec4f25 100644 --- a/src/lib_string.c +++ b/src/lib_string.c @@ -780,20 +780,20 @@ LJLIB_CF(string_format) addintlen(form); sprintf(buff, form, num2uintfrm(L, arg)); break; - case 'e': case 'E': case 'f': case 'g': case 'G': { + case 'e': case 'E': case 'f': case 'g': case 'G': case 'a': case 'A': { TValue tv; tv.n = lj_lib_checknum(L, arg); if (LJ_UNLIKELY((tv.u32.hi << 1) >= 0xffe00000)) { /* Canonicalize output of non-finite values. */ char *p, nbuf[LJ_STR_NUMBUF]; size_t len = lj_str_bufnum(nbuf, &tv); - if (strfrmt[-1] == 'E' || strfrmt[-1] == 'G') { + if (strfrmt[-1] < 'a') { nbuf[len-3] = nbuf[len-3] - 0x20; nbuf[len-2] = nbuf[len-2] - 0x20; nbuf[len-1] = nbuf[len-1] - 0x20; } nbuf[len] = '\0'; - for (p = form; *p < 'e' && *p != '.'; p++) ; + for (p = form; *p < 'A' && *p != '.'; p++) ; *p++ = 's'; *p = '\0'; sprintf(buff, form, nbuf); break; -- 2.11.4.GIT