diff options
| author | mitsuhiko <devnull@localhost> | 2010-03-01 14:30:24 +0100 |
|---|---|---|
| committer | mitsuhiko <devnull@localhost> | 2010-03-01 14:30:24 +0100 |
| commit | 21484180255bef33f7c3d15caa8592b8345087c4 (patch) | |
| tree | 94aad026d2e90e60577a96573e6de6e7b0a9887c /sphinx/domains/cpp.py | |
| parent | 58edbde2dc44e339a309991e7098f0051484db9f (diff) | |
| download | sphinx-21484180255bef33f7c3d15caa8592b8345087c4.tar.gz | |
Started working on support for c++ xrefs
Diffstat (limited to 'sphinx/domains/cpp.py')
| -rw-r--r-- | sphinx/domains/cpp.py | 11 |
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] |
