annotate src/systime.h @ 72367:12fa9bdadf0a

(allout-prior-bindings, allout-added-bindings): Remove, after long deprecation. (allout-beginning-of-line-cycles, allout-end-of-line-cycles): Add customization vars controlling allout-beginning-of-line and allout-end-of-line conveniences. (allout-header-prefix, allout-use-mode-specific-leader) (allout-use-mode-specific-leader, allout-mode-leaders): Revised docstrings. (allout-infer-header-lead): Change to be an alias for allout-infer-header-lead-and-primary-bullet. (allout-infer-header-lead-and-primary-bullet): New version of allout-infer-header-lead which assigns the primary bullet to the same as the header lead, when its being changed. (allout-infer-body-reindent): Apply regexp-quote instead of unconditionally prepending "\\", so that all literal allout-header-prefix and allout-primary-bullet strings are properly handled. (allout-add-resumptions): Add optional qualifier for extending or appending to existing values, rather than replacing them. (allout-view-change-hook): Clarify docstring. (allout-exposure-change-hook): Take explicit arguments, via run-hook-with-args. (allout-structure-added-hook, allout-structure-deleted-hook) (allout-structure-shifted-hook): New hooks analogous to allout-exposure-change-hook for other kinds of structural outline edits. (allout-encryption-plaintext-sanitization-regexps): New encryption customization variable, by which cooperating modes can provde massage of the plaintext without actually being passed it. (allout-encryption-ciphertext-rejection-regexps) (allout-encryption-ciphertext-rejection-ceiling): New encryption customization variables, by which cooperating modes can prohibit rare but possible ciphertext patterns from fouling their operation, with actually being passed the ciphertext. (allout-mode): Run activation and deactivation hooks after the minor-mode variable has been toggled, to clarify the mode disposition. The new encryption ciphertext rejection variable is used to ensure that the ciphertext does not contain text that would be recognized as outline structural elements by allout. Substite allout-beginning-of-line and allout-end-of-line for conventionall beginning-of-line and end-of-line bindings. If allout-old-style-prefixes is non-nil, don't nullify it on mode activation! (allout-beginning-of-line): Respect `allout-beginning-of-line-cycles'. (allout-end-of-line): Respect `allout-end-of-line-cycles'. (allout-chart-subtree): Implement new mode, charting only the visible items in the subtree, when new 'visible' parameter is non-nil. (allout-end-of-subtree): Properly handle the last item in the buffer. (allout-pre-command-business, allout-command-counter): Increment an advertised counter so that cooperating enhancements can track revisions of items. (allout-open-topic): Run allout-structure-added-hook with suitable arguments. (allout-shift-in): Run allout-structure-shifted-hook with suitable arguments. (allout-shift-out): Fix doubling for negative args and ensure call of allout-structure-shifted-hook by solely using allout-shift-in. (allout-kill-line, allout-kill-topic): Run allout-structure-deleted-hook with suitable arguments. (allout-yank-processing): Run allout-structure-added-hook with proper arguments. (allout-yank): Enclose activity in allout-unprotected. (allout-flag-region): Run allout-exposure-change-hook with suitable arguments, instead of making the callee infer the arguments. (allout-encrypt-string): Support allout-encryption-plaintext-sanitization-regexps, allout-encryption-ciphertext-rejection-regexps, and allout-encryption-ciphertext-rejection-ceiling. Indicate correct en/decryption mode in symmetric encryption failure message. (allout-obtain-passphrase): Use copy-sequence to get a distinct copy of the passphrase, and don't zero it or we'll corrupt the stashed copy. (allout-create-encryption-passphrase-verifier) (allout-verify-passphrase): Respect the new signature for allout-encrypt-string. (allout-get-configvar-values): Convenience for getting a configuration variable value and handling its absence gracefully.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 12 Aug 2006 12:33:32 +0000
parents 3bd95f4f2941
children 132969301815 c5406394f567
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
979
268c7b5da35b *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 978
diff changeset
1 /* systime.h - System-dependent definitions for time manipulations.
64770
a0d1312ede66 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64084
diff changeset
2 Copyright (C) 1993, 1994, 2002, 2003, 2004,
68651
3bd95f4f2941 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 65764
diff changeset
3 2005, 2006 Free Software Foundation, Inc.
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5 This file is part of GNU Emacs.
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 GNU Emacs is free software; you can redistribute it and/or modify
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
12244
ac7375e60931 Update GPL to version 2.
Karl Heuer <kwzh@gnu.org>
parents: 9238
diff changeset
9 the Free Software Foundation; either version 2, or (at your option)
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10 any later version.
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 GNU Emacs is distributed in the hope that it will be useful,
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15 GNU General Public License for more details.
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 along with GNU Emacs; see the file COPYING. If not, write to
64084
a8fa7c632ee4 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
a8fa7c632ee4 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
20 Boston, MA 02110-1301, USA. */
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21
29559
80c2703cecd1 (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
Dave Love <fx@gnu.org>
parents: 29442
diff changeset
22 #ifndef EMACS_SYSTIME_H
80c2703cecd1 (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
Dave Love <fx@gnu.org>
parents: 29442
diff changeset
23 #define EMACS_SYSTIME_H
29442
e7dca295c541 Protect against multiple inclusion.
Dave Love <fx@gnu.org>
parents: 27149
diff changeset
24
2803
ae964d7149a1 * systime.h: Borrow CPP sequence from getdate.y to include the
Jim Blandy <jimb@redhat.com>
parents: 2740
diff changeset
25 #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
26 #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
27 #include <time.h>
ae964d7149a1 * systime.h: Borrow CPP sequence from getdate.y to include the
Jim Blandy <jimb@redhat.com>
parents: 2740
diff changeset
28 #else
ae964d7149a1 * systime.h: Borrow CPP sequence from getdate.y to include the
Jim Blandy <jimb@redhat.com>
parents: 2740
diff changeset
29 #ifdef HAVE_SYS_TIME_H
1128
2a2dabcf877b entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1112
diff changeset
30 #include <sys/time.h>
2a2dabcf877b entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1112
diff changeset
31 #else
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32 #include <time.h>
1928
699033d79ee6 * systime.h [_AIX]: Move test outside of previous #if.
Jim Blandy <jimb@redhat.com>
parents: 1571
diff changeset
33 #endif
1112
1dba066c1e0a *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 999
diff changeset
34 #endif
1128
2a2dabcf877b entered into RCS
Jim Blandy <jimb@redhat.com>
parents: 1112
diff changeset
35
3523
a9967fc643c5 [HAVE_TZNAME]: Declare tzname if not macro.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
36 #ifdef HAVE_TZNAME
a9967fc643c5 [HAVE_TZNAME]: Declare tzname if not macro.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
37 #ifndef tzname /* For SGI. */
a9967fc643c5 [HAVE_TZNAME]: Declare tzname if not macro.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
38 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
39 #endif
a9967fc643c5 [HAVE_TZNAME]: Declare tzname if not macro.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
40 #endif
a9967fc643c5 [HAVE_TZNAME]: Declare tzname if not macro.
Richard M. Stallman <rms@gnu.org>
parents: 2961
diff changeset
41
2123
41ea195f5ccb * systime.h (timezone): Add an explicit declaration for this
Jim Blandy <jimb@redhat.com>
parents: 1928
diff changeset
42 /* 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
43 #ifdef USG5_4
29442
e7dca295c541 Protect against multiple inclusion.
Dave Love <fx@gnu.org>
parents: 27149
diff changeset
44 extern time_t timezone;
2123
41ea195f5ccb * systime.h (timezone): Add an explicit declaration for this
Jim Blandy <jimb@redhat.com>
parents: 1928
diff changeset
45 #endif
41ea195f5ccb * systime.h (timezone): Add an explicit declaration for this
Jim Blandy <jimb@redhat.com>
parents: 1928
diff changeset
46
2264
87934d212841 Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents: 2123
diff changeset
47 #ifdef VMS
87934d212841 Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents: 2123
diff changeset
48 #ifdef VAXC
87934d212841 Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents: 2123
diff changeset
49 #include "vmstime.h"
87934d212841 Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents: 2123
diff changeset
50 #endif
87934d212841 Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents: 2123
diff changeset
51 #endif
87934d212841 Some VMS changes from Richard Levitte <levitte@e.kth.se>:
Jim Blandy <jimb@redhat.com>
parents: 2123
diff changeset
52
7691
21d7fb06e63a If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents: 7307
diff changeset
53 /* 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
54 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
55 #ifdef HPUX
7691
21d7fb06e63a If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents: 7307
diff changeset
56 #ifdef _STRUCT_TIMEVAL
21d7fb06e63a If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents: 7307
diff changeset
57 #ifndef __TIMEVAL__
21d7fb06e63a If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents: 7307
diff changeset
58 #define __TIMEVAL__
21d7fb06e63a If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents: 7307
diff changeset
59 #endif
21d7fb06e63a If _STRUCT_TIMEVAL is defined, also define __TIMEVAL__.
Karl Heuer <kwzh@gnu.org>
parents: 7307
diff changeset
60 #endif
7694
92a4522c37fc Make previous change limited to HPUX.
Richard M. Stallman <rms@gnu.org>
parents: 7691
diff changeset
61 #endif
979
268c7b5da35b *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 978
diff changeset
62
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63 /* EMACS_TIME is the type to use to represent temporal intervals -
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64 struct timeval on some systems, int on others. It can be passed as
2550
28bca94e66c3 Comment fixes.
Richard M. Stallman <rms@gnu.org>
parents: 2289
diff changeset
65 the timeout argument to the select system call.
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
66
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 EMACS_SECS (TIME) is an rvalue for the seconds component of TIME.
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 EMACS_SET_SECS (TIME, SECONDS) sets that to SECONDS.
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70 EMACS_HAS_USECS is defined iff EMACS_TIME has a usecs component.
2657
cddb75caa9c5 * systime.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 2550
diff changeset
71 EMACS_USECS (TIME) is an rvalue for the microseconds component of TIME.
cddb75caa9c5 * systime.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 2550
diff changeset
72 This returns zero if EMACS_TIME doesn't have a microseconds component.
cddb75caa9c5 * systime.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 2550
diff changeset
73 EMACS_SET_USECS (TIME, MICROSECONDS) sets that to MICROSECONDS.
cddb75caa9c5 * systime.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 2550
diff changeset
74 This does nothing if EMACS_TIME doesn't have a microseconds component.
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76 EMACS_SET_SECS_USECS (TIME, SECS, USECS) sets both components of TIME.
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78 EMACS_GET_TIME (TIME) stores the current system time in TIME, which
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
79 should be an lvalue.
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
80
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
81 EMACS_ADD_TIME (DEST, SRC1, SRC2) adds SRC1 to SRC2 and stores the
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
82 result in DEST. SRC should not be negative.
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
83
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
84 EMACS_SUB_TIME (DEST, SRC1, SRC2) subtracts SRC2 from SRC1 and
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 46476
diff changeset
85 stores the result in DEST. SRC should not be negative.
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86 EMACS_TIME_NEG_P (TIME) is true iff TIME is negative.
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
87
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88 */
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
89
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
90 #ifdef HAVE_TIMEVAL
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
91
2289
8317265b21dc * systime.h (EMACS_HAS_USECS): #define this if HAVE_TIMEVAL is
Jim Blandy <jimb@redhat.com>
parents: 2264
diff changeset
92 #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
93
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
94 #define EMACS_TIME struct timeval
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
95 #define EMACS_SECS(time) ((time).tv_sec + 0)
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96 #define EMACS_USECS(time) ((time).tv_usec + 0)
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 #define EMACS_SET_SECS(time, seconds) ((time).tv_sec = (seconds))
2657
cddb75caa9c5 * systime.h: Doc fix.
Jim Blandy <jimb@redhat.com>
parents: 2550
diff changeset
98 #define EMACS_SET_USECS(time, microseconds) ((time).tv_usec = (microseconds))
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99
5355
ad4092c38f51 (EMACS_GET_TIME) [USG5_4]: Give gettimeofday just one arg.
Richard M. Stallman <rms@gnu.org>
parents: 3523
diff changeset
100 /* 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
101 #ifdef GETTIMEOFDAY_ONE_ARGUMENT
27149
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
102 #define EMACS_GET_TIME(time) gettimeofday (&(time))
7949
19c2639826a7 (EMACS_GET_TIME): Test GETTIMEOFDAY_ONE_ARGUMENT, not USG5_4.
Richard M. Stallman <rms@gnu.org>
parents: 7694
diff changeset
103 #else /* not GETTIMEOFDAY_ONE_ARGUMENT */
29914
668a501f94a2 (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use HAVE_STRUCT_TIMEZONE.
Dave Love <fx@gnu.org>
parents: 29559
diff changeset
104 #ifdef HAVE_STRUCT_TIMEZONE
27149
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
105 #define EMACS_GET_TIME(time) \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
106 do { \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
107 struct timezone dummy; \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
108 gettimeofday (&(time), &dummy); \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
109 } while (0)
29914
668a501f94a2 (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use HAVE_STRUCT_TIMEZONE.
Dave Love <fx@gnu.org>
parents: 29559
diff changeset
110 #else
668a501f94a2 (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use HAVE_STRUCT_TIMEZONE.
Dave Love <fx@gnu.org>
parents: 29559
diff changeset
111 /* Presumably the second arg is ignored. */
668a501f94a2 (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use HAVE_STRUCT_TIMEZONE.
Dave Love <fx@gnu.org>
parents: 29559
diff changeset
112 #define EMACS_GET_TIME(time) gettimeofday (&(time), NULL)
668a501f94a2 (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use HAVE_STRUCT_TIMEZONE.
Dave Love <fx@gnu.org>
parents: 29559
diff changeset
113 #endif /* HAVE_STRUCT_TIMEZONE */
7949
19c2639826a7 (EMACS_GET_TIME): Test GETTIMEOFDAY_ONE_ARGUMENT, not USG5_4.
Richard M. Stallman <rms@gnu.org>
parents: 7694
diff changeset
114 #endif /* not GETTIMEOFDAY_ONE_ARGUMENT */
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
115
27149
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
116 #define EMACS_ADD_TIME(dest, src1, src2) \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
117 do { \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
118 (dest).tv_sec = (src1).tv_sec + (src2).tv_sec; \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
119 (dest).tv_usec = (src1).tv_usec + (src2).tv_usec; \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
120 if ((dest).tv_usec > 1000000) \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
121 (dest).tv_usec -= 1000000, (dest).tv_sec++; \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
122 } while (0)
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
123
27149
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
124 #define EMACS_SUB_TIME(dest, src1, src2) \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
125 do { \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
126 (dest).tv_sec = (src1).tv_sec - (src2).tv_sec; \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
127 (dest).tv_usec = (src1).tv_usec - (src2).tv_usec; \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
128 if ((dest).tv_usec < 0) \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
129 (dest).tv_usec += 1000000, (dest).tv_sec--; \
a3d16b780bb3 (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
Gerd Moellmann <gerd@gnu.org>
parents: 26644
diff changeset
130 } while (0)
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
131
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
132 #define EMACS_TIME_NEG_P(time) \
6577
6b5eb178d1db (EMACS_TIME_NEG_P): Cast to signed.
Karl Heuer <kwzh@gnu.org>
parents: 5355
diff changeset
133 ((long)(time).tv_sec < 0 \
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
134 || ((time).tv_sec == 0 \
6577
6b5eb178d1db (EMACS_TIME_NEG_P): Cast to signed.
Karl Heuer <kwzh@gnu.org>
parents: 5355
diff changeset
135 && (long)(time).tv_usec < 0))
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
136
979
268c7b5da35b *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 978
diff changeset
137 #else /* ! defined (HAVE_TIMEVAL) */
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
138
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
139 #define EMACS_TIME int
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
140 #define EMACS_SECS(time) (time)
999
d8d503897aa5 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 979
diff changeset
141 #define EMACS_USECS(time) 0
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
142 #define EMACS_SET_SECS(time, seconds) ((time) = (seconds))
999
d8d503897aa5 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 979
diff changeset
143 #define EMACS_SET_USECS(time, usecs) 0
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
144
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
145 #define EMACS_GET_TIME(t) ((t) = time ((long *) 0))
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
146 #define EMACS_ADD_TIME(dest, src1, src2) ((dest) = (src1) + (src2))
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
147 #define EMACS_SUB_TIME(dest, src1, src2) ((dest) = (src1) - (src2))
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
148 #define EMACS_TIME_NEG_P(t) ((t) < 0)
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
149
979
268c7b5da35b *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 978
diff changeset
150 #endif /* ! defined (HAVE_TIMEVAL) */
977
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
151
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
152 #define EMACS_SET_SECS_USECS(time, secs, usecs) \
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
153 (EMACS_SET_SECS (time, secs), EMACS_SET_USECS (time, usecs))
2579e1f43daa Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
154
46476
2b7a72428d13 (set_file_times): Declaration updated.
Ken Raeburn <raeburn@raeburn.org>
parents: 35058
diff changeset
155 extern int set_file_times __P ((const char *, EMACS_TIME, EMACS_TIME));
26641
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
156
65713
ad24f42046b1 * xlwmenu.c (find_next_selectable):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 64770
diff changeset
157 /* defined in keyboard.c */
ad24f42046b1 * xlwmenu.c (find_next_selectable):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 64770
diff changeset
158 extern void set_waiting_for_input __P ((EMACS_TIME *));
ad24f42046b1 * xlwmenu.c (find_next_selectable):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 64770
diff changeset
159
65764
375ab086d366 * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct
Dan Nicolaescu <dann@ics.uci.edu>
parents: 65713
diff changeset
160 /* When lisp.h is not included Lisp_Object is not defined (this can
375ab086d366 * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct
Dan Nicolaescu <dann@ics.uci.edu>
parents: 65713
diff changeset
161 happen when this files is used outside the src directory).
375ab086d366 * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct
Dan Nicolaescu <dann@ics.uci.edu>
parents: 65713
diff changeset
162 Use GCPRO1 to determine if lisp.h was included. */
375ab086d366 * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct
Dan Nicolaescu <dann@ics.uci.edu>
parents: 65713
diff changeset
163 #ifdef GCPRO1
375ab086d366 * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct
Dan Nicolaescu <dann@ics.uci.edu>
parents: 65713
diff changeset
164 /* defined in dired.c */
375ab086d366 * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct
Dan Nicolaescu <dann@ics.uci.edu>
parents: 65713
diff changeset
165 extern Lisp_Object make_time __P ((time_t));
375ab086d366 * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct
Dan Nicolaescu <dann@ics.uci.edu>
parents: 65713
diff changeset
166 #endif
375ab086d366 * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct
Dan Nicolaescu <dann@ics.uci.edu>
parents: 65713
diff changeset
167
26641
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
168 /* Compare times T1 and T2. Value is 0 if T1 and T2 are the same.
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
169 Value is < 0 if T1 is less than T2. Value is > 0 otherwise. */
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
170
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
171 #define EMACS_TIME_CMP(T1, T2) \
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
172 (EMACS_SECS (T1) - EMACS_SECS (T2) \
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
173 + (EMACS_SECS (T1) == EMACS_SECS (T2) \
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
174 ? EMACS_USECS (T1) - EMACS_USECS (T2) \
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
175 : 0))
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
176
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
177 /* Compare times T1 and T2 for equality, inequality etc. */
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
178
26644
14334ad07b74 Correct typo.
Gerd Moellmann <gerd@gnu.org>
parents: 26641
diff changeset
179 #define EMACS_TIME_EQ(T1, T2) (EMACS_TIME_CMP (T1, T2) == 0)
14334ad07b74 Correct typo.
Gerd Moellmann <gerd@gnu.org>
parents: 26641
diff changeset
180 #define EMACS_TIME_NE(T1, T2) (EMACS_TIME_CMP (T1, T2) != 0)
14334ad07b74 Correct typo.
Gerd Moellmann <gerd@gnu.org>
parents: 26641
diff changeset
181 #define EMACS_TIME_GT(T1, T2) (EMACS_TIME_CMP (T1, T2) > 0)
14334ad07b74 Correct typo.
Gerd Moellmann <gerd@gnu.org>
parents: 26641
diff changeset
182 #define EMACS_TIME_GE(T1, T2) (EMACS_TIME_CMP (T1, T2) >= 0)
14334ad07b74 Correct typo.
Gerd Moellmann <gerd@gnu.org>
parents: 26641
diff changeset
183 #define EMACS_TIME_LT(T1, T2) (EMACS_TIME_CMP (T1, T2) < 0)
14334ad07b74 Correct typo.
Gerd Moellmann <gerd@gnu.org>
parents: 26641
diff changeset
184 #define EMACS_TIME_LE(T1, T2) (EMACS_TIME_CMP (T1, T2) <= 0)
26641
7947290d87b6 (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
Gerd Moellmann <gerd@gnu.org>
parents: 14186
diff changeset
185
29559
80c2703cecd1 (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
Dave Love <fx@gnu.org>
parents: 29442
diff changeset
186 #endif /* EMACS_SYSTIME_H */
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
187
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
188 /* arch-tag: dcb79915-cf99-4bce-9778-aade71d07651
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 49600
diff changeset
189 (do not change this comment) */