バグ:複数行の計算式が書かれた演算系コンテントの内容の置き換えに失敗する

Issue #326 resolved
逃げ猫 created an issue

コモン演算系コンテントに状態変数を含む複数行の計算式を書き、
そのコンテントをドラッグ&ドロップ等で移動してから変数名を変更すると、
式内の変数名の置き換えがうまくいかなくなるようです。
再現性は10回中10回です。

それと発生条件の切り分けをしている時に気づいたのですが、
式内の改行コードCR+LFの前にいつの間にかCRが複数挿入されていることがありました。
こちらの方は再現方法はわからず、また今回の件と直接関係無い事かもしれませんが念のため書いておきます。

環境
win10 64bit 17134.1
CWXEditor / Version.7.0 Beta 3 Build: 2019-11-22 22:42:44 Debug (64-bit)
Compiled by Digital Mars D 2089

以下手順です。

1 新規シナリオを作成し、名称をabcとしたフラグを作成する。

2 開始エリアの到着イベントに下記のコモン設定コンテントを配置する。

setvar "", @
FLAGVALUE("abc")
FLAGVALUE("abc")
FLAGVALUE("abc")
FLAGVALUE("abc")
@

3 配置したコモン設定コンテントをD&DやC&Pなどで移動させる。(移動先は元の位置でもよい)

4 (1.)で作成したフラグの名称をabcdに変更すると(2.)の式の内容が下記のように書き換わる。
FLAGVALUE("abcd")
FLAGVALUE"temp"")
FLAGVALU"temp"c")
FLAGVAL"temp"bc")

Comments (4)

  1. k4nagatsuki repo owner

    pull request #594

    ご報告ありがとうございます。修正しました。

    XMLデータからイベントコンテントを復元する時に式の中の改行コードがCR+LFになっていたのが原因です。式をパースする時に改行が1文字として扱われるようにしていたので、CR+LFの2文字がある事によって式内の状態変数名の位置の認識がずれてしまい、改行以降の文字列置換に失敗していました。

    式内に余計なCRが出現するのも、もちろん同じ原因です。

  2. 逃げ猫 reporter

    なるほど、色々と腑に落ちた感じです。

    最新版エディタで正常に変換できることを確認しました。

    ご対応ありがとうございました。

  3. Log in to comment