oniguruma 1.0.0 → 1.0.1
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/History.txt +5 -0
- data/Manifest.txt +2 -0
- data/Rakefile +29 -6
- data/ext/oregexp.c +6 -6
- metadata +5 -3
data/History.txt
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
== 1.0.1 / 2007-03-28
|
2
|
+
* Minimal recommended version of oniglib changed to be compatible with Ruby 1.9, now is 4.6 or higher.
|
3
|
+
* Restore check for onig version to build with 4.6
|
4
|
+
* In getting replacement do not create temp string object, but directly add to resulting buffer (performance impr.)
|
5
|
+
|
1
6
|
== 1.0.0 / 2007-03-27
|
2
7
|
* Added documentation for MatchData.
|
3
8
|
* Added ogsub, ogsub!, sub and sub! to ::String.
|
data/Manifest.txt
CHANGED
data/Rakefile
CHANGED
@@ -1,18 +1,41 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'hoe'
|
3
3
|
|
4
|
-
class Hoe
|
4
|
+
class Hoe
|
5
|
+
# Dirty hack to eliminate Hoe from gem dependencies
|
6
|
+
def extra_deps
|
7
|
+
@extra_deps.reject { |x| Array(x).first == 'hoe' }
|
8
|
+
end
|
9
|
+
|
10
|
+
# Dirty hack to package only the required files per platform
|
11
|
+
def spec= s
|
12
|
+
if ENV['PLATFORM'] =~ /win32/
|
13
|
+
s.files = s.files.reject! {|f| f =~ /ext\//}
|
14
|
+
else
|
15
|
+
s.files = s.files.reject! {|f| f =~ /win\//}
|
16
|
+
end
|
17
|
+
@spec = s
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
version = /^== *(\d+\.\d+\.\d+)/.match( File.read( 'History.txt' ) )[1]
|
5
22
|
|
6
|
-
Hoe.new('oniguruma',
|
23
|
+
Hoe.new('oniguruma', version) do |p|
|
7
24
|
p.rubyforge_name = 'oniguruma'
|
8
|
-
p.author = 'Dizan Vasquez'
|
9
|
-
p.email = '
|
25
|
+
p.author = ['Dizan Vasquez', 'Nikolai Lugovoi']
|
26
|
+
p.email = 'dichodaemon@gmail.com'
|
10
27
|
p.summary = 'Bindings for the oniguruma regular expression library'
|
11
28
|
p.description = p.paragraphs_of('README.txt', 1 ).join('\n\n')
|
12
29
|
p.url = 'http://oniguruma.rubyforge.org'
|
13
|
-
|
30
|
+
if ENV['PLATFORM'] =~ /win32/
|
31
|
+
p.lib_files = ["win/oregexp.so"]
|
32
|
+
p.spec_extras[:require_paths] = ["win", "lib", "ext" ]
|
33
|
+
p.spec_extras[:platform] = Gem::Platform::WIN32
|
34
|
+
else
|
35
|
+
p.spec_extras[:extensions] = ["ext/extconf.rb"]
|
36
|
+
end
|
14
37
|
p.rdoc_pattern = /^(lib|bin|ext)|txt$/
|
15
|
-
p.changes = p.paragraphs_of('History.txt', 0
|
38
|
+
p.changes = p.paragraphs_of('History.txt', 0).join("\n\n")
|
16
39
|
end
|
17
40
|
|
18
41
|
|
data/ext/oregexp.c
CHANGED
@@ -58,7 +58,9 @@ static OnigEncodingType * int2encoding( VALUE v_index ) {
|
|
58
58
|
case 26: return ONIG_ENCODING_SJIS;
|
59
59
|
/*case 27: return ONIG_ENCODING_KOI8;*/
|
60
60
|
case 28: return ONIG_ENCODING_KOI8_R;
|
61
|
+
#if ONIGURUMA_VERSION_MAJOR == 5
|
61
62
|
case 29: return ONIG_ENCODING_CP1251;
|
63
|
+
#endif
|
62
64
|
case 30: return ONIG_ENCODING_BIG5;
|
63
65
|
case 31: return ONIG_ENCODING_GB18030;
|
64
66
|
case 32: return ONIG_ENCODING_UNDEF;
|
@@ -224,14 +226,14 @@ backslash). */
|
|
224
226
|
|
225
227
|
/* scan the replacement text, looking for substitutions (\n) and \escapes. */
|
226
228
|
static VALUE
|
227
|
-
|
229
|
+
oregexp_append_replacement(pat, src_text, repl_text, region, ret)
|
228
230
|
VALUE pat,
|
229
231
|
src_text,
|
230
232
|
repl_text;
|
231
233
|
OnigRegion * region;
|
234
|
+
VALUE ret;
|
232
235
|
{
|
233
236
|
ORegexp *oregexp;
|
234
|
-
VALUE ret;
|
235
237
|
int32_t replIdx = 0, name_pos, name_start, name_end ;
|
236
238
|
int32_t replacementLength = RSTRING(repl_text)->len;
|
237
239
|
UChar *replacementText = RSTRING(repl_text)->ptr;
|
@@ -248,8 +250,6 @@ oregexp_get_replacement(pat, src_text, repl_text, region)
|
|
248
250
|
Data_Get_Struct( pat, ORegexp, oregexp );
|
249
251
|
enc = onig_get_encoding( oregexp->reg );
|
250
252
|
|
251
|
-
ret = rb_str_buf_new(RSTRING(repl_text)->len);
|
252
|
-
|
253
253
|
while (replIdx < replacementLength) {
|
254
254
|
OnigCodePoint c = ONIGENC_MBC_TO_CODE(enc, replacementText+replIdx, replacementEnd);
|
255
255
|
int c_len =ONIGENC_MBC_ENC_LEN(enc, replacementText+replIdx) ;
|
@@ -438,10 +438,10 @@ oregexp_gsub(self, argc, argv, bang, once, region)
|
|
438
438
|
block_res = rb_yield( match_data );
|
439
439
|
str_mod_check( string_str, str_ptr, str_len);
|
440
440
|
curr_repl = rb_obj_as_string(block_res);
|
441
|
+
rb_str_append(buf, curr_repl);
|
441
442
|
} else {
|
442
|
-
|
443
|
+
oregexp_append_replacement(self, string_str, repl, region, buf);
|
443
444
|
}
|
444
|
-
rb_str_append(buf, curr_repl);
|
445
445
|
if( once ) break;
|
446
446
|
// find next match
|
447
447
|
if( end == beg) {
|
metadata
CHANGED
@@ -3,13 +3,13 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: oniguruma
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.0.
|
7
|
-
date: 2007-03-
|
6
|
+
version: 1.0.1
|
7
|
+
date: 2007-03-28 00:00:00 +02:00
|
8
8
|
summary: Bindings for the oniguruma regular expression library
|
9
9
|
require_paths:
|
10
10
|
- lib
|
11
11
|
- ext
|
12
|
-
email:
|
12
|
+
email: dichodaemon@gmail.com
|
13
13
|
homepage: http://oniguruma.rubyforge.org
|
14
14
|
rubyforge_project: oniguruma
|
15
15
|
description: Ruby bindings to the Oniguruma[http://www.geocities.jp/kosako3/oniguruma/] regular expression library (no need to recompile Ruby).
|
@@ -29,6 +29,7 @@ cert_chain:
|
|
29
29
|
post_install_message:
|
30
30
|
authors:
|
31
31
|
- Dizan Vasquez
|
32
|
+
- Nikolai Lugovoi
|
32
33
|
files:
|
33
34
|
- History.txt
|
34
35
|
- Manifest.txt
|
@@ -37,6 +38,7 @@ files:
|
|
37
38
|
- Rakefile
|
38
39
|
- lib/oniguruma.rb
|
39
40
|
- ext/oregexp.c
|
41
|
+
- ext/extconf.rb
|
40
42
|
- test/test_oniguruma.rb
|
41
43
|
test_files:
|
42
44
|
- test/test_oniguruma.rb
|