!
!	TPUINI.TPU - TPU start up procedure.
!
! Modifications:
!
!	V1.000	Geoff Bryant	September 2, 1986.
!		Define initial commands.
!		1) Start with a "SET WRAP/INDENT 70"
!		2) Define GOLD A to change the wrap used by "SET WRAP/INDENT"
!		3) Define CTRL A to change the indent used by "SET WRAP/INDENT"
!		4) Define TAB key to do 5 spaces 
!
!	V1.001	Geoff Bryant	September 2, 1986
!		Replace the FILL command.
!
!	V1.002	Geoff Bryant	September 10, 1986
!		Add wrapping for period, comma, etc.
!

!
! Procedure to set the indent of a SET WRAP/INDENT.
!
procedure wgb$adjust_indent
	wgb$x_indent := current_column - 1;
	message(fao("Indent set to column !SL.",wgb$x_indent+1));
endprocedure

!
! Procedure to set the wrap of a SET WRAP/INDENT.
!
procedure wgb$adjust_wrap
	wgb$x_wrap := current_column - 1;
	edt$x_wrap_position := wgb$x_wrap;
	message(fao("Wrap set to column !SL.",wgb$x_wrap));
endprocedure

!
! Procedure to do a wrap and indent
!
procedure wgb$wrap_and_indent(wrap_char)
	local	word_size;
	if current_column > wgb$x_wrap then
		word_size := edt$beg_word;
		split_line;
		copy_text(substr(wgb$x_spaces,1,wgb$x_indent));
		move_horizontal(word_size);
	endif;
	copy_text(wrap_char);
endprocedure

!
! Define tab to do wgb$x_tab_size spaces instead of 8.
!
procedure wgb$tab
	local nsp;
	if wgb$x_tab_size = 8 then
		copy_text(ascii(9));
	    else
		nsp := current_column -
		       (current_column/wgb$x_tab_size)*wgb$x_tab_size;
                nsp := wgb$x_tab_size - nsp;
		copy_text(substr(wgb$x_spaces,1,nsp));
	endif;
endprocedure

!
! Do a FILL.
!
procedure wgb$fill
	local word_sep;
	word_sep := '	 
';
	edt$select_range;
	if edt$x_select_range = 0 then
		message("Select not active.");
		return;
	endif;
	fill(edt$x_select_range,word_sep,wgb$x_indent+1,wgb$x_wrap);
	edt$x_select_range := 0;
endprocedure

!
! Do the initialization commands:	
!

wgb$x_indent := 0;
wgb$x_wrap := 75;
edt$x_wrap_position := 75;
wgb$x_tab_size := 8;

define_key('wgb$tab',tab_key);
define_key('wgb$wrap_and_indent(" ")',key_name(' '));
define_key('wgb$wrap_and_indent(".")',key_name('.'));
define_key('wgb$wrap_and_indent(",")',key_name(','));
define_key('wgb$wrap_and_indent("?")',key_name('?'));
define_key('wgb$wrap_and_indent("!")',key_name('!'));
define_key('wgb$wrap_and_indent(";")',key_name(';'));
define_key('wgb$wrap_and_indent(":")',key_name(':'));
define_key('wgb$adjust_indent',ctrl_a_key);
define_key('wgb$adjust_wrap',key_name("A",shift_key));
define_key('wgb$fill',key_name(kp8,shift_key));

