From 15cabbb9300807685434a694ffb7c2366e4ade76 Mon Sep 17 00:00:00 2001 From: "*Kim Zick (rummik)" Date: Thu, 27 Dec 2018 22:38:59 -0500 Subject: [PATCH] Fixes for cmdline save/restore strategy --- save_command_strategies/cmdline.sh | 2 +- scripts/restore.sh | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/save_command_strategies/cmdline.sh b/save_command_strategies/cmdline.sh index 90270fd..95cab3a 100755 --- a/save_command_strategies/cmdline.sh +++ b/save_command_strategies/cmdline.sh @@ -13,7 +13,7 @@ exit_safely_if_empty_ppid() { full_command() { [[ -z "$CPID" ]] && exit 0 - base64 /proc/${CPID}/cmdline + cat /proc/${CPID}/cmdline | perl -ne 'print join(" ", map quotemeta, split(/\000/))' | base64 -w0 } main() { diff --git a/scripts/restore.sh b/scripts/restore.sh index 666b99e..d133a5f 100755 --- a/scripts/restore.sh +++ b/scripts/restore.sh @@ -293,13 +293,14 @@ restore_shell_history() { restore_all_pane_processes() { 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 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 dir="$(remove_first_char "$dir")" pane_full_command="$(remove_first_char "$pane_full_command")" - if base64 -d <<< $pane_full_command >/dev/null 2>&1; then - pane_full_command=$(base64 -d <<< $pane_full_command | perl -ne 'print join(" ", map quotemeta, split(/\000/)), "\n"') + if [ $save_command_strategy = "cmdline" ]; then + pane_full_command=$(base64 -d <<< $pane_full_command) fi restore_pane_process "$pane_full_command" "$session_name" "$window_number" "$pane_index" "$dir" done