* lib/ftool.rb (BUFSIZE): tuning, set buffer length to 8192.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2585 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
fa1f7befa9
commit
e97d0b7764
@ -1,3 +1,7 @@
|
|||||||
|
Thu Jun 20 17:10:27 2002 WATANABE Hirofumi <eban@ruby-lang.org>
|
||||||
|
|
||||||
|
* lib/ftool.rb (BUFSIZE): tuning, set buffer length to 8192.
|
||||||
|
|
||||||
Wed Jun 19 14:46:18 2002 WATANABE Hirofumi <eban@ruby-lang.org>
|
Wed Jun 19 14:46:18 2002 WATANABE Hirofumi <eban@ruby-lang.org>
|
||||||
|
|
||||||
* ext/extmk.rb, lib/mkmf.rb (xsystem): open the log file if xsystem
|
* ext/extmk.rb, lib/mkmf.rb (xsystem): open the log file if xsystem
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
class << File
|
class << File
|
||||||
|
|
||||||
TOO_BIG = 1024 * 1024 * 2 # 2MB
|
BUFSIZE = 8 * 1024
|
||||||
|
|
||||||
def catname from, to
|
def catname from, to
|
||||||
if FileTest.directory? to
|
if FileTest.directory? to
|
||||||
@ -15,28 +15,16 @@ class << File
|
|||||||
def syscopy from, to
|
def syscopy from, to
|
||||||
to = catname(from, to)
|
to = catname(from, to)
|
||||||
|
|
||||||
fsize = size(from)
|
|
||||||
fsize = 1024 if fsize < 512
|
|
||||||
fsize = TOO_BIG if fsize > TOO_BIG
|
|
||||||
|
|
||||||
fmode = stat(from).mode
|
fmode = stat(from).mode
|
||||||
tpath = to
|
tpath = to
|
||||||
not_exist = !exist?(tpath)
|
not_exist = !exist?(tpath)
|
||||||
|
|
||||||
from = open(from, "r")
|
from = open(from, "rb")
|
||||||
from.binmode
|
to = open(to, "wb")
|
||||||
to = open(to, "w")
|
|
||||||
to.binmode
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
while true
|
while true
|
||||||
r = from.sysread(fsize)
|
to.syswrite from.sysread(BUFSIZE)
|
||||||
rsize = r.size
|
|
||||||
w = 0
|
|
||||||
while w < rsize
|
|
||||||
t = to.syswrite(r[w, rsize - w])
|
|
||||||
w += t
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
rescue EOFError
|
rescue EOFError
|
||||||
ret = true
|
ret = true
|
||||||
@ -63,7 +51,7 @@ class << File
|
|||||||
to = catname(from, to)
|
to = catname(from, to)
|
||||||
$stderr.print from, " -> ", to, "\n" if verbose
|
$stderr.print from, " -> ", to, "\n" if verbose
|
||||||
|
|
||||||
if RUBY_PLATFORM =~ /djgpp|cygwin|mswin32|bccwin32/ and FileTest.file? to
|
if RUBY_PLATFORM =~ /djgpp|(cyg|ms|bcc)win|mingw/ and FileTest.file? to
|
||||||
unlink to
|
unlink to
|
||||||
end
|
end
|
||||||
fstat = stat(from)
|
fstat = stat(from)
|
||||||
@ -92,25 +80,22 @@ class << File
|
|||||||
|
|
||||||
def compare from, to, verbose = false
|
def compare from, to, verbose = false
|
||||||
$stderr.print from, " <=> ", to, "\n" if verbose
|
$stderr.print from, " <=> ", to, "\n" if verbose
|
||||||
fsize = size(from)
|
|
||||||
fsize = 1024 if fsize < 512
|
|
||||||
fsize = TOO_BIG if fsize > TOO_BIG
|
|
||||||
|
|
||||||
from = open(from, "r")
|
from = open(from, "rb")
|
||||||
from.binmode
|
to = open(to, "rb")
|
||||||
to = open(to, "r")
|
|
||||||
to.binmode
|
|
||||||
|
|
||||||
ret = false
|
ret = false
|
||||||
fr = tr = ''
|
fr = tr = ''
|
||||||
|
|
||||||
|
return false if from.stat.size != to.stat.size
|
||||||
|
|
||||||
begin
|
begin
|
||||||
while fr == tr
|
while fr == tr
|
||||||
fr = from.read(fsize)
|
fr = from.read(BUFSIZE)
|
||||||
if fr
|
if fr
|
||||||
tr = to.read(fr.size)
|
tr = to.read(fr.size)
|
||||||
else
|
else
|
||||||
ret = to.read(fsize)
|
ret = to.read(BUFSIZE)
|
||||||
ret = !ret || ret.length == 0
|
ret = !ret || ret.length == 0
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user