From e6faba7f613f66d3a82465145d1d6d1bfcdf893b Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 20 Jan 1994 14:41:49 +0000 Subject: [PATCH] (VOID_TO_LISP, CVOID_TO_LISP, LISP_TO_VOID, LISP_TO_CVOID): New macros. (Vinstallation_directory): Declared. --- src/lisp.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/lisp.h b/src/lisp.h index dd63c95aae8..4a26edc894c 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -604,6 +604,34 @@ typedef unsigned char UCHAR; #define CHAR_CTL (0x400000) #define CHAR_META (0x800000) +#ifdef USE_X_TOOLKIT +#ifdef NO_UNION_TYPE +/* Use this for turning a (void *) into a Lisp_Object, as when the + Lisp_Object is passed into a toolkit callback function. */ +#define VOID_TO_LISP(larg,varg) \ + do { ((larg) = ((Lisp_Object) (varg))); } while (0) +#define CVOID_TO_LISP VOID_TO_LISP + +/* Use this for turning a Lisp_Object into a (void *), as when the + Lisp_Object is passed into a toolkit callback function. */ +#define LISP_TO_VOID(larg) ((void *) (larg)) +#define LISP_TO_CVOID(varg) ((const void *) (larg)) + +#else /* not NO_UNION_TYPE */ +/* Use this for turning a (void *) into a Lisp_Object, as when the + Lisp_Object is passed into a toolkit callback function. */ +#define VOID_TO_LISP(larg,varg) \ + do { ((larg).v = (void *) (varg)); } while (0) +#define CVOID_TO_LISP(larg,varg) \ + do { ((larg).cv = (const void *) (varg)); } while (0) + +/* Use this for turning a Lisp_Object into a (void *), as when the + Lisp_Object is passed into a toolkit callback function. */ +#define LISP_TO_VOID(larg) ((larg).v) +#define LISP_TO_CVOID(larg) ((larg).cv) +#endif /* not NO_UNION_TYPE */ +#endif /* USE_X_TOOLKIT */ + /* The glyph datatype, used to represent characters on the display. */ @@ -1300,6 +1328,7 @@ extern Lisp_Object Frubber_band_rectangle (); /* defined in emacs.c */ extern Lisp_Object decode_env_path (); extern Lisp_Object Vinvocation_name, Vinvocation_directory; +extern Lisp_Object Vinstallation_directory; void shut_down_emacs ( /* int signal, int no_x, Lisp_Object stuff */ ); /* Nonzero means don't do interactive redisplay and don't change tty modes */ extern int noninteractive; -- 2.39.5