annotate src/defun-dld.h @ 7017:a1dbe9d80eee

[project @ 2007-10-12 21:27:11 by jwe]
author jwe
date Fri, 12 Oct 2007 21:27:37 +0000
parents 93c65f2a5668
children 745a8299c2b5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
525
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
1 /*
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
2
7017
a1dbe9d80eee [project @ 2007-10-12 21:27:11 by jwe]
jwe
parents: 7016
diff changeset
3 Copyright (C) 1994, 1995, 1996, 1997, 1999, 2005, 2006, 2007
a1dbe9d80eee [project @ 2007-10-12 21:27:11 by jwe]
jwe
parents: 7016
diff changeset
4 John W. Eaton
525
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
5
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
6 This file is part of Octave.
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
7
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
8 Octave is free software; you can redistribute it and/or modify it
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
9 under the terms of the GNU General Public License as published by the
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5796
diff changeset
10 Free Software Foundation; either version 3 of the License, or (at your
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5796
diff changeset
11 option) any later version.
525
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
12
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
13 Octave is distributed in the hope that it will be useful, but WITHOUT
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
16 for more details.
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
17
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
18 You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5796
diff changeset
19 along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 5796
diff changeset
20 <http://www.gnu.org/licenses/>.
525
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
21
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
22 */
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
23
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
24 #if !defined (octave_defun_dld_h)
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
25 #define octave_defun_dld_h 1
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
26
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
27 #if defined (octave_defun_h)
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
28 #error defun.h and defun-dld.h both included in same file!
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
29 #endif
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
30
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
31 #include "defun-int.h"
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
32
550
95ee5e330179 [project @ 1994-07-22 20:17:58 by jwe]
jwe
parents: 525
diff changeset
33 // Define a builtin function that may be loaded dynamically at run
95ee5e330179 [project @ 1994-07-22 20:17:58 by jwe]
jwe
parents: 525
diff changeset
34 // time.
95ee5e330179 [project @ 1994-07-22 20:17:58 by jwe]
jwe
parents: 525
diff changeset
35 //
95ee5e330179 [project @ 1994-07-22 20:17:58 by jwe]
jwe
parents: 525
diff changeset
36 // If Octave is not configured for dynamic linking of builtin
2968
e330cb788508 [project @ 1997-05-15 17:40:29 by jwe]
jwe
parents: 2891
diff changeset
37 // functions, this is the same as DEFUN, except that it will generate
e330cb788508 [project @ 1997-05-15 17:40:29 by jwe]
jwe
parents: 2891
diff changeset
38 // an extra externally visible function.
2465
7ee42ff6536a [project @ 1996-11-03 08:54:14 by jwe]
jwe
parents: 1996
diff changeset
39 //
2968
e330cb788508 [project @ 1997-05-15 17:40:29 by jwe]
jwe
parents: 2891
diff changeset
40 // The first DECLARE_FUN is for the benefit of the installer function
e330cb788508 [project @ 1997-05-15 17:40:29 by jwe]
jwe
parents: 2891
diff changeset
41 // and the second is for the definition of the function.
550
95ee5e330179 [project @ 1994-07-22 20:17:58 by jwe]
jwe
parents: 525
diff changeset
42
2465
7ee42ff6536a [project @ 1996-11-03 08:54:14 by jwe]
jwe
parents: 1996
diff changeset
43 #if defined (MAKE_BUILTINS)
3295
35a6d027772c [project @ 1999-10-19 10:13:02 by jwe]
jwe
parents: 2968
diff changeset
44
2465
7ee42ff6536a [project @ 1996-11-03 08:54:14 by jwe]
jwe
parents: 1996
diff changeset
45 #define DEFUN_DLD(name, args_name, nargout_name, doc) \
5796
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
46 DEFUN_DLD_INTERNAL (name, args_name, nargout_name, false, doc)
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
47
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
48 // This one can be used when `name' cannot be used directly (if it is
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
49 // already defined as a macro). In that case, name is already a
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
50 // quoted string, and the internal name of the function must be passed
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
51 // too (the convention is to use a prefix of "F", so "foo" becomes "Ffoo").
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
52
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
53 #define DEFUNX_DLD(name, fname, fsname, args_name, nargout_name, doc) \
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
54 DEFUNX_DLD_INTERNAL (name, fname, args_name, nargout_name, false, doc)
3295
35a6d027772c [project @ 1999-10-19 10:13:02 by jwe]
jwe
parents: 2968
diff changeset
55
2465
7ee42ff6536a [project @ 1996-11-03 08:54:14 by jwe]
jwe
parents: 1996
diff changeset
56 #else
3295
35a6d027772c [project @ 1999-10-19 10:13:02 by jwe]
jwe
parents: 2968
diff changeset
57
1957
0e6a0a271998 [project @ 1996-02-15 01:08:15 by jwe]
jwe
parents: 1884
diff changeset
58 #define DEFUN_DLD(name, args_name, nargout_name, doc) \
0e6a0a271998 [project @ 1996-02-15 01:08:15 by jwe]
jwe
parents: 1884
diff changeset
59 DECLARE_FUN (name, args_name, nargout_name); \
2968
e330cb788508 [project @ 1997-05-15 17:40:29 by jwe]
jwe
parents: 2891
diff changeset
60 DEFINE_FUN_INSTALLER_FUN (name, doc) \
1957
0e6a0a271998 [project @ 1996-02-15 01:08:15 by jwe]
jwe
parents: 1884
diff changeset
61 DECLARE_FUN (name, args_name, nargout_name)
3295
35a6d027772c [project @ 1999-10-19 10:13:02 by jwe]
jwe
parents: 2968
diff changeset
62
5796
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
63 #define DEFUNX_DLD(name, fname, fsname, args_name, nargout_name, doc) \
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
64 DECLARE_FUNX (fname, args_name, nargout_name); \
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
65 DEFINE_FUNX_INSTALLER_FUN (name, fname, fsname, doc) \
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
66 DECLARE_FUNX (fname, args_name, nargout_name)
20f4bd627a74 [project @ 2006-05-09 02:04:54 by jwe]
jwe
parents: 5307
diff changeset
67
703
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
68 #endif
525
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
69
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
70 #endif
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
71
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
72 /*
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
73 ;;; Local Variables: ***
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
74 ;;; mode: C++ ***
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
75 ;;; End: ***
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
76 */