Class: String
- Inherits:
-
Object
- Object
- String
- Defined in:
- (unknown)
Instance Method Summary collapse
-
#bencode ⇒ Object
String#bencode and String#bencode!.
- #bencode! ⇒ Object
Instance Method Details
#bencode ⇒ Object
String#bencode and String#bencode!
41 42 43 44 45 46 |
# File 'ext/b_encode/b_encode.c', line 41 static VALUE rb_str_bencode(VALUE str) { str = rb_str_dup(str); rb_str_bencode_bang(str); return str; } |
#bencode! ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'ext/b_encode/b_encode.c', line 17 static VALUE rb_str_bencode_bang(VALUE str) { int strlen = RSTRING_LEN(str); // length prefix + ":" + str int dc = digit_count(strlen); int newlen = dc + 1 + strlen; rb_str_resize(str, newlen); char *ptr = RSTRING_PTR(str); memmove(ptr + dc + 1, ptr, strlen); if (strlen == 0) { ptr[0] = '0'; } else { int n = strlen; for (int i = 0; n > 0; n /= 10, i++) ptr[dc - i - 1] = (n % 10) + '0'; } ptr[dc] = ':'; return str; } |