Ignore:
Timestamp:
Jan 21, 2018, 12:10:09 AM (6 years ago)
Author:
coas-nagasima
Message:

prototoolに関連するプロジェクトをnewlibからmuslを使うよう変更・更新
ntshellをnewlibの下位の実装から、muslのsyscallの実装に変更・更新
以下のOSSをアップデート
・mruby-1.3.0
・musl-1.1.18
・onigmo-6.1.3
・tcc-0.9.27
以下のOSSを追加
・openssl-1.1.0e
・curl-7.57.0
・zlib-1.2.11
以下のmrbgemsを追加
・iij/mruby-digest
・iij/mruby-env
・iij/mruby-errno
・iij/mruby-iijson
・iij/mruby-ipaddr
・iij/mruby-mock
・iij/mruby-require
・iij/mruby-tls-openssl

File:
1 edited

Legend:

Unmodified
Added
Removed
  • EcnlProtoTool/trunk/mrbgems/mruby-io/mrblib/io.rb

    r321 r331  
    124124    str = string.is_a?(String) ? string : string.to_s
    125125    return str.size unless str.size > 0
    126 
     126    if 0 < @buf.length
     127      # reset real pos ignore buf
     128      seek(pos, SEEK_SET)
     129    end
    127130    len = syswrite(str)
    128     if len != -1
    129       @pos += len
    130       return len
    131     end
    132 
    133     raise IOError
     131    len
    134132  end
    135133
     
    152150  def pos
    153151    raise IOError if closed?
    154     @pos
     152    sysseek(0, SEEK_CUR) - @buf.length
    155153  end
    156154  alias_method :tell, :pos
     
    166164  def seek(i, whence = SEEK_SET)
    167165    raise IOError if closed?
    168     @pos = sysseek(i, whence)
     166    sysseek(i, whence)
    169167    @buf = ''
    170168    0
     
    178176  def ungetc(substr)
    179177    raise TypeError.new "expect String, got #{substr.class}" unless substr.is_a?(String)
    180     @pos -= substr.size
    181178    if @buf.empty?
    182179      @buf = substr.dup
     
    187184  end
    188185
    189   def read(length = nil)
     186  def read(length = nil, outbuf = "")
    190187    unless length.nil?
    191188      unless length.is_a? Fixnum
     
    201198
    202199    array = []
    203     start_pos = @pos
    204200    while 1
    205201      begin
    206202        _read_buf
    207       rescue EOFError => e
     203      rescue EOFError
    208204        array = nil if array.empty? and (not length.nil?) and length != 0
    209205        break
    210206      end
    211207
    212       if length && (@pos - start_pos + @buf.size) >= length
    213         len = length - (@pos - start_pos)
    214         array.push @buf[0, len]
    215         @pos += len
    216         @buf = @buf[len, @buf.size - len]
    217         break
     208      if length
     209        consume = (length <= @buf.size) ? length : @buf.size
     210        array.push @buf[0, consume]
     211        @buf = @buf[consume, @buf.size - consume]
     212        length -= consume
     213        break if length == 0
    218214      else
    219215        array.push @buf
    220         @pos += @buf.size
    221216        @buf = ''
    222217      end
    223218    end
    224219
    225     array && array.join
     220    if array.nil?
     221      outbuf.replace("")
     222      nil
     223    else
     224      outbuf.replace(array.join)
     225    end
    226226  end
    227227
     
    246246
    247247    array = []
    248     start_pos = @pos
    249248    while 1
    250249      begin
    251250        _read_buf
    252       rescue EOFError => e
     251      rescue EOFError
    253252        array = nil if array.empty?
    254253        break
    255254      end
    256255
    257       if limit && (@pos - start_pos + @buf.size) >= limit
    258         len = limit - (@pos - start_pos)
    259         array.push @buf[0, len]
    260         @pos += len
    261         @buf = @buf[len, @buf.size - len]
     256      if limit && limit <= @buf.size
     257        array.push @buf[0, limit]
     258        @buf = @buf[limit, @buf.size - limit]
    262259        break
    263260      elsif idx = @buf.index(rs)
    264261        len = idx + rs.size
    265262        array.push @buf[0, len]
    266         @pos += len
    267263        @buf = @buf[len, @buf.size - len]
    268264        break
    269265      else
    270266        array.push @buf
    271         @pos += @buf.size
    272267        @buf = ''
    273268      end
     
    282277    begin
    283278      readline(*args)
    284     rescue EOFError => e
     279    rescue EOFError
    285280      nil
    286281    end
     
    291286    c = @buf[0]
    292287    @buf = @buf[1, @buf.size]
    293     @pos += 1
    294288    c
    295289  end
     
    298292    begin
    299293      readchar
    300     rescue EOFError => e
     294    rescue EOFError
    301295      nil
    302296    end
Note: See TracChangeset for help on using the changeset viewer.