From 5dc518a6834081ba4ad44a0f38294763350d088f Mon Sep 17 00:00:00 2001 From: samr7 Date: Thu, 26 Jul 2012 00:19:27 -0700 Subject: [PATCH] Fix case-insensitive search for O, I, and l characters. --- pattern.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pattern.c b/pattern.c index 3bc1a8f..920dd69 100644 --- a/pattern.c +++ b/pattern.c @@ -1511,9 +1511,9 @@ static const unsigned char b58_case_map[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 105, 1, 1, 0, 1, 1, 111, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 76, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, }; @@ -1531,6 +1531,10 @@ prefix_case_iter_init(prefix_case_iter_t *cip, const char *pfx) cip->ci_prefix[i] = pfx[i]; continue; } + if (b58_case_map[(int)pfx[i]] > 1) { + cip->ci_prefix[i] = b58_case_map[(int)pfx[i]]; + continue; + } cip->ci_prefix[i] = pfx[i] | 0x20; cip->ci_case_map[(int)cip->ci_nbits] = i; cip->ci_nbits++;