* bug#15816: 24.3; (format-time-string "%h") returns "" instead of month
@ 2013-11-06 0:05 andrea.rossetti
2013-11-06 0:48 ` Stefan Monnier
2013-11-06 10:16 ` Eli Zaretskii
0 siblings, 2 replies; 11+ messages in thread
From: andrea.rossetti @ 2013-11-06 0:05 UTC (permalink / raw)
To: 15816
Hello,
when I execute
(format-time-string "%h")
I get a return value of "" instead of "nov" meaning
November, the current date month. On the contrary,
execution of
(format-time-string "%b")
correctly returns "nov". I suppose this is
due to the runtime of my Windows installation
(an ordinary Windows 7 64-bit) not supporting
C99 format modifiers of the C function "strftime".
My conjecture came after reading of this page:
http://www.cplusplus.com/reference/ctime/strftime/ .
I kindly ask if someone good-willed Emacs user
might see if the problem happens on his/her
Windows machine. A test on Linux could be also
a useful counterexample.
If it affects other users too, my suggestion is to
simply add a note in the docstring of format-time-string,
saying that modifier "%h" requires a C99-compliant
runtime.
Thanks for your attention, kindest regards.
Andrea
In GNU Emacs 24.3.1 (i386-mingw-nt6.1.7600)
of 2013-03-17 on MARVIN
Windowing system distributor `Microsoft Corp.', version 6.1.7600
Configured using:
`configure --with-gcc (4.7) --cflags
-ID:/devel/emacs/libs/libXpm-3.5.8/include
-ID:/devel/emacs/libs/libXpm-3.5.8/src
-ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
-ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
-ID:/devel/emacs/libs/giflib-4.1.4-1/include
-ID:/devel/emacs/libs/jpeg-6b-4/include
-ID:/devel/emacs/libs/tiff-3.8.2-1/include
-ID:/devel/emacs/libs/gnutls-3.0.9/include
-ID:/devel/emacs/libs/libiconv-1.13.1-1-dev/include
-ID:/devel/emacs/libs/libxml2-2.7.8/include/libxml2'
Important settings:
value of $LANG: ITA
locale-coding-system: cp1252
default enable-multibyte-characters: t
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t
Recent input:
w h e n SPC e x e c u t i n g SPC w i t h SPC C - j
SPC I SPC g e t SPC " " SPC i n s t e a d SPC o f SPC
" n o v " : <return> <return> ( f o r m a t - t i m
e - s t r i n g SPC " % h " ) C-j <return> <return>
<return> " % b " SPC w o r k s SPC f o r SPC m e :
<return> <return> ( f o r m a t - t i m e - s t r i
n g SPC " % b " ) C-j O K : SPC I SPC g o t SPC " n
o v " SPC a s SPC r e s u l t <return> <return> M-x
r e p o r <tab> <return>
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
scroll-up-command: End of buffer
Load-path shadows:
None found.
Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils time-date tooltip ediff-hook vc-hooks
lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win
w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
w32 multi-tty emacs)
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#15816: 24.3; (format-time-string "%h") returns "" instead of month
2013-11-06 0:05 bug#15816: 24.3; (format-time-string "%h") returns "" instead of month andrea.rossetti
@ 2013-11-06 0:48 ` Stefan Monnier
2013-11-06 6:46 ` Bastien
2013-11-06 10:16 ` Eli Zaretskii
1 sibling, 1 reply; 11+ messages in thread
From: Stefan Monnier @ 2013-11-06 0:48 UTC (permalink / raw)
To: andrea.rossetti; +Cc: 15816
> (format-time-string "%h")
> I get a return value of "" instead of "nov" meaning
I get "nov" here under GNU/Linux.
Stefan
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#15816: 24.3; (format-time-string "%h") returns "" instead of month
2013-11-06 0:48 ` Stefan Monnier
@ 2013-11-06 6:46 ` Bastien
2013-11-06 10:16 ` Eli Zaretskii
0 siblings, 1 reply; 11+ messages in thread
From: Bastien @ 2013-11-06 6:46 UTC (permalink / raw)
To: Stefan Monnier; +Cc: andrea.rossetti, 15816
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> (format-time-string "%h")
>> I get a return value of "" instead of "nov" meaning
>
> I get "nov" here under GNU/Linux.
If I may chim in: someone reported the same problem on the orgmode
list, this seems limited to Windows users.
By the way, the docstring of `format-time-string' suggests that
%b and %h are equivalent: is there a difference?
--
Bastien
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#15816: 24.3; (format-time-string "%h") returns "" instead of month
2013-11-06 0:05 bug#15816: 24.3; (format-time-string "%h") returns "" instead of month andrea.rossetti
2013-11-06 0:48 ` Stefan Monnier
@ 2013-11-06 10:16 ` Eli Zaretskii
2013-11-06 13:31 ` Rüdiger Sonderfeld
1 sibling, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2013-11-06 10:16 UTC (permalink / raw)
To: andrea.rossetti; +Cc: 15816-done
> From: andrea.rossetti@gmail.com
> Date: Wed, 06 Nov 2013 01:05:45 +0100
>
> when I execute
>
> (format-time-string "%h")
>
> I get a return value of "" instead of "nov" meaning
> November, the current date month. On the contrary,
> execution of
>
> (format-time-string "%b")
>
> correctly returns "nov". I suppose this is
> due to the runtime of my Windows installation
> (an ordinary Windows 7 64-bit) not supporting
> C99 format modifiers of the C function "strftime".
Indeed, Windows version of strftime doesn't support %h.
> If it affects other users too, my suggestion is to
> simply add a note in the docstring of format-time-string,
> saying that modifier "%h" requires a C99-compliant
> runtime.
Done.
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#15816: 24.3; (format-time-string "%h") returns "" instead of month
2013-11-06 6:46 ` Bastien
@ 2013-11-06 10:16 ` Eli Zaretskii
0 siblings, 0 replies; 11+ messages in thread
From: Eli Zaretskii @ 2013-11-06 10:16 UTC (permalink / raw)
To: Bastien; +Cc: andrea.rossetti, 15816
> From: Bastien <bzg@altern.org>
> Date: Wed, 06 Nov 2013 07:46:18 +0100
> Cc: andrea.rossetti@gmail.com, 15816@debbugs.gnu.org
>
> By the way, the docstring of `format-time-string' suggests that
> %b and %h are equivalent: is there a difference?
Not AFAIK.
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#15816: 24.3; (format-time-string "%h") returns "" instead of month
2013-11-06 10:16 ` Eli Zaretskii
@ 2013-11-06 13:31 ` Rüdiger Sonderfeld
2013-11-06 14:16 ` Andreas Schwab
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: Rüdiger Sonderfeld @ 2013-11-06 13:31 UTC (permalink / raw)
To: 15816, eliz; +Cc: andrea.rossetti, 15816-done
On Wednesday 06 November 2013 12:16:00 Eli Zaretskii wrote:
> > From: andrea.rossetti@gmail.com
> > Date: Wed, 06 Nov 2013 01:05:45 +0100
> > correctly returns "nov". I suppose this is
> > due to the runtime of my Windows installation
> > (an ordinary Windows 7 64-bit) not supporting
> > C99 format modifiers of the C function "strftime".
>
> Indeed, Windows version of strftime doesn't support %h.
I just compared the docstring to the manpage of strftime on GNU/Linux and the
following symbols are not ANSI C
- %C is SU
- %G,%g are TZ
- %h is SU (%b)
- %e is SU (%d with blanks)
- %u is SU
- %V is SU
- %k is TZ (%H with blanks)
- %l is TZ (%I with blanks)
- %N not in manpage or glibc manual
- %z is SU
- %s is TZ
- %D is SU ("%m/%d/%y", should not be used)
- %T is SU ("%H:%M:%S")
- %R is SU ("%H:%M")
- %r is SU ("%I:%M:%S %p")
- %t is SU (\t)
- %n is SU (\n)
(SU :: Single UNIX Specification and TZ :: Olson's timezone package)
Maybe we should not mention %h, %D, %T, %R, %r, %t, %n at all because these
can be replaced by the portable alternatives mentioned. The rest might be a
bit tricky to replace. Could you try which of them work on Windows at all?
(Sorry I don't have a current Windows Emacs available.)
There are also %F in C99 (ISO 8601 date format) and %P (GNU extension, am/pm),
which are not mentioned in the docstring right now.
Regards,
Rüdiger
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#15816: 24.3; (format-time-string "%h") returns "" instead of month
2013-11-06 13:31 ` Rüdiger Sonderfeld
@ 2013-11-06 14:16 ` Andreas Schwab
2013-11-06 17:12 ` Stefan Monnier
2013-11-06 17:26 ` Eli Zaretskii
2 siblings, 0 replies; 11+ messages in thread
From: Andreas Schwab @ 2013-11-06 14:16 UTC (permalink / raw)
To: Rüdiger Sonderfeld; +Cc: 15816, 15816-done, andrea.rossetti
Rüdiger Sonderfeld <ruediger@c-plusplus.de> writes:
> I just compared the docstring to the manpage of strftime on GNU/Linux and the
> following symbols are not ANSI C
C11 has all of them (execpt %k, %l, %N, %s).
Andreas.
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#15816: 24.3; (format-time-string "%h") returns "" instead of month
2013-11-06 13:31 ` Rüdiger Sonderfeld
2013-11-06 14:16 ` Andreas Schwab
@ 2013-11-06 17:12 ` Stefan Monnier
2013-11-06 17:26 ` Eli Zaretskii
2 siblings, 0 replies; 11+ messages in thread
From: Stefan Monnier @ 2013-11-06 17:12 UTC (permalink / raw)
To: Rüdiger Sonderfeld; +Cc: 15816, 15816-done, andrea.rossetti
> (Sorry I don't have a current Windows Emacs available.)
Not to encourage you to use the Windows version of Emacs, but I remember
once having to debug a problem where the only recipe was on Windows, and
being able to run Windows Emacs inside Wine (not perfectly, but good
enough to track the problem down).
Stefan
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#15816: 24.3; (format-time-string "%h") returns "" instead of month
2013-11-06 13:31 ` Rüdiger Sonderfeld
2013-11-06 14:16 ` Andreas Schwab
2013-11-06 17:12 ` Stefan Monnier
@ 2013-11-06 17:26 ` Eli Zaretskii
2013-11-16 0:01 ` Rüdiger Sonderfeld
2 siblings, 1 reply; 11+ messages in thread
From: Eli Zaretskii @ 2013-11-06 17:26 UTC (permalink / raw)
To: Rüdiger Sonderfeld; +Cc: andrea.rossetti, 15816
> From: Rüdiger Sonderfeld <ruediger@c-plusplus.de>
> Cc: andrea.rossetti@gmail.com, 15816-done@debbugs.gnu.org
> Date: Wed, 06 Nov 2013 14:31:04 +0100
>
> I just compared the docstring to the manpage of strftime on GNU/Linux and the
> following symbols are not ANSI C
>
> - %C is SU
> - %G,%g are TZ
> - %h is SU (%b)
> - %e is SU (%d with blanks)
> - %u is SU
> - %V is SU
> - %k is TZ (%H with blanks)
> - %l is TZ (%I with blanks)
> - %N not in manpage or glibc manual
> - %z is SU
> - %s is TZ
> - %D is SU ("%m/%d/%y", should not be used)
> - %T is SU ("%H:%M:%S")
> - %R is SU ("%H:%M")
> - %r is SU ("%I:%M:%S %p")
> - %t is SU (\t)
> - %n is SU (\n)
>
> (SU :: Single UNIX Specification and TZ :: Olson's timezone package)
>
> Maybe we should not mention %h, %D, %T, %R, %r, %t, %n at all because these
> can be replaced by the portable alternatives mentioned. The rest might be a
> bit tricky to replace. Could you try which of them work on Windows at all?
> (Sorry I don't have a current Windows Emacs available.)
All of them are supported, with the single exception of %r.
^ permalink raw reply [flat|nested] 11+ messages in thread
* bug#15816: 24.3; (format-time-string "%h") returns "" instead of month
2013-11-06 17:26 ` Eli Zaretskii
@ 2013-11-16 0:01 ` Rüdiger Sonderfeld
2013-12-11 14:42 ` Rüdiger Sonderfeld
0 siblings, 1 reply; 11+ messages in thread
From: Rüdiger Sonderfeld @ 2013-11-16 0:01 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: andrea.rossetti, 15816
On Wednesday 06 November 2013 19:26:56 Eli Zaretskii wrote:
> All of them are supported, with the single exception of %r.
I'd suggest documenting %F then. It is the date format for ISO 8601.
-- 8< ---------------------------------------------------------- >8 --
* editfns.c (Fformat_time_string): Doc fix. (Bug#15816)
---
src/ChangeLog | 4 ++++
src/editfns.c | 3 ++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/ChangeLog b/src/ChangeLog
index 4c3811d..7921b96 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2013-11-16 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
+
+ * editfns.c (Fformat_time_string): Doc fix. (Bug#15816)
+
2013-11-15 Paul Eggert <eggert@cs.ucla.edu>
* data.c: Work around bogus GCC diagnostic about shift count.
diff --git a/src/editfns.c b/src/editfns.c
index 277e5b6..f17b02a 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -1722,6 +1722,7 @@ TIME is specified as (HIGH LOW USEC PSEC), as returned by
%c is the locale's date and time format.
%x is the locale's "preferred" date format.
%D is like "%m/%d/%y".
+%F is the ISO 8601 date format (like "%Y-%m-%d").
%R is like "%H:%M", %T is like "%H:%M:%S", %r is like "%I:%M:%S %p".
%X is the locale's "preferred" time format.
@@ -1740,7 +1741,7 @@ but takes up at least N (a number) positions.
%EX is a locale's alternative version of %X;
%OX is like %X, but uses the locale's number symbols.
-For example, to produce full ISO 8601 format, use "%Y-%m-%dT%T%z".
+For example, to produce full ISO 8601 format, use "%FT%T%z".
usage: (format-time-string FORMAT-STRING &optional TIME UNIVERSAL) */)
(Lisp_Object format_string, Lisp_Object timeval, Lisp_Object universal)
--
1.8.4.2
^ permalink raw reply related [flat|nested] 11+ messages in thread
* bug#15816: 24.3; (format-time-string "%h") returns "" instead of month
2013-11-16 0:01 ` Rüdiger Sonderfeld
@ 2013-12-11 14:42 ` Rüdiger Sonderfeld
0 siblings, 0 replies; 11+ messages in thread
From: Rüdiger Sonderfeld @ 2013-12-11 14:42 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: andrea.rossetti, 15816
Pushed the change to trunk.
Regards,
Rüdiger
On Saturday 16 November 2013 01:01:32 Rüdiger Sonderfeld wrote:
> On Wednesday 06 November 2013 19:26:56 Eli Zaretskii wrote:
> > All of them are supported, with the single exception of %r.
>
> I'd suggest documenting %F then. It is the date format for ISO 8601.
>
> -- 8< ---------------------------------------------------------- >8 --
>
> * editfns.c (Fformat_time_string): Doc fix. (Bug#15816)
>
> ---
> src/ChangeLog | 4 ++++
> src/editfns.c | 3 ++-
> 2 files changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/src/ChangeLog b/src/ChangeLog
> index 4c3811d..7921b96 100644
> --- a/src/ChangeLog
> +++ b/src/ChangeLog
> @@ -1,3 +1,7 @@
> +2013-11-16 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
> +
> + * editfns.c (Fformat_time_string): Doc fix. (Bug#15816)
> +
> 2013-11-15 Paul Eggert <eggert@cs.ucla.edu>
>
> * data.c: Work around bogus GCC diagnostic about shift count.
> diff --git a/src/editfns.c b/src/editfns.c
> index 277e5b6..f17b02a 100644
> --- a/src/editfns.c
> +++ b/src/editfns.c
> @@ -1722,6 +1722,7 @@ TIME is specified as (HIGH LOW USEC PSEC), as returned
> by %c is the locale's date and time format.
> %x is the locale's "preferred" date format.
> %D is like "%m/%d/%y".
> +%F is the ISO 8601 date format (like "%Y-%m-%d").
>
> %R is like "%H:%M", %T is like "%H:%M:%S", %r is like "%I:%M:%S %p".
> %X is the locale's "preferred" time format.
> @@ -1740,7 +1741,7 @@ but takes up at least N (a number) positions.
> %EX is a locale's alternative version of %X;
> %OX is like %X, but uses the locale's number symbols.
>
> -For example, to produce full ISO 8601 format, use "%Y-%m-%dT%T%z".
> +For example, to produce full ISO 8601 format, use "%FT%T%z".
>
> usage: (format-time-string FORMAT-STRING &optional TIME UNIVERSAL) */)
> (Lisp_Object format_string, Lisp_Object timeval, Lisp_Object universal)
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2013-12-11 14:42 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-06 0:05 bug#15816: 24.3; (format-time-string "%h") returns "" instead of month andrea.rossetti
2013-11-06 0:48 ` Stefan Monnier
2013-11-06 6:46 ` Bastien
2013-11-06 10:16 ` Eli Zaretskii
2013-11-06 10:16 ` Eli Zaretskii
2013-11-06 13:31 ` Rüdiger Sonderfeld
2013-11-06 14:16 ` Andreas Schwab
2013-11-06 17:12 ` Stefan Monnier
2013-11-06 17:26 ` Eli Zaretskii
2013-11-16 0:01 ` Rüdiger Sonderfeld
2013-12-11 14:42 ` Rüdiger Sonderfeld
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).