aboutsummaryrefslogtreecommitdiff
path: root/coreutils/seq.c
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2008-11-12 12:59:56 +0000
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2008-11-12 12:59:56 +0000
commit2598f761bb526afd8ec0de06071fcd6f1a897cd5 (patch)
tree563c08c1abfbab669dcacf51e76a6e5221fb192d /coreutils/seq.c
parent1ad4db1d8e47b8835f19ad8fe44475db51cf01f9 (diff)
downloadbusybox-w32-2598f761bb526afd8ec0de06071fcd6f1a897cd5.tar.gz
busybox-w32-2598f761bb526afd8ec0de06071fcd6f1a897cd5.tar.bz2
busybox-w32-2598f761bb526afd8ec0de06071fcd6f1a897cd5.zip
- add seq -w support (Natanael Copa)
Diffstat (limited to 'coreutils/seq.c')
-rw-r--r--coreutils/seq.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/coreutils/seq.c b/coreutils/seq.c
index 01d71f256..899cd696b 100644
--- a/coreutils/seq.c
+++ b/coreutils/seq.c
@@ -16,23 +16,30 @@ int seq_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
16int seq_main(int argc, char **argv) 16int seq_main(int argc, char **argv)
17{ 17{
18 double last, increment, i; 18 double last, increment, i;
19 enum { OPT_w = 1 };
20 unsigned opt = getopt32(argv, "+w");
21 unsigned width = 0;
19 22
23 argc -= optind;
24 argv += optind;
20 i = increment = 1; 25 i = increment = 1;
21 switch (argc) { 26 switch (argc) {
22 case 4:
23 increment = atof(argv[2]);
24 case 3: 27 case 3:
25 i = atof(argv[1]); 28 increment = atof(argv[1]);
26 case 2: 29 case 2:
30 i = atof(*argv);
31 case 1:
27 last = atof(argv[argc-1]); 32 last = atof(argv[argc-1]);
28 break; 33 break;
29 default: 34 default:
30 bb_show_usage(); 35 bb_show_usage();
31 } 36 }
37 if (opt & OPT_w) /* Pad to length of start or last */
38 width = MAX(strlen(*argv), strlen(argv[argc-1]));
32 39
33 /* You should note that this is pos-5.0.91 semantics, -- FK. */ 40 /* You should note that this is pos-5.0.91 semantics, -- FK. */
34 while ((increment > 0 && i <= last) || (increment < 0 && i >= last)) { 41 while ((increment > 0 && i <= last) || (increment < 0 && i >= last)) {
35 printf("%g\n", i); 42 printf("%0*g\n", width, i);
36 i += increment; 43 i += increment;
37 } 44 }
38 45