diff options
author | tk0miya <i.tkomiya@gmail.com> | 2014-08-21 13:30:25 +0900 |
---|---|---|
committer | tk0miya <i.tkomiya@gmail.com> | 2014-08-21 13:30:25 +0900 |
commit | d4a5d566f2093942b501106fce4ea24cd7757a1c (patch) | |
tree | 460e0ddce159851eb74596129965d3f5879697c9 | |
parent | cecbe8c94a90d3c6bc1fd513602d234f73b4f301 (diff) | |
download | sphinx-d4a5d566f2093942b501106fce4ea24cd7757a1c.tar.gz |
Do not highlight function pointers if unexpected tokens found
-rw-r--r-- | sphinx/domains/c.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sphinx/domains/c.py b/sphinx/domains/c.py index cdc10066..4d12c141 100644 --- a/sphinx/domains/c.py +++ b/sphinx/domains/c.py @@ -40,9 +40,11 @@ c_funcptr_sig_re = re.compile( (\s+const)? $ # const specifier ''', re.VERBOSE) c_funcptr_arg_sig_re = re.compile( - r'''^\s*([^(,]+?) # return type + r'''^\s*([^(,]+?) # return type \( ([^()]+) \) \s* # name in parentheses \( (.*) \) # arguments + (\s+const)? # const specifier + \s*(?=$|,) # end with comma or end of string ''', re.VERBOSE) c_funcptr_name_re = re.compile(r'^\(\s*\*\s*(.*?)\s*\)$') @@ -154,6 +156,8 @@ class CObject(ObjectDescription): self._parse_type(param, m.group(1) + '(') param += nodes.emphasis(m.group(2), m.group(2)) self._parse_type(param, ')(' + m.group(3) + ')') + if m.group(4): + param += addnodes.desc_addname(m.group(4), m.group(4)) else: ctype, argname = arg.rsplit(' ', 1) self._parse_type(param, ctype) |