From 0a532a8f7fc5144aa8d92bda5b0d5d3acf38cc0c Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Sat, 10 Feb 2007 22:12:58 +0000 Subject: fix metafication of ${(#)x} --- Src/subst.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'Src/subst.c') diff --git a/Src/subst.c b/Src/subst.c index be7b5321c..acd121e78 100644 --- a/Src/subst.c +++ b/Src/subst.c @@ -1193,21 +1193,25 @@ static char * substevalchar(char *ptr) { zlong ires = mathevali(ptr); + int len; if (errflag) return NULL; +#ifdef MULTIBYTE_SUPPORT if (isset(MULTIBYTE) && ires > 127) { char buf[10]; - int dummy; /* inefficient: should separate out \U handling from getkeystring */ sprintf(buf, "\\U%.8x", (unsigned int)ires); - return getkeystring(buf, &dummy, GETKEYS_BINDKEY, NULL); - } else { + ptr = getkeystring(buf, &len, GETKEYS_BINDKEY, NULL); + } else +#endif + { ptr = zhalloc(2); + len = 1; sprintf(ptr, "%c", (int)ires); - return ptr; } + return metafy(ptr, len, META_USEHEAP); } /* parameter substitution */ -- cgit 1.4.1