aboutsummaryrefslogtreecommitdiff
path: root/coreutils
diff options
context:
space:
mode:
authorbug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277>2004-07-23 06:43:29 +0000
committerbug1 <bug1@69ca8d6d-28ef-0310-b511-8ec308f3f277>2004-07-23 06:43:29 +0000
commitf385a6f75dcd2817d4db9f700749205e009a5240 (patch)
treefa4f1776402e700ed915f9b2363099c42bda8e84 /coreutils
parentac89b1090f78b26ea006b931b1eea51cfe40ec98 (diff)
downloadbusybox-w32-f385a6f75dcd2817d4db9f700749205e009a5240.tar.gz
busybox-w32-f385a6f75dcd2817d4db9f700749205e009a5240.tar.bz2
busybox-w32-f385a6f75dcd2817d4db9f700749205e009a5240.zip
Patch from Felipe Kellermann, fix endless loop when first > last and
increment > 0. git-svn-id: svn://busybox.net/trunk/busybox@9010 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'coreutils')
-rw-r--r--coreutils/seq.c19
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}