From 66dae5a4d72765c80d5cd97f5f16a4d095d79f2f Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 4 Jan 2016 20:33:14 -0800 Subject: Revert chr-isdigit/isxdigit, provide new functions. It was a mistake to change the semantics of the return value of chr-isdigit and chr-isdigit. It breaks code like [partition-by chr-isdigit ...]. The behavior of chr-isdigit and chr-isxdigit is restored to returning t and nil. New chr-digit and chr-xdigit functions are introduced for returning the digit value or nil. * eval.c (eval_init): Register chr-digit and chr-xdigit intrinsics. * lib.c (chr_isdigit, chr_isxdigit): Restore old behavior. (chr_digit, chr_xdigit): New functions. * lib.h (chr_digit, chr_xdigit): Declared. * txr.1: Everything documented. --- eval.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 438d8476..cbc5e89b 100644 --- a/eval.c +++ b/eval.c @@ -5024,6 +5024,7 @@ void eval_init(void) reg_fun(intern(lit("chr-isascii"), user_package), func_n1(chr_isascii)); reg_fun(intern(lit("chr-iscntrl"), user_package), func_n1(chr_iscntrl)); reg_fun(intern(lit("chr-isdigit"), user_package), func_n1(chr_isdigit)); + reg_fun(intern(lit("chr-digit"), user_package), func_n1(chr_digit)); reg_fun(intern(lit("chr-isgraph"), user_package), func_n1(chr_isgraph)); reg_fun(intern(lit("chr-islower"), user_package), func_n1(chr_islower)); reg_fun(intern(lit("chr-isprint"), user_package), func_n1(chr_isprint)); @@ -5033,6 +5034,7 @@ void eval_init(void) reg_fun(intern(lit("chr-isunisp"), user_package), func_n1(chr_isunisp)); reg_fun(intern(lit("chr-isupper"), user_package), func_n1(chr_isupper)); reg_fun(intern(lit("chr-isxdigit"), user_package), func_n1(chr_isxdigit)); + reg_fun(intern(lit("chr-xdigit"), user_package), func_n1(chr_xdigit)); reg_fun(intern(lit("chr-toupper"), user_package), func_n1(chr_toupper)); reg_fun(intern(lit("chr-tolower"), user_package), func_n1(chr_tolower)); { -- cgit v1.2.3