changeset 962:3533821d6edc

* 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.
author Jim Blandy <jimb@redhat.com>
date Wed, 12 Aug 1992 13:46:12 +0000
parents 8d2cbfd93066
children 4441c4bcb376
files src/editfns.c
diffstat 1 files changed, 38 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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);