diff -ru contrib/one-true-awk.orig/main.c contrib/one-true-awk/main.c --- contrib/one-true-awk.orig/main.c 2007-06-05 18:33:51.000000000 +0300 +++ contrib/one-true-awk/main.c 2010-01-30 12:06:16.000000000 +0200 @@ -53,6 +53,20 @@ int safe = 0; /* 1 => "safe" mode */ +static char * +setfs(char *p) +{ +#ifdef notdef + /* wart: t=>\t */ + if (p[0] == 't' && p[1] == 0) + return "\t"; + else +#endif + if (p[0] != 0) + return p; + return NULL; +} + int main(int argc, char *argv[]) { const char *fs = NULL; @@ -96,16 +110,11 @@ break; case 'F': /* set field separator */ if (argv[1][2] != 0) { /* arg is -Fsomething */ - if (argv[1][2] == 't' && argv[1][3] == 0) /* wart: t=>\t */ - fs = "\t"; - else if (argv[1][2] != 0) - fs = &argv[1][2]; + fs = setfs(argv[1] + 2); } else { /* arg is -F something */ argc--; argv++; - if (argc > 1 && argv[1][0] == 't' && argv[1][1] == 0) /* wart: t=>\t */ - fs = "\t"; - else if (argc > 1 && argv[1][0] != 0) - fs = &argv[1][0]; + if (argc > 1) + fs = setfs(argv[1]); } if (fs == NULL || *fs == '\0') WARNING("field separator FS is empty"); Only in contrib/one-true-awk: main.c.orig