Mercurial > hg > octave-nkf
changeset 5796:20f4bd627a74
[project @ 2006-05-09 02:04:54 by jwe]
author | jwe |
---|---|
date | Tue, 09 May 2006 02:04:55 +0000 |
parents | dd0422e4022c |
children | 11fcab4c461d |
files | src/ChangeLog src/DLD-FUNCTIONS/__gnuplot_raw__.l src/Makefile.in src/defun-dld.h src/defun-int.h src/mk-pkg-add src/mkbuiltins src/mkgendoc |
diffstat | 8 files changed, 63 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,18 @@ 2006-05-08 John W. Eaton <jwe@octave.org> + * Makefile.in (DEFUN_PATTERN): Match DEFUNX_DLD. + * mkbuiltins: Handle XDEFUNX_DLD_INTERNAL. + * mkgendoc: Likewise. + * mk-pkg-add: Likewise. Do all the matching with sed. + * defun-int.h (DEFINE_FUNX_INSTALLER_FUN, DEFINE_FUNX_INSTALLER_FUN2, + DEFINE_FUNX_INSTALLER_FUN3): New macros. + (DEFINE_FUN_INSTALLER_FUN3): Define using DEFINE_FUNX_INSTALLER_FUN3. + (DEFUNX_DLD_INTERNAL): New macro. + * defun-dld.h (DEFUNX_DLD): New macro. + + * DLD-FUNCTIONS/__gnuplot_raw__.l: Mark __gnuplot_set__ as a + command, not a rawcommand. + * load-save.cc: No need to handle built-in variables. * help.cc (simple_help): No need to handle built-in variables.
--- a/src/DLD-FUNCTIONS/__gnuplot_raw__.l +++ b/src/DLD-FUNCTIONS/__gnuplot_raw__.l @@ -26,10 +26,10 @@ %{ // PKG_ADD: mark_as_rawcommand ("__gnuplot_plot__"); -// PKG_ADD: mark_as_rawcommand ("__gnuplot_set__"); // PKG_ADD: mark_as_rawcommand ("__gnuplot_splot__"); // PKG_ADD: mark_as_rawcommand ("__gnuplot_replot__"); +// PKG_ADD: mark_as_command ("__gnuplot_set__"); // PKG_ADD: mark_as_command ("__gnuplot_show__"); // PKG_ADD: atexit ("closeplot");
--- a/src/Makefile.in +++ b/src/Makefile.in @@ -212,7 +212,7 @@ # so we have to repeat ourselves because some stupid egreps don't like # empty elements in alternation patterns. -DEFUN_PATTERN = "^[ \t]*DEF(CONSTFUN|CMD|UN|UN_DLD|UN_TEXT|UN_MAPPER)[ \t]*\\(" +DEFUN_PATTERN = "^[ \t]*DEF(CONSTFUN|CMD|UN|UN_DLD|UNX_DLD|UN_TEXT|UN_MAPPER)[ \t]*\\(" DLD_DEF_FILES_1 := $(patsubst %.l, %.df, $(DLD_XSRC)) DLD_DEF_FILES := $(patsubst %.cc, %.df, $(DLD_DEF_FILES_1))
--- 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
--- a/src/defun-int.h +++ b/src/defun-int.h @@ -75,12 +75,21 @@ DEFINE_FUN_INSTALLER_FUN3(name, doc, cxx_abi) #define DEFINE_FUN_INSTALLER_FUN3(name, doc, cxx_abi) \ + DEFINE_FUNX_INSTALLER_FUN3(#name, F ## name, FS ## name, doc, cxx_abi) + +#define DEFINE_FUNX_INSTALLER_FUN(name, fname, fsname, doc) \ + DEFINE_FUNX_INSTALLER_FUN2(name, fname, fsname, doc, CXX_ABI) + +#define DEFINE_FUNX_INSTALLER_FUN2(name, fname, fsname, doc, cxx_abi) \ + DEFINE_FUNX_INSTALLER_FUN3(name, fname, fsname, doc, cxx_abi) + +#define DEFINE_FUNX_INSTALLER_FUN3(name, fname, fsname, doc, cxx_abi) \ extern "C" \ bool \ - FS ## name ## _ ## cxx_abi (const octave_shlib& shl) \ + fsname ## _ ## cxx_abi (const octave_shlib& shl) \ { \ - check_version (OCTAVE_API_VERSION, #name); \ - install_dld_function (F ## name, #name, shl, doc); \ + check_version (OCTAVE_API_VERSION, name); \ + install_dld_function (fname, name, shl, doc); \ return error_state ? false : true; \ } @@ -119,6 +128,12 @@ XDEFUN_DLD_INTERNAL (name, args_name, nargout_name, is_text_fcn, doc) \ END_INSTALL_BUILTIN +#define DEFUNX_DLD_INTERNAL(name, fname, args_name, nargout_name, \ + is_text_fcn, doc) \ + BEGIN_INSTALL_BUILTIN \ + XDEFUNX_DLD_INTERNAL (name, fname, args_name, nargout_name, is_text_fcn, doc) \ + END_INSTALL_BUILTIN + // Generate code for making another name for an existing function. #define DEFALIAS_INTERNAL(alias, name) \
--- a/src/mk-pkg-add +++ b/src/mk-pkg-add @@ -8,8 +8,7 @@ ## Compute and print the autoloads. base=`basename $f | $SED 's/\.df$//'` - fcns=`grep '^ *XDEFUN_DLD_INTERNAL' $f |\ - $SED -e 's/XDEFUN_DLD_INTERNAL *( *//' -e 's/ *,.*$//' |\ + fcns=`$SED -n -e 's/XDEFUN\(X\|\)_DLD_INTERNAL *( *\("\|\)\([^", ]*\)[", ].*$/\3/p' $f | \ sort -u` if [ -n "$fcns" ]; then for n in $fcns; do
--- a/src/mkbuiltins +++ b/src/mkbuiltins @@ -30,10 +30,21 @@ #endif #if defined (ENABLE_DYNAMIC_LINKING) + #define XDEFUN_DLD_INTERNAL(name, args_name, nargout_name, is_text_fcn, doc) + +#define XDEFUNX_DLD_INTERNAL(name, fname, args_name, nargout_name, \ + is_text_fcn, doc) + #else + #define XDEFUN_DLD_INTERNAL(name, args_name, nargout_name, is_text_fcn, doc) \ XDEFUN_INTERNAL(name, args_name, nargout_name, is_text_fcn, doc) + +#define XDEFUNX_DLD_INTERNAL(name, fname, args_name, nargout_name, \ + is_text_fcn, doc) \ + XDEFUNX_INTERNAL(name, fname, args_name, nargout_name, is_text_fcn, doc) + #endif #define XDEFUN_INTERNAL(name, args_name, nargout_name, is_text_fcn, doc) \
--- a/src/mkgendoc +++ b/src/mkgendoc @@ -27,6 +27,10 @@ #define XDEFUN_DLD_INTERNAL(name, args_name, nargout_name, is_text_fcn, doc) \ print_doc_string (#name, doc); +#define XDEFUNX_DLD_INTERNAL(name, fname, args_name, nargout_name, \ + is_text_fcn, doc) \ + print_doc_string (name, doc); + #define XDEFUN_INTERNAL(name, args_name, nargout_name, is_text_fcn, doc) \ print_doc_string (#name, doc);