aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/ruby-msg/lib/mapi/msg.rb
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2010-03-10 04:05:58 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2010-03-15 13:33:14 +0000
commit22017fbd536acdfb78a33e2a6173c6c0d8400b95 (patch)
tree96256d94e19cae56cd4a3c0c95c797e6bf914caf /vendor/ruby-msg/lib/mapi/msg.rb
parent062849c75d5c7b4b83772a212a8a871c5d8433f7 (diff)
Fixed ruby-msg in UTF-8 mode
Diffstat (limited to 'vendor/ruby-msg/lib/mapi/msg.rb')
-rw-r--r--vendor/ruby-msg/lib/mapi/msg.rb6
1 files changed, 3 insertions, 3 deletions
diff --git a/vendor/ruby-msg/lib/mapi/msg.rb b/vendor/ruby-msg/lib/mapi/msg.rb
index c7cfb5515..fc30a9170 100644
--- a/vendor/ruby-msg/lib/mapi/msg.rb
+++ b/vendor/ruby-msg/lib/mapi/msg.rb
@@ -173,7 +173,7 @@ module Mapi
# parse guids
# this is the guids for named properities (other than builtin ones)
# i think PS_PUBLIC_STRINGS, and PS_MAPI are builtin.
- guids = [PS_PUBLIC_STRINGS] + guids_obj.read.scan(/.{16}/m).map do |str|
+ guids = [PS_PUBLIC_STRINGS] + guids_obj.read.scan(/.{16}/mn).map do |str|
Ole::Types.load_guid str
end
@@ -187,7 +187,7 @@ module Mapi
# parse actual props.
# not sure about any of this stuff really.
# should flip a few bits in the real msg, to get a better understanding of how this works.
- props = props_obj.read.scan(/.{8}/m).map do |str|
+ props = props_obj.read.scan(/.{8}/mn).map do |str|
flags, offset = str[4..-1].unpack 'v2'
# the property will be serialised as this pseudo property, mapping it to this named property
pseudo_prop = 0x8000 + offset
@@ -253,7 +253,7 @@ module Mapi
unless (pad == 0 || pad == 8) and data[0...pad] == "\000" * pad
Log.warn "padding was not as expected #{pad} (#{data.length}) -> #{data[0...pad].inspect}"
end
- data[pad..-1].scan(/.{16}/m).each do |data|
+ data[pad..-1].scan(/.{16}/mn).each do |data|
property, encoding = ('%08x' % data.unpack('V')).scan /.{4}/
key = property.hex
# doesn't make any sense to me. probably because its a serialization of some internal