aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorDan Nicolaescu2010-07-06 19:49:37 -0700
committerDan Nicolaescu2010-07-06 19:49:37 -0700
commitc0f2f16b6a0801ec30f518db6bcf7f27bb643122 (patch)
treeca7fe1bae3e14ab53a473fb3b6a3ebac321fad20 /src/lisp.h
parent67aecef9f5192d2ab0cee83befc4e2c31fcdf806 (diff)
downloademacs-c0f2f16b6a0801ec30f518db6bcf7f27bb643122.tar.gz
emacs-c0f2f16b6a0801ec30f518db6bcf7f27bb643122.zip
Make the function member of Lisp_Subr use standard C prototypes.
* src/lisp.h (struct Lisp_Subr): Use a union for the function member. (DECL_ALIGN): Add a cast for the function. * src/eval.c (Feval, Ffuncall): Use the proper type for each type function call.
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 4874985abf4..3a3cde27897 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -965,7 +965,18 @@ struct Lisp_Bool_Vector
965struct Lisp_Subr 965struct Lisp_Subr
966 { 966 {
967 EMACS_UINT size; 967 EMACS_UINT size;
968 Lisp_Object (*function) (); 968 union {
969 Lisp_Object (*a0) (void);
970 Lisp_Object (*a1) (Lisp_Object);
971 Lisp_Object (*a2) (Lisp_Object, Lisp_Object);
972 Lisp_Object (*a3) (Lisp_Object, Lisp_Object, Lisp_Object);
973 Lisp_Object (*a4) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
974 Lisp_Object (*a5) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
975 Lisp_Object (*a6) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
976 Lisp_Object (*a7) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
977 Lisp_Object (*a8) (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object);
978 Lisp_Object (*am) (int, Lisp_Object *);
979 } function;
969 short min_args, max_args; 980 short min_args, max_args;
970 const char *symbol_name; 981 const char *symbol_name;
971 char *intspec; 982 char *intspec;
@@ -1768,7 +1779,7 @@ typedef struct {
1768 Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \ 1779 Lisp_Object fnname DEFUN_ARGS_ ## maxargs ; \
1769 DECL_ALIGN (struct Lisp_Subr, sname) = \ 1780 DECL_ALIGN (struct Lisp_Subr, sname) = \
1770 { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \ 1781 { PVEC_SUBR | (sizeof (struct Lisp_Subr) / sizeof (EMACS_INT)), \
1771 fnname, minargs, maxargs, lname, intspec, 0}; \ 1782 (Lisp_Object(*)(void)) fnname, minargs, maxargs, lname, intspec, 0}; \
1772 Lisp_Object fnname 1783 Lisp_Object fnname
1773 1784
1774/* Note that the weird token-substitution semantics of ANSI C makes 1785/* Note that the weird token-substitution semantics of ANSI C makes