Changeset 775 for trunk/src/gmake/kmkbuiltin/mscfakes.c
- Timestamp:
- Jan 19, 2007, 6:57:42 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gmake/kmkbuiltin/mscfakes.c
r370 r775 37 37 38 38 char *dirname(char *path) 39 { 39 { 40 40 /** @todo later */ 41 41 return path; … … 127 127 return cch; 128 128 } 129 #endif 129 #endif 130 130 131 131 … … 151 151 } 152 152 153 154 intmax_t strtoimax(const char *nptr, char **endptr, int base) 155 { 156 return strtol(nptr, endptr, base); /** @todo fix this. */ 157 } 158 159 160 uintmax_t strtoumax(const char *nptr, char **endptr, int base) 161 { 162 return strtoul(nptr, endptr, base); /** @todo fix this. */ 163 } 164 165 166 int asprintf(char **strp, const char *fmt, ...) 167 { 168 int rc; 169 va_list va; 170 va_start(va, fmt); 171 rc = vasprintf(strp, fmt, va); 172 va_end(va); 173 return rc; 174 } 175 176 177 int vasprintf(char **strp, const char *fmt, va_list va) 178 { 179 int rc; 180 char *psz; 181 size_t cb = 1024; 182 183 *strp = NULL; 184 for (;;) 185 { 186 va_list va2; 187 188 psz = malloc(cb); 189 if (!psz) 190 return -1; 191 192 #ifdef va_copy 193 va_copy(va2, va); 194 rc = snprintf(psz, cb, fmt, va2); 195 va_end(vaCopy); 196 #else 197 va2 = va; 198 rc = snprintf(psz, cb, fmt, va2); 199 #endif 200 if (rc < 0 || (size_t)rc < cb) 201 break; 202 cb *= 2; 203 free(psz); 204 } 205 206 *strp = psz; 207 return rc; 208 } 209
Note:
See TracChangeset
for help on using the changeset viewer.