class PEdump::NE::VersionString
Constants
- Padding
- Value
Public Class Methods
read(f, size = SIZE)
click to toggle source
Calls superclass method
# File lib/pedump/ne/version_info.rb, line 116 def self.read f, size = SIZE pos = f.tell super.tap do |x| x.szKey = f.gets("\x00").to_s.chomp("\x00") x.Padding = f.tell%4 > 0 ? f.read(4 - f.tell%4) : nil value_len = [x.wValueLength*2, x.wLength - (f.tell-pos)].min value_len = 0 if value_len < 0 cp = PEdump::NE.cp # XXX HACK x.Value = f.read(value_len).to_s.chomp("\x00") begin x.Value.force_encoding("CP#{cp}").encode!('UTF-8').sub!(/\u0000$/,'') rescue x.Value.force_encoding("CP1250").encode!('UTF-8').sub!(/\u0000$/,'') rescue nil end if f.tell%4 > 0 f.read(4-f.tell%4) # undoc padding? end end end