diff options
| author | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-10-08 12:49:22 +0000 |
|---|---|---|
| committer | vda <vda@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-10-08 12:49:22 +0000 |
| commit | 87d25a2b8535dc627a02eb539fa3946be2a24647 (patch) | |
| tree | fc4d14a910593d1235318bb36abe5e9f72d2039e /include | |
| parent | 81177b14907e73f11560f69e0b4ec34371f1a7d5 (diff) | |
| download | busybox-w32-87d25a2b8535dc627a02eb539fa3946be2a24647.tar.gz busybox-w32-87d25a2b8535dc627a02eb539fa3946be2a24647.tar.bz2 busybox-w32-87d25a2b8535dc627a02eb539fa3946be2a24647.zip | |
attempt to regularize atoi mess.
git-svn-id: svn://busybox.net/trunk/busybox@16342 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'include')
| -rw-r--r-- | include/libbb.h | 68 | ||||
| -rw-r--r-- | include/unarchive.h | 2 |
2 files changed, 46 insertions, 24 deletions
diff --git a/include/libbb.h b/include/libbb.h index 11e1e62d9..a7c770400 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
| @@ -267,46 +267,68 @@ extern void *xmalloc(size_t size); | |||
| 267 | extern void *xrealloc(void *old, size_t size); | 267 | extern void *xrealloc(void *old, size_t size); |
| 268 | extern void *xzalloc(size_t size); | 268 | extern void *xzalloc(size_t size); |
| 269 | 269 | ||
| 270 | extern char *xstrdup (const char *s); | 270 | extern char *xstrdup(const char *s); |
| 271 | extern char *xstrndup (const char *s, int n); | 271 | extern char *xstrndup(const char *s, int n); |
| 272 | extern char *safe_strncpy(char *dst, const char *src, size_t size); | 272 | extern char *safe_strncpy(char *dst, const char *src, size_t size); |
| 273 | extern int safe_strtoi(char *arg, int* value); | 273 | // FIXME: the prototype doesn't match libc strtoXX -> confusion |
| 274 | extern int safe_strtod(char *arg, double* value); | 274 | // FIXME: alot of unchecked strtoXXX are still in tree |
| 275 | extern int safe_strtol(char *arg, long* value); | 275 | // FIXME: atoi_or_else(str, N)? |
| 276 | extern int safe_strtoll(char *arg, long long* value); | 276 | extern int safe_strtoi(const char *arg, int* value); |
| 277 | extern int safe_strtoul(char *arg, unsigned long* value); | 277 | extern int safe_strtou(const char *arg, unsigned* value); |
| 278 | extern int safe_strtoull(char *arg, unsigned long long* value); | 278 | extern int safe_strtod(const char *arg, double* value); |
| 279 | extern int safe_strtol(const char *arg, long* value); | ||
| 280 | extern int safe_strtoll(const char *arg, long long* value); | ||
| 281 | extern int safe_strtoul(const char *arg, unsigned long* value); | ||
| 282 | extern int safe_strtoull(const char *arg, unsigned long long* value); | ||
| 283 | extern int safe_strtou32(const char *arg, uint32_t* value); | ||
| 279 | 284 | ||
| 280 | struct suffix_mult { | 285 | struct suffix_mult { |
| 281 | const char *suffix; | 286 | const char *suffix; |
| 282 | unsigned int mult; | 287 | unsigned int mult; |
| 283 | }; | 288 | }; |
| 284 | 289 | ||
| 285 | extern unsigned long bb_xgetularg_bnd_sfx(const char *arg, int base, | 290 | unsigned long xstrtoul_range_sfx(const char *numstr, int base, |
| 286 | unsigned long lower, | 291 | unsigned long lower, |
| 287 | unsigned long upper, | 292 | unsigned long upper, |
| 288 | const struct suffix_mult *suffixes); | 293 | const struct suffix_mult *suffixes); |
| 289 | extern unsigned long bb_xgetularg_bnd(const char *arg, int base, | 294 | unsigned long xstrtoul_range(const char *numstr, int base, |
| 290 | unsigned long lower, | 295 | unsigned long lower, |
| 291 | unsigned long upper); | 296 | unsigned long upper); |
| 292 | extern unsigned long bb_xgetularg10_bnd(const char *arg, | 297 | unsigned long xstrtoul(const char *numstr, int base); |
| 298 | unsigned long xatoul_range_sfx(const char *numstr, | ||
| 299 | unsigned long lower, | ||
| 300 | unsigned long upper, | ||
| 301 | const struct suffix_mult *suffixes); | ||
| 302 | unsigned long xatoul_sfx(const char *numstr, | ||
| 303 | const struct suffix_mult *suffixes); | ||
| 304 | unsigned long xatoul_range(const char *numstr, | ||
| 293 | unsigned long lower, | 305 | unsigned long lower, |
| 294 | unsigned long upper); | 306 | unsigned long upper); |
| 295 | extern unsigned long bb_xgetularg10(const char *arg); | 307 | unsigned long xatoul(const char *numstr); |
| 296 | 308 | unsigned long long xatoull(const char *numstr); | |
| 297 | extern long bb_xgetlarg(const char *arg, int base, | 309 | long xstrtol_range_sfx(const char *numstr, int base, |
| 298 | long lower, | ||
| 299 | long upper); | ||
| 300 | extern long bb_xgetlarg_bnd_sfx(const char *arg, int base, | ||
| 301 | long lower, | 310 | long lower, |
| 302 | long upper, | 311 | long upper, |
| 303 | const struct suffix_mult *suffixes); | 312 | const struct suffix_mult *suffixes); |
| 304 | extern long bb_xgetlarg10_sfx(const char *arg, const struct suffix_mult *suffixes); | 313 | long xstrtol_range(const char *numstr, int base, long lower, long upper); |
| 305 | 314 | long xatol_range_sfx(const char *numstr, | |
| 306 | 315 | long lower, | |
| 307 | extern unsigned long bb_xparse_number(const char *numstr, | 316 | long upper, |
| 308 | const struct suffix_mult *suffixes); | 317 | const struct suffix_mult *suffixes); |
| 309 | 318 | long xatol_range(const char *numstr, long lower, long upper); | |
| 319 | long xatol_sfx(const char *numstr, const struct suffix_mult *suffixes); | ||
| 320 | long xatol(const char *numstr); | ||
| 321 | /* Specialized: */ | ||
| 322 | unsigned xatou(const char *numstr); | ||
| 323 | int xatoi(const char *numstr); | ||
| 324 | /* Using xatoi() instead of naive atoi() is not always convenient - | ||
| 325 | * in many places people want *non-negative* values, but store them | ||
| 326 | * in signed int. Therefore we need this one: | ||
| 327 | * dies if input is not in [0, INT_MAX] range. Also will reject '-0' etc */ | ||
| 328 | int xatoi_u(const char *numstr); | ||
| 329 | uint32_t xatou32(const char *numstr); | ||
| 330 | /* Useful for reading port numbers */ | ||
| 331 | uint16_t xatou16(const char *numstr); | ||
| 310 | 332 | ||
| 311 | /* These parse entries in /etc/passwd and /etc/group. This is desirable | 333 | /* These parse entries in /etc/passwd and /etc/group. This is desirable |
| 312 | * for BusyBox since we want to avoid using the glibc NSS stuff, which | 334 | * for BusyBox since we want to avoid using the glibc NSS stuff, which |
| @@ -329,7 +351,7 @@ extern int device_open(const char *device, int mode); | |||
| 329 | 351 | ||
| 330 | extern char *query_loop(const char *device); | 352 | extern char *query_loop(const char *device); |
| 331 | extern int del_loop(const char *device); | 353 | extern int del_loop(const char *device); |
| 332 | extern int set_loop(char **device, const char *file, int offset); | 354 | extern int set_loop(char **device, const char *file, unsigned long long offset); |
| 333 | 355 | ||
| 334 | #if (__GLIBC__ < 2) | 356 | #if (__GLIBC__ < 2) |
| 335 | extern int vdprintf(int d, const char *format, va_list ap); | 357 | extern int vdprintf(int d, const char *format, va_list ap); |
diff --git a/include/unarchive.h b/include/unarchive.h index 82a70aed6..7de6a63fe 100644 --- a/include/unarchive.h +++ b/include/unarchive.h | |||
| @@ -92,7 +92,7 @@ extern char get_header_tar_lzma(archive_handle_t *archive_handle); | |||
| 92 | extern char get_header_tar_gz(archive_handle_t *archive_handle); | 92 | extern char get_header_tar_gz(archive_handle_t *archive_handle); |
| 93 | 93 | ||
| 94 | extern void seek_by_jump(const archive_handle_t *archive_handle, const unsigned int amount); | 94 | extern void seek_by_jump(const archive_handle_t *archive_handle, const unsigned int amount); |
| 95 | extern void seek_by_char(const archive_handle_t *archive_handle, const unsigned int amount); | 95 | extern void seek_by_read(const archive_handle_t *archive_handle, const unsigned int amount); |
| 96 | 96 | ||
| 97 | extern ssize_t archive_xread_all_eof(archive_handle_t *archive_handle, unsigned char *buf, size_t count); | 97 | extern ssize_t archive_xread_all_eof(archive_handle_t *archive_handle, unsigned char *buf, size_t count); |
| 98 | 98 | ||
