]> git.eshelyaron.com Git - emacs.git/commitdiff
Make src headers idempotent and standalone
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 16 Oct 2015 21:54:09 +0000 (14:54 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 16 Oct 2015 21:56:11 +0000 (14:56 -0700)
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.

33 files changed:
lwlib/lwlib-widget.h
src/buffer.h
src/category.h
src/character.h
src/charset.h
src/cm.h
src/coding.h
src/commands.h
src/disptab.h
src/emacsgtkfixed.h
src/fontset.h
src/gnutls.h
src/indent.h
src/intervals.h
src/keyboard.h
src/keymap.h
src/macros.h
src/process.h
src/puresize.h
src/regex.h
src/region-cache.h
src/syntax.h
src/sysselect.h
src/syssignal.h
src/sysstdio.h
src/systty.h
src/termchar.h
src/termhooks.h
src/termopts.h
src/tparam.h
src/unexec.h
src/widget.h
src/xsettings.h

index 92ae7e61a681ae2378d64e292d14b5b56b4bbba4..6ec6d272c341b75ab94097e01b1a699fa9549d7b 100644 (file)
@@ -23,6 +23,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #ifndef LWLIB_WIDGET_H
 #define LWLIB_WIDGET_H
 
+#include "../src/lisp.h"
+
 typedef enum
 {
   NO_CHANGE = 0,
@@ -96,7 +98,7 @@ typedef struct _widget_value
   /* Whether we should free the toolkit data slot when freeing the
      widget_value itself.  */
   bool free_toolkit_data;
-#endif  
+#endif
 
 } widget_value;
 
index a0410d454cda27a1be661224168f9710d892b118..f80530a0cdbe082cfa6a5c0247312c63c1677796 100644 (file)
@@ -18,9 +18,15 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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 <time.h>
 
+#include "character.h"
+#include "lisp.h"
+
 INLINE_HEADER_BEGIN
 
 /* Accessing the parameters of the current buffer.  */
@@ -1377,3 +1383,5 @@ lowercasep (int c)
 INLINE int upcase (int c) { return uppercasep (c) ? c : upcase1 (c); }
 
 INLINE_HEADER_END
+
+#endif /* EMACS_BUFFER_H */
index ef784c8cbf5469ee8fb91a6c6b7c476b7d483bff..02f9a193ae887d3c56abe0aa1523743919969ae1 100644 (file)
@@ -22,6 +22,8 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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,
    and category table.
@@ -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.
    But, for the moment, we are not using this slot.  */
 
+#include "lisp.h"
+
 INLINE_HEADER_BEGIN
 
 #define CATEGORYP(x) RANGED_INTEGERP (0x20, x, 0x7E)
@@ -116,3 +120,5 @@ CHAR_HAS_CATEGORY (int ch, int category)
 extern bool word_boundary_p (int, int);
 
 INLINE_HEADER_END
+
+#endif /* EMACS_CATEGORY_H */
index 67d4bca4a239ba29e48807ce8f40f2b5182b195b..871c1c3de959e6a3b420c2a57ff4051fd5ff7e38 100644 (file)
@@ -24,6 +24,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #define EMACS_CHARACTER_H
 
 #include <verify.h>
+#include "lisp.h"
 
 INLINE_HEADER_BEGIN
 
index f6575985a4746733f2658ae5934ac11e8ac7db32..d2daf2b7e290082da9bb59bc846c831b014b1dc7 100644 (file)
@@ -28,6 +28,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #define EMACS_CHARSET_H
 
 #include <verify.h>
+#include "lisp.h"
 
 INLINE_HEADER_BEGIN
 
index 829abc083f711b25348f4cc3402170ade35a9bf1..1ade6d1782a7b647d6e25adfcb80a59123e73929 100644 (file)
--- a/src/cm.h
+++ b/src/cm.h
@@ -16,6 +16,9 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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.  */
 struct parmcap
   {
@@ -166,3 +169,5 @@ extern void cmcostinit (struct tty_display_info *);
 extern void cmgoto (struct tty_display_info *, int, int);
 extern void Wcm_clear (struct tty_display_info *);
 extern int Wcm_init (struct tty_display_info *);
+
+#endif /* EMACS_CM_H */
index c73a9cc32636dc934a954b0344d2aff4251ee018..2bf51c488832c034cf3ffaa8d6637bf0efa2e1d3 100644 (file)
@@ -26,6 +26,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #ifndef EMACS_CODING_H
 #define EMACS_CODING_H
 
+#include "lisp.h"
+
 /* Index to arguments of Fdefine_coding_system_internal.  */
 
 enum define_coding_system_arg_index
index 19cd2e49890c4c760fc74f8897c6b490da51a321..e9383341cc946d4508ac253b2f0e800ad290a1fa 100644 (file)
@@ -16,6 +16,10 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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)
 
@@ -39,3 +43,5 @@ extern Lisp_Object unread_switch_frame;
 /* Nonzero if input is coming from the keyboard.  */
 
 #define INTERACTIVE (NILP (Vexecuting_kbd_macro) && !noninteractive)
+
+#endif /* EMACS_COMMANDS_H */
index 7afc862312a4201d477c168f3e3835788c8a2caa..3a319c4d21749836c1ca7da1bd6c97f17851696d 100644 (file)
@@ -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.  */
 
+#ifndef EMACS_DISPTAB_H
+#define EMACS_DISPTAB_H
+
+#include "lisp.h"
+
 #define DISP_TABLE_P(obj)                                                  \
   (CHAR_TABLE_P (obj)                                                      \
    && EQ (XCHAR_TABLE (obj)->purpose, Qdisplay_table)                      \
@@ -92,3 +97,5 @@ extern struct Lisp_Char_Table *buffer_display_table (void);
 
 #define SET_GLYPH_FROM_CHAR(glyph, c) \
   SET_GLYPH (glyph, c, DEFAULT_FACE_ID)
+
+#endif /* EMACS_DISPTAB_H */
index bcf1cd9072ee5c6dad80a7fc6aef358173d22e07..a969a6d265b2ccbc556ebd482a7402c4e898896b 100644 (file)
@@ -23,6 +23,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <gtk/gtk.h>
 
+struct frame;
+
 G_BEGIN_DECLS
 
 extern GtkWidget *emacs_fixed_new (struct frame *f);
index 610394431e1e1f9f36b078ae0f8a4ca0ce71eb95..aa69051fc057afbaa517616ec1682e80bbb8d0d4 100644 (file)
@@ -26,6 +26,10 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #ifndef EMACS_FONTSET_H
 #define EMACS_FONTSET_H
 
+#include "lisp.h"
+
+struct face;
+
 extern void free_face_fontset (struct frame *, struct face *);
 extern int face_for_char (struct frame *, struct face *, int,
                           ptrdiff_t, Lisp_Object);
index fd696820aec446926a7801abf56fc01a1e556344..9c804b8bd59f63f19944cde505fe6d1ca10a960e 100644 (file)
@@ -23,6 +23,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <gnutls/gnutls.h>
 #include <gnutls/x509.h>
 
+#include "lisp.h"
+
 /* This limits the attempts to handshake per process (connection).  */
 #define GNUTLS_EMACS_HANDSHAKES_LIMIT 100
 
index cece9e4f33b0e7dc5166808b29252c06561d6371..037fd744521c9e3d87c0e6ce2eeb2a787d0afe23 100644 (file)
@@ -16,6 +16,11 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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
   {
     ptrdiff_t bufpos;
@@ -51,3 +56,5 @@ bool disptab_matches_widthtab (struct Lisp_Char_Table *disptab,
 /* Recompute BUF's width table, using the display table DISPTAB.  */
 void recompute_width_table (struct buffer *buf,
                             struct Lisp_Char_Table *disptab);
+
+#endif /* EMACS_INDENT_H */
index 30fb4b10b02868245e82c09c1223327df87b8caa..5a7829de93c7aece4841862e6ff0bcd113030d79 100644 (file)
@@ -16,6 +16,9 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#ifndef EMACS_INTERVALS_H
+#define EMACS_INTERVALS_H
+
 #include "dispextern.h"
 
 INLINE_HEADER_BEGIN
@@ -295,3 +298,5 @@ extern void syms_of_textprop (void);
 #include "composite.h"
 
 INLINE_HEADER_END
+
+#endif /* EMACS_INTERVALS_H */
index 0402e0a582c81c5f506aab21be7d5f24af9b921d..67afc3bc2bec2c8db1c4b464e7a4af67ad49ed27 100644 (file)
@@ -17,6 +17,9 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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 "coding.h"             /* for ENCODE_UTF_8 and ENCODE_SYSTEM */
 #include "termhooks.h"
@@ -483,3 +486,5 @@ extern const char *const lispy_function_keys[];
 #endif
 
 INLINE_HEADER_END
+
+#endif /* EMACS_KEYBOARD_H */
index 215dd3f289fb595104459c194dd742ccbbfce6a9..e7a3b0a243657a0c25a8c5660f9f54c615aa9fc8 100644 (file)
@@ -19,6 +19,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #ifndef KEYMAP_H
 #define KEYMAP_H
 
+#include "lisp.h"
+
 /* The maximum byte size consumed by push_key_description.
    All callers should assure that at least this size of memory is
    allocated at the place pointed by the second argument.
index eab8041e72d1c682374bef9b79c26c0857dfbf82..46150ad73aeea76a9cb0c4d8491ce1317635a21d 100644 (file)
@@ -16,6 +16,10 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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
    for innermost keyboard macro.
@@ -42,3 +46,5 @@ extern void finalize_kbd_macro_chars (void);
 /* Store a character into kbd macro being defined */
 
 extern void store_kbd_macro_char (Lisp_Object);
+
+#endif /* EMACS_MACROS_H */
index 24bad45a24ba8e2c9a43ced9e0c630154d67bea3..9ee5a05ebd24a3e103f324633cf20196d0bcc027 100644 (file)
@@ -16,6 +16,9 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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
 #include <sys/types.h>
 #endif
@@ -243,3 +246,5 @@ extern Lisp_Object network_interface_info (Lisp_Object);
 extern Lisp_Object remove_slash_colon (Lisp_Object);
 
 INLINE_HEADER_END
+
+#endif /* EMACS_PROCESS_H */
index c61b31f2bde03245ffc6e3e64831e1a3c3763e5c..f07562429d53d831b3626b36ef4eeb2e64029f28 100644 (file)
@@ -16,6 +16,11 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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
 
 /* 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)
 }
 
 INLINE_HEADER_END
+
+#endif /* EMACS_PURESIZE_H */
index c89ca46d4bd1742e3b9f1d5f5af463c9dd231831..eaa7729a5fba9488fa7971e2e71fc72d3b211ba6 100644 (file)
@@ -167,6 +167,7 @@ typedef unsigned long reg_syntax_t;
 extern reg_syntax_t re_syntax_options;
 
 #ifdef emacs
+# include "lisp.h"
 /* In Emacs, this is the string or buffer in which we
    are matching.  It is used for looking up syntax properties.  */
 extern Lisp_Object re_match_object;
index 1f336cebaf772439a5210669c9aeebaeaa6b6f3d..2814df47c23f9dd1737bbffe0c4c868747d789e2 100644 (file)
@@ -18,6 +18,8 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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
    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/>.  */
    this region has property P" vs. "I don't know if this region has
    property P or not."  */
 
+struct buffer;
 
 /* Allocate, initialize and return a new, empty region cache.  */
 struct region_cache *new_region_cache (void);
@@ -105,3 +108,5 @@ extern int region_cache_forward (struct buffer *buf, struct region_cache *c,
 /* Likewise, except before POS rather than after POS.  */
 extern int region_cache_backward (struct buffer *buf, struct region_cache *c,
                                  ptrdiff_t pos, ptrdiff_t *next);
+
+#endif /* EMACS_REGION_CACHE_H */
index 34b652ba9c8604b81e217d161cd00b642e62fd2a..06ce0ec55df6e4fe5cbd04047076b8a41fb64044 100644 (file)
@@ -18,6 +18,12 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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
 
 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);
 extern void SETUP_SYNTAX_TABLE_FOR_OBJECT (Lisp_Object, ptrdiff_t, ptrdiff_t);
 
 INLINE_HEADER_END
+
+#endif /* EMACS_SYNTAX_H */
index 54f90fb3965816a707ceecbd00489962355f430b..d6c5d1c7148b62c7d9e3f27040fe342e510ca154 100644 (file)
@@ -23,6 +23,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <sys/select.h>
 #endif
 
+#include "lisp.h"
+
 /* 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
    definitions in w32.h are incompatible with the below.  */
index 5c14479ccad0f20e0075b3f94c3b9858664e98de..ec6099408c4c2720927f46051d9c249f65e4114a 100644 (file)
@@ -17,6 +17,9 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#ifndef EMACS_SYSSIGNAL_H
+#define EMACS_SYSSIGNAL_H
+
 #include <signal.h>
 
 extern void init_signals (bool);
@@ -72,3 +75,5 @@ char const *safe_strsignal (int) ATTRIBUTE_CONST;
 #endif
 
 void deliver_process_signal (int, signal_handler_t);
+
+#endif /* EMACS_SYSSIGNAL_H */
index c97c4f883fc9ac079c2ab82cdfd979d03efbdeaa..166823049d2689b2b5bf9c25b4ac3c1d97dd4b32 100644 (file)
@@ -17,6 +17,9 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#ifndef EMACS_SYSSTDIO_H
+#define EMACS_SYSSTDIO_H
+
 #include <fcntl.h>
 #include <stdio.h>
 
@@ -29,3 +32,5 @@ extern FILE *emacs_fopen (char const *, char const *);
 # define FOPEN_BINARY ""
 # define FOPEN_TEXT ""
 #endif
+
+#endif /* EMACS_SYSSTDIO_H */
index 3a461565e5d623b6702c0eec5adf0a226aa1c6df..1022455c5880c7b25df26789e54d8be713df2a74 100644 (file)
@@ -16,6 +16,9 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#ifndef EMACS_SYSTTY_H
+#define EMACS_SYSTTY_H
+
 /* Include the proper files.  */
 
 #ifndef DOS_NT
@@ -37,6 +40,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <unistd.h>
 
+#include "lisp.h"
+
 \f
 /* Try to establish the correct character to disable terminal functions
    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;
 extern void suppress_echo_on_tty (int);
 extern int serial_open (Lisp_Object);
 extern void serial_configure (struct Lisp_Process *, Lisp_Object);
+
+#endif /* EMACS_SYSTTY_H */
index d8066d7b2b3a308a2f65726e7fa447f3b1d23924..06c042797b61185eba8095721b0139cd4864cec8 100644 (file)
@@ -16,6 +16,10 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 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"
 
 /* Each termcap frame points to its own struct tty_output object in
@@ -230,3 +234,5 @@ extern struct tty_display_info *tty_list;
    : (emacs_abort (), (struct tty_display_info *) 0))
 
 #define CURTTY() FRAME_TTY (SELECTED_FRAME())
+
+#endif /* EMACS_TERMCHAR_H */
index 88c62df7205397785489125a6ff2291239b4201f..8bde9877c33287c658ee78d40099eaa7e2115215 100644 (file)
@@ -23,8 +23,11 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Miscellanea.   */
 
+#include "lisp.h"
 #include "systime.h" /* for Time */
 
+struct glyph;
+
 INLINE_HEADER_BEGIN
 
 enum scroll_bar_part {
index c54d392ddafe023b1f7e7d5be7f5063fd2c8310e..c5cd56316ce11afd6bc3bf6b0fa8ac031c5d9ddd 100644 (file)
@@ -17,9 +17,13 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#ifndef EMACS_TERMOPTS_H
+#define EMACS_TERMOPTS_H
 
 /* Nonzero means use interrupt-driven input.  */
 extern bool interrupt_input;
 
 /* Nonzero while interrupts are temporarily deferred during redisplay.  */
 extern bool interrupts_deferred;
+
+#endif /* EMACS_TERMOPTS_H */
index 59fc859c4a35218ebb9364a7eef347b29e853fd5..b391e89094fc9d33cf8ec85a27c578648e1dd8f2 100644 (file)
@@ -17,6 +17,8 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
+#ifndef EMACS_TPARAM_H
+#define EMACS_TPARAM_H
 
 /* Don't try to include termcap.h.  On some systems, configure finds a
    non-standard termcap.h that the main build won't find.  */
@@ -33,3 +35,5 @@ char *tparam (const char *, char *, int, int, int, int, int);
 extern char PC;
 extern char *BC;
 extern char *UP;
+
+#endif /* EMACS_TPARAM_H */
index 343eb6d8db5fee089deaaf88e40be995fc0293a2..cdb2e8016ea5d8b81cf22ee7a39945127d6262f8 100644 (file)
@@ -1 +1,4 @@
+#ifndef EMACS_UNEXEC_H
+#define EMACS_UNEXEC_H
 void unexec (const char *, const char *);
+#endif /* EMACS_UNEXEC_H */
index a782035d72d509ccfdf644dee552b8f5ebcef79c..e2e19b0d40f3c90f085de5f53eb566c99a7e96c0 100644 (file)
@@ -21,6 +21,8 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #ifndef _EmacsFrame_h
 #define _EmacsFrame_h
 
+#include <X11/IntrinsicP.h>
+
 #define XtNminibuffer "minibuffer"
 #define XtCMinibuffer "Minibuffer"
 #define XtNunsplittable "unsplittable"
index 7ef94a03a899fe97e2da34e0df213d9ea350bc88..71b71d6e9221afffe8367c109e9639f33ca80ac7 100644 (file)
@@ -20,6 +20,10 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #ifndef XSETTINGS_H
 #define XSETTINGS_H
 
+#include <X11/Xlib.h>
+
+struct x_display_info;
+
 extern void xsettings_initialize (struct x_display_info *);
 extern void xft_settings_event (struct x_display_info *, const XEvent *);
 extern const char *xsettings_get_system_font (void);