diff src/defun-dld.h @ 5796:20f4bd627a74

[project @ 2006-05-09 02:04:54 by jwe]
author jwe
date Tue, 09 May 2006 02:04:55 +0000
parents 4c8a2e4e0717
children 93c65f2a5668
line wrap: on
line diff
--- a/src/defun-dld.h
+++ b/src/defun-dld.h
@@ -43,7 +43,15 @@
 #if defined (MAKE_BUILTINS)
 
 #define DEFUN_DLD(name, args_name, nargout_name, doc) \
-  DEFUN_DLD_INTERNAL (name, args_name, nargout_name, 0, doc)
+  DEFUN_DLD_INTERNAL (name, args_name, nargout_name, false, doc)
+
+// This one can be used when `name' cannot be used directly (if it is
+// already defined as a macro).  In that case, name is already a
+// quoted string, and the internal name of the function must be passed
+// too (the convention is to use a prefix of "F", so "foo" becomes "Ffoo").
+
+#define DEFUNX_DLD(name, fname, fsname, args_name, nargout_name, doc) \
+  DEFUNX_DLD_INTERNAL (name, fname, args_name, nargout_name, false, doc)
 
 #else
 
@@ -52,6 +60,11 @@
   DEFINE_FUN_INSTALLER_FUN (name, doc) \
   DECLARE_FUN (name, args_name, nargout_name)
 
+#define DEFUNX_DLD(name, fname, fsname, args_name, nargout_name, doc) \
+  DECLARE_FUNX (fname, args_name, nargout_name); \
+  DEFINE_FUNX_INSTALLER_FUN (name, fname, fsname, doc) \
+  DECLARE_FUNX (fname, args_name, nargout_name)
+
 #endif
 
 #endif