#define USE_LIBTINFO
#include <progs.priv.h>
-MODULE_ID("$Id: tabs.c,v 1.17 2010/05/01 22:04:08 tom Exp $")
+MODULE_ID("$Id: tabs.c,v 1.19 2010/10/23 22:26:01 tom Exp $")
static void usage(void) GCC_NORETURN;
value += (ch - '0');
} else if (ch == ',') {
result[n] = value + prior;
- if (n > 0 && value <= result[n - 1]) {
+ if (n > 0 && result[n] <= result[n - 1]) {
fprintf(stderr,
- "tab-stops are not in increasing order\n");
+ "tab-stops are not in increasing order: %d %d\n",
+ value, result[n - 1]);
free(result);
result = 0;
break;
/*
* Add the last value, if any.
*/
- result[n++] = value;
+ result[n++] = value + prior;
result[n] = 0;
}
return result;
int n, ch;
for (n = 0; tab_list[n] != '\0'; ++n) {
ch = UChar(tab_list[n]);
- if (!(isdigit(ch) || ch == ',')) {
+ if (!(isdigit(ch) || ch == ',' || ch == '+')) {
fprintf(stderr,
"%s: unexpected character found '%c'\n",
program, ch);
mar_list = option;
break;
default:
- usage();
+ /* special case of relative stops separated by spaces? */
+ if (option == argv[n] + 1) {
+ tab_list = add_to_tab_list(&append, argv[n]);
+ }
+ break;
}
}
break;