ruby-changes:16472
From: akr <ko1@a...>
Date: Mon, 28 Jun 2010 22:05:19 +0900 (JST)
Subject: [ruby-changes:16472] Ruby:r28458 (ruby_1_8, trunk, ruby_1_9_2): update doc.
akr 2010-06-28 22:05:07 +0900 (Mon, 28 Jun 2010) New Revision: 28458 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28458 Log: update doc. Modified files: branches/ruby_1_8/pack.c branches/ruby_1_9_2/pack.c trunk/pack.c Index: pack.c =================================================================== --- pack.c (revision 28457) +++ pack.c (revision 28458) @@ -305,7 +305,8 @@ * elements to convert. If the count is an asterisk * (``<code>*</code>''), all remaining array elements will be * converted. Any of the directives ``<code>sSiIlL</code>'' may be - * followed by an underscore (``<code>_</code>'') to use the underlying + * followed by an underscore (``<code>_</code>'') or + * exclamation mark (``<code>!</code>'') to use the underlying * platform's native size for the specified type; otherwise, they use a * platform-independent size. Spaces are ignored in the template * string. See also <code>String#unpack</code>. @@ -318,68 +319,68 @@ * * Directives for +pack+. * - * Integer | Array | - * Directive | Element | Meaning - * ------------------------------------------------------------------------ - * C | Integer | 8-bit unsigned integer (unsigned char) - * S | Integer | 16-bit unsigned integer, native endian (uint16_t) - * L | Integer | 32-bit unsigned integer, native endian (uint32_t) - * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) - * | | - * c | Integer | 8-bit signed integer (char) - * s | Integer | 16-bit signed integer, native endian (int16_t) - * l | Integer | 32-bit signed integer, native endian (int32_t) - * q | Integer | 64-bit signed integer, native endian (int64_t) - * | | - * S_ | Integer | unsigned short, native endian - * I, I_ | Integer | unsigned int, native endian - * L_ | Integer | unsigned long, native endian - * | | - * s_ | Integer | signed short, native endian - * i, i_ | Integer | signed int, native endian - * l_ | Integer | signed long, native endian - * | | - * n | Integer | 16-bit unsigned integer, network (big-endian) byte order - * N | Integer | 32-bit unsigned integer, network (big-endian) byte order - * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order - * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order - * | | - * U | Integer | UTF-8 character - * w | Integer | BER-compressed integer - * - * Float | | - * Directive | | Meaning - * ------------------------------------------------------------------------ - * D, d | Float | double-precision float, native format - * F, f | Float | single-precision float, native format - * E | Float | double-precision float, little-endian byte order - * e | Float | single-precision float, little-endian byte order - * G | Float | double-precision float, network (big-endian) byte order - * g | Float | single-precision float, network (big-endian) byte order - * - * String | | - * Directive | | Meaning - * ------------------------------------------------------------------------ - * A | String | arbitrary binary string (space padded, count is width) - * a | String | arbitrary binary string (null padded, count is width) - * Z | String | same as ``a'', except that null is added with * - * B | String | bit string (MSB first) - * b | String | bit string (LSB first) - * H | String | hex string (high nibble first) - * h | String | hex string (low nibble first) - * u | String | UU-encoded string - * M | String | quoted printable, MIME encoding (see RFC2045) - * m | String | base64 encoded string (see RFC 2045, count is width) - * | | (if count is 0, no line feed are added, see RFC 4648) - * P | String | pointer to a structure (fixed-length string) - * p | String | pointer to a null-terminated string - * - * Misc. | | - * Directive | | Meaning - * ------------------------------------------------------------------------ - * @ | --- | moves to absolute position - * X | --- | back up a byte - * x | --- | null byte + * Integer | Array | + * Directive | Element | Meaning + * --------------------------------------------------------------------------- + * C | Integer | 8-bit unsigned integer (unsigned char) + * S | Integer | 16-bit unsigned integer, native endian (uint16_t) + * L | Integer | 32-bit unsigned integer, native endian (uint32_t) + * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) + * | | + * c | Integer | 8-bit signed integer (char) + * s | Integer | 16-bit signed integer, native endian (int16_t) + * l | Integer | 32-bit signed integer, native endian (int32_t) + * q | Integer | 64-bit signed integer, native endian (int64_t) + * | | + * S_, S! | Integer | unsigned short, native endian + * I, I_, I! | Integer | unsigned int, native endian + * L_, L! | Integer | unsigned long, native endian + * | | + * s_, s! | Integer | signed short, native endian + * i, i_, i! | Integer | signed int, native endian + * l_, l! | Integer | signed long, native endian + * | | + * n | Integer | 16-bit unsigned integer, network (big-endian) byte order + * N | Integer | 32-bit unsigned integer, network (big-endian) byte order + * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order + * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order + * | | + * U | Integer | UTF-8 character + * w | Integer | BER-compressed integer + * + * Float | | + * Directive | | Meaning + * --------------------------------------------------------------------------- + * D, d | Float | double-precision float, native format + * F, f | Float | single-precision float, native format + * E | Float | double-precision float, little-endian byte order + * e | Float | single-precision float, little-endian byte order + * G | Float | double-precision float, network (big-endian) byte order + * g | Float | single-precision float, network (big-endian) byte order + * + * String | | + * Directive | | Meaning + * --------------------------------------------------------------------------- + * A | String | arbitrary binary string (space padded, count is width) + * a | String | arbitrary binary string (null padded, count is width) + * Z | String | same as ``a'', except that null is added with * + * B | String | bit string (MSB first) + * b | String | bit string (LSB first) + * H | String | hex string (high nibble first) + * h | String | hex string (low nibble first) + * u | String | UU-encoded string + * M | String | quoted printable, MIME encoding (see RFC2045) + * m | String | base64 encoded string (see RFC 2045, count is width) + * | | (if count is 0, no line feed are added, see RFC 4648) + * P | String | pointer to a structure (fixed-length string) + * p | String | pointer to a null-terminated string + * + * Misc. | | + * Directive | | Meaning + * --------------------------------------------------------------------------- + * @ | --- | moves to absolute position + * X | --- | back up a byte + * x | --- | null byte */ static VALUE @@ -1213,7 +1214,8 @@ * by a number, indicating the number of times to repeat with this * directive. An asterisk (``<code>*</code>'') will use up all * remaining elements. The directives <code>sSiIlL</code> may each be - * followed by an underscore (``<code>_</code>'') to use the underlying + * followed by an underscore (``<code>_</code>'') or + * exclamation mark (``<code>!</code>'') to use the underlying * platform's native size for the specified type; otherwise, it uses a * platform-independent consistent size. Spaces are ignored in the * format string. See also <code>Array#pack</code>. @@ -1230,68 +1232,68 @@ * This table summarizes the various formats and the Ruby classes * returned by each. * - * Integer | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * C | Integer | 8-bit unsigned integer (unsigned char) - * S | Integer | 16-bit unsigned integer, native endian (uint16_t) - * L | Integer | 32-bit unsigned integer, native endian (uint32_t) - * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) - * | | - * c | Integer | 8-bit signed integer (signed char) - * s | Integer | 16-bit signed integer, native endian (int16_t) - * l | Integer | 32-bit signed integer, native endian (int32_t) - * q | Integer | 64-bit signed integer, native endian (int64_t) - * | | - * S_ | Integer | unsigned short, native endian - * I, I_ | Integer | unsigned int, native endian - * L_ | Integer | unsigned long, native endian - * | | - * s_ | Integer | signed short, native endian - * i, i_ | Integer | signed int, native endian - * l_ | Integer | signed long, native endian - * | | - * n | Integer | 16-bit unsigned integer, network (big-endian) byte order - * N | Integer | 32-bit unsigned integer, network (big-endian) byte order - * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order - * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order - * | | - * U | Integer | UTF-8 character - * w | Integer | BER-compressed integer (see Array.pack) - * - * Float | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * D, d | Float | double-precision float, native format - * F, f | Float | single-precision float, native format - * E | Float | double-precision float, little-endian byte order - * e | Float | single-precision float, little-endian byte order - * G | Float | double-precision float, network (big-endian) byte order - * g | Float | single-precision float, network (big-endian) byte order - * - * String | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * A | String | arbitrary binary string (remove trailing nulls and ASCII spaces) - * a | String | arbitrary binary string - * Z | String | null-terminated string - * B | String | bit string (MSB first) - * b | String | bit string (LSB first) - * H | String | hex string (high nibble first) - * h | String | hex string (low nibble first) - * u | String | UU-encoded string - * M | String | quoted-printable, MIME encoding (see RFC2045) - * m | String | base64 encoded string (RFC 2045) (default) - * | | base64 encoded string (RFC 4648) if followed by 0 - * P | String | pointer to a structure (fixed-length string) - * p | String | pointer to a null-terminated string - * - * Misc. | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * @ | --- | skip to the offset given by the length argument - * X | --- | skip backward one byte - * x | --- | skip forward one byte + * Integer | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * C | Integer | 8-bit unsigned integer (unsigned char) + * S | Integer | 16-bit unsigned integer, native endian (uint16_t) + * L | Integer | 32-bit unsigned integer, native endian (uint32_t) + * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) + * | | + * c | Integer | 8-bit signed integer (signed char) + * s | Integer | 16-bit signed integer, native endian (int16_t) + * l | Integer | 32-bit signed integer, native endian (int32_t) + * q | Integer | 64-bit signed integer, native endian (int64_t) + * | | + * S_, S! | Integer | unsigned short, native endian + * I, I_, I! | Integer | unsigned int, native endian + * L_, L! | Integer | unsigned long, native endian + * | | + * s_, s! | Integer | signed short, native endian + * i, i_, i! | Integer | signed int, native endian + * l_, l! | Integer | signed long, native endian + * | | + * n | Integer | 16-bit unsigned integer, network (big-endian) byte order + * N | Integer | 32-bit unsigned integer, network (big-endian) byte order + * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order + * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order + * | | + * U | Integer | UTF-8 character + * w | Integer | BER-compressed integer (see Array.pack) + * + * Float | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * D, d | Float | double-precision float, native format + * F, f | Float | single-precision float, native format + * E | Float | double-precision float, little-endian byte order + * e | Float | single-precision float, little-endian byte order + * G | Float | double-precision float, network (big-endian) byte order + * g | Float | single-precision float, network (big-endian) byte order + * + * String | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * A | String | arbitrary binary string (remove trailing nulls and ASCII spaces) + * a | String | arbitrary binary string + * Z | String | null-terminated string + * B | String | bit string (MSB first) + * b | String | bit string (LSB first) + * H | String | hex string (high nibble first) + * h | String | hex string (low nibble first) + * u | String | UU-encoded string + * M | String | quoted-printable, MIME encoding (see RFC2045) + * m | String | base64 encoded string (RFC 2045) (default) + * | | base64 encoded string (RFC 4648) if followed by 0 + * P | String | pointer to a structure (fixed-length string) + * p | String | pointer to a null-terminated string + * + * Misc. | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * @ | --- | skip to the offset given by the length argument + * X | --- | skip backward one byte + * x | --- | skip forward one byte */ static VALUE Index: ruby_1_8/pack.c =================================================================== --- ruby_1_8/pack.c (revision 28457) +++ ruby_1_8/pack.c (revision 28458) @@ -306,7 +306,8 @@ * elements to convert. If the count is an asterisk * (``<code>*</code>''), all remaining array elements will be * converted. Any of the directives ``<code>sSiIlL</code>'' may be - * followed by an underscore (``<code>_</code>'') to use the underlying + * followed by an underscore (``<code>_</code>'') or + * exclamation mark (``<code>!</code>'') to use the underlying * platform's native size for the specified type; otherwise, they use a * platform-independent size. Spaces are ignored in the template * string. See also <code>String#unpack</code>. @@ -319,67 +320,67 @@ * * Directives for +pack+. * - * Integer | Array | - * Directive | Element | Meaning - * ------------------------------------------------------------------------ - * C | Integer | 8-bit unsigned integer (unsigned char) - * S | Integer | 16-bit unsigned integer, native endian (uint16_t) - * L | Integer | 32-bit unsigned integer, native endian (uint32_t) - * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) - * | | - * c | Integer | 8-bit signed integer (char) - * s | Integer | 16-bit signed integer, native endian (int16_t) - * l | Integer | 32-bit signed integer, native endian (int32_t) - * q | Integer | 64-bit signed integer, native endian (int64_t) - * | | - * S_ | Integer | unsigned short, native endian - * I, I_ | Integer | unsigned int, native endian - * L_ | Integer | unsigned long, native endian - * | | - * s_ | Integer | signed short, native endian - * i, i_ | Integer | signed int, native endian - * l_ | Integer | signed long, native endian - * | | - * n | Integer | 16-bit unsigned integer, network (big-endian) byte order - * N | Integer | 32-bit unsigned integer, network (big-endian) byte order - * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order - * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order - * | | - * U | Integer | UTF-8 character - * w | Integer | BER-compressed integer - * - * Float | | - * Directive | | Meaning - * ------------------------------------------------------------------------ - * D, d | Float | double-precision float, native format - * F, f | Float | single-precision float, native format - * E | Float | double-precision float, little-endian byte order - * e | Float | single-precision float, little-endian byte order - * G | Float | double-precision float, network (big-endian) byte order - * g | Float | single-precision float, network (big-endian) byte order - * - * String | | - * Directive | | Meaning - * ------------------------------------------------------------------------ - * A | String | arbitrary binary string (space padded, count is width) - * a | String | arbitrary binary string (null padded, count is width) - * Z | String | same as ``a'', except that null is added with * - * B | String | bit string (MSB first) - * b | String | bit string (LSB first) - * H | String | hex string (high nibble first) - * h | String | hex string (low nibble first) - * u | String | UU-encoded string - * M | String | quoted printable, MIME encoding (see RFC2045) - * m | String | base64 encoded string (see RFC 2045, count is width) - * P | String | pointer to a structure (fixed-length string) - * p | String | pointer to a null-terminated string - * - * Misc. | | - * Directive | | Meaning - * ------------------------------------------------------------------------ - * @ | --- | moves to absolute position - * X | --- | back up a byte - * x | --- | null byte + * Integer | Array | + * Directive | Element | Meaning + * --------------------------------------------------------------------------- + * C | Integer | 8-bit unsigned integer (unsigned char) + * S | Integer | 16-bit unsigned integer, native endian (uint16_t) + * L | Integer | 32-bit unsigned integer, native endian (uint32_t) + * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) + * | | + * c | Integer | 8-bit signed integer (char) + * s | Integer | 16-bit signed integer, native endian (int16_t) + * l | Integer | 32-bit signed integer, native endian (int32_t) + * q | Integer | 64-bit signed integer, native endian (int64_t) + * | | + * S_, S! | Integer | unsigned short, native endian + * I, I_, I! | Integer | unsigned int, native endian + * L_, L! | Integer | unsigned long, native endian + * | | + * s_, s! | Integer | signed short, native endian + * i, i_, i! | Integer | signed int, native endian + * l_, l! | Integer | signed long, native endian + * | | + * n | Integer | 16-bit unsigned integer, network (big-endian) byte order + * N | Integer | 32-bit unsigned integer, network (big-endian) byte order + * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order + * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order + * | | + * U | Integer | UTF-8 character + * w | Integer | BER-compressed integer + * + * Float | | + * Directive | | Meaning + * --------------------------------------------------------------------------- + * D, d | Float | double-precision float, native format + * F, f | Float | single-precision float, native format + * E | Float | double-precision float, little-endian byte order + * e | Float | single-precision float, little-endian byte order + * G | Float | double-precision float, network (big-endian) byte order + * g | Float | single-precision float, network (big-endian) byte order + * + * String | | + * Directive | | Meaning + * --------------------------------------------------------------------------- + * A | String | arbitrary binary string (space padded, count is width) + * a | String | arbitrary binary string (null padded, count is width) + * Z | String | same as ``a'', except that null is added with * + * B | String | bit string (MSB first) + * b | String | bit string (LSB first) + * H | String | hex string (high nibble first) + * h | String | hex string (low nibble first) + * u | String | UU-encoded string + * M | String | quoted printable, MIME encoding (see RFC2045) + * m | String | base64 encoded string (see RFC 2045, count is width) + * P | String | pointer to a structure (fixed-length string) + * p | String | pointer to a null-terminated string + * + * Misc. | | + * Directive | | Meaning + * --------------------------------------------------------------------------- + * @ | --- | moves to absolute position + * X | --- | back up a byte + * x | --- | null byte */ static VALUE @@ -1187,7 +1188,8 @@ * by a number, indicating the number of times to repeat with this * directive. An asterisk (``<code>*</code>'') will use up all * remaining elements. The directives <code>sSiIlL</code> may each be - * followed by an underscore (``<code>_</code>'') to use the underlying + * followed by an underscore (``<code>_</code>'') or + * exclamation mark (``<code>!</code>'') to use the underlying * platform's native size for the specified type; otherwise, it uses a * platform-independent consistent size. Spaces are ignored in the * format string. See also <code>Array#pack</code>. @@ -1204,67 +1206,67 @@ * This table summarizes the various formats and the Ruby classes * returned by each. * - * Integer | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * C | Integer | 8-bit unsigned integer (unsigned char) - * S | Integer | 16-bit unsigned integer, native endian (uint16_t) - * L | Integer | 32-bit unsigned integer, native endian (uint32_t) - * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) - * | | - * c | Integer | 8-bit signed integer (signed char) - * s | Integer | 16-bit signed integer, native endian (int16_t) - * l | Integer | 32-bit signed integer, native endian (int32_t) - * q | Integer | 64-bit signed integer, native endian (int64_t) - * | | - * S_ | Integer | unsigned short, native endian - * I, I_ | Integer | unsigned int, native endian - * L_ | Integer | unsigned long, native endian - * | | - * s_ | Integer | signed short, native endian - * i, i_ | Integer | signed int, native endian - * l_ | Integer | signed long, native endian - * | | - * n | Integer | 16-bit unsigned integer, network (big-endian) byte order - * N | Integer | 32-bit unsigned integer, network (big-endian) byte order - * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order - * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order - * | | - * U | Integer | UTF-8 character - * w | Integer | BER-compressed integer (see Array.pack) - * - * Float | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * D, d | Float | double-precision float, native format - * F, f | Float | single-precision float, native format - * E | Float | double-precision float, little-endian byte order - * e | Float | single-precision float, little-endian byte order - * G | Float | double-precision float, network (big-endian) byte order - * g | Float | single-precision float, network (big-endian) byte order - * - * String | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * A | String | arbitrary binary string (remove trailing nulls and ASCII spaces) - * a | String | arbitrary binary string - * Z | String | null-terminated string - * B | String | bit string (MSB first) - * b | String | bit string (LSB first) - * H | String | hex string (high nibble first) - * h | String | hex string (low nibble first) - * u | String | UU-encoded string - * M | String | quoted-printable, MIME encoding (see RFC2045) - * m | String | base64 encoded string (RFC 2045) - * P | String | pointer to a structure (fixed-length string) - * p | String | pointer to a null-terminated string - * - * Misc. | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * @ | --- | skip to the offset given by the length argument - * X | --- | skip backward one byte - * x | --- | skip forward one byte + * Integer | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * C | Integer | 8-bit unsigned integer (unsigned char) + * S | Integer | 16-bit unsigned integer, native endian (uint16_t) + * L | Integer | 32-bit unsigned integer, native endian (uint32_t) + * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) + * | | + * c | Integer | 8-bit signed integer (signed char) + * s | Integer | 16-bit signed integer, native endian (int16_t) + * l | Integer | 32-bit signed integer, native endian (int32_t) + * q | Integer | 64-bit signed integer, native endian (int64_t) + * | | + * S_, S! | Integer | unsigned short, native endian + * I, I_, I! | Integer | unsigned int, native endian + * L_, L! | Integer | unsigned long, native endian + * | | + * s_, s! | Integer | signed short, native endian + * i, i_, i! | Integer | signed int, native endian + * l_, l! | Integer | signed long, native endian + * | | + * n | Integer | 16-bit unsigned integer, network (big-endian) byte order + * N | Integer | 32-bit unsigned integer, network (big-endian) byte order + * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order + * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order + * | | + * U | Integer | UTF-8 character + * w | Integer | BER-compressed integer (see Array.pack) + * + * Float | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * D, d | Float | double-precision float, native format + * F, f | Float | single-precision float, native format + * E | Float | double-precision float, little-endian byte order + * e | Float | single-precision float, little-endian byte order + * G | Float | double-precision float, network (big-endian) byte order + * g | Float | single-precision float, network (big-endian) byte order + * + * String | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * A | String | arbitrary binary string (remove trailing nulls and ASCII spaces) + * a | String | arbitrary binary string + * Z | String | null-terminated string + * B | String | bit string (MSB first) + * b | String | bit string (LSB first) + * H | String | hex string (high nibble first) + * h | String | hex string (low nibble first) + * u | String | UU-encoded string + * M | String | quoted-printable, MIME encoding (see RFC2045) + * m | String | base64 encoded string (RFC 2045) + * P | String | pointer to a structure (fixed-length string) + * p | String | pointer to a null-terminated string + * + * Misc. | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * @ | --- | skip to the offset given by the length argument + * X | --- | skip backward one byte + * x | --- | skip forward one byte */ static VALUE Index: ruby_1_9_2/pack.c =================================================================== --- ruby_1_9_2/pack.c (revision 28457) +++ ruby_1_9_2/pack.c (revision 28458) @@ -305,7 +305,8 @@ * elements to convert. If the count is an asterisk * (``<code>*</code>''), all remaining array elements will be * converted. Any of the directives ``<code>sSiIlL</code>'' may be - * followed by an underscore (``<code>_</code>'') to use the underlying + * followed by an underscore (``<code>_</code>'') or + * exclamation mark (``<code>!</code>'') to use the underlying * platform's native size for the specified type; otherwise, they use a * platform-independent size. Spaces are ignored in the template * string. See also <code>String#unpack</code>. @@ -318,68 +319,68 @@ * * Directives for +pack+. * - * Integer | Array | - * Directive | Element | Meaning - * ------------------------------------------------------------------------ - * C | Integer | 8-bit unsigned integer (unsigned char) - * S | Integer | 16-bit unsigned integer, native endian (uint16_t) - * L | Integer | 32-bit unsigned integer, native endian (uint32_t) - * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) - * | | - * c | Integer | 8-bit signed integer (char) - * s | Integer | 16-bit signed integer, native endian (int16_t) - * l | Integer | 32-bit signed integer, native endian (int32_t) - * q | Integer | 64-bit signed integer, native endian (int64_t) - * | | - * S_ | Integer | unsigned short, native endian - * I, I_ | Integer | unsigned int, native endian - * L_ | Integer | unsigned long, native endian - * | | - * s_ | Integer | signed short, native endian - * i, i_ | Integer | signed int, native endian - * l_ | Integer | signed long, native endian - * | | - * n | Integer | 16-bit unsigned integer, network (big-endian) byte order - * N | Integer | 32-bit unsigned integer, network (big-endian) byte order - * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order - * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order - * | | - * U | Integer | UTF-8 character - * w | Integer | BER-compressed integer - * - * Float | | - * Directive | | Meaning - * ------------------------------------------------------------------------ - * D, d | Float | Double-precision float, native format - * F, f | Float | Single-precision float, native format - * E | Float | Double-precision float, little-endian byte order - * e | Float | Single-precision float, little-endian byte order - * G | Float | Double-precision float, network (big-endian) byte order - * g | Float | Single-precision float, network (big-endian) byte order - * - * String | | - * Directive | | Meaning - * ------------------------------------------------------------------------ - * A | String | arbitrary binary string (space padded, count is width) - * a | String | arbitrary binary string (null padded, count is width) - * Z | String | Same as ``a'', except that null is added with * - * B | String | Bit string (MSB first) - * b | String | Bit string (LSB first) - * H | String | Hex string (high nibble first) - * h | String | Hex string (low nibble first) - * u | String | UU-encoded string - * M | String | Quoted printable, MIME encoding (see RFC2045) - * m | String | Base64 encoded string (see RFC 2045, count is width) - * | | (if count is 0, no line feed are added, see RFC 4648) - * P | String | Pointer to a structure (fixed-length string) - * p | String | Pointer to a null-terminated string - * - * Misc. | | - * Directive | | Meaning - * ------------------------------------------------------------------------ - * @ | --- | Moves to absolute position - * X | --- | Back up a byte - * x | --- | Null byte + * Integer | Array | + * Directive | Element | Meaning + * --------------------------------------------------------------------------- + * C | Integer | 8-bit unsigned integer (unsigned char) + * S | Integer | 16-bit unsigned integer, native endian (uint16_t) + * L | Integer | 32-bit unsigned integer, native endian (uint32_t) + * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) + * | | + * c | Integer | 8-bit signed integer (char) + * s | Integer | 16-bit signed integer, native endian (int16_t) + * l | Integer | 32-bit signed integer, native endian (int32_t) + * q | Integer | 64-bit signed integer, native endian (int64_t) + * | | + * S_, S! | Integer | unsigned short, native endian + * I, I_, I! | Integer | unsigned int, native endian + * L_, L! | Integer | unsigned long, native endian + * | | + * s_, s! | Integer | signed short, native endian + * i, i_, i! | Integer | signed int, native endian + * l_, l! | Integer | signed long, native endian + * | | + * n | Integer | 16-bit unsigned integer, network (big-endian) byte order + * N | Integer | 32-bit unsigned integer, network (big-endian) byte order + * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order + * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order + * | | + * U | Integer | UTF-8 character + * w | Integer | BER-compressed integer + * + * Float | | + * Directive | | Meaning + * --------------------------------------------------------------------------- + * D, d | Float | double-precision float, native format + * F, f | Float | single-precision float, native format + * E | Float | double-precision float, little-endian byte order + * e | Float | single-precision float, little-endian byte order + * G | Float | double-precision float, network (big-endian) byte order + * g | Float | single-precision float, network (big-endian) byte order + * + * String | | + * Directive | | Meaning + * --------------------------------------------------------------------------- + * A | String | arbitrary binary string (space padded, count is width) + * a | String | arbitrary binary string (null padded, count is width) + * Z | String | same as ``a'', except that null is added with * + * B | String | bit string (MSB first) + * b | String | bit string (LSB first) + * H | String | hex string (high nibble first) + * h | String | hex string (low nibble first) + * u | String | UU-encoded string + * M | String | quoted printable, MIME encoding (see RFC2045) + * m | String | base64 encoded string (see RFC 2045, count is width) + * | | (if count is 0, no line feed are added, see RFC 4648) + * P | String | pointer to a structure (fixed-length string) + * p | String | pointer to a null-terminated string + * + * Misc. | | + * Directive | | Meaning + * --------------------------------------------------------------------------- + * @ | --- | moves to absolute position + * X | --- | back up a byte + * x | --- | null byte */ static VALUE @@ -1213,7 +1214,8 @@ * by a number, indicating the number of times to repeat with this * directive. An asterisk (``<code>*</code>'') will use up all * remaining elements. The directives <code>sSiIlL</code> may each be - * followed by an underscore (``<code>_</code>'') to use the underlying + * followed by an underscore (``<code>_</code>'') or + * exclamation mark (``<code>!</code>'') to use the underlying * platform's native size for the specified type; otherwise, it uses a * platform-independent consistent size. Spaces are ignored in the * format string. See also <code>Array#pack</code>. @@ -1230,68 +1232,68 @@ * This table summarizes the various formats and the Ruby classes * returned by each. * - * Integer | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * C | Integer | 8-bit unsigned integer (unsigned char) - * S | Integer | 16-bit unsigned integer, native endian (uint16_t) - * L | Integer | 32-bit unsigned integer, native endian (uint32_t) - * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) - * | | - * c | Integer | 8-bit signed integer (char) - * s | Integer | 16-bit signed integer, native endian (int16_t) - * l | Integer | 32-bit signed integer, native endian (int32_t) - * q | Integer | 64-bit signed integer, native endian (int64_t) - * | | - * S_ | Integer | unsigned short, native endian - * I, I_ | Integer | unsigned int, native endian - * L_ | Integer | unsigned long, native endian - * | | - * s_ | Integer | signed short, native endian - * i, i_ | Integer | signed int, native endian - * l_ | Integer | signed long, native endian - * | | - * n | Integer | 16-bit unsigned integer, network (big-endian) byte order - * N | Integer | 32-bit unsigned integer, network (big-endian) byte order - * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order - * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order - * | | - * U | Integer | UTF-8 character - * w | Integer | BER-compressed integer (see Array.pack) - * - * Float | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * d, D | Float | Double-precision float, native format - * f, F | Float | Single-precision float, native format - * E | Float | Double-precision float, little-endian byte order - * e | Float | Single-precision float, little-endian byte order - * G | Float | Double-precision float, network (big-endian) byte order - * g | Float | Single-precision float, network (big-endian) byte order - * - * String | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * A | String | arbitrary binary string (remove trailing nulls and ASCII spaces) - * a | String | arbitrary binary string - * Z | String | null-terminated string - * B | String | bit string (MSB first) - * b | String | bit string (LSB first) - * H | String | Hex string (high nibble first) - * h | String | Hex string (low nibble first) - * u | String | UU-encoded string - * M | String | quoted-printable, MIME encoding (see RFC2045) - * m | String | base64-encoded (RFC 2045) (default) - * | | base64-encoded (RFC 4648) if followed by 0 - * P | String | Pointer to a structure (fixed-length string) - * p | String | Pointer to a null-terminated string - * - * Misc. | | - * Directive | Returns | Meaning - * -------------------------------------------------------------- - * @ | --- | skip to the offset given by the length argument - * X | --- | skip backward one byte - * x | --- | skip forward one byte + * Integer | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * C | Integer | 8-bit unsigned integer (unsigned char) + * S | Integer | 16-bit unsigned integer, native endian (uint16_t) + * L | Integer | 32-bit unsigned integer, native endian (uint32_t) + * Q | Integer | 64-bit unsigned integer, native endian (uint64_t) + * | | + * c | Integer | 8-bit signed integer (signed char) + * s | Integer | 16-bit signed integer, native endian (int16_t) + * l | Integer | 32-bit signed integer, native endian (int32_t) + * q | Integer | 64-bit signed integer, native endian (int64_t) + * | | + * S_, S! | Integer | unsigned short, native endian + * I, I_, I! | Integer | unsigned int, native endian + * L_, L! | Integer | unsigned long, native endian + * | | + * s_, s! | Integer | signed short, native endian + * i, i_, i! | Integer | signed int, native endian + * l_, l! | Integer | signed long, native endian + * | | + * n | Integer | 16-bit unsigned integer, network (big-endian) byte order + * N | Integer | 32-bit unsigned integer, network (big-endian) byte order + * v | Integer | 16-bit unsigned integer, VAX (little-endian) byte order + * V | Integer | 32-bit unsigned integer, VAX (little-endian) byte order + * | | + * U | Integer | UTF-8 character + * w | Integer | BER-compressed integer (see Array.pack) + * + * Float | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * D, d | Float | double-precision float, native format + * F, f | Float | single-precision float, native format + * E | Float | double-precision float, little-endian byte order + * e | Float | single-precision float, little-endian byte order + * G | Float | double-precision float, network (big-endian) byte order + * g | Float | single-precision float, network (big-endian) byte order + * + * String | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * A | String | arbitrary binary string (remove trailing nulls and ASCII spaces) + * a | String | arbitrary binary string + * Z | String | null-terminated string + * B | String | bit string (MSB first) + * b | String | bit string (LSB first) + * H | String | hex string (high nibble first) + * h | String | hex string (low nibble first) + * u | String | UU-encoded string + * M | String | quoted-printable, MIME encoding (see RFC2045) + * m | String | base64 encoded string (RFC 2045) (default) + * | | base64 encoded string (RFC 4648) if followed by 0 + * P | String | pointer to a structure (fixed-length string) + * p | String | pointer to a null-terminated string + * + * Misc. | | + * Directive | Returns | Meaning + * ----------------------------------------------------------------- + * @ | --- | skip to the offset given by the length argument + * X | --- | skip backward one byte + * x | --- | skip forward one byte */ static VALUE -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/