icompat.c - iomenu - interactive terminal-based selection menu Err bitreich.org 70 hgit clone git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu URL:git://bitreich.org/iomenu git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/iomenu bitreich.org 70 1Log /scm/iomenu/log.gph bitreich.org 70 1Files /scm/iomenu/files.gph bitreich.org 70 1Refs /scm/iomenu/refs.gph bitreich.org 70 1Tags /scm/iomenu/tag bitreich.org 70 1README /scm/iomenu/file/README.gph bitreich.org 70 1LICENSE /scm/iomenu/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 icompat.c (848B) Err bitreich.org 70 i--- Err bitreich.org 70 i 1 #include "compat.h" Err bitreich.org 70 i 2 #include Err bitreich.org 70 i 3 #include Err bitreich.org 70 i 4 #include Err bitreich.org 70 i 5 Err bitreich.org 70 i 6 char * Err bitreich.org 70 i 7 strcasestr(const char *str1, const char *str2) Err bitreich.org 70 i 8 { Err bitreich.org 70 i 9 const char *s1; Err bitreich.org 70 i 10 const char *s2; Err bitreich.org 70 i 11 Err bitreich.org 70 i 12 for (;;) { Err bitreich.org 70 i 13 s1 = str1; Err bitreich.org 70 i 14 s2 = str2; Err bitreich.org 70 i 15 while (*s1 != '\0' && tolower(*s1) == tolower(*s2)) Err bitreich.org 70 i 16 s1++, s2++; Err bitreich.org 70 i 17 if (*s2 == '\0') Err bitreich.org 70 i 18 return (char *) str1; Err bitreich.org 70 i 19 if (*s1 == '\0') Err bitreich.org 70 i 20 return NULL; Err bitreich.org 70 i 21 str1++; Err bitreich.org 70 i 22 } Err bitreich.org 70 i 23 Err bitreich.org 70 i 24 return NULL; Err bitreich.org 70 i 25 } Err bitreich.org 70 i 26 Err bitreich.org 70 i 27 size_t Err bitreich.org 70 i 28 strlcpy(char *buf, char const *str, size_t sz) Err bitreich.org 70 i 29 { Err bitreich.org 70 i 30 size_t len, cpy; Err bitreich.org 70 i 31 Err bitreich.org 70 i 32 len = strlen(str); Err bitreich.org 70 i 33 cpy = (len > sz) ? (sz) : (len); Err bitreich.org 70 i 34 memcpy(buf, str, cpy + 1); Err bitreich.org 70 i 35 buf[sz - 1] = '\0'; Err bitreich.org 70 i 36 return len; Err bitreich.org 70 i 37 } Err bitreich.org 70 i 38 Err bitreich.org 70 i 39 char * Err bitreich.org 70 i 40 strsep(char **str_p, char const *sep) Err bitreich.org 70 i 41 { Err bitreich.org 70 i 42 char *s, *prev; Err bitreich.org 70 i 43 Err bitreich.org 70 i 44 if (*str_p == NULL) Err bitreich.org 70 i 45 return NULL; Err bitreich.org 70 i 46 Err bitreich.org 70 i 47 for (s = prev = *str_p; strchr(sep, *s) == NULL; s++) Err bitreich.org 70 i 48 continue; Err bitreich.org 70 i 49 Err bitreich.org 70 i 50 if (*s == '\0') { Err bitreich.org 70 i 51 *str_p = NULL; Err bitreich.org 70 i 52 } else { Err bitreich.org 70 i 53 *s = '\0'; Err bitreich.org 70 i 54 *str_p = s + 1; Err bitreich.org 70 i 55 } Err bitreich.org 70 i 56 return prev; Err bitreich.org 70 i 57 } Err bitreich.org 70 .