summaryrefslogtreecommitdiff
path: root/libguile/dynl.c
diff options
context:
space:
mode:
authorMichael Gran <spk121@yahoo.com>2011-03-30 20:42:37 -0700
committerAndy Wingo <wingo@pobox.com>2011-03-31 12:34:47 +0200
commit0f1fd214f184a998a3d8e1580b7acb9d02dc879b (patch)
tree71952701761d7e97a369feca18e74394821eddba /libguile/dynl.c
parente309f3bf9ee910c4772353ca3ff95f6f4ef466b5 (diff)
downloadguile-0f1fd214f184a998a3d8e1580b7acb9d02dc879b.tar.gz
More descriptive error for dynamic-pointer
* libguile/dynl.c (sysdep_dynl_value): Failure to find a symbol is not an error, so raise our own, more appropriate error. * test-suite/tests/foreign.test ("dynamic-pointer"): Add a test.
Diffstat (limited to 'libguile/dynl.c')
-rw-r--r--libguile/dynl.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/libguile/dynl.c b/libguile/dynl.c
index 2484ddaa0..a2ae6e267 100644
--- a/libguile/dynl.c
+++ b/libguile/dynl.c
@@ -115,9 +115,8 @@ sysdep_dynl_value (const char *symb, void *handle, const char *subr)
fptr = lt_dlsym ((lt_dlhandle) handle, symb);
if (!fptr)
- {
- scm_misc_error (subr, (char *) lt_dlerror (), SCM_EOL);
- }
+ scm_misc_error (subr, "Symbol not found: ~a",
+ scm_list_1 (scm_from_locale_string (symb)));
return fptr;
}