diff --git a/CHANGES b/CHANGES index 9013eabef..00912f839 100644 --- a/CHANGES +++ b/CHANGES @@ -108,6 +108,7 @@ Bugs fixed * #3394: When ``'pointsize'`` is not ``10pt``, Japanese ``'manual'`` document gets wrong PDF page dimensions * #3399: quickstart: conf.py was not overwritten by template +* #3366: option directive does not allow punctuations Testing -------- diff --git a/sphinx/domains/std.py b/sphinx/domains/std.py index fbe779b10..4671031a9 100644 --- a/sphinx/domains/std.py +++ b/sphinx/domains/std.py @@ -45,7 +45,7 @@ logger = logging.getLogger(__name__) # RE for option descriptions -option_desc_re = re.compile(r'((?:/|--|-|\+)?[-\.?@#_a-zA-Z0-9]+)(=?\s*.*)') +option_desc_re = re.compile(r'((?:/|--|-|\+)?[-+\.?@#_a-zA-Z0-9]+)(=?\s*.*)') # RE for grammar tokens token_re = re.compile('`(\w+)`', re.U) diff --git a/tests/root/objects.txt b/tests/root/objects.txt index 1fc23567a..7e9bc15a9 100644 --- a/tests/root/objects.txt +++ b/tests/root/objects.txt @@ -172,13 +172,15 @@ Others .. option:: +p +.. option:: --ObjC++ + .. option:: --plugin.option .. option:: create-auth-token .. option:: arg -Link to :option:`perl +p`, :option:`--plugin.option`, :option:`create-auth-token` and :option:`arg` +Link to :option:`perl +p`, :option:`--ObjC++`, :option:`--plugin.option`, :option:`create-auth-token` and :option:`arg` .. program:: hg diff --git a/tests/test_build_html.py b/tests/test_build_html.py index 9e346918e..2750ae29a 100644 --- a/tests/test_build_html.py +++ b/tests/test_build_html.py @@ -347,6 +347,8 @@ def test_static_output(app): 'perl'), (".//a[@class='reference internal'][@href='#cmdoption-perl-arg-p']/code/span", '\+p'), + (".//a[@class='reference internal'][@href='#cmdoption-perl-objc']/code/span", + '--ObjC\\+\\+'), (".//a[@class='reference internal'][@href='#cmdoption-perl-plugin-option']/code/span", '--plugin.option'), (".//a[@class='reference internal'][@href='#cmdoption-perl-arg-create-auth-token']"