# -*- shell-script -*- # "set width" debugger command # # Copyright (C) 2010-2011, 2016 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. # If run standalone, pull in other files we need if [[ $0 == ${BASH_SOURCE[0]} ]] { global dirname := $(BASH_SOURCE[0]%/*) [[ $dirname == $0 ]] && global top_dir := ''../..'' || global top_dir := "$(dirname)/../.." [[ -z $_Dbg_libdir ]] && global _Dbg_libdir := $top_dir for file in [help alias] { source $top_dir/lib/$(file).sh; } } _Dbg_help_add_sub set width \ '**set** **width** *width* Set maximum width of lines to *width*. ' 1 typeset -i _Dbg_set_linewidth; global _Dbg_set_linewidth := $(COLUMNS:-80) proc _Dbg_do_set_width { if [[ $1 == $int_pat ]] { _Dbg_write_journal_eval "_Dbg_set_linewidth=$1" } else { _Dbg_errmsg "Integer argument expected; got: $1" return 1 } return 0 } (CommandList children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$0")} right: { (BracedVarSub token: bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [69 74] ) } ) ) terminator: ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dirname) op: Equal rhs: { (BracedVarSub token: bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [84 92] ) } spids: [83] ) ] spids: [83] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Name "$dirname")} right: {($ VSub_Number "$0")} ) ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:top_dir) op: Equal rhs: {(SQ <../..>)} spids: [107] ) ] spids: [107] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:top_dir) op: Equal rhs: {(${ VSub_Name dirname) (/../..)} spids: [114] ) ] spids: [114] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (AndOr children: [ (DBracket expr: (BoolUnary op_id:BoolUnary_z child:{($ VSub_Name "$_Dbg_libdir")}) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_libdir) op: Equal rhs: {($ VSub_Name "$top_dir")} spids: [131] ) ] spids: [131] ) ] op_id: Op_DAmp ) (ForEach iter_name: file iter_words: [{(help)} {(alias)}] do_arg_iter: False body: (DoGroup children: [ (Sentence child: (C {(source)} {($ VSub_Name "$top_dir") (/lib/) (${ VSub_Name file) (.sh)}) terminator: ) ] spids: [147 159] ) spids: [140 145] ) ] spids: [-1 80] ) ] spids: [-1 161] ) (C {(_Dbg_help_add_sub)} {(set)} {(width)} {(SQ <"**set** **width** *width*\n"> <"\n"> <"Set maximum width of lines to *width*.\n">)} {(1)} ) (Sentence child:(C {(typeset)} {(-i)} {(_Dbg_set_linewidth)}) terminator:) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_Dbg_set_linewidth) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(80)}) spids: [188 192] ) } spids: [187] ) ] spids: [187] ) (FuncDef name: _Dbg_do_set_width body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {($ VSub_Number "$1")} right: {($ VSub_Name "$int_pat")} ) ) terminator: ) ] action: [ (C {(_Dbg_write_journal_eval)} {(DQ ("_Dbg_set_linewidth=") ($ VSub_Number "$1"))}) ] spids: [-1 216] ) ] else_action: [ (C {(_Dbg_errmsg)} {(DQ ("Integer argument expected; got: ") ($ VSub_Number "$1"))}) (ControlFlow token: arg_word:{(1)}) ] spids: [227 243] ) (ControlFlow token: arg_word:{(0)}) ] spids: [199] ) spids: [195 198] ) ] )