console 0.3 → 0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ext/console/console.c +3 -4
- metadata +31 -40
data/ext/console/console.c
CHANGED
@@ -17,8 +17,10 @@
|
|
17
17
|
static inline int calc_width(char* string, long strlen, long byte_offset, size_t* num_bytes, size_t* num_cols) {
|
18
18
|
wchar_t wc;
|
19
19
|
size_t width = -1;
|
20
|
+
mbstate_t state;
|
20
21
|
|
21
|
-
|
22
|
+
memset(&state, 0, sizeof(state));
|
23
|
+
*num_bytes = mbrtowc(&wc, string + byte_offset, strlen - byte_offset, &state);
|
22
24
|
|
23
25
|
if(*num_bytes == (size_t)-2) {
|
24
26
|
rb_raise(rb_eArgError, "malformed string: incomplete multibyte character at position %ld", byte_offset);
|
@@ -34,9 +36,6 @@ static inline int calc_width(char* string, long strlen, long byte_offset, size_t
|
|
34
36
|
}
|
35
37
|
|
36
38
|
*num_cols = wcwidth(wc);
|
37
|
-
/* sometimes this seems to happen! maybe it's not bad...
|
38
|
-
if(width == 0) rb_raise(rb_eArgError, "bad string: non-printable character at position %ld", RSTRING_LEN(v_string) - remaining_bytes);
|
39
|
-
*/
|
40
39
|
|
41
40
|
return 0;
|
42
41
|
}
|
metadata
CHANGED
@@ -1,33 +1,32 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: console
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
version: "0.3"
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: '0.4'
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- William Morgan
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
date: 2011-01-17 20:18:21 -08:00
|
12
|
+
date: 2011-04-30 14:51:22.000000000 -07:00
|
18
13
|
default_executable:
|
19
14
|
dependencies: []
|
20
|
-
|
21
|
-
|
15
|
+
description: Console is a helper class for displaying super-ASCII strings on the console.
|
16
|
+
Console is needed when you want to mix two-column (e.g. Chinese) and single-column
|
17
|
+
(e.g. ASCII) characters and know how much horizontal realestate the result takes
|
18
|
+
on the screen. This is generally necessary when you want to have internationalization
|
19
|
+
support in a console-based program. Console currently provides utility methods for
|
20
|
+
determining the display width of a string, and for taking a substring based on display
|
21
|
+
position and display width.
|
22
22
|
email: wmorgan-console@masanjin.net
|
23
23
|
executables: []
|
24
|
-
|
25
|
-
extensions:
|
24
|
+
extensions:
|
26
25
|
- ext/console/extconf.rb
|
27
|
-
extra_rdoc_files:
|
26
|
+
extra_rdoc_files:
|
28
27
|
- README
|
29
28
|
- ext/console/console.c
|
30
|
-
files:
|
29
|
+
files:
|
31
30
|
- README
|
32
31
|
- ext/console/extconf.rb
|
33
32
|
- ext/console/console.c
|
@@ -36,36 +35,28 @@ files:
|
|
36
35
|
has_rdoc: true
|
37
36
|
homepage: http://masanjin.net/console
|
38
37
|
licenses: []
|
39
|
-
|
40
38
|
post_install_message:
|
41
|
-
rdoc_options:
|
42
|
-
|
43
|
-
|
39
|
+
rdoc_options:
|
40
|
+
- -c
|
41
|
+
- utf8
|
42
|
+
require_paths:
|
44
43
|
- lib
|
45
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
46
45
|
none: false
|
47
|
-
requirements:
|
48
|
-
- -
|
49
|
-
- !ruby/object:Gem::Version
|
50
|
-
|
51
|
-
|
52
|
-
- 0
|
53
|
-
version: "0"
|
54
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ! '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
51
|
none: false
|
56
|
-
requirements:
|
57
|
-
- -
|
58
|
-
- !ruby/object:Gem::Version
|
59
|
-
|
60
|
-
segments:
|
61
|
-
- 0
|
62
|
-
version: "0"
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
63
56
|
requirements: []
|
64
|
-
|
65
57
|
rubyforge_project:
|
66
|
-
rubygems_version: 1.
|
58
|
+
rubygems_version: 1.6.0
|
67
59
|
signing_key:
|
68
60
|
specification_version: 3
|
69
61
|
summary: Console is a helper for properly handling super-ASCII strings on the console.
|
70
62
|
test_files: []
|
71
|
-
|