[mew-dist 27946] Re: "V"

Yoshinari Nomura nom at example.com
2007年 12月 11日 (火) 11:48:48 JST


ごぶさたしています.乃村です.

> 山本です。
> 
> とりあえず、"V" コマンドを commit しておきました。

cmew.rb について,

  Message-ID: <000801c7c726$6dc59b20$0600a8c0 at example.com>
	  charset="us-ascii"

という,変わったメールを register すると落ちました.

/usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/errors.rb:94:in `check': near "us": syntax error (SQLite3::SQLException)
        from /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/statement.rb:71:in `initialize'
        from /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/database.rb:184:in `new'
        from /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/database.rb:184:in `prepare'
        from /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/database.rb:211:in `execute'
        from ./cmew.rb:91:in `register'
        from /usr/lib/ruby/1.8/find.rb:39:in `find'
        from /usr/lib/ruby/1.8/find.rb:38:in `catch'
        from /usr/lib/ruby/1.8/find.rb:38:in `find'
        from ./cmew.rb:79:in `register'
        from ./cmew.rb:107

おそらく,charset="us-ascii" 部分がそのまま 2行目にあるため,
check_id の正規表現にひっかからないんだと思います.
その結果 SQL 文に 「" 」 がまぎれ込んでしまいます.

^$ の代わりに \A\z を使うと動いているようです:

--- cmew.rb     2007-12-07 18:08:51.000000000 +0900
+++ cmew-debug.rb       2007-12-11 11:38:45.000000000 +0900
@@ -29,7 +29,7 @@

 def check_id(id)
    return nil if id == nil
-   if id =~ /^<[-a-zA-Z0-9!#\$%&\'\*\+\/=\?\^_`{}|~\.@]+>$/
+   if id =~ /\A<[-a-zA-Z0-9!#\$%&\'\*\+\/=\?\^_`{}|~\.@]+>\z/
      return id
    else
      return nil



Mew-dist メーリングリストの案内