Skip to content

More restrictive block-id character set in Doxygen >= 1.10 #10859

@coryan

Description

@coryan

Describe the bug

Doxygen 1.9 supported

@snippet{doc} foo.cc bar-baz

With Doxygen 1.10 the -baz portion is ignored and the snippet cannot be found.

To Reproduce

doxygen-repro.tar.gz

Extract the tarball and run:

doxygen

The Dockerfile may be convenient if you don't have Doxygen 1.9 and 1.10
available. Fedora:39 ships with Doxygen 1.9, and this passes:

docker build --build-arg=VERSION=39 -f Dockerfile . -t doxy:39

while this fails:

docker build --build-arg=VERSION=40 -f Dockerfile . -t doxy:40

Expected behavior

I expected the repro to succeed with Doxygen >= 1.10.

Version

doxygen --version
1.10.0 (GIT-NOTFOUND)

Additional context

I think the change in behavior was introduced as part of:

7780d51

Specifically this:

ID [$a-z_A-Z\x80-\xFF][$a-z_A-Z0-9\x80-\xFF]*

The regular expression for ID does not accept spaces, or dashes, or a number of other characters. If this is intentional, documenting the accepted character set would be useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions