Browse code

add tcl language support for the hinter (uses tcl hinter instead of C hinter if first line starts with # and has tclsh, wish or expect)

Dario Rodriguez authored on 21/02/2022 19:05:43
Showing 7 changed files
... ...
@@ -50,11 +50,20 @@ prototypes_c89_posix.h: prototypes_c89_posix.txt
50 50
 prototypes_c89_posix.o: prototypes_c89_posix.c
51 51
 	$(CC) $(CFLAGS) -c -o prototypes_c89_posix.o prototypes_c89_posix.c
52 52
 
53
+prototypes_tcl.c: prototypes_tcl.txt
54
+	./prototypes2h.sh prototypes_tcl.txt
55
+
56
+prototypes_tcl.h: prototypes_tcl.txt
57
+	./prototypes2h.sh prototypes_tcl.txt
58
+
59
+prototypes_tcl.o: prototypes_tcl.c
60
+	$(CC) $(CFLAGS) -c -o prototypes_tcl.o prototypes_tcl.c
61
+
53 62
 socklib.o: ext/socklib.c ext/socklib.h
54 63
 	$(CC) $(CFLAGS) -Iext -c -o socklib.o ext/socklib.c
55 64
 
56
-re: recenteditor.o re_data.o re_plugin_unsaved.o re_plugin_highlighter.o re_plugin_prototypes.o prototypes_c89_posix.o sha3.o re_ui.o hack_regular.o iosevka_fixed_regular.o socklib.o
57
-	$(CC) $(LDFLAGS) -o re recenteditor.o re_data.o re_plugin_unsaved.o re_plugin_highlighter.o re_plugin_prototypes.o prototypes_c89_posix.o sha3.o re_ui.o hack_regular.o iosevka_fixed_regular.o socklib.o
65
+re: recenteditor.o re_data.o re_plugin_unsaved.o re_plugin_highlighter.o re_plugin_prototypes.o prototypes_c89_posix.o prototypes_tcl.o sha3.o re_ui.o hack_regular.o iosevka_fixed_regular.o socklib.o
66
+	$(CC) $(LDFLAGS) -o re recenteditor.o re_data.o re_plugin_unsaved.o re_plugin_highlighter.o re_plugin_prototypes.o prototypes_c89_posix.o prototypes_tcl.o sha3.o re_ui.o hack_regular.o iosevka_fixed_regular.o socklib.o
58 67
 
59 68
 tests: re_tests.o re_data.o sha3.o
60 69
 	$(CC) $(LDFLAGS) -o tests re_tests.o re_data.o sha3.o
... ...
@@ -63,4 +72,4 @@ tests_utf8: re_tests_utf8.o re_data.o sha3.o
63 72
 	$(CC) $(LDFLAGS) -o tests_utf8 re_tests_utf8.o re_data.o sha3.o
64 73
 
65 74
 clean:
66
-	rm -f recenteditor.o re_data.o re_tests.o re_plugin_unsaved.o re_plugin_highlighter.o sha3.o re_ui.o hack_regular.c hack_regular.h hack_regular.o iosevka_fixed_regular.c iosevka_fixed_regular.h iosevka_fixed_regular.o re tests 
75
+	rm -f recenteditor.o re_data.o re_tests.o re_plugin_unsaved.o re_plugin_highlighter.o sha3.o re_ui.o hack_regular.c hack_regular.h hack_regular.o iosevka_fixed_regular.c iosevka_fixed_regular.h iosevka_fixed_regular.o prototypes_c89_posix.o prototypes_tcl.o re tests 
... ...
@@ -3,4 +3,4 @@ name=$(basename $1 | sed 's/\..*$//g' | tr -- '-A-Z' '_a-z')
3 3
 sizename=$( echo SIZE_${name} | tr a-z A-Z )
4 4
 sizeval=$( wc -l "$1" | expand | sed "s/^ *//g" | cut -d ' '  -f 1)
5 5
 ( echo "extern const char *index_${name};" ; echo "extern const char *values_${name};" ; echo "#define $sizename $sizeval" ) > ${name}.h
6
-( echo "const char *index_${name}[]={\"\\" ; cat $1 | cut -d '|'  -f 1 | sed 's/$/\\0\\/g' ; echo "\"};" ; echo "const char *values_${name}={\"\\" ; cat $1 | cut -d '|'  -f 2 | sed 's/$/\\0\\/g' ; echo "\"};" ) > ${name}.c
6
+( echo "const char *index_${name}[]={\"\\" ; cat $1 | cut -d '|'  -f 1 | sed 's/$/\\0\\/g' ; echo "\"};" ; echo "const char *values_${name}={\"\\" ; cat $1 | cut -d '|'  -f 2- | sed 's/$/\\0\\/g' ; echo "\"};" ) > ${name}.c
7 7
new file mode 100644
... ...
@@ -0,0 +1,1144 @@
1
+const char *index_prototypes_tcl[]={"\
2
+after cancel\0\
3
+after idle\0\
4
+after info\0\
5
+after\0\
6
+append\0\
7
+apply\0\
8
+array anymore\0\
9
+array donesearch\0\
10
+array exists\0\
11
+array get\0\
12
+array names\0\
13
+array nextelement\0\
14
+array set\0\
15
+array size\0\
16
+array startsearch\0\
17
+array statistics\0\
18
+array unset\0\
19
+array\0\
20
+bell\0\
21
+bgerror\0\
22
+bigfloat\0\
23
+binary\0\
24
+bind\0\
25
+bindtags\0\
26
+bitmap\0\
27
+break\0\
28
+button\0\
29
+canvas\0\
30
+case\0\
31
+catch\0\
32
+cd\0\
33
+chan blocked\0\
34
+chan close\0\
35
+chan configure\0\
36
+chan copy\0\
37
+chan create\0\
38
+chan eof\0\
39
+chan event\0\
40
+chan flush\0\
41
+chan gets\0\
42
+chan names\0\
43
+chan pending\0\
44
+chan postevent\0\
45
+chan puts\0\
46
+chan read\0\
47
+chan seek\0\
48
+chan tell\0\
49
+chan truncate\0\
50
+chan\0\
51
+checkbutton\0\
52
+clipboard clear\0\
53
+clipboard append\0\
54
+clipboard get\0\
55
+clipboard\0\
56
+clock add\0\
57
+clock clicks\0\
58
+clock format\0\
59
+clock microseconds\0\
60
+clock milliseconds\0\
61
+clock scan\0\
62
+clock seconds\0\
63
+clock\0\
64
+close\0\
65
+concat\0\
66
+connect\0\
67
+console eval\0\
68
+console hide\0\
69
+console show\0\
70
+console title\0\
71
+console\0\
72
+continue\0\
73
+control\0\
74
+copyops\0\
75
+dde servername\0\
76
+dde execute\0\
77
+dde poke\0\
78
+dde request\0\
79
+dde services\0\
80
+dde eval\0\
81
+dde\0\
82
+ddest\0\
83
+debug\0\
84
+destroy\0\
85
+dict append\0\
86
+dict create\0\
87
+dict exists\0\
88
+dict filter\0\
89
+dict for\0\
90
+dict get\0\
91
+dict incr\0\
92
+dict info\0\
93
+dict keys\0\
94
+dict lappend\0\
95
+dict merge\0\
96
+dict remove\0\
97
+dict replace\0\
98
+dict set\0\
99
+dict size\0\
100
+dict unset\0\
101
+dict update\0\
102
+dict values\0\
103
+dict with\0\
104
+dict\0\
105
+dicttool\0\
106
+docstrip\0\
107
+dsource\0\
108
+ean13\0\
109
+encoding convertfrom\0\
110
+encoding convertto\0\
111
+encoding dirs\0\
112
+encoding names\0\
113
+encoding system\0\
114
+encoding\0\
115
+entry\0\
116
+eof\0\
117
+error\0\
118
+eval\0\
119
+event add\0\
120
+event delete\0\
121
+event generate\0\
122
+event info\0\
123
+event\0\
124
+exec\0\
125
+exit\0\
126
+fblocked\0\
127
+fconfigure\0\
128
+fcopy\0\
129
+file atime\0\
130
+file attributes\0\
131
+file channels\0\
132
+file copy\0\
133
+file copy ?-force? ?-\0\
134
+file delete\0\
135
+file dirname\0\
136
+file executable\0\
137
+file exists\0\
138
+file extension\0\
139
+file isdirectory\0\
140
+file isfile\0\
141
+file join\0\
142
+file link\0\
143
+file lstat\0\
144
+file mkdir\0\
145
+file mtime\0\
146
+file nativename\0\
147
+file normalize\0\
148
+file owned\0\
149
+file pathtype\0\
150
+file readable\0\
151
+file readlink\0\
152
+file rename\0\
153
+file rename ?-force? ?-\0\
154
+file rootname\0\
155
+file separator\0\
156
+file size\0\
157
+file split\0\
158
+file stat\0\
159
+file system\0\
160
+file tail\0\
161
+file type\0\
162
+file volumes\0\
163
+file writable\0\
164
+file\0\
165
+fileevent\0\
166
+flush\0\
167
+focus\0\
168
+font actual\0\
169
+font configure\0\
170
+font create\0\
171
+font delete\0\
172
+font families\0\
173
+font measure\0\
174
+font metrics\0\
175
+font names\0\
176
+font\0\
177
+for\0\
178
+foreach\0\
179
+format\0\
180
+frame\0\
181
+generator\0\
182
+gets\0\
183
+glob\0\
184
+global\0\
185
+grab current\0\
186
+grab release\0\
187
+grab set\0\
188
+grab status\0\
189
+grab\0\
190
+graph1\0\
191
+graphops\0\
192
+grid anchor\0\
193
+grid bbox\0\
194
+grid columnconfigure\0\
195
+grid configure\0\
196
+grid forget\0\
197
+grid info\0\
198
+grid location\0\
199
+grid propagate\0\
200
+grid rowconfigure\0\
201
+grid remove\0\
202
+grid size\0\
203
+grid slaves\0\
204
+grid\0\
205
+history add\0\
206
+history change\0\
207
+history clear\0\
208
+history event\0\
209
+history info\0\
210
+history keep\0\
211
+history nextid\0\
212
+history redo\0\
213
+history\0\
214
+huddle create\0\
215
+huddle list\0\
216
+huddle number\0\
217
+huddle string\0\
218
+huddle boolean\0\
219
+huddle true\0\
220
+huddle false\0\
221
+huddle null\0\
222
+huddle get\0\
223
+huddle gets\0\
224
+huddle set\0\
225
+huddle remove\0\
226
+huddle combine\0\
227
+huddle equal\0\
228
+huddle append\0\
229
+huddle keys\0\
230
+huddle llength\0\
231
+huddle type\0\
232
+huddle strip\0\
233
+huddle jsondump\0\
234
+huddle compile\0\
235
+huddle isHuddle\0\
236
+huddle checkHuddle\0\
237
+huddle to_node\0\
238
+huddle wrap\0\
239
+huddle call\0\
240
+huddle addType\0\
241
+huddle\0\
242
+iban\0\
243
+if\0\
244
+image create\0\
245
+image delete\0\
246
+image height\0\
247
+image inuse\0\
248
+image names\0\
249
+image type\0\
250
+image types\0\
251
+image width\0\
252
+image\0\
253
+imei\0\
254
+imenu\0\
255
+incr\0\
256
+info args\0\
257
+info body\0\
258
+info cmdcount\0\
259
+info commands\0\
260
+info complete\0\
261
+info default\0\
262
+info exists\0\
263
+info frame\0\
264
+info functions\0\
265
+info globals\0\
266
+info hostname\0\
267
+info level\0\
268
+info library\0\
269
+info loaded\0\
270
+info locals\0\
271
+info nameofexecutable\0\
272
+info patchlevel\0\
273
+info procs\0\
274
+info script\0\
275
+info sharedlibextension\0\
276
+info tclversion\0\
277
+info vars\0\
278
+info\0\
279
+ipager\0\
280
+isbn\0\
281
+join\0\
282
+label\0\
283
+labelframe\0\
284
+lappend\0\
285
+lassign\0\
286
+library\0\
287
+lindex\0\
288
+linsert\0\
289
+list\0\
290
+listbox\0\
291
+llength\0\
292
+load\0\
293
+logger\0\
294
+lower\0\
295
+lrange\0\
296
+lrepeat\0\
297
+lreplace\0\
298
+lreverse\0\
299
+lsearch\0\
300
+lset\0\
301
+lsort\0\
302
+luhn\0\
303
+luhn5\0\
304
+machineparameters\0\
305
+matrix1\0\
306
+memory active\0\
307
+memory break_on_malloc\0\
308
+memory info\0\
309
+memory init\0\
310
+memory objs\0\
311
+memory onexit\0\
312
+memory tag\0\
313
+memory trace\0\
314
+memory trace_on_at_malloc\0\
315
+memory validate\0\
316
+memory\0\
317
+menu\0\
318
+menubutton\0\
319
+message\0\
320
+meta\0\
321
+numtheory\0\
322
+oometa\0\
323
+ooutil\0\
324
+open\0\
325
+option\0\
326
+pack configure\0\
327
+pack forget\0\
328
+pack info\0\
329
+pack propagate\0\
330
+pack slaves\0\
331
+pack\0\
332
+package forget\0\
333
+package ifneeded\0\
334
+package names\0\
335
+package present\0\
336
+package provide\0\
337
+package require\0\
338
+package unknown\0\
339
+package vcompare\0\
340
+package versions\0\
341
+package vsatisfies\0\
342
+package prefer\0\
343
+package\0\
344
+pack-old\0\
345
+panedwindow\0\
346
+parray\0\
347
+photo\0\
348
+pid\0\
349
+place configure\0\
350
+place forget\0\
351
+place info\0\
352
+place slaves\0\
353
+place\0\
354
+platform\0\
355
+platform::shell\0\
356
+practcl\0\
357
+proc\0\
358
+pt\0\
359
+puts\0\
360
+pwd\0\
361
+radiobutton\0\
362
+raise\0\
363
+read\0\
364
+receiver\0\
365
+record define\0\
366
+record show\0\
367
+record exists\0\
368
+record delete\0\
369
+record\0\
370
+refchan\0\
371
+regexp\0\
372
+registry broadcast\0\
373
+registry delete\0\
374
+registry get\0\
375
+registry keys\0\
376
+registry set\0\
377
+registry type\0\
378
+registry values\0\
379
+registry\0\
380
+regsub\0\
381
+rename\0\
382
+scale\0\
383
+scan\0\
384
+scrollbar\0\
385
+seek\0\
386
+selection clear\0\
387
+selection get\0\
388
+selection handle\0\
389
+selection own\0\
390
+selection\0\
391
+send\0\
392
+set\0\
393
+skiplist\0\
394
+socket\0\
395
+source\0\
396
+spinbox\0\
397
+split\0\
398
+string compare\0\
399
+string equal\0\
400
+string first\0\
401
+string index\0\
402
+string is\0\
403
+string last\0\
404
+string length\0\
405
+string map\0\
406
+string match\0\
407
+string range\0\
408
+string repeat\0\
409
+string replace\0\
410
+string reverse\0\
411
+string tolower\0\
412
+string totitle\0\
413
+string toupper\0\
414
+string trim\0\
415
+string trimleft\0\
416
+string trimright\0\
417
+string bytelength\0\
418
+string wordend\0\
419
+string wordstart\0\
420
+string\0\
421
+subst\0\
422
+switch\0\
423
+switched\0\
424
+symdiff\0\
425
+tell\0\
426
+text\0\
427
+time\0\
428
+tk appname\0\
429
+tk caret\0\
430
+tk scaling\0\
431
+tk inactive\0\
432
+tk useinputmethods\0\
433
+tk windowingsystem\0\
434
+tk\0\
435
+tkerror\0\
436
+tkwait\0\
437
+toplevel\0\
438
+tqueue\0\
439
+trace add\0\
440
+trace remove\0\
441
+trace info\0\
442
+trace variable\0\
443
+trace vdelete\0\
444
+trace vinfo\0\
445
+trace\0\
446
+transmitter\0\
447
+treectrl\0\
448
+treeql\0\
449
+ttk::button\0\
450
+ttk::checkbutton\0\
451
+ttk::combobox\0\
452
+ttk::entry\0\
453
+ttk::frame\0\
454
+ttk::label\0\
455
+ttk::labelframe\0\
456
+ttk::menubutton\0\
457
+ttk::notebook\0\
458
+ttk::panedwindow\0\
459
+ttk::progressbar\0\
460
+ttk::radiobutton\0\
461
+ttk::scale\0\
462
+ttk::scrollbar\0\
463
+ttk::separator\0\
464
+ttk::sizegrip\0\
465
+ttk::spinbox\0\
466
+ttk::style configure\0\
467
+ttk::style map\0\
468
+ttk::style lookup\0\
469
+ttk::style layout\0\
470
+ttk::style element\0\
471
+ttk::style theme\0\
472
+ttk::style\0\
473
+ttk::treeview\0\
474
+udp\0\
475
+unknown\0\
476
+unload\0\
477
+unset\0\
478
+update\0\
479
+uplevel\0\
480
+upvar\0\
481
+uri\0\
482
+urn-scheme\0\
483
+usnpi\0\
484
+variable\0\
485
+verhoeff\0\
486
+vwait\0\
487
+while\0\
488
+winfo atom\0\
489
+winfo atomname\0\
490
+winfo cells\0\
491
+winfo children\0\
492
+winfo class\0\
493
+winfo colormapfull\0\
494
+winfo containing\0\
495
+winfo depth\0\
496
+winfo exists\0\
497
+winfo fpixels\0\
498
+winfo geometry\0\
499
+winfo height\0\
500
+winfo id\0\
501
+winfo interps\0\
502
+winfo ismapped\0\
503
+winfo manager\0\
504
+winfo name\0\
505
+winfo parent\0\
506
+winfo pathname\0\
507
+winfo pixels\0\
508
+winfo pointerx\0\
509
+winfo pointerxy\0\
510
+winfo pointery\0\
511
+winfo reqheight\0\
512
+winfo reqwidth\0\
513
+winfo rgb\0\
514
+winfo rootx\0\
515
+winfo rooty\0\
516
+winfo screen\0\
517
+winfo screencells\0\
518
+winfo screendepth\0\
519
+winfo screenheight\0\
520
+winfo screenmmheight\0\
521
+winfo screenmmwidth\0\
522
+winfo screenvisual\0\
523
+winfo screenwidth\0\
524
+winfo server\0\
525
+winfo toplevel\0\
526
+winfo viewable\0\
527
+winfo visual\0\
528
+winfo visualid\0\
529
+winfo visualsavailable\0\
530
+winfo vrootheight\0\
531
+winfo vrootwidth\0\
532
+winfo vrootx\0\
533
+winfo vrooty\0\
534
+winfo width\0\
535
+winfo x\0\
536
+winfo y\0\
537
+winfo\0\
538
+wm aspect\0\
539
+wm attributes\0\
540
+wm client\0\
541
+wm colormapwindows\0\
542
+wm command\0\
543
+wm deiconify\0\
544
+wm focusmodel\0\
545
+wm forget\0\
546
+wm frame\0\
547
+wm geometry\0\
548
+wm grid\0\
549
+wm group\0\
550
+wm iconbitmap\0\
551
+wm iconify\0\
552
+wm iconmask\0\
553
+wm iconname\0\
554
+wm iconphoto\0\
555
+wm iconposition\0\
556
+wm iconwindow\0\
557
+wm manage\0\
558
+wm maxsize\0\
559
+wm minsize\0\
560
+wm overrideredirect\0\
561
+wm positionfrom\0\
562
+wm protocol\0\
563
+wm resizable\0\
564
+wm sizefrom\0\
565
+wm stackorder\0\
566
+wm state\0\
567
+wm title\0\
568
+wm transient\0\
569
+wm withdraw\0\
570
+wm\0\
571
+xsxp\0\
572
+"};
573
+const char *values_prototypes_tcl={"\
574
+after cancel id\0\
575
+after idle script ?script script ...?\0\
576
+after info ?id?\0\
577
+after: cancel idle info\0\
578
+append varName ?value value value ...?\0\
579
+apply func ?arg1 arg2 ...?\0\
580
+array anymore arrayName searchId\0\
581
+array donesearch arrayName searchId\0\
582
+array exists arrayName\0\
583
+array get arrayName ?pattern?\0\
584
+array names arrayName ?mode? ?pattern?\0\
585
+array nextelement arrayName searchId\0\
586
+array set arrayName list\0\
587
+array size arrayName\0\
588
+array startsearch arrayName\0\
589
+array statistics arrayName\0\
590
+array unset arrayName ?pattern?\0\
591
+array: anymore donesearch exists get names nextelement set size startsearch statistics unset\0\
592
+bell ?-displayof window? ?-nice?\0\
593
+bgerror message\0\
594
+fromstr number ?trailingZeros?\0\
595
+binary format formatString ?arg arg ...?\0\
596
+bind tag ?sequence? ?+??script?\0\
597
+bindtags window ?tagList?\0\
598
+image create bitmap ?name? ?options?\0\
599
+break\0\
600
+button pathName ?options?\0\
601
+canvas pathName ?options?\0\
602
+case string ?in? patList body ?patList body ...?\0\
603
+catch script ?resultVarName? ?optionsVarName?\0\
604
+cd ?dirName?\0\
605
+chan blocked channelId\0\
606
+chan close channelId\0\
607
+chan configure channelId ?optionName? ?value? ?optionName value?...\0\
608
+chan copy inputChan outputChan ?-size size? ?-command callback?\0\
609
+chan create mode cmdPrefix\0\
610
+chan eof channelId\0\
611
+chan event channelId event ?script?\0\
612
+chan flush channelId\0\
613
+chan gets channelId ?varName?\0\
614
+chan names ?pattern?\0\
615
+chan pending mode channelId\0\
616
+chan postevent channelId eventSpec\0\
617
+chan puts ?-nonewline? ?channelId? string\0\
618
+chan read channelId ?numChars?\0\
619
+chan seek channelId offset ?origin?\0\
620
+chan tell channelId\0\
621
+chan truncate channelId ?length?\0\
622
+chan: blocked close configure copy create eof event flush gets names pending postevent puts read seek tell truncate\0\
623
+checkbutton pathName ?options?\0\
624
+clipboard clear ?-displayof window?\0\
625
+clipboard append ?-displayof window? ?-format format? ?-type type? ?-|-? data\0\
626
+clipboard get ?-displayof window? ?-type type?\0\
627
+clipboard: clear append get\0\
628
+clock add timeVal ?count unit...? ?-option value?\0\
629
+clock clicks ?-option?\0\
630
+clock format timeVal ?-option value...?\0\
631
+clock microseconds\0\
632
+clock milliseconds\0\
633
+clock scan inputString ?-option value...?\0\
634
+clock seconds\0\
635
+clock: add clicks format microseconds milliseconds scan seconds\0\
636
+close channelId\0\
637
+concat ?arg arg ...?\0\
638
+transfer::connect objectName ?options...?\0\
639
+console eval script\0\
640
+console hide\0\
641
+console show\0\
642
+console title ?string?\0\
643
+console: eval hide show title\0\
644
+continue\0\
645
+control::control command option ?arg arg ...?\0\
646
+transfer::copy::do chan|string data outchannel ?options...?\0\
647
+dde servername ?-force? ?-handler proc? ?-|-? ?topic?\0\
648
+dde execute ?-async? service topic data\0\
649
+dde poke service topic item data\0\
650
+dde request ?-binary? service topic item\0\
651
+dde services service topic\0\
652
+dde eval ?-async? topic cmd ?arg arg ...?\0\
653
+dde: servername execute poke request services eval\0\
654
+transfer::data::destination objectName ?options...?\0\
655
+debug.tag message ?level?\0\
656
+destroy ?window window ...?\0\
657
+dict append dictionaryVariable key ?string ...?\0\
658
+dict create ?key value ...?\0\
659
+dict exists dictionaryValue key ?key ...?\0\
660
+dict filter dictionaryValue filterType arg ?arg ...?\0\
661
+dict for {keyVar valueVar} dictionaryValue body\0\
662
+dict get dictionaryValue ?key ...?\0\
663
+dict incr dictionaryVariable key ?increment?\0\
664
+dict info dictionaryValue\0\
665
+dict keys dictionaryValue ?globPattern?\0\
666
+dict lappend dictionaryVariable key ?value ...?\0\
667
+dict merge ?dictionaryValue ...?\0\
668
+dict remove dictionaryValue ?key ...?\0\
669
+dict replace dictionaryValue ?key value ...?\0\
670
+dict set dictionaryVariable key ?key ...? value\0\
671
+dict size dictionaryValue\0\
672
+dict unset dictionaryVariable key ?key ...?\0\
673
+dict update dictionaryVariable key varName ?key varName ...? body\0\
674
+dict values dictionaryValue ?globPattern?\0\
675
+dict with dictionaryVariable ?key ...? body\0\
676
+dict: append create exists filter for get incr info keys lappend merge remove replace set size unset update values with\0\
677
+ladd varname args\0\
678
+docstrip::extract text terminals ?option value ...?\0\
679
+transfer::data::source objectName ?options...?\0\
680
+valtype::gs1::ean13 validate value\0\
681
+encoding convertfrom ?encoding? data\0\
682
+encoding convertto ?encoding? string\0\
683
+encoding dirs ?directoryList?\0\
684
+encoding names\0\
685
+encoding system ?encoding?\0\
686
+encoding: convertfrom convertto dirs names system\0\
687
+entry pathName ?options?\0\
688
+eof channelId\0\
689
+error message ?info? ?code?\0\
690
+eval arg ?arg ...?\0\
691
+event add <<virtual>> sequence ?sequence ...?\0\
692
+event delete <<virtual>> ?sequence sequence ...?\0\
693
+event generate window event ?option value option value ...?\0\
694
+event info ?<<virtual>>?\0\
695
+event: add delete generate info\0\
696
+exec ?switches? arg ?arg ...?\0\
697
+exit ?returnCode?\0\
698
+fblocked channelId\0\
699
+fconfigure channelId name value ?name value ...?\0\
700
+fcopy inchan outchan ?-size size? ?-command callback?\0\
701
+file atime name ?time?\0\
702
+file attributes name\0\
703
+file channels ?pattern?\0\
704
+file copy ?-force? ?-|-? source target\0\
705
+-? source ?source ...? targetDir\0\
706
+file delete ?-force? ?-|-? pathname ?pathname ... ?\0\
707
+file dirname name\0\
708
+file executable name\0\
709
+file exists name\0\
710
+file extension name\0\
711
+file isdirectory name\0\
712
+file isfile name\0\
713
+file join name ?name ...?\0\
714
+file link ?-linktype? linkName ?target?\0\
715
+file lstat name varName\0\
716
+file mkdir dir ?dir ...?\0\
717
+file mtime name ?time?\0\
718
+file nativename name\0\
719
+file normalize name\0\
720
+file owned name\0\
721
+file pathtype name\0\
722
+file readable name\0\
723
+file readlink name\0\
724
+file rename ?-force? ?-|-? source target\0\
725
+-? source ?source ...? targetDir\0\
726
+file rootname name\0\
727
+file separator ?name?\0\
728
+file size name\0\
729
+file split name\0\
730
+file stat name varName\0\
731
+file system name\0\
732
+file tail name\0\
733
+file type name\0\
734
+file volumes\0\
735
+file writable name\0\
736
+file: atime attributes channels copy delete dirname executable exists extension isdirectory isfile join link lstat mkdir mtime nativename normalize owned pathtype readable readlink rename rootname separator size split stat system tail type volumes writable\0\
737
+fileevent channelId readable ?script?\0\
738
+flush channelId\0\
739
+focus\0\
740
+font actual font ?-displayof window? ?option? ?-|-? ?char?\0\
741
+font configure fontname ?option? ?value option value ...?\0\
742
+font create ?fontname? ?option value ...?\0\
743
+font delete fontname ?fontname ...?\0\
744
+font families ?-displayof window?\0\
745
+font measure font ?-displayof window? text\0\
746
+font metrics font ?-displayof window? ?option?\0\
747
+font names\0\
748
+font: actual configure create delete families measure metrics names\0\
749
+for start test next body\0\
750
+foreach varname list body\0\
751
+format formatString ?arg arg ...?\0\
752
+frame pathName ?options?\0\
753
+generator define name params body\0\
754
+gets channelId ?varName?\0\
755
+glob ?switches? pattern ?pattern ...?\0\
756
+global varname ?varname ...?\0\
757
+grab current ?window?\0\
758
+grab release window\0\
759
+grab set ?-global? window\0\
760
+grab status window\0\
761
+grab: current release set status\0\
762
+graphName option ?arg arg ...?\0\
763
+struct::graph::op::toAdjacencyMatrix g\0\
764
+grid anchor master ?anchor?\0\
765
+grid bbox master ?column row? ?column2 row2?\0\
766
+grid columnconfigure master index ?-option value...?\0\
767
+grid configure slave ?slave ...? ?options?\0\
768
+grid forget slave ?slave ...?\0\
769
+grid info slave\0\
770
+grid location master x y\0\
771
+grid propagate master ?boolean?\0\
772
+grid rowconfigure master index ?-option value...?\0\
773
+grid remove slave ?slave ...?\0\
774
+grid size master\0\
775
+grid slaves master ?-option value?\0\
776
+grid: anchor bbox columnconfigure configure forget info location propagate rowconfigure remove size slaves\0\
777
+history add command ?exec?\0\
778
+history change newValue ?event?\0\
779
+history clear\0\
780
+history event ?event?\0\
781
+history info ?count?\0\
782
+history keep ?count?\0\
783
+history nextid\0\
784
+history redo ?event?\0\
785
+history: add change clear event info keep nextid redo\0\
786
+huddle create key value ?key value ...?\0\
787
+huddle list ?value value ...?\0\
788
+huddle number number\0\
789
+huddle string string\0\
790
+huddle boolean expression to evaluate as true or false\0\
791
+huddle true\0\
792
+huddle false\0\
793
+huddle null\0\
794
+huddle get object key ?key ...?\0\
795
+huddle gets object key ?key ...?\0\
796
+huddle set objectVar key ?key ...? value\0\
797
+huddle remove object key ?key ...?\0\
798
+huddle combine object1 object2 ?object3 ...?\0\
799
+huddle equal object1 object2\0\
800
+huddle append objectVar key value ?key value ...?\0\
801
+huddle keys object\0\
802
+huddle llength object\0\
803
+huddle type object ?key key...?\0\
804
+huddle strip object\0\
805
+huddle jsondump object ?offset? ?newline? ?begin_offset?\0\
806
+huddle compile spec data\0\
807
+huddle isHuddle object\0\
808
+huddle checkHuddle object\0\
809
+huddle to_node object ?tag?\0\
810
+huddle wrap tag src\0\
811
+huddle call tag command args\0\
812
+huddle addType callback\0\
813
+huddle: create list number string boolean true false null get gets set remove combine equal append keys llength type strip jsondump compile isHuddle checkHuddle to_node wrap call addType\0\
814
+valtype::iban validate value\0\
815
+if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else? ?bodyN?\0\
816
+image create type ?name? ?option value ...?\0\
817
+image delete ?name name ...?\0\
818
+image height name\0\
819
+image inuse name\0\
820
+image names\0\
821
+image type name\0\
822
+image types\0\
823
+image width name\0\
824
+image: create delete height inuse names type types width\0\
825
+valtype::imei validate value\0\
826
+term::interact::menu object dict ?options...?\0\
827
+incr varName ?increment?\0\
828
+info args procname\0\
829
+info body procname\0\
830
+info cmdcount\0\
831
+info commands ?pattern?\0\
832
+info complete command\0\
833
+info default procname arg varname\0\
834
+info exists varName\0\
835
+info frame ?number?\0\
836
+info functions ?pattern?\0\
837
+info globals ?pattern?\0\
838
+info hostname\0\
839
+info level ?number?\0\
840
+info library\0\
841
+info loaded ?interp?\0\
842
+info locals ?pattern?\0\
843
+info nameofexecutable\0\
844
+info patchlevel\0\
845
+info procs ?pattern?\0\
846
+info script ?filename?\0\
847
+info sharedlibextension\0\
848
+info tclversion\0\
849
+info vars ?pattern?\0\
850
+info: args body cmdcount commands complete default exists frame functions globals hostname level library loaded locals nameofexecutable patchlevel procs script sharedlibextension tclversion vars\0\
851
+term::interact::pager object text ?options...?\0\
852
+valtype::isbn validate value\0\
853
+join list ?joinString?\0\
854
+label pathName ?options?\0\
855
+labelframe pathName ?options?\0\
856
+lappend varName ?value value value ...?\0\
857
+lassign list varName ?varName ...?\0\
858
+auto_execok cmd\0\
859
+lindex list ?index...?\0\
860
+linsert list index element ?element element ...?\0\
861
+list ?arg arg ...?\0\
862
+listbox pathName ?options?\0\
863
+llength list\0\
864
+load fileName\0\
865
+logger::init service\0\
866
+lower window ?belowThis?\0\
867
+lrange list first last\0\
868
+lrepeat number element1 ?element2 element3 ...?\0\
869
+lreplace list first last ?element element ...?\0\
870
+lreverse list\0\
871
+lsearch ?options? list pattern\0\
872
+lset varName ?index...? newValue\0\
873
+lsort ?options? list\0\
874
+valtype::luhn validate value\0\
875
+valtype::luhn5 validate value\0\
876
+machineparameters create objectname ?options...?\0\
877
+matrixName option ?arg arg ...?\0\
878
+memory active file\0\
879
+memory break_on_malloc count\0\
880
+memory info\0\
881
+memory init [on|off]\0\
882
+memory objs file\0\
883
+memory onexit file\0\
884
+memory tag string\0\
885
+memory trace [on|off]\0\
886
+memory trace_on_at_malloc count\0\
887
+memory validate [on|off]\0\
888
+memory: active break_on_malloc info init objs onexit tag trace trace_on_at_malloc validate\0\
889
+menu pathName ?options?\0\
890
+menubutton pathName ?options?\0\
891
+message pathName ?options?\0\
892
+mymethod method ?arg...?\0\
893
+math::numtheory::isprime N ?option value ...?\0\
894
+oo::meta::info\0\
895
+mymethod method ?arg...?\0\
896
+open fileName ?access ?permissions??\0\
897
+option add pattern value ?priority?\0\
898
+pack configure slave ?slave ...? ?options?\0\
899
+pack forget slave ?slave ...?\0\
900
+pack info slave\0\
901
+pack propagate master ?boolean?\0\
902
+pack slaves master\0\
903
+pack: configure forget info propagate slaves\0\
904
+package forget ?package package ...?\0\
905
+package ifneeded package version ?script?\0\
906
+package names\0\
907
+package present ?-exact? package ?requirement...?\0\
908
+package provide package ?version?\0\
909
+package require package ?requirement...?\0\
910
+package unknown ?command?\0\
911
+package vcompare version1 version2\0\
912
+package versions package\0\
913
+package vsatisfies version requirement...\0\
914
+package prefer ?latest|stable?\0\
915
+package: forget ifneeded names present provide require unknown vcompare versions vsatisfies prefer\0\
916
+pack after sibling window options ?window options ...?\0\
917
+panedwindow pathName ?options?\0\
918
+auto_execok cmd\0\
919
+image create photo ?name? ?options?\0\
920
+pid ?fileId?\0\
921
+place configure window ?option? ?value option value ...?\0\
922
+place forget window\0\
923
+place info window\0\
924
+place slaves window\0\
925
+place: configure forget info slaves\0\
926
+package require platform ?1.0.4?\0\
927
+package require platform::shell ?1.1.4?\0\
928
+CPUTS varname body ?body...?\0\
929
+proc name args body\0\
930
+pt generate resultformat ?options...? resultfile inputformat inputfile\0\
931
+puts ?-nonewline? ?channelId? string\0\
932
+pwd\0\
933
+radiobutton pathName ?options?\0\
934
+raise window ?aboveThis?\0\
935
+read ?-nonewline? channelId\0\
936
+transfer::receiver object ?options...?\0\
937
+record define recordName recordMembers ?instanceName1 instanceName2 ...?\0\
938
+record show record\0\
939
+record exists record recordName\0\
940
+record delete record recordName\0\
941
+record: define show exists delete\0\
942
+cmdPrefix option ?arg arg ...?\0\
943
+regexp ?switches? exp string ?matchVar? ?subMatchVar subMatchVar ...?\0\
944
+registry broadcast keyName ?-timeout milliseconds?\0\
945
+registry delete keyName ?valueName?\0\
946
+registry get keyName valueName\0\
947
+registry keys keyName ?pattern?\0\
948
+registry set keyName ?valueName data ?type??\0\
949
+registry type keyName valueName\0\
950
+registry values keyName ?pattern?\0\
951
+registry: broadcast delete get keys set type values\0\
952
+regsub ?switches? exp string subSpec ?varName?\0\
953
+rename oldName newName\0\
954
+scale pathName ?options?\0\
955
+scan string format ?varName varName ...?\0\
956
+scrollbar pathName ?options?\0\
957
+seek channelId offset ?origin?\0\
958
+selection clear ?-displayof window? ?-selection selection?\0\
959
+selection get ?-displayof window? ?-selection selection? ?-type type?\0\
960
+selection handle ?-selection s? ?-type t? ?-format f? window command\0\
961
+selection own ?-displayof window? ?-selection selection?\0\
962
+selection: clear get handle own\0\
963
+send ?options? app cmd ?arg arg ...?\0\
964
+set varName ?value?\0\
965
+skiplistName option ?arg arg ...?\0\
966
+socket ?options? host port\0\
967
+source fileName\0\
968
+spinbox pathName ?options?\0\
969
+split string ?splitChars?\0\
970
+string compare ?-nocase? ?-length int? string1 string2\0\
971
+string equal ?-nocase? ?-length int? string1 string2\0\
972
+string first needleString haystackString ?startIndex?\0\
973
+string index string charIndex\0\
974
+string is class ?-strict? ?-failindex varname? string\0\
975
+string last needleString haystackString ?lastIndex?\0\
976
+string length string\0\
977
+string map ?-nocase? mapping string\0\
978
+string match ?-nocase? pattern string\0\
979
+string range string first last\0\
980
+string repeat string count\0\
981
+string replace string first last ?newstring?\0\
982
+string reverse string\0\
983
+string tolower string ?first? ?last?\0\
984
+string totitle string ?first? ?last?\0\
985
+string toupper string ?first? ?last?\0\
986
+string trim string ?chars?\0\
987
+string trimleft string ?chars?\0\
988
+string trimright string ?chars?\0\
989
+string bytelength string\0\
990
+string wordend string charIndex\0\
991
+string wordstart string charIndex\0\
992
+string: compare equal first index is last length map match range repeat replace reverse tolower totitle toupper trim trimleft trimright bytelength wordend wordstart\0\
993
+subst ?-nobackslashes? ?-nocommands? ?-novariables? string\0\
994
+switch ?options? string pattern body ?pattern body ...?\0\
995
+<switched> complete this\0\
996
+math::calculus::symdiff::symdiff expression variable\0\
997
+tell channelId\0\
998
+text pathName ?options?\0\
999
+time script ?count?\0\
1000
+tk appname ?newName?\0\
1001
+tk caret window ?-x x? ?-y y? ?-height height?\0\
1002
+tk scaling ?-displayof window? ?number?\0\
1003
+tk inactive ?-displayof window? ?reset?\0\
1004
+tk useinputmethods ?-displayof window? ?boolean?\0\
1005
+tk windowingsystem\0\
1006
+tk: appname caret scaling inactive useinputmethods windowingsystem\0\
1007
+tkerror message\0\
1008
+tkwait variable name\0\
1009
+toplevel pathName ?options?\0\
1010
+transfer::copy::queue objectName outchannel ?options...?\0\
1011
+trace add type name ops ?args?\0\
1012
+trace remove type name opList commandPrefix\0\
1013
+trace info type name\0\
1014
+trace variable name ops command\0\
1015
+trace vdelete name ops command\0\
1016
+trace vinfo name\0\
1017
+trace: add remove info variable vdelete vinfo\0\
1018
+transfer::transmitter objectName ?options...?\0\
1019
+treectrl pathName ?options?\0\
1020
+treeql objectname -tree tree ?-query query? ?-nodes nodes? ?args...?\0\
1021
+ttk::button pathName ?options?\0\
1022
+ttk::checkbutton pathName ?options?\0\
1023
+ttk::combobox pathName ?options?\0\
1024
+ttk::entry pathName ?options?\0\
1025
+ttk::frame pathName ?options?\0\
1026
+ttk::label pathName ?options?\0\
1027
+ttk::labelframe pathName ?options?\0\
1028
+ttk::menubutton pathName ?options?\0\
1029
+ttk::notebook pathname ?options...?\0\
1030
+ttk::panedwindow pathname ?options?\0\
1031
+ttk::progressbar pathName ?options?\0\
1032
+ttk::radiobutton pathName ?options?\0\
1033
+ttk::scale pathName ?options...?\0\
1034
+ttk::scrollbar pathName ?options...?\0\
1035
+ttk::separator pathName ?options?\0\
1036
+ttk::sizegrip pathName ?options?\0\
1037
+ttk::spinbox pathName ?options?\0\
1038
+ttk::style configure style ?-option ?value option value...? ?\0\
1039
+ttk::style map style ?-option { statespec value... }?\0\
1040
+ttk::style lookup style -option ?state ?default??\0\
1041
+ttk::style layout style ?layoutSpec?\0\
1042
+ttk::style element create elementName type ?args...?\0\
1043
+ttk::style theme create themeName ?-parent basedon? ?-settings script... ?\0\
1044
+ttk::style: configure map lookup layout element theme\0\
1045
+ttk::treeview pathname ?options?\0\
1046
+udp_open ?port? ?reuse? ?ipv6?\0\
1047
+unknown cmdName ?arg arg ...?\0\
1048
+unload ?switches? fileName\0\
1049
+unset ?-nocomplain? ?--? ?name name name ...?\0\
1050
+update ?idletasks?\0\
1051
+uplevel ?level? arg ?arg ...?\0\
1052
+upvar ?level? otherVar myVar ?otherVar myVar ...?\0\
1053
+uri::setQuirkOption option ?value?\0\
1054
+uri::urn::quote url\0\
1055
+valtype::usnpi validate value\0\
1056
+variable ?name value...? name ?value?\0\
1057
+valtype::verhoeff validate value\0\
1058
+vwait varName\0\
1059
+while test body\0\
1060
+winfo atom ?-displayof window? name\0\
1061
+winfo atomname ?-displayof window? id\0\
1062
+winfo cells window\0\
1063
+winfo children window\0\
1064
+winfo class window\0\
1065
+winfo colormapfull window\0\
1066
+winfo containing ?-displayof window? rootX rootY\0\
1067
+winfo depth window\0\
1068
+winfo exists window\0\
1069
+winfo fpixels window number\0\
1070
+winfo geometry window\0\
1071
+winfo height window\0\
1072
+winfo id window\0\
1073
+winfo interps ?-displayof window?\0\
1074
+winfo ismapped window\0\
1075
+winfo manager window\0\
1076
+winfo name window\0\
1077
+winfo parent window\0\
1078
+winfo pathname ?-displayof window? id\0\
1079
+winfo pixels window number\0\
1080
+winfo pointerx window\0\
1081
+winfo pointerxy window\0\
1082
+winfo pointery window\0\
1083
+winfo reqheight window\0\
1084
+winfo reqwidth window\0\
1085
+winfo rgb window color\0\
1086
+winfo rootx window\0\
1087
+winfo rooty window\0\
1088
+winfo screen window\0\
1089
+winfo screencells window\0\
1090
+winfo screendepth window\0\
1091
+winfo screenheight window\0\
1092
+winfo screenmmheight window\0\
1093
+winfo screenmmwidth window\0\
1094
+winfo screenvisual window\0\
1095
+winfo screenwidth window\0\
1096
+winfo server window\0\
1097
+winfo toplevel window\0\
1098
+winfo viewable window\0\
1099
+winfo visual window\0\
1100
+winfo visualid window\0\
1101
+winfo visualsavailable window ?includeids?\0\
1102
+winfo vrootheight window\0\
1103
+winfo vrootwidth window\0\
1104
+winfo vrootx window\0\
1105
+winfo vrooty window\0\
1106
+winfo width window\0\
1107
+winfo x window\0\
1108
+winfo y window\0\
1109
+winfo: atom atomname cells children class colormapfull containing depth exists fpixels geometry height id interps ismapped manager name parent pathname pixels pointerx pointerxy pointery reqheight reqwidth rgb rootx rooty screen screencells screendepth screenheight screenmmheight screenmmwidth screenvisual screenwidth server toplevel viewable visual visualid visualsavailable vrootheight vrootwidth vrootx vrooty width x y\0\
1110
+wm aspect window ?minNumer minDenom maxNumer maxDenom?\0\
1111
+wm attributes window\0\
1112
+wm client window ?name?\0\
1113
+wm colormapwindows window ?windowList?\0\
1114
+wm command window ?value?\0\
1115
+wm deiconify window\0\
1116
+wm focusmodel window ?active|passive?\0\
1117
+wm forget window\0\
1118
+wm frame window\0\
1119
+wm geometry window ?newGeometry?\0\
1120
+wm grid window ?baseWidth baseHeight widthInc heightInc?\0\
1121
+wm group window ?pathName?\0\
1122
+wm iconbitmap window ?bitmap?\0\
1123
+wm iconify window\0\
1124
+wm iconmask window ?bitmap?\0\
1125
+wm iconname window ?newName?\0\
1126
+wm iconphoto window ?-default? image1 ?image2 ...?\0\
1127
+wm iconposition window ?x y?\0\
1128
+wm iconwindow window ?pathName?\0\
1129
+wm manage widget\0\
1130
+wm maxsize window ?width height?\0\
1131
+wm minsize window ?width height?\0\
1132
+wm overrideredirect window ?boolean?\0\
1133
+wm positionfrom window ?who?\0\
1134
+wm protocol window ?name? ?command?\0\
1135
+wm resizable window ?width height?\0\
1136
+wm sizefrom window ?who?\0\
1137
+wm stackorder window ?isabove|isbelow window?\0\
1138
+wm state window ?newstate?\0\
1139
+wm title window ?string?\0\
1140
+wm transient window ?master?\0\
1141
+wm withdraw window\0\
1142
+wm: aspect attributes client colormapwindows command deiconify focusmodel forget frame geometry grid group iconbitmap iconify iconmask iconname iconphoto iconposition iconwindow manage maxsize minsize overrideredirect positionfrom protocol resizable sizefrom stackorder state title transient withdraw\0\
1143
+xsxp::parse xml\0\
1144
+"};
0 1145
new file mode 100644
... ...
@@ -0,0 +1,3 @@
1
+extern const char *index_prototypes_tcl;
2
+extern const char *values_prototypes_tcl;
3
+#define SIZE_PROTOTYPES_TCL 570
0 4
new file mode 100644
... ...
@@ -0,0 +1,570 @@
1
+after cancel|after cancel id
2
+after idle|after idle script ?script script ...?
3
+after info|after info ?id?
4
+after|after: cancel idle info
5
+append|append varName ?value value value ...?
6
+apply|apply func ?arg1 arg2 ...?
7
+array anymore|array anymore arrayName searchId
8
+array donesearch|array donesearch arrayName searchId
9
+array exists|array exists arrayName
10
+array get|array get arrayName ?pattern?
11
+array names|array names arrayName ?mode? ?pattern?
12
+array nextelement|array nextelement arrayName searchId
13
+array set|array set arrayName list
14
+array size|array size arrayName
15
+array startsearch|array startsearch arrayName
16
+array statistics|array statistics arrayName
17
+array unset|array unset arrayName ?pattern?
18
+array|array: anymore donesearch exists get names nextelement set size startsearch statistics unset
19
+bell|bell ?-displayof window? ?-nice?
20
+bgerror|bgerror message
21
+bigfloat|fromstr number ?trailingZeros?
22
+binary|binary format formatString ?arg arg ...?
23
+bind|bind tag ?sequence? ?+??script?
24
+bindtags|bindtags window ?tagList?
25
+bitmap|image create bitmap ?name? ?options?
26
+break|break
27
+button|button pathName ?options?
28
+canvas|canvas pathName ?options?
29
+case|case string ?in? patList body ?patList body ...?
30
+catch|catch script ?resultVarName? ?optionsVarName?
31
+cd|cd ?dirName?
32
+chan blocked|chan blocked channelId
33
+chan close|chan close channelId
34
+chan configure|chan configure channelId ?optionName? ?value? ?optionName value?...
35
+chan copy|chan copy inputChan outputChan ?-size size? ?-command callback?
36
+chan create|chan create mode cmdPrefix
37
+chan eof|chan eof channelId
38
+chan event|chan event channelId event ?script?
39
+chan flush|chan flush channelId
40
+chan gets|chan gets channelId ?varName?
41
+chan names|chan names ?pattern?
42
+chan pending|chan pending mode channelId
43
+chan postevent|chan postevent channelId eventSpec
44
+chan puts|chan puts ?-nonewline? ?channelId? string
45
+chan read|chan read channelId ?numChars?
46
+chan seek|chan seek channelId offset ?origin?
47
+chan tell|chan tell channelId
48
+chan truncate|chan truncate channelId ?length?
49
+chan|chan: blocked close configure copy create eof event flush gets names pending postevent puts read seek tell truncate
50
+checkbutton|checkbutton pathName ?options?
51
+clipboard clear|clipboard clear ?-displayof window?
52
+clipboard append|clipboard append ?-displayof window? ?-format format? ?-type type? ?-|-? data
53
+clipboard get|clipboard get ?-displayof window? ?-type type?
54
+clipboard|clipboard: clear append get
55
+clock add|clock add timeVal ?count unit...? ?-option value?
56
+clock clicks|clock clicks ?-option?
57
+clock format|clock format timeVal ?-option value...?
58
+clock microseconds|clock microseconds
59
+clock milliseconds|clock milliseconds
60
+clock scan|clock scan inputString ?-option value...?
61
+clock seconds|clock seconds
62
+clock|clock: add clicks format microseconds milliseconds scan seconds
63
+close|close channelId
64
+concat|concat ?arg arg ...?
65
+connect|transfer::connect objectName ?options...?
66
+console eval|console eval script
67
+console hide|console hide
68
+console show|console show
69
+console title|console title ?string?
70
+console|console: eval hide show title
71
+continue|continue
72
+control|control::control command option ?arg arg ...?
73
+copyops|transfer::copy::do chan|string data outchannel ?options...?
74
+dde servername|dde servername ?-force? ?-handler proc? ?-|-? ?topic?
75
+dde execute|dde execute ?-async? service topic data
76
+dde poke|dde poke service topic item data
77
+dde request|dde request ?-binary? service topic item
78
+dde services|dde services service topic
79
+dde eval|dde eval ?-async? topic cmd ?arg arg ...?
80
+dde|dde: servername execute poke request services eval
81
+ddest|transfer::data::destination objectName ?options...?
82
+debug|debug.tag message ?level?
83
+destroy|destroy ?window window ...?
84
+dict append|dict append dictionaryVariable key ?string ...?
85
+dict create|dict create ?key value ...?
86
+dict exists|dict exists dictionaryValue key ?key ...?
87
+dict filter|dict filter dictionaryValue filterType arg ?arg ...?
88
+dict for|dict for {keyVar valueVar} dictionaryValue body
89
+dict get|dict get dictionaryValue ?key ...?
90
+dict incr|dict incr dictionaryVariable key ?increment?
91
+dict info|dict info dictionaryValue
92
+dict keys|dict keys dictionaryValue ?globPattern?
93
+dict lappend|dict lappend dictionaryVariable key ?value ...?
94
+dict merge|dict merge ?dictionaryValue ...?
95
+dict remove|dict remove dictionaryValue ?key ...?
96
+dict replace|dict replace dictionaryValue ?key value ...?
97
+dict set|dict set dictionaryVariable key ?key ...? value
98
+dict size|dict size dictionaryValue
99
+dict unset|dict unset dictionaryVariable key ?key ...?
100
+dict update|dict update dictionaryVariable key varName ?key varName ...? body
101
+dict values|dict values dictionaryValue ?globPattern?
102
+dict with|dict with dictionaryVariable ?key ...? body
103
+dict|dict: append create exists filter for get incr info keys lappend merge remove replace set size unset update values with
104
+dicttool|ladd varname args
105
+docstrip|docstrip::extract text terminals ?option value ...?
106
+dsource|transfer::data::source objectName ?options...?
107
+ean13|valtype::gs1::ean13 validate value
108
+encoding convertfrom|encoding convertfrom ?encoding? data
109
+encoding convertto|encoding convertto ?encoding? string
110
+encoding dirs|encoding dirs ?directoryList?
111
+encoding names|encoding names
112
+encoding system|encoding system ?encoding?
113
+encoding|encoding: convertfrom convertto dirs names system
114
+entry|entry pathName ?options?
115
+eof|eof channelId
116
+error|error message ?info? ?code?
117
+eval|eval arg ?arg ...?
118
+event add|event add <<virtual>> sequence ?sequence ...?
119
+event delete|event delete <<virtual>> ?sequence sequence ...?
120
+event generate|event generate window event ?option value option value ...?
121
+event info|event info ?<<virtual>>?
122
+event|event: add delete generate info
123
+exec|exec ?switches? arg ?arg ...?
124
+exit|exit ?returnCode?
125
+fblocked|fblocked channelId
126
+fconfigure|fconfigure channelId name value ?name value ...?
127
+fcopy|fcopy inchan outchan ?-size size? ?-command callback?
128
+file atime|file atime name ?time?
129
+file attributes|file attributes name
130
+file channels|file channels ?pattern?
131
+file copy|file copy ?-force? ?-|-? source target
132
+file copy ?-force? ?-|-? source ?source ...? targetDir
133
+file delete|file delete ?-force? ?-|-? pathname ?pathname ... ?
134
+file dirname|file dirname name
135
+file executable|file executable name
136
+file exists|file exists name
137
+file extension|file extension name
138
+file isdirectory|file isdirectory name
139
+file isfile|file isfile name
140
+file join|file join name ?name ...?
141
+file link|file link ?-linktype? linkName ?target?
142
+file lstat|file lstat name varName
143
+file mkdir|file mkdir dir ?dir ...?
144
+file mtime|file mtime name ?time?
145
+file nativename|file nativename name
146
+file normalize|file normalize name
147
+file owned|file owned name
148
+file pathtype|file pathtype name
149
+file readable|file readable name
150
+file readlink|file readlink name
151
+file rename|file rename ?-force? ?-|-? source target
152
+file rename ?-force? ?-|-? source ?source ...? targetDir
153
+file rootname|file rootname name
154
+file separator|file separator ?name?
155
+file size|file size name
156
+file split|file split name
157
+file stat|file stat name varName
158
+file system|file system name
159
+file tail|file tail name
160
+file type|file type name
161
+file volumes|file volumes
162
+file writable|file writable name
163
+file|file: atime attributes channels copy delete dirname executable exists extension isdirectory isfile join link lstat mkdir mtime nativename normalize owned pathtype readable readlink rename rootname separator size split stat system tail type volumes writable
164
+fileevent|fileevent channelId readable ?script?
165
+flush|flush channelId
166
+focus|focus
167
+font actual|font actual font ?-displayof window? ?option? ?-|-? ?char?
168
+font configure|font configure fontname ?option? ?value option value ...?
169
+font create|font create ?fontname? ?option value ...?
170
+font delete|font delete fontname ?fontname ...?
171
+font families|font families ?-displayof window?
172
+font measure|font measure font ?-displayof window? text
173
+font metrics|font metrics font ?-displayof window? ?option?
174
+font names|font names
175
+font|font: actual configure create delete families measure metrics names
176
+for|for start test next body
177
+foreach|foreach varname list body
178
+format|format formatString ?arg arg ...?
179
+frame|frame pathName ?options?
180
+generator|generator define name params body
181
+gets|gets channelId ?varName?
182
+glob|glob ?switches? pattern ?pattern ...?
183
+global|global varname ?varname ...?
184
+grab current|grab current ?window?
185
+grab release|grab release window
186
+grab set|grab set ?-global? window
187
+grab status|grab status window
188
+grab|grab: current release set status
189
+graph1|graphName option ?arg arg ...?
190
+graphops|struct::graph::op::toAdjacencyMatrix g
191
+grid anchor|grid anchor master ?anchor?
192
+grid bbox|grid bbox master ?column row? ?column2 row2?
193
+grid columnconfigure|grid columnconfigure master index ?-option value...?
194
+grid configure|grid configure slave ?slave ...? ?options?
195
+grid forget|grid forget slave ?slave ...?
196
+grid info|grid info slave
197
+grid location|grid location master x y
198
+grid propagate|grid propagate master ?boolean?
199
+grid rowconfigure|grid rowconfigure master index ?-option value...?
200
+grid remove|grid remove slave ?slave ...?
201
+grid size|grid size master
202
+grid slaves|grid slaves master ?-option value?
203
+grid|grid: anchor bbox columnconfigure configure forget info location propagate rowconfigure remove size slaves
204
+history add|history add command ?exec?
205
+history change|history change newValue ?event?
206
+history clear|history clear
207
+history event|history event ?event?
208
+history info|history info ?count?
209
+history keep|history keep ?count?
210
+history nextid|history nextid
211
+history redo|history redo ?event?
212
+history|history: add change clear event info keep nextid redo
213
+huddle create|huddle create key value ?key value ...?
214
+huddle list|huddle list ?value value ...?
215
+huddle number|huddle number number
216
+huddle string|huddle string string
217
+huddle boolean|huddle boolean expression to evaluate as true or false
218
+huddle true|huddle true
219
+huddle false|huddle false
220
+huddle null|huddle null
221
+huddle get|huddle get object key ?key ...?
222
+huddle gets|huddle gets object key ?key ...?
223
+huddle set|huddle set objectVar key ?key ...? value
224
+huddle remove|huddle remove object key ?key ...?
225
+huddle combine|huddle combine object1 object2 ?object3 ...?
226
+huddle equal|huddle equal object1 object2
227
+huddle append|huddle append objectVar key value ?key value ...?
228
+huddle keys|huddle keys object
229
+huddle llength|huddle llength object
230
+huddle type|huddle type object ?key key...?
231
+huddle strip|huddle strip object
232
+huddle jsondump|huddle jsondump object ?offset? ?newline? ?begin_offset?
233
+huddle compile|huddle compile spec data
234
+huddle isHuddle|huddle isHuddle object
235
+huddle checkHuddle|huddle checkHuddle object
236
+huddle to_node|huddle to_node object ?tag?
237
+huddle wrap|huddle wrap tag src
238
+huddle call|huddle call tag command args
239
+huddle addType|huddle addType callback
240
+huddle|huddle: create list number string boolean true false null get gets set remove combine equal append keys llength type strip jsondump compile isHuddle checkHuddle to_node wrap call addType
241
+iban|valtype::iban validate value
242
+if|if expr1 ?then? body1 elseif expr2 ?then? body2 elseif ... ?else? ?bodyN?
243
+image create|image create type ?name? ?option value ...?
244
+image delete|image delete ?name name ...?
245
+image height|image height name
246
+image inuse|image inuse name
247
+image names|image names
248
+image type|image type name
249
+image types|image types
250
+image width|image width name
251
+image|image: create delete height inuse names type types width
252
+imei|valtype::imei validate value
253
+imenu|term::interact::menu object dict ?options...?
254
+incr|incr varName ?increment?
255
+info args|info args procname
256
+info body|info body procname
257
+info cmdcount|info cmdcount
258
+info commands|info commands ?pattern?
259
+info complete|info complete command
260
+info default|info default procname arg varname
261
+info exists|info exists varName
262
+info frame|info frame ?number?
263
+info functions|info functions ?pattern?
264
+info globals|info globals ?pattern?
265
+info hostname|info hostname
266
+info level|info level ?number?
267
+info library|info library
268
+info loaded|info loaded ?interp?
269
+info locals|info locals ?pattern?
270
+info nameofexecutable|info nameofexecutable
271
+info patchlevel|info patchlevel
272
+info procs|info procs ?pattern?
273
+info script|info script ?filename?
274
+info sharedlibextension|info sharedlibextension
275
+info tclversion|info tclversion
276
+info vars|info vars ?pattern?
277
+info|info: args body cmdcount commands complete default exists frame functions globals hostname level library loaded locals nameofexecutable patchlevel procs script sharedlibextension tclversion vars
278
+ipager|term::interact::pager object text ?options...?
279
+isbn|valtype::isbn validate value
280
+join|join list ?joinString?
281
+label|label pathName ?options?
282
+labelframe|labelframe pathName ?options?
283
+lappend|lappend varName ?value value value ...?
284
+lassign|lassign list varName ?varName ...?
285
+library|auto_execok cmd
286
+lindex|lindex list ?index...?
287
+linsert|linsert list index element ?element element ...?
288
+list|list ?arg arg ...?
289
+listbox|listbox pathName ?options?
290
+llength|llength list
291
+load|load fileName
292
+logger|logger::init service
293
+lower|lower window ?belowThis?
294
+lrange|lrange list first last
295
+lrepeat|lrepeat number element1 ?element2 element3 ...?
296
+lreplace|lreplace list first last ?element element ...?
297
+lreverse|lreverse list
298
+lsearch|lsearch ?options? list pattern
299
+lset|lset varName ?index...? newValue
300
+lsort|lsort ?options? list
301
+luhn|valtype::luhn validate value
302
+luhn5|valtype::luhn5 validate value
303
+machineparameters|machineparameters create objectname ?options...?
304
+matrix1|matrixName option ?arg arg ...?
305
+memory active|memory active file
306
+memory break_on_malloc|memory break_on_malloc count
307
+memory info|memory info
308
+memory init|memory init [on|off]
309
+memory objs|memory objs file
310
+memory onexit|memory onexit file
311
+memory tag|memory tag string
312
+memory trace|memory trace [on|off]
313
+memory trace_on_at_malloc|memory trace_on_at_malloc count
314
+memory validate|memory validate [on|off]
315
+memory|memory: active break_on_malloc info init objs onexit tag trace trace_on_at_malloc validate
316
+menu|menu pathName ?options?
317
+menubutton|menubutton pathName ?options?
318
+message|message pathName ?options?
319
+meta|mymethod method ?arg...?
320
+numtheory|math::numtheory::isprime N ?option value ...?
321
+oometa|oo::meta::info
322
+ooutil|mymethod method ?arg...?
323
+open|open fileName ?access ?permissions??
324
+option|option add pattern value ?priority?
325
+pack configure|pack configure slave ?slave ...? ?options?
326
+pack forget|pack forget slave ?slave ...?
327
+pack info|pack info slave
328
+pack propagate|pack propagate master ?boolean?
329
+pack slaves|pack slaves master
330
+pack|pack: configure forget info propagate slaves
331
+package forget|package forget ?package package ...?
332
+package ifneeded|package ifneeded package version ?script?
333
+package names|package names
334
+package present|package present ?-exact? package ?requirement...?
335
+package provide|package provide package ?version?
336
+package require|package require package ?requirement...?
337
+package unknown|package unknown ?command?
338
+package vcompare|package vcompare version1 version2
339
+package versions|package versions package
340
+package vsatisfies|package vsatisfies version requirement...
341
+package prefer|package prefer ?latest|stable?
342
+package|package: forget ifneeded names present provide require unknown vcompare versions vsatisfies prefer
343
+pack-old|pack after sibling window options ?window options ...?
344
+panedwindow|panedwindow pathName ?options?
345
+parray|auto_execok cmd
346
+photo|image create photo ?name? ?options?
347
+pid|pid ?fileId?
348
+place configure|place configure window ?option? ?value option value ...?
349
+place forget|place forget window
350
+place info|place info window
351
+place slaves|place slaves window
352
+place|place: configure forget info slaves
353
+platform|package require platform ?1.0.4?
354
+platform::shell|package require platform::shell ?1.1.4?
355
+practcl|CPUTS varname body ?body...?
356
+proc|proc name args body
357
+pt|pt generate resultformat ?options...? resultfile inputformat inputfile
358
+puts|puts ?-nonewline? ?channelId? string
359
+pwd|pwd
360
+radiobutton|radiobutton pathName ?options?
361
+raise|raise window ?aboveThis?
362
+read|read ?-nonewline? channelId
363
+receiver|transfer::receiver object ?options...?
364
+record define|record define recordName recordMembers ?instanceName1 instanceName2 ...?
365
+record show|record show record
366
+record exists|record exists record recordName
367
+record delete|record delete record recordName
368
+record|record: define show exists delete
369
+refchan|cmdPrefix option ?arg arg ...?
370
+regexp|regexp ?switches? exp string ?matchVar? ?subMatchVar subMatchVar ...?
371
+registry broadcast|registry broadcast keyName ?-timeout milliseconds?
372
+registry delete|registry delete keyName ?valueName?
373
+registry get|registry get keyName valueName
374
+registry keys|registry keys keyName ?pattern?
375
+registry set|registry set keyName ?valueName data ?type??
376
+registry type|registry type keyName valueName
377
+registry values|registry values keyName ?pattern?
378
+registry|registry: broadcast delete get keys set type values
379
+regsub|regsub ?switches? exp string subSpec ?varName?
380
+rename|rename oldName newName
381
+scale|scale pathName ?options?
382
+scan|scan string format ?varName varName ...?
383
+scrollbar|scrollbar pathName ?options?
384
+seek|seek channelId offset ?origin?
385
+selection clear|selection clear ?-displayof window? ?-selection selection?
386
+selection get|selection get ?-displayof window? ?-selection selection? ?-type type?
387
+selection handle|selection handle ?-selection s? ?-type t? ?-format f? window command
388
+selection own|selection own ?-displayof window? ?-selection selection?
389
+selection|selection: clear get handle own
390
+send|send ?options? app cmd ?arg arg ...?
391
+set|set varName ?value?
392
+skiplist|skiplistName option ?arg arg ...?
393
+socket|socket ?options? host port
394
+source|source fileName
395
+spinbox|spinbox pathName ?options?
396
+split|split string ?splitChars?
397
+string compare|string compare ?-nocase? ?-length int? string1 string2
398
+string equal|string equal ?-nocase? ?-length int? string1 string2
399
+string first|string first needleString haystackString ?startIndex?
400
+string index|string index string charIndex
401
+string is|string is class ?-strict? ?-failindex varname? string
402
+string last|string last needleString haystackString ?lastIndex?
403
+string length|string length string
404
+string map|string map ?-nocase? mapping string
405
+string match|string match ?-nocase? pattern string
406
+string range|string range string first last
407
+string repeat|string repeat string count
408
+string replace|string replace string first last ?newstring?
409
+string reverse|string reverse string
410
+string tolower|string tolower string ?first? ?last?
411
+string totitle|string totitle string ?first? ?last?
412
+string toupper|string toupper string ?first? ?last?
413
+string trim|string trim string ?chars?
414
+string trimleft|string trimleft string ?chars?
415
+string trimright|string trimright string ?chars?
416
+string bytelength|string bytelength string
417
+string wordend|string wordend string charIndex
418
+string wordstart|string wordstart string charIndex
419
+string|string: compare equal first index is last length map match range repeat replace reverse tolower totitle toupper trim trimleft trimright bytelength wordend wordstart
420
+subst|subst ?-nobackslashes? ?-nocommands? ?-novariables? string
421
+switch|switch ?options? string pattern body ?pattern body ...?
422
+switched|<switched> complete this
423
+symdiff|math::calculus::symdiff::symdiff expression variable
424
+tell|tell channelId
425
+text|text pathName ?options?
426
+time|time script ?count?
427
+tk appname|tk appname ?newName?
428
+tk caret|tk caret window ?-x x? ?-y y? ?-height height?
429
+tk scaling|tk scaling ?-displayof window? ?number?
430
+tk inactive|tk inactive ?-displayof window? ?reset?
431
+tk useinputmethods|tk useinputmethods ?-displayof window? ?boolean?
432
+tk windowingsystem|tk windowingsystem
433
+tk|tk: appname caret scaling inactive useinputmethods windowingsystem
434
+tkerror|tkerror message
435
+tkwait|tkwait variable name
436
+toplevel|toplevel pathName ?options?
437
+tqueue|transfer::copy::queue objectName outchannel ?options...?
438
+trace add|trace add type name ops ?args?
439
+trace remove|trace remove type name opList commandPrefix
440
+trace info|trace info type name
441
+trace variable|trace variable name ops command
442
+trace vdelete|trace vdelete name ops command
443
+trace vinfo|trace vinfo name
444
+trace|trace: add remove info variable vdelete vinfo
445
+transmitter|transfer::transmitter objectName ?options...?
446
+treectrl|treectrl pathName ?options?
447
+treeql|treeql objectname -tree tree ?-query query? ?-nodes nodes? ?args...?
448
+ttk::button|ttk::button pathName ?options?
449
+ttk::checkbutton|ttk::checkbutton pathName ?options?
450
+ttk::combobox|ttk::combobox pathName ?options?
451
+ttk::entry|ttk::entry pathName ?options?
452
+ttk::frame|ttk::frame pathName ?options?
453
+ttk::label|ttk::label pathName ?options?
454
+ttk::labelframe|ttk::labelframe pathName ?options?
455
+ttk::menubutton|ttk::menubutton pathName ?options?
456
+ttk::notebook|ttk::notebook pathname ?options...?
457
+ttk::panedwindow|ttk::panedwindow pathname ?options?
458
+ttk::progressbar|ttk::progressbar pathName ?options?
459
+ttk::radiobutton|ttk::radiobutton pathName ?options?
460
+ttk::scale|ttk::scale pathName ?options...?
461
+ttk::scrollbar|ttk::scrollbar pathName ?options...?
462
+ttk::separator|ttk::separator pathName ?options?
463
+ttk::sizegrip|ttk::sizegrip pathName ?options?
464
+ttk::spinbox|ttk::spinbox pathName ?options?
465
+ttk::style configure|ttk::style configure style ?-option ?value option value...? ?
466
+ttk::style map|ttk::style map style ?-option { statespec value... }?
467
+ttk::style lookup|ttk::style lookup style -option ?state ?default??
468
+ttk::style layout|ttk::style layout style ?layoutSpec?
469
+ttk::style element|ttk::style element create elementName type ?args...?
470
+ttk::style theme|ttk::style theme create themeName ?-parent basedon? ?-settings script... ?
471
+ttk::style|ttk::style: configure map lookup layout element theme
472
+ttk::treeview|ttk::treeview pathname ?options?
473
+udp|udp_open ?port? ?reuse? ?ipv6?
474
+unknown|unknown cmdName ?arg arg ...?
475
+unload|unload ?switches? fileName
476
+unset|unset ?-nocomplain? ?--? ?name name name ...?
477
+update|update ?idletasks?
478
+uplevel|uplevel ?level? arg ?arg ...?
479
+upvar|upvar ?level? otherVar myVar ?otherVar myVar ...?
480
+uri|uri::setQuirkOption option ?value?
481
+urn-scheme|uri::urn::quote url
482
+usnpi|valtype::usnpi validate value
483
+variable|variable ?name value...? name ?value?
484
+verhoeff|valtype::verhoeff validate value
485
+vwait|vwait varName
486
+while|while test body
487
+winfo atom|winfo atom ?-displayof window? name
488
+winfo atomname|winfo atomname ?-displayof window? id
489
+winfo cells|winfo cells window
490
+winfo children|winfo children window
491
+winfo class|winfo class window
492
+winfo colormapfull|winfo colormapfull window
493
+winfo containing|winfo containing ?-displayof window? rootX rootY
494
+winfo depth|winfo depth window
495
+winfo exists|winfo exists window
496
+winfo fpixels|winfo fpixels window number
497
+winfo geometry|winfo geometry window
498
+winfo height|winfo height window
499
+winfo id|winfo id window
500
+winfo interps|winfo interps ?-displayof window?
501
+winfo ismapped|winfo ismapped window
502
+winfo manager|winfo manager window
503
+winfo name|winfo name window
504
+winfo parent|winfo parent window
505
+winfo pathname|winfo pathname ?-displayof window? id
506
+winfo pixels|winfo pixels window number
507
+winfo pointerx|winfo pointerx window
508
+winfo pointerxy|winfo pointerxy window
509
+winfo pointery|winfo pointery window
510
+winfo reqheight|winfo reqheight window
511
+winfo reqwidth|winfo reqwidth window
512
+winfo rgb|winfo rgb window color
513
+winfo rootx|winfo rootx window
514
+winfo rooty|winfo rooty window
515
+winfo screen|winfo screen window
516
+winfo screencells|winfo screencells window
517
+winfo screendepth|winfo screendepth window
518
+winfo screenheight|winfo screenheight window
519
+winfo screenmmheight|winfo screenmmheight window
520
+winfo screenmmwidth|winfo screenmmwidth window
521
+winfo screenvisual|winfo screenvisual window
522
+winfo screenwidth|winfo screenwidth window
523
+winfo server|winfo server window
524
+winfo toplevel|winfo toplevel window
525
+winfo viewable|winfo viewable window
526
+winfo visual|winfo visual window
527
+winfo visualid|winfo visualid window
528
+winfo visualsavailable|winfo visualsavailable window ?includeids?
529
+winfo vrootheight|winfo vrootheight window
530
+winfo vrootwidth|winfo vrootwidth window
531
+winfo vrootx|winfo vrootx window
532
+winfo vrooty|winfo vrooty window
533
+winfo width|winfo width window
534
+winfo x|winfo x window
535
+winfo y|winfo y window
536
+winfo|winfo: atom atomname cells children class colormapfull containing depth exists fpixels geometry height id interps ismapped manager name parent pathname pixels pointerx pointerxy pointery reqheight reqwidth rgb rootx rooty screen screencells screendepth screenheight screenmmheight screenmmwidth screenvisual screenwidth server toplevel viewable visual visualid visualsavailable vrootheight vrootwidth vrootx vrooty width x y
537
+wm aspect|wm aspect window ?minNumer minDenom maxNumer maxDenom?
538
+wm attributes|wm attributes window
539
+wm client|wm client window ?name?
540
+wm colormapwindows|wm colormapwindows window ?windowList?
541
+wm command|wm command window ?value?
542
+wm deiconify|wm deiconify window
543
+wm focusmodel|wm focusmodel window ?active|passive?
544
+wm forget|wm forget window
545
+wm frame|wm frame window
546
+wm geometry|wm geometry window ?newGeometry?
547
+wm grid|wm grid window ?baseWidth baseHeight widthInc heightInc?
548
+wm group|wm group window ?pathName?
549
+wm iconbitmap|wm iconbitmap window ?bitmap?
550
+wm iconify|wm iconify window
551
+wm iconmask|wm iconmask window ?bitmap?
552
+wm iconname|wm iconname window ?newName?
553
+wm iconphoto|wm iconphoto window ?-default? image1 ?image2 ...?
554
+wm iconposition|wm iconposition window ?x y?
555
+wm iconwindow|wm iconwindow window ?pathName?
556
+wm manage|wm manage widget
557
+wm maxsize|wm maxsize window ?width height?
558
+wm minsize|wm minsize window ?width height?
559
+wm overrideredirect|wm overrideredirect window ?boolean?
560
+wm positionfrom|wm positionfrom window ?who?
561
+wm protocol|wm protocol window ?name? ?command?
562
+wm resizable|wm resizable window ?width height?
563
+wm sizefrom|wm sizefrom window ?who?
564
+wm stackorder|wm stackorder window ?isabove|isbelow window?
565
+wm state|wm state window ?newstate?
566
+wm title|wm title window ?string?
567
+wm transient|wm transient window ?master?
568
+wm withdraw|wm withdraw window
569
+wm|wm: aspect attributes client colormapwindows command deiconify focusmodel forget frame geometry grid group iconbitmap iconify iconmask iconname iconphoto iconposition iconwindow manage maxsize minsize overrideredirect positionfrom protocol resizable sizefrom stackorder state title transient withdraw
570
+xsxp|xsxp::parse xml
0 571
new file mode 100755
... ...
@@ -0,0 +1,22 @@
1
+#!/bin/bash
2
+rm -f prototypestcl.txt
3
+ls -1 /usr/share/man/man3/ | grep "\.3tcl\.gz\$\|\.3tk\.gz\$" | grep -v "_" | grep -v "[A-Z]" | while read l ; do
4
+	f=/usr/share/man/man3/$l
5
+	if zcat $f | grep '^\\fB::' >/dev/null ; then 
6
+		continue
7
+	fi
8
+	n=$(echo $l | cut -d '.' -f 1)
9
+	echo $n >&2
10
+	nopts=$(zcat $f | grep -A1 "^\.TP" | grep '^\\fB' | grep "^...$n " | cut -d ' ' -f 2 | tr '\\' ' ' | cut -d ' '  -f 1 | grep . | uniq | wc -l | tr -cd 0-9)
11
+	if [ "m$nopts" != "m0" ] ; then
12
+		for j in $(zcat $f | grep -A1 "^\.TP" | grep '^\\fB' | grep "^...$n " | cut -d ' ' -f 2 | tr '\\' ' ' | cut -d ' '  -f 1 | grep . | uniq ) ; do
13
+			echo ...$n $j >&2
14
+			echo "$n $j|$(zcat $f | grep -A1 '^\.TP' | grep '^\\fB' | grep ^...$n\ $j | sed 's/\\f[A-Z]//g')"
15
+		done
16
+		echo ...$n >&2
17
+		echo "$n|$n: $(zcat $f | grep -A1 '^\.TP' | grep '^\\fB' | grep ^...$n\  | cut -d ' ' -f 2 | tr '\\' ' ' | cut -d ' '  -f 1 | grep . | uniq | tr '\n' ' ' | sed 's/ *$//g')"
18
+	else
19
+		echo "$n|$(zcat $f | sed '0,/SYNOPSIS/d' | sed '/DESCRIPTION/,$d' | grep  '^\\fB'  | sed 's/\\f[A-Z]//g')"
20
+	fi
21
+done | expand | sed "s/  */ /g;s/  *$//g" | grep '|.' | grep -v '|#' | grep -v ')' | sed 's/\\-/-/g;s/\\&//g;s/\\|/|/g' | tr -d '\r' | sed "s/open fileName\$/open fileName ?access ?permissions??/g;s/fconfigure channelId\$/fconfigure channelId name value ?name value ...?/g" > prototypes_tcl.txt
22
+
... ...
@@ -17,17 +17,30 @@
17 17
 #include "re_data.h"
18 18
 #include "re_plugin_prototypes.h"
19 19
 #include "prototypes_c89_posix.h"
20
+#include "prototypes_tcl.h"
20 21
 
21 22
 #define PLUGINNAME "prototypes"
22 23
 #define MAXINDEXDATALEN 1024
23 24
 
25
+typedef enum protolang_t {
26
+        protolang_undefined=-1,
27
+        protolang_c=0,
28
+        protolang_tcl,
29
+        protolang_end,
30
+} protolang_t;
24 31
 
25
-typedef struct cproto_t {
32
+typedef struct protoindex_t {
26 33
         int nentries;
27 34
         const char **index;
28 35
         const char **values;
36
+} protoindex_t;
37
+
38
+typedef struct cproto_t {
39
+        int sizeprotoindexes;
40
+        protoindex_t *protoindexes;
29 41
         long lastpos;
30 42
         int lastindex;
43
+        protolang_t lastprotolang;
31 44
         int sizebuffer;
32 45
         int usedbuffer;
33 46
         char buffer[MAXINDEXDATALEN];
... ...
@@ -35,45 +48,21 @@ typedef struct cproto_t {
35 48
 
36 49
 static int redata_prototypes_add_or_unadd(redata_t *redata, redata_plugin_t *slot, undo_t *undo, int is_unadd);
37 50
 static int redata_prototypes_postload(redata_t *redata, redata_plugin_t *slot,char *filename);
51
+static cproto_t *cproto_init(void);
52
+static void cproto_free(cproto_t *cproto);
38 53
 static cproto_t *cproto_getplugin(redata_t *redata);
39 54
 static int cproto_buffer_inv(cproto_t *cproto);
55
+const char *mystrstr(char *heystack, char *needle);
40 56
 static int cproto_buffer_getindex(cproto_t *cproto);
41 57
 
42 58
 int
43 59
 redata_prototypes_register(redata_t *redata, redata_plugin_t *slot)
44 60
 {
45 61
         cproto_t *cproto;
46
-        const char *ptr;
47
-        int n;
48 62
         if(redata==NULL || slot==NULL)
49 63
                 return(-1);
50
-        if((cproto=malloc(sizeof(cproto_t)))==NULL)
51
-                return(-1); /* insufficient memory */
52
-        memset(cproto,0,sizeof(cproto_t));
53
-        /* by default, we use C89/POSIX hints */
54
-        cproto->nentries=SIZE_PROTOTYPES_C89_POSIX;
55
-        if((cproto->index=malloc(sizeof(char *)*cproto->nentries))==NULL
56
-          || (cproto->values=malloc(sizeof(char *)*cproto->nentries))==NULL) {
57
-                if(cproto->index!=NULL)
58
-                        free(cproto->index),cproto->index=NULL;
64
+        if((cproto=cproto_init())==NULL)
59 65
                 return(-1); /* insufficient memory */
60
-        }
61
-        memset(cproto->index,0,sizeof(char *)*cproto->nentries);
62
-        memset(cproto->values,0,sizeof(char *)*cproto->nentries);
63
-        for(n=0,ptr=index_prototypes_c89_posix
64
-          ;n<cproto->nentries
65
-          ;n++,ptr+=strlen(ptr)+1) {
66
-                cproto->index[n]=ptr;
67
-        }
68
-        for(n=0,ptr=values_prototypes_c89_posix
69
-          ;n<cproto->nentries
70
-          ;n++,ptr+=strlen(ptr)+1) {
71
-                cproto->values[n]=ptr;
72
-        }
73
-        cproto->lastpos=-1;
74
-        cproto->lastindex=-1;
75
-        cproto->usedbuffer=0;
76
-        cproto->sizebuffer=sizeof(cproto->buffer);
77 66
         strncpy(slot->name,PLUGINNAME,sizeof(slot->name));
78 67
         slot->name[sizeof(slot->name)-1]='\0';
79 68
         slot->unregister=redata_prototypes_unregister;
... ...
@@ -89,12 +78,7 @@ redata_prototypes_unregister(redata_t *redata, redata_plugin_t *slot,char *filen
89 78
         cproto_t *cproto=(cproto_t *) ((slot!=NULL)?(slot->userptr):NULL);
90 79
         if(redata==NULL || slot==NULL || cproto==NULL)
91 80
                 return(-1);
92
-        if(cproto->index!=NULL)
93
-               free(cproto->index),cproto->index=NULL;
94
-        if(cproto->values!=NULL)
95
-               free(cproto->values),cproto->values=NULL;
96
-        if(slot->userptr!=NULL)
97
-                free(slot->userptr),slot->userptr=NULL;
81
+        cproto_free(cproto),cproto=NULL,slot->userptr=NULL;
98 82
         return(0);
99 83
 
100 84
 }
... ...
@@ -108,6 +92,7 @@ redata_prototypes_add_or_unadd(redata_t *redata, redata_plugin_t *slot, undo_t *
108 92
                 return(-1); /* sanity check failed */
109 93
         cproto->lastpos=-1;
110 94
         cproto->lastindex=-1;
95
+        cproto->lastprotolang=protolang_undefined;
111 96
         return(0);
112 97
 }
113 98
 
... ...
@@ -118,6 +103,81 @@ redata_prototypes_postload(redata_t *redata, redata_plugin_t *slot,char *filenam
118 103
         return(-1);
119 104
 }
120 105
 
106
+static cproto_t *
107
+cproto_init(void)
108
+{
109
+        int i;
110
+        cproto_t *cproto;
111
+        protoindex_t *protoindex;
112
+        const char *ptrindex,*ptrvalues;
113
+        int n;
114
+        if((cproto=malloc(sizeof(cproto_t)))==NULL)
115
+                return(NULL); /* insuf. mem. */
116
+        memset(cproto,0,sizeof(cproto_t));
117
+        /* initialize protoindexes */
118
+        if((cproto->protoindexes=malloc(sizeof(protoindex_t)*protolang_end))==NULL) {
119
+                cproto_free(cproto),cproto=NULL;
120
+                return(NULL); /* insuf. mem. */
121
+        }
122
+        memset(cproto->protoindexes,0,sizeof(protoindex_t)*protolang_end);
123
+        cproto->sizeprotoindexes=protolang_end;
124
+        for(i=0;i<protolang_end;i++) {
125
+                protoindex=cproto->protoindexes+i;
126
+                if(i==protolang_c) {
127
+                        protoindex->nentries=SIZE_PROTOTYPES_C89_POSIX;
128
+                        ptrindex=index_prototypes_c89_posix;
129
+                        ptrvalues=values_prototypes_c89_posix;
130
+                } else if(i==protolang_tcl) {
131
+                        protoindex->nentries=SIZE_PROTOTYPES_TCL;
132
+                        ptrindex=index_prototypes_tcl;
133
+                        ptrvalues=values_prototypes_tcl;
134
+                } else {
135
+                        cproto_free(cproto),cproto=NULL;
136
+                        return(NULL); /* internal error, unknown protolang */
137
+                }
138
+                if((protoindex->index=malloc(sizeof(char *)*protoindex->nentries))==NULL
139
+                  || (protoindex->values=malloc(sizeof(char *)*protoindex->nentries))==NULL) {
140
+                        cproto_free(cproto),cproto=NULL;
141
+                        return(NULL); /* insufficient memory */
142
+                }
143
+                memset(protoindex->index,0,sizeof(char *)*protoindex->nentries);
144
+                memset(protoindex->values,0,sizeof(char *)*protoindex->nentries);
145
+                for(n=0;n<protoindex->nentries
146
+                  ;n++,ptrindex+=strlen(ptrindex)+1,ptrvalues+=strlen(ptrvalues)+1) {
147
+                        protoindex->index[n]=ptrindex;
148
+                        protoindex->values[n]=ptrvalues;
149
+                }
150
+        }
151
+        /* init caches */
152
+        cproto->lastpos=-1;
153
+        cproto->lastindex=-1;
154
+        cproto->lastprotolang=protolang_undefined;
155
+        cproto->usedbuffer=0;
156
+        cproto->sizebuffer=sizeof(cproto->buffer);
157
+        return(cproto);
158
+}
159
+
160
+static void
161
+cproto_free(cproto_t *cproto)
162
+{
163
+        int i;
164
+        if(cproto==NULL)
165
+                return;
166
+        if(cproto->protoindexes!=NULL) {
167
+                protoindex_t *protoindex;
168
+                for(i=0;i<cproto->sizeprotoindexes;i++) {
169
+                        protoindex=cproto->protoindexes+i;
170
+                        if(protoindex->index!=NULL)
171
+                                free(protoindex->index),protoindex->index=NULL;
172
+                        if(protoindex->values!=NULL)
173
+                                free(protoindex->values),protoindex->values=NULL;
174
+                }
175
+                free(cproto->protoindexes),cproto->protoindexes=NULL;
176
+        }
177
+        free(cproto),cproto=NULL;
178
+        return;
179
+}
180
+
121 181
 static cproto_t *
122 182
 cproto_getplugin(redata_t *redata)
123 183
 {
... ...
@@ -137,6 +197,20 @@ cproto_getplugin(redata_t *redata)
137 197
         return(cproto);
138 198
 }
139 199
 
200
+const char *
201
+mystrstr(char *haystack, char *needle)
202
+{
203
+        char *ptr;
204
+        int l;
205
+        if(needle[0]=='\0')
206
+                return(haystack);
207
+        l=strlen(needle);
208
+        for(ptr=strchr(haystack,needle[0]);ptr!=NULL;ptr=strchr(ptr+1,needle[0])) {
209
+                if(memcmp(ptr,needle,l)==0)
210
+                        return(ptr);
211
+        }
212
+        return(NULL);
213
+}
140 214
 
141 215
 const char *
142 216
 redata_prototypes_get(redata_t *redata, long pos)
... ...
@@ -146,6 +220,7 @@ redata_prototypes_get(redata_t *redata, long pos)
146 220
         long chunkstartpos;
147 221
         rechunk_t *chunk;
148 222
         cproto_t *cproto;
223
+        protoindex_t *protoindex;
149 224
         char c;
150 225
         int ntry;
151 226
         enum {
... ...
@@ -157,8 +232,19 @@ redata_prototypes_get(redata_t *redata, long pos)
157 232
         } status;
158 233
         if(redata==NULL || pos<0 || (cproto=cproto_getplugin(redata))==NULL)
159 234
                 return(NULL); /* sanity check failed */
235
+        if(cproto->lastprotolang==protolang_undefined) {
236
+                char linebuf[1024];
237
+                if(redata_line_getstartstr(redata,0,linebuf,sizeof(linebuf))!=0)
238
+                        return(NULL); /* couldn't detect file type using first line */
239
+                if(linebuf[0]=='#' && (mystrstr(linebuf,"tclsh")!=NULL || mystrstr(linebuf,"wish")!=NULL || mystrstr(linebuf,"expect")!=NULL))
240
+                        cproto->lastprotolang=protolang_tcl;
241
+                else
242
+                        cproto->lastprotolang=protolang_c;
243
+                cproto->lastpos=-1;
244
+        }
245
+        protoindex=cproto->protoindexes+cproto->lastprotolang;
160 246
         if(pos==cproto->lastpos)
161
-                return((cproto->lastindex!=-1)?(cproto->values[cproto->lastindex]):NULL);
247
+                return((cproto->lastindex!=-1)?(protoindex->values[cproto->lastindex]):NULL);
162 248
         if(redata_getposptr(redata,pos,&savednumchunk,&savedoffset)!=0)
163 249
                 return(NULL); /* couldn't get pos */
164 250
         cproto->lastpos=pos;
... ...
@@ -224,12 +310,12 @@ redata_prototypes_get(redata_t *redata, long pos)
224 310
                                                         cproto_buffer_inv(cproto);
225 311
                                                         /* search string */
226 312
                                                         if((cproto->lastindex=cproto_buffer_getindex(cproto))!=-1)
227
-                                                                return(cproto->values[cproto->lastindex]);
313
+                                                                return(protoindex->values[cproto->lastindex]);
228 314
                                                 }
229 315
                                                 cproto->usedbuffer=0;
230 316
                                                 status=searching_nameend;
231 317
                                                 continue;
232
-                                        } else if(!((c>='A' && c<='Z') || (c>='a' && c<='z') || (c>='0' && c<='9') || c=='_')) {
318
+                                        } else if(!((c>='A' && c<='Z') || (c>='a' && c<='z') || (c>='0' && c<='9') || c=='_' || (cproto->lastprotolang==protolang_tcl && c==' '))) {
233 319
                                                 status=searching_ended;
234 320
                                                 break;
235 321
                                         } else {
... ...
@@ -240,10 +326,14 @@ redata_prototypes_get(redata_t *redata, long pos)
240 326
                         }
241 327
                 }
242 328
                 if((status==searching_nameend || status==searching_ended) && cproto->usedbuffer>0) {
329
+                        /* trim spaces leading to word (for tcl) */
330
+                        while(cproto->usedbuffer>0 && cproto->buffer[cproto->usedbuffer-1]==' ')
331
+                                cproto->usedbuffer--;
332
+                        /* put the string in the correct order */
243 333
                         cproto_buffer_inv(cproto);
244 334
                         /* search string */
245 335
                         if((cproto->lastindex=cproto_buffer_getindex(cproto))!=-1)
246
-                                return(cproto->values[cproto->lastindex]);
336
+                                return(protoindex->values[cproto->lastindex]);
247 337
                 }
248 338
         }
249 339
         return(NULL);
... ...
@@ -277,13 +367,14 @@ cproto_buffer_getindex(cproto_t *cproto)
277 367
 {
278 368
 #warning TODO use qsearch()
279 369
         int i;
370
+        protoindex_t *protoindex;
280 371
         if(cproto==NULL)
281 372
                 return(-1);
282 373
         cproto->buffer[cproto->usedbuffer]='\0';
283
-        for(i=0;i<cproto->nentries;i++) {
284
-                if(strcmp(cproto->index[i],cproto->buffer)==0) {
374
+        protoindex=cproto->protoindexes+cproto->lastprotolang;
375
+        for(i=0;i<protoindex->nentries;i++) {
376
+                if(strcmp(protoindex->index[i],cproto->buffer)==0)
285 377
                         return(i);
286
-                }
287 378
         }
288 379
         return(-1);
289 380
 }