From 21484180255bef33f7c3d15caa8592b8345087c4 Mon Sep 17 00:00:00 2001 From: mitsuhiko Date: Mon, 1 Mar 2010 14:30:24 +0100 Subject: Started working on support for c++ xrefs --- sphinx/domains/cpp.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'sphinx/domains/cpp.py') 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] -- cgit v1.2.1