Bug #3948

Unexpected RangeErorr of pack and unpack with specified byte-order modifier

Added by Heesob Park over 4 years ago. Updated about 4 years ago.

[ruby-core:32793]
Status:Closed
Priority:Normal
Assignee:-
ruby -v:ruby 1.9.3dev (2010-10-14 trunk 29498) [i386-mswin32_90] Backport:

Description

=begin
After applying Revision 29496, I can use < > modifier for pack and unpack.
But it fails to work when the modifier occurs more than once.

C:>ruby -e 'p "1234".unpack("SS")'
[12849, 13363]

C:>ruby -e 'p "1234".unpack("SS>")'
[12849, 13108]

C:>ruby -e 'p "1234".unpack("S>S")'
[12594, 13108]

C:>ruby -e 'p "1234".unpack("S>S>")'
-e:1:in unpack': Can't use both '<' and '>' (RangeError)
from -e:1:in
'

C:>ruby -e 'p "1234".unpack("S' (RangeError)
from -e:1:in `'

C:>ruby -e 'p "1234".unpack("S")'
-e:1:in unpack': Can't use both '<' and '>' (RangeError)
from -e:1:in
'

C:>ruby -e 'p [1234,5678].pack("SS")'
"\xD2\x04.\x16"

C:>ruby -e 'p [1234,5678].pack("SS>")'
"\xD2\x04\x16."

C:>ruby -e 'p [1234,5678].pack("S>S")'
"\x04\xD2\x16."

C:>ruby -e 'p [1234,5678].pack("S<S")'
"\xD2\x04.\x16"

C:>ruby -e 'p [1234,5678].pack("S>S>")'
-e:1:in pack': Can't use both '<' and '>' (RangeError)
from -e:1:in
'

C:>ruby -e 'p [1234,5678].pack("S' (RangeError)
from -e:1:in `'

C:>ruby -e 'p [1234,5678].pack("S")'
-e:1:in pack': Can't use both '<' and '>' (RangeError)
from -e:1:in
'
=end

History

#1 Updated by Yui NARUSE over 4 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
This issue was solved with changeset r29501.
Heesob, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.

=end

Also available in: Atom PDF