河野真治 @ 琉球大学情報工学です。

In article <m2el29c3r1.fsf@owlin.tksa.gr.jp>, YAMADA Kunihiro <king@tksa.gr.jp> writes
> すみません、nkf の version を書き忘れました。
>         libnkf-perl    2.01-5
>         nkf            2.01-5
> でした。

(う、僕の知らないversionかも...)

> >>         $_ = nkf("-e","ABC");
> >> としたものは、regular expression での行末 $ のマッチングができなくなる、
> >> という現象です。
> では、ソースを追っかけてみる事にしましょう。

    /* SvPV(result,o_len) does not work here. */
    output = SvPVX(result);
    o_len = rlen;
    output_ctr = 0;

    /* Convestion */
    kanji_convert(NULL);
    /* nkf_putchar(0);    Null terminator */

    RETVAL = result;
    SvPOK_on(RETVAL);       
    /* We cannot use 
           SvCUR_set(RETVAL, strlen(output)); 
       because output can contain \0. 
     */
    SvCUR_set(RETVAL, output_ctr);

のあたりで、最後にstrlen を設定にいくわけなんだけど、
そいつが問題なみたい。長さは output_ctr で確定してい
るんですけどね。

---
Shinji KONO @ Information Engineering, University of the Ryukyus, 
              PRESTO, Japan Science and Technology Corporation
河野真治 @ 琉球大学工学部情報工学科, 
           科学技術振興事業団さきがけ研究21(機能と構成)