/usr/share/slrn/slang/tin-group.sl is in slrn 1.0.3+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | % The macros here provide some tin-like keybindings for GROUP mode.
% The following macros depend on the util.sl macros being loaded.
% In your .slrnrc file, add the following lines:
% interpret "util.sl"
% interpret "tin-group.sl"
% interpret "tin-art.sl"
!if (is_defined ("group_bob")) () = evalfile ("util.sl");
% The easy bindings
definekey ("toggle_list_all", "y", "group"); % yank in/out
definekey ("toggle_hidden", "r", "group"); % toggle all/unread
definekey ("post", "w", "group");
definekey ("quit","Q","group");
definekey ("group_search_forward","/","group");
definekey ("help","h","group");
% TAB key in group mode. Apparantly this moves from one unread group to
% another and then cycles back to the top.
define tin_group_next_unread ()
{
USER_BLOCK0
{
if (group_unread ())
{
if (-1 != select_group ())
return;
}
}
X_USER_BLOCK0 (); % enter the current group if it has unread articles
while (group_down_n (1)) X_USER_BLOCK0 ();
group_bob ();
do X_USER_BLOCK0 (); while (group_down_n (1));
error ("No more unread groups.");
}
definekey ("tin_group_next_unread", "\t", "group");
% Using UP/DOWN arrow keys in group mode causes a wrap at
% ends of the buffer.
define tin_group_up ()
{
!if (group_up_n (1))
group_eob ();
}
definekey ("tin_group_up", "k", "group");
define tin_group_down ()
{
!if (group_down_n (1))
group_bob ();
}
definekey ("tin_group_down", "j", "group");
#ifdef UNIX VMS
definekey ("tin_group_up", "\e[A", "group");
definekey ("tin_group_up", "\eOA", "group");
definekey ("tin_group_up", "^(ku)", "group");
definekey ("tin_group_down", "\e[B", "group");
definekey ("tin_group_down", "\eOB", "group");
definekey ("tin_group_down", "^(kd)", "group");
% Left/right arrow keys
definekey ("quit", "\e[D", "group");
definekey ("quit", "\eOD", "group");
definekey ("quit", "^(kl)", "group");
definekey ("select_group", "\e[C", "group");
definekey ("select_group", "\eOC", "group");
definekey ("select_group", "^(kr)", "group");
#else
% OS/2
definekey ("tin_group_up", "\xE0H", "group");
definekey ("tin_group_down", "\xE0P", "group");
definekey ("quit", "\xE0K", "group");
definekey ("select_group", "\xE0M", "group");
#endif
% using the space to pagedown at the end of the list should wrap to the top
define tin_group_pagedown ()
{
call ("page_down");
}
definekey ("tin_group_pagedown"," ","group");
% using the b to pageup at the top of the list should wrap to the bottom
define tin_group_pageup ()
{
call ("page_up");
}
definekey ("tin_group_pageup","b","group");
% vim:set noexpandtab tw=0 ts=8 softtabstop=3:
|