diff options
author | shugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-05-06 02:47:37 +0000 |
---|---|---|
committer | shugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-05-06 02:47:37 +0000 |
commit | 7cb6dfb8fcdb73058775b978b9f3b5c55d13f718 (patch) | |
tree | add7fbd1e1de4221f9433dcdad310f07f9ddfac0 | |
parent | 3d33a14369dd65001b840a9fe0e77ed3d3508fec (diff) | |
download | ruby-7cb6dfb8fcdb73058775b978b9f3b5c55d13f718.tar.gz |
* lib/net/imap.rb (string): accept NIL.
* lib/net/imap.rb (body_type_basic): allow body-fields omissions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib/net/imap.rb | 35 |
2 files changed, 33 insertions, 8 deletions
@@ -1,3 +1,9 @@ +Thu May 6 11:40:28 2004 Shugo Maeda <shugo@ruby-lang.org> + + * lib/net/imap.rb (string): accept NIL. + + * lib/net/imap.rb (body_type_basic): allow body-fields omissions. + Thu May 6 01:59:04 2004 Dave Thomas <dave@pragprog.com> * lib/rdoc/generators/html_generator.rb (Generators::HtmlMethod::params): diff --git a/lib/net/imap.rb b/lib/net/imap.rb index 4aebc33445..0845009813 100644 --- a/lib/net/imap.rb +++ b/lib/net/imap.rb @@ -2123,6 +2123,10 @@ module Net # :nodoc: def body_type_basic mtype, msubtype = media_type + token = lookahead + if token.symbol == T_RPAR + return BodyTypeBasic.new(mtype, msubtype) + end match(T_SPACE) param, content_id, desc, enc, size = body_fields md5, disposition, language, extension = body_ext_1part @@ -2175,7 +2179,7 @@ module Net # :nodoc: parts.push(body) end mtype = "MULTIPART" - msubtype = string.upcase + msubtype = case_insensitive_string param, disposition, language, extension = body_ext_mpart return BodyTypeMultipart.new(mtype, msubtype, parts, param, disposition, language, @@ -2183,9 +2187,9 @@ module Net # :nodoc: end def media_type - mtype = string.upcase + mtype = case_insensitive_string match(T_SPACE) - msubtype = string.upcase + msubtype = case_insensitive_string return mtype, msubtype end @@ -2196,7 +2200,7 @@ module Net # :nodoc: match(T_SPACE) desc = nstring match(T_SPACE) - enc = string.upcase + enc = case_insensitive_string match(T_SPACE) size = number return param, content_id, desc, enc, size @@ -2219,7 +2223,7 @@ module Net # :nodoc: when T_SPACE shift_token end - name = string.upcase + name = case_insensitive_string match(T_SPACE) val = string param[name] = val @@ -2300,7 +2304,7 @@ module Net # :nodoc: return nil end match(T_LPAR) - dsp_type = string.upcase + dsp_type = case_insensitive_string match(T_SPACE) param = body_fld_param match(T_RPAR) @@ -2321,7 +2325,7 @@ module Net # :nodoc: when T_SPACE shift_token end - result.push(string.upcase) + result.push(case_insensitive_string) end else lang = nstring @@ -2829,16 +2833,31 @@ module Net # :nodoc: end def string + token = lookahead + if token.symbol == T_NIL + shift_token + return nil + end token = match(T_QUOTED, T_LITERAL) return token.value end - STRING_TOKENS = [T_QUOTED, T_LITERAL] + STRING_TOKENS = [T_QUOTED, T_LITERAL, T_NIL] def string_token?(token) return STRING_TOKENS.include?(token.symbol) end + def case_insensitive_string + token = lookahead + if token.symbol == T_NIL + shift_token + return nil + end + token = match(T_QUOTED, T_LITERAL) + return token.value.upcase + end + def atom result = "" while true |