Contents of /trunk/coreutils/patches-5.94/coreutils-5.3.0-timestyle.patch
Parent Directory | Revision Log
Revision 115 -
(show annotations)
(download)
Sun Mar 18 15:57:37 2007 UTC (17 years, 6 months ago) by niro
File size: 3855 byte(s)
Sun Mar 18 15:57:37 2007 UTC (17 years, 6 months ago) by niro
File size: 3855 byte(s)
patches for 5.94
1 | POSIX allows for default output format to be either 'posix-long-iso' |
2 | or 'locale', so lets go with 'locale' instead and don't bother checking |
3 | the value of POSIXLY_CORRECT in env |
4 | |
5 | http://lists.gnu.org/archive/html/bug-coreutils/2005-08/msg00120.html |
6 | http://lists.gnu.org/archive/html/bug-coreutils/2005-09/msg00162.html |
7 | |
8 | 2005-09-27 Paul Eggert <eggert@cs.ucla.edu> |
9 | |
10 | * NEWS: ls now defaults to --time-style="locale", but this |
11 | style now behaves like posix-long-iso if your locale appears |
12 | to be messed up. |
13 | * doc/coreutils.texi (Formatting file timestamps): Document that |
14 | --time-style="locale" is now the default. Update advice for |
15 | Emacs 21.3 and later. |
16 | * src/ls.c (decode_switches): Implement the above. |
17 | |
18 | ** Bring back support for `head -NUM', `tail -NUM', etc. even when |
19 | Index: doc/coreutils.texi |
20 | =================================================================== |
21 | RCS file: /fetish/cu/doc/coreutils.texi,v |
22 | retrieving revision 1.285 |
23 | diff -p -u -r1.285 coreutils.texi |
24 | --- doc/coreutils.texi 25 Sep 2005 06:08:17 -0000 1.285 |
25 | +++ doc/coreutils.texi 27 Sep 2005 20:38:32 -0000 |
26 | @@ -6047,7 +6047,7 @@ and might generate timestamps like @samp |
27 | @vindex LC_TIME |
28 | List @acronym{POSIX}-locale timestamps if the @env{LC_TIME} locale |
29 | category is @acronym{POSIX}, @var{style} timestamps otherwise. For |
30 | -example, the default style, which is @samp{posix-long-iso}, lists |
31 | +example, the @samp{posix-long-iso} style lists |
32 | timestamps like @samp{Mar 30@ @ 2002} and @samp{Mar 30 23:45} when in |
33 | the @acronym{POSIX} locale, and like @samp{2002-03-30 23:45} otherwise. |
34 | @end table |
35 | @@ -6056,10 +6056,11 @@ the @acronym{POSIX} locale, and like @sa |
36 | @vindex TIME_STYLE |
37 | You can specify the default value of the @option{--time-style} option |
38 | with the environment variable @env{TIME_STYLE}; if @env{TIME_STYLE} is not set |
39 | -the default style is @samp{posix-long-iso}. @acronym{GNU} Emacs 21 and |
40 | -later can parse @acronym{ISO} dates, but older Emacs versions do not, so if |
41 | -you are using an older version of Emacs and specify a non-@acronym{POSIX} |
42 | -locale, you may need to set @samp{TIME_STYLE="locale"}. |
43 | +the default style is @samp{locale}. @acronym{GNU} Emacs 21.3 and |
44 | +later use the @option{--dired} option and therefore can parse any date |
45 | +format, but if you are using Emacs 21.1 or 21.2 and specify a |
46 | +non-@acronym{POSIX} locale you may need to set |
47 | +@samp{TIME_STYLE="posix-long-iso"}. |
48 | |
49 | To avoid certain denial-of-service attacks, timestamps that would be |
50 | longer than 1000 bytes may be treated as errors. |
51 | Index: src/ls.c |
52 | =================================================================== |
53 | RCS file: /fetish/cu/src/ls.c,v |
54 | retrieving revision 1.399 |
55 | diff -p -u -r1.399 ls.c |
56 | --- src/ls.c 16 Sep 2005 07:50:33 -0000 1.399 |
57 | +++ src/ls.c 27 Sep 2005 20:38:33 -0000 |
58 | @@ -1823,7 +1823,7 @@ decode_switches (int argc, char **argv) |
59 | |
60 | if (! style) |
61 | if (! (style = getenv ("TIME_STYLE"))) |
62 | - style = "posix-long-iso"; |
63 | + style = "locale"; |
64 | |
65 | while (strncmp (style, posix_prefix, sizeof posix_prefix - 1) == 0) |
66 | { |
67 | @@ -1859,6 +1859,7 @@ decode_switches (int argc, char **argv) |
68 | break; |
69 | |
70 | case long_iso_time_style: |
71 | + case_long_iso_time_style: |
72 | long_time_format[0] = long_time_format[1] = "%Y-%m-%d %H:%M"; |
73 | break; |
74 | |
75 | @@ -1870,10 +1871,17 @@ decode_switches (int argc, char **argv) |
76 | case locale_time_style: |
77 | if (hard_locale (LC_TIME)) |
78 | { |
79 | + /* Ensure that the locale has translations for both |
80 | + formats. If not, fall back on long-iso format. */ |
81 | int i; |
82 | for (i = 0; i < 2; i++) |
83 | - long_time_format[i] = |
84 | - dcgettext (NULL, long_time_format[i], LC_TIME); |
85 | + { |
86 | + char const *locale_format = |
87 | + dcgettext (NULL, long_time_format[i], LC_TIME); |
88 | + if (locale_format == long_time_format[i]) |
89 | + goto case_long_iso_time_style; |
90 | + long_time_format[i] = locale_format; |
91 | + } |
92 | } |
93 | } |
94 | } |
95 |