diff options
Diffstat (limited to 'strings')
-rw-r--r-- | strings/ctype-bin.c | 5 | ||||
-rw-r--r-- | strings/ctype-latin1.c | 5 | ||||
-rw-r--r-- | strings/ctype-mb.c | 5 | ||||
-rw-r--r-- | strings/ctype-simple.c | 10 |
4 files changed, 8 insertions, 17 deletions
diff --git a/strings/ctype-bin.c b/strings/ctype-bin.c index 95d97af2bfb..3b6a977e47c 100644 --- a/strings/ctype-bin.c +++ b/strings/ctype-bin.c @@ -278,14 +278,11 @@ void my_hash_sort_8bit_bin(CHARSET_INFO *cs __attribute__((unused)), { const uchar *pos = key; - key+= len; - /* Remove trailing spaces. We have to do this to be able to compare 'A ' and 'A' as identical */ - while (key > pos && key[-1] == ' ') - key--; + key= skip_trailing_space(key, len); for (; pos < (uchar*) key ; pos++) { diff --git a/strings/ctype-latin1.c b/strings/ctype-latin1.c index e5333c4101b..dbd91c09637 100644 --- a/strings/ctype-latin1.c +++ b/strings/ctype-latin1.c @@ -678,13 +678,12 @@ void my_hash_sort_latin1_de(CHARSET_INFO *cs __attribute__((unused)), const uchar *key, size_t len, ulong *nr1, ulong *nr2) { - const uchar *end= key+len; + const uchar *end; /* Remove end space. We have to do this to be able to compare 'AE' and 'Ä' as identical */ - while (end > key && end[-1] == ' ') - end--; + end= skip_trailing_space(key, len); for (; key < end ; key++) { diff --git a/strings/ctype-mb.c b/strings/ctype-mb.c index 903811e2ab9..b0f7c297260 100644 --- a/strings/ctype-mb.c +++ b/strings/ctype-mb.c @@ -469,14 +469,11 @@ static void my_hash_sort_mb_bin(CHARSET_INFO *cs __attribute__((unused)), { const uchar *pos = key; - key+= len; - /* Remove trailing spaces. We have to do this to be able to compare 'A ' and 'A' as identical */ - while (key > pos && key[-1] == ' ') - key--; + key= skip_trailing_space(key, len); for (; pos < (uchar*) key ; pos++) { diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c index 4f3aaa6f668..6ff8c83dcf7 100644 --- a/strings/ctype-simple.c +++ b/strings/ctype-simple.c @@ -304,14 +304,13 @@ void my_hash_sort_simple(CHARSET_INFO *cs, ulong *nr1, ulong *nr2) { register uchar *sort_order=cs->sort_order; - const uchar *end= key + len; + const uchar *end; /* Remove end space. We have to do this to be able to compare 'A ' and 'A' as identical */ - while (end > key && end[-1] == ' ') - end--; + end= skip_trailing_space(key, len); for (; key < (uchar*) end ; key++) { @@ -1165,9 +1164,8 @@ size_t my_well_formed_len_8bit(CHARSET_INFO *cs __attribute__((unused)), size_t my_lengthsp_8bit(CHARSET_INFO *cs __attribute__((unused)), const char *ptr, size_t length) { - const char *end= ptr+length; - while (end > ptr && end[-1] == ' ') - end--; + const char *end; + end= (const char *) skip_trailing_space((const uchar *)ptr, length); return (size_t) (end-ptr); } |