]> git.ipfire.org Git - thirdparty/git.git/commit
userdiff: extend Bash pattern to cover more shell function forms
authorMoumita Dhar <dhar61595@gmail.com>
Fri, 16 May 2025 14:45:12 +0000 (20:15 +0530)
committerJunio C Hamano <gitster@pobox.com>
Fri, 16 May 2025 18:52:41 +0000 (11:52 -0700)
commitea8a71b40d3fdc91180b951c829cdf41bb6f7da0
treea2aa0fc70638cffd4675d6d4e3723f183811886c
parentcb96e1697ad6e54d11fc920c95f82977f8e438f8
userdiff: extend Bash pattern to cover more shell function forms

The previous function regex required explicit matching of function
bodies using `{`, `(`, `((`, or `[[`, which caused several issues:

- It failed to capture valid functions where `{` was on the next line
  due to line continuation (`\`).
- It did not recognize functions with single  command body, such as
  `x () echo hello`.

Replacing the function body matching logic with `.*$`, ensures
that everything on the function definition line is captured.

Additionally, the word regex is refined to better recognize shell
syntax, including additional parameter expansion operators and
command-line options.

Signed-off-by: Moumita Dhar <dhar61595@gmail.com>
Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4018/bash-bashism-style-complete-line-capture [new file with mode: 0644]
t/t4018/bash-posix-style-complete-line-capture [new file with mode: 0644]
t/t4018/bash-posix-style-single-command-function [new file with mode: 0644]
t/t4034-diff-words.sh
t/t4034/bash/expect [new file with mode: 0644]
t/t4034/bash/post [new file with mode: 0644]
t/t4034/bash/pre [new file with mode: 0644]
userdiff.c