From 950d90ef905245cfa3a46b813305a9e6bf000f37 Mon Sep 17 00:00:00 2001 From: shugo Date: Wed, 21 Jan 2004 09:18:22 +0000 Subject: * merged from HEAD. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@5523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/net/imap.rb | 84 +++++++++++++++++++++++++++++++++++---------------------- 1 file changed, 52 insertions(+), 32 deletions(-) (limited to 'lib/net') diff --git a/lib/net/imap.rb b/lib/net/imap.rb index 086717b97e..6ca03c703f 100644 --- a/lib/net/imap.rb +++ b/lib/net/imap.rb @@ -1361,7 +1361,9 @@ module Net # :nodoc: def ensure_nz_number(num) if num < -1 || num == 0 || num >= 4294967296 - raise DataFormatError, num.inspect + msg = "nz_number must be non-zero unsigned 32-bit integer: " + + num.inspect + raise DataFormatError, msg end end end @@ -2006,30 +2008,37 @@ module Net # :nodoc: def envelope @lex_state = EXPR_DATA - match(T_LPAR) - date = nstring - match(T_SPACE) - subject = nstring - match(T_SPACE) - from = address_list - match(T_SPACE) - sender = address_list - match(T_SPACE) - reply_to = address_list - match(T_SPACE) - to = address_list - match(T_SPACE) - cc = address_list - match(T_SPACE) - bcc = address_list - match(T_SPACE) - in_reply_to = nstring - match(T_SPACE) - message_id = nstring - match(T_RPAR) - @lex_state = EXPR_BEG - return Envelope.new(date, subject, from, sender, reply_to, - to, cc, bcc, in_reply_to, message_id) + token = lookahead + if token.symbol == T_NIL + shift_token + result = nil + else + match(T_LPAR) + date = nstring + match(T_SPACE) + subject = nstring + match(T_SPACE) + from = address_list + match(T_SPACE) + sender = address_list + match(T_SPACE) + reply_to = address_list + match(T_SPACE) + to = address_list + match(T_SPACE) + cc = address_list + match(T_SPACE) + bcc = address_list + match(T_SPACE) + in_reply_to = nstring + match(T_SPACE) + message_id = nstring + match(T_RPAR) + result = Envelope.new(date, subject, from, sender, reply_to, + to, cc, bcc, in_reply_to, message_id) + end + @lex_state = EXPR_BEG + return result end def flags_data @@ -2082,14 +2091,20 @@ module Net # :nodoc: def body @lex_state = EXPR_DATA - match(T_LPAR) token = lookahead - if token.symbol == T_LPAR - result = body_type_mpart - else - result = body_type_1part - end - match(T_RPAR) + if token.symbol == T_NIL + shift_token + result = nil + else + match(T_LPAR) + token = lookahead + if token.symbol == T_LPAR + result = body_type_mpart + else + result = body_type_1part + end + match(T_RPAR) + end @lex_state = EXPR_BEG return result end @@ -2855,6 +2870,11 @@ module Net # :nodoc: end def number + token = lookahead + if token.symbol == T_NIL + shift_token + return nil + end token = match(T_NUMBER) return token.value.to_i end -- cgit v1.2.3