/usr/share/jed/lib/vmshelp.sl is in jed-common 1:0.99.19-2.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 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | % Interface to VMS Help
variable VMSHelp_Topic_Len = 0;
variable VMS_Help_Library = "SYS$HELP:HELPLIB.HLB";
% change as necessary - routines work with any .HLB file.
define vms_help ()
{
variable curr_buf, helptopic;
if (VMSHelp_Topic_Len) return;
curr_buf = whatbuf();
ERROR_BLOCK
{
pop_mark_0 ();
sw2buf(curr_buf);
VMSHelp_Topic_Len = -0;
}
helptopic = read_mini("VMS Help Topic:", Null_String, Null_String);
sw2buf ("*VMS-Help*");
% set_readonly (0);
erase_buffer ();
push_mark(); % This mark is popped later
VMSHelp_Topic_Len = -1;
vms_get_help (VMS_Help_Library, helptopic);
EXECUTE_ERROR_BLOCK;
}
variable VMSHelp_This_Topic = Null_String;
define vms_help_grab_topic ()
{
variable word = "-/_@=:0-9a-zA-Z\277-\326\330-\336\340-\366\370-\376";
bskip_chars (word);
push_mark();
skip_chars (word);
VMSHelp_This_Topic = bufsubstr ();
strlen (VMSHelp_This_Topic);
}
define vms_help_newtopic (prompt)
{
variable use_call, fun, ch, topic, msg;
setbuf ("*VMS-Help*");
pop_mark_1 ();
% set_readonly (1);
VMSHelp_This_Topic = Null_String;
if (VMSHelp_Topic_Len)
{
msg = sprintf("Hit RET for '%s', PgDn/PgUp, ", prompt);
recenter (1);
forever
{
ERROR_BLOCK
{
_clear_error ();
}
message (msg);
update_sans_update_hook (1);
ch = getkey ();
if (ch == '\r') break;
if (ch == '.')
{
if (vms_help_grab_topic ()) break;
continue;
}
if (ch == 127)
{
use_call = 1;
fun = "page_up";
}
else
{
ungetkey (ch);
(use_call, fun) = get_key_binding ();
if (typeof (fun) == Ref_Type)
{
(@fun)();
continue;
}
if (fun == NULL) fun = "";
}
if (fun == "self_insert_cmd")
{
if (ch == ' ') fun = "page_down";
else
{
ungetkey(ch);
break;
}
}
if (use_call) call (fun); else eval (fun);
}
}
re_fsearch ("^[\t ]*\\cAdditional information available:"); pop();
topic = strtrim(read_mini(prompt, VMSHelp_This_Topic, Null_String));
% set_readonly (0);
VMSHelp_Topic_Len = strlen (topic);
if (VMSHelp_Topic_Len) eob();
push_mark();
topic;
}
|