From 499e7464ed5c42246134fe708d783bf44a472c98 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 7 Sep 1996 23:56:19 +0000 Subject: update from main archive 960907 Sat Sep 7 14:00:33 1996 David Mosberger-Tang * catgets/catgets.c (catopen): Allocate sizeof(*result) bytes instead of sizeof(nl_catd) (which is just a pointer!). Sat Sep 7 19:39:19 1996 Ulrich Drepper * Makefile ($(objpfx)version-info.h): Generate from Banner files. * version.c (banner): Add contents of version-info.h to string. * Makerules: If $($(subdir)-version) is available name versioned shared library according to this value instead of glibc's version. * libio/Banner: New file. * elf/eval.c (funcall): Write error message in case function is not found. (eval): Recognize `_' in names. --- elf/eval.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'elf') diff --git a/elf/eval.c b/elf/eval.c index 91415bb..59eb234 100644 --- a/elf/eval.c +++ b/elf/eval.c @@ -1,6 +1,7 @@ #include #include #include +#include #include static void *funcall (char **stringp); @@ -27,6 +28,13 @@ funcall (char **stringp) /* Swallow closing paren. */ ++*stringp; + if (args[0] == NULL) + { + static const char unknown[] = "Unknown function\n"; + write (1, unknown, sizeof unknown - 1); + return NULL; + } + /* Do it to it. */ __builtin_return (__builtin_apply (args[0], &argcookie, @@ -81,7 +89,7 @@ eval (char **stringp) value = p; do ++p; - while (*p != '\0' && !isspace (*p) && !ispunct (*p)); + while (*p != '\0' && !isspace (*p) && (!ispunct (*p) || *p == '_')); c = *p; *p = '\0'; value = dlsym (NULL, value); -- cgit v1.1