Autolink対象ページの.refファイルが消える場合がある

  • ページ: BugTrack2
  • 投稿者: Cue
  • 優先順位: 普通
  • 状態: 完了
  • カテゴリー: 本体バグ
  • 投稿日: 2006-03-30 (木) 21:25:38
  • バージョン:

メッセージ

Autolink対象ページが別の複数のページからAutolinkされていて且つAutolink以外の被リンクが存在しない場合、いずれか1つのリンク元ページからのリンクが切れると別のページからのAutolinkが残っていても.refファイルが消されます。

再現方法
  1. プラグインなどよく有る言葉で、dangling linkになっていないページを作成する(中身に#relatedを入れると現象が見やすい)
  2. 上のページ作成でAutolinkが発生したページのいずれか1つで全てのプラグインという言葉をpluginなどに置換してリンク関係を解消する

link.phpのlinks_delete()で$all_autoがFALSEにならないまま.refを作成するかの判定に入る事が原因です。


  • teananさん、気付いたらこの件の様子を見ていただけませんか。原因の原因の原因が良くわからないのですが、何かツボを付いている気がします :) お手数ですがよろしくお願いします。 -- henoheno 2006-04-03 (月) 22:51:45
    • 了解です。すみません、フォロー遅れました。上記チェックしておきます*1。 -- teanan 2006-04-05 (水) 01:33:26
    • 現象確認しました。対策検討中。 -- teanan 2006-04-05 (水) 11:58:56
    • リポジトリを遡っても答えは見つからなかったのですが、どうやら $all_autoの判定自体が要らないようです。一番最初のlink.phpから存在しているコードですね (^^; -- teanan 2006-04-05 (水) 14:53:34
    • links_addも一緒に片付けないとまずそう・・・。 -- teanan 2006-04-05 (水) 15:02:45
  • 参照しているページが全てAutoLinkによるものであった場合、refファイルを削除していたのを修正しました。 -- teanan 2006-04-06 (木) 02:24:15
    • cvs:lib/link.php (1.10)
    • 今度はis_page=FALSEで書かなくなりますけど、dangling linkが作る.refは存在して良いのでは? -- Cue 2006-04-06 (木) 08:29:18
    • その辺が気になっています。ただ、links_init/links_add/links_deleteでrefの生成条件が異なっているように見えますので、何が正しいのか精査しています。 -- teanan 2006-04-06 (木) 11:16:32
    • 結局は問題はなさそうです*2。失礼いたしました m(__)m -- teanan 2006-04-06 (木) 12:22:23
    • ご指摘のとおりdangling linkの.refは存在するのが正しそうです。追って再修正します。 -- teanan 2006-04-06 (木) 11:31:13
    • 結局もとの形に戻って、条件式の修正のみとなりました orz ご指摘ありがとうございました。 -- teanan 2006-04-06 (木) 11:52:53
  • $ref!=''だけで十分(でなければ既に依存関係のどこかが破綻している?)ような気もするのですが、具体的なケースはというと$nowikinameや$autolinkの設定を変えてそのまま運用しているくらいしか今のところ思いあたらないので…。対応ありがとうございました。 -- Cue 2006-04-07 (金) 21:17:26
  • ここでのdangling linkへの対応がyetlistの出力にも影響します。$all_autoは、まさにdangling linkの判定でした。よって今の形が妥当だという結論です。 -- teanan 2006-04-08 (土) 02:31:47

*1 他にも色々宿題ありますね。申し訳ないです (><)
*2 読みきれていないだけでした・・・

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-12-29 (月) 11:48:37
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.216 sec.

OSDN