From 6ab9ea91fb04390bf9c50134beadab7cf6fd0c25 Mon Sep 17 00:00:00 2001 From: Karl Williamson Date: Mon, 6 Dec 2010 08:35:17 -0700 Subject: [PATCH] regcomp.c: Add locale for \d The DIGITL and NDIGITL regnodes were not being generated; instead regular DIGIT and NDIGIT regnodes were even under locale. This means no one has probably ever used Perl on a locale that changed the digits. --- regcomp.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/regcomp.c b/regcomp.c index 6f3bfe8..4fb8c37 100644 --- a/regcomp.c +++ b/regcomp.c @@ -7445,11 +7445,19 @@ tryagain: *flagp |= HASWIDTH|SIMPLE; goto finish_meta_pat; case 'd': - ret = reg_node(pRExC_state, DIGIT); + if (LOC) { + ret = reg_node(pRExC_state, (U8)(DIGITL)); + } else { + ret = reg_node(pRExC_state, (U8)(DIGIT)); + } *flagp |= HASWIDTH|SIMPLE; goto finish_meta_pat; case 'D': - ret = reg_node(pRExC_state, NDIGIT); + if (LOC) { + ret = reg_node(pRExC_state, (U8)(NDIGITL)); + } else { + ret = reg_node(pRExC_state, (U8)(NDIGIT)); + } *flagp |= HASWIDTH|SIMPLE; goto finish_meta_pat; case 'R': -- 1.8.3.1