summaryrefslogtreecommitdiff
path: root/sphinx/domains/cpp.py
diff options
context:
space:
mode:
authormitsuhiko <devnull@localhost>2010-03-01 14:30:24 +0100
committermitsuhiko <devnull@localhost>2010-03-01 14:30:24 +0100
commit21484180255bef33f7c3d15caa8592b8345087c4 (patch)
tree94aad026d2e90e60577a96573e6de6e7b0a9887c /sphinx/domains/cpp.py
parent58edbde2dc44e339a309991e7098f0051484db9f (diff)
downloadsphinx-21484180255bef33f7c3d15caa8592b8345087c4.tar.gz
Started working on support for c++ xrefs
Diffstat (limited to 'sphinx/domains/cpp.py')
-rw-r--r--sphinx/domains/cpp.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/sphinx/domains/cpp.py b/sphinx/domains/cpp.py
index dfcab465..e2c652b9 100644
--- a/sphinx/domains/cpp.py
+++ b/sphinx/domains/cpp.py
@@ -614,6 +614,9 @@ class DefinitionParser(object):
pure_virtual = False
return args, const, pure_virtual
+ def parse_type(self):
+ return self._parse_type()
+
def parse_type_object(self):
typename = self._parse_type()
self.skip_ws()
@@ -861,8 +864,12 @@ class CPPDomain(Domain):
def resolve_xref(self, env, fromdocname, builder,
typ, target, node, contnode):
- # strip pointer and reference info
- target = target.rstrip(' *&')
+ parser = DefinitionParser(target)
+ expr = parser.parse_type()
+ parser.skip_ws()
+ if not parser.eof:
+ return None
+ target = unicode(expr)
if target not in self.data['objects']:
return None
obj = self.data['objects'][target]