summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-11-27 09:11:55 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-11-27 09:11:55 +0000
commit0cf319ce5495fd8a52bbfdbadc11a7a6e23bc13d (patch)
tree5757eb816c7303ccb626d38f1719eaa93c7d9bea
parent34558b71c7395913ae095313e150530d1c3d2ec0 (diff)
* dln.c (init_funcname_len): remove MAXPATHLEN dependency.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--dln.c24
2 files changed, 11 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 44b98db..9df2626 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -44,6 +44,10 @@ Wed Nov 27 06:43:26 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
* eval.c (rb_thread_start_0): initialize SystemExit properly.
+Tue Nov 26 10:17:04 2002 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * dln.c (init_funcname_len): remove MAXPATHLEN dependency.
+
Mon Nov 25 19:55:38 2002 WATANABE Hirofumi <eban@ruby-lang.org>
* ext/extmk.rb (extmake): return true if not dynamic and not static.
diff --git a/dln.c b/dln.c
index 985513e..2fb73be 100644
--- a/dln.c
+++ b/dln.c
@@ -61,6 +61,9 @@ void *xrealloc();
#ifdef HAVE_SYS_PARAM_H
# include <sys/param.h>
#endif
+#ifndef MAXPATHLEN
+# define MAXPATHLEN 1024
+#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
@@ -107,6 +110,7 @@ init_funcname_len(buf, file)
char *file;
{
char *p, *slash;
+ int len;
/* Load the file as an object one */
for (p = file, slash = p-1; *p; p++) /* Find position of last '/' */
@@ -116,14 +120,9 @@ init_funcname_len(buf, file)
if (*p == '/') slash = p;
#endif
-/* This assumes that systems without length limitation for file names
- provide asprintf(). This shouldn't be too unlikely. */
-#ifdef MAXPATHLEN
- *buf = xmalloc(MAXPATHLEN);
- snprintf(*buf, MAXPATHLEN, FUNCNAME_PATTERN, slash + 1);
-#else
- asprintf(buf, FUNCNAME_PATTERN, slash + 1);
-#endif
+ len = strlen(FUNCNAME_PATTERN) + strlen(slash + 1);
+ *buf = xmalloc(len);
+ snprintf(*buf, len, FUNCNAME_PATTERN, slash + 1);
for (p = *buf; *p; p++) { /* Delete suffix if it exists */
if (*p == '.') {
*p = '\0'; break;
@@ -352,10 +351,6 @@ sym_hash(hdrp, syms)
return tbl;
}
-#ifndef MAXPATHLEN
-# define MAXPATHLEN 1024
-#endif
-
static int
dln_init(prog)
const char *prog;
@@ -1263,11 +1258,6 @@ dln_load(file)
#endif
#if defined _WIN32 && !defined __CYGWIN__
-
-#ifndef MAXPATHLEN
-# define MAXPATHLEN 1024
-#endif
-
HINSTANCE handle;
char winfile[MAXPATHLEN];
void (*init_fct)();