00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #include <agnix/agnix.h>
00015
00016 #define STRINGS_MAX_LEN 4096
00017
00018 int strlen(char *buf)
00019 {
00020 int i;
00021
00022 if (buf[0] == 0)
00023 return 0;
00024
00025 for(i = 0; i < STRINGS_MAX_LEN; i++) {
00026 if (buf[i] == 0)
00027 return i;
00028 }
00029
00030 return -1;
00031 }
00032
00033 int strcmp(char *a, char *b)
00034 {
00035 int i;
00036
00037 for (i = 0; i < STRINGS_MAX_LEN; i++, a++, b++) {
00038 if (*a != *b)
00039 return -1;
00040
00041 if (*a == 0)
00042 return 0;
00043 }
00044
00045 return 0;
00046 }
00047
00048 int word_len(char *buf, int max_len)
00049 {
00050 int len;
00051
00052 for (len = 0; len < max_len; len++) {
00053 if ((buf[len] == ' ') || (buf[len] == '\n'))
00054 return len;
00055 }
00056
00057 return len;
00058 }
00059
00060 char *word_next(char *buf, int max_len)
00061 {
00062 int end;
00063 int len;
00064
00065 end = 0;
00066 for (len = 0; len < max_len; len++) {
00067 if (buf[len] == ' ') {
00068 end = 1;
00069 continue;
00070 }
00071
00072 if ((buf[len] == 0) || (buf[len] == '\n'))
00073 return NULL;
00074
00075 if ((buf[len] != ' ') && (end))
00076 return &buf[len];
00077 }
00078
00079 return NULL;
00080 }
00081
00082 int word_cmp(char *a, char *b, int max_len)
00083 {
00084 int len;
00085
00086 for (len = 0; len < max_len; len++, a++, b++) {
00087
00088 if (((*a == ' ') || (*a == '\n') || (*a == 0)) &&
00089 ((*b == ' ') || (*b == '\n') || (*b == 0)))
00090 return 0;
00091
00092 if (*a != *b)
00093 return -1;
00094 }
00095
00096 return -1;
00097 }