X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=coreutils%2Fseq.c;h=0df094001784f9e87b6a6134aa7ab48d6039b690;hb=290fcb4213ae5ab9ec6cb228dd64ef2c9f02d26d;hp=8006be83dc5227481906dd08ce75ac4ef9bab194;hpb=efc6bf63651496ad5a87aa8b902615e4949c0e3e;p=oweals%2Fbusybox.git diff --git a/coreutils/seq.c b/coreutils/seq.c index 8006be83d..0df094001 100644 --- a/coreutils/seq.c +++ b/coreutils/seq.c @@ -2,48 +2,37 @@ /* * seq implementation for busybox * - * This program is free software; you can redistribute it and/or modify - * it under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. + * Copyright (C) 2004, Glenn McGrath * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Library General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * Licensed under the GPL v2, see the file LICENSE in this tarball. */ #include #include #include "busybox.h" -extern int seq_main(int argc, char **argv) +int seq_main(int argc, char **argv) { - double last; - double first = 1; - double increment = 1; - double i; - - if (argc == 4) { - first = atof(argv[1]); - increment = atof(argv[2]); - } else if (argc == 3) { - first = atof(argv[1]); - } else if (argc != 2) { - bb_show_usage(); + double last, first, increment, i; + + first = increment = 1; + switch (argc) { + case 4: + increment=atof(argv[2]); + case 3: + first=atof(argv[1]); + case 2: + last=atof(argv[argc -1]); + break; + default: + bb_show_usage(); } - last = atof(argv[argc - 1]); /* You should note that this is pos-5.0.91 semantics, -- FK. */ - if ((first > last) && (increment > 0)) { - return EXIT_SUCCESS; - } - - for (i = first; ((first <= last) ? (i <= last) : (i >= last)); - i += increment) { + for (i = first; + (increment > 0 && i <= last) || (increment < 0 && i >=last); + i += increment) + { printf("%g\n", i); }