# -*- shell-script -*- # show.sh - Show debugger settings # # Copyright (C) 2002-2003, 2006-2008, 2010, 2012 # 2011 Rocky Bernstein # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 2, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING. If not, write to # the Free Software Foundation, 59 Temple Place, Suite 330, Boston, # MA 02111 USA. typeset -A _Dbg_debugger_show_commands typeset -A _Dbg_command_help_show # subcommands whose current values are not shown in a "show" list . # These are things like alias, warranty, or copying. # They are available if asked for explicitly, e.g. "show copying" typeset -A _Dbg_show_nolist # Help routine is elsewhere which is why we have '' below. _Dbg_help_add show '' 1 _Dbg_complete_show # Load in "show" subcommands for _Dbg_file in ${_Dbg_libdir}/command/show_sub/*.sh ; do source $_Dbg_file done # Command completion for a condition command _Dbg_complete_show() { _Dbg_complete_subcmd show } _Dbg_do_show() { typeset subcmd=$1 (($# >= 1)) && shift typeset label=$1 (($# >= 1)) && shift if [[ -z $subcmd ]] ; then typeset thing typeset list; list=("${!_Dbg_debugger_show_commands[@]}") sort_list 0 ${#list[@]}-1 for thing in ${list[@]} ; do [[ -n ${_Dbg_show_nolist[$thing]} ]] || _Dbg_do_show $thing 1 done return 0 elif [[ -n ${_Dbg_debugger_show_commands[$subcmd]} ]] ; then ${_Dbg_debugger_show_commands[$subcmd]} "$label" "$@" return 0 fi case $subcmd in lin | line | linet | linetr | linetra | linetrac | linetrace ) [[ -n $label ]] && label=$(_Dbg_printf_nocr "%-12s: " 'line tracing') [[ -n $label ]] && label='line tracing: ' typeset onoff="off." (( _Dbg_set_linetrace != 0 )) && onoff='on.' _Dbg_msg \ "${label}Show line tracing is" $onoff _Dbg_msg \ "${label}Show line trace delay is ${_Dbg_linetrace_delay}." ;; lo | log | logg | loggi | loggin | logging ) shift _Dbg_do_show_logging $@ ;; sho|show|showc|showco|showcom|showcomm|showcomma|showcomman|showcommand ) [[ -n $label ]] && label=$(_Dbg_printf_nocr "%-12s: " 'showcommmand') _Dbg_msg \ "${label}Show commands in debugger prompt is" \ "$_Dbg_set_show_command." ;; t|tr|tra|trac|trace|trace-|tracec|trace-co|trace-com|trace-comm|trace-comma|trace-comman|trace-command|trace-commands ) [[ -n $label ]] && label='trace-commands: ' _Dbg_msg \ "${label}State of command tracing is" \ "$_Dbg_set_trace_commands." ;; tt | tty ) shift _Dbg_do_show_tty $@ ;; *) _Dbg_errmsg "Unknown show subcommand: $subcmd" typeset -a list; list=("${!_Dbg_debugger_show_commands[@]}") sort_list 0 ${#list[@]}-1 typeset columnized='' typeset -i width; ((width=_Dbg_set_linewidth-5)) typeset -a columnized; columnize $width typeset -i i _Dbg_errmsg "Show subcommands are:" for ((i=0; i<${#columnized[@]}; i++)) ; do _Dbg_errmsg " ${columnized[i]}" done return 1 esac return $? }