You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by nw...@apache.org on 2015/12/23 13:24:45 UTC

[6/7] lucy-clownfish git commit: Fix links to methods in POD

Fix links to methods in POD

The Perl POD only contains sections for novel methods. Link to the class
where the method is declared first.


Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/b35885f1
Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/b35885f1
Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/b35885f1

Branch: refs/heads/master
Commit: b35885f1c65b89608765312a6c09e9f54db9f256
Parents: 39a6685
Author: Nick Wellnhofer <we...@aevum.de>
Authored: Sat Dec 12 16:43:36 2015 +0100
Committer: Nick Wellnhofer <we...@aevum.de>
Committed: Sat Dec 12 16:43:36 2015 +0100

----------------------------------------------------------------------
 compiler/src/CFCPerlPod.c | 10 ++++++++++
 1 file changed, 10 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/b35885f1/compiler/src/CFCPerlPod.c
----------------------------------------------------------------------
diff --git a/compiler/src/CFCPerlPod.c b/compiler/src/CFCPerlPod.c
index 6c2a638..97f93c8 100644
--- a/compiler/src/CFCPerlPod.c
+++ b/compiler/src/CFCPerlPod.c
@@ -876,6 +876,16 @@ S_convert_link(cmark_node *link, CFCClass *doc_class, int header_level) {
                 perl_name[i] = tolower(perl_name[i]);
             }
 
+            // The Perl POD only contains sections for novel methods. Link
+            // to the class where the method is declared first.
+            if (type == CFC_URI_METHOD) {
+                CFCClass *parent = CFCClass_get_parent(klass);
+                while (parent && CFCClass_method(parent, name)) {
+                    klass = parent;
+                    parent = CFCClass_get_parent(klass);
+                }
+            }
+
             if (klass == doc_class) {
                 new_uri = CFCUtil_sprintf("/%s", perl_name);
             }