diff --git a/frontend/README-tcltk b/frontend/README-tcltk index 4657603b..27e8ca1a 100644 --- a/frontend/README-tcltk +++ b/frontend/README-tcltk @@ -86,6 +86,9 @@ Options: --silent_start Do not issue the start message xorriso-tcltk-version. This works only if --silent_start is the first argument. + --no_extract + Do not allow extraction of files from ISO filesystem to + hard disk. This is not revokable during the program run. --no_bwidget Do not try to load the Tcl/Tk package BWidget which is a prerequisite for the "/" file browser buttons. diff --git a/frontend/xorriso-tcltk b/frontend/xorriso-tcltk index 18df362c..073585b5 100755 --- a/frontend/xorriso-tcltk +++ b/frontend/xorriso-tcltk @@ -49,6 +49,9 @@ proc print_usage {argv0} { puts stderr " --silent_start" puts stderr " Do not issue the start message xorriso-tcltk-version." puts stderr " This works only if --silent_start is the first argument." + puts stderr " --no_extract" + puts stderr " Do not allow extraction of files from ISO filesystem to" + puts stderr " hard disk. This is not revokable during the program run." puts stderr " --no_bwidget" puts stderr " Do not try to load the Tcl/Tk package BWidget which is" puts stderr " a prerequisite for the \"/\" file browser buttons." @@ -200,7 +203,7 @@ set execute_script_conn "" # Whether extraction to disk shall be allowed in scripts set script_with_osirrox 0 -# Whether extraction to disk is currently allowed +# Whether extraction to disk is allowed set osirrox_allowed 1 @@ -835,6 +838,8 @@ proc check_xorriso_version {} { # is expected by this frontend. # proc setup_xorriso {} { + global osirrox_allowed + set cmd "" # Invalidate possible -mark 1 @@ -859,6 +864,10 @@ proc setup_xorriso {} { set cmd "$cmd -iso_rr_pattern off" set cmd "$cmd -disk_pattern off" + if {$osirrox_allowed == 0} { + set cmd "$cmd -osirrox banned" + } + set cmd "$cmd [xorriso_loggable_init_cmds]" send_marked_cmd $cmd @@ -2431,6 +2440,10 @@ proc osirrox_banned {} { send_loggable_cmd "-osirrox banned" set osirrox_allowed 0 + + set m ".script_log.menu" + $m entryconfigure "Allow extract to disk" -state "disabled" + $m entryconfigure "Permanently ban extraction" -state "disabled" } @@ -3536,10 +3549,13 @@ proc init_gui {} { # proc init_input {} { global borderwidth busy_text_exists xorriso_version debug_logging - global cmd_logging_mode cmd_log_target + global cmd_logging_mode cmd_log_target osirrox_allowed global .input .input_line1 .xorriso_version .busy .busy_text global .refresh_state .end_button .cmdline .log_pipes_switch + set extract_state "normal" + if {$osirrox_allowed == 0} {set extract_state "disabled"} + frame .input -borderwidth $borderwidth frame .input_line1 -borderwidth 0 pack .input_line1 -in .input \ @@ -3588,11 +3604,13 @@ proc init_input {} { $m add command -label "Execute command script" \ -command "start_script_execution" $m add checkbutton -label "Allow extract to disk" \ + -state $extract_state \ -indicatoron 1 -selectcolor "" \ -variable script_with_osirrox \ -onvalue 1 -offvalue 0 $m add separator $m add command -label "Permanently ban extraction" \ + -state $extract_state \ -command "osirrox_banned" button .help -text "Help" -command {window_help "Help" "grey"} \ @@ -5802,6 +5820,7 @@ proc unescape_string {text} { proc setup_by_args {argv0 argv} { global cmd_pipe_adr reply_pipe_adr main_window_geometry click_to_focus global have_bwidget cmd_conn reply_conn geometry stdout stdin + global osirrox_allowed # wish normally eats the -geometry option and puts the result into $geometry catch {set main_window_geometry $geometry} @@ -5867,6 +5886,10 @@ proc setup_by_args {argv0 argv} { # postpone actual log start until start_xorriso has been passed set script_logging 1 } + if {$opt == "--no_extract"} { + set ok "1" + set osirrox_allowed 0 + } if {$opt == "--no_bwidget"} { set ok "1" set have_bwidget "-1" diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 17bef541..57d7b629 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2013.01.06.093550" +#define Xorriso_timestamP "2013.01.06.095957"