ToLower, ToUpperの仕様No.23851
白雲斎 さん 07/10/22 00:57
 
こんにちは、白雲斎です。
Windows XP, 秀丸エディタ 7.03

前から疑問に思っていたけれど、今更…と考えて躊躇していた質問をします。

$a = "abcABCabcABC";
+-----------------------------+--------------------+---+
| コマンド                    | 結果               |   |
+-----------------------------+--------------------+---+
| tolower;                    | abcabcabcabc |   |
| filter "", "ToLower";       | abcabcabcabc |   |
| tolower($a);                | abcabcabcABC | * |
| filter("","ToLower","",$a); | abcabcabcabc |   |
+-----------------------------+--------------------+---+
| toupper;                    | ABCABCABCABC |   |
| filter "", "ToUpper";       | ABCABCABCABC |   |
| toupper($a);                | ABCABCabcABC | * |
| filter("","ToUpper","",$a); | ABCABCABCABC |   |
+-----------------------------+--------------------+---+

この、結果が統一されていない理由は何でしょうか?
ヘルプでは、この違いを説明されていませんが皆さん周知の事実なんですかね。

また、処理対象を半角のみにするパラメタ・オプションを追加できませんか?

[ ]
RE:23851 ToLower, ToUpperの仕様No.23855
秀丸担当 さん 07/10/22 10:58
 

>この、結果が統一されていない理由は何でしょうか?
>ヘルプでは、この違いを説明されていませんが皆さん周知の事実なんですかね。

そうだったのですか。これはおかしいですね。
tolower(),toupper()のことは想定していなかったです。バグと言ってもいいと
思います。
統一するように修正したほうがいいと思うのですが、半角のみを対象とすること
が望ましいのでしょうか。
既に正式版となったことで、この動作を維持したほうがいいのかもしれないです
が。
あるいは既存の動作はそのままにしてtolower(),toupper()のパラメタ追加で動
作を変えるとか。
そんな感じで7.04でなんとかしたほうがよさそうです。


>また、処理対象を半角のみにするパラメタ・オプションを追加できませんか?

toupeer;tolower;とfilterに関しては、とりあえずこのままとしておきたいです。
それ専用の変換モジュールを作ってライブラリにアップしてもいいですが。

[ ]
RE:23855 ToLower, ToUpperの仕様No.23861
白雲斎 さん 07/10/22 17:42
 
こんにちは“秀丸担当”さん、白雲斎です。

>統一するように修正したほうがいいと思うのですが、半角のみを対象とすること
>が望ましいのでしょうか。
>既に正式版となったことで、この動作を維持したほうがいいのかもしれないです
>が。
>あるいは既存の動作はそのままにしてtolower(),toupper()のパラメタ追加で動
>作を変えるとか。
>そんな感じで7.04でなんとかしたほうがよさそうです。

私は、パラメタ追加の方が良いような気がします。
tolower(), toupper()が全角を処理対象外にしていることを前提にしているもの
もあるでしょうし。

>toupeer;tolower;とfilterに関しては、とりあえずこのままとしておきたいです。
>それ専用の変換モジュールを作ってライブラリにアップしてもいいですが。

時間に余裕があれば、お願いします。

[ ]
RE:23861 ToLower, ToUpperの仕様No.23863
Iranoan さん 07/10/22 17:58
 
 秀丸担当さん、白雲斎さん今日は、Iranoan です。
> tolower(), toupper()が全角を処理対象外にしていることを前提にしているもの
> もあるでしょうし。
 私は元々これはバグというか、意図してそうなっているわけではないので、
単純に tolower, touuper 文に合わせるべきだと思います。パラメタをつける
ことにしても、現在の動きを守るという意味で、省略されたときのは、全角を
無視する動きになって、同じ混乱を生むと思います。

[ ]
RE:23863 ToLower, ToUpperの仕様No.23864
白雲斎 さん 07/10/22 19:08
 
こんにちは“Iranoan”さん、白雲斎です。

> 私は元々これはバグというか、意図してそうなっているわけではないので、
>単純に tolower, touuper 文に合わせるべきだと思います。パラメタをつける
>ことにしても、現在の動きを守るという意味で、省略されたときのは、全角を
>無視する動きになって、同じ混乱を生むと思います。

本来はそうあるべきですね。
マクロの修正(検証)作業が嫌で前の発言となりましたが、統一するのが本筋か
もしれません。
まあ、今までこの件の問い合わせがなかったところを見ると、修正しても大きな
混乱がないかもしれませんし…。

どちらにしても、私は秀丸担当さんにお任せします。
ただし、ヘルプには修正前、修正後の違いを明記して欲しいです。

[ ]
RE:23855 ToLower,ToUpperの仕様No.23865
h-tom さん 07/10/22 23:06
 

h-tom です。

>そうだったのですか。これはおかしいですね。
>tolower(),toupper()のことは想定していなかったです。バグと言ってもいいと
>思います。
>統一するように修正したほうがいいと思うのですが、半角のみを対象とすること
>が望ましいのでしょうか。
>既に正式版となったことで、この動作を維持したほうがいいのかもしれないです
>が。
バグですか。
tolower()、toupper()で、全角が無視されるのは、仕様だと思ってました。
(マクロの関数はバイト単位で、全角を意識している関数はあまりないし。)

filter()系と動作が違うから、tolower()、toupper()があるのかと思ってた。
全角まで変換したいならfilter()系で、半角だけならtolower()、toupper()と、
使い分けるつもりでいましたよ。

まぁ、tolower()、toupper()はそのままでも、特に問題もないような気もしま
すけどね?
(ヘルプに制限事項として書いておけば済む話かな?)

[ ]
RE:23865 ToLower,ToUpperの仕様No.23868
秀丸担当 さん 07/10/23 10:09
 

>私は、パラメタ追加の方が良いような気がします。
>tolower(), toupper()が全角を処理対象外にしていることを前提にしているもの
>もあるでしょうし。

パラメタを追加することにしようと思います。

[ ]