From 004127aa904cec52e80bbfc756c4a18b7f4970f0 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 6 Dec 2004 08:19:20 +0000 Subject: * rubysig.h (TRAP_BEG, TRAP_END): safe errno around CHECK_INTS. (backported from CVS HEAD) [ruby-dev:24993] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 ++++++- rubysig.h | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index bdcbd82e60..079f47fbd0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,11 @@ +Mon Dec 6 17:19:13 2004 Nobuyoshi Nakada + + * rubysig.h (TRAP_BEG, TRAP_END): safe errno around CHECK_INTS. + (backported from CVS HEAD) [ruby-dev:24993] + Mon Dec 6 10:18:17 2004 Dave Thomas - * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in): + * lib/rdoc/parsers/parse_rb.rb (RDoc::RubyParser::look_for_directives_in): Oops - 1.8 doesn't have String#clear Mon Dec 6 01:42:08 2004 GOTOU Yuuzou diff --git a/rubysig.h b/rubysig.h index 8871e3aa03..fd43e85d28 100644 --- a/rubysig.h +++ b/rubysig.h @@ -46,10 +46,13 @@ typedef int rb_atomic_t; # define ATOMIC_DEC(var) (--(var)) # define TRAP_BEG do {\ + int saved_errno = 0;\ int trap_immediate = rb_trap_immediate;\ rb_trap_immediate = 1 # define TRAP_END rb_trap_immediate = trap_immediate;\ - CHECK_INTS;\ + saved_errno = errno;\ + CHECK_INTS;\ + errno = saved_errno;\ } while (0) # define RUBY_CRITICAL(statements) do {\ -- cgit v1.2.3