Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 930401

Summary: app-misc/mc: In subshell mode, it is not understood that PROMPT_COMMAND may be an array
Product: Gentoo Linux Reporter: kfm
Component: Current packagesAssignee: Marek Szuba <marecki>
Status: CONFIRMED ---    
Severity: normal CC: kfm, sam
Priority: Normal Keywords: PATCH
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=550104
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: mc-4.8.31-clear-PROMPT_COMMAND.patch

Description kfm 2024-04-22 00:52:07 UTC
Presently, Midnight Commander initialises interactive instances of bash in such a way that it fails to acknowledge that it is possible for PROMPT_COMMAND to be an array, as is supported since bash 5.1. This is material to Gentoo because >=bash-5.1_p16-r8 and >=bash-5.2-p26-r1 do initialise the variable as an array. Besides which, anyone might do the same in their own ~/.bashrc file.

I shall attach a patch that I think is suitable for Gentoo, whose commit message will contain a detailed rationale.
Comment 1 kfm 2024-04-22 00:53:46 UTC
Created attachment 891294 [details, diff]
mc-4.8.31-clear-PROMPT_COMMAND.patch
Comment 2 kfm 2024-04-22 01:06:04 UTC
To comment further, upstream ought to be doing something like this:

if eval '[[ ${PROMPT_COMMAND@a} == *a* ]]' 2>/dev/null; then
	PROMPT_COMMAND+=('mc crap goes here')
else
	PROMPT_COMMAND+=';mc crap goes here'
fi

I maintain that the attached patch is likely the better solution for Gentoo, however.
Comment 3 kfm 2024-04-22 01:16:37 UTC
There are times at which I wish I could edit comments. Rather, upstream could fix it from their perspective by doing something like:

if eval '[[ ${PROMPT_COMMAND@a} == *a* ]]' 2>/dev/null; then
	PROMPT_COMMAND+=('mc crap goes here')
else
	PROMPT_COMMAND+=${PROMPT_COMMAND+$PROMPT_COMMAND$'\n'}'mc crap goes here'
fi