Commit 55ba8c02 authored by Paul Eggert's avatar Paul Eggert

Make src headers idempotent and standalone

Redo src/*.h so that each include file is idempotent (that is, can
be included multiple times with the latter inclusions having no
effect) and standalone (that is, can be included by itself,
with no include file other than config.h needed as a prerequisite).
This is standard practice in GNU programs nowadays.
* lwlib/lwlib-widget.h, src/buffer.h, src/category.h, src/character.h:
* src/charset.h, src/coding.h, src/commands.h, src/disptab.h:
* src/fontset.h, src/gnutls.h, src/indent.h, src/keymap.h, src/macros.h:
* src/regex.h [emacs]:
* src/syntax.h, src/systty.h, src/termhooks.h:
Include lisp.h, for Lisp_Object.
* src/buffer.h, src/category.h, src/cm.h, src/commands.h, src/disptab.h:
* src/indent.h, src/intervals.h, src/keyboard.h, src/macros.h:
* src/process.h, src/puresize.h, src/region-cache.h, src/syntax.h:
* src/syssignal.h, src/sysstdio.h, src/systty.h, src/termchar.h:
* src/termopts.h, src/tparam.h, src/unexec.h:
Protect against multiple inclusion.
* src/buffer.h: Include character.h, for STRING_CHAR.
* src/emacsgtkfixed.h (struct frame):
* src/fontset.h (struct face):
* src/region-cache.h (struct buffer):
* src/termhooks.h (struct glyph):
* src/xsettings.h (struct x_display_info):
Add possibly-forward decl.
* src/syntax.h: Include buffer.h, for BVAR.
* src/sysselect.h: Include lisp.h, for eassume.
* src/termchar.h: Include <stdio.h>, for FILE.
* src/widget.h: Include <X11/IntrinsicP.h>, for Widget.
* src/xsettings.h: Include <X11/Xlib.h>, for XEvent.
parent 1e1a326c
...@@ -23,6 +23,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -23,6 +23,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef LWLIB_WIDGET_H #ifndef LWLIB_WIDGET_H
#define LWLIB_WIDGET_H #define LWLIB_WIDGET_H
#include "../src/lisp.h"
typedef enum typedef enum
{ {
NO_CHANGE = 0, NO_CHANGE = 0,
...@@ -96,7 +98,7 @@ typedef struct _widget_value ...@@ -96,7 +98,7 @@ typedef struct _widget_value
/* Whether we should free the toolkit data slot when freeing the /* Whether we should free the toolkit data slot when freeing the
widget_value itself. */ widget_value itself. */
bool free_toolkit_data; bool free_toolkit_data;
#endif #endif
} widget_value; } widget_value;
......
...@@ -18,9 +18,15 @@ GNU General Public License for more details. ...@@ -18,9 +18,15 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_BUFFER_H
#define EMACS_BUFFER_H
#include <sys/types.h> #include <sys/types.h>
#include <time.h> #include <time.h>
#include "character.h"
#include "lisp.h"
INLINE_HEADER_BEGIN INLINE_HEADER_BEGIN
/* Accessing the parameters of the current buffer. */ /* Accessing the parameters of the current buffer. */
...@@ -1377,3 +1383,5 @@ lowercasep (int c) ...@@ -1377,3 +1383,5 @@ lowercasep (int c)
INLINE int upcase (int c) { return uppercasep (c) ? c : upcase1 (c); } INLINE int upcase (int c) { return uppercasep (c) ? c : upcase1 (c); }
INLINE_HEADER_END INLINE_HEADER_END
#endif /* EMACS_BUFFER_H */
...@@ -22,6 +22,8 @@ GNU General Public License for more details. ...@@ -22,6 +22,8 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_CATEGORY_H
#define EMACS_CATEGORY_H
/* We introduce here three types of object: category, category set, /* We introduce here three types of object: category, category set,
and category table. and category table.
...@@ -53,6 +55,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -53,6 +55,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
The second extra slot is a version number of the category table. The second extra slot is a version number of the category table.
But, for the moment, we are not using this slot. */ But, for the moment, we are not using this slot. */
#include "lisp.h"
INLINE_HEADER_BEGIN INLINE_HEADER_BEGIN
#define CATEGORYP(x) RANGED_INTEGERP (0x20, x, 0x7E) #define CATEGORYP(x) RANGED_INTEGERP (0x20, x, 0x7E)
...@@ -116,3 +120,5 @@ CHAR_HAS_CATEGORY (int ch, int category) ...@@ -116,3 +120,5 @@ CHAR_HAS_CATEGORY (int ch, int category)
extern bool word_boundary_p (int, int); extern bool word_boundary_p (int, int);
INLINE_HEADER_END INLINE_HEADER_END
#endif /* EMACS_CATEGORY_H */
...@@ -24,6 +24,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -24,6 +24,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define EMACS_CHARACTER_H #define EMACS_CHARACTER_H
#include <verify.h> #include <verify.h>
#include "lisp.h"
INLINE_HEADER_BEGIN INLINE_HEADER_BEGIN
......
...@@ -28,6 +28,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -28,6 +28,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define EMACS_CHARSET_H #define EMACS_CHARSET_H
#include <verify.h> #include <verify.h>
#include "lisp.h"
INLINE_HEADER_BEGIN INLINE_HEADER_BEGIN
......
...@@ -16,6 +16,9 @@ GNU General Public License for more details. ...@@ -16,6 +16,9 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_CM_H
#define EMACS_CM_H
/* Holds the minimum and maximum costs for the parameterized capabilities. */ /* Holds the minimum and maximum costs for the parameterized capabilities. */
struct parmcap struct parmcap
{ {
...@@ -166,3 +169,5 @@ extern void cmcostinit (struct tty_display_info *); ...@@ -166,3 +169,5 @@ extern void cmcostinit (struct tty_display_info *);
extern void cmgoto (struct tty_display_info *, int, int); extern void cmgoto (struct tty_display_info *, int, int);
extern void Wcm_clear (struct tty_display_info *); extern void Wcm_clear (struct tty_display_info *);
extern int Wcm_init (struct tty_display_info *); extern int Wcm_init (struct tty_display_info *);
#endif /* EMACS_CM_H */
...@@ -26,6 +26,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -26,6 +26,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_CODING_H #ifndef EMACS_CODING_H
#define EMACS_CODING_H #define EMACS_CODING_H
#include "lisp.h"
/* Index to arguments of Fdefine_coding_system_internal. */ /* Index to arguments of Fdefine_coding_system_internal. */
enum define_coding_system_arg_index enum define_coding_system_arg_index
......
...@@ -16,6 +16,10 @@ GNU General Public License for more details. ...@@ -16,6 +16,10 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_COMMANDS_H
#define EMACS_COMMANDS_H
#include "lisp.h"
#define Ctl(c) ((c)&037) #define Ctl(c) ((c)&037)
...@@ -39,3 +43,5 @@ extern Lisp_Object unread_switch_frame; ...@@ -39,3 +43,5 @@ extern Lisp_Object unread_switch_frame;
/* Nonzero if input is coming from the keyboard. */ /* Nonzero if input is coming from the keyboard. */
#define INTERACTIVE (NILP (Vexecuting_kbd_macro) && !noninteractive) #define INTERACTIVE (NILP (Vexecuting_kbd_macro) && !noninteractive)
#endif /* EMACS_COMMANDS_H */
...@@ -18,6 +18,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -18,6 +18,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Access the slots of a display-table, according to their purpose. */ /* Access the slots of a display-table, according to their purpose. */
#ifndef EMACS_DISPTAB_H
#define EMACS_DISPTAB_H
#include "lisp.h"
#define DISP_TABLE_P(obj) \ #define DISP_TABLE_P(obj) \
(CHAR_TABLE_P (obj) \ (CHAR_TABLE_P (obj) \
&& EQ (XCHAR_TABLE (obj)->purpose, Qdisplay_table) \ && EQ (XCHAR_TABLE (obj)->purpose, Qdisplay_table) \
...@@ -92,3 +97,5 @@ extern struct Lisp_Char_Table *buffer_display_table (void); ...@@ -92,3 +97,5 @@ extern struct Lisp_Char_Table *buffer_display_table (void);
#define SET_GLYPH_FROM_CHAR(glyph, c) \ #define SET_GLYPH_FROM_CHAR(glyph, c) \
SET_GLYPH (glyph, c, DEFAULT_FACE_ID) SET_GLYPH (glyph, c, DEFAULT_FACE_ID)
#endif /* EMACS_DISPTAB_H */
...@@ -23,6 +23,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -23,6 +23,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <gtk/gtk.h> #include <gtk/gtk.h>
struct frame;
G_BEGIN_DECLS G_BEGIN_DECLS
extern GtkWidget *emacs_fixed_new (struct frame *f); extern GtkWidget *emacs_fixed_new (struct frame *f);
......
...@@ -26,6 +26,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -26,6 +26,10 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_FONTSET_H #ifndef EMACS_FONTSET_H
#define EMACS_FONTSET_H #define EMACS_FONTSET_H
#include "lisp.h"
struct face;
extern void free_face_fontset (struct frame *, struct face *); extern void free_face_fontset (struct frame *, struct face *);
extern int face_for_char (struct frame *, struct face *, int, extern int face_for_char (struct frame *, struct face *, int,
ptrdiff_t, Lisp_Object); ptrdiff_t, Lisp_Object);
......
...@@ -23,6 +23,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -23,6 +23,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <gnutls/gnutls.h> #include <gnutls/gnutls.h>
#include <gnutls/x509.h> #include <gnutls/x509.h>
#include "lisp.h"
/* This limits the attempts to handshake per process (connection). */ /* This limits the attempts to handshake per process (connection). */
#define GNUTLS_EMACS_HANDSHAKES_LIMIT 100 #define GNUTLS_EMACS_HANDSHAKES_LIMIT 100
......
...@@ -16,6 +16,11 @@ GNU General Public License for more details. ...@@ -16,6 +16,11 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_INDENT_H
#define EMACS_INDENT_H
#include "lisp.h"
struct position struct position
{ {
ptrdiff_t bufpos; ptrdiff_t bufpos;
...@@ -51,3 +56,5 @@ bool disptab_matches_widthtab (struct Lisp_Char_Table *disptab, ...@@ -51,3 +56,5 @@ bool disptab_matches_widthtab (struct Lisp_Char_Table *disptab,
/* Recompute BUF's width table, using the display table DISPTAB. */ /* Recompute BUF's width table, using the display table DISPTAB. */
void recompute_width_table (struct buffer *buf, void recompute_width_table (struct buffer *buf,
struct Lisp_Char_Table *disptab); struct Lisp_Char_Table *disptab);
#endif /* EMACS_INDENT_H */
...@@ -16,6 +16,9 @@ GNU General Public License for more details. ...@@ -16,6 +16,9 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_INTERVALS_H
#define EMACS_INTERVALS_H
#include "dispextern.h" #include "dispextern.h"
INLINE_HEADER_BEGIN INLINE_HEADER_BEGIN
...@@ -295,3 +298,5 @@ extern void syms_of_textprop (void); ...@@ -295,3 +298,5 @@ extern void syms_of_textprop (void);
#include "composite.h" #include "composite.h"
INLINE_HEADER_END INLINE_HEADER_END
#endif /* EMACS_INTERVALS_H */
...@@ -17,6 +17,9 @@ GNU General Public License for more details. ...@@ -17,6 +17,9 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_KEYBOARD_H
#define EMACS_KEYBOARD_H
#include "systime.h" /* for struct timespec, Time */ #include "systime.h" /* for struct timespec, Time */
#include "coding.h" /* for ENCODE_UTF_8 and ENCODE_SYSTEM */ #include "coding.h" /* for ENCODE_UTF_8 and ENCODE_SYSTEM */
#include "termhooks.h" #include "termhooks.h"
...@@ -483,3 +486,5 @@ extern const char *const lispy_function_keys[]; ...@@ -483,3 +486,5 @@ extern const char *const lispy_function_keys[];
#endif #endif
INLINE_HEADER_END INLINE_HEADER_END
#endif /* EMACS_KEYBOARD_H */
...@@ -19,6 +19,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -19,6 +19,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef KEYMAP_H #ifndef KEYMAP_H
#define KEYMAP_H #define KEYMAP_H
#include "lisp.h"
/* The maximum byte size consumed by push_key_description. /* The maximum byte size consumed by push_key_description.
All callers should assure that at least this size of memory is All callers should assure that at least this size of memory is
allocated at the place pointed by the second argument. allocated at the place pointed by the second argument.
......
...@@ -16,6 +16,10 @@ GNU General Public License for more details. ...@@ -16,6 +16,10 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_MACROS_H
#define EMACS_MACROS_H
#include "lisp.h"
/* Number of successful iterations so far /* Number of successful iterations so far
for innermost keyboard macro. for innermost keyboard macro.
...@@ -42,3 +46,5 @@ extern void finalize_kbd_macro_chars (void); ...@@ -42,3 +46,5 @@ extern void finalize_kbd_macro_chars (void);
/* Store a character into kbd macro being defined */ /* Store a character into kbd macro being defined */
extern void store_kbd_macro_char (Lisp_Object); extern void store_kbd_macro_char (Lisp_Object);
#endif /* EMACS_MACROS_H */
...@@ -16,6 +16,9 @@ GNU General Public License for more details. ...@@ -16,6 +16,9 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_PROCESS_H
#define EMACS_PROCESS_H
#ifdef HAVE_SYS_TYPES_H #ifdef HAVE_SYS_TYPES_H
#include <sys/types.h> #include <sys/types.h>
#endif #endif
...@@ -243,3 +246,5 @@ extern Lisp_Object network_interface_info (Lisp_Object); ...@@ -243,3 +246,5 @@ extern Lisp_Object network_interface_info (Lisp_Object);
extern Lisp_Object remove_slash_colon (Lisp_Object); extern Lisp_Object remove_slash_colon (Lisp_Object);
INLINE_HEADER_END INLINE_HEADER_END
#endif /* EMACS_PROCESS_H */
...@@ -16,6 +16,11 @@ GNU General Public License for more details. ...@@ -16,6 +16,11 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_PURESIZE_H
#define EMACS_PURESIZE_H
#include "lisp.h"
INLINE_HEADER_BEGIN INLINE_HEADER_BEGIN
/* Define PURESIZE, the number of bytes of pure Lisp code to leave space for. /* Define PURESIZE, the number of bytes of pure Lisp code to leave space for.
...@@ -92,3 +97,5 @@ CHECK_IMPURE (Lisp_Object obj, void *ptr) ...@@ -92,3 +97,5 @@ CHECK_IMPURE (Lisp_Object obj, void *ptr)
} }
INLINE_HEADER_END INLINE_HEADER_END
#endif /* EMACS_PURESIZE_H */
...@@ -167,6 +167,7 @@ typedef unsigned long reg_syntax_t; ...@@ -167,6 +167,7 @@ typedef unsigned long reg_syntax_t;
extern reg_syntax_t re_syntax_options; extern reg_syntax_t re_syntax_options;
#ifdef emacs #ifdef emacs
# include "lisp.h"
/* In Emacs, this is the string or buffer in which we /* In Emacs, this is the string or buffer in which we
are matching. It is used for looking up syntax properties. */ are matching. It is used for looking up syntax properties. */
extern Lisp_Object re_match_object; extern Lisp_Object re_match_object;
......
...@@ -18,6 +18,8 @@ GNU General Public License for more details. ...@@ -18,6 +18,8 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_REGION_CACHE_H
#define EMACS_REGION_CACHE_H
/* This code was written by Jim Blandy <jimb@cs.oberlin.edu> to help /* This code was written by Jim Blandy <jimb@cs.oberlin.edu> to help
GNU Emacs better support the gene editor written for the University GNU Emacs better support the gene editor written for the University
...@@ -60,6 +62,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -60,6 +62,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
this region has property P" vs. "I don't know if this region has this region has property P" vs. "I don't know if this region has
property P or not." */ property P or not." */
struct buffer;
/* Allocate, initialize and return a new, empty region cache. */ /* Allocate, initialize and return a new, empty region cache. */
struct region_cache *new_region_cache (void); struct region_cache *new_region_cache (void);
...@@ -105,3 +108,5 @@ extern int region_cache_forward (struct buffer *buf, struct region_cache *c, ...@@ -105,3 +108,5 @@ extern int region_cache_forward (struct buffer *buf, struct region_cache *c,
/* Likewise, except before POS rather than after POS. */ /* Likewise, except before POS rather than after POS. */
extern int region_cache_backward (struct buffer *buf, struct region_cache *c, extern int region_cache_backward (struct buffer *buf, struct region_cache *c,
ptrdiff_t pos, ptrdiff_t *next); ptrdiff_t pos, ptrdiff_t *next);
#endif /* EMACS_REGION_CACHE_H */
...@@ -18,6 +18,12 @@ GNU General Public License for more details. ...@@ -18,6 +18,12 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_SYNTAX_H
#define EMACS_SYNTAX_H
#include "buffer.h"
#include "lisp.h"
INLINE_HEADER_BEGIN INLINE_HEADER_BEGIN
extern void update_syntax_table (ptrdiff_t, EMACS_INT, bool, Lisp_Object); extern void update_syntax_table (ptrdiff_t, EMACS_INT, bool, Lisp_Object);
...@@ -213,3 +219,5 @@ extern ptrdiff_t scan_words (ptrdiff_t, EMACS_INT); ...@@ -213,3 +219,5 @@ extern ptrdiff_t scan_words (ptrdiff_t, EMACS_INT);
extern void SETUP_SYNTAX_TABLE_FOR_OBJECT (Lisp_Object, ptrdiff_t, ptrdiff_t); extern void SETUP_SYNTAX_TABLE_FOR_OBJECT (Lisp_Object, ptrdiff_t, ptrdiff_t);
INLINE_HEADER_END INLINE_HEADER_END
#endif /* EMACS_SYNTAX_H */
...@@ -23,6 +23,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -23,6 +23,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <sys/select.h> #include <sys/select.h>
#endif #endif
#include "lisp.h"
/* The w32 build defines select stuff in w32.h, which is included /* The w32 build defines select stuff in w32.h, which is included
where w32 needs it, but not where sysselect.h is included. The w32 where w32 needs it, but not where sysselect.h is included. The w32
definitions in w32.h are incompatible with the below. */ definitions in w32.h are incompatible with the below. */
......
...@@ -17,6 +17,9 @@ GNU General Public License for more details. ...@@ -17,6 +17,9 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_SYSSIGNAL_H
#define EMACS_SYSSIGNAL_H
#include <signal.h> #include <signal.h>
extern void init_signals (bool); extern void init_signals (bool);
...@@ -72,3 +75,5 @@ char const *safe_strsignal (int) ATTRIBUTE_CONST; ...@@ -72,3 +75,5 @@ char const *safe_strsignal (int) ATTRIBUTE_CONST;
#endif #endif
void deliver_process_signal (int, signal_handler_t); void deliver_process_signal (int, signal_handler_t);
#endif /* EMACS_SYSSIGNAL_H */
...@@ -17,6 +17,9 @@ GNU General Public License for more details. ...@@ -17,6 +17,9 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_SYSSTDIO_H
#define EMACS_SYSSTDIO_H
#include <fcntl.h> #include <fcntl.h>
#include <stdio.h> #include <stdio.h>
...@@ -29,3 +32,5 @@ extern FILE *emacs_fopen (char const *, char const *); ...@@ -29,3 +32,5 @@ extern FILE *emacs_fopen (char const *, char const *);
# define FOPEN_BINARY "" # define FOPEN_BINARY ""
# define FOPEN_TEXT "" # define FOPEN_TEXT ""
#endif #endif
#endif /* EMACS_SYSSTDIO_H */
...@@ -16,6 +16,9 @@ GNU General Public License for more details. ...@@ -16,6 +16,9 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_SYSTTY_H
#define EMACS_SYSTTY_H
/* Include the proper files. */ /* Include the proper files. */
#ifndef DOS_NT #ifndef DOS_NT
...@@ -37,6 +40,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -37,6 +40,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <unistd.h> #include <unistd.h>
#include "lisp.h"
/* Try to establish the correct character to disable terminal functions /* Try to establish the correct character to disable terminal functions
in a system-independent manner. Note that USG (at least) define in a system-independent manner. Note that USG (at least) define
...@@ -85,3 +90,5 @@ extern int emacs_set_tty (int, struct emacs_tty *, bool) EXTERNALLY_VISIBLE; ...@@ -85,3 +90,5 @@ extern int emacs_set_tty (int, struct emacs_tty *, bool) EXTERNALLY_VISIBLE;
extern void suppress_echo_on_tty (int); extern void suppress_echo_on_tty (int);
extern int serial_open (Lisp_Object); extern int serial_open (Lisp_Object);
extern void serial_configure (struct Lisp_Process *, Lisp_Object); extern void serial_configure (struct Lisp_Process *, Lisp_Object);
#endif /* EMACS_SYSTTY_H */
...@@ -16,6 +16,10 @@ GNU General Public License for more details. ...@@ -16,6 +16,10 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_TERMCHAR_H
#define EMACS_TERMCHAR_H
#include <stdio.h>
#include "dispextern.h" #include "dispextern.h"
/* Each termcap frame points to its own struct tty_output object in /* Each termcap frame points to its own struct tty_output object in
...@@ -230,3 +234,5 @@ extern struct tty_display_info *tty_list; ...@@ -230,3 +234,5 @@ extern struct tty_display_info *tty_list;
: (emacs_abort (), (struct tty_display_info *) 0)) : (emacs_abort (), (struct tty_display_info *) 0))
#define CURTTY() FRAME_TTY (SELECTED_FRAME()) #define CURTTY() FRAME_TTY (SELECTED_FRAME())
#endif /* EMACS_TERMCHAR_H */
...@@ -23,8 +23,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ ...@@ -23,8 +23,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Miscellanea. */ /* Miscellanea. */
#include "lisp.h"
#include "systime.h" /* for Time */ #include "systime.h" /* for Time */
struct glyph;
INLINE_HEADER_BEGIN INLINE_HEADER_BEGIN
enum scroll_bar_part { enum scroll_bar_part {
......
...@@ -17,9 +17,13 @@ GNU General Public License for more details. ...@@ -17,9 +17,13 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifndef EMACS_TERMOPTS_H
#define EMACS_TERMOPTS_H