Module: Puppet::Util::Windows::String

Included in:
File, Process, Security, Service, User
Defined in:
lib/puppet/util/windows/string.rb

Class Method Summary collapse

Class Method Details

.wide_string(str) ⇒ Object


4
5
6
7
8
9
10
11
12
13
14
# File 'lib/puppet/util/windows/string.rb', line 4

def wide_string(str)
  # if given a nil string, assume caller wants to pass a nil pointer to win32
  return nil 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