Mercurial > emacs
annotate src/systime.h @ 8275:4fdf77f4e45c
type-break-mode: New variable and function.
type-break-interval: Increase default to 1 hour.
type-break-query-interval: Variable renamed from type-break-delay-interval.
type-break-keystroke-interval: Variable deleted.
type-break-keystroke-threshold: New variable.
type-break-demo-life: Function renamed from type-break-life.
type-break-demo-hanoi: Function renamed from type-break-hanoi.
type-break-alarm-p: Variable renamed from type-break-p.
type-break: Don't query.
type-break-query: (New function) query here.
type-break-check: Call type-break-query, not type-break.
Do nothing if type-break-mode is nil.
Increment type-break-keystroke-count with the length of this-command-keys,
not just 1.
Query for break when keystroke count exceeds cdr of keystroke threshold
variable.
Query for break after an alarm only if keystroke count exceeds car of
keystroke threshold variable.
type-break-select: Function deleted.
type-break: Move that code here.
type-break-cancel-schedule: Function renamed from cancel-type-break.
Reset type-break-alarm-p.
type-break-alarm: Function renamed from type-break-soon.
(top level): Call type-break-mode; don't set up hook explicitly.
author | Noah Friedman <friedman@splode.com> |
---|---|
date | Mon, 18 Jul 1994 07:37:18 +0000 |
parents | 19c2639826a7 |
children | ff77b0aa7754 |
rev | line source |
---|---|
979 | 1 /* systime.h - System-dependent definitions for time manipulations. |
7307 | 2 Copyright (C) 1993, 1994 Free Software Foundation, Inc. |
977 | 3 |
4 This file is part of GNU Emacs. | |
5 | |
6 GNU Emacs is free software; you can redistribute it and/or modify | |
7 it under the terms of the GNU General Public License as published by | |
8 the Free Software Foundation; either version 1, or (at your option) | |
9 any later version. | |
10 | |
11 GNU Emacs is distributed in the hope that it will be useful, | |
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 GNU General Public License for more details. | |
15 | |
16 You should have received a copy of the GNU General Public License | |
17 along with GNU Emacs; see the file COPYING. If not, write to | |
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
19 | |
2803
ae964d7149a1
* systime.h: Borrow CPP sequence from getdate.y to include the
Jim Blandy <jimb@redhat.com>
parents:
2740
diff
changeset
|
20 #ifdef TIME_WITH_SYS_TIME |
ae964d7149a1
* systime.h: Borrow CPP sequence from getdate.y to include the
Jim Blandy <jimb@redhat.com>
parents:
2740
diff
changeset
|
21 #include <sys/time.h> |
ae964d7149a1
* systime.h: Borrow CPP sequence from getdate.y to include the
Jim Blandy <jimb@redhat.com>
parents:
2740
diff
changeset
|
22 #include <time.h> |
ae964d7149a1
* systime.h: Borrow CPP sequence from getdate.y to include the
Jim Blandy <jimb@redhat.com>
parents:
2740
diff
changeset
|
23 #else |
ae964d7149a1
* systime.h: Borrow CPP sequence from getdate.y to include the
Jim Blandy <jimb@redhat.com>
parents:
2740
diff
changeset
|
24 #ifdef HAVE_SYS_TIME_H |
1128 | 25 #include <sys/time.h> |
26 #else | |
977 | 27 #include <time.h> |
1928
699033d79ee6
* systime.h [_AIX]: Move test outside of previous #if.
Jim Blandy <jimb@redhat.com>
parents:
1571
diff
changeset
|
28 #endif |
1112 | 29 #endif |
1128 | 30 |
3523
a9967fc643c5
[HAVE_TZNAME]: Declare tzname if not macro.
Richard M. Stallman <rms@gnu.org>
parents:
2961
diff
changeset
|
31 #ifdef HAVE_TZNAME |
a9967fc643c5
[HAVE_TZNAME]: Declare tzname if not macro.
Richard M. Stallman <rms@gnu.org>
parents:
2961
diff
changeset
|
32 #ifndef tzname /* For SGI. */ |
a9967fc643c5
[HAVE_TZNAME]: Declare tzname if not macro.
Richard M. Stallman <rms@gnu.org>
parents:
2961
diff
changeset
|
33 extern char *tzname[]; /* RS6000 and others want it this way. */ |
a9967fc643c5
[HAVE_TZNAME]: Declare tzname if not macro.
Richard M. Stallman <rms@gnu.org>
parents:
2961
diff
changeset
|
34 #endif |
a9967fc643c5
[HAVE_TZNAME]: Declare tzname if not macro.
Richard M. Stallman <rms@gnu.org>
parents:
2961
diff
changeset
|
35 #endif |
a9967fc643c5
[HAVE_TZNAME]: Declare tzname if not macro.
Richard M. Stallman <rms@gnu.org>
parents:
2961
diff
changeset
|
36 |
2123
41ea195f5ccb
* systime.h (timezone): Add an explicit declaration for this
Jim Blandy <jimb@redhat.com>
parents:
1928
diff
changeset
|
37 /* SVr4 doesn't actually declare this in its #include files. */ |
41ea195f5ccb
* systime.h (timezone): Add an explicit declaration for this
Jim Blandy <jimb@redhat.com>
parents:
1928
diff
changeset
|
38 #ifdef USG5_4 |
41ea195f5ccb
* systime.h (timezone): Add an explicit declaration for this
Jim Blandy <jimb@redhat.com>
parents:
1928
diff
changeset
|
39 extern long timezone; |
41ea195f5ccb
* systime.h (timezone): Add an explicit declaration for this
Jim Blandy <jimb@redhat.com>
parents:
1928
diff
changeset
|
40 #endif |
41ea195f5ccb
* systime.h (timezone): Add an explicit declaration for this
Jim Blandy <jimb@redhat.com>
parents:
1928
diff
changeset
|
41 |
2264
87934d212841
Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents:
2123
diff
changeset
|
42 #ifdef VMS |
87934d212841
Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents:
2123
diff
changeset
|
43 #ifdef VAXC |
87934d212841
Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents:
2123
diff
changeset
|
44 #include "vmstime.h" |
87934d212841
Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents:
2123
diff
changeset
|
45 #endif |
87934d212841
Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents:
2123
diff
changeset
|
46 #endif |
87934d212841
Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents:
2123
diff
changeset
|
47 |
7691
21d7fb06e63a
If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents:
7307
diff
changeset
|
48 /* On some configurations (hpux8.0, X11R4), sys/time.h and X11/Xos.h |
21d7fb06e63a
If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents:
7307
diff
changeset
|
49 disagree about the name of the guard symbol. */ |
7694
92a4522c37fc
Make previous change limited to HPUX.
Richard M. Stallman <rms@gnu.org>
parents:
7691
diff
changeset
|
50 #ifdef HPUX |
7691
21d7fb06e63a
If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents:
7307
diff
changeset
|
51 #ifdef _STRUCT_TIMEVAL |
21d7fb06e63a
If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents:
7307
diff
changeset
|
52 #ifndef __TIMEVAL__ |
21d7fb06e63a
If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents:
7307
diff
changeset
|
53 #define __TIMEVAL__ |
21d7fb06e63a
If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents:
7307
diff
changeset
|
54 #endif |
21d7fb06e63a
If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents:
7307
diff
changeset
|
55 #endif |
7694
92a4522c37fc
Make previous change limited to HPUX.
Richard M. Stallman <rms@gnu.org>
parents:
7691
diff
changeset
|
56 #endif |
979 | 57 |
977 | 58 /* EMACS_TIME is the type to use to represent temporal intervals - |
59 struct timeval on some systems, int on others. It can be passed as | |
2550 | 60 the timeout argument to the select system call. |
977 | 61 |
62 EMACS_SECS (TIME) is an rvalue for the seconds component of TIME. | |
63 EMACS_SET_SECS (TIME, SECONDS) sets that to SECONDS. | |
64 | |
65 EMACS_HAS_USECS is defined iff EMACS_TIME has a usecs component. | |
2657 | 66 EMACS_USECS (TIME) is an rvalue for the microseconds component of TIME. |
67 This returns zero if EMACS_TIME doesn't have a microseconds component. | |
68 EMACS_SET_USECS (TIME, MICROSECONDS) sets that to MICROSECONDS. | |
69 This does nothing if EMACS_TIME doesn't have a microseconds component. | |
977 | 70 |
71 EMACS_SET_SECS_USECS (TIME, SECS, USECS) sets both components of TIME. | |
72 | |
73 EMACS_GET_TIME (TIME) stores the current system time in TIME, which | |
74 should be an lvalue. | |
75 EMACS_SET_UTIMES (PATH, ATIME, MTIME) changes the last-access and | |
76 last-modification times of the file named PATH to ATIME and | |
77 MTIME, which are EMACS_TIMEs. | |
78 | |
79 EMACS_ADD_TIME (DEST, SRC1, SRC2) adds SRC1 to SRC2 and stores the | |
80 result in DEST. SRC should not be negative. | |
81 | |
82 EMACS_SUB_TIME (DEST, SRC1, SRC2) subtracts SRC2 from SRC1 and | |
83 stores the result in DEST. SRC should not be negative. | |
84 EMACS_TIME_NEG_P (TIME) is true iff TIME is negative. | |
85 | |
86 */ | |
87 | |
88 #ifdef HAVE_TIMEVAL | |
89 | |
2289
8317265b21dc
* systime.h (EMACS_HAS_USECS): #define this if HAVE_TIMEVAL is
Jim Blandy <jimb@redhat.com>
parents:
2264
diff
changeset
|
90 #define EMACS_HAS_USECS |
8317265b21dc
* systime.h (EMACS_HAS_USECS): #define this if HAVE_TIMEVAL is
Jim Blandy <jimb@redhat.com>
parents:
2264
diff
changeset
|
91 |
977 | 92 #define EMACS_TIME struct timeval |
93 #define EMACS_SECS(time) ((time).tv_sec + 0) | |
94 #define EMACS_USECS(time) ((time).tv_usec + 0) | |
95 #define EMACS_SET_SECS(time, seconds) ((time).tv_sec = (seconds)) | |
2657 | 96 #define EMACS_SET_USECS(time, microseconds) ((time).tv_usec = (microseconds)) |
977 | 97 |
5355
ad4092c38f51
(EMACS_GET_TIME) [USG5_4]: Give gettimeofday just one arg.
Richard M. Stallman <rms@gnu.org>
parents:
3523
diff
changeset
|
98 /* On SVR4, the compiler may complain if given this extra BSD arg. */ |
7949
19c2639826a7
(EMACS_GET_TIME): Test GETTIMEOFDAY_ONE_ARGUMENT, not USG5_4.
Richard M. Stallman <rms@gnu.org>
parents:
7694
diff
changeset
|
99 #ifdef GETTIMEOFDAY_ONE_ARGUMENT |
5355
ad4092c38f51
(EMACS_GET_TIME) [USG5_4]: Give gettimeofday just one arg.
Richard M. Stallman <rms@gnu.org>
parents:
3523
diff
changeset
|
100 #define EMACS_GET_TIME(time) \ |
ad4092c38f51
(EMACS_GET_TIME) [USG5_4]: Give gettimeofday just one arg.
Richard M. Stallman <rms@gnu.org>
parents:
3523
diff
changeset
|
101 { \ |
ad4092c38f51
(EMACS_GET_TIME) [USG5_4]: Give gettimeofday just one arg.
Richard M. Stallman <rms@gnu.org>
parents:
3523
diff
changeset
|
102 gettimeofday (&(time)); \ |
ad4092c38f51
(EMACS_GET_TIME) [USG5_4]: Give gettimeofday just one arg.
Richard M. Stallman <rms@gnu.org>
parents:
3523
diff
changeset
|
103 } |
7949
19c2639826a7
(EMACS_GET_TIME): Test GETTIMEOFDAY_ONE_ARGUMENT, not USG5_4.
Richard M. Stallman <rms@gnu.org>
parents:
7694
diff
changeset
|
104 #else /* not GETTIMEOFDAY_ONE_ARGUMENT */ |
977 | 105 #define EMACS_GET_TIME(time) \ |
106 { \ | |
978 | 107 struct timezone dummy; \ |
977 | 108 gettimeofday (&(time), &dummy); \ |
109 } | |
7949
19c2639826a7
(EMACS_GET_TIME): Test GETTIMEOFDAY_ONE_ARGUMENT, not USG5_4.
Richard M. Stallman <rms@gnu.org>
parents:
7694
diff
changeset
|
110 #endif /* not GETTIMEOFDAY_ONE_ARGUMENT */ |
977 | 111 |
112 #define EMACS_ADD_TIME(dest, src1, src2) \ | |
113 { \ | |
114 (dest).tv_sec = (src1).tv_sec + (src2).tv_sec; \ | |
115 (dest).tv_usec = (src1).tv_usec + (src2).tv_usec; \ | |
116 if ((dest).tv_usec > 1000000) \ | |
117 (dest).tv_usec -= 1000000, (dest).tv_sec++; \ | |
118 } | |
119 | |
120 #define EMACS_SUB_TIME(dest, src1, src2) \ | |
121 { \ | |
122 (dest).tv_sec = (src1).tv_sec - (src2).tv_sec; \ | |
123 (dest).tv_usec = (src1).tv_usec - (src2).tv_usec; \ | |
124 if ((dest).tv_usec < 0) \ | |
125 (dest).tv_usec += 1000000, (dest).tv_sec--; \ | |
126 } | |
127 | |
128 #define EMACS_TIME_NEG_P(time) \ | |
6577
6b5eb178d1db
(EMACS_TIME_NEG_P): Cast to signed.
Karl Heuer <kwzh@gnu.org>
parents:
5355
diff
changeset
|
129 ((long)(time).tv_sec < 0 \ |
977 | 130 || ((time).tv_sec == 0 \ |
6577
6b5eb178d1db
(EMACS_TIME_NEG_P): Cast to signed.
Karl Heuer <kwzh@gnu.org>
parents:
5355
diff
changeset
|
131 && (long)(time).tv_usec < 0)) |
977 | 132 |
979 | 133 #else /* ! defined (HAVE_TIMEVAL) */ |
977 | 134 |
135 #define EMACS_TIME int | |
136 #define EMACS_SECS(time) (time) | |
999 | 137 #define EMACS_USECS(time) 0 |
977 | 138 #define EMACS_SET_SECS(time, seconds) ((time) = (seconds)) |
999 | 139 #define EMACS_SET_USECS(time, usecs) 0 |
977 | 140 |
141 #define EMACS_GET_TIME(t) ((t) = time ((long *) 0)) | |
142 #define EMACS_ADD_TIME(dest, src1, src2) ((dest) = (src1) + (src2)) | |
143 #define EMACS_SUB_TIME(dest, src1, src2) ((dest) = (src1) - (src2)) | |
144 #define EMACS_TIME_NEG_P(t) ((t) < 0) | |
145 | |
979 | 146 #endif /* ! defined (HAVE_TIMEVAL) */ |
977 | 147 |
148 #define EMACS_SET_SECS_USECS(time, secs, usecs) \ | |
149 (EMACS_SET_SECS (time, secs), EMACS_SET_USECS (time, usecs)) | |
150 | |
151 #ifdef USE_UTIME | |
152 | |
153 #define EMACS_SET_UTIMES(path, atime, mtime) \ | |
154 { \ | |
999 | 155 time_t tv[2]; \ |
977 | 156 tv[0] = EMACS_SECS (atime); \ |
157 tv[1] = EMACS_SECS (mtime); \ | |
158 utime ((path), tv); \ | |
159 } | |
160 | |
979 | 161 #else /* ! defined (USE_UTIME) */ |
977 | 162 |
163 #define EMACS_SET_UTIMES(path, atime, mtime) \ | |
164 { \ | |
165 EMACS_TIME tv[2]; \ | |
166 tv[0] = atime; \ | |
167 tv[1] = mtime; \ | |
168 utimes ((path), tv); \ | |
169 } | |
170 | |
979 | 171 #endif /* ! defined (USE_UTIME) */ |