From: Jim Meyering Date: Sat, 2 Feb 2002 07:58:50 +0000 (+0000) Subject: Add more support for POSIX 1003.1-2001, which requires removal for X-Git-Tag: TEXTUTILS-2_0_21~123 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f87b5cab0c8f56f9a055cfaf212a51ca56668b18;p=thirdparty%2Fcoreutils.git Add more support for POSIX 1003.1-2001, which requires removal for support of obsolete "-N" option syntax in expand, head, fold, split, tail, unexpand, uniq, and which prohibits options with optional arguments in od and pr. (main): Check for obsolete options. (main): Fix bug: -- -N was treated as -N --. --- diff --git a/src/fold.c b/src/fold.c index 8854171dfa..ea6f987294 100644 --- a/src/fold.c +++ b/src/fold.c @@ -1,5 +1,5 @@ /* fold -- wrap each input line to fit in specified width. - Copyright (C) 91, 1995-2001 Free Software Foundation, Inc. + Copyright (C) 91, 1995-2002 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -79,6 +79,10 @@ Mandatory arguments to long options are mandatory for short options too.\n\ -b, --bytes count bytes rather than columns\n\ -s, --spaces break at spaces\n\ -w, --width=WIDTH use WIDTH columns instead of 80\n\ +"), stdout); + if (POSIX2_VERSION < 200112) + fputs (_("\ + -WIDTH (obsolete) same as -w WIDTH\n\ "), stdout); fputs (HELP_OPTION_DESCRIPTION, stdout); fputs (VERSION_OPTION_DESCRIPTION, stdout); @@ -246,20 +250,29 @@ main (int argc, char **argv) break_spaces = count_bytes = have_read_stdin = 0; - /* Turn any numeric options into -w options. */ - for (i = 1; i < argc; i++) - { - if (argv[i][0] == '-' && ISDIGIT (argv[i][1])) - { - char *s; - - s = xmalloc (strlen (argv[i]) + 2); - s[0] = '-'; - s[1] = 'w'; - strcpy (s + 2, argv[i] + 1); - argv[i] = s; - } - } + /* If obsolete, turn any numeric options into -w options. */ + if (POSIX2_VERSION < 200112) + for (i = 1; i < argc; i++) + { + char const *a = argv[i]; + if (a[0] == '-') + { + if (a[1] == '-' && ! a[2]) + break; + if (ISDIGIT (a[1])) + { + char *s = xmalloc (strlen (a) + 2); + s[0] = '-'; + s[1] = 'w'; + strcpy (s + 2, a + 1); + argv[i] = s; + if (OBSOLETE_OPTION_WARNINGS && ! getenv ("POSIXLY_CORRECT")) + error (0, 0, + _("warning: `fold %s' is obsolete; use `fold -w %s'"), + a, a + 1); + } + } + } while ((optc = getopt_long (argc, argv, "bsw:", longopts, NULL)) != -1) {