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.20
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 : tclmode.sl
% tcl mode 0.5 (derived from shmode.sl, cmode.sl and latex.sl) % by David Schweikert (dwschwei@stud.ee.ethz.ch) % % ChangeLog % --------- % 0.1 18 Aug 97 Initial version % 0.2 25 Aug 97 The indenting is much better. Small bug fixes. % Escaped braces correctly parsed. % 0.3 31 Aug 97 Syntax highlighting reworked. Now only Tcl/Tk % commands are highlighted. % Highlighting of command options added. % Syntax Check added. % 0.4 27 Sep 97 Little bugfix in indenting. % 0.5 24 Feb 98 Integrated into the JED distribution. % Added syntax highlighting for numbers. % % Description % ----------- % JED-mode for the syntax-highlighting and automatic indentation of % Tcl/Tk programs. % % Notes % ----- % - This mode only does DFA syntax-highlighting and a very % rough automatic indentation (assumes that the previous line % is correctly indented) % - How to highlight is very personal... Modify the code to match your % preference! % - I am very disponible for comments, suggestions,... (via e-mail) % % Keybindings % ----------- % ^C^Q tcl_indent_region % { tcl_insert_bra % } tcl_insert_ket % # tcl_insert_comment % % Syntax Check % ------------ % This mode does recognise evident syntax-errors which are common % to beginners (I am a beginner :-)): % % - The open brace should be opened on the same line of the command % it belongs to and not on a line by itself as many do in C: % Wrong: Right: % if {$a == 1} if {$a == 1} { % { set b 2 % set b 2 } % } % Note that the open-brace at the beginning of a line could be % correct but isn't certainly common. % % - The comment is also a sort of command in Tcl, so you can't just add % comments on the right of some statement. You have to add % a command separator if you want to: % # this is right % set a 2 # this is wrong % set b 3 ;# this is right % % If tclmode recognises such an error, it displays a "Warning: ...". % You can disable the Syntax Check by setting 'Tcl_Check_Syntax' to 0. % % Syntax-highlighting % ------------------- % The syntax-coloring-types of jed aren't very adequate for tcl, % so, I used them as follows: % % - normal: as expected % - comment: as expected % - delimiter: as expected % - string: as expected (plus "$variable") % - keyword: as expected (tcl: type 0, tk: type 1) % - number: as expected % - preprocess: proc definition (first line) % - operator: command option (for example '-font') % % ToDo % ---- % - More syntax-checks (ideas?). % - Interaction with tclsh/wish (difficult). % - Smarter indenting. % - More commands from incr Tcl, BLT, ... % - tcl_comment_region. % - syntax highlighting without DFA. variable Tcl_Check_Syntax = 1; % --- $1 = "TCL"; create_syntax_table ($1); #ifdef HAS_DFA_SYNTAX %%% DFA_CACHE_BEGIN %%% private define setup_dfa_callback (name) { dfa_enable_highlight_cache ("tclmode.dfa", name); dfa_define_highlight_rule ("^[ \\t]*#.*$", "comment", name); dfa_define_highlight_rule (";[ \\t]*#.*$", "comment", name); dfa_define_highlight_rule ("\"([^\\\\\"]|\\\\.)*\"", "string", name); dfa_define_highlight_rule ("[{}\\[\\]]", "Qdelimiter", name); dfa_define_highlight_rule("[0-9]+(\\.[0-9]*)?([Ee][\\+\\-]?[0-9]*)?","number", name); dfa_define_highlight_rule (".", "normal", name); dfa_define_highlight_rule("[A-Za-z_\\.:]+", "Knormal", name); dfa_define_highlight_rule ("\\$[a-zA-Z0-9_:]+", "string", name); dfa_define_highlight_rule ("\\${.*}", "Qstring", name); dfa_define_highlight_rule ("^[ \\t]*proc.*$", "Qpreprocess", name); dfa_define_highlight_rule (" -[a-z]+ ", "operator", name); dfa_build_highlight_table (name); } dfa_set_init_callback (&setup_dfa_callback, "TCL"); %%% DFA_CACHE_END %%% #endif % Keywords (machine generated) % Tcl commands $2 = 0; () = define_keywords_n ($1, "cdif", 2, $2); () = define_keywords_n ($1, "eofforpidpwdset", 3, $2); () = define_keywords_n ($1, "caseelseevalexecexitexprfilegetsglobincrinfojoinlistloadopenprocputsreadscanseektelltime", 4, $2); () = define_keywords_n ($1, "afterarraybreakcatchclockcloseerrorfcopyflushlsortsplitsubsttraceunsetupvarvwaitwhile", 5, $2); () = define_keywords_n ($1, "appendbinaryconcatformatglobalinterplindexlrangeregexpregsubrenamereturnsocketsourcestringswitch", 6, $2); () = define_keywords_n ($1, "consoleforeachhistorylappendlinsertllengthlsearchunknownuplevel", 7, $2); () = define_keywords_n ($1, "continuefblockedlreplace", 8, $2); () = define_keywords_n ($1, "fileevent", 9, $2); % Tk commands $2 = 1; () = define_keywords_n ($1, "tkwm", 2, $2); () = define_keywords_n ($1, "bellbindfontgrabgridmenupacksendtext", 4, $2); () = define_keywords_n ($1, "entryeventfocusframeimagelabellowerplaceraisescalewinfo", 5, $2); () = define_keywords_n ($1, "buttoncanvasoptiontkwaitupdate", 6, $2); () = define_keywords_n ($1, "destroylistboxmessagetkerror", 7, $2); () = define_keywords_n ($1, "bindtagstk_popuptoplevel", 8, $2); () = define_keywords_n ($1, "clipboardscrollbarselectiontk_bisquetk_dialog", 9, $2); () = define_keywords_n ($1, "menubutton", 10, $2); () = define_keywords_n ($1, "checkbuttonradiobutton", 11, $2); () = define_keywords_n ($1, "tk_focusNexttk_focusPrev", 12, $2); () = define_keywords_n ($1, "tk_messageBoxtk_setPalette", 13, $2); () = define_keywords_n ($1, "tk_chooseColortk_getOpenFiletk_getSaveFiletk_optionsMenu", 14, $2); define tcl_indent_line (); % forward declaration % Indentation and Syntax Check define tcl_newline_and_indent () { newline (); tcl_indent_line (); } define tcl_indent_to (n) { bol_skip_white (); if (what_column != n) { bol_trim (); n--; whitespace (n); } } % Counts unmatched braces define tcl_count_braces () { variable c, open_count = 0, close_count = 0; variable escaped = 0; push_spot(); for(bol (); not(eolp()); go_right_1()) { c = what_char (); switch(c) { case '\\': ifnot(escaped) escaped = 2; }{ case '{': ifnot(escaped) open_count++; }{ case '}': ifnot(escaped) { if (open_count) open_count--; else close_count++; } } if(escaped) escaped--; } pop_spot(); return(open_count, close_count); } % Search for a valid previous line and go to it. define tcl_go_up () { forever { if (up_1 ()) { bol_skip_white (); if (eolp ()) continue; if (what_char () != '#') return(1); } else return(0); } } % Is the next line the continuation of this one? define tcl_is_continued_line () { eol(); bskip_white (); if (blooking_at ("\\")) 1; else 0; return; } % How much indenting based on the previous line? define tcl_prev_line_rule () { variable indent = 0, open_count; push_spot (); if(tcl_go_up ()) { % It is assumed that this line is correctly aligned. indent = what_column (); % If we find first an unmatched '{', then the next line should be indented. (open_count, ) = tcl_count_braces (); indent += open_count * C_INDENT; % Is the next a continuation line? if (tcl_is_continued_line ()) indent += C_CONTINUED_OFFSET; if (tcl_go_up() and tcl_is_continued_line()) indent -= C_CONTINUED_OFFSET; } pop_spot (); return (indent); } % How much indenting based on the current line? define tcl_cur_line_rule () { variable indent = 0, close_count = 0; % If we find an unmatched '}', then this line should be unindented. (, close_count) = tcl_count_braces (); indent -= close_count * C_INDENT; return (indent); } % Indent the current line. define tcl_indent_line () { variable cursor, oldindent; variable indent; % ---- Could be skipped in tcl_indent_region! cursor = what_column (); bol_skip_white (); oldindent = what_column (); % ---- indent = tcl_prev_line_rule (); indent += tcl_cur_line_rule (); % message(Sprintf("%d : %d", indent_prev, indent_cur, 2)); tcl_indent_to (indent); goto_column (cursor + indent - oldindent); % Could be skipped in tcl_indent_region! } % Indent the selected region (bound to ^C^Q) define tcl_indent_region () { check_region(1); pop_mark_1 (); push_mark(); tcl_indent_line(); % set initial line indentation before narrowing pop_spot(); push_spot(); go_up_1 (); narrow(); bob(); flush("Indenting region..."); while (down_1 ()) { % indent line by line (ie slowly) tcl_indent_line(); % flush(Sprintf("Indenting line %d", what_line(), 1)); } flush("Indenting region... Done."); widen(); pop_spot(); } define tcl_syntax_warning (msg) { flush ("Warning: " + msg); } define tcl_insert_ket () { insert("}"); tcl_indent_line(); blink_match (); } define tcl_insert_bra () { if(Tcl_Check_Syntax) { push_spot(); bskip_white(); if(bolp()) { tcl_syntax_warning("'{' shouldn't be on a separate line"); } pop_spot(); } insert("{"); } define tcl_insert_comment () { if(Tcl_Check_Syntax) { push_spot(); bskip_white(); ifnot (bolp() or blooking_at (";")) { tcl_syntax_warning("'#' should be on a separate line or after a ';'"); } pop_spot(); } insert("#"); } $1 = "TCL"; ifnot (keymap_p ($1)) { make_keymap ($1); definekey("tcl_insert_bra", "{", $1); definekey("tcl_insert_ket", "}", $1); definekey("tcl_insert_comment", "#", $1); definekey_reserved("tcl_indent_region", "^Q", $1); definekey("indent_line", "\t", $1); } %!%+ %\function{tcl_mode} %\synopsis{tcl_mode} %\description % Protoytype: Void tcl_mode (); % This is a mode that is dedicated to facilitate the editing of Tcl language files. % See the source (tclmode.sl) for more info. % Functions that affect this mode include: %#v+ % function: default binding: % tcl_insert_bra { % tcl_insert_ket } % tcl_insert_comment # % newline_and_indent RETURN % indent_line TAB % tcl_indent_region Ctrl-C Ctrl-Q %#v- % Variables affecting indentation include: %#v+ % C_INDENT % C_CONTINUED_OFFSET %#v- % Hooks: \var{tcl_mode_hook} %!%- define tcl_mode () { variable mode = "TCL"; set_mode(mode, 4); use_keymap(mode); use_syntax_table (mode); set_buffer_hook ("indent_hook", "tcl_indent_line"); set_buffer_hook ("newline_indent_hook", "tcl_newline_and_indent"); run_mode_hooks("tcl_mode_hook"); }
Close