diff options
Diffstat (limited to 'org/madore')
-rw-r--r-- | org/madore/damlengine/TodoWrefAttr.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/org/madore/damlengine/TodoWrefAttr.java b/org/madore/damlengine/TodoWrefAttr.java index 9f33406..95583e4 100644 --- a/org/madore/damlengine/TodoWrefAttr.java +++ b/org/madore/damlengine/TodoWrefAttr.java @@ -33,10 +33,12 @@ public class TodoWrefAttr extends TodoAttr { String wrefNumberStr = wrefMatcher.group(4); String wrefSupplementStr = wrefMatcher.group(5); String targetFile = ""; + boolean isLocal = false; if ( ctx.wsc != null && ctx.wsc.sel != null - && ctx.wsc.sel.contains(new Integer(wrefNumberStr)) ) + && ctx.wsc.sel.contains(new Integer(wrefNumberStr)) ) { + isLocal = true; targetFile = ""; - else + } else targetFile = ((ctx.gc.uriToTop==null)?"":(ctx.gc.uriToTop+"weblog/")) + wrefYearStr + "-" + wrefMonthStr + ".html"; String targetFragment = "d." + wrefYearStr + "-" + wrefMonthStr @@ -53,11 +55,12 @@ public class TodoWrefAttr extends TodoAttr { .equals(esum.date)) ) throw new IllegalArgumentException("date mismatch for reference to entry "+wrefNumberStr); if ( esum.doSinglePage != null - && ! wrefSupplementStr.equals("") + && ! ( wrefSupplementStr.equals("") + && isLocal ) // Note to self: remember we could be called from d:wxref // because of link on "older entries": we don't want // to link to single entry page in this case. :-\ - && ! ( ctx.wsc instanceof Context.WeblogSingleSelectionContext ) ) { + && ! ( caller instanceof TodoWXrefAttr ) ) { targetFile = ((ctx.gc.uriToTop==null)?"":(ctx.gc.uriToTop+"weblog/")) + esum.date + "-" + esum.doSinglePage + ".html"; target = targetFile + "#" + targetFragment; |