Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > Fileutils.cp bug?

Reply
Thread Tools

Fileutils.cp bug?

 
 
Chad Fowler
Guest
Posts: n/a
 
      11-17-2003
I'm experiencing the following behavior in the latest CVS copy of ruby on
both Windows and Linux. I think it's a bug.

[chad@ns1 chad]$ cat test
Goodbye Cruel World!
[chad@ns1 chad]$ ruby -rfileutils -e 'FileUtils.cp("test", "test")'

[chad@ns1 chad]$ cat test
[chad@ns1 chad]$ ls -l test
-rw-rw-r-- 1 chad chad 0 Nov 17 08:35 test
[chad@ns1 chad]$


I would suggest the following small change.

Do others agree that this is a bug?

Thanks,
Chad




Index: fileutils.rb
================================================== =================
RCS file: /src/ruby/lib/fileutils.rb,v
retrieving revision 1.22
diff -u -c -r1.22 fileutils.rb
cvs server: conflicting specifications of output style
*** fileutils.rb 30 Oct 2003 09:36:39 -0000 1.22
--- fileutils.rb 17 Nov 2003 13:11:43 -0000
***************
*** 312,317 ****
--- 312,318 ----
return if options[:noop]

fu_each_src_dest(src, dest) do |s,d|
+ raise ArgumentError, "`#{src}' and `#{dest}' are the same file"
unless (
src != dest)
fu_preserve_attr(options[reserve], s, d) {
copy_file s, d
}



 
Reply With Quote
 
 
 
 
Wejn
Guest
Posts: n/a
 
      11-17-2003
Hi,

On Mon, 17 Nov 2003, Chad Fowler wrote:

> I'm experiencing the following behavior in the latest CVS copy of ruby on
> both Windows and Linux. I think it's a bug.
>
> [chad@ns1 chad]$ cat test
> Goodbye Cruel World!
> [chad@ns1 chad]$ ruby -rfileutils -e 'FileUtils.cp("test", "test")'
>
> [chad@ns1 chad]$ cat test
> [chad@ns1 chad]$ ls -l test
> -rw-rw-r-- 1 chad chad 0 Nov 17 08:35 test
> [chad@ns1 chad]$
>
>
> I would suggest the following small change.
>
> Do others agree that this is a bug?


Well, I do think it's a bug ... but the patch is not enough, imho:

(5/wejn/ns) x$ echo "goodbye" > src
(5/wejn/ns) x$ ruby18 -rfileutils -e 'FileUtils.cp("src", "src")'
/usr/local/ruby-1.8.0/lib/ruby/1.8/fileutils.rb:315:in `cp': `src' and `src' are the same file (ArgumentError)
from /usr/local/ruby-1.8.0/lib/ruby/1.8/fileutils.rb:314:in `fu_each_src_dest'
from /usr/local/ruby-1.8.0/lib/ruby/1.8/fileutils.rb:314:in `cp'
from -e:1

... ok ... but:

(5/wejn/ns) x$ ruby18 -rfileutils -e 'FileUtils.cp("src", "./src")'
(5/wejn/ns) x$ ls -l src
-rw-r--r-- 1 wejn wejn 0 Nov 17 15:04 src

... problem

What about comparation of [dev,inode] ?

Sincerely,
Michal
--
# Michal Safranek, email:
a=(("a".."z").to_a+["@","."]);p(("%b"%[0x645bbb83a6a496]
).scan(/...../).map{|x|a[Integer("0b"+x)]}.join.reverse)


 
Reply With Quote
 
 
 
 
Wejn
Guest
Posts: n/a
 
      11-17-2003
Hi,

> # What about comparation of [dev,inode] ?
>
> Good point, Michal. I thik I need some post-RubyConf rest
>
> How about (File.expand_path("src") == File.expand_path("dest"))?


wow ... even better I think it will avoid possible problems
on Win32 (I'm not sure how stat() behaves there regarding to
dev and inode#).

M.
--
# Michal Safranek, email:
a=(("a".."z").to_a+["@","."]);p(("%b"%[0x645bbb83a6a496]
).scan(/...../).map{|x|a[Integer("0b"+x)]}.join.reverse)


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off




Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57