summaryrefslogtreecommitdiff
blob: a6b3c8d756a30863d1d26b5baa18716a4f1f8712 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <string.h>

#include "char.h"

/* See: "char.c" */
ZoO_char ZoO_char_to_lowercase (const ZoO_char c)
{
   if ((c >= 'A') && (c <= 'Z'))
   {
      return 'z' - ('Z' - c);
   }

   return c;
}

/* See: "char.c" */
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 size_t word_b_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);
   }
}