HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //usr/share/jed/lib/tabs.sl
%%
%%  Tab routines for JED
%%

%% The following defines the tab stops to be 8 column:
custom_variable ("Tab_Stops", [0:19] * TAB_DEFAULT + 1);

define tab_to_tab_stop ()
{
   variable c, goal, i;
   c = what_column ();

   foreach (Tab_Stops)
     {
	goal = ();
	if (goal > c) break;
     }

   insert_spaces (goal - c);
}

setkey ("tab_to_tab_stop", "^I");

private variable _Tabs_Buffer;

$1 = "*TabsEdit*";
ifnot (keymap_p($1))
{
   make_keymap ($1);
   undefinekey ("^C", $1);
   definekey ("tabs_install_tab_stops", "^C^C", $1);
}

%% emacs like edit tab stops
define edit_tab_stops ()
{
   variable tbuf, i;
   _Tabs_Buffer = whatbuf();
   tbuf = "*TabsEdit*";

   sw2buf(tbuf); erase_buffer();
   TAB = 0;

   use_keymap(tbuf);
   foreach (Tab_Stops)
     {
	i = ();
	goto_column (i);
	insert_char ('T');
     }
   newline ();
   _for (1, 13, 1)
     {
	i = ();
	goto_column (10 * i);
	insert (string(i));
     }
   newline ();

   loop (13) insert ("1234567890");

   insert ("\nTo install changes, type control-c control-c.");
   bob ();
   set_buffer_modified_flag (0);
   set_overwrite (1);
}

define tabs_install_tab_stops ()
{
   variable i;
   bob ();

   _for (0, length (Tab_Stops) - 1, 1)
     {
	i = ();
	skip_white ();
	if (eolp()) break;
	Tab_Stops[i] = what_column ();
	go_right_1 ();
     }

   Tab_Stops[[i:]] = 0;

   set_buffer_modified_flag (0);
   delbuf (whatbuf ());
   sw2buf ( _Tabs_Buffer);
}