クリッカブル URL が行末で改行されると URL が切れてブラウザに渡る
現象を再現させた時のバイナリログを見せてもらえますでしょうか。
doda 様 「現象が起きる長いURLのバイナリーログ」として teraterm.log をアップロードしました。
ログを確認しましたが、URLの途中で改行が入れられていますね。 これは改行部分でURLが切れていると判断されるのが正しいです。
技術的には繋げる事も可能ですが、それをやると関係ない部分までURLの一部と判断してしまう等の弊害が大きいと考えています。
doda 様
ご確認頂きありがとうございます。
webブラウザ(Firefox)のURLをクリップボードにコピーし、
emacs+mewの本文編集画面で右クリック貼り付けしているだけなのですが、
何がいつの段階で改行を追加してしまっていると考えられますか?
同じ物を貼り付けてもteratermを全画面表示すると問題なく動作するので、
teratermの改行部分の問題かな?と。
emacsが端末の改行に任せずに自前で改行していると思われます。
doda 様
確かにおっしゃる通り、emacsの折り返し表示上「\」が出てしまっておりそれが改行なのは正しいのですが、
2013.02.28 (Ver 4.77) まではこの状態でもダブルクリックで URL を渡してくれていて大変便利でした。
2013.05.31 (Ver 4.78) でのバグ修正
「ウィンドウの右端で URL が終わって改行している場合に、次の行まで URL が続いていると判定される」
を設定ファイル等でON/OFF出来たりすると大変有難いです。
ご検討頂ければ幸いです。
チケットの種類を「バグ」にしてしまって申し訳ありません。
None への返信 すみません。ログインしていないのに気づかず更新してしまい、「None」になってしまいました。
\ の後に改行がある場合は次の行まで URL が続いているとみなす、という動作は意図的なものでした。
2007.8.8 (Ver 4.53)
URLクリッカブルへのEmacs対応。行末が \ である場合、URL構成文字として削除するようにした。
難しいような気がしますが、\ のない改行とは区別して以前どおりの動作を実現できないでしょうか。
maya への返信
\ の後に改行がある場合は次の行まで URL が続いているとみなす、という動作は意図的なものでした。
2007.8.8 (Ver 4.53)
URLクリッカブルへのEmacs対応。行末が \ である場合、URL構成文字として削除するようにした。難しいような気がしますが、\ のない改行とは区別して以前どおりの動作を実現できないでしょうか。
現在の実装でも前の行の行末文字が行継続属性を持っているかで判断していますので、 これを文字が \ であるかで判断するように変更する事は簡単にできます。
ただ、本来ならば繋がっていない物を繋がっているように扱うのは問題が有ると思うんですよね。 繋がっているように扱うようにすると、行末に \ を置いて改行した状態が表せなくなりますし。 また、コピー&ペーストとで行継続の扱いが違うというのも気になります。
やるとしたらyamato_tacさんのコメントにあるように、設定でon/offを選べるようにする感じでしょうか。
やるとしたらyamato_tacさんのコメントにあるように、設定でon/offを選べるようにする感じでしょうか。
是非ともお願いしたい機能です。 私はこの機能のためだけに、Version 4.77 にしてしまいました。
実装は簡単なのですが(すでにできてる)、設定パラメータ名が思い浮かびません。なにかいい名前はないでしょうか?
また、emacsで問題が起きている&emacsは改行するときに\を入れるという事から前の行の行末が\かどうかチェックしていますが、このチェックは必要でしょうか?
チェックをするとしてemacsは設定でこの改行マークを変える事が出来るみたいですが、改行マークを設定可能にする必要はありますか?
チェックしないと、1行目が最後の文字まであって次の行が1文字目からある場合に続いてしまわないでしょうか?
IgnoreCharContinuedLineURL=\
とかどうでしょうか。文字の指定が無ければなにもしない、2文字以上あっても切り捨てる、という感じで。
実装は簡単なのですが(すでにできてる)、設定パラメータ名が思い浮かびません。なにかいい名前はないでしょうか?
EnableClickableLongURL4emacs などはいかがでしょう?
また、emacsで問題が起きている&emacsは改行するときに\を入れるという事から前の行の行末が\かどうかチェックしていますが、このチェックは必要でしょうか?
はい。必要と思います。
チェックをするとしてemacsは設定でこの改行マークを変える事が出来るみたいですが、改行マークを設定可能にする必要はありますか?
私は「\」のみで大丈夫ですが、変えているまたは変えたいユーザーもいるでしょうから、設定可能な方が親切かと。 是非、default文字は「\」にして頂きたいですが。
maya への返信
チェックしないと、1行目が最後の文字まであって次の行が1文字目からある場合に続いてしまわないでしょうか?
そうなりますが、
辺りからチェックをしないというのもありかなと思ったのでした。
IgnoreCharContinuedLineURL=\ とかどうでしょうか。文字の指定が無ければなにもしない、2文字以上あっても切り捨てる、という感じで。
とりあえずこの動作 & 空文字列を指定した場合はチェックを行わないようにしてみました。
yamato_tac への返信
EnableClickableLongURL4emacs などはいかがでしょう?
あまりemacs等の固有名詞を入れたくないというのと、分割されたのを繋げるというニュアンスが欲しいなと思ったので JoinSplitedURL にしてみましたが英語的におかしくないでしょうか?
……あれ? もしかしてsplitted?
splitの過去形はsplitのようです。
いま思いついたのですが、同じ機能に関わる名前は揃えた方がいいような気がするので、文字の指定の方を JoinSplitURLIgnoreEOFChar にするのはどうでしょうか。
maya への返信
いま思いついたのですが、同じ機能に関わる名前は揃えた方がいいような気がするので、文字の指定の方を JoinSplitURLIgnoreEOFChar にするのはどうでしょうか。
変更しました。EOFはEOLでいいですよね?
そうです。EOL です。間違えました。
2013.05.31 (Ver 4.78) のバグ修正
・ウィンドウの右端で URL が終わって改行している場合に、次の行まで URL が続いていると判定される問題を修正した。
で挙動が変わった様に思うのですが、非常に長い URL を teraterm にコピーし、ダブルクリックすると行末までの分しかブラウザに送られないようです。
改行以降の部分は色も下線も付いていません。
その状態で teraterm を最大化し、全ての URL が改行無しで表示できれば問題なくダブルクリックでブラウザに渡ります。
設定の問題でしょうか?