diff options
author | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-08-03 14:08:18 +0000 |
---|---|---|
committer | nagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-08-03 14:08:18 +0000 |
commit | 5be2e8eb3954a769a5e639da5e92572116e840bc (patch) | |
tree | ad5f668640404e96a1f24d6d6a80e29a95512280 | |
parent | 83466682e292cf7f0faeacd945f37829707b80a6 (diff) |
merge revision(s) 40080,40081: [Backport #8209]
* ext/extmk.rb (extmake): Use Logging.open to switch stdout and
stderr. Delay Logging::log_close until the failure message is
written. Write the failure message only if log file is opened.
* lib/mkmf.rb (Logging.log_opened?): New method.
[ruby-dev:47215] [Bug #8209]
* ext/extmk.rb (extmake): Invoke Logging::log_close in a ensure
clause.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@42359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 15 | ||||
-rwxr-xr-x | ext/extmk.rb | 19 | ||||
-rw-r--r-- | lib/mkmf.rb | 4 | ||||
-rw-r--r-- | version.h | 2 |
4 files changed, 26 insertions, 14 deletions
@@ -1,3 +1,18 @@ +Sat Aug 3 23:02:09 2013 Tanaka Akira <akr@fsij.org> + + * ext/extmk.rb (extmake): Invoke Logging::log_close in a ensure + clause. + +Sat Aug 3 23:02:09 2013 Tanaka Akira <akr@fsij.org> + + * ext/extmk.rb (extmake): Use Logging.open to switch stdout and + stderr. Delay Logging::log_close until the failure message is + written. Write the failure message only if log file is opened. + + * lib/mkmf.rb (Logging.log_opened?): New method. + + [ruby-dev:47215] [Bug #8209] + Sat Aug 3 22:46:19 2013 Nobuyoshi Nakada <nobu@ruby-lang.org> * lib/mkmf.rb (xsystem): expand environment variable in all macros not diff --git a/ext/extmk.rb b/ext/extmk.rb index 4e5f64d4f6..597fc78f60 100755 --- a/ext/extmk.rb +++ b/ext/extmk.rb @@ -193,19 +193,11 @@ def extmake(target) Logging::logfile 'mkmf.log' rm_f makefile if conf - stdout = $stdout.dup - stderr = $stderr.dup - unless verbose? - $stderr.reopen($stdout.reopen(@null)) - end - begin + Logging.open do + unless verbose? + $stderr.reopen($stdout.reopen(@null)) + end load $0 = conf - ensure - Logging::log_close - $stderr.reopen(stderr) - $stdout.reopen(stdout) - stdout.close - stderr.close end else create_makefile(target) @@ -235,7 +227,7 @@ def extmake(target) mess = "#{error}\n#{mess}" end - Logging::message(mess) + Logging::message(mess) if Logging.log_opened? print(mess) $stdout.flush return true @@ -271,6 +263,7 @@ def extmake(target) $extpath |= $LIBPATH end ensure + Logging::log_close unless $ignore RbConfig.module_eval { remove_const(:CONFIG) diff --git a/lib/mkmf.rb b/lib/mkmf.rb index 03ff262d25..7653cc6a43 100644 --- a/lib/mkmf.rb +++ b/lib/mkmf.rb @@ -299,6 +299,10 @@ module MakeMakefile @log.sync = true end + def self::log_opened? + @log and not @log.closed? + end + def self::open log_open $stderr.reopen(@log) @@ -1,6 +1,6 @@ #define RUBY_VERSION "2.0.0" #define RUBY_RELEASE_DATE "2013-08-03" -#define RUBY_PATCHLEVEL 287 +#define RUBY_PATCHLEVEL 288 #define RUBY_RELEASE_YEAR 2013 #define RUBY_RELEASE_MONTH 8 |