# 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 + "\00"".encode(str.encoding) newstr.encode!('UTF-16LE') end