fake.rb.in: scan version.c
* template/fake.rb.in: scan MKSTR and MKINT from version.c and then extract the value for them from version.i. * version.c (Init_version): use MKINT as the marker. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50833 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0991d0a8ee
commit
8ab36f0306
@ -8,8 +8,10 @@ end
|
|||||||
if arg['i']
|
if arg['i']
|
||||||
src = File.read(arg['i'])
|
src = File.read(arg['i'])
|
||||||
arg['versions'] = version = {}
|
arg['versions'] = version = {}
|
||||||
src.scan(/rb_define_global_const\("(RUBY_\w+)",\s*(?:.*rb_\w*str_new\w*\s*\(\s*(\w+)|[\(\s]*\(\s*VALUE\s*\)\s*\((.+)\)\s*\)\s*<<\s?)/) do |n, s, i|
|
File.read(File.join(arg['srcdir'], 'version.c')).
|
||||||
version[n] = i ? i.gsub(/\s+/, '').to_i : src[/\b#{s}\[\]\s*=\s*((?:"(?:\\.|[^\"\\])*"\s*)*);/m, 1].gsub(/\A"|"\s*\z|" *"/, '').gsub(/\\(.)/, '\1')
|
scan(/rb_define_global_const\("(RUBY_\w+)",[^;]*?\bMK(?:INT|STR)\(([^()]*)\)/m) do |n, v|
|
||||||
|
version[n] =
|
||||||
|
eval(src[/\bruby_#{v}(?:\[\])?\s*=\s*((?:"(?:\\.|[^\"\\])*"\s*)*(?=;)|[^{};]+)/m, 1].gsub(/#/, '\\#'))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
%>baseruby="<%=arg['BASERUBY']%>"
|
%>baseruby="<%=arg['BASERUBY']%>"
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#define PRINT(type) puts(ruby_##type)
|
#define PRINT(type) puts(ruby_##type)
|
||||||
#define MKSTR(type) rb_obj_freeze(rb_usascii_str_new_static(ruby_##type, sizeof(ruby_##type)-1))
|
#define MKSTR(type) rb_obj_freeze(rb_usascii_str_new_static(ruby_##type, sizeof(ruby_##type)-1))
|
||||||
|
#define MKINT(name) INT2FIX(ruby_##name)
|
||||||
|
|
||||||
const int ruby_api_version[] = {
|
const int ruby_api_version[] = {
|
||||||
RUBY_API_VERSION_MAJOR,
|
RUBY_API_VERSION_MAJOR,
|
||||||
@ -38,6 +39,8 @@ VALUE ruby_engine_name = Qnil;
|
|||||||
void
|
void
|
||||||
Init_version(void)
|
Init_version(void)
|
||||||
{
|
{
|
||||||
|
enum {ruby_patchlevel = RUBY_PATCHLEVEL};
|
||||||
|
enum {ruby_revision = RUBY_REVISION};
|
||||||
VALUE version;
|
VALUE version;
|
||||||
/*
|
/*
|
||||||
* The running version of ruby
|
* The running version of ruby
|
||||||
@ -55,11 +58,11 @@ Init_version(void)
|
|||||||
* The patchlevel for this ruby. If this is a development build of ruby
|
* The patchlevel for this ruby. If this is a development build of ruby
|
||||||
* the patchlevel will be -1
|
* the patchlevel will be -1
|
||||||
*/
|
*/
|
||||||
rb_define_global_const("RUBY_PATCHLEVEL", INT2FIX(RUBY_PATCHLEVEL));
|
rb_define_global_const("RUBY_PATCHLEVEL", MKINT(patchlevel));
|
||||||
/*
|
/*
|
||||||
* The SVN revision for this ruby.
|
* The SVN revision for this ruby.
|
||||||
*/
|
*/
|
||||||
rb_define_global_const("RUBY_REVISION", INT2FIX(RUBY_REVISION));
|
rb_define_global_const("RUBY_REVISION", MKINT(revision));
|
||||||
/*
|
/*
|
||||||
* The full ruby version string, like <tt>ruby -v</tt> prints'
|
* The full ruby version string, like <tt>ruby -v</tt> prints'
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user