[PATCH] time-fmt-escapes

2015-03-17 Thread isabella parakiss
>From 2157400e3de983c358b580bb8cd22b337cd87eae Mon Sep 17 00:00:00 2001
From: izabera 
Date: Tue, 17 Mar 2015 20:30:11 +0100
Subject: [PATCH] time-fmt-escapes

---
 builtins/printf.def | 17 -
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/builtins/printf.def b/builtins/printf.def
index 9b9d390..cc87aae 100644
--- a/builtins/printf.def
+++ b/builtins/printf.def
@@ -450,7 +450,22 @@ printf_builtin (list)
fmt++;  /* skip over left paren */
for (t = timefmt, n = 1; *fmt; )
  {
-   if (*fmt == '(')
+   /* Allow backslash escapes in time formats */
+   if (*fmt == '\\')
+ {
+ fmt++;
+#if defined (HANDLE_MULTIBYTE)
+ memset (mbch, '\0', sizeof (mbch));
+ fmt += tescape (fmt, mbch, &mblen, (int *)NULL);
+ for (mbind = 0; mbind < mblen; mbind++)
+   *t++ = mbch[mbind];
+#else
+ fmt += tescape (fmt, &nextch, (int *)NULL, (int *)NULL);
+ *t++ = nextch;
+#endif
+ continue;
+ }
+   else if (*fmt == '(')
  n++;
else if (*fmt == ')')
  n--;
-- 
2.3.3




Currently it's not possible to print mismatched ( ) in printf "%(format)T".
This patch allows one to use octal and hex escapes.

$ printf "%(It's %H:%M here :\x29 and today is %A :\x29)T\n" -1
It's 20:53 here :) and today is Tuesday :)

I hope it's ok.


---
xoxo iza



Re: [PATCH] time-fmt-escapes

2015-03-17 Thread isabella parakiss
The mail destroyed my tabs :(
Patch attached, this time...


---
xoxo iza


0001-time-fmt-escapes.patch
Description: Binary data