[Momonga-devel.ja:02259] Re: OmoiKondara のマクロ展開時の挙動について


吉田です。

Kenta MURATA wrote:
> このような状態で無限ループに陥いるのは,OmoiKondara のバグです.
> 修正したものを commit しました.また,他にも修正した箇所があっ
> たので,それも同時に適用しました.詳しくは ChangeLog を参照し
> てください.

ありがとうございます。
OmoiKondara を動かしっぱなしにしても大丈夫になりました。現在、alpha
マシン上で rpm ファイル 1477 個までビルドが進みました。

しかし以下のパッケージの spec ファイルでは、また別に挙動のおかしい
ところがありました。OmoiKondara の側か spec ファイルの書き方なのか
判断が付きませんでしたが、ご報告いたします。

Canna
  OmoiKondara でエラーが出ます。
  Canna.spec の21行目からの次の3行を削除するとエラーが出なくなり
  ました。
      # %%if %{_src}
      # %%...
      # %%endif

elisp-w3m
  OmoiKondara が無限ループに入ります。
  elisp-w3m.spec の 15 行目にある
      Source: http://emacs-w3m.namazu.org/emacs-w3m-%{version}%{?_rc}.tar.gz
    を
      Source: http://emacs-w3m.namazu.org/emacs-w3m-%{version}.tar.gz
    に変更すると正常にビルドができました。

mutt
  OmoiKondara でエラーがでます。
  OmoiKondara の 479 行目にある macros.has_key? を macro.has_key? に
  書き替えると正常にビルドができました。これで良いのか分かりませんが
  diff をとったものを添付いたします。

以上、よろしくお願い致します。
*** OmoiKondara.save	Mon Oct 27 22:05:22 2003
--- OmoiKondara	Tue Oct 28 19:30:12 2003
***************
*** 476,482 ****
            stack[-1] = !stack[-1]
          else
            if stack.last then
!             line.gsub! (/%\{\?(\w+):(\w+)\}/){ macros.has_key?($1) ? $2 : "" }
              s += line if stack.last
            end
          end
--- 476,482 ----
            stack[-1] = !stack[-1]
          else
            if stack.last then
!             line.gsub! (/%\{\?(\w+):(\w+)\}/){ macro.has_key?($1) ? $2 : "" }
              s += line if stack.last
            end
          end