changeset 979:268c7b5da35b

*** empty log message ***
author Jim Blandy <jimb@redhat.com>
date Wed, 12 Aug 1992 15:19:32 +0000
parents 431569b4466b
children b62886fbf2a7
files src/frame.h src/systime.h
diffstat 2 files changed, 114 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/src/frame.h	Wed Aug 12 15:16:49 1992 +0000
+++ b/src/frame.h	Wed Aug 12 15:19:32 1992 +0000
@@ -162,11 +162,11 @@
 
 #define FRAMEP(f) (XTYPE(f) == Lisp_Frame)
 #define FRAME_LIVE_P(f) ((f)->display.nothing != 0)
-#define FRAME_IS_TERMCAP(f) ((f)->output_method == output_termcap)
-#define FRAME_IS_X(f) ((f)->output_method == output_x_window)
+#define FRAME_TERMCAP_P(f) ((f)->output_method == output_termcap)
+#define FRAME_X_P(f) ((f)->output_method == output_x_window)
 #define FRAME_MINIBUF_ONLY_P(f) \
   EQ (FRAME_ROOT_WINDOW (f), FRAME_MINIBUF_WINDOW (f))
-#define FRAME_HAS_MINIBUF(f) ((f)->has_minibuffer)
+#define FRAME_HAS_MINIBUF_P(f) ((f)->has_minibuffer)
 #define FRAME_CURRENT_GLYPHS(f) (f)->current_glyphs
 #define FRAME_DESIRED_GLYPHS(f) (f)->desired_glyphs
 #define FRAME_TEMP_GLYPHS(f) (f)->temp_glyphs
@@ -262,10 +262,10 @@
 
 #define FRAMEP(f) (XTYPE(f) == Lisp_Frame)
 #define FRAME_LIVE_P(f) 1
-#define FRAME_IS_TERMCAP(f) 1
-#define FRAME_IS_X(f) 0
+#define FRAME_TERMCAP_P(f) 1
+#define FRAME_X_P(f) 0
 #define FRAME_MINIBUF_ONLY_P(f) 0
-#define FRAME_HAS_MINIBUF(f) 1
+#define FRAME_HAS_MINIBUF_P(f) 1
 #define FRAME_CURRENT_GLYPHS(f) the_only_frame.current_glyphs
 #define FRAME_DESIRED_GLYPHS(f) the_only_frame.desired_glyphs
 #define FRAME_TEMP_GLYPHS(f) the_only_frame.temp_glyphs
@@ -293,8 +293,8 @@
 #define FRAME_SCROLL_BOTTOM_VPOS(f) the_only_frame.scroll_bottom_vpos
 #define FRAME_FOCUS_FRAME(f) 0
 
-#define CHECK_FRAME(x, i) { ; }
-#define CHECK_LIVE_FRAME(x, y) { ; }
+#define CHECK_FRAME(x, i) do; while (0)
+#define CHECK_LIVE_FRAME(x, y) do; while (0)
 
 /* FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a
    `for' loop which iterates over the elements of Vframe_list.  The
--- a/src/systime.h	Wed Aug 12 15:16:49 1992 +0000
+++ b/src/systime.h	Wed Aug 12 15:19:32 1992 +0000
@@ -1,4 +1,4 @@
-/* systerm.h - System-dependent definitions for time manipulations.
+/* systime.h - System-dependent definitions for time manipulations.
    Copyright (C) 1992 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -25,13 +25,14 @@
    use this guard either not at all, or similarly.  */
 #ifndef _h_BSDTYPES
 #include <time.h>
-#endif
-#else /* not NEED_TIME_H */
+#endif /* _h_BSDTYPES */
+#else /* ! defined (NEED_TIME_H) */
 #ifdef HAVE_TIMEVAL
 #include <sys/time.h>
-#endif /* HAVE_TIMEVAL */
-#endif /* not NEED_TIME_H */
+#endif /* ! defined (HAVE_TIMEVAL) */
+#endif /* ! defined (NEED_TIME_H) */
 
+
 /* EMACS_TIME is the type to use to represent temporal intervals -
    struct timeval on some systems, int on others.  It can be passed as
    the timeout argument to the select () system call.
@@ -97,7 +98,7 @@
    || ((time).tv_sec == 0					\
        && (time).tv_usec < 0))
 
-#else /* not def HAVE_TIMEVAL */
+#else /* ! defined (HAVE_TIMEVAL) */
 
 #define EMACS_TIME int
 #define EMACS_SECS(time)		    (time)
@@ -108,7 +109,7 @@
 #define EMACS_SUB_TIME(dest, src1, src2) ((dest) = (src1) - (src2))
 #define EMACS_TIME_NEG_P(t) ((t) < 0)
 
-#endif /* def HAVE_TIMEVAL */
+#endif /* ! defined (HAVE_TIMEVAL) */
 
 #define EMACS_SET_SECS_USECS(time, secs, usecs) 		\
   (EMACS_SET_SECS (time, secs), EMACS_SET_USECS (time, usecs))
