From fbee9ba6ea90e881a3341caaa2114df4f5aa16d9 Mon Sep 17 00:00:00 2001 From: akr Date: Tue, 26 Feb 2008 06:44:53 +0000 Subject: * parse.y (tokadd_escape): refactored. [ruby-core:15657] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ parse.y | 10 ++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 80709e82dd..31a99b0e01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Tue Feb 26 15:43:42 2008 Tanaka Akira + + * parse.y (tokadd_escape): refactored. [ruby-core:15657] + Tue Feb 26 15:30:36 2008 Nobuyoshi Nakada * array.c (rb_ary_eql, rb_ary_cmp): get rid of stack overflow with diff --git a/parse.y b/parse.y index 64e9f4e8a6..886457823f 100644 --- a/parse.y +++ b/parse.y @@ -4520,7 +4520,7 @@ static int parser_here_document(struct parser_params*,NODE*); # define tokadd(c) parser_tokadd(parser, c) # define tok_hex(numlen) parser_tok_hex(parser, numlen) # define read_escape(flags,e) parser_read_escape(parser, flags, e) -# define tokadd_escape(t,e) parser_tokadd_escape(parser, t, e) +# define tokadd_escape(e) parser_tokadd_escape(parser, e) # define regx_options() parser_regx_options(parser) # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,f,t,p,n,e) # define parse_string(n) parser_parse_string(parser,n) @@ -5203,8 +5203,7 @@ parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc) } static int -parser_tokadd_escape(struct parser_params *parser, int term, - rb_encoding **encp) +parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp) { int c; int flags = 0; @@ -5277,8 +5276,7 @@ parser_tokadd_escape(struct parser_params *parser, int term, return -1; default: - if (c != '\\' || c != term) - tokadd('\\'); + tokadd('\\'); tokadd(c); } return 0; @@ -5416,7 +5414,7 @@ parser_tokadd_string(struct parser_params *parser, default: if (func & STR_FUNC_REGEXP) { pushback(c); - if ((c = tokadd_escape(term, &enc)) < 0) + if ((c = tokadd_escape(&enc)) < 0) return -1; if (has_nonascii && enc != *encp) { mixed_escape(beg, enc, *encp); -- cgit v1.2.3