class FFI::Pointer

Public Instance Methods

read_utf16string() click to toggle source
# File lib/chef/win32/unicode.rb, line 52
def read_utf16string
  offset = 0
  offset += 2 while get_bytes(offset, 2) != "\x00\x00"
  get_bytes(0, offset).force_encoding("utf-16le").encode("utf-8")
end
read_wstring(num_wchars = nil) click to toggle source
# File lib/chef/win32/unicode.rb, line 36
def read_wstring(num_wchars = nil)
  if num_wchars.nil?
    # Find the length of the string
    length = 0
    last_char = nil
    while last_char != "\000\000"
      length += 1
      last_char = get_bytes(0, length * 2)[-2..]
    end

    num_wchars = length
  end

  wide_to_utf8(get_bytes(0, num_wchars * 2))
end