273 |
#define FUNC_NAME s_scm_procedure_documentation |
#define FUNC_NAME s_scm_procedure_documentation |
274 |
{ |
{ |
275 |
SCM code; |
SCM code; |
276 |
SCM_ASSERT (SCM_EQ_P (scm_procedure_p (proc), SCM_BOOL_T) && SCM_NIMP (proc), |
SCM_ASSERT (SCM_EQ_P (scm_procedure_p (proc), SCM_BOOL_T), |
277 |
proc, SCM_ARG1, FUNC_NAME); |
proc, SCM_ARG1, FUNC_NAME); |
278 |
switch (SCM_TYP7 (proc)) |
switch (SCM_TYP7 (proc)) |
279 |
{ |
{ |
280 |
case scm_tcs_closures: |
case scm_tcs_closures: |
281 |
code = SCM_CLOSURE_BODY (proc); |
code = SCM_CLOSURE_BODY (proc); |
282 |
if (SCM_IMP (SCM_CDR (code))) |
if (SCM_NULLP (SCM_CDR (code))) |
283 |
return SCM_BOOL_F; |
return SCM_BOOL_F; |
284 |
code = SCM_CAR (code); |
code = SCM_CAR (code); |
|
if (SCM_IMP (code)) |
|
|
return SCM_BOOL_F; |
|
285 |
if (SCM_STRINGP (code)) |
if (SCM_STRINGP (code)) |
286 |
return code; |
return code; |
287 |
|
else |
288 |
|
return SCM_BOOL_F; |
289 |
default: |
default: |
290 |
return SCM_BOOL_F; |
return SCM_BOOL_F; |
291 |
/* |
/* |