2002-05-02 [長年日記]

自動折り返しにバグ

2.xで自動折り返しにバグ発見。行頭がTAB,(,[,{,$でそれ以降に折り返し可能文字がなくて、行の長さが指定した長さより長いと無限ループしていました。

自動折り返し

ところで、自動折り返しってどうなんでしょう?。今のやり方(SMTPサーバに送る前に折り返す)だと送信後にどう折り返されるのかが送信してみないとわからないのでいまいち。かといって作成時に折り返してしまうと、再編集したときに途中に文字を挿入するとガタガタになってしまって手で修正する必要がある。というのが嫌なので今は送信時に折り返すようになっています。自動で折り返しを元に戻すというのもありだけれど、自動で完全に元に戻すのは不可能なんですよね(どの改行が自動で入れられたものだかわからないので)。

再編集することはそれほどないという方向なら、完全でないのは許されるかな。折り返しをするコマンドを用意して、折り返したいときにはユーザが自分で指示する(自動でやるオプションもいるかな?)。折り返しを元に戻すコマンドも用意して、折り返しちゃったものを再編集したいときにはそれで戻す(完全ではないけど)。SMTPサーバに送る前の自動折り返しはしないで、行が極端に長い場合にはbase64とかでエンコードして送るようにする。という感じかな?

ドラフトで保存するときには自動折り返しをしない、それ以外の場合には自動折り返しをするのをデフォルトにしておけば、使い勝手はそれほど悪くないかも。折り返し後のイメージを見たい場合には自分でコマンドを使って折り返すと。

もっと賢く整形したい場合には、そんな機能をもった外部エディタを使ってくださいという感じで、ある程度のものだけ用意するという感じいいかな?