1
0
mirror of git://git.sv.gnu.org/coreutils.git synced 2026-07-26 10:39:01 +02:00

(enum time_style): Remove posix_iso_time_style.

Add long_iso_time_style.
(time_style_args, time_style_types, decode_switches): Likewise.
(decode_switches): If a time style is prefixed by "posix-", ignore
it if in the POSIX locale.  Default style is now posix-long-iso.
(usage): Explain the above.
This commit is contained in:
Jim Meyering
2002-07-08 09:12:48 +00:00
parent cebf7f7371
commit 01eacf71cb
+35 -25
View File
@@ -397,27 +397,26 @@ enum format
static enum format format;
/* `full-iso' uses full ISO-style dates and times. `iso' uses shorter
ISO-style time stamps. `locale' uses locale-dependent time stamps.
`posix-iso' uses traditional POSIX-locale-style dates where
POSIX requires it, ISO-style dates otherwise. */
/* `full-iso' uses full ISO-style dates and times. `long-iso' uses longer
ISO-style time stamps, though shorter than `full-iso'. `iso' uses shorter
ISO-style time stamps. `locale' uses locale-dependent time stamps. */
enum time_style
{
full_iso_time_style, /* --time-style=full-iso */
long_iso_time_style, /* --time-style=long-iso */
iso_time_style, /* --time-style=iso */
locale_time_style, /* --time-style=locale */
posix_iso_time_style /* --time-style=posix-iso (default) */
locale_time_style /* --time-style=locale */
};
static char const *const time_style_args[] =
{
"full-iso", "iso", "locale", "posix-iso", 0
"full-iso", "long-iso", "iso", "locale", 0
};
static enum time_style const time_style_types[] =
{
full_iso_time_style, iso_time_style,
locale_time_style, posix_iso_time_style, 0
full_iso_time_style, long_iso_time_style, iso_time_style,
locale_time_style, 0
};
/* Type of time to print or sort by. Controlled by -c and -u. */
@@ -1609,12 +1608,23 @@ decode_switches (int argc, char **argv)
if (format == long_format)
{
if (! time_style_option)
time_style_option = getenv ("TIME_STYLE");
char *style = time_style_option;
static char const posix_prefix[] = "posix-";
if (time_style_option && *time_style_option == '+')
if (! style)
if (! (style = getenv ("TIME_STYLE")))
style = "posix-long-iso";
while (strncmp (style, posix_prefix, sizeof posix_prefix - 1) == 0)
{
char *p0 = time_style_option + 1;
if (! hard_locale (LC_TIME))
return optind;
style += sizeof posix_prefix - 1;
}
if (*style == '+')
{
char *p0 = style + 1;
char *p1 = strchr (p0, '\n');
if (! p1)
p1 = p0;
@@ -1629,21 +1639,19 @@ decode_switches (int argc, char **argv)
long_time_format[1] = p1;
}
else
switch (time_style_option
? XARGMATCH ("time style", time_style_option,
time_style_args,
time_style_types)
: posix_iso_time_style)
switch (XARGMATCH ("time style", style,
time_style_args,
time_style_types))
{
case full_iso_time_style:
long_time_format[0] = long_time_format[1] =
"%Y-%m-%d %H:%M:%S.%N %z";
break;
case posix_iso_time_style:
if (! hard_locale (LC_TIME))
break;
/* Fall through. */
case long_iso_time_style:
long_time_format[0] = long_time_format[1] = "%Y-%m-%d %H:%M";
break;
case iso_time_style:
long_time_format[0] = "%Y-%m-%d ";
long_time_format[1] = "%m-%d %H:%M";
@@ -3679,11 +3687,13 @@ Mandatory arguments to long options are mandatory for short options too.\n\
specified time as sort key if --sort=time\n\
"), stdout);
fputs (_("\
--time-style=WORD show times using style WORD:\n\
full-iso, iso, locale, posix-iso, +FORMAT\n\
--time-style=STYLE show times using style STYLE:\n\
full-iso, long-iso, iso, locale, +FORMAT\n\
FORMAT is interpreted like `date'; if FORMAT is\n\
FORMAT1<newline>FORMAT2, FORMAT1 applies to\n\
non-recent files and FORMAT2 to recent files\n\
non-recent files and FORMAT2 to recent files;\n\
if STYLE is prefixed with `posix-', STYLE\n\
takes effect only outside the POSIX locale\n\
-t sort by modification time\n\
-T, --tabsize=COLS assume tab stops at each COLS instead of 8\n\
"), stdout);