|
でるもんた・いいじまです。
今日、マクロを書いていて gettext2() を初めて使ったのですが、大々的にワナにハ
マりました。
☆ ☆ ☆
で、よくよく情報を確認したらマクロヘルプのサンプルコードに誤りがありました。
070_Function_gettext2.html
> c1, l1は開始位置で、c2, l2は終了位置を指定します。
> 数え方はmoveto2と同じです。
>
> 例
> $a = gettext2( 0, 0, 10, 10 );
> message $a;
このサンプルコードの第二パラメータは0ではなく1で、
$a = gettext2( 0, 1, 10, 10 );
message $a;
となるのではないでしょうか。「エディタ的な行番号」は1から始まります。
このページに限らず、行位置・桁位置を指定する各コマンド・各関数のページでは、
できればどのページにも「左端が0です」「最初の行が1です」といった情報をさりげ
なく書いておいていただけると嬉しいです。
☆ ☆ ☆
(以下オマケ)
手元で何をしていたかというと、上記の「第二パラメータは0」を信じて
$title = gettext2(0, 0, linelen2[0], 0);
$date = gettext2(0, 2, linelen2[2], 2);
と書いていました。これは正しくは
$title = gettext2(0, 1, linelen2[0], 1);
$date = gettext2(0, 3, linelen2[2], 3);
となります。
0-origin と 1-origin が混在していてややこしいですが、いまさら仕様変更するわ
けにもいかないのが悩ましいですね。
|
|