Clear unwanted environment variable
This adds two things I forgot in
9a7d8df4
(Avoid accidentally using environment variables in sh scopes)
Mea culpa, the problem was that I was skipping matches with "filetype"
because that's usually just a hook parameter as in "WinSetOption filetype=.."
rg --pcre2 '\b(?!filetype=)\w+=' rc/
So I missed these two cases where a shell variable is actually called "filetype".
The one in git.kak was not a problem because show_git_cmd_output is only
ever called with sane inputs. However, file.kak does use the filetype
environment variable for many mime types, for example:
filetype=somefiletype\''; echo -debug injection; nop '\' kak /dev/null
Will run the echo since /dev/null has mime type "inode/chardevice"
This commit is contained in:
parent
e0d2602e6a
commit
407c72d90a
|
@ -12,6 +12,7 @@ hook global BufOpenFile .* %{ evaluate-commands %sh{
|
||||||
text/*) filetype="${mime#text/}" ;;
|
text/*) filetype="${mime#text/}" ;;
|
||||||
application/x-*) filetype="${mime#application/x-}" ;;
|
application/x-*) filetype="${mime#application/x-}" ;;
|
||||||
application/*) filetype="${mime#application/}" ;;
|
application/*) filetype="${mime#application/}" ;;
|
||||||
|
*) exit ;;
|
||||||
esac
|
esac
|
||||||
if [ -n "${filetype}" ]; then
|
if [ -n "${filetype}" ]; then
|
||||||
printf "set-option buffer filetype '%s'\n" "${filetype}"
|
printf "set-option buffer filetype '%s'\n" "${filetype}"
|
||||||
|
|
|
@ -78,6 +78,7 @@ define-command -params 1.. \
|
||||||
diff) filetype=diff ;;
|
diff) filetype=diff ;;
|
||||||
log|show) filetype=git-log ;;
|
log|show) filetype=git-log ;;
|
||||||
status) filetype=git-status ;;
|
status) filetype=git-status ;;
|
||||||
|
*) return 1 ;;
|
||||||
esac
|
esac
|
||||||
output=$(mktemp -d "${TMPDIR:-/tmp}"/kak-git.XXXXXXXX)/fifo
|
output=$(mktemp -d "${TMPDIR:-/tmp}"/kak-git.XXXXXXXX)/fifo
|
||||||
mkfifo ${output}
|
mkfifo ${output}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user