File.dirname got different results between jruby-1.0.3 and ruby-1.8.5
---------------------------------------------------------------------
Key: JRUBY-2176
URL: http://jira.codehaus.org/browse/JRUBY-2176
Project: JRuby
Issue Type: Bug
Affects Versions: JRuby 1.0.3
Reporter: Dove Cradle
Assignee: Thomas E Enebo
Attachments: File_dirname.diff
On Jan 21, 2008 10:03 PM, Spring Dove <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I found File.dirname got the different results when run it on jruby-1.0.3
> and on ruby-1.8.5.
>
> jruby -e 'p File.dirname("C://a")'
> C:/
> ruby -e 'p File.dirname("C://a")'
> C:
>
> also:
> jruby -e 'p File.dirname("//a/b")'
> //a
> ruby -e 'p File.dirname("//a/b")'
> /a
>
I try to give the solution for the two problems, FYI. Do you have the better
way?
diff -u src/org/jruby/RubyFile.java.old src/org/jruby/RubyFile.java
--- src/org/jruby/RubyFile.java.old 2008-01-21 16:08:07.000000000 +0800
+++ src/org/jruby/RubyFile.java 2008-02-26 11:18:04.000000000 +0800
@@ -646,6 +646,22 @@
}
} else {
//TODO deal with UNC names
+ int lindex = name.indexOf('/');
+ if (lindex != -1) {
+ int rindex = name.lastIndexOf('/');
+ String temp_name = name.substring(0, lindex);
+ while (lindex < rindex) {
+ if (name.charAt(lindex+1) == '/') {
+ lindex++;
+ } else {
+ int tmp_lindex = name.indexOf('/', lindex+1);
+ temp_name += name.substring(lindex, tmp_lindex);
+ lindex = tmp_lindex;
+ }
+ }
+ temp_name += name.substring(rindex);
+ name = temp_name;
+ }
int index = name.lastIndexOf('/');
if (index == -1) return recv.getRuntime().newString(".");
if (index == 0) return recv.getRuntime().newString("/");
@@ -656,7 +672,8 @@
index++;
}
- result = jfilename.substring(0, index);
+ result = name.substring(0, index);
+ //result = jfilename.substring(0, index);
}
return recv.getRuntime().newString(result).infectBy(filename);
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email