From 9e3d9a2a009d2a0281802a84e1c5cc1c887edc71 Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 16 Sep 1999 09:40:33 +0000 Subject: 1.4.1 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- file.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'file.c') diff --git a/file.c b/file.c index 9ac2db6b35..182c6d0b42 100644 --- a/file.c +++ b/file.c @@ -1107,7 +1107,7 @@ rb_file_s_expand_path(argc, argv) } } #endif - else if (s[0] != '/') { + else if (!isdirsep(*s)) { if (argc == 2) { dname = rb_file_s_expand_path(1, &dname); strcpy(buf, RSTRING(dname)->ptr); @@ -1122,6 +1122,13 @@ rb_file_s_expand_path(argc, argv) p = &buf[strlen(buf)]; while (p > buf && *(p - 1) == '/') p--; } + else if (isdirsep(*s)) { + while (*s && isdirsep(*s)) { + *p++ = '/'; + s++; + } + if (p > buf && *s) p--; + } *p = '/'; for ( ; *s; s++) { -- cgit v1.2.3