/* vi: set sw=4 ts=4: */
/*
 * seq implementation for busybox
 *
 * Copyright (C) 2004, Glenn McGrath
 *
 * Licensed under the GPL v2, see the file LICENSE in this tarball.
 */

#include <stdio.h>
#include <stdlib.h>
#include "busybox.h"

int seq_main(int argc, char **argv)
{
	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();
	}

	/* You should note that this is pos-5.0.91 semantics, -- FK. */
	if (first <= last ? increment > 0 : increment < 0) {
		for (i = first;
			 (first <= last) ? (i <= last) : (i >= last);
			 i += increment)
		{
				printf("%g\n", i);
		}
	}

	return EXIT_SUCCESS;
}
