00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include <config.h>
00017
00018 #include <drizzled/internal/my_sys.h>
00019 #include <drizzled/internal/m_string.h>
00020
00021 namespace drizzled
00022 {
00023 namespace internal
00024 {
00025
00039 bool array_append_string_unique(const char *str,
00040 const char **array, size_t size)
00041 {
00042 const char **p;
00043
00044 const char **end= array + size - 1;
00045 assert(*end == NULL);
00046
00047 for (p= array; *p; ++p)
00048 {
00049 if (strcmp(*p, str) == 0)
00050 break;
00051 }
00052 if (p >= end)
00053 return true;
00054
00055 assert(*p == NULL || strcmp(*p, str) == 0);
00056
00057 while (*(p + 1))
00058 {
00059 *p= *(p + 1);
00060 ++p;
00061 }
00062
00063 assert(p < end);
00064 *p= str;
00065
00066 return false;
00067 }
00068
00069 }
00070 }