annotate src/defun-dld.h @ 1229:7d7c3eaa1d3b

[project @ 1995-04-10 01:04:13 by jwe]
author jwe
date Mon, 10 Apr 1995 01:04:46 +0000
parents dfe01093f657
children 549b0a461fd8
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 // defun-dld.h -*- C++ -*-
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
2 /*
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
3
1009
dfe01093f657 [project @ 1995-01-04 04:05:12 by jwe]
jwe
parents: 705
diff changeset
4 Copyright (C) 1992, 1993, 1994, 1995 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
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
10 Free Software Foundation; either version 2, or (at your option) any
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
11 later version.
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
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
19 along with Octave; see the file COPYING. If not, write to the Free
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
20 Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
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
95ee5e330179 [project @ 1994-07-22 20:17:58 by jwe]
jwe
parents: 525
diff changeset
37 // functions, this is exactly like DEFUN.
95ee5e330179 [project @ 1994-07-22 20:17:58 by jwe]
jwe
parents: 525
diff changeset
38
703
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
39 #if defined (WITH_DLD) && defined (OCTAVE_LITE) && defined (MAKE_BUILTINS)
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
40 #define DEFUN_DLD_BUILTIN(name, fname, sname, nargin_max, nargout_max, doc) \
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
41 BEGIN_INSTALL_BUILTIN \
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
42 DEFINE_FUN_STRUCT (name, 0, sname, nargin_max, nargout_max, 0, doc); \
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
43 install_builtin_function (&sname); \
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
44 END_INSTALL_BUILTIN
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
45 #else
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
46 #define DEFUN_DLD_BUILTIN(name, fname, sname, nargin_max, nargout_max, doc) \
525
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
47 DEFUN_INTERNAL (name, fname, sname, nargin_max, nargout_max, 0, doc)
703
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
48 #endif
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
49
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
50 // Define a function that may be loaded dynamically at run time.
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
51 //
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
52 // If Octave is not configured for dynamic linking of builtin
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
53 // functions, this won't do anything useful.
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
54 //
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
55 // The forward declaration is for the struct, the second is for the
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
56 // definition of the function.
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
57
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
58 #if ! defined (MAKE_BUILTINS)
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
59 #define DEFUN_DLD(name, fname, sname, fsname, nargin_max, nargout_max, doc) \
705
1900ccfdf860 [project @ 1994-09-15 03:05:35 by jwe]
jwe
parents: 703
diff changeset
60 DECLARE_FUN (fname); \
703
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
61 DEFINE_FUN_STRUCT (name, fname, sname, nargin_max, nargout_max, 0, doc); \
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
62 DEFINE_FUN_STRUCT_FUN (sname, fsname) \
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
63 DECLARE_FUN (fname)
21cc5b9b9ed6 [project @ 1994-09-15 02:39:57 by jwe]
jwe
parents: 550
diff changeset
64 #endif
525
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
65
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
66 #endif
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
67
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
68 /*
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
69 ;;; Local Variables: ***
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
70 ;;; mode: C++ ***
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
71 ;;; page-delimiter: "^/\\*" ***
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
72 ;;; End: ***
509e9a2d93a6 [project @ 1994-07-20 18:45:27 by jwe]
jwe
parents:
diff changeset
73 */