From cadd1a81dc026ea95e6e4dfc49d9f82f22c71aa8 Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Thu, 13 Aug 2020 04:48:44 +0100 Subject: [PATCH] printf %#H: tweak writing unreserved chars (re: 8477d2ce) src/cmd/ksh93/bltins/print.c: - If in UTF-8 locale, only bother to check for unreserved char if the character is ASCII (< 128), and write unreserved chars with a simple stakputc(). --- src/cmd/ksh93/bltins/print.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cmd/ksh93/bltins/print.c b/src/cmd/ksh93/bltins/print.c index 84b07325c..87658de2b 100644 --- a/src/cmd/ksh93/bltins/print.c +++ b/src/cmd/ksh93/bltins/print.c @@ -516,8 +516,8 @@ static char *fmthtml(const char *string, int flags) { if(c < 0) stakputs("%3F"); - else if(c <= 255 && strchr(URI_RFC3986_UNRESERVED, c)) - stakwrite(op, cp-op); + else if(c < 128 && strchr(URI_RFC3986_UNRESERVED, c)) + stakputc(c); else while(c = *(unsigned char*)op++, op <= cp) sfprintf(stkstd, "%%%02X", c);