# HG changeset patch # User Jim Blandy # Date 713627172 0 # Node ID 3533821d6edc961d238c3f840bb2df9bb2426f37 # Parent 8d2cbfd9306655388257a858a7ce43e96cd62d11 * editfns.c (Fcurrent_time_zone): Doc fix. * editfns.c (Fcurrent_time_zone): Don't forget to include code to signal an error when EMACS_CURRENT_TIME_ZONE is not defined. * editfns.c (Fcurrent_time_zone): New function. (syms_of_editfns): defsubr it. diff -r 8d2cbfd93066 -r 3533821d6edc src/editfns.c --- a/src/editfns.c Wed Aug 12 13:41:17 1992 +0000 +++ b/src/editfns.c Wed Aug 12 13:46:12 1992 +0000 @@ -542,6 +542,43 @@ return build_string (buf); } + +DEFUN ("current-time-zone", Fcurrent_time_zone, Scurrent_time_zone, 0, 0, 0, + "Return the offset, savings state, and names for the current time zone.\n\ +This returns a list of the form (OFFSET SAVINGS-FLAG STANDARD SAVINGS).\n\ +OFFSET is an integer specifying how many minutes east of Greenwich the\n\ + current time zone is located. A negative value means west of\n\ + Greenwich. Note that this describes the standard time; If daylight\n\ + savings time is in effect, it does not affect this value.\n\ +SAVINGS-FLAG is non-nil iff daylight savings time or some other sort\n\ + of seasonal time adjustment is in effect.\n\ +STANDARD is a string giving the name of the time zone when no seasonal\n\ + time adjustment is in effect.\n\ +SAVINGS is a string giving the name of the time zone when there is a\n\ + seasonal time adjustment in effect.\n\ +If the local area does not use a seasonal time adjustment,\n\ +SAVINGS-FLAG will always be nil, and STANDARD and SAVINGS will be the\n\ +same.") + () +{ +#ifdef EMACS_CURRENT_TIME_ZONE + int offset, savings_flag; + char standard[11]; + char savings[11]; + + EMACS_CURRENT_TIME_ZONE (&offset, &savings_flag, standard, savings); + + return Fcons (make_number (offset), + Fcons ((savings_flag ? Qt : Qnil), + Fcons (build_string (standard), + Fcons (build_string (savings), + Qnil)))); +#else + error + ("current-time-zone has not been implemented on this operating system."); +#endif +} + void insert1 (arg) @@ -1255,6 +1292,7 @@ defsubr (&Suser_full_name); defsubr (&Scurrent_time); defsubr (&Scurrent_time_string); + defsubr (&Scurrent_time_zone); defsubr (&Ssystem_name); defsubr (&Smessage); defsubr (&Sformat);