HCoop
/
bpt
/
guile.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit 'origin/master' into vm
[bpt/guile.git]
/
libguile
/
procs.c
diff --git
a/libguile/procs.c
b/libguile/procs.c
index
a625b6e
..
6b4b586
100644
(file)
--- a/
libguile/procs.c
+++ b/
libguile/procs.c
@@
-1,4
+1,4
@@
-/* Copyright (C) 1995,1996,1997,1999,2000,2001 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1997,1999,2000,2001
, 2006, 2008
Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@
-12,11
+12,14
@@
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
- * Foundation, Inc., 5
9 Temple Place, Suite 330, Boston, MA 02111-1307
USA
+ * Foundation, Inc., 5
1 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
*/
\f
*/
\f
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
#include "libguile/_scm.h"
#include "libguile/_scm.h"
@@
-28,6
+31,7
@@
#include "libguile/validate.h"
#include "libguile/procs.h"
#include "libguile/validate.h"
#include "libguile/procs.h"
+#include "libguile/programs.h"
\f
\f
@@
-63,7
+67,7
@@
scm_c_make_subr (const char *name, long type, SCM (*fcn) ())
entry = scm_subr_table_size;
z = scm_cell ((entry << 8) + type, (scm_t_bits) fcn);
scm_subr_table[entry].handle = z;
entry = scm_subr_table_size;
z = scm_cell ((entry << 8) + type, (scm_t_bits) fcn);
scm_subr_table[entry].handle = z;
- scm_subr_table[entry].name = scm_
str2
symbol (name);
+ scm_subr_table[entry].name = scm_
from_locale_
symbol (name);
scm_subr_table[entry].generic = 0;
scm_subr_table[entry].properties = SCM_EOL;
scm_subr_table_size++;
scm_subr_table[entry].generic = 0;
scm_subr_table[entry].properties = SCM_EOL;
scm_subr_table_size++;
@@
-204,7
+208,7
@@
SCM_DEFINE (scm_thunk_p, "thunk?", 1, 0, 0,
switch (SCM_TYP7 (obj))
{
case scm_tcs_closures:
switch (SCM_TYP7 (obj))
{
case scm_tcs_closures:
- return scm_from_bool (!
SCM_CONSP
(SCM_CLOSURE_FORMALS (obj)));
+ return scm_from_bool (!
scm_is_pair
(SCM_CLOSURE_FORMALS (obj)));
case scm_tc7_subr_0:
case scm_tc7_subr_1o:
case scm_tc7_lsubr:
case scm_tc7_subr_0:
case scm_tc7_subr_1o:
case scm_tc7_lsubr:
@@
-218,7
+222,9
@@
SCM_DEFINE (scm_thunk_p, "thunk?", 1, 0, 0,
obj = SCM_PROCEDURE (obj);
goto again;
default:
obj = SCM_PROCEDURE (obj);
goto again;
default:
- ;
+ if (SCM_PROGRAM_P (obj) && SCM_PROGRAM_DATA (obj)->nargs == 0)
+ return SCM_BOOL_T;
+ /* otherwise fall through */
}
}
return SCM_BOOL_F;
}
}
return SCM_BOOL_F;
@@
-255,7
+261,7
@@
SCM_DEFINE (scm_procedure_documentation, "procedure-documentation", 1, 0, 0,
{
case scm_tcs_closures:
code = SCM_CLOSURE_BODY (proc);
{
case scm_tcs_closures:
code = SCM_CLOSURE_BODY (proc);
- if (
SCM_NULLP
(SCM_CDR (code)))
+ if (
scm_is_null
(SCM_CDR (code)))
return SCM_BOOL_F;
code = SCM_CAR (code);
if (scm_is_string (code))
return SCM_BOOL_F;
code = SCM_CAR (code);
if (scm_is_string (code))