aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy1992-08-12 15:19:32 +0000
committerJim Blandy1992-08-12 15:19:32 +0000
commit10a4cc6301e2975c1a7c52ea749092a69203b301 (patch)
tree6fb74d2e6b7ce6eaee3e86e3b12736cc582cc0f5 /src
parentf469625ab752df672f5009f578aea9c3a4afc5ff (diff)
downloademacs-10a4cc6301e2975c1a7c52ea749092a69203b301.tar.gz
emacs-10a4cc6301e2975c1a7c52ea749092a69203b301.zip
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r--src/frame.h16
-rw-r--r--src/systime.h117
2 files changed, 115 insertions, 18 deletions
diff --git a/src/frame.h b/src/frame.h
index faf3000b2d2..da9722ab6bb 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -162,11 +162,11 @@ typedef struct frame *FRAME_PTR;
162 162
163#define FRAMEP(f) (XTYPE(f) == Lisp_Frame) 163#define FRAMEP(f) (XTYPE(f) == Lisp_Frame)
164#define FRAME_LIVE_P(f) ((f)->display.nothing != 0) 164#define FRAME_LIVE_P(f) ((f)->display.nothing != 0)
165#define FRAME_IS_TERMCAP(f) ((f)->output_method == output_termcap) 165#define FRAME_TERMCAP_P(f) ((f)->output_method == output_termcap)
166#define FRAME_IS_X(f) ((f)->output_method == output_x_window) 166#define FRAME_X_P(f) ((f)->output_method == output_x_window)
167#define FRAME_MINIBUF_ONLY_P(f) \ 167#define FRAME_MINIBUF_ONLY_P(f) \
168 EQ (FRAME_ROOT_WINDOW (f), FRAME_MINIBUF_WINDOW (f)) 168 EQ (FRAME_ROOT_WINDOW (f), FRAME_MINIBUF_WINDOW (f))
169#define FRAME_HAS_MINIBUF(f) ((f)->has_minibuffer) 169#define FRAME_HAS_MINIBUF_P(f) ((f)->has_minibuffer)
170#define FRAME_CURRENT_GLYPHS(f) (f)->current_glyphs 170#define FRAME_CURRENT_GLYPHS(f) (f)->current_glyphs
171#define FRAME_DESIRED_GLYPHS(f) (f)->desired_glyphs 171#define FRAME_DESIRED_GLYPHS(f) (f)->desired_glyphs
172#define FRAME_TEMP_GLYPHS(f) (f)->temp_glyphs 172#define FRAME_TEMP_GLYPHS(f) (f)->temp_glyphs
@@ -262,10 +262,10 @@ extern int message_buf_print;
262 262
263#define FRAMEP(f) (XTYPE(f) == Lisp_Frame) 263#define FRAMEP(f) (XTYPE(f) == Lisp_Frame)
264#define FRAME_LIVE_P(f) 1 264#define FRAME_LIVE_P(f) 1
265#define FRAME_IS_TERMCAP(f) 1 265#define FRAME_TERMCAP_P(f) 1
266#define FRAME_IS_X(f) 0 266#define FRAME_X_P(f) 0
267#define FRAME_MINIBUF_ONLY_P(f) 0 267#define FRAME_MINIBUF_ONLY_P(f) 0
268#define FRAME_HAS_MINIBUF(f) 1 268#define FRAME_HAS_MINIBUF_P(f) 1
269#define FRAME_CURRENT_GLYPHS(f) the_only_frame.current_glyphs 269#define FRAME_CURRENT_GLYPHS(f) the_only_frame.current_glyphs
270#define FRAME_DESIRED_GLYPHS(f) the_only_frame.desired_glyphs 270#define FRAME_DESIRED_GLYPHS(f) the_only_frame.desired_glyphs
271#define FRAME_TEMP_GLYPHS(f) the_only_frame.temp_glyphs 271#define FRAME_TEMP_GLYPHS(f) the_only_frame.temp_glyphs
@@ -293,8 +293,8 @@ extern int message_buf_print;
293#define FRAME_SCROLL_BOTTOM_VPOS(f) the_only_frame.scroll_bottom_vpos 293#define FRAME_SCROLL_BOTTOM_VPOS(f) the_only_frame.scroll_bottom_vpos
294#define FRAME_FOCUS_FRAME(f) 0 294#define FRAME_FOCUS_FRAME(f) 0
295 295
296#define CHECK_FRAME(x, i) { ; } 296#define CHECK_FRAME(x, i) do; while (0)
297#define CHECK_LIVE_FRAME(x, y) { ; } 297#define CHECK_LIVE_FRAME(x, y) do; while (0)
298 298
299/* FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a 299/* FOR_EACH_FRAME (LIST_VAR, FRAME_VAR) followed by a statement is a
300 `for' loop which iterates over the elements of Vframe_list. The 300 `for' loop which iterates over the elements of Vframe_list. The
diff --git a/src/systime.h b/src/systime.h
index 38902ef62e6..b5a850da1dc 100644
--- a/src/systime.h
+++ b/src/systime.h
@@ -1,4 +1,4 @@
1/* systerm.h - System-dependent definitions for time manipulations. 1/* systime.h - System-dependent definitions for time manipulations.
2 Copyright (C) 1992 Free Software Foundation, Inc. 2 Copyright (C) 1992 Free Software Foundation, Inc.
3 3
4This file is part of GNU Emacs. 4This file is part of GNU Emacs.
@@ -25,13 +25,14 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
25 use this guard either not at all, or similarly. */ 25 use this guard either not at all, or similarly. */
26#ifndef _h_BSDTYPES 26#ifndef _h_BSDTYPES
27#include <time.h> 27#include <time.h>
28#endif 28#endif /* _h_BSDTYPES */
29#else /* not NEED_TIME_H */ 29#else /* ! defined (NEED_TIME_H) */
30#ifdef HAVE_TIMEVAL 30#ifdef HAVE_TIMEVAL
31#include <sys/time.h> 31#include <sys/time.h>
32#endif /* HAVE_TIMEVAL */ 32#endif /* ! defined (HAVE_TIMEVAL) */
33#endif /* not NEED_TIME_H */ 33#endif /* ! defined (NEED_TIME_H) */
34 34
35
35/* EMACS_TIME is the type to use to represent temporal intervals - 36/* EMACS_TIME is the type to use to represent temporal intervals -
36 struct timeval on some systems, int on others. It can be passed as 37 struct timeval on some systems, int on others. It can be passed as
37 the timeout argument to the select () system call. 38 the timeout argument to the select () system call.
@@ -72,7 +73,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
72 73
73#define EMACS_GET_TIME(time) \ 74#define EMACS_GET_TIME(time) \
74{ \ 75{ \
75 EMACS_TIME dummy; \ 76 struct timezone dummy; \
76 gettimeofday (&(time), &dummy); \ 77 gettimeofday (&(time), &dummy); \
77} 78}
78 79
@@ -97,7 +98,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
97 || ((time).tv_sec == 0 \ 98 || ((time).tv_sec == 0 \
98 && (time).tv_usec < 0)) 99 && (time).tv_usec < 0))
99 100
100#else /* not def HAVE_TIMEVAL */ 101#else /* ! defined (HAVE_TIMEVAL) */
101 102
102#define EMACS_TIME int 103#define EMACS_TIME int
103#define EMACS_SECS(time) (time) 104#define EMACS_SECS(time) (time)
@@ -108,7 +109,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
108#define EMACS_SUB_TIME(dest, src1, src2) ((dest) = (src1) - (src2)) 109#define EMACS_SUB_TIME(dest, src1, src2) ((dest) = (src1) - (src2))
109#define EMACS_TIME_NEG_P(t) ((t) < 0) 110#define EMACS_TIME_NEG_P(t) ((t) < 0)
110 111
111#endif /* def HAVE_TIMEVAL */ 112#endif /* ! defined (HAVE_TIMEVAL) */
112 113
113#define EMACS_SET_SECS_USECS(time, secs, usecs) \ 114#define EMACS_SET_SECS_USECS(time, secs, usecs) \
114 (EMACS_SET_SECS (time, secs), EMACS_SET_USECS (time, usecs)) 115 (EMACS_SET_SECS (time, secs), EMACS_SET_USECS (time, usecs))
@@ -123,7 +124,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
123 utime ((path), tv); \ 124 utime ((path), tv); \
124 } 125 }
125 126
126#else 127#else /* ! defined (USE_UTIME) */
127 128
128#define EMACS_SET_UTIMES(path, atime, mtime) \ 129#define EMACS_SET_UTIMES(path, atime, mtime) \
129 { \ 130 { \
@@ -133,4 +134,100 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
133 utimes ((path), tv); \ 134 utimes ((path), tv); \
134 } 135 }
135 136
136#endif 137#endif /* ! defined (USE_UTIME) */
138
139
140
141/* EMACS_CURRENT_TIME_ZONE (int *OFFSET, int *SAVINGS_FLAG,
142 char *STANDARD_ABBR, char *SAVINGS_ABBR);
143 expands to a statement which stores information about the current
144 time zone in its arguments.
145
146 *OFFSET is set to the number of minutes west of Greenwich at which
147 the site's time zone is located. This should describe the offset
148 to standard time only; if some sort of daylight savings time is in
149 effect, that should not affect this value. Note that the tm_gmtoff
150 member of the struct tm returned by localtime is adjusted for
151 daylight savings, so you don't want to use localtime to set
152 *OFFSET; gettimeofday does the right thing.
153
154 *SAVINGS_FLAG is set to 1 if some sort of daylight savings time is
155 currently in effect, or 0 if no seasonal adjustment is currently
156 active.
157
158 *STANDARD_ABBR points to an array of at least 10 characters, which
159 should be set to the standard abbreviation for the time zone name
160 when daylight savings time is not active. For example, EDT would
161 be appropriate for the Eastern time zone of the USA.
162
163 *SAVINGS_ABBR points to an array of at least 10 characters, which
164 should be set to the standard abbreviation for the time zone name
165 when daylight savings time is active. For example, EST would be
166 appropriate for the Eastern time zone of the USA.
167
168 If the operating system cannot provide all this information, then
169 this macro will not be defined. */
170
171
172/* The operating system configuration file can define
173 EMACS_CURRENT_TIME_ZONE. If not, we'll take a shot at it here. */
174
175#ifndef EMACS_CURRENT_TIME_ZONE
176
177/* If we have timeval, then we have gettimeofday; that's half the battle. */
178#ifdef HAVE_TIMEVAL
179#define EMACS_GET_TZ_OFFSET_AND_SAVINGS(offset, savings_flag) \
180 do { \
181 struct timeval dummy; \
182 struct timezone zoneinfo; \
183 \
184 gettimeofday (&dummy, &zoneinfo); \
185 *(offset) = zoneinfo.tz_minuteswest; \
186 *(savings_flag) = zoneinfo.tz_dsttime; \
187 } while (0)
188#endif /* ! defined (HAVE_TIMEVAL) */
189
190
191/* The following sane systems have a tzname array. The timezone() function
192 is a stupid idea; timezone names can only be determined geographically,
193 not by Greenwich offset. */
194#if defined (ultrix) || defined (hpux) || defined (_AIX)
195
196#define EMACS_GET_TZ_NAMES(standard, savings) \
197 do { \
198 extern char *tzname[2]; \
199 strcpy ((standard), tzname[0]); \
200 strcpy ((savings), tzname[1]); \
201 } while (0)
202
203#else /* ! defined (ultrix) || defined (hpux) || defined (_AIX) */
204/* If we are running SunOS, Mt. Xinu BSD, or MACH 2.5, these systems have a
205 timezone() function. */
206#if (defined (hp9000) && ! defined (hpux) && defined (unix)) || defined (MACH) || defined (sun)
207
208#define EMACS_GET_TZ_NAMES(standard, savings) \
209 do { \
210 struct timeval dummy; \
211 struct timezone zoneinfo; \
212 extern char *timezone (); \
213 \
214 gettimeofday (&dummy, &zoneinfo); \
215 strcpy ((standard), timezone (zoneinfo.tz_minuteswest, 0)); \
216 strcpy ((savings), timezone (zoneinfo.tz_minuteswest, 1)); \
217 } while (0)
218
219#endif /* ! (defined (hp9000) && ! defined (hpux) && defined (unix)) || defined (MACH) || defined (sun) */
220#endif /* ! defined (ultrix) || defined (hpux) || defined (_AIX) */
221
222/* If we can get all the information we need, let's define the macro! */
223#if defined (EMACS_GET_TZ_OFFSET_AND_SAVINGS) && defined (EMACS_GET_TZ_NAMES)
224
225#define EMACS_CURRENT_TIME_ZONE(offset, savings_flag, standard, savings)\
226 do { \
227 EMACS_GET_TZ_OFFSET_AND_SAVINGS (offset, savings_flag); \
228 EMACS_GET_TZ_NAMES (standard, savings); \
229 } while (0)
230
231#endif /* ! defined (EMACS_GET_TZ_OFFSET_AND_SAVINGS) && defined (EMACS_GET_TZ_NAMES) */
232
233#endif /* EMACS_CURRENT_TIME_ZONE */