aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Render.pm
diff options
context:
space:
mode:
authorJoey Hess <joey@gnu.kitenet.net>2009-10-05 15:01:05 -0400
committerJoey Hess <joey@gnu.kitenet.net>2009-10-05 15:01:05 -0400
commitc6bf4228d5c988e715ff08a9374b72ce054daa2c (patch)
tree1ee845d263d92b113e56b14915c89b63be431e6d /IkiWiki/Render.pm
parente96992bbc8fc37040eda5119c475ff4174c43339 (diff)
downloadikiwiki-c6bf4228d5c988e715ff08a9374b72ce054daa2c.tar
ikiwiki-c6bf4228d5c988e715ff08a9374b72ce054daa2c.tar.gz
make links dependencies fire if broken links change
Diffstat (limited to 'IkiWiki/Render.pm')
-rw-r--r--IkiWiki/Render.pm41
1 files changed, 28 insertions, 13 deletions
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index 4e8aae3bc..599bb26e2 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -63,24 +63,39 @@ sub find_changed_links (@_) {
my %linkchangers;
foreach my $file (@_) {
my $page=pagename($file);
-
+
if (exists $links{$page}) {
- foreach my $link (map { bestlink($page, $_) } @{$links{$page}}) {
- if (length $link &&
- (! exists $oldlinks{$page} ||
- ! grep { bestlink($page, $_) eq $link } @{$oldlinks{$page}})) {
- $linkchanged{$link}=1;
- $linkchangers{lc($page)}=1;
+ foreach my $l (@{$links{$page}}) {
+ my $link=bestlink($page, $l);
+ if (length $link) {
+ if (! exists $oldlinks{$page} ||
+ ! grep { bestlink($page, $_) eq $link } @{$oldlinks{$page}}) {
+ $linkchanged{$link}=1;
+ $linkchangers{lc($page)}=1;
+ }
+ }
+ else {
+ if (! grep { lc $_ eq lc $l } @{$oldlinks{$page}}) {
+ $linkchangers{lc($page)}=1
+ }
}
+
}
}
if (exists $oldlinks{$page}) {
- foreach my $link (map { bestlink($page, $_) } @{$oldlinks{$page}}) {
- if (length $link &&
- (! exists $links{$page} ||
- ! grep { bestlink($page, $_) eq $link } @{$links{$page}})) {
- $linkchanged{$link}=1;
- $linkchangers{lc($page)}=1;
+ foreach my $l (@{$oldlinks{$page}}) {
+ my $link=bestlink($page, $l);
+ if (length $link) {
+ if (! exists $links{$page} ||
+ ! grep { bestlink($page, $_) eq $link } @{$links{$page}}) {
+ $linkchanged{$link}=1;
+ $linkchangers{lc($page)}=1;
+ }
+ }
+ else {
+ if (! grep { lc $_ eq lc $l } @{$links{$page}}) {
+ $linkchangers{lc($page)}=1
+ }
}
}
}