| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/core/char.c')
| -rw-r--r-- | src/core/char.c | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/core/char.c b/src/core/char.c index 819cd57..a6b3c8d 100644 --- a/src/core/char.c +++ b/src/core/char.c @@ -18,9 +18,30 @@ int ZoO_word_cmp ( const ZoO_char word_a [const static 1], const size_t word_a_size, - const ZoO_char word_b [const static 1] + const ZoO_char word_b [const static 1], + const size_t word_b_size ) { - return strncmp((const char *) word_a, (const char *) word_b, word_a_size); + int result; + size_t min_size; + + if (word_a_size < word_b_size) + { + result = + strncmp((const char *) word_a, (const char *) word_b, word_a_size); + + return (result == 0) ? -1 : result; + } + else if (word_b_size < word_a_size) + { + result = + strncmp((const char *) word_a, (const char *) word_b, word_b_size); + + return (result == 0) ? 1 : result; + } + else + { + return strncmp((const char *) word_a, (const char *) word_b, word_a_size); + } } |


