diff -urN 1/src/tail.c 2/src/tail.c --- 1/src/tail.c 2005-03-25 23:51:05.000000000 +0000 +++ 2/src/tail.c 2005-03-30 14:20:21.000000000 +0000 @@ -1375,7 +1375,7 @@ const char *p = argv[1]; const char *n_string; const char *n_string_end; - bool obsolete_usage; + bool obsolete_usage, obsolete_usage_posixly_correct; int default_count = DEFAULT_N_LINES; bool t_from_start; bool t_count_lines = true; @@ -1387,7 +1387,8 @@ if (argc < 2) return false; - obsolete_usage = (posix2_version () < 200112) || !getenv ("POSIXLY_CORRECT"); + obsolete_usage = (posix2_version () < 200112); + obsolete_usage_posixly_correct = !getenv ("POSIXLY_CORRECT"); switch (*p++) { @@ -1395,10 +1396,6 @@ return false; case '+': - /* Leading "+" is a file name in the non-obsolete form. */ - if (!obsolete_usage) - return false; - t_from_start = true; break; @@ -1446,10 +1443,11 @@ if (!obsolete_usage) { - error (0, 0, _("`%s' option is obsolete; use `%s-%c %"PRIuMAX"'"), + error (0, 0, _("`%s' option is obsolete; use `%s-%c %"PRIuMAX"' since this will be removed in the future"), argv[1], t_forever ? "-f " : "", t_count_lines ? 'n' : 'c', *n_units); - usage (EXIT_FAILURE); + if (!obsolete_usage_posixly_correct) + usage (EXIT_FAILURE); } }