196 への返信

マクロにおける挙動の違いは仕様でしょうか?R.F.D. - No.196
こんにちは。
以前に出した要望(マクロによる複数行送信時の仕様)が改善されていたのに気付き、
久々に自分の作ったマクロをバージョンアップさせようかなと思ったりしています。

さて、2.06、1.24、1.18を同時に起動してマクロの動作実験をしていたのですが、
バージョンごとに微妙な挙動の違いがあるようです。
本来なら1.x系は無視し、2.x系に最適化させるべきだとは思います。
それを承知で、想定された仕様なのかどうか確認させてください。


◆Sendコマンド+$DLLSTRINGで複数行のメッセージを送信しても反映されない

(例) Message1\r\nNOTICE #channel :Message2

Sendコマンドで利用しているため、1行目はNOTICEが無くても送信されます。
Lime1では改行されましたが、Lime2では全部まとめて1行として送信されます。
個人的にはLime2の挙動の方が好きです(笑)
ヘルプのSendコマンドの欄にも\r\nで複数行送信されるとは書いていませんしね。


◆$DLLSTRINGにおける半角「%」の扱いについて

(例)DLLからの出力:「%%」 → 実際の表示:「%」
(例)DLLからの出力:「%」 → 実際の表示:直後の文字が消える

分かりやすく言えば、printf系の挙動に似ています。
これはv1.18でRawコマンドを使った場合には発生しませんでした。
想定された仕様であれば、ヘルプに補足されていたほうが良いかと思います。
そうでなければ修正をご検討いただけませんでしょうか。
Psychs - No.207
意見ありがとうございます。

> Sendコマンド+$DLLSTRINGで複数行のメッセージを送信しても反映されない

Lime2 でこちらのほうが自然だと思われる方向に、仕様を変更しました。ただし、$DLLSTRING でそういうテキストを出力するということは、複数のメッセージの送信を意図している場合しかないので、Sendの場合に限って従来通りの仕様に戻します。

> $DLLSTRINGにおける半角「%」の扱いについて

Lime 1.23 以降でマクロの「%」の扱いが変わっており、その仕様に沿っています。すべての変数を1度だけ展開する仕様になりました。
Psychs - No.209
> Sendコマンド+$DLLSTRINGで複数行のメッセージを送信しても反映されない

2.07 で対応しました。
R.F.D. - No.222
わざわざありがとうございます。

>Lime 1.23 以降でマクロの「%」の扱いが変わっており、その仕様に沿っています。
>すべての変数を1度だけ展開する仕様になりました。
やはり仕様でしたか。
1.23の更新履歴のところにそんなことが書いてあったので、もしかしてそれかなと思ってたので。
これで安心して自分のマクロを修正できます。
IRaNaiK0 - No.1276
「Google 文字列」と発言すると「文字列」をURLエンコードして「http://www.google.co.jp/search?hl=ja&ie=shift-jis&q=〜」と返すマクロを作ろうと試行錯誤しているのですがうまくできません。

例えば「ああ」をURLエンコードすると正しくは「%82%A0%82%A0」なのですが、実際に出力してみると「2%A02%A0」と出てしまいます。2年前の記事を引っ張り出すのもなんですが、これはどのように修正すればいいのでしょうか?

念のためにソースを貼っておきます、内容は渡された文字列をURLエンコードしそれを返すだけの内容です。このプログラムは他人のプログラムを見よう見まね(もといほぼコピペ)で書いたものですので私自身はほぼ知識がありません。できればコードごと修正していただければ助かります。
http://www.iranaiko.com/uploader/src/up0008.txt
gede - No.1278
はじめまして。こんにちは。
>(例)DLLからの出力:「%%」 → 実際の表示:「%」
「%82%A0%82%A0」ならば「%%82%%A0%%82%%A0」と%を2個用意すれば期待通りにできます。
*Output++ = '%';*Output++ = '%';

//

このレスに書き込むのは適当ではないと思いますがエンコードつながりでバグ(?)報告です。
Lime2.22で 「#」を含む文字列を「選択範囲からGoogleで検索」すると
「#」がエンコードされずにURLになるために#以降の文字が無視され、期待通り検索できませんでした。
IRaNaiK0 - No.1279
>gedeさん
ご指摘通りに修正したところ無事動作いたしました、ありがとうございます。
Psychs - No.1280
> Lime2.22で 「#」を含む文字列を「選択範囲からGoogleで検索」すると
> 「#」がエンコードされずにURLになるために#以降の文字が無視され、期待通り検索できませんでした

レポートありがとうございます。
次のバージョンで直します。
Psychs - No.1284
2.23 で対応しました。
$EncodeUrl(%s) のようにしてください。

以下の項目を必ず守ってください。守っていない書き込みは無視されるかも知れません。

あなたにとっては1回の質問でも、答える側は1回ではないことを理解してください。

  • 文章はきちんと状況が伝わるように丁寧に書いてください。
  • 話し言葉での書き込みは禁止します。
  • 過去ログを検索して確認してから書き込んでください。
  • 内容がわかるタイトルをつけること。要望する場合は[要望]を先頭につけること。
  • 動作確認はかならず最新版で行ってください。
  • 不適切な文章は、管理人が削除、編集することがあります。
名前*
メッセージ*
パスワード (編集・削除に使用。16文字以内)