Sha256: 04078e7e98b6567ca840a4ffaed618515055ebf9eb1140b6239ec1795ccc78bc

Contents?: true

Size: 708 Bytes

Versions: 3

Compression:

Stored size: 708 Bytes

Contents

require 'pdk/util/windows'

module PDK
  module Util
    module Windows
      module String
        def wide_string(str)
          # if given a nil string, assume caller wants to pass a nil pointer to win32
          return if str.nil?

          # ruby (< 2.1) does not respect multibyte terminators, so it is possible
          # for a string to contain a single trailing null byte, followed by garbage
          # causing buffer overruns.
          #
          # See http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?revision=41920&view=revision
          newstr = str + "\0".encode(str.encoding)
          newstr.encode!('UTF-16LE')
        end
        module_function :wide_string
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pdk-3.3.0 lib/pdk/util/windows/string.rb
pdk-3.0.1 lib/pdk/util/windows/string.rb
pdk-3.0.0 lib/pdk/util/windows/string.rb