From 91a04c7638bbfbe8abb59d17b2c6b8aeb7b04a05 Mon Sep 17 00:00:00 2001 From: Konrad Borowski Date: Wed, 17 Jul 2013 15:24:23 +0200 Subject: [PATCH] printf '\0' now works. Fixes #908. --- builtin_printf.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/builtin_printf.cpp b/builtin_printf.cpp index e164f8193..a382da067 100644 --- a/builtin_printf.cpp +++ b/builtin_printf.cpp @@ -358,7 +358,7 @@ long builtin_printf_state_t::print_esc(const wchar_t *escstart, bool octal_0) esc_value = esc_value * 16 + hex_to_bin(*p); if (esc_length == 0) this->fatal_error(_(L"missing hexadecimal number in escape")); - this->append_format_output(L"%lc", esc_value); + this->append_output(esc_value); } else if (is_octal_digit(*p)) { @@ -367,7 +367,7 @@ long builtin_printf_state_t::print_esc(const wchar_t *escstart, bool octal_0) extension to POSIX that is compatible with Bash 2.05b. */ for (esc_length = 0, p += octal_0 && *p == L'0'; esc_length < 3 && is_octal_digit(*p); ++esc_length, ++p) esc_value = esc_value * 8 + octal_to_bin(*p); - this->append_format_output(L"%c", esc_value); + this->append_output(esc_value); } else if (*p && wcschr(L"\"\\abcfnrtv", *p)) print_esc_char(*p++);