summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-06 02:47:37 +0000
committershugo <shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-05-06 02:47:37 +0000
commit5363ed4c81916bda16b7dad0c6fe5a738bffa726 (patch)
treeb1cc90fc2bfc372da0635d71e9b537ad1db6aa4c
parent45c79aacee8550f617a23eae444daea2765f8724 (diff)
* 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/branches/ruby_1_8@6249 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--lib/net/imap.rb35
2 files changed, 33 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 7b2c8becfd..fff1b6322d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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