summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2002-02-16 07:44:20 +0000
committerJim Meyering <jim@meyering.net>2002-02-16 07:44:20 +0000
commite98b44e8297bc5b50a4591e9e884084290bf6367 (patch)
tree2591446008f95648261a37ac7afa73c4eb816e93
parent9cb0d2f4481062ede2b1ff56907c7f20304ac4a8 (diff)
downloadcoreutils-e98b44e8297bc5b50a4591e9e884084290bf6367.tar.xz
Include posixver.h.
(usage): Document only the intersection of the old and new behaviors, to encourage portability. (short_options): Remove; no longer needed. (COMMON_SHORT_OPTIONS): New macro. (main): Parse options using POSIX 1003.1-2001 rules if conforming to that standard. Do not warn of obsolete options.
-rw-r--r--src/sort.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/src/sort.c b/src/sort.c
index f3a325536..a2b0ef16d 100644
--- a/src/sort.c
+++ b/src/sort.c
@@ -34,6 +34,7 @@
#include "hard-locale.h"
#include "human.h"
#include "physmem.h"
+#include "posixver.h"
#include "stdio-safer.h"
#include "xmemcoll.h"
#include "xstrtol.h"
@@ -327,11 +328,6 @@ Other options:\n\
fputs (_("\
-z, --zero-terminated end lines with 0 byte, not newline\n\
"), stdout);
- if (POSIX2_VERSION < 200112)
- fputs (_("\
- +POS1 [-POS2] start a key at POS1, end it before POS2 (origin 0)\n\
- Warning: this option is obsolete\n\
-"), stdout);
fputs (HELP_OPTION_DESCRIPTION, stdout);
fputs (VERSION_OPTION_DESCRIPTION, stdout);
fputs (_("\
@@ -362,8 +358,7 @@ native byte values.\n\
exit (status);
}
-static char const short_options[] =
-"-bcdfgik:mMno:rsS:t:T:uy" OPTARG_POSIX "z";
+#define COMMON_SHORT_OPTIONS "-bcdfgik:mMno:rsS:t:T:uz"
static struct option const long_options[] =
{
@@ -2172,6 +2167,10 @@ main (int argc, char **argv)
int c = 0;
int checkonly = 0, mergeonly = 0, nfiles = 0;
int posix_pedantic = (getenv ("POSIXLY_CORRECT") != NULL);
+ bool obsolete_usage = (posix2_version () < 200112);
+ char const *short_options = (obsolete_usage
+ ? COMMON_SHORT_OPTIONS "y::"
+ : COMMON_SHORT_OPTIONS "y:");
char *minus = "-", **files;
char const *outfile = minus;
static int const sigs[] = { SIGHUP, SIGINT, SIGPIPE, SIGTERM };
@@ -2260,7 +2259,7 @@ main (int argc, char **argv)
if (c == -1
|| (posix_pedantic && nfiles != 0
- && ! (POSIX2_VERSION < 200112
+ && ! (obsolete_usage
&& ! checkonly
&& optind != argc
&& argv[optind][0] == '-' && argv[optind][1] == 'o'
@@ -2277,7 +2276,7 @@ main (int argc, char **argv)
{
case 1:
key = NULL;
- if (POSIX2_VERSION < 200112 && optarg[0] == '+')
+ if (obsolete_usage && optarg[0] == '+')
{
/* Treat +POS1 [-POS2] as a key if possible; but silently
treat an operand as a file if it is not a valid +POS1. */
@@ -2294,10 +2293,6 @@ main (int argc, char **argv)
}
else
{
- if (OBSOLETE_OPTION_WARNINGS && ! posix_pedantic)
- error (0, 0,
- _("warning: `sort %s' is obsolete; use `sort -k'"),
- optarg);
if (optind != argc && argv[optind][0] == '-'
&& ISDIGIT (argv[optind][1]))
{
@@ -2430,10 +2425,8 @@ main (int argc, char **argv)
case 'y':
/* Accept and ignore e.g. -y0 for compatibility with Solaris
- 2.x through Solaris 7. -y SIZE is marked as obsolete
- starting with Solaris 8. */
- if (OBSOLETE_OPTION_WARNINGS && ! optarg && ! posix_pedantic)
- error (0, 0, _("warning: `sort -y' is obsolete; omit `-y'"));
+ 2.x through Solaris 7. -y is marked as obsolete starting
+ with Solaris 8. */
break;
case 'z':