Severity: minor Tags: patch Further to https://bugs.gnu.org/64019#14, I attach a patch which tweaks four redundant or seemingly mistyped instances of \(:?...\), i.e. a numbered group starting with an optional colon in place of the likelier shy group. CCing: - Alan to review the change to c-or-c++-mode--regexp (along with its clone c-ts-mode--c-or-c++-regexp) - Dmitry to review the change in vc-git - Paul for any comments on the time handling in vc-git-annotate-time In vc-git-annotate-time, the mistyped group added in [1] throws off the match string indices that are later passed to encode-time: by my reading the hour argument by chance continues to be specified correctly, but the minutes argument receives the number of hours, the seconds argument the number of minutes, and the timezone argument the number of seconds. [1]: Display shorter dates in Git annotate output 576fba5f58d 2015-05-17 02:47:17 +0300 https://git.sv.gnu.org/cgit/emacs.git/commit/?id=576fba5f58d Even after correcting the shy group, the timezone parsing doesn't seem right to me: encode-time expects a UTC offset in seconds, but is passed e.g. (string-to-number "+0100")=100s instead of the expected 1hr=3600s. IMO there is another minor issue with the regexp towards its end: \([-+0-9]+\) *[0-9]+ The trailing line number should be separated from the preceding timestamp by at least one space. So, the optional space would ideally precede rather than follow the optional time+zone components. The patch fixes this and the match/timezone handling by splitting the datetime string into only three components (date, time, zone) and delegating to iso8601-parse.