From cc9012f7c74cf3452cdb1b6cde3cf6455e889cd3 Mon Sep 17 00:00:00 2001 From: pinskia Date: Fri, 4 Nov 2005 00:23:01 +0000 Subject: 2005-11-03 Andrew Pinski PR preprocessor/22042 * macro.c (_cpp_builtin_macro_text): Lower the needed max buffer size. (cpp_quote_string): Don't octalify non printable charactors. 2005-11-03 Andrew Pinski PR preprocessor/22042 * gcc.dg/cpp/strify4.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106463 138bc75d-0d04-0410-961f-82ee72b054a4 --- libcpp/macro.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) (limited to 'libcpp/macro.c') diff --git a/libcpp/macro.c b/libcpp/macro.c index 13f5c768090..a0aa93ea994 100644 --- a/libcpp/macro.c +++ b/libcpp/macro.c @@ -139,7 +139,7 @@ _cpp_builtin_macro_text (cpp_reader *pfile, cpp_hashnode *node) name = map->to_file; len = strlen (name); - buf = _cpp_unaligned_alloc (pfile, len * 4 + 3); + buf = _cpp_unaligned_alloc (pfile, len * 2 + 3); result = buf; *buf = '"'; buf = cpp_quote_string (buf + 1, (const unsigned char *) name, len); @@ -292,9 +292,8 @@ builtin_macro (cpp_reader *pfile, cpp_hashnode *node) } /* Copies SRC, of length LEN, to DEST, adding backslashes before all - backslashes and double quotes. Non-printable characters are - converted to octal. DEST must be of sufficient size. Returns - a pointer to the end of the string. */ + backslashes and double quotes. DEST must be of sufficient size. + Returns a pointer to the end of the string. */ uchar * cpp_quote_string (uchar *dest, const uchar *src, unsigned int len) { @@ -308,15 +307,7 @@ cpp_quote_string (uchar *dest, const uchar *src, unsigned int len) *dest++ = c; } else - { - if (ISPRINT (c)) - *dest++ = c; - else - { - sprintf ((char *) dest, "\\%03o", c); - dest += 4; - } - } + *dest++ = c; } return dest; -- cgit v1.2.1