summaryrefslogtreecommitdiffstats
path: root/t/t4018/cpp-function-returning-pointer
diff options
context:
space:
mode:
authorShreyansh Paliwal <shreyanshpaliwalcmsmn@gmail.com>2026-02-28 16:50:45 +0530
committerJunio C Hamano <gitster@pobox.com>2026-03-02 08:09:16 -0800
commitc52f085a477c8eece87821c5bbc035e5a900eb12 (patch)
treebd2b0ad8411ba4daebb0cfc67792c3e942be1d45 /t/t4018/cpp-function-returning-pointer
parent7c02d39fc2ed2702223c7674f73150d9a7e61ba4 (diff)
downloadgit-c52f085a477c8eece87821c5bbc035e5a900eb12.tar.gz
git-c52f085a477c8eece87821c5bbc035e5a900eb12.zip
send-email: validate charset name in 8bit encoding prompt
When a non-ASCII character is detected in the body or subject of the email the user is prompted with, Which 8bit encoding should I declare [UTF-8]? foo After this the input string is validated by the regex, based on the fact that the charset string will be minimum 4 characters [1]. If the string is more than 4 letters the email is sent, if not then a second prompt to confirm is asked to the user, Are you sure you want to use <foo> [y/N]? y This relies on a length based regex heuristic check to validate the user input, and can allow clearly invalid charset names to pass if the input is greater than 4 characters. Add a semantic validation of the charset name using the Encode::find_encoding() which is a bundled module of perl. If the encoding is not recognized, warn the user and ask for confirmation before proceeding. After this validation the lenght based validation becomes redundant and also breaks flow, so change the regex of valid input to any non blank string. Make the encoding warning logic specific to the 8bit prompt, also add a unique confirmation prompt which reduces the load on ask(), and improves maintainability. Additionally, the wording of the first prompt can confuse the user if not read properly or under any default assumptions for a yes/no prompt. Change the wording to make it explicitly clear to the user that the prompt needs a string input, UTF-8 being the default. The intended flow is, Declare which 8bit encoding to use [default: UTF-8]? foobar 'foobar' does not appear to be a valid charset name. Use it anyway [y/N]? [1]- https://github.com/git/git/commit/852a15d748034eec87adbee73a72689c8936fb8b Signed-off-by: Shreyansh Paliwal <shreyanshpaliwalcmsmn@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4018/cpp-function-returning-pointer')
0 files changed, 0 insertions, 0 deletions