diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2006-10-08 12:49:22 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2006-10-08 12:49:22 +0000 |
commit | 1385899416a4396385ad421ae1f532be7103738a (patch) | |
tree | fc4d14a910593d1235318bb36abe5e9f72d2039e /findutils/find.c | |
parent | 5625415085e68ac5e150f54e685417c866620d76 (diff) | |
download | busybox-w32-1385899416a4396385ad421ae1f532be7103738a.tar.gz busybox-w32-1385899416a4396385ad421ae1f532be7103738a.tar.bz2 busybox-w32-1385899416a4396385ad421ae1f532be7103738a.zip |
attempt to regularize atoi mess.
Diffstat (limited to 'findutils/find.c')
-rw-r--r-- | findutils/find.c | 45 |
1 files changed, 18 insertions, 27 deletions
diff --git a/findutils/find.c b/findutils/find.c index 7e3613af4..913a778eb 100644 --- a/findutils/find.c +++ b/findutils/find.c | |||
@@ -216,53 +216,47 @@ int find_main(int argc, char **argv) | |||
216 | #endif | 216 | #endif |
217 | #ifdef CONFIG_FEATURE_FIND_PERM | 217 | #ifdef CONFIG_FEATURE_FIND_PERM |
218 | } else if (strcmp(argv[i], "-perm") == 0) { | 218 | } else if (strcmp(argv[i], "-perm") == 0) { |
219 | char *end; | ||
220 | if (++i == argc) | 219 | if (++i == argc) |
221 | bb_error_msg_and_die(bb_msg_requires_arg, "-perm"); | 220 | bb_error_msg_and_die(bb_msg_requires_arg, "-perm"); |
222 | perm_mask = strtol(argv[i], &end, 8); | 221 | perm_mask = xstrtol_range(argv[i], 8, 0, 07777); |
223 | if ((end[0] != '\0') || (perm_mask > 07777)) | 222 | perm_char = argv[i][0]; |
224 | bb_error_msg_and_die(bb_msg_invalid_arg, argv[i], "-perm"); | 223 | if (perm_char == '-') |
225 | if ((perm_char = argv[i][0]) == '-') | ||
226 | perm_mask = -perm_mask; | 224 | perm_mask = -perm_mask; |
227 | #endif | 225 | #endif |
228 | #ifdef CONFIG_FEATURE_FIND_MTIME | 226 | #ifdef CONFIG_FEATURE_FIND_MTIME |
229 | } else if (strcmp(argv[i], "-mtime") == 0) { | 227 | } else if (strcmp(argv[i], "-mtime") == 0) { |
230 | char *end; | ||
231 | if (++i == argc) | 228 | if (++i == argc) |
232 | bb_error_msg_and_die(bb_msg_requires_arg, "-mtime"); | 229 | bb_error_msg_and_die(bb_msg_requires_arg, "-mtime"); |
233 | mtime_days = strtol(argv[i], &end, 10); | 230 | mtime_days = xatol(argv[i]); |
234 | if (end[0] != '\0') | 231 | mtime_char = argv[i][0]; |
235 | bb_error_msg_and_die(bb_msg_invalid_arg, argv[i], "-mtime"); | 232 | if (mtime_char == '-') |
236 | if ((mtime_char = argv[i][0]) == '-') | ||
237 | mtime_days = -mtime_days; | 233 | mtime_days = -mtime_days; |
238 | #endif | 234 | #endif |
239 | #ifdef CONFIG_FEATURE_FIND_MMIN | 235 | #ifdef CONFIG_FEATURE_FIND_MMIN |
240 | } else if (strcmp(argv[i], "-mmin") == 0) { | 236 | } else if (strcmp(argv[i], "-mmin") == 0) { |
241 | char *end; | ||
242 | if (++i == argc) | 237 | if (++i == argc) |
243 | bb_error_msg_and_die(bb_msg_requires_arg, "-mmin"); | 238 | bb_error_msg_and_die(bb_msg_requires_arg, "-mmin"); |
244 | mmin_mins = strtol(argv[i], &end, 10); | 239 | mmin_mins = xatol(argv[i]); |
245 | if (end[0] != '\0') | 240 | mmin_char = argv[i][0]; |
246 | bb_error_msg_and_die(bb_msg_invalid_arg, argv[i], "-mmin"); | 241 | if (mmin_char == '-') |
247 | if ((mmin_char = argv[i][0]) == '-') | ||
248 | mmin_mins = -mmin_mins; | 242 | mmin_mins = -mmin_mins; |
249 | #endif | 243 | #endif |
250 | #ifdef CONFIG_FEATURE_FIND_XDEV | 244 | #ifdef CONFIG_FEATURE_FIND_XDEV |
251 | } else if (strcmp(argv[i], "-xdev") == 0) { | 245 | } else if (strcmp(argv[i], "-xdev") == 0) { |
252 | struct stat stbuf; | 246 | struct stat stbuf; |
253 | 247 | ||
254 | xdev_count = ( firstopt - 1 ) ? ( firstopt - 1 ) : 1; | 248 | xdev_count = (firstopt - 1) ? (firstopt - 1) : 1; |
255 | xdev_dev = xmalloc ( xdev_count * sizeof( dev_t )); | 249 | xdev_dev = xmalloc(xdev_count * sizeof(dev_t)); |
256 | 250 | ||
257 | if ( firstopt == 1 ) { | 251 | if (firstopt == 1) { |
258 | xstat ( ".", &stbuf ); | 252 | xstat(".", &stbuf); |
259 | xdev_dev [0] = stbuf. st_dev; | 253 | xdev_dev[0] = stbuf.st_dev; |
260 | } | 254 | } |
261 | else { | 255 | else { |
262 | 256 | ||
263 | for (i = 1; i < firstopt; i++) { | 257 | for (i = 1; i < firstopt; i++) { |
264 | xstat ( argv [i], &stbuf ); | 258 | xstat(argv[i], &stbuf); |
265 | xdev_dev [i-1] = stbuf. st_dev; | 259 | xdev_dev[i-1] = stbuf.st_dev; |
266 | } | 260 | } |
267 | } | 261 | } |
268 | #endif | 262 | #endif |
@@ -271,17 +265,14 @@ int find_main(int argc, char **argv) | |||
271 | struct stat stat_newer; | 265 | struct stat stat_newer; |
272 | if (++i == argc) | 266 | if (++i == argc) |
273 | bb_error_msg_and_die(bb_msg_requires_arg, "-newer"); | 267 | bb_error_msg_and_die(bb_msg_requires_arg, "-newer"); |
274 | xstat (argv[i], &stat_newer); | 268 | xstat(argv[i], &stat_newer); |
275 | newer_mtime = stat_newer.st_mtime; | 269 | newer_mtime = stat_newer.st_mtime; |
276 | #endif | 270 | #endif |
277 | #ifdef CONFIG_FEATURE_FIND_INUM | 271 | #ifdef CONFIG_FEATURE_FIND_INUM |
278 | } else if (strcmp(argv[i], "-inum") == 0) { | 272 | } else if (strcmp(argv[i], "-inum") == 0) { |
279 | char *end; | ||
280 | if (++i == argc) | 273 | if (++i == argc) |
281 | bb_error_msg_and_die(bb_msg_requires_arg, "-inum"); | 274 | bb_error_msg_and_die(bb_msg_requires_arg, "-inum"); |
282 | inode_num = strtol(argv[i], &end, 10); | 275 | inode_num = xatoul(argv[i]); |
283 | if (end[0] != '\0') | ||
284 | bb_error_msg_and_die(bb_msg_invalid_arg, argv[i], "-inum"); | ||
285 | #endif | 276 | #endif |
286 | #ifdef CONFIG_FEATURE_FIND_EXEC | 277 | #ifdef CONFIG_FEATURE_FIND_EXEC |
287 | } else if (strcmp(argv[i], "-exec") == 0) { | 278 | } else if (strcmp(argv[i], "-exec") == 0) { |