Fixes for cmdline save/restore strategy

This commit is contained in:
*Kim Zick (rummik) 2018-12-27 22:38:59 -05:00
parent edd8132bef
commit 15cabbb930
2 changed files with 4 additions and 3 deletions

View File

@ -13,7 +13,7 @@ exit_safely_if_empty_ppid() {
full_command() { full_command() {
[[ -z "$CPID" ]] && exit 0 [[ -z "$CPID" ]] && exit 0
base64 /proc/${CPID}/cmdline cat /proc/${CPID}/cmdline | perl -ne 'print join(" ", map quotemeta, split(/\000/))' | base64 -w0
} }
main() { main() {

View File

@ -293,13 +293,14 @@ restore_shell_history() {
restore_all_pane_processes() { restore_all_pane_processes() {
if restore_pane_processes_enabled; then if restore_pane_processes_enabled; then
local save_command_strategy="$(get_tmux_option "$save_command_strategy_option" "$default_save_command_strategy")"
local pane_full_command local pane_full_command
awk 'BEGIN { FS="\t"; OFS="\t" } /^pane/ && $11 !~ "^:$" { print $2, $3, $7, $8, $11; }' $(last_resurrect_file) | awk 'BEGIN { FS="\t"; OFS="\t" } /^pane/ && $11 !~ "^:$" { print $2, $3, $7, $8, $11; }' $(last_resurrect_file) |
while IFS=$d read session_name window_number pane_index dir pane_full_command; do while IFS=$d read session_name window_number pane_index dir pane_full_command; do
dir="$(remove_first_char "$dir")" dir="$(remove_first_char "$dir")"
pane_full_command="$(remove_first_char "$pane_full_command")" pane_full_command="$(remove_first_char "$pane_full_command")"
if base64 -d <<< $pane_full_command >/dev/null 2>&1; then if [ $save_command_strategy = "cmdline" ]; then
pane_full_command=$(base64 -d <<< $pane_full_command | perl -ne 'print join(" ", map quotemeta, split(/\000/)), "\n"') pane_full_command=$(base64 -d <<< $pane_full_command)
fi fi
restore_pane_process "$pane_full_command" "$session_name" "$window_number" "$pane_index" "$dir" restore_pane_process "$pane_full_command" "$session_name" "$window_number" "$pane_index" "$dir"
done done