2008-10-08 [長年日記]

[Q3] アドレス帳のアドレスの扱い方を整理

RFC2822では、test..test@example.orgのように「.」が二個以上連続したり、「.」で始まったり終わったりするようなアドレスは、"test..test"@example.orgのように""でくくることになっています*1

QMAIL3では、""でくくっていない場合でもパースできるようにしてありますが、フォーマットするときには""でくくるようになっています。ただし、この処理をアドレス帳に入力されたメールアドレスに対しては行っていませんでした。このため、アドレス帳に登録するときに自分で"test..test"@example.orgのように入力しておかないと、メールアドレスからアドレス帳を引くときにエントリを見つけることができませんでした。しかし、"test..test"@example.orgと入力しておくと、アドレスの補完時などに、"\"test..test\""@example.orgのように二重にエスケープされてしまうというバグがありました。

そこで、アドレス帳にアドレスを読み込むときや登録するときにもメールアドレスを正規化し、test..test@example.orgと入力されたら自動で"test..test"@example.orgに変換するようにしました。これで、メールアドレスからアドレス帳を引いた場合も、補完する場合にも問題なく動作するようになったと思います。

*1  そもそも何でこうしなくちゃいけないのかはさっぱり謎ですけど

.svnを除外してfindする

いつも忘れてしまうのでメモ。例えば、*.cppを探すならこんな感じ。

find . -name .svn -prune -o -name '*.cpp' -print

-printを外すと動作が変わってしまいます。

いつも、-pruneが思い出せずに、

find . ! -regex '.*/\.svn/.*' -a -name '*.cpp'

などとしてしまうのですが、-pruneを使った方が速いです。


トップ «前の日記(2008-10-04) 最新 次の日記(2008-10-09)»