00001
00002
00003
00004
00005
00006
00007
00008
00009 #include <stdio.h>
00010 #include "util.h"
00011
00012
00013
00014
00015
00016 char *
00017 util_strsav(char const *s)
00018 {
00019 if(s == NIL(char)) {
00020 return NIL(char);
00021 }
00022 else {
00023 return strcpy(ALLOC(char, strlen(s)+1), s);
00024 }
00025 }
00026
00027
00028
00029
00030 char *
00031 util_inttostr(int i)
00032 {
00033 unsigned int mod, len;
00034 char *s;
00035
00036 if (i == 0)
00037 len = 1;
00038 else {
00039 if (i < 0) {
00040 len = 1;
00041 mod = -i;
00042 }
00043 else {
00044 len = 0;
00045 mod = i;
00046 }
00047 len += (unsigned) floor(log10(mod)) + 1;
00048 }
00049
00050 s = ALLOC(char, len + 1);
00051 sprintf(s, "%d", i);
00052
00053 return s;
00054 }
00055
00056
00057
00058
00059
00060
00061 char *
00062 util_strcat3(
00063 char const * str1,
00064 char const * str2,
00065 char const * str3)
00066 {
00067 char *str = ALLOC(char, strlen(str1) + strlen(str2) + strlen(str3) + 1);
00068
00069 (void) strcpy(str, str1);
00070 (void) strcat(str, str2);
00071 (void) strcat(str, str3);
00072
00073 return (str);
00074 }
00075
00076
00077
00078
00079
00080
00081 char *
00082 util_strcat4(
00083 char const * str1,
00084 char const * str2,
00085 char const * str3,
00086 char const * str4)
00087 {
00088 char *str = ALLOC(char, strlen(str1) + strlen(str2) + strlen(str3) +
00089 strlen(str4) + 1);
00090
00091 (void) strcpy(str, str1);
00092 (void) strcat(str, str2);
00093 (void) strcat(str, str3);
00094 (void) strcat(str, str4);
00095
00096 return (str);
00097 }
00098
00099
00100 #if !HAVE_STRSTR
00101
00112 char *
00113 strstr(
00114 char const * s,
00115 char const * pat)
00116 {
00117 int len;
00118
00119 len = strlen(pat);
00120 for (; *s != '\0'; ++s)
00121 if (*s == *pat && memcmp(s, pat, len) == 0) {
00122 return (char *)s;
00123 }
00124 return NULL;
00125 }
00126 #endif
00127
00128 #if !HAVE_STRCHR
00129
00140 char *
00141 strchr(char const * s, int c)
00142 {
00143 for (; *s != '\0'; s++) {
00144 if (*s == c) {
00145 return (char *)s;
00146 }
00147 }
00148 return NULL;
00149
00150 }
00151 #endif