@@ -123,7 +124,7 @@
     utime ((path), tv);						\
   }
 
-#else
+#else /* ! defined (USE_UTIME) */
 
 #define EMACS_SET_UTIMES(path, atime, mtime)			\
   {								\
@@ -133,4 +134,100 @@
     utimes ((path), tv);					\
   }
 
-#endif
+#endif /* ! defined (USE_UTIME) */
+
+
+
+/* EMACS_CURRENT_TIME_ZONE (int *OFFSET, int *SAVINGS_FLAG,
+                            char *STANDARD_ABBR, char *SAVINGS_ABBR);
+   expands to a statement which stores information about the current
+   time zone in its arguments.
+
+   *OFFSET is set to the number of minutes west of Greenwich at which
+   the site's time zone is located.  This should describe the offset
+   to standard time only; if some sort of daylight savings time is in
+   effect, that should not affect this value.  Note that the tm_gmtoff
+   member of the struct tm returned by localtime is adjusted for
+   daylight savings, so you don't want to use localtime to set
+   *OFFSET; gettimeofday does the right thing.
+
+   *SAVINGS_FLAG is set to 1 if some sort of daylight savings time is
+   currently in effect, or 0 if no seasonal adjustment is currently
+   active.
+
+   *STANDARD_ABBR points to an array of at least 10 characters, which
+   should be set to the standard abbreviation for the time zone name
+   when daylight savings time is not active.  For example, EDT would
+   be appropriate for the Eastern time zone of the USA.
+
+   *SAVINGS_ABBR points to an array of at least 10 characters, which
+   should be set to the standard abbreviation for the time zone name
+   when daylight savings time is active.  For example, EST would be
+   appropriate for the Eastern time zone of the USA.
+
+   If the operating system cannot provide all this information, then
+   this macro will not be defined.  */
+
+
+/* The operating system configuration file can define
+   EMACS_CURRENT_TIME_ZONE.   If not, we'll take a shot at it here.  */
+
+#ifndef EMACS_CURRENT_TIME_ZONE
+
+/* If we have timeval, then we have gettimeofday; that's half the battle.  */
+#ifdef HAVE_TIMEVAL
+#define EMACS_GET_TZ_OFFSET_AND_SAVINGS(offset, savings_flag)		\
+  do {									\
+    struct timeval dummy;						\
+    struct timezone zoneinfo;						\
+									\
+    gettimeofday (&dummy, &zoneinfo);					\
+    *(offset) = zoneinfo.tz_minuteswest;				\
+    *(savings_flag) = zoneinfo.tz_dsttime;				\
+  } while (0)
+#endif /* ! defined (HAVE_TIMEVAL) */
+
+
+/* The following sane systems have a tzname array.  The timezone() function
+   is a stupid idea; timezone names can only be determined geographically,
+   not by Greenwich offset.  */
+#if defined (ultrix) || defined (hpux) || defined (_AIX)
+
+#define EMACS_GET_TZ_NAMES(standard, savings)				\
+  do {									\
+    extern char *tzname[2];						\
+    strcpy ((standard), tzname[0]);					\
+    strcpy ((savings), tzname[1]);					\
+  } while (0)
+
+#else /* ! defined (ultrix) || defined (hpux) || defined (_AIX) */
+/* If we are running SunOS, Mt. Xinu BSD, or MACH 2.5, these systems have a
+   timezone() function.  */
+#if (defined (hp9000) && ! defined (hpux) && defined (unix)) || defined (MACH) || defined (sun)
+
+#define EMACS_GET_TZ_NAMES(standard, savings)				\
+  do {									\
+    struct timeval dummy;						\
+    struct timezone zoneinfo;						\
+    extern char *timezone ();						\
+									\
+    gettimeofday (&dummy, &zoneinfo);					\
+    strcpy ((standard), timezone (zoneinfo.tz_minuteswest, 0));		\
+    strcpy ((savings),  timezone (zoneinfo.tz_minuteswest, 1));		\
+  } while (0)
+
+#endif /* ! (defined (hp9000) && ! defined (hpux) && defined (unix)) || defined (MACH) || defined (sun) */
+#endif /* ! defined (ultrix) || defined (hpux) || defined (_AIX) */
+
+/* If we can get all the information we need, let's define the macro!  */
+#if defined (EMACS_GET_TZ_OFFSET_AND_SAVINGS) && defined (EMACS_GET_TZ_NAMES)
+
+#define EMACS_CURRENT_TIME_ZONE(offset, savings_flag, standard, savings)\
+  do {									\
+    EMACS_GET_TZ_OFFSET_AND_SAVINGS (offset, savings_flag);		\
+    EMACS_GET_TZ_NAMES (standard, savings);				\
+  } while (0)
+
+#endif /* ! defined (EMACS_GET_TZ_OFFSET_AND_SAVINGS) && defined (EMACS_GET_TZ_NAMES) */
+
+#endif /* EMACS_CURRENT_TIME_ZONE */