]> code.delx.au - gnu-emacs/blobdiff - src/systime.h
Prevent bar cursor overwriting next glyph (bug#16856)
[gnu-emacs] / src / systime.h
index 40139a1b93144180a03f0cee4c4d32dfcbe0bf09..355a3c23fa0deaff273ea6803be06732a1c16546 100644 (file)
@@ -1,12 +1,12 @@
 /* systime.h - System-dependent definitions for time manipulations.
-   Copyright (C) 1993-1994, 2002-2015 Free Software Foundation, Inc.
+   Copyright (C) 1993-1994, 2002-2016 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
 GNU Emacs is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -83,13 +83,25 @@ extern struct timeval make_timeval (struct timespec) ATTRIBUTE_CONST;
 extern void set_waiting_for_input (struct timespec *);
 
 /* When lisp.h is not included Lisp_Object is not defined (this can
-   happen when this files is used outside the src directory).
-   Use GCPRO1 to determine if lisp.h was included.  */
-#ifdef GCPRO1
+   happen when this file is used outside the src directory).  */
+#ifdef emacs
+
+/* Emacs uses the integer list (HI LO US PS) to represent the time
+   (HI << LO_TIME_BITS) + LO + US / 1e6 + PS / 1e12.  */
+enum { LO_TIME_BITS = 16 };
+
+/* A Lisp time (HI LO US PS), sans the cons cells.  */
+struct lisp_time
+{
+  EMACS_INT hi;
+  int lo, us, ps;
+};
+
 /* defined in editfns.c */
 extern Lisp_Object make_lisp_time (struct timespec);
-extern bool decode_time_components (Lisp_Object, Lisp_Object, Lisp_Object,
-                                   Lisp_Object, struct timespec *, double *);
+extern int decode_time_components (Lisp_Object, Lisp_Object, Lisp_Object,
+                                  Lisp_Object, struct lisp_time *, double *);
+extern struct timespec lisp_to_timespec (struct lisp_time);
 extern struct timespec lisp_time_argument (Lisp_Object);
 #endif