mirror of
https://github.com/tj/git-extras.git
synced 2026-09-12 16:36:22 -04:00
commit
5b45eb702b
|
|
@ -317,7 +317,20 @@ _exit() {
|
|||
stty sane; echo; echo "caught signal, shutting down"
|
||||
|
||||
IFS=$'\n'
|
||||
pid_list=( $(pgrep -P $$) )
|
||||
# The format of `ps` is different between Windows and other platforms,
|
||||
# so we need to calculate the total column number(COL_NUM) of header first.
|
||||
# Why don't we just use the last column?
|
||||
# Because the body of CMD column may contain space and be treated as multiple fileds.
|
||||
pid_list=( $(ps -f |
|
||||
awk -v ppid=$$ 'NR == 1 {
|
||||
COL_NUM = NF
|
||||
}
|
||||
$3 == ppid {
|
||||
# filter out temp processes created in this subshell
|
||||
if ($COL_NUM != "ps" && $COL_NUM != "awk" && $COL_NUM !~ "bash$")
|
||||
print $2
|
||||
}')
|
||||
)
|
||||
IFS="$defaultIFS"
|
||||
|
||||
local _pid
|
||||
|
|
@ -465,7 +478,10 @@ main() {
|
|||
rm -f "$tmpfile"
|
||||
else
|
||||
cp -f "$tmpfile" "$changelog"
|
||||
[[ -n "$GIT_EDITOR" ]] && $GIT_EDITOR "$changelog"
|
||||
# Use `eval` to handle GIT_EDITOR which contains space and options,
|
||||
# like ""C:\Program Files (x86)\Notepad++\notepad++.exe" -multiInst ".
|
||||
# Thanks @JanSchulz to inspire me this solution
|
||||
[[ -n "$GIT_EDITOR" ]] && eval $GIT_EDITOR "$changelog"
|
||||
if [[ $? -ne 0 ]]; then
|
||||
_exit
|
||||
fi
|
||||
|
|
|
|||
Loading…
Reference in a new issue