diff options
author | Glenn L McGrath <bug1@ihug.co.nz> | 2004-07-23 06:43:29 +0000 |
---|---|---|
committer | Glenn L McGrath <bug1@ihug.co.nz> | 2004-07-23 06:43:29 +0000 |
commit | efc6bf63651496ad5a87aa8b902615e4949c0e3e (patch) | |
tree | fa4f1776402e700ed915f9b2363099c42bda8e84 | |
parent | c0dd26f68d3b7956beed6f32088f73356fe2aa16 (diff) | |
download | busybox-w32-efc6bf63651496ad5a87aa8b902615e4949c0e3e.tar.gz busybox-w32-efc6bf63651496ad5a87aa8b902615e4949c0e3e.tar.bz2 busybox-w32-efc6bf63651496ad5a87aa8b902615e4949c0e3e.zip |
Patch from Felipe Kellermann, fix endless loop when first > last and
increment > 0.
-rw-r--r-- | coreutils/seq.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/coreutils/seq.c b/coreutils/seq.c index 8a2a80c14..8006be83d 100644 --- a/coreutils/seq.c +++ b/coreutils/seq.c | |||
@@ -1,4 +1,7 @@ | |||
1 | /* vi: set sw=4 ts=4: */ | ||
1 | /* | 2 | /* |
3 | * seq implementation for busybox | ||
4 | * | ||
2 | * This program is free software; you can redistribute it and/or modify | 5 | * This program is free software; you can redistribute it and/or modify |
3 | * it under the terms of version 2 of the GNU General Public License as | 6 | * it under the terms of version 2 of the GNU General Public License as |
4 | * published by the Free Software Foundation. | 7 | * published by the Free Software Foundation. |
@@ -27,18 +30,22 @@ extern int seq_main(int argc, char **argv) | |||
27 | if (argc == 4) { | 30 | if (argc == 4) { |
28 | first = atof(argv[1]); | 31 | first = atof(argv[1]); |
29 | increment = atof(argv[2]); | 32 | increment = atof(argv[2]); |
30 | } | 33 | } else if (argc == 3) { |
31 | else if (argc == 3) { | ||
32 | first = atof(argv[1]); | 34 | first = atof(argv[1]); |
33 | } | 35 | } else if (argc != 2) { |
34 | else if (argc != 2) { | ||
35 | bb_show_usage(); | 36 | bb_show_usage(); |
36 | } | 37 | } |
37 | last = atof(argv[argc - 1]); | 38 | last = atof(argv[argc - 1]); |
38 | 39 | ||
39 | for (i = first; ((first <= last) ? (i <= last): (i >= last));i += increment) { | 40 | /* You should note that this is pos-5.0.91 semantics, -- FK. */ |
41 | if ((first > last) && (increment > 0)) { | ||
42 | return EXIT_SUCCESS; | ||
43 | } | ||
44 | |||
45 | for (i = first; ((first <= last) ? (i <= last) : (i >= last)); | ||
46 | i += increment) { | ||
40 | printf("%g\n", i); | 47 | printf("%g\n", i); |
41 | } | 48 | } |
42 | 49 | ||
43 | return(EXIT_SUCCESS); | 50 | return EXIT_SUCCESS; |
44 | } | 51 | } |