Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- .gitattributes +1 -0
- my_container_sandbox/workspace/anaconda3/lib/libyaml-0.so.2.0.9 +3 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/af_za.msg +6 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/be.msg +52 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/de.msg +54 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/de_at.msg +35 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_au.msg +7 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_bw.msg +6 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_ie.msg +7 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_in.msg +8 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_nz.msg +7 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_ph.msg +8 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_za.msg +6 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/es.msg +52 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/es_ec.msg +6 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/es_mx.msg +6 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/es_pr.msg +6 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/eu_es.msg +7 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/fr.msg +52 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/fr_ca.msg +7 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/fr_ch.msg +7 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/ga_ie.msg +7 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/gl_es.msg +6 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/gv.msg +47 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/hi.msg +39 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/id.msg +47 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/is.msg +50 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/it.msg +54 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/it_ch.msg +6 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/kw_gb.msg +6 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/ms_my.msg +6 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/mt.msg +27 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/nn.msg +52 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/pl.msg +52 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/pt.msg +50 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/ru_ua.msg +6 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/sh.msg +52 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/sq.msg +54 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/sw.msg +49 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/te.msg +47 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/uk.msg +52 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/zh_hk.msg +28 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/zh_tw.msg +8 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/opt0.4/optparse.tcl +1072 -0
- my_container_sandbox/workspace/anaconda3/lib/tcl8.6/opt0.4/pkgIndex.tcl +12 -0
- my_container_sandbox/workspace/anaconda3/lib/tk8.6/demos/anilabel.tcl +160 -0
- my_container_sandbox/workspace/anaconda3/lib/tk8.6/demos/bind.tcl +78 -0
- my_container_sandbox/workspace/anaconda3/lib/tk8.6/demos/button.tcl +47 -0
- my_container_sandbox/workspace/anaconda3/lib/tk8.6/demos/colors.tcl +99 -0
- my_container_sandbox/workspace/anaconda3/lib/tk8.6/demos/dialog1.tcl +25 -0
.gitattributes
CHANGED
|
@@ -156,3 +156,4 @@ my_container_sandbox/workspace/anaconda3/lib/libpython3.8.so.1.0 filter=lfs diff
|
|
| 156 |
my_container_sandbox/workspace/anaconda3/lib/libyaml.a filter=lfs diff=lfs merge=lfs -text
|
| 157 |
my_container_sandbox/workspace/anaconda3/lib/libnppial.so.11.3.3.95 filter=lfs diff=lfs merge=lfs -text
|
| 158 |
my_container_sandbox/workspace/anaconda3/lib/libnppisu.so.11.3.3.95 filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 156 |
my_container_sandbox/workspace/anaconda3/lib/libyaml.a filter=lfs diff=lfs merge=lfs -text
|
| 157 |
my_container_sandbox/workspace/anaconda3/lib/libnppial.so.11.3.3.95 filter=lfs diff=lfs merge=lfs -text
|
| 158 |
my_container_sandbox/workspace/anaconda3/lib/libnppisu.so.11.3.3.95 filter=lfs diff=lfs merge=lfs -text
|
| 159 |
+
my_container_sandbox/workspace/anaconda3/lib/libyaml-0.so.2.0.9 filter=lfs diff=lfs merge=lfs -text
|
my_container_sandbox/workspace/anaconda3/lib/libyaml-0.so.2.0.9
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:ea079a6864ca10a6f8ea7d2d312c71121f5c966dc8e334f713a3bc8eb242ee49
|
| 3 |
+
size 125072
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/af_za.msg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset af_ZA DATE_FORMAT "%d %B %Y"
|
| 4 |
+
::msgcat::mcset af_ZA TIME_FORMAT_12 "%l:%M:%S %P"
|
| 5 |
+
::msgcat::mcset af_ZA DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z"
|
| 6 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/be.msg
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset be DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"\u043d\u0434"\
|
| 5 |
+
"\u043f\u043d"\
|
| 6 |
+
"\u0430\u0442"\
|
| 7 |
+
"\u0441\u0440"\
|
| 8 |
+
"\u0447\u0446"\
|
| 9 |
+
"\u043f\u0442"\
|
| 10 |
+
"\u0441\u0431"]
|
| 11 |
+
::msgcat::mcset be DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"\u043d\u044f\u0434\u0437\u0435\u043b\u044f"\
|
| 13 |
+
"\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a"\
|
| 14 |
+
"\u0430\u045e\u0442\u043e\u0440\u0430\u043a"\
|
| 15 |
+
"\u0441\u0435\u0440\u0430\u0434\u0430"\
|
| 16 |
+
"\u0447\u0430\u0446\u0432\u0435\u0440"\
|
| 17 |
+
"\u043f\u044f\u0442\u043d\u0456\u0446\u0430"\
|
| 18 |
+
"\u0441\u0443\u0431\u043e\u0442\u0430"]
|
| 19 |
+
::msgcat::mcset be MONTHS_ABBREV [list \
|
| 20 |
+
"\u0441\u0442\u0434"\
|
| 21 |
+
"\u043b\u044e\u0442"\
|
| 22 |
+
"\u0441\u043a\u0432"\
|
| 23 |
+
"\u043a\u0440\u0441"\
|
| 24 |
+
"\u043c\u0430\u0439"\
|
| 25 |
+
"\u0447\u0440\u0432"\
|
| 26 |
+
"\u043b\u043f\u043d"\
|
| 27 |
+
"\u0436\u043d\u0432"\
|
| 28 |
+
"\u0432\u0440\u0441"\
|
| 29 |
+
"\u043a\u0441\u0442"\
|
| 30 |
+
"\u043b\u0441\u0442"\
|
| 31 |
+
"\u0441\u043d\u0436"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset be MONTHS_FULL [list \
|
| 34 |
+
"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f"\
|
| 35 |
+
"\u043b\u044e\u0442\u0430\u0433\u0430"\
|
| 36 |
+
"\u0441\u0430\u043a\u0430\u0432\u0456\u043a\u0430"\
|
| 37 |
+
"\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a\u0430"\
|
| 38 |
+
"\u043c\u0430\u044f"\
|
| 39 |
+
"\u0447\u0440\u0432\u0435\u043d\u044f"\
|
| 40 |
+
"\u043b\u0456\u043f\u0435\u043d\u044f"\
|
| 41 |
+
"\u0436\u043d\u0456\u045e\u043d\u044f"\
|
| 42 |
+
"\u0432\u0435\u0440\u0430\u0441\u043d\u044f"\
|
| 43 |
+
"\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a\u0430"\
|
| 44 |
+
"\u043b\u0438\u0441\u0442\u0430\u043f\u0430\u0434\u0430"\
|
| 45 |
+
"\u0441\u043d\u0435\u0436\u043d\u044f"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset be BCE "\u0434\u0430 \u043d.\u0435."
|
| 48 |
+
::msgcat::mcset be CE "\u043d.\u0435."
|
| 49 |
+
::msgcat::mcset be DATE_FORMAT "%e.%m.%Y"
|
| 50 |
+
::msgcat::mcset be TIME_FORMAT "%k.%M.%S"
|
| 51 |
+
::msgcat::mcset be DATE_TIME_FORMAT "%e.%m.%Y %k.%M.%S %z"
|
| 52 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/de.msg
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset de DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"So"\
|
| 5 |
+
"Mo"\
|
| 6 |
+
"Di"\
|
| 7 |
+
"Mi"\
|
| 8 |
+
"Do"\
|
| 9 |
+
"Fr"\
|
| 10 |
+
"Sa"]
|
| 11 |
+
::msgcat::mcset de DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"Sonntag"\
|
| 13 |
+
"Montag"\
|
| 14 |
+
"Dienstag"\
|
| 15 |
+
"Mittwoch"\
|
| 16 |
+
"Donnerstag"\
|
| 17 |
+
"Freitag"\
|
| 18 |
+
"Samstag"]
|
| 19 |
+
::msgcat::mcset de MONTHS_ABBREV [list \
|
| 20 |
+
"Jan"\
|
| 21 |
+
"Feb"\
|
| 22 |
+
"Mrz"\
|
| 23 |
+
"Apr"\
|
| 24 |
+
"Mai"\
|
| 25 |
+
"Jun"\
|
| 26 |
+
"Jul"\
|
| 27 |
+
"Aug"\
|
| 28 |
+
"Sep"\
|
| 29 |
+
"Okt"\
|
| 30 |
+
"Nov"\
|
| 31 |
+
"Dez"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset de MONTHS_FULL [list \
|
| 34 |
+
"Januar"\
|
| 35 |
+
"Februar"\
|
| 36 |
+
"M\u00e4rz"\
|
| 37 |
+
"April"\
|
| 38 |
+
"Mai"\
|
| 39 |
+
"Juni"\
|
| 40 |
+
"Juli"\
|
| 41 |
+
"August"\
|
| 42 |
+
"September"\
|
| 43 |
+
"Oktober"\
|
| 44 |
+
"November"\
|
| 45 |
+
"Dezember"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset de BCE "v. Chr."
|
| 48 |
+
::msgcat::mcset de CE "n. Chr."
|
| 49 |
+
::msgcat::mcset de AM "vorm."
|
| 50 |
+
::msgcat::mcset de PM "nachm."
|
| 51 |
+
::msgcat::mcset de DATE_FORMAT "%d.%m.%Y"
|
| 52 |
+
::msgcat::mcset de TIME_FORMAT "%H:%M:%S"
|
| 53 |
+
::msgcat::mcset de DATE_TIME_FORMAT "%d.%m.%Y %H:%M:%S %z"
|
| 54 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/de_at.msg
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset de_AT MONTHS_ABBREV [list \
|
| 4 |
+
"J\u00e4n"\
|
| 5 |
+
"Feb"\
|
| 6 |
+
"M\u00e4r"\
|
| 7 |
+
"Apr"\
|
| 8 |
+
"Mai"\
|
| 9 |
+
"Jun"\
|
| 10 |
+
"Jul"\
|
| 11 |
+
"Aug"\
|
| 12 |
+
"Sep"\
|
| 13 |
+
"Okt"\
|
| 14 |
+
"Nov"\
|
| 15 |
+
"Dez"\
|
| 16 |
+
""]
|
| 17 |
+
::msgcat::mcset de_AT MONTHS_FULL [list \
|
| 18 |
+
"J\u00e4nner"\
|
| 19 |
+
"Februar"\
|
| 20 |
+
"M\u00e4rz"\
|
| 21 |
+
"April"\
|
| 22 |
+
"Mai"\
|
| 23 |
+
"Juni"\
|
| 24 |
+
"Juli"\
|
| 25 |
+
"August"\
|
| 26 |
+
"September"\
|
| 27 |
+
"Oktober"\
|
| 28 |
+
"November"\
|
| 29 |
+
"Dezember"\
|
| 30 |
+
""]
|
| 31 |
+
::msgcat::mcset de_AT DATE_FORMAT "%Y-%m-%d"
|
| 32 |
+
::msgcat::mcset de_AT TIME_FORMAT "%T"
|
| 33 |
+
::msgcat::mcset de_AT TIME_FORMAT_12 "%T"
|
| 34 |
+
::msgcat::mcset de_AT DATE_TIME_FORMAT "%a %d %b %Y %T %z"
|
| 35 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_au.msg
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset en_AU DATE_FORMAT "%e/%m/%Y"
|
| 4 |
+
::msgcat::mcset en_AU TIME_FORMAT "%H:%M:%S"
|
| 5 |
+
::msgcat::mcset en_AU TIME_FORMAT_12 "%I:%M:%S %P %z"
|
| 6 |
+
::msgcat::mcset en_AU DATE_TIME_FORMAT "%e/%m/%Y %H:%M:%S %z"
|
| 7 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_bw.msg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset en_BW DATE_FORMAT "%d %B %Y"
|
| 4 |
+
::msgcat::mcset en_BW TIME_FORMAT_12 "%l:%M:%S %P"
|
| 5 |
+
::msgcat::mcset en_BW DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z"
|
| 6 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_ie.msg
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset en_IE DATE_FORMAT "%d/%m/%y"
|
| 4 |
+
::msgcat::mcset en_IE TIME_FORMAT "%T"
|
| 5 |
+
::msgcat::mcset en_IE TIME_FORMAT_12 "%T"
|
| 6 |
+
::msgcat::mcset en_IE DATE_TIME_FORMAT "%a %d %b %Y %T %z"
|
| 7 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_in.msg
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset en_IN AM "AM"
|
| 4 |
+
::msgcat::mcset en_IN PM "PM"
|
| 5 |
+
::msgcat::mcset en_IN DATE_FORMAT "%d %B %Y"
|
| 6 |
+
::msgcat::mcset en_IN TIME_FORMAT "%H:%M:%S"
|
| 7 |
+
::msgcat::mcset en_IN DATE_TIME_FORMAT "%d %B %Y %H:%M:%S %z"
|
| 8 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_nz.msg
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset en_NZ DATE_FORMAT "%e/%m/%Y"
|
| 4 |
+
::msgcat::mcset en_NZ TIME_FORMAT "%H:%M:%S"
|
| 5 |
+
::msgcat::mcset en_NZ TIME_FORMAT_12 "%I:%M:%S %P %z"
|
| 6 |
+
::msgcat::mcset en_NZ DATE_TIME_FORMAT "%e/%m/%Y %H:%M:%S %z"
|
| 7 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_ph.msg
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset en_PH AM "AM"
|
| 4 |
+
::msgcat::mcset en_PH PM "PM"
|
| 5 |
+
::msgcat::mcset en_PH DATE_FORMAT "%B %e, %Y"
|
| 6 |
+
::msgcat::mcset en_PH TIME_FORMAT_12 "%l:%M:%S %P"
|
| 7 |
+
::msgcat::mcset en_PH DATE_TIME_FORMAT "%B %e, %Y %l:%M:%S %P %z"
|
| 8 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/en_za.msg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset en_ZA DATE_FORMAT "%Y/%m/%d"
|
| 4 |
+
::msgcat::mcset en_ZA TIME_FORMAT_12 "%I:%M:%S"
|
| 5 |
+
::msgcat::mcset en_ZA DATE_TIME_FORMAT "%Y/%m/%d %I:%M:%S %z"
|
| 6 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/es.msg
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset es DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"dom"\
|
| 5 |
+
"lun"\
|
| 6 |
+
"mar"\
|
| 7 |
+
"mi\u00e9"\
|
| 8 |
+
"jue"\
|
| 9 |
+
"vie"\
|
| 10 |
+
"s\u00e1b"]
|
| 11 |
+
::msgcat::mcset es DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"domingo"\
|
| 13 |
+
"lunes"\
|
| 14 |
+
"martes"\
|
| 15 |
+
"mi\u00e9rcoles"\
|
| 16 |
+
"jueves"\
|
| 17 |
+
"viernes"\
|
| 18 |
+
"s\u00e1bado"]
|
| 19 |
+
::msgcat::mcset es MONTHS_ABBREV [list \
|
| 20 |
+
"ene"\
|
| 21 |
+
"feb"\
|
| 22 |
+
"mar"\
|
| 23 |
+
"abr"\
|
| 24 |
+
"may"\
|
| 25 |
+
"jun"\
|
| 26 |
+
"jul"\
|
| 27 |
+
"ago"\
|
| 28 |
+
"sep"\
|
| 29 |
+
"oct"\
|
| 30 |
+
"nov"\
|
| 31 |
+
"dic"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset es MONTHS_FULL [list \
|
| 34 |
+
"enero"\
|
| 35 |
+
"febrero"\
|
| 36 |
+
"marzo"\
|
| 37 |
+
"abril"\
|
| 38 |
+
"mayo"\
|
| 39 |
+
"junio"\
|
| 40 |
+
"julio"\
|
| 41 |
+
"agosto"\
|
| 42 |
+
"septiembre"\
|
| 43 |
+
"octubre"\
|
| 44 |
+
"noviembre"\
|
| 45 |
+
"diciembre"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset es BCE "a.C."
|
| 48 |
+
::msgcat::mcset es CE "d.C."
|
| 49 |
+
::msgcat::mcset es DATE_FORMAT "%e de %B de %Y"
|
| 50 |
+
::msgcat::mcset es TIME_FORMAT "%k:%M:%S"
|
| 51 |
+
::msgcat::mcset es DATE_TIME_FORMAT "%e de %B de %Y %k:%M:%S %z"
|
| 52 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/es_ec.msg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset es_EC DATE_FORMAT "%d/%m/%Y"
|
| 4 |
+
::msgcat::mcset es_EC TIME_FORMAT_12 "%I:%M:%S %P"
|
| 5 |
+
::msgcat::mcset es_EC DATE_TIME_FORMAT "%d/%m/%Y %I:%M:%S %P %z"
|
| 6 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/es_mx.msg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset es_MX DATE_FORMAT "%e/%m/%Y"
|
| 4 |
+
::msgcat::mcset es_MX TIME_FORMAT_12 "%I:%M:%S %P"
|
| 5 |
+
::msgcat::mcset es_MX DATE_TIME_FORMAT "%e/%m/%Y %I:%M:%S %P %z"
|
| 6 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/es_pr.msg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset es_PR DATE_FORMAT "%m-%d-%Y"
|
| 4 |
+
::msgcat::mcset es_PR TIME_FORMAT_12 "%I:%M:%S %P"
|
| 5 |
+
::msgcat::mcset es_PR DATE_TIME_FORMAT "%m-%d-%Y %I:%M:%S %P %z"
|
| 6 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/eu_es.msg
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset eu_ES DATE_FORMAT "%a, %Yeko %bren %da"
|
| 4 |
+
::msgcat::mcset eu_ES TIME_FORMAT "%T"
|
| 5 |
+
::msgcat::mcset eu_ES TIME_FORMAT_12 "%T"
|
| 6 |
+
::msgcat::mcset eu_ES DATE_TIME_FORMAT "%y-%m-%d %T %z"
|
| 7 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/fr.msg
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset fr DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"dim."\
|
| 5 |
+
"lun."\
|
| 6 |
+
"mar."\
|
| 7 |
+
"mer."\
|
| 8 |
+
"jeu."\
|
| 9 |
+
"ven."\
|
| 10 |
+
"sam."]
|
| 11 |
+
::msgcat::mcset fr DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"dimanche"\
|
| 13 |
+
"lundi"\
|
| 14 |
+
"mardi"\
|
| 15 |
+
"mercredi"\
|
| 16 |
+
"jeudi"\
|
| 17 |
+
"vendredi"\
|
| 18 |
+
"samedi"]
|
| 19 |
+
::msgcat::mcset fr MONTHS_ABBREV [list \
|
| 20 |
+
"janv."\
|
| 21 |
+
"f\u00e9vr."\
|
| 22 |
+
"mars"\
|
| 23 |
+
"avr."\
|
| 24 |
+
"mai"\
|
| 25 |
+
"juin"\
|
| 26 |
+
"juil."\
|
| 27 |
+
"ao\u00fbt"\
|
| 28 |
+
"sept."\
|
| 29 |
+
"oct."\
|
| 30 |
+
"nov."\
|
| 31 |
+
"d\u00e9c."\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset fr MONTHS_FULL [list \
|
| 34 |
+
"janvier"\
|
| 35 |
+
"f\u00e9vrier"\
|
| 36 |
+
"mars"\
|
| 37 |
+
"avril"\
|
| 38 |
+
"mai"\
|
| 39 |
+
"juin"\
|
| 40 |
+
"juillet"\
|
| 41 |
+
"ao\u00fbt"\
|
| 42 |
+
"septembre"\
|
| 43 |
+
"octobre"\
|
| 44 |
+
"novembre"\
|
| 45 |
+
"d\u00e9cembre"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset fr BCE "av. J.-C."
|
| 48 |
+
::msgcat::mcset fr CE "ap. J.-C."
|
| 49 |
+
::msgcat::mcset fr DATE_FORMAT "%e %B %Y"
|
| 50 |
+
::msgcat::mcset fr TIME_FORMAT "%H:%M:%S"
|
| 51 |
+
::msgcat::mcset fr DATE_TIME_FORMAT "%e %B %Y %H:%M:%S %z"
|
| 52 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/fr_ca.msg
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset fr_CA DATE_FORMAT "%Y-%m-%d"
|
| 4 |
+
::msgcat::mcset fr_CA TIME_FORMAT "%T"
|
| 5 |
+
::msgcat::mcset fr_CA TIME_FORMAT_12 "%T"
|
| 6 |
+
::msgcat::mcset fr_CA DATE_TIME_FORMAT "%a %d %b %Y %T %z"
|
| 7 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/fr_ch.msg
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset fr_CH DATE_FORMAT "%d. %m. %y"
|
| 4 |
+
::msgcat::mcset fr_CH TIME_FORMAT "%T"
|
| 5 |
+
::msgcat::mcset fr_CH TIME_FORMAT_12 "%T"
|
| 6 |
+
::msgcat::mcset fr_CH DATE_TIME_FORMAT "%a %d %b %Y %T %z"
|
| 7 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/ga_ie.msg
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset ga_IE DATE_FORMAT "%d.%m.%y"
|
| 4 |
+
::msgcat::mcset ga_IE TIME_FORMAT "%T"
|
| 5 |
+
::msgcat::mcset ga_IE TIME_FORMAT_12 "%T"
|
| 6 |
+
::msgcat::mcset ga_IE DATE_TIME_FORMAT "%a %d %b %Y %T %z"
|
| 7 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/gl_es.msg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset gl_ES DATE_FORMAT "%d %B %Y"
|
| 4 |
+
::msgcat::mcset gl_ES TIME_FORMAT_12 "%l:%M:%S %P"
|
| 5 |
+
::msgcat::mcset gl_ES DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z"
|
| 6 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/gv.msg
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset gv DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"Jed"\
|
| 5 |
+
"Jel"\
|
| 6 |
+
"Jem"\
|
| 7 |
+
"Jerc"\
|
| 8 |
+
"Jerd"\
|
| 9 |
+
"Jeh"\
|
| 10 |
+
"Jes"]
|
| 11 |
+
::msgcat::mcset gv DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"Jedoonee"\
|
| 13 |
+
"Jelhein"\
|
| 14 |
+
"Jemayrt"\
|
| 15 |
+
"Jercean"\
|
| 16 |
+
"Jerdein"\
|
| 17 |
+
"Jeheiney"\
|
| 18 |
+
"Jesarn"]
|
| 19 |
+
::msgcat::mcset gv MONTHS_ABBREV [list \
|
| 20 |
+
"J-guer"\
|
| 21 |
+
"T-arree"\
|
| 22 |
+
"Mayrnt"\
|
| 23 |
+
"Avrril"\
|
| 24 |
+
"Boaldyn"\
|
| 25 |
+
"M-souree"\
|
| 26 |
+
"J-souree"\
|
| 27 |
+
"Luanistyn"\
|
| 28 |
+
"M-fouyir"\
|
| 29 |
+
"J-fouyir"\
|
| 30 |
+
"M.Houney"\
|
| 31 |
+
"M.Nollick"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset gv MONTHS_FULL [list \
|
| 34 |
+
"Jerrey-geuree"\
|
| 35 |
+
"Toshiaght-arree"\
|
| 36 |
+
"Mayrnt"\
|
| 37 |
+
"Averil"\
|
| 38 |
+
"Boaldyn"\
|
| 39 |
+
"Mean-souree"\
|
| 40 |
+
"Jerrey-souree"\
|
| 41 |
+
"Luanistyn"\
|
| 42 |
+
"Mean-fouyir"\
|
| 43 |
+
"Jerrey-fouyir"\
|
| 44 |
+
"Mee Houney"\
|
| 45 |
+
"Mee ny Nollick"\
|
| 46 |
+
""]
|
| 47 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/hi.msg
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset hi DAYS_OF_WEEK_FULL [list \
|
| 4 |
+
"\u0930\u0935\u093f\u0935\u093e\u0930"\
|
| 5 |
+
"\u0938\u094b\u092e\u0935\u093e\u0930"\
|
| 6 |
+
"\u092e\u0902\u0917\u0932\u0935\u093e\u0930"\
|
| 7 |
+
"\u092c\u0941\u0927\u0935\u093e\u0930"\
|
| 8 |
+
"\u0917\u0941\u0930\u0941\u0935\u093e\u0930"\
|
| 9 |
+
"\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930"\
|
| 10 |
+
"\u0936\u0928\u093f\u0935\u093e\u0930"]
|
| 11 |
+
::msgcat::mcset hi MONTHS_ABBREV [list \
|
| 12 |
+
"\u091c\u0928\u0935\u0930\u0940"\
|
| 13 |
+
"\u092b\u093c\u0930\u0935\u0930\u0940"\
|
| 14 |
+
"\u092e\u093e\u0930\u094d\u091a"\
|
| 15 |
+
"\u0905\u092a\u094d\u0930\u0947\u0932"\
|
| 16 |
+
"\u092e\u0908"\
|
| 17 |
+
"\u091c\u0942\u0928"\
|
| 18 |
+
"\u091c\u0941\u0932\u093e\u0908"\
|
| 19 |
+
"\u0905\u0917\u0938\u094d\u0924"\
|
| 20 |
+
"\u0938\u093f\u0924\u092e\u094d\u092c\u0930"\
|
| 21 |
+
"\u0905\u0915\u094d\u091f\u0942\u092c\u0930"\
|
| 22 |
+
"\u0928\u0935\u092e\u094d\u092c\u0930"\
|
| 23 |
+
"\u0926\u093f\u0938\u092e\u094d\u092c\u0930"]
|
| 24 |
+
::msgcat::mcset hi MONTHS_FULL [list \
|
| 25 |
+
"\u091c\u0928\u0935\u0930\u0940"\
|
| 26 |
+
"\u092b\u093c\u0930\u0935\u0930\u0940"\
|
| 27 |
+
"\u092e\u093e\u0930\u094d\u091a"\
|
| 28 |
+
"\u0905\u092a\u094d\u0930\u0947\u0932"\
|
| 29 |
+
"\u092e\u0908"\
|
| 30 |
+
"\u091c\u0942\u0928"\
|
| 31 |
+
"\u091c\u0941\u0932\u093e\u0908"\
|
| 32 |
+
"\u0905\u0917\u0938\u094d\u0924"\
|
| 33 |
+
"\u0938\u093f\u0924\u092e\u094d\u092c\u0930"\
|
| 34 |
+
"\u0905\u0915\u094d\u091f\u0942\u092c\u0930"\
|
| 35 |
+
"\u0928\u0935\u092e\u094d\u092c\u0930"\
|
| 36 |
+
"\u0926\u093f\u0938\u092e\u094d\u092c\u0930"]
|
| 37 |
+
::msgcat::mcset hi AM "\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935"
|
| 38 |
+
::msgcat::mcset hi PM "."
|
| 39 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/id.msg
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset id DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"Min"\
|
| 5 |
+
"Sen"\
|
| 6 |
+
"Sel"\
|
| 7 |
+
"Rab"\
|
| 8 |
+
"Kam"\
|
| 9 |
+
"Jum"\
|
| 10 |
+
"Sab"]
|
| 11 |
+
::msgcat::mcset id DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"Minggu"\
|
| 13 |
+
"Senin"\
|
| 14 |
+
"Selasa"\
|
| 15 |
+
"Rabu"\
|
| 16 |
+
"Kamis"\
|
| 17 |
+
"Jumat"\
|
| 18 |
+
"Sabtu"]
|
| 19 |
+
::msgcat::mcset id MONTHS_ABBREV [list \
|
| 20 |
+
"Jan"\
|
| 21 |
+
"Peb"\
|
| 22 |
+
"Mar"\
|
| 23 |
+
"Apr"\
|
| 24 |
+
"Mei"\
|
| 25 |
+
"Jun"\
|
| 26 |
+
"Jul"\
|
| 27 |
+
"Agu"\
|
| 28 |
+
"Sep"\
|
| 29 |
+
"Okt"\
|
| 30 |
+
"Nov"\
|
| 31 |
+
"Des"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset id MONTHS_FULL [list \
|
| 34 |
+
"Januari"\
|
| 35 |
+
"Pebruari"\
|
| 36 |
+
"Maret"\
|
| 37 |
+
"April"\
|
| 38 |
+
"Mei"\
|
| 39 |
+
"Juni"\
|
| 40 |
+
"Juli"\
|
| 41 |
+
"Agustus"\
|
| 42 |
+
"September"\
|
| 43 |
+
"Oktober"\
|
| 44 |
+
"November"\
|
| 45 |
+
"Desember"\
|
| 46 |
+
""]
|
| 47 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/is.msg
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset is DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"sun."\
|
| 5 |
+
"m\u00e1n."\
|
| 6 |
+
"\u00feri."\
|
| 7 |
+
"mi\u00f0."\
|
| 8 |
+
"fim."\
|
| 9 |
+
"f\u00f6s."\
|
| 10 |
+
"lau."]
|
| 11 |
+
::msgcat::mcset is DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"sunnudagur"\
|
| 13 |
+
"m\u00e1nudagur"\
|
| 14 |
+
"\u00feri\u00f0judagur"\
|
| 15 |
+
"mi\u00f0vikudagur"\
|
| 16 |
+
"fimmtudagur"\
|
| 17 |
+
"f\u00f6studagur"\
|
| 18 |
+
"laugardagur"]
|
| 19 |
+
::msgcat::mcset is MONTHS_ABBREV [list \
|
| 20 |
+
"jan."\
|
| 21 |
+
"feb."\
|
| 22 |
+
"mar."\
|
| 23 |
+
"apr."\
|
| 24 |
+
"ma\u00ed"\
|
| 25 |
+
"j\u00fan."\
|
| 26 |
+
"j\u00fal."\
|
| 27 |
+
"\u00e1g\u00fa."\
|
| 28 |
+
"sep."\
|
| 29 |
+
"okt."\
|
| 30 |
+
"n\u00f3v."\
|
| 31 |
+
"des."\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset is MONTHS_FULL [list \
|
| 34 |
+
"jan\u00faar"\
|
| 35 |
+
"febr\u00faar"\
|
| 36 |
+
"mars"\
|
| 37 |
+
"apr\u00edl"\
|
| 38 |
+
"ma\u00ed"\
|
| 39 |
+
"j\u00fan\u00ed"\
|
| 40 |
+
"j\u00fal\u00ed"\
|
| 41 |
+
"\u00e1g\u00fast"\
|
| 42 |
+
"september"\
|
| 43 |
+
"okt\u00f3ber"\
|
| 44 |
+
"n\u00f3vember"\
|
| 45 |
+
"desember"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset is DATE_FORMAT "%e.%m.%Y"
|
| 48 |
+
::msgcat::mcset is TIME_FORMAT "%H:%M:%S"
|
| 49 |
+
::msgcat::mcset is DATE_TIME_FORMAT "%e.%m.%Y %H:%M:%S %z"
|
| 50 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/it.msg
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset it DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"dom"\
|
| 5 |
+
"lun"\
|
| 6 |
+
"mar"\
|
| 7 |
+
"mer"\
|
| 8 |
+
"gio"\
|
| 9 |
+
"ven"\
|
| 10 |
+
"sab"]
|
| 11 |
+
::msgcat::mcset it DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"domenica"\
|
| 13 |
+
"luned\u00ec"\
|
| 14 |
+
"marted\u00ec"\
|
| 15 |
+
"mercoled\u00ec"\
|
| 16 |
+
"gioved\u00ec"\
|
| 17 |
+
"venerd\u00ec"\
|
| 18 |
+
"sabato"]
|
| 19 |
+
::msgcat::mcset it MONTHS_ABBREV [list \
|
| 20 |
+
"gen"\
|
| 21 |
+
"feb"\
|
| 22 |
+
"mar"\
|
| 23 |
+
"apr"\
|
| 24 |
+
"mag"\
|
| 25 |
+
"giu"\
|
| 26 |
+
"lug"\
|
| 27 |
+
"ago"\
|
| 28 |
+
"set"\
|
| 29 |
+
"ott"\
|
| 30 |
+
"nov"\
|
| 31 |
+
"dic"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset it MONTHS_FULL [list \
|
| 34 |
+
"gennaio"\
|
| 35 |
+
"febbraio"\
|
| 36 |
+
"marzo"\
|
| 37 |
+
"aprile"\
|
| 38 |
+
"maggio"\
|
| 39 |
+
"giugno"\
|
| 40 |
+
"luglio"\
|
| 41 |
+
"agosto"\
|
| 42 |
+
"settembre"\
|
| 43 |
+
"ottobre"\
|
| 44 |
+
"novembre"\
|
| 45 |
+
"dicembre"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset it BCE "aC"
|
| 48 |
+
::msgcat::mcset it CE "dC"
|
| 49 |
+
::msgcat::mcset it AM "m."
|
| 50 |
+
::msgcat::mcset it PM "p."
|
| 51 |
+
::msgcat::mcset it DATE_FORMAT "%d %B %Y"
|
| 52 |
+
::msgcat::mcset it TIME_FORMAT "%H:%M:%S"
|
| 53 |
+
::msgcat::mcset it DATE_TIME_FORMAT "%d %B %Y %H:%M:%S %z"
|
| 54 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/it_ch.msg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset it_CH DATE_FORMAT "%e. %B %Y"
|
| 4 |
+
::msgcat::mcset it_CH TIME_FORMAT "%H:%M:%S"
|
| 5 |
+
::msgcat::mcset it_CH DATE_TIME_FORMAT "%e. %B %Y %H:%M:%S %z"
|
| 6 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/kw_gb.msg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset kw_GB DATE_FORMAT "%d %B %Y"
|
| 4 |
+
::msgcat::mcset kw_GB TIME_FORMAT_12 "%l:%M:%S %P"
|
| 5 |
+
::msgcat::mcset kw_GB DATE_TIME_FORMAT "%d %B %Y %l:%M:%S %P %z"
|
| 6 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/ms_my.msg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset ms_MY DATE_FORMAT "%A %d %b %Y"
|
| 4 |
+
::msgcat::mcset ms_MY TIME_FORMAT_12 "%I:%M:%S %z"
|
| 5 |
+
::msgcat::mcset ms_MY DATE_TIME_FORMAT "%A %d %b %Y %I:%M:%S %z %z"
|
| 6 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/mt.msg
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset mt DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"\u0126ad"\
|
| 5 |
+
"Tne"\
|
| 6 |
+
"Tli"\
|
| 7 |
+
"Erb"\
|
| 8 |
+
"\u0126am"\
|
| 9 |
+
"\u0120im"]
|
| 10 |
+
::msgcat::mcset mt MONTHS_ABBREV [list \
|
| 11 |
+
"Jan"\
|
| 12 |
+
"Fra"\
|
| 13 |
+
"Mar"\
|
| 14 |
+
"Apr"\
|
| 15 |
+
"Mej"\
|
| 16 |
+
"\u0120un"\
|
| 17 |
+
"Lul"\
|
| 18 |
+
"Awi"\
|
| 19 |
+
"Set"\
|
| 20 |
+
"Ott"\
|
| 21 |
+
"Nov"]
|
| 22 |
+
::msgcat::mcset mt BCE "QK"
|
| 23 |
+
::msgcat::mcset mt CE ""
|
| 24 |
+
::msgcat::mcset mt DATE_FORMAT "%A, %e ta %B, %Y"
|
| 25 |
+
::msgcat::mcset mt TIME_FORMAT_12 "%l:%M:%S %P"
|
| 26 |
+
::msgcat::mcset mt DATE_TIME_FORMAT "%A, %e ta %B, %Y %l:%M:%S %P %z"
|
| 27 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/nn.msg
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset nn DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"su"\
|
| 5 |
+
"m\u00e5"\
|
| 6 |
+
"ty"\
|
| 7 |
+
"on"\
|
| 8 |
+
"to"\
|
| 9 |
+
"fr"\
|
| 10 |
+
"lau"]
|
| 11 |
+
::msgcat::mcset nn DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"sundag"\
|
| 13 |
+
"m\u00e5ndag"\
|
| 14 |
+
"tysdag"\
|
| 15 |
+
"onsdag"\
|
| 16 |
+
"torsdag"\
|
| 17 |
+
"fredag"\
|
| 18 |
+
"laurdag"]
|
| 19 |
+
::msgcat::mcset nn MONTHS_ABBREV [list \
|
| 20 |
+
"jan"\
|
| 21 |
+
"feb"\
|
| 22 |
+
"mar"\
|
| 23 |
+
"apr"\
|
| 24 |
+
"mai"\
|
| 25 |
+
"jun"\
|
| 26 |
+
"jul"\
|
| 27 |
+
"aug"\
|
| 28 |
+
"sep"\
|
| 29 |
+
"okt"\
|
| 30 |
+
"nov"\
|
| 31 |
+
"des"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset nn MONTHS_FULL [list \
|
| 34 |
+
"januar"\
|
| 35 |
+
"februar"\
|
| 36 |
+
"mars"\
|
| 37 |
+
"april"\
|
| 38 |
+
"mai"\
|
| 39 |
+
"juni"\
|
| 40 |
+
"juli"\
|
| 41 |
+
"august"\
|
| 42 |
+
"september"\
|
| 43 |
+
"oktober"\
|
| 44 |
+
"november"\
|
| 45 |
+
"desember"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset nn BCE "f.Kr."
|
| 48 |
+
::msgcat::mcset nn CE "e.Kr."
|
| 49 |
+
::msgcat::mcset nn DATE_FORMAT "%e. %B %Y"
|
| 50 |
+
::msgcat::mcset nn TIME_FORMAT "%H:%M:%S"
|
| 51 |
+
::msgcat::mcset nn DATE_TIME_FORMAT "%e. %B %Y %H:%M:%S %z"
|
| 52 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/pl.msg
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset pl DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"N"\
|
| 5 |
+
"Pn"\
|
| 6 |
+
"Wt"\
|
| 7 |
+
"\u015ar"\
|
| 8 |
+
"Cz"\
|
| 9 |
+
"Pt"\
|
| 10 |
+
"So"]
|
| 11 |
+
::msgcat::mcset pl DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"niedziela"\
|
| 13 |
+
"poniedzia\u0142ek"\
|
| 14 |
+
"wtorek"\
|
| 15 |
+
"\u015broda"\
|
| 16 |
+
"czwartek"\
|
| 17 |
+
"pi\u0105tek"\
|
| 18 |
+
"sobota"]
|
| 19 |
+
::msgcat::mcset pl MONTHS_ABBREV [list \
|
| 20 |
+
"sty"\
|
| 21 |
+
"lut"\
|
| 22 |
+
"mar"\
|
| 23 |
+
"kwi"\
|
| 24 |
+
"maj"\
|
| 25 |
+
"cze"\
|
| 26 |
+
"lip"\
|
| 27 |
+
"sie"\
|
| 28 |
+
"wrz"\
|
| 29 |
+
"pa\u017a"\
|
| 30 |
+
"lis"\
|
| 31 |
+
"gru"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset pl MONTHS_FULL [list \
|
| 34 |
+
"stycze\u0144"\
|
| 35 |
+
"luty"\
|
| 36 |
+
"marzec"\
|
| 37 |
+
"kwiecie\u0144"\
|
| 38 |
+
"maj"\
|
| 39 |
+
"czerwiec"\
|
| 40 |
+
"lipiec"\
|
| 41 |
+
"sierpie\u0144"\
|
| 42 |
+
"wrzesie\u0144"\
|
| 43 |
+
"pa\u017adziernik"\
|
| 44 |
+
"listopad"\
|
| 45 |
+
"grudzie\u0144"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset pl BCE "p.n.e."
|
| 48 |
+
::msgcat::mcset pl CE "n.e."
|
| 49 |
+
::msgcat::mcset pl DATE_FORMAT "%Y-%m-%d"
|
| 50 |
+
::msgcat::mcset pl TIME_FORMAT "%H:%M:%S"
|
| 51 |
+
::msgcat::mcset pl DATE_TIME_FORMAT "%Y-%m-%d %H:%M:%S %z"
|
| 52 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/pt.msg
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset pt DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"Dom"\
|
| 5 |
+
"Seg"\
|
| 6 |
+
"Ter"\
|
| 7 |
+
"Qua"\
|
| 8 |
+
"Qui"\
|
| 9 |
+
"Sex"\
|
| 10 |
+
"S\u00e1b"]
|
| 11 |
+
::msgcat::mcset pt DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"Domingo"\
|
| 13 |
+
"Segunda-feira"\
|
| 14 |
+
"Ter\u00e7a-feira"\
|
| 15 |
+
"Quarta-feira"\
|
| 16 |
+
"Quinta-feira"\
|
| 17 |
+
"Sexta-feira"\
|
| 18 |
+
"S\u00e1bado"]
|
| 19 |
+
::msgcat::mcset pt MONTHS_ABBREV [list \
|
| 20 |
+
"Jan"\
|
| 21 |
+
"Fev"\
|
| 22 |
+
"Mar"\
|
| 23 |
+
"Abr"\
|
| 24 |
+
"Mai"\
|
| 25 |
+
"Jun"\
|
| 26 |
+
"Jul"\
|
| 27 |
+
"Ago"\
|
| 28 |
+
"Set"\
|
| 29 |
+
"Out"\
|
| 30 |
+
"Nov"\
|
| 31 |
+
"Dez"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset pt MONTHS_FULL [list \
|
| 34 |
+
"Janeiro"\
|
| 35 |
+
"Fevereiro"\
|
| 36 |
+
"Mar\u00e7o"\
|
| 37 |
+
"Abril"\
|
| 38 |
+
"Maio"\
|
| 39 |
+
"Junho"\
|
| 40 |
+
"Julho"\
|
| 41 |
+
"Agosto"\
|
| 42 |
+
"Setembro"\
|
| 43 |
+
"Outubro"\
|
| 44 |
+
"Novembro"\
|
| 45 |
+
"Dezembro"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset pt DATE_FORMAT "%d-%m-%Y"
|
| 48 |
+
::msgcat::mcset pt TIME_FORMAT "%k:%M:%S"
|
| 49 |
+
::msgcat::mcset pt DATE_TIME_FORMAT "%d-%m-%Y %k:%M:%S %z"
|
| 50 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/ru_ua.msg
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset ru_UA DATE_FORMAT "%d.%m.%Y"
|
| 4 |
+
::msgcat::mcset ru_UA TIME_FORMAT "%k:%M:%S"
|
| 5 |
+
::msgcat::mcset ru_UA DATE_TIME_FORMAT "%d.%m.%Y %k:%M:%S %z"
|
| 6 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/sh.msg
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset sh DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"Ned"\
|
| 5 |
+
"Pon"\
|
| 6 |
+
"Uto"\
|
| 7 |
+
"Sre"\
|
| 8 |
+
"\u010cet"\
|
| 9 |
+
"Pet"\
|
| 10 |
+
"Sub"]
|
| 11 |
+
::msgcat::mcset sh DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"Nedelja"\
|
| 13 |
+
"Ponedeljak"\
|
| 14 |
+
"Utorak"\
|
| 15 |
+
"Sreda"\
|
| 16 |
+
"\u010cetvrtak"\
|
| 17 |
+
"Petak"\
|
| 18 |
+
"Subota"]
|
| 19 |
+
::msgcat::mcset sh MONTHS_ABBREV [list \
|
| 20 |
+
"Jan"\
|
| 21 |
+
"Feb"\
|
| 22 |
+
"Mar"\
|
| 23 |
+
"Apr"\
|
| 24 |
+
"Maj"\
|
| 25 |
+
"Jun"\
|
| 26 |
+
"Jul"\
|
| 27 |
+
"Avg"\
|
| 28 |
+
"Sep"\
|
| 29 |
+
"Okt"\
|
| 30 |
+
"Nov"\
|
| 31 |
+
"Dec"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset sh MONTHS_FULL [list \
|
| 34 |
+
"Januar"\
|
| 35 |
+
"Februar"\
|
| 36 |
+
"Mart"\
|
| 37 |
+
"April"\
|
| 38 |
+
"Maj"\
|
| 39 |
+
"Juni"\
|
| 40 |
+
"Juli"\
|
| 41 |
+
"Avgust"\
|
| 42 |
+
"Septembar"\
|
| 43 |
+
"Oktobar"\
|
| 44 |
+
"Novembar"\
|
| 45 |
+
"Decembar"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset sh BCE "p. n. e."
|
| 48 |
+
::msgcat::mcset sh CE "n. e."
|
| 49 |
+
::msgcat::mcset sh DATE_FORMAT "%d.%m.%Y."
|
| 50 |
+
::msgcat::mcset sh TIME_FORMAT "%k.%M.%S"
|
| 51 |
+
::msgcat::mcset sh DATE_TIME_FORMAT "%d.%m.%Y. %k.%M.%S %z"
|
| 52 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/sq.msg
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset sq DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"Die"\
|
| 5 |
+
"H\u00ebn"\
|
| 6 |
+
"Mar"\
|
| 7 |
+
"M\u00ebr"\
|
| 8 |
+
"Enj"\
|
| 9 |
+
"Pre"\
|
| 10 |
+
"Sht"]
|
| 11 |
+
::msgcat::mcset sq DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"e diel"\
|
| 13 |
+
"e h\u00ebn\u00eb"\
|
| 14 |
+
"e mart\u00eb"\
|
| 15 |
+
"e m\u00ebrkur\u00eb"\
|
| 16 |
+
"e enjte"\
|
| 17 |
+
"e premte"\
|
| 18 |
+
"e shtun\u00eb"]
|
| 19 |
+
::msgcat::mcset sq MONTHS_ABBREV [list \
|
| 20 |
+
"Jan"\
|
| 21 |
+
"Shk"\
|
| 22 |
+
"Mar"\
|
| 23 |
+
"Pri"\
|
| 24 |
+
"Maj"\
|
| 25 |
+
"Qer"\
|
| 26 |
+
"Kor"\
|
| 27 |
+
"Gsh"\
|
| 28 |
+
"Sht"\
|
| 29 |
+
"Tet"\
|
| 30 |
+
"N\u00ebn"\
|
| 31 |
+
"Dhj"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset sq MONTHS_FULL [list \
|
| 34 |
+
"janar"\
|
| 35 |
+
"shkurt"\
|
| 36 |
+
"mars"\
|
| 37 |
+
"prill"\
|
| 38 |
+
"maj"\
|
| 39 |
+
"qershor"\
|
| 40 |
+
"korrik"\
|
| 41 |
+
"gusht"\
|
| 42 |
+
"shtator"\
|
| 43 |
+
"tetor"\
|
| 44 |
+
"n\u00ebntor"\
|
| 45 |
+
"dhjetor"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset sq BCE "p.e.r."
|
| 48 |
+
::msgcat::mcset sq CE "n.e.r."
|
| 49 |
+
::msgcat::mcset sq AM "PD"
|
| 50 |
+
::msgcat::mcset sq PM "MD"
|
| 51 |
+
::msgcat::mcset sq DATE_FORMAT "%Y-%m-%d"
|
| 52 |
+
::msgcat::mcset sq TIME_FORMAT_12 "%l:%M:%S.%P"
|
| 53 |
+
::msgcat::mcset sq DATE_TIME_FORMAT "%Y-%m-%d %l:%M:%S.%P %z"
|
| 54 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/sw.msg
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset sw DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"Jpi"\
|
| 5 |
+
"Jtt"\
|
| 6 |
+
"Jnn"\
|
| 7 |
+
"Jtn"\
|
| 8 |
+
"Alh"\
|
| 9 |
+
"Iju"\
|
| 10 |
+
"Jmo"]
|
| 11 |
+
::msgcat::mcset sw DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"Jumapili"\
|
| 13 |
+
"Jumatatu"\
|
| 14 |
+
"Jumanne"\
|
| 15 |
+
"Jumatano"\
|
| 16 |
+
"Alhamisi"\
|
| 17 |
+
"Ijumaa"\
|
| 18 |
+
"Jumamosi"]
|
| 19 |
+
::msgcat::mcset sw MONTHS_ABBREV [list \
|
| 20 |
+
"Jan"\
|
| 21 |
+
"Feb"\
|
| 22 |
+
"Mar"\
|
| 23 |
+
"Apr"\
|
| 24 |
+
"Mei"\
|
| 25 |
+
"Jun"\
|
| 26 |
+
"Jul"\
|
| 27 |
+
"Ago"\
|
| 28 |
+
"Sep"\
|
| 29 |
+
"Okt"\
|
| 30 |
+
"Nov"\
|
| 31 |
+
"Des"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset sw MONTHS_FULL [list \
|
| 34 |
+
"Januari"\
|
| 35 |
+
"Februari"\
|
| 36 |
+
"Machi"\
|
| 37 |
+
"Aprili"\
|
| 38 |
+
"Mei"\
|
| 39 |
+
"Juni"\
|
| 40 |
+
"Julai"\
|
| 41 |
+
"Agosti"\
|
| 42 |
+
"Septemba"\
|
| 43 |
+
"Oktoba"\
|
| 44 |
+
"Novemba"\
|
| 45 |
+
"Desemba"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset sw BCE "KK"
|
| 48 |
+
::msgcat::mcset sw CE "BK"
|
| 49 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/te.msg
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset te DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"\u0c06\u0c26\u0c3f"\
|
| 5 |
+
"\u0c38\u0c4b\u0c2e"\
|
| 6 |
+
"\u0c2e\u0c02\u0c17\u0c33"\
|
| 7 |
+
"\u0c2c\u0c41\u0c27"\
|
| 8 |
+
"\u0c17\u0c41\u0c30\u0c41"\
|
| 9 |
+
"\u0c36\u0c41\u0c15\u0c4d\u0c30"\
|
| 10 |
+
"\u0c36\u0c28\u0c3f"]
|
| 11 |
+
::msgcat::mcset te DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02"\
|
| 13 |
+
"\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02"\
|
| 14 |
+
"\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02"\
|
| 15 |
+
"\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02"\
|
| 16 |
+
"\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02"\
|
| 17 |
+
"\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02"\
|
| 18 |
+
"\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02"]
|
| 19 |
+
::msgcat::mcset te MONTHS_ABBREV [list \
|
| 20 |
+
"\u0c1c\u0c28\u0c35\u0c30\u0c3f"\
|
| 21 |
+
"\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f"\
|
| 22 |
+
"\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f"\
|
| 23 |
+
"\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d"\
|
| 24 |
+
"\u0c2e\u0c47"\
|
| 25 |
+
"\u0c1c\u0c42\u0c28\u0c4d"\
|
| 26 |
+
"\u0c1c\u0c42\u0c32\u0c48"\
|
| 27 |
+
"\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41"\
|
| 28 |
+
"\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d"\
|
| 29 |
+
"\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d"\
|
| 30 |
+
"\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d"\
|
| 31 |
+
"\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset te MONTHS_FULL [list \
|
| 34 |
+
"\u0c1c\u0c28\u0c35\u0c30\u0c3f"\
|
| 35 |
+
"\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f"\
|
| 36 |
+
"\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f"\
|
| 37 |
+
"\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d"\
|
| 38 |
+
"\u0c2e\u0c47"\
|
| 39 |
+
"\u0c1c\u0c42\u0c28\u0c4d"\
|
| 40 |
+
"\u0c1c\u0c42\u0c32\u0c48"\
|
| 41 |
+
"\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41"\
|
| 42 |
+
"\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d"\
|
| 43 |
+
"\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d"\
|
| 44 |
+
"\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d"\
|
| 45 |
+
"\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d"\
|
| 46 |
+
""]
|
| 47 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/uk.msg
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset uk DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"\u043d\u0434"\
|
| 5 |
+
"\u043f\u043d"\
|
| 6 |
+
"\u0432\u0442"\
|
| 7 |
+
"\u0441\u0440"\
|
| 8 |
+
"\u0447\u0442"\
|
| 9 |
+
"\u043f\u0442"\
|
| 10 |
+
"\u0441\u0431"]
|
| 11 |
+
::msgcat::mcset uk DAYS_OF_WEEK_FULL [list \
|
| 12 |
+
"\u043d\u0435\u0434\u0456\u043b\u044f"\
|
| 13 |
+
"\u043f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a"\
|
| 14 |
+
"\u0432\u0456\u0432\u0442\u043e\u0440\u043e\u043a"\
|
| 15 |
+
"\u0441\u0435\u0440\u0435\u0434\u0430"\
|
| 16 |
+
"\u0447\u0435\u0442\u0432\u0435\u0440"\
|
| 17 |
+
"\u043f'\u044f\u0442\u043d\u0438\u0446\u044f"\
|
| 18 |
+
"\u0441\u0443\u0431\u043e\u0442\u0430"]
|
| 19 |
+
::msgcat::mcset uk MONTHS_ABBREV [list \
|
| 20 |
+
"\u0441\u0456\u0447"\
|
| 21 |
+
"\u043b\u044e\u0442"\
|
| 22 |
+
"\u0431\u0435\u0440"\
|
| 23 |
+
"\u043a\u0432\u0456\u0442"\
|
| 24 |
+
"\u0442\u0440\u0430\u0432"\
|
| 25 |
+
"\u0447\u0435\u0440\u0432"\
|
| 26 |
+
"\u043b\u0438\u043f"\
|
| 27 |
+
"\u0441\u0435\u0440\u043f"\
|
| 28 |
+
"\u0432\u0435\u0440"\
|
| 29 |
+
"\u0436\u043e\u0432\u0442"\
|
| 30 |
+
"\u043b\u0438\u0441\u0442"\
|
| 31 |
+
"\u0433\u0440\u0443\u0434"\
|
| 32 |
+
""]
|
| 33 |
+
::msgcat::mcset uk MONTHS_FULL [list \
|
| 34 |
+
"\u0441\u0456\u0447\u043d\u044f"\
|
| 35 |
+
"\u043b\u044e\u0442\u043e\u0433\u043e"\
|
| 36 |
+
"\u0431\u0435\u0440\u0435\u0437\u043d\u044f"\
|
| 37 |
+
"\u043a\u0432\u0456\u0442\u043d\u044f"\
|
| 38 |
+
"\u0442\u0440\u0430\u0432\u043d\u044f"\
|
| 39 |
+
"\u0447\u0435\u0440\u0432\u043d\u044f"\
|
| 40 |
+
"\u043b\u0438\u043f\u043d\u044f"\
|
| 41 |
+
"\u0441\u0435\u0440\u043f\u043d\u044f"\
|
| 42 |
+
"\u0432\u0435\u0440\u0435\u0441\u043d\u044f"\
|
| 43 |
+
"\u0436\u043e\u0432\u0442\u043d\u044f"\
|
| 44 |
+
"\u043b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u0430"\
|
| 45 |
+
"\u0433\u0440\u0443\u0434\u043d\u044f"\
|
| 46 |
+
""]
|
| 47 |
+
::msgcat::mcset uk BCE "\u0434\u043e \u043d.\u0435."
|
| 48 |
+
::msgcat::mcset uk CE "\u043f\u0456\u0441\u043b\u044f \u043d.\u0435."
|
| 49 |
+
::msgcat::mcset uk DATE_FORMAT "%e/%m/%Y"
|
| 50 |
+
::msgcat::mcset uk TIME_FORMAT "%k:%M:%S"
|
| 51 |
+
::msgcat::mcset uk DATE_TIME_FORMAT "%e/%m/%Y %k:%M:%S %z"
|
| 52 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/zh_hk.msg
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset zh_HK DAYS_OF_WEEK_ABBREV [list \
|
| 4 |
+
"\u65e5"\
|
| 5 |
+
"\u4e00"\
|
| 6 |
+
"\u4e8c"\
|
| 7 |
+
"\u4e09"\
|
| 8 |
+
"\u56db"\
|
| 9 |
+
"\u4e94"\
|
| 10 |
+
"\u516d"]
|
| 11 |
+
::msgcat::mcset zh_HK MONTHS_ABBREV [list \
|
| 12 |
+
"1\u6708"\
|
| 13 |
+
"2\u6708"\
|
| 14 |
+
"3\u6708"\
|
| 15 |
+
"4\u6708"\
|
| 16 |
+
"5\u6708"\
|
| 17 |
+
"6\u6708"\
|
| 18 |
+
"7\u6708"\
|
| 19 |
+
"8\u6708"\
|
| 20 |
+
"9\u6708"\
|
| 21 |
+
"10\u6708"\
|
| 22 |
+
"11\u6708"\
|
| 23 |
+
"12\u6708"\
|
| 24 |
+
""]
|
| 25 |
+
::msgcat::mcset zh_HK DATE_FORMAT "%Y\u5e74%m\u6708%e\u65e5"
|
| 26 |
+
::msgcat::mcset zh_HK TIME_FORMAT_12 "%P%I:%M:%S"
|
| 27 |
+
::msgcat::mcset zh_HK DATE_TIME_FORMAT "%Y\u5e74%m\u6708%e\u65e5 %P%I:%M:%S %z"
|
| 28 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/msgs/zh_tw.msg
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# created by tools/loadICU.tcl -- do not edit
|
| 2 |
+
namespace eval ::tcl::clock {
|
| 3 |
+
::msgcat::mcset zh_TW BCE "\u6c11\u570b\u524d"
|
| 4 |
+
::msgcat::mcset zh_TW CE "\u6c11\u570b"
|
| 5 |
+
::msgcat::mcset zh_TW DATE_FORMAT "%Y/%m/%e"
|
| 6 |
+
::msgcat::mcset zh_TW TIME_FORMAT_12 "%P %I:%M:%S"
|
| 7 |
+
::msgcat::mcset zh_TW DATE_TIME_FORMAT "%Y/%m/%e %P %I:%M:%S %z"
|
| 8 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/opt0.4/optparse.tcl
ADDED
|
@@ -0,0 +1,1072 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# optparse.tcl --
|
| 2 |
+
#
|
| 3 |
+
# (private) Option parsing package
|
| 4 |
+
# Primarily used internally by the safe:: code.
|
| 5 |
+
#
|
| 6 |
+
# WARNING: This code will go away in a future release
|
| 7 |
+
# of Tcl. It is NOT supported and you should not rely
|
| 8 |
+
# on it. If your code does rely on this package you
|
| 9 |
+
# may directly incorporate this code into your application.
|
| 10 |
+
|
| 11 |
+
package require Tcl 8.5-
|
| 12 |
+
# When this version number changes, update the pkgIndex.tcl file
|
| 13 |
+
# and the install directory in the Makefiles.
|
| 14 |
+
package provide opt 0.4.8
|
| 15 |
+
|
| 16 |
+
namespace eval ::tcl {
|
| 17 |
+
|
| 18 |
+
# Exported APIs
|
| 19 |
+
namespace export OptKeyRegister OptKeyDelete OptKeyError OptKeyParse \
|
| 20 |
+
OptProc OptProcArgGiven OptParse \
|
| 21 |
+
Lempty Lget \
|
| 22 |
+
Lassign Lvarpop Lvarpop1 Lvarset Lvarincr \
|
| 23 |
+
SetMax SetMin
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
################# Example of use / 'user documentation' ###################
|
| 27 |
+
|
| 28 |
+
proc OptCreateTestProc {} {
|
| 29 |
+
|
| 30 |
+
# Defines ::tcl::OptParseTest as a test proc with parsed arguments
|
| 31 |
+
# (can't be defined before the code below is loaded (before "OptProc"))
|
| 32 |
+
|
| 33 |
+
# Every OptProc give usage information on "procname -help".
|
| 34 |
+
# Try "tcl::OptParseTest -help" and "tcl::OptParseTest -a" and
|
| 35 |
+
# then other arguments.
|
| 36 |
+
#
|
| 37 |
+
# example of 'valid' call:
|
| 38 |
+
# ::tcl::OptParseTest save -4 -pr 23 -libsok SybTcl\
|
| 39 |
+
# -nostatics false ch1
|
| 40 |
+
OptProc OptParseTest {
|
| 41 |
+
{subcommand -choice {save print} "sub command"}
|
| 42 |
+
{arg1 3 "some number"}
|
| 43 |
+
{-aflag}
|
| 44 |
+
{-intflag 7}
|
| 45 |
+
{-weirdflag "help string"}
|
| 46 |
+
{-noStatics "Not ok to load static packages"}
|
| 47 |
+
{-nestedloading1 true "OK to load into nested children"}
|
| 48 |
+
{-nestedloading2 -boolean true "OK to load into nested children"}
|
| 49 |
+
{-libsOK -choice {Tk SybTcl}
|
| 50 |
+
"List of packages that can be loaded"}
|
| 51 |
+
{-precision -int 12 "Number of digits of precision"}
|
| 52 |
+
{-intval 7 "An integer"}
|
| 53 |
+
{-scale -float 1.0 "Scale factor"}
|
| 54 |
+
{-zoom 1.0 "Zoom factor"}
|
| 55 |
+
{-arbitrary foobar "Arbitrary string"}
|
| 56 |
+
{-random -string 12 "Random string"}
|
| 57 |
+
{-listval -list {} "List value"}
|
| 58 |
+
{-blahflag -blah abc "Funny type"}
|
| 59 |
+
{arg2 -boolean "a boolean"}
|
| 60 |
+
{arg3 -choice "ch1 ch2"}
|
| 61 |
+
{?optarg? -list {} "optional argument"}
|
| 62 |
+
} {
|
| 63 |
+
foreach v [info locals] {
|
| 64 |
+
puts stderr [format "%14s : %s" $v [set $v]]
|
| 65 |
+
}
|
| 66 |
+
}
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
################### No User serviceable part below ! ###############
|
| 70 |
+
|
| 71 |
+
# Array storing the parsed descriptions
|
| 72 |
+
variable OptDesc
|
| 73 |
+
array set OptDesc {}
|
| 74 |
+
# Next potentially free key id (numeric)
|
| 75 |
+
variable OptDescN 0
|
| 76 |
+
|
| 77 |
+
# Inside algorithm/mechanism description:
|
| 78 |
+
# (not for the faint hearted ;-)
|
| 79 |
+
#
|
| 80 |
+
# The argument description is parsed into a "program tree"
|
| 81 |
+
# It is called a "program" because it is the program used by
|
| 82 |
+
# the state machine interpreter that use that program to
|
| 83 |
+
# actually parse the arguments at run time.
|
| 84 |
+
#
|
| 85 |
+
# The general structure of a "program" is
|
| 86 |
+
# notation (pseudo bnf like)
|
| 87 |
+
# name :== definition defines "name" as being "definition"
|
| 88 |
+
# { x y z } means list of x, y, and z
|
| 89 |
+
# x* means x repeated 0 or more time
|
| 90 |
+
# x+ means "x x*"
|
| 91 |
+
# x? means optionally x
|
| 92 |
+
# x | y means x or y
|
| 93 |
+
# "cccc" means the literal string
|
| 94 |
+
#
|
| 95 |
+
# program :== { programCounter programStep* }
|
| 96 |
+
#
|
| 97 |
+
# programStep :== program | singleStep
|
| 98 |
+
#
|
| 99 |
+
# programCounter :== {"P" integer+ }
|
| 100 |
+
#
|
| 101 |
+
# singleStep :== { instruction parameters* }
|
| 102 |
+
#
|
| 103 |
+
# instruction :== single element list
|
| 104 |
+
#
|
| 105 |
+
# (the difference between singleStep and program is that \
|
| 106 |
+
# llength [lindex $program 0] >= 2
|
| 107 |
+
# while
|
| 108 |
+
# llength [lindex $singleStep 0] == 1
|
| 109 |
+
# )
|
| 110 |
+
#
|
| 111 |
+
# And for this application:
|
| 112 |
+
#
|
| 113 |
+
# singleStep :== { instruction varname {hasBeenSet currentValue} type
|
| 114 |
+
# typeArgs help }
|
| 115 |
+
# instruction :== "flags" | "value"
|
| 116 |
+
# type :== knowType | anyword
|
| 117 |
+
# knowType :== "string" | "int" | "boolean" | "boolflag" | "float"
|
| 118 |
+
# | "choice"
|
| 119 |
+
#
|
| 120 |
+
# for type "choice" typeArgs is a list of possible choices, the first one
|
| 121 |
+
# is the default value. for all other types the typeArgs is the default value
|
| 122 |
+
#
|
| 123 |
+
# a "boolflag" is the type for a flag whose presence or absence, without
|
| 124 |
+
# additional arguments means respectively true or false (default flag type).
|
| 125 |
+
#
|
| 126 |
+
# programCounter is the index in the list of the currently processed
|
| 127 |
+
# programStep (thus starting at 1 (0 is {"P" prgCounterValue}).
|
| 128 |
+
# If it is a list it points toward each currently selected programStep.
|
| 129 |
+
# (like for "flags", as they are optional, form a set and programStep).
|
| 130 |
+
|
| 131 |
+
# Performance/Implementation issues
|
| 132 |
+
# ---------------------------------
|
| 133 |
+
# We use tcl lists instead of arrays because with tcl8.0
|
| 134 |
+
# they should start to be much faster.
|
| 135 |
+
# But this code use a lot of helper procs (like Lvarset)
|
| 136 |
+
# which are quite slow and would be helpfully optimized
|
| 137 |
+
# for instance by being written in C. Also our struture
|
| 138 |
+
# is complex and there is maybe some places where the
|
| 139 |
+
# string rep might be calculated at great exense. to be checked.
|
| 140 |
+
|
| 141 |
+
#
|
| 142 |
+
# Parse a given description and saves it here under the given key
|
| 143 |
+
# generate a unused keyid if not given
|
| 144 |
+
#
|
| 145 |
+
proc ::tcl::OptKeyRegister {desc {key ""}} {
|
| 146 |
+
variable OptDesc
|
| 147 |
+
variable OptDescN
|
| 148 |
+
if {[string equal $key ""]} {
|
| 149 |
+
# in case a key given to us as a parameter was a number
|
| 150 |
+
while {[info exists OptDesc($OptDescN)]} {incr OptDescN}
|
| 151 |
+
set key $OptDescN
|
| 152 |
+
incr OptDescN
|
| 153 |
+
}
|
| 154 |
+
# program counter
|
| 155 |
+
set program [list [list "P" 1]]
|
| 156 |
+
|
| 157 |
+
# are we processing flags (which makes a single program step)
|
| 158 |
+
set inflags 0
|
| 159 |
+
|
| 160 |
+
set state {}
|
| 161 |
+
|
| 162 |
+
# flag used to detect that we just have a single (flags set) subprogram.
|
| 163 |
+
set empty 1
|
| 164 |
+
|
| 165 |
+
foreach item $desc {
|
| 166 |
+
if {$state == "args"} {
|
| 167 |
+
# more items after 'args'...
|
| 168 |
+
return -code error "'args' special argument must be the last one"
|
| 169 |
+
}
|
| 170 |
+
set res [OptNormalizeOne $item]
|
| 171 |
+
set state [lindex $res 0]
|
| 172 |
+
if {$inflags} {
|
| 173 |
+
if {$state == "flags"} {
|
| 174 |
+
# add to 'subprogram'
|
| 175 |
+
lappend flagsprg $res
|
| 176 |
+
} else {
|
| 177 |
+
# put in the flags
|
| 178 |
+
# structure for flag programs items is a list of
|
| 179 |
+
# {subprgcounter {prg flag 1} {prg flag 2} {...}}
|
| 180 |
+
lappend program $flagsprg
|
| 181 |
+
# put the other regular stuff
|
| 182 |
+
lappend program $res
|
| 183 |
+
set inflags 0
|
| 184 |
+
set empty 0
|
| 185 |
+
}
|
| 186 |
+
} else {
|
| 187 |
+
if {$state == "flags"} {
|
| 188 |
+
set inflags 1
|
| 189 |
+
# sub program counter + first sub program
|
| 190 |
+
set flagsprg [list [list "P" 1] $res]
|
| 191 |
+
} else {
|
| 192 |
+
lappend program $res
|
| 193 |
+
set empty 0
|
| 194 |
+
}
|
| 195 |
+
}
|
| 196 |
+
}
|
| 197 |
+
if {$inflags} {
|
| 198 |
+
if {$empty} {
|
| 199 |
+
# We just have the subprogram, optimize and remove
|
| 200 |
+
# unneeded level:
|
| 201 |
+
set program $flagsprg
|
| 202 |
+
} else {
|
| 203 |
+
lappend program $flagsprg
|
| 204 |
+
}
|
| 205 |
+
}
|
| 206 |
+
|
| 207 |
+
set OptDesc($key) $program
|
| 208 |
+
|
| 209 |
+
return $key
|
| 210 |
+
}
|
| 211 |
+
|
| 212 |
+
#
|
| 213 |
+
# Free the storage for that given key
|
| 214 |
+
#
|
| 215 |
+
proc ::tcl::OptKeyDelete {key} {
|
| 216 |
+
variable OptDesc
|
| 217 |
+
unset OptDesc($key)
|
| 218 |
+
}
|
| 219 |
+
|
| 220 |
+
# Get the parsed description stored under the given key.
|
| 221 |
+
proc OptKeyGetDesc {descKey} {
|
| 222 |
+
variable OptDesc
|
| 223 |
+
if {![info exists OptDesc($descKey)]} {
|
| 224 |
+
return -code error "Unknown option description key \"$descKey\""
|
| 225 |
+
}
|
| 226 |
+
set OptDesc($descKey)
|
| 227 |
+
}
|
| 228 |
+
|
| 229 |
+
# Parse entry point for ppl who don't want to register with a key,
|
| 230 |
+
# for instance because the description changes dynamically.
|
| 231 |
+
# (otherwise one should really use OptKeyRegister once + OptKeyParse
|
| 232 |
+
# as it is way faster or simply OptProc which does it all)
|
| 233 |
+
# Assign a temporary key, call OptKeyParse and then free the storage
|
| 234 |
+
proc ::tcl::OptParse {desc arglist} {
|
| 235 |
+
set tempkey [OptKeyRegister $desc]
|
| 236 |
+
set ret [catch {uplevel 1 [list ::tcl::OptKeyParse $tempkey $arglist]} res]
|
| 237 |
+
OptKeyDelete $tempkey
|
| 238 |
+
return -code $ret $res
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
# Helper function, replacement for proc that both
|
| 242 |
+
# register the description under a key which is the name of the proc
|
| 243 |
+
# (and thus unique to that code)
|
| 244 |
+
# and add a first line to the code to call the OptKeyParse proc
|
| 245 |
+
# Stores the list of variables that have been actually given by the user
|
| 246 |
+
# (the other will be sets to their default value)
|
| 247 |
+
# into local variable named "Args".
|
| 248 |
+
proc ::tcl::OptProc {name desc body} {
|
| 249 |
+
set namespace [uplevel 1 [list ::namespace current]]
|
| 250 |
+
if {[string match "::*" $name] || [string equal $namespace "::"]} {
|
| 251 |
+
# absolute name or global namespace, name is the key
|
| 252 |
+
set key $name
|
| 253 |
+
} else {
|
| 254 |
+
# we are relative to some non top level namespace:
|
| 255 |
+
set key "${namespace}::${name}"
|
| 256 |
+
}
|
| 257 |
+
OptKeyRegister $desc $key
|
| 258 |
+
uplevel 1 [list ::proc $name args "set Args \[::tcl::OptKeyParse $key \$args\]\n$body"]
|
| 259 |
+
return $key
|
| 260 |
+
}
|
| 261 |
+
# Check that a argument has been given
|
| 262 |
+
# assumes that "OptProc" has been used as it will check in "Args" list
|
| 263 |
+
proc ::tcl::OptProcArgGiven {argname} {
|
| 264 |
+
upvar Args alist
|
| 265 |
+
expr {[lsearch $alist $argname] >=0}
|
| 266 |
+
}
|
| 267 |
+
|
| 268 |
+
#######
|
| 269 |
+
# Programs/Descriptions manipulation
|
| 270 |
+
|
| 271 |
+
# Return the instruction word/list of a given step/(sub)program
|
| 272 |
+
proc OptInstr {lst} {
|
| 273 |
+
lindex $lst 0
|
| 274 |
+
}
|
| 275 |
+
# Is a (sub) program or a plain instruction ?
|
| 276 |
+
proc OptIsPrg {lst} {
|
| 277 |
+
expr {[llength [OptInstr $lst]]>=2}
|
| 278 |
+
}
|
| 279 |
+
# Is this instruction a program counter or a real instr
|
| 280 |
+
proc OptIsCounter {item} {
|
| 281 |
+
expr {[lindex $item 0]=="P"}
|
| 282 |
+
}
|
| 283 |
+
# Current program counter (2nd word of first word)
|
| 284 |
+
proc OptGetPrgCounter {lst} {
|
| 285 |
+
Lget $lst {0 1}
|
| 286 |
+
}
|
| 287 |
+
# Current program counter (2nd word of first word)
|
| 288 |
+
proc OptSetPrgCounter {lstName newValue} {
|
| 289 |
+
upvar $lstName lst
|
| 290 |
+
set lst [lreplace $lst 0 0 [concat "P" $newValue]]
|
| 291 |
+
}
|
| 292 |
+
# returns a list of currently selected items.
|
| 293 |
+
proc OptSelection {lst} {
|
| 294 |
+
set res {}
|
| 295 |
+
foreach idx [lrange [lindex $lst 0] 1 end] {
|
| 296 |
+
lappend res [Lget $lst $idx]
|
| 297 |
+
}
|
| 298 |
+
return $res
|
| 299 |
+
}
|
| 300 |
+
|
| 301 |
+
# Advance to next description
|
| 302 |
+
proc OptNextDesc {descName} {
|
| 303 |
+
uplevel 1 [list Lvarincr $descName {0 1}]
|
| 304 |
+
}
|
| 305 |
+
|
| 306 |
+
# Get the current description, eventually descend
|
| 307 |
+
proc OptCurDesc {descriptions} {
|
| 308 |
+
lindex $descriptions [OptGetPrgCounter $descriptions]
|
| 309 |
+
}
|
| 310 |
+
# get the current description, eventually descend
|
| 311 |
+
# through sub programs as needed.
|
| 312 |
+
proc OptCurDescFinal {descriptions} {
|
| 313 |
+
set item [OptCurDesc $descriptions]
|
| 314 |
+
# Descend untill we get the actual item and not a sub program
|
| 315 |
+
while {[OptIsPrg $item]} {
|
| 316 |
+
set item [OptCurDesc $item]
|
| 317 |
+
}
|
| 318 |
+
return $item
|
| 319 |
+
}
|
| 320 |
+
# Current final instruction adress
|
| 321 |
+
proc OptCurAddr {descriptions {start {}}} {
|
| 322 |
+
set adress [OptGetPrgCounter $descriptions]
|
| 323 |
+
lappend start $adress
|
| 324 |
+
set item [lindex $descriptions $adress]
|
| 325 |
+
if {[OptIsPrg $item]} {
|
| 326 |
+
return [OptCurAddr $item $start]
|
| 327 |
+
} else {
|
| 328 |
+
return $start
|
| 329 |
+
}
|
| 330 |
+
}
|
| 331 |
+
# Set the value field of the current instruction
|
| 332 |
+
proc OptCurSetValue {descriptionsName value} {
|
| 333 |
+
upvar $descriptionsName descriptions
|
| 334 |
+
# get the current item full adress
|
| 335 |
+
set adress [OptCurAddr $descriptions]
|
| 336 |
+
# use the 3th field of the item (see OptValue / OptNewInst)
|
| 337 |
+
lappend adress 2
|
| 338 |
+
Lvarset descriptions $adress [list 1 $value]
|
| 339 |
+
# ^hasBeenSet flag
|
| 340 |
+
}
|
| 341 |
+
|
| 342 |
+
# empty state means done/paste the end of the program
|
| 343 |
+
proc OptState {item} {
|
| 344 |
+
lindex $item 0
|
| 345 |
+
}
|
| 346 |
+
|
| 347 |
+
# current state
|
| 348 |
+
proc OptCurState {descriptions} {
|
| 349 |
+
OptState [OptCurDesc $descriptions]
|
| 350 |
+
}
|
| 351 |
+
|
| 352 |
+
#######
|
| 353 |
+
# Arguments manipulation
|
| 354 |
+
|
| 355 |
+
# Returns the argument that has to be processed now
|
| 356 |
+
proc OptCurrentArg {lst} {
|
| 357 |
+
lindex $lst 0
|
| 358 |
+
}
|
| 359 |
+
# Advance to next argument
|
| 360 |
+
proc OptNextArg {argsName} {
|
| 361 |
+
uplevel 1 [list Lvarpop1 $argsName]
|
| 362 |
+
}
|
| 363 |
+
#######
|
| 364 |
+
|
| 365 |
+
|
| 366 |
+
|
| 367 |
+
|
| 368 |
+
|
| 369 |
+
# Loop over all descriptions, calling OptDoOne which will
|
| 370 |
+
# eventually eat all the arguments.
|
| 371 |
+
proc OptDoAll {descriptionsName argumentsName} {
|
| 372 |
+
upvar $descriptionsName descriptions
|
| 373 |
+
upvar $argumentsName arguments
|
| 374 |
+
# puts "entered DoAll"
|
| 375 |
+
# Nb: the places where "state" can be set are tricky to figure
|
| 376 |
+
# because DoOne sets the state to flagsValue and return -continue
|
| 377 |
+
# when needed...
|
| 378 |
+
set state [OptCurState $descriptions]
|
| 379 |
+
# We'll exit the loop in "OptDoOne" or when state is empty.
|
| 380 |
+
while 1 {
|
| 381 |
+
set curitem [OptCurDesc $descriptions]
|
| 382 |
+
# Do subprograms if needed, call ourselves on the sub branch
|
| 383 |
+
while {[OptIsPrg $curitem]} {
|
| 384 |
+
OptDoAll curitem arguments
|
| 385 |
+
# puts "done DoAll sub"
|
| 386 |
+
# Insert back the results in current tree
|
| 387 |
+
Lvarset1nc descriptions [OptGetPrgCounter $descriptions]\
|
| 388 |
+
$curitem
|
| 389 |
+
OptNextDesc descriptions
|
| 390 |
+
set curitem [OptCurDesc $descriptions]
|
| 391 |
+
set state [OptCurState $descriptions]
|
| 392 |
+
}
|
| 393 |
+
# puts "state = \"$state\" - arguments=($arguments)"
|
| 394 |
+
if {[Lempty $state]} {
|
| 395 |
+
# Nothing left to do, we are done in this branch:
|
| 396 |
+
break
|
| 397 |
+
}
|
| 398 |
+
# The following statement can make us terminate/continue
|
| 399 |
+
# as it use return -code {break, continue, return and error}
|
| 400 |
+
# codes
|
| 401 |
+
OptDoOne descriptions state arguments
|
| 402 |
+
# If we are here, no special return code where issued,
|
| 403 |
+
# we'll step to next instruction :
|
| 404 |
+
# puts "new state = \"$state\""
|
| 405 |
+
OptNextDesc descriptions
|
| 406 |
+
set state [OptCurState $descriptions]
|
| 407 |
+
}
|
| 408 |
+
}
|
| 409 |
+
|
| 410 |
+
# Process one step for the state machine,
|
| 411 |
+
# eventually consuming the current argument.
|
| 412 |
+
proc OptDoOne {descriptionsName stateName argumentsName} {
|
| 413 |
+
upvar $argumentsName arguments
|
| 414 |
+
upvar $descriptionsName descriptions
|
| 415 |
+
upvar $stateName state
|
| 416 |
+
|
| 417 |
+
# the special state/instruction "args" eats all
|
| 418 |
+
# the remaining args (if any)
|
| 419 |
+
if {($state == "args")} {
|
| 420 |
+
if {![Lempty $arguments]} {
|
| 421 |
+
# If there is no additional arguments, leave the default value
|
| 422 |
+
# in.
|
| 423 |
+
OptCurSetValue descriptions $arguments
|
| 424 |
+
set arguments {}
|
| 425 |
+
}
|
| 426 |
+
# puts "breaking out ('args' state: consuming every reminding args)"
|
| 427 |
+
return -code break
|
| 428 |
+
}
|
| 429 |
+
|
| 430 |
+
if {[Lempty $arguments]} {
|
| 431 |
+
if {$state == "flags"} {
|
| 432 |
+
# no argument and no flags : we're done
|
| 433 |
+
# puts "returning to previous (sub)prg (no more args)"
|
| 434 |
+
return -code return
|
| 435 |
+
} elseif {$state == "optValue"} {
|
| 436 |
+
set state next; # not used, for debug only
|
| 437 |
+
# go to next state
|
| 438 |
+
return
|
| 439 |
+
} else {
|
| 440 |
+
return -code error [OptMissingValue $descriptions]
|
| 441 |
+
}
|
| 442 |
+
} else {
|
| 443 |
+
set arg [OptCurrentArg $arguments]
|
| 444 |
+
}
|
| 445 |
+
|
| 446 |
+
switch $state {
|
| 447 |
+
flags {
|
| 448 |
+
# A non-dash argument terminates the options, as does --
|
| 449 |
+
|
| 450 |
+
# Still a flag ?
|
| 451 |
+
if {![OptIsFlag $arg]} {
|
| 452 |
+
# don't consume the argument, return to previous prg
|
| 453 |
+
return -code return
|
| 454 |
+
}
|
| 455 |
+
# consume the flag
|
| 456 |
+
OptNextArg arguments
|
| 457 |
+
if {[string equal "--" $arg]} {
|
| 458 |
+
# return from 'flags' state
|
| 459 |
+
return -code return
|
| 460 |
+
}
|
| 461 |
+
|
| 462 |
+
set hits [OptHits descriptions $arg]
|
| 463 |
+
if {$hits > 1} {
|
| 464 |
+
return -code error [OptAmbigous $descriptions $arg]
|
| 465 |
+
} elseif {$hits == 0} {
|
| 466 |
+
return -code error [OptFlagUsage $descriptions $arg]
|
| 467 |
+
}
|
| 468 |
+
set item [OptCurDesc $descriptions]
|
| 469 |
+
if {[OptNeedValue $item]} {
|
| 470 |
+
# we need a value, next state is
|
| 471 |
+
set state flagValue
|
| 472 |
+
} else {
|
| 473 |
+
OptCurSetValue descriptions 1
|
| 474 |
+
}
|
| 475 |
+
# continue
|
| 476 |
+
return -code continue
|
| 477 |
+
}
|
| 478 |
+
flagValue -
|
| 479 |
+
value {
|
| 480 |
+
set item [OptCurDesc $descriptions]
|
| 481 |
+
# Test the values against their required type
|
| 482 |
+
if {[catch {OptCheckType $arg\
|
| 483 |
+
[OptType $item] [OptTypeArgs $item]} val]} {
|
| 484 |
+
return -code error [OptBadValue $item $arg $val]
|
| 485 |
+
}
|
| 486 |
+
# consume the value
|
| 487 |
+
OptNextArg arguments
|
| 488 |
+
# set the value
|
| 489 |
+
OptCurSetValue descriptions $val
|
| 490 |
+
# go to next state
|
| 491 |
+
if {$state == "flagValue"} {
|
| 492 |
+
set state flags
|
| 493 |
+
return -code continue
|
| 494 |
+
} else {
|
| 495 |
+
set state next; # not used, for debug only
|
| 496 |
+
return ; # will go on next step
|
| 497 |
+
}
|
| 498 |
+
}
|
| 499 |
+
optValue {
|
| 500 |
+
set item [OptCurDesc $descriptions]
|
| 501 |
+
# Test the values against their required type
|
| 502 |
+
if {![catch {OptCheckType $arg\
|
| 503 |
+
[OptType $item] [OptTypeArgs $item]} val]} {
|
| 504 |
+
# right type, so :
|
| 505 |
+
# consume the value
|
| 506 |
+
OptNextArg arguments
|
| 507 |
+
# set the value
|
| 508 |
+
OptCurSetValue descriptions $val
|
| 509 |
+
}
|
| 510 |
+
# go to next state
|
| 511 |
+
set state next; # not used, for debug only
|
| 512 |
+
return ; # will go on next step
|
| 513 |
+
}
|
| 514 |
+
}
|
| 515 |
+
# If we reach this point: an unknown
|
| 516 |
+
# state as been entered !
|
| 517 |
+
return -code error "Bug! unknown state in DoOne \"$state\"\
|
| 518 |
+
(prg counter [OptGetPrgCounter $descriptions]:\
|
| 519 |
+
[OptCurDesc $descriptions])"
|
| 520 |
+
}
|
| 521 |
+
|
| 522 |
+
# Parse the options given the key to previously registered description
|
| 523 |
+
# and arguments list
|
| 524 |
+
proc ::tcl::OptKeyParse {descKey arglist} {
|
| 525 |
+
|
| 526 |
+
set desc [OptKeyGetDesc $descKey]
|
| 527 |
+
|
| 528 |
+
# make sure -help always give usage
|
| 529 |
+
if {[string equal -nocase "-help" $arglist]} {
|
| 530 |
+
return -code error [OptError "Usage information:" $desc 1]
|
| 531 |
+
}
|
| 532 |
+
|
| 533 |
+
OptDoAll desc arglist
|
| 534 |
+
|
| 535 |
+
if {![Lempty $arglist]} {
|
| 536 |
+
return -code error [OptTooManyArgs $desc $arglist]
|
| 537 |
+
}
|
| 538 |
+
|
| 539 |
+
# Analyse the result
|
| 540 |
+
# Walk through the tree:
|
| 541 |
+
OptTreeVars $desc "#[expr {[info level]-1}]"
|
| 542 |
+
}
|
| 543 |
+
|
| 544 |
+
# determine string length for nice tabulated output
|
| 545 |
+
proc OptTreeVars {desc level {vnamesLst {}}} {
|
| 546 |
+
foreach item $desc {
|
| 547 |
+
if {[OptIsCounter $item]} continue
|
| 548 |
+
if {[OptIsPrg $item]} {
|
| 549 |
+
set vnamesLst [OptTreeVars $item $level $vnamesLst]
|
| 550 |
+
} else {
|
| 551 |
+
set vname [OptVarName $item]
|
| 552 |
+
upvar $level $vname var
|
| 553 |
+
if {[OptHasBeenSet $item]} {
|
| 554 |
+
# puts "adding $vname"
|
| 555 |
+
# lets use the input name for the returned list
|
| 556 |
+
# it is more usefull, for instance you can check that
|
| 557 |
+
# no flags at all was given with expr
|
| 558 |
+
# {![string match "*-*" $Args]}
|
| 559 |
+
lappend vnamesLst [OptName $item]
|
| 560 |
+
set var [OptValue $item]
|
| 561 |
+
} else {
|
| 562 |
+
set var [OptDefaultValue $item]
|
| 563 |
+
}
|
| 564 |
+
}
|
| 565 |
+
}
|
| 566 |
+
return $vnamesLst
|
| 567 |
+
}
|
| 568 |
+
|
| 569 |
+
|
| 570 |
+
# Check the type of a value
|
| 571 |
+
# and emit an error if arg is not of the correct type
|
| 572 |
+
# otherwise returns the canonical value of that arg (ie 0/1 for booleans)
|
| 573 |
+
proc ::tcl::OptCheckType {arg type {typeArgs ""}} {
|
| 574 |
+
# puts "checking '$arg' against '$type' ($typeArgs)"
|
| 575 |
+
|
| 576 |
+
# only types "any", "choice", and numbers can have leading "-"
|
| 577 |
+
|
| 578 |
+
switch -exact -- $type {
|
| 579 |
+
int {
|
| 580 |
+
if {![string is integer -strict $arg]} {
|
| 581 |
+
error "not an integer"
|
| 582 |
+
}
|
| 583 |
+
return $arg
|
| 584 |
+
}
|
| 585 |
+
float {
|
| 586 |
+
return [expr {double($arg)}]
|
| 587 |
+
}
|
| 588 |
+
script -
|
| 589 |
+
list {
|
| 590 |
+
# if llength fail : malformed list
|
| 591 |
+
if {[llength $arg]==0 && [OptIsFlag $arg]} {
|
| 592 |
+
error "no values with leading -"
|
| 593 |
+
}
|
| 594 |
+
return $arg
|
| 595 |
+
}
|
| 596 |
+
boolean {
|
| 597 |
+
if {![string is boolean -strict $arg]} {
|
| 598 |
+
error "non canonic boolean"
|
| 599 |
+
}
|
| 600 |
+
# convert true/false because expr/if is broken with "!,...
|
| 601 |
+
return [expr {$arg ? 1 : 0}]
|
| 602 |
+
}
|
| 603 |
+
choice {
|
| 604 |
+
if {$arg ni $typeArgs} {
|
| 605 |
+
error "invalid choice"
|
| 606 |
+
}
|
| 607 |
+
return $arg
|
| 608 |
+
}
|
| 609 |
+
any {
|
| 610 |
+
return $arg
|
| 611 |
+
}
|
| 612 |
+
string -
|
| 613 |
+
default {
|
| 614 |
+
if {[OptIsFlag $arg]} {
|
| 615 |
+
error "no values with leading -"
|
| 616 |
+
}
|
| 617 |
+
return $arg
|
| 618 |
+
}
|
| 619 |
+
}
|
| 620 |
+
return neverReached
|
| 621 |
+
}
|
| 622 |
+
|
| 623 |
+
# internal utilities
|
| 624 |
+
|
| 625 |
+
# returns the number of flags matching the given arg
|
| 626 |
+
# sets the (local) prg counter to the list of matches
|
| 627 |
+
proc OptHits {descName arg} {
|
| 628 |
+
upvar $descName desc
|
| 629 |
+
set hits 0
|
| 630 |
+
set hitems {}
|
| 631 |
+
set i 1
|
| 632 |
+
|
| 633 |
+
set larg [string tolower $arg]
|
| 634 |
+
set len [string length $larg]
|
| 635 |
+
set last [expr {$len-1}]
|
| 636 |
+
|
| 637 |
+
foreach item [lrange $desc 1 end] {
|
| 638 |
+
set flag [OptName $item]
|
| 639 |
+
# lets try to match case insensitively
|
| 640 |
+
# (string length ought to be cheap)
|
| 641 |
+
set lflag [string tolower $flag]
|
| 642 |
+
if {$len == [string length $lflag]} {
|
| 643 |
+
if {[string equal $larg $lflag]} {
|
| 644 |
+
# Exact match case
|
| 645 |
+
OptSetPrgCounter desc $i
|
| 646 |
+
return 1
|
| 647 |
+
}
|
| 648 |
+
} elseif {[string equal $larg [string range $lflag 0 $last]]} {
|
| 649 |
+
lappend hitems $i
|
| 650 |
+
incr hits
|
| 651 |
+
}
|
| 652 |
+
incr i
|
| 653 |
+
}
|
| 654 |
+
if {$hits} {
|
| 655 |
+
OptSetPrgCounter desc $hitems
|
| 656 |
+
}
|
| 657 |
+
return $hits
|
| 658 |
+
}
|
| 659 |
+
|
| 660 |
+
# Extract fields from the list structure:
|
| 661 |
+
|
| 662 |
+
proc OptName {item} {
|
| 663 |
+
lindex $item 1
|
| 664 |
+
}
|
| 665 |
+
proc OptHasBeenSet {item} {
|
| 666 |
+
Lget $item {2 0}
|
| 667 |
+
}
|
| 668 |
+
proc OptValue {item} {
|
| 669 |
+
Lget $item {2 1}
|
| 670 |
+
}
|
| 671 |
+
|
| 672 |
+
proc OptIsFlag {name} {
|
| 673 |
+
string match "-*" $name
|
| 674 |
+
}
|
| 675 |
+
proc OptIsOpt {name} {
|
| 676 |
+
string match {\?*} $name
|
| 677 |
+
}
|
| 678 |
+
proc OptVarName {item} {
|
| 679 |
+
set name [OptName $item]
|
| 680 |
+
if {[OptIsFlag $name]} {
|
| 681 |
+
return [string range $name 1 end]
|
| 682 |
+
} elseif {[OptIsOpt $name]} {
|
| 683 |
+
return [string trim $name "?"]
|
| 684 |
+
} else {
|
| 685 |
+
return $name
|
| 686 |
+
}
|
| 687 |
+
}
|
| 688 |
+
proc OptType {item} {
|
| 689 |
+
lindex $item 3
|
| 690 |
+
}
|
| 691 |
+
proc OptTypeArgs {item} {
|
| 692 |
+
lindex $item 4
|
| 693 |
+
}
|
| 694 |
+
proc OptHelp {item} {
|
| 695 |
+
lindex $item 5
|
| 696 |
+
}
|
| 697 |
+
proc OptNeedValue {item} {
|
| 698 |
+
expr {![string equal [OptType $item] boolflag]}
|
| 699 |
+
}
|
| 700 |
+
proc OptDefaultValue {item} {
|
| 701 |
+
set val [OptTypeArgs $item]
|
| 702 |
+
switch -exact -- [OptType $item] {
|
| 703 |
+
choice {return [lindex $val 0]}
|
| 704 |
+
boolean -
|
| 705 |
+
boolflag {
|
| 706 |
+
# convert back false/true to 0/1 because expr !$bool
|
| 707 |
+
# is broken..
|
| 708 |
+
if {$val} {
|
| 709 |
+
return 1
|
| 710 |
+
} else {
|
| 711 |
+
return 0
|
| 712 |
+
}
|
| 713 |
+
}
|
| 714 |
+
}
|
| 715 |
+
return $val
|
| 716 |
+
}
|
| 717 |
+
|
| 718 |
+
# Description format error helper
|
| 719 |
+
proc OptOptUsage {item {what ""}} {
|
| 720 |
+
return -code error "invalid description format$what: $item\n\
|
| 721 |
+
should be a list of {varname|-flagname ?-type? ?defaultvalue?\
|
| 722 |
+
?helpstring?}"
|
| 723 |
+
}
|
| 724 |
+
|
| 725 |
+
|
| 726 |
+
# Generate a canonical form single instruction
|
| 727 |
+
proc OptNewInst {state varname type typeArgs help} {
|
| 728 |
+
list $state $varname [list 0 {}] $type $typeArgs $help
|
| 729 |
+
# ^ ^
|
| 730 |
+
# | |
|
| 731 |
+
# hasBeenSet=+ +=currentValue
|
| 732 |
+
}
|
| 733 |
+
|
| 734 |
+
# Translate one item to canonical form
|
| 735 |
+
proc OptNormalizeOne {item} {
|
| 736 |
+
set lg [Lassign $item varname arg1 arg2 arg3]
|
| 737 |
+
# puts "called optnormalizeone '$item' v=($varname), lg=$lg"
|
| 738 |
+
set isflag [OptIsFlag $varname]
|
| 739 |
+
set isopt [OptIsOpt $varname]
|
| 740 |
+
if {$isflag} {
|
| 741 |
+
set state "flags"
|
| 742 |
+
} elseif {$isopt} {
|
| 743 |
+
set state "optValue"
|
| 744 |
+
} elseif {![string equal $varname "args"]} {
|
| 745 |
+
set state "value"
|
| 746 |
+
} else {
|
| 747 |
+
set state "args"
|
| 748 |
+
}
|
| 749 |
+
|
| 750 |
+
# apply 'smart' 'fuzzy' logic to try to make
|
| 751 |
+
# description writer's life easy, and our's difficult :
|
| 752 |
+
# let's guess the missing arguments :-)
|
| 753 |
+
|
| 754 |
+
switch $lg {
|
| 755 |
+
1 {
|
| 756 |
+
if {$isflag} {
|
| 757 |
+
return [OptNewInst $state $varname boolflag false ""]
|
| 758 |
+
} else {
|
| 759 |
+
return [OptNewInst $state $varname any "" ""]
|
| 760 |
+
}
|
| 761 |
+
}
|
| 762 |
+
2 {
|
| 763 |
+
# varname default
|
| 764 |
+
# varname help
|
| 765 |
+
set type [OptGuessType $arg1]
|
| 766 |
+
if {[string equal $type "string"]} {
|
| 767 |
+
if {$isflag} {
|
| 768 |
+
set type boolflag
|
| 769 |
+
set def false
|
| 770 |
+
} else {
|
| 771 |
+
set type any
|
| 772 |
+
set def ""
|
| 773 |
+
}
|
| 774 |
+
set help $arg1
|
| 775 |
+
} else {
|
| 776 |
+
set help ""
|
| 777 |
+
set def $arg1
|
| 778 |
+
}
|
| 779 |
+
return [OptNewInst $state $varname $type $def $help]
|
| 780 |
+
}
|
| 781 |
+
3 {
|
| 782 |
+
# varname type value
|
| 783 |
+
# varname value comment
|
| 784 |
+
|
| 785 |
+
if {[regexp {^-(.+)$} $arg1 x type]} {
|
| 786 |
+
# flags/optValue as they are optional, need a "value",
|
| 787 |
+
# on the contrary, for a variable (non optional),
|
| 788 |
+
# default value is pointless, 'cept for choices :
|
| 789 |
+
if {$isflag || $isopt || ($type == "choice")} {
|
| 790 |
+
return [OptNewInst $state $varname $type $arg2 ""]
|
| 791 |
+
} else {
|
| 792 |
+
return [OptNewInst $state $varname $type "" $arg2]
|
| 793 |
+
}
|
| 794 |
+
} else {
|
| 795 |
+
return [OptNewInst $state $varname\
|
| 796 |
+
[OptGuessType $arg1] $arg1 $arg2]
|
| 797 |
+
}
|
| 798 |
+
}
|
| 799 |
+
4 {
|
| 800 |
+
if {[regexp {^-(.+)$} $arg1 x type]} {
|
| 801 |
+
return [OptNewInst $state $varname $type $arg2 $arg3]
|
| 802 |
+
} else {
|
| 803 |
+
return -code error [OptOptUsage $item]
|
| 804 |
+
}
|
| 805 |
+
}
|
| 806 |
+
default {
|
| 807 |
+
return -code error [OptOptUsage $item]
|
| 808 |
+
}
|
| 809 |
+
}
|
| 810 |
+
}
|
| 811 |
+
|
| 812 |
+
# Auto magic lazy type determination
|
| 813 |
+
proc OptGuessType {arg} {
|
| 814 |
+
if { $arg == "true" || $arg == "false" } {
|
| 815 |
+
return boolean
|
| 816 |
+
}
|
| 817 |
+
if {[string is integer -strict $arg]} {
|
| 818 |
+
return int
|
| 819 |
+
}
|
| 820 |
+
if {[string is double -strict $arg]} {
|
| 821 |
+
return float
|
| 822 |
+
}
|
| 823 |
+
return string
|
| 824 |
+
}
|
| 825 |
+
|
| 826 |
+
# Error messages front ends
|
| 827 |
+
|
| 828 |
+
proc OptAmbigous {desc arg} {
|
| 829 |
+
OptError "ambigous option \"$arg\", choose from:" [OptSelection $desc]
|
| 830 |
+
}
|
| 831 |
+
proc OptFlagUsage {desc arg} {
|
| 832 |
+
OptError "bad flag \"$arg\", must be one of" $desc
|
| 833 |
+
}
|
| 834 |
+
proc OptTooManyArgs {desc arguments} {
|
| 835 |
+
OptError "too many arguments (unexpected argument(s): $arguments),\
|
| 836 |
+
usage:"\
|
| 837 |
+
$desc 1
|
| 838 |
+
}
|
| 839 |
+
proc OptParamType {item} {
|
| 840 |
+
if {[OptIsFlag $item]} {
|
| 841 |
+
return "flag"
|
| 842 |
+
} else {
|
| 843 |
+
return "parameter"
|
| 844 |
+
}
|
| 845 |
+
}
|
| 846 |
+
proc OptBadValue {item arg {err {}}} {
|
| 847 |
+
# puts "bad val err = \"$err\""
|
| 848 |
+
OptError "bad value \"$arg\" for [OptParamType $item]"\
|
| 849 |
+
[list $item]
|
| 850 |
+
}
|
| 851 |
+
proc OptMissingValue {descriptions} {
|
| 852 |
+
# set item [OptCurDescFinal $descriptions]
|
| 853 |
+
set item [OptCurDesc $descriptions]
|
| 854 |
+
OptError "no value given for [OptParamType $item] \"[OptName $item]\"\
|
| 855 |
+
(use -help for full usage) :"\
|
| 856 |
+
[list $item]
|
| 857 |
+
}
|
| 858 |
+
|
| 859 |
+
proc ::tcl::OptKeyError {prefix descKey {header 0}} {
|
| 860 |
+
OptError $prefix [OptKeyGetDesc $descKey] $header
|
| 861 |
+
}
|
| 862 |
+
|
| 863 |
+
# determine string length for nice tabulated output
|
| 864 |
+
proc OptLengths {desc nlName tlName dlName} {
|
| 865 |
+
upvar $nlName nl
|
| 866 |
+
upvar $tlName tl
|
| 867 |
+
upvar $dlName dl
|
| 868 |
+
foreach item $desc {
|
| 869 |
+
if {[OptIsCounter $item]} continue
|
| 870 |
+
if {[OptIsPrg $item]} {
|
| 871 |
+
OptLengths $item nl tl dl
|
| 872 |
+
} else {
|
| 873 |
+
SetMax nl [string length [OptName $item]]
|
| 874 |
+
SetMax tl [string length [OptType $item]]
|
| 875 |
+
set dv [OptTypeArgs $item]
|
| 876 |
+
if {[OptState $item] != "header"} {
|
| 877 |
+
set dv "($dv)"
|
| 878 |
+
}
|
| 879 |
+
set l [string length $dv]
|
| 880 |
+
# limit the space allocated to potentially big "choices"
|
| 881 |
+
if {([OptType $item] != "choice") || ($l<=12)} {
|
| 882 |
+
SetMax dl $l
|
| 883 |
+
} else {
|
| 884 |
+
if {![info exists dl]} {
|
| 885 |
+
set dl 0
|
| 886 |
+
}
|
| 887 |
+
}
|
| 888 |
+
}
|
| 889 |
+
}
|
| 890 |
+
}
|
| 891 |
+
# output the tree
|
| 892 |
+
proc OptTree {desc nl tl dl} {
|
| 893 |
+
set res ""
|
| 894 |
+
foreach item $desc {
|
| 895 |
+
if {[OptIsCounter $item]} continue
|
| 896 |
+
if {[OptIsPrg $item]} {
|
| 897 |
+
append res [OptTree $item $nl $tl $dl]
|
| 898 |
+
} else {
|
| 899 |
+
set dv [OptTypeArgs $item]
|
| 900 |
+
if {[OptState $item] != "header"} {
|
| 901 |
+
set dv "($dv)"
|
| 902 |
+
}
|
| 903 |
+
append res [string trimright [format "\n %-*s %-*s %-*s %s" \
|
| 904 |
+
$nl [OptName $item] $tl [OptType $item] \
|
| 905 |
+
$dl $dv [OptHelp $item]]]
|
| 906 |
+
}
|
| 907 |
+
}
|
| 908 |
+
return $res
|
| 909 |
+
}
|
| 910 |
+
|
| 911 |
+
# Give nice usage string
|
| 912 |
+
proc ::tcl::OptError {prefix desc {header 0}} {
|
| 913 |
+
# determine length
|
| 914 |
+
if {$header} {
|
| 915 |
+
# add faked instruction
|
| 916 |
+
set h [list [OptNewInst header Var/FlagName Type Value Help]]
|
| 917 |
+
lappend h [OptNewInst header ------------ ---- ----- ----]
|
| 918 |
+
lappend h [OptNewInst header {(-help} "" "" {gives this help)}]
|
| 919 |
+
set desc [concat $h $desc]
|
| 920 |
+
}
|
| 921 |
+
OptLengths $desc nl tl dl
|
| 922 |
+
# actually output
|
| 923 |
+
return "$prefix[OptTree $desc $nl $tl $dl]"
|
| 924 |
+
}
|
| 925 |
+
|
| 926 |
+
|
| 927 |
+
################ General Utility functions #######################
|
| 928 |
+
|
| 929 |
+
#
|
| 930 |
+
# List utility functions
|
| 931 |
+
# Naming convention:
|
| 932 |
+
# "Lvarxxx" take the list VARiable name as argument
|
| 933 |
+
# "Lxxxx" take the list value as argument
|
| 934 |
+
# (which is not costly with Tcl8 objects system
|
| 935 |
+
# as it's still a reference and not a copy of the values)
|
| 936 |
+
#
|
| 937 |
+
|
| 938 |
+
# Is that list empty ?
|
| 939 |
+
proc ::tcl::Lempty {list} {
|
| 940 |
+
expr {[llength $list]==0}
|
| 941 |
+
}
|
| 942 |
+
|
| 943 |
+
# Gets the value of one leaf of a lists tree
|
| 944 |
+
proc ::tcl::Lget {list indexLst} {
|
| 945 |
+
if {[llength $indexLst] <= 1} {
|
| 946 |
+
return [lindex $list $indexLst]
|
| 947 |
+
}
|
| 948 |
+
Lget [lindex $list [lindex $indexLst 0]] [lrange $indexLst 1 end]
|
| 949 |
+
}
|
| 950 |
+
# Sets the value of one leaf of a lists tree
|
| 951 |
+
# (we use the version that does not create the elements because
|
| 952 |
+
# it would be even slower... needs to be written in C !)
|
| 953 |
+
# (nb: there is a non trivial recursive problem with indexes 0,
|
| 954 |
+
# which appear because there is no difference between a list
|
| 955 |
+
# of 1 element and 1 element alone : [list "a"] == "a" while
|
| 956 |
+
# it should be {a} and [listp a] should be 0 while [listp {a b}] would be 1
|
| 957 |
+
# and [listp "a b"] maybe 0. listp does not exist either...)
|
| 958 |
+
proc ::tcl::Lvarset {listName indexLst newValue} {
|
| 959 |
+
upvar $listName list
|
| 960 |
+
if {[llength $indexLst] <= 1} {
|
| 961 |
+
Lvarset1nc list $indexLst $newValue
|
| 962 |
+
} else {
|
| 963 |
+
set idx [lindex $indexLst 0]
|
| 964 |
+
set targetList [lindex $list $idx]
|
| 965 |
+
# reduce refcount on targetList (not really usefull now,
|
| 966 |
+
# could be with optimizing compiler)
|
| 967 |
+
# Lvarset1 list $idx {}
|
| 968 |
+
# recursively replace in targetList
|
| 969 |
+
Lvarset targetList [lrange $indexLst 1 end] $newValue
|
| 970 |
+
# put updated sub list back in the tree
|
| 971 |
+
Lvarset1nc list $idx $targetList
|
| 972 |
+
}
|
| 973 |
+
}
|
| 974 |
+
# Set one cell to a value, eventually create all the needed elements
|
| 975 |
+
# (on level-1 of lists)
|
| 976 |
+
variable emptyList {}
|
| 977 |
+
proc ::tcl::Lvarset1 {listName index newValue} {
|
| 978 |
+
upvar $listName list
|
| 979 |
+
if {$index < 0} {return -code error "invalid negative index"}
|
| 980 |
+
set lg [llength $list]
|
| 981 |
+
if {$index >= $lg} {
|
| 982 |
+
variable emptyList
|
| 983 |
+
for {set i $lg} {$i<$index} {incr i} {
|
| 984 |
+
lappend list $emptyList
|
| 985 |
+
}
|
| 986 |
+
lappend list $newValue
|
| 987 |
+
} else {
|
| 988 |
+
set list [lreplace $list $index $index $newValue]
|
| 989 |
+
}
|
| 990 |
+
}
|
| 991 |
+
# same as Lvarset1 but no bound checking / creation
|
| 992 |
+
proc ::tcl::Lvarset1nc {listName index newValue} {
|
| 993 |
+
upvar $listName list
|
| 994 |
+
set list [lreplace $list $index $index $newValue]
|
| 995 |
+
}
|
| 996 |
+
# Increments the value of one leaf of a lists tree
|
| 997 |
+
# (which must exists)
|
| 998 |
+
proc ::tcl::Lvarincr {listName indexLst {howMuch 1}} {
|
| 999 |
+
upvar $listName list
|
| 1000 |
+
if {[llength $indexLst] <= 1} {
|
| 1001 |
+
Lvarincr1 list $indexLst $howMuch
|
| 1002 |
+
} else {
|
| 1003 |
+
set idx [lindex $indexLst 0]
|
| 1004 |
+
set targetList [lindex $list $idx]
|
| 1005 |
+
# reduce refcount on targetList
|
| 1006 |
+
Lvarset1nc list $idx {}
|
| 1007 |
+
# recursively replace in targetList
|
| 1008 |
+
Lvarincr targetList [lrange $indexLst 1 end] $howMuch
|
| 1009 |
+
# put updated sub list back in the tree
|
| 1010 |
+
Lvarset1nc list $idx $targetList
|
| 1011 |
+
}
|
| 1012 |
+
}
|
| 1013 |
+
# Increments the value of one cell of a list
|
| 1014 |
+
proc ::tcl::Lvarincr1 {listName index {howMuch 1}} {
|
| 1015 |
+
upvar $listName list
|
| 1016 |
+
set newValue [expr {[lindex $list $index]+$howMuch}]
|
| 1017 |
+
set list [lreplace $list $index $index $newValue]
|
| 1018 |
+
return $newValue
|
| 1019 |
+
}
|
| 1020 |
+
# Removes the first element of a list
|
| 1021 |
+
# and returns the new list value
|
| 1022 |
+
proc ::tcl::Lvarpop1 {listName} {
|
| 1023 |
+
upvar $listName list
|
| 1024 |
+
set list [lrange $list 1 end]
|
| 1025 |
+
}
|
| 1026 |
+
# Same but returns the removed element
|
| 1027 |
+
# (Like the tclX version)
|
| 1028 |
+
proc ::tcl::Lvarpop {listName} {
|
| 1029 |
+
upvar $listName list
|
| 1030 |
+
set el [lindex $list 0]
|
| 1031 |
+
set list [lrange $list 1 end]
|
| 1032 |
+
return $el
|
| 1033 |
+
}
|
| 1034 |
+
# Assign list elements to variables and return the length of the list
|
| 1035 |
+
proc ::tcl::Lassign {list args} {
|
| 1036 |
+
# faster than direct blown foreach (which does not byte compile)
|
| 1037 |
+
set i 0
|
| 1038 |
+
set lg [llength $list]
|
| 1039 |
+
foreach vname $args {
|
| 1040 |
+
if {$i>=$lg} break
|
| 1041 |
+
uplevel 1 [list ::set $vname [lindex $list $i]]
|
| 1042 |
+
incr i
|
| 1043 |
+
}
|
| 1044 |
+
return $lg
|
| 1045 |
+
}
|
| 1046 |
+
|
| 1047 |
+
# Misc utilities
|
| 1048 |
+
|
| 1049 |
+
# Set the varname to value if value is greater than varname's current value
|
| 1050 |
+
# or if varname is undefined
|
| 1051 |
+
proc ::tcl::SetMax {varname value} {
|
| 1052 |
+
upvar 1 $varname var
|
| 1053 |
+
if {![info exists var] || $value > $var} {
|
| 1054 |
+
set var $value
|
| 1055 |
+
}
|
| 1056 |
+
}
|
| 1057 |
+
|
| 1058 |
+
# Set the varname to value if value is smaller than varname's current value
|
| 1059 |
+
# or if varname is undefined
|
| 1060 |
+
proc ::tcl::SetMin {varname value} {
|
| 1061 |
+
upvar 1 $varname var
|
| 1062 |
+
if {![info exists var] || $value < $var} {
|
| 1063 |
+
set var $value
|
| 1064 |
+
}
|
| 1065 |
+
}
|
| 1066 |
+
|
| 1067 |
+
|
| 1068 |
+
# everything loaded fine, lets create the test proc:
|
| 1069 |
+
# OptCreateTestProc
|
| 1070 |
+
# Don't need the create temp proc anymore:
|
| 1071 |
+
# rename OptCreateTestProc {}
|
| 1072 |
+
}
|
my_container_sandbox/workspace/anaconda3/lib/tcl8.6/opt0.4/pkgIndex.tcl
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Tcl package index file, version 1.1
|
| 2 |
+
# This file is generated by the "pkg_mkIndex -direct" command
|
| 3 |
+
# and sourced either when an application starts up or
|
| 4 |
+
# by a "package unknown" script. It invokes the
|
| 5 |
+
# "package ifneeded" command to set up package-related
|
| 6 |
+
# information so that packages will be loaded automatically
|
| 7 |
+
# in response to "package require" commands. When this
|
| 8 |
+
# script is sourced, the variable $dir must contain the
|
| 9 |
+
# full path name of this file's directory.
|
| 10 |
+
|
| 11 |
+
if {![package vsatisfies [package provide Tcl] 8.5-]} {return}
|
| 12 |
+
package ifneeded opt 0.4.8 [list source [file join $dir optparse.tcl]]
|
my_container_sandbox/workspace/anaconda3/lib/tk8.6/demos/anilabel.tcl
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# anilabel.tcl --
|
| 2 |
+
#
|
| 3 |
+
# This demonstration script creates a toplevel window containing
|
| 4 |
+
# several animated label widgets.
|
| 5 |
+
|
| 6 |
+
if {![info exists widgetDemo]} {
|
| 7 |
+
error "This script should be run from the \"widget\" demo."
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
package require Tk
|
| 11 |
+
|
| 12 |
+
set w .anilabel
|
| 13 |
+
catch {destroy $w}
|
| 14 |
+
toplevel $w
|
| 15 |
+
wm title $w "Animated Label Demonstration"
|
| 16 |
+
wm iconname $w "anilabel"
|
| 17 |
+
positionWindow $w
|
| 18 |
+
|
| 19 |
+
label $w.msg -font $font -wraplength 4i -justify left -text "Four animated labels are displayed below; each of the labels on the left is animated by making the text message inside it appear to scroll, and the label on the right is animated by animating the image that it displays."
|
| 20 |
+
pack $w.msg -side top
|
| 21 |
+
|
| 22 |
+
## See Code / Dismiss buttons
|
| 23 |
+
set btns [addSeeDismiss $w.buttons $w]
|
| 24 |
+
pack $btns -side bottom -fill x
|
| 25 |
+
|
| 26 |
+
# Ensure that this this is an array
|
| 27 |
+
array set animationCallbacks {}
|
| 28 |
+
|
| 29 |
+
## This callback is the core of how to do animation in Tcl/Tk; all
|
| 30 |
+
## animations work in basically the same way, with a procedure that
|
| 31 |
+
## uses the [after] command to reschedule itself at some point in the
|
| 32 |
+
## future. Of course, the details of how to update the state will vary
|
| 33 |
+
## according to what is being animated.
|
| 34 |
+
proc RotateLabelText {w interval} {
|
| 35 |
+
global animationCallbacks
|
| 36 |
+
|
| 37 |
+
# Schedule the calling of this procedure again in the future
|
| 38 |
+
set animationCallbacks($w) [after $interval RotateLabelText $w $interval]
|
| 39 |
+
|
| 40 |
+
# We do marquee-like scrolling text by chopping characters off the
|
| 41 |
+
# front of the text and sticking them on the end.
|
| 42 |
+
set text [$w cget -text]
|
| 43 |
+
set newText [string range $text 1 end][string index $text 0]
|
| 44 |
+
$w configure -text $newText
|
| 45 |
+
}
|
| 46 |
+
|
| 47 |
+
## A helper procedure to start the animation happening.
|
| 48 |
+
proc animateLabelText {w text interval} {
|
| 49 |
+
global animationCallbacks
|
| 50 |
+
|
| 51 |
+
# Install the text into the widget
|
| 52 |
+
$w configure -text $text
|
| 53 |
+
|
| 54 |
+
# Schedule the start of the animation loop
|
| 55 |
+
set animationCallbacks($w) [after $interval RotateLabelText $w $interval]
|
| 56 |
+
|
| 57 |
+
# Make sure that the animation stops and is cleaned up after itself
|
| 58 |
+
# when the animated label is destroyed. Note that at this point we
|
| 59 |
+
# cannot manipulate the widget itself, as that has already died.
|
| 60 |
+
bind $w <Destroy> {
|
| 61 |
+
after cancel $animationCallbacks(%W)
|
| 62 |
+
unset animationCallbacks(%W)
|
| 63 |
+
}
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
## Next, a similar pair of procedures to animate a GIF loaded into a
|
| 67 |
+
## photo image.
|
| 68 |
+
proc SelectNextImageFrame {w interval} {
|
| 69 |
+
global animationCallbacks
|
| 70 |
+
set animationCallbacks($w) \
|
| 71 |
+
[after $interval SelectNextImageFrame $w $interval]
|
| 72 |
+
set image [$w cget -image]
|
| 73 |
+
|
| 74 |
+
# The easy way to animate a GIF!
|
| 75 |
+
set idx -1
|
| 76 |
+
scan [$image cget -format] "GIF -index %d" idx
|
| 77 |
+
if {[catch {
|
| 78 |
+
# Note that we get an error if the index is out of range
|
| 79 |
+
$image configure -format "GIF -index [incr idx]"
|
| 80 |
+
}]} then {
|
| 81 |
+
$image configure -format "GIF -index 0"
|
| 82 |
+
}
|
| 83 |
+
}
|
| 84 |
+
proc animateLabelImage {w imageData interval} {
|
| 85 |
+
global animationCallbacks
|
| 86 |
+
|
| 87 |
+
# Create a multi-frame GIF from base-64-encoded data
|
| 88 |
+
set image [image create photo -format GIF -data $imageData]
|
| 89 |
+
|
| 90 |
+
# Install the image into the widget
|
| 91 |
+
$w configure -image $image
|
| 92 |
+
|
| 93 |
+
# Schedule the start of the animation loop
|
| 94 |
+
set animationCallbacks($w) \
|
| 95 |
+
[after $interval SelectNextImageFrame $w $interval]
|
| 96 |
+
|
| 97 |
+
# Make sure that the animation stops and is cleaned up after itself
|
| 98 |
+
# when the animated label is destroyed. Note that at this point we
|
| 99 |
+
# cannot manipulate the widget itself, as that has already died.
|
| 100 |
+
# Also note that this script is in double-quotes; this is always OK
|
| 101 |
+
# because image names are chosen automatically to be simple words.
|
| 102 |
+
bind $w <Destroy> "
|
| 103 |
+
after cancel \$animationCallbacks(%W)
|
| 104 |
+
unset animationCallbacks(%W)
|
| 105 |
+
rename $image {}
|
| 106 |
+
"
|
| 107 |
+
}
|
| 108 |
+
|
| 109 |
+
# Make some widgets to contain the animations
|
| 110 |
+
labelframe $w.left -text "Scrolling Texts"
|
| 111 |
+
labelframe $w.right -text "GIF Image"
|
| 112 |
+
pack $w.left $w.right -side left -padx 10 -pady 10 -expand yes
|
| 113 |
+
|
| 114 |
+
# This method of scrolling text looks far better with a fixed-width font
|
| 115 |
+
label $w.left.l1 -bd 4 -relief ridge -font fixedFont
|
| 116 |
+
label $w.left.l2 -bd 4 -relief groove -font fixedFont
|
| 117 |
+
label $w.left.l3 -bd 4 -relief flat -font fixedFont -width 18
|
| 118 |
+
pack $w.left.l1 $w.left.l2 $w.left.l3 -side top -expand yes -padx 10 -pady 10 -anchor w
|
| 119 |
+
# Don't need to do very much with this label except turn off the border
|
| 120 |
+
label $w.right.l -bd 0
|
| 121 |
+
pack $w.right.l -side top -expand yes -padx 10 -pady 10
|
| 122 |
+
|
| 123 |
+
# This is a base-64-encoded animated GIF file.
|
| 124 |
+
set tclPoweredData {
|
| 125 |
+
R0lGODlhKgBAAPQAAP//////zP//AP/MzP/Mmf/MAP+Zmf+ZZv+ZAMz//8zM
|
| 126 |
+
zMyZmcyZZsxmZsxmAMwzAJnMzJmZzJmZmZlmmZlmZplmM5kzM2aZzGZmzGZm
|
| 127 |
+
mWZmZmYzZmYzMzNmzDMzZgAzmSH+IE1hZGUgd2l0aCBHSU1QIGJ5IExARGVt
|
| 128 |
+
YWlsbHkuY29tACH5BAVkAAEALAAAAAAqAEAAAAX+YCCOZEkyTKM2jOm66yPP
|
| 129 |
+
dF03bx7YcuHIDkGBR7SZeIyhTID4FZ+4Es8nQyCe2EeUNJ0peY2s9mi7PhAM
|
| 130 |
+
ngEAMGRbUpvzSxskLh1J+Hkg134OdDIDEB+GHxtYMEQMTjMGEYeGFoomezaC
|
| 131 |
+
DZGSHFmLXTQKkh8eNQVpZ2afmDQGHaOYSoEyhhcklzVmMpuHnaZmDqiGJbg0
|
| 132 |
+
qFqvh6UNAwB7VA+OwydEjgujkgrPNhbTI8dFvNgEYcHcHx0lB1kX2IYeA2G6
|
| 133 |
+
NN0YfkXJ2BsAMuAzHB9cZMk3qoEbRzUACsRCUBK5JxsC3iMiKd8GN088SIyT
|
| 134 |
+
0RAFSROyeEg38caDiB/+JEgqxsODrZJ1BkT0oHKSmI0ceQxo94HDpg0qsuDk
|
| 135 |
+
UmRAMgu8OgwQ+uIJgUMVeGXA+IQkzEeHGvD8cIGlDXsLiRjQ+EHroQhea7xY
|
| 136 |
+
8IQBSgYYDi1IS+OFBCgaDMGVS3fGi5BPJpBaENdQ0EomKGD56IHwO39EXiSC
|
| 137 |
+
Ysgxor5+Xfgq0qByYUpiXmwuoredB2aYH4gWWda0B7SeNENpEJHC1ghi+pS4
|
| 138 |
+
AJpIAwWvKPBi+8YEht5EriEqpFfMlhEdkBNpx0HUhwypx5T4IB1MBg/Ws2sn
|
| 139 |
+
wV3MSQOkzI8fUd48Aw3dOZto71x85hHtHijYv18Gf/3GqCdDCXHNoICBobSo
|
| 140 |
+
IqBqJLyCoH8JPrLgdh88CKCFD0CGmAiGYPgffwceZh6FC2ohIIklnkhehTNY
|
| 141 |
+
4CIHHGzgwYw01ujBBhvAqKOLLq5AAk9kuSPkkKO40NB+h1gnypJIIvkBf09a
|
| 142 |
+
N5QIRz5p5ZJXJpmlIVhOGQA2TmIJZZhKKmmll2BqyWSXWUrZpQtpatlmk1c2
|
| 143 |
+
KaWRHeTZEJF8SqLDn/hhsOeQgBbqAh6DGqronxeARUIIACH5BAUeAAAALAUA
|
| 144 |
+
LgAFAAUAAAUM4CeKz/OV5YmqaRkCACH5BAUeAAEALAUALgAKAAUAAAUUICCK
|
| 145 |
+
z/OdJVCaa7p+7aOWcDvTZwgAIfkEBR4AAQAsCwAuAAkABQAABRPgA4zP95zA
|
| 146 |
+
eZqoWqqpyqLkZ38hACH5BAUKAAEALAcALgANAA4AAAU7ICA+jwiUJEqeKau+
|
| 147 |
+
r+vGaTmac63v/GP9HM7GQyx+jsgkkoRUHJ3Qx0cK/VQVTKtWwbVKn9suNunc
|
| 148 |
+
WkMAIfkEBQoAAAAsBwA3AAcABQAABRGgIHzk842j+Yjlt5KuO8JmCAAh+QQF
|
| 149 |
+
CgAAACwLADcABwAFAAAFEeAnfN9TjqP5oOWziq05lmUIACH5BAUKAAAALA8A
|
| 150 |
+
NwAHAAUAAAUPoPCJTymS3yiQj4qOcPmEACH5BAUKAAAALBMANwAHAAUAAAUR
|
| 151 |
+
oCB+z/MJX2o+I2miKimiawgAIfkEBQoAAAAsFwA3AAcABQAABRGgIHzfY47j
|
| 152 |
+
Q4qk+aHl+pZmCAAh+QQFCgAAACwbADcABwAFAAAFEaAgfs/zCV9qPiNJouo7
|
| 153 |
+
ll8IACH5BAUKAAAALB8ANwADAAUAAAUIoCB8o0iWZggAOw==
|
| 154 |
+
}
|
| 155 |
+
|
| 156 |
+
# Finally, set up the text scrolling animation
|
| 157 |
+
animateLabelText $w.left.l1 "* Slow Animation *" 300
|
| 158 |
+
animateLabelText $w.left.l2 "* Fast Animation *" 80
|
| 159 |
+
animateLabelText $w.left.l3 "This is a longer scrolling text in a widget that will not show the whole message at once. " 150
|
| 160 |
+
animateLabelImage $w.right.l $tclPoweredData 100
|
my_container_sandbox/workspace/anaconda3/lib/tk8.6/demos/bind.tcl
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# bind.tcl --
|
| 2 |
+
#
|
| 3 |
+
# This demonstration script creates a text widget with bindings set
|
| 4 |
+
# up for hypertext-like effects.
|
| 5 |
+
|
| 6 |
+
if {![info exists widgetDemo]} {
|
| 7 |
+
error "This script should be run from the \"widget\" demo."
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
package require Tk
|
| 11 |
+
|
| 12 |
+
set w .bind
|
| 13 |
+
catch {destroy $w}
|
| 14 |
+
toplevel $w
|
| 15 |
+
wm title $w "Text Demonstration - Tag Bindings"
|
| 16 |
+
wm iconname $w "bind"
|
| 17 |
+
positionWindow $w
|
| 18 |
+
|
| 19 |
+
## See Code / Dismiss buttons
|
| 20 |
+
set btns [addSeeDismiss $w.buttons $w]
|
| 21 |
+
pack $btns -side bottom -fill x
|
| 22 |
+
|
| 23 |
+
text $w.text -yscrollcommand "$w.scroll set" -setgrid true \
|
| 24 |
+
-width 60 -height 24 -font $font -wrap word
|
| 25 |
+
ttk::scrollbar $w.scroll -command "$w.text yview"
|
| 26 |
+
pack $w.scroll -side right -fill y
|
| 27 |
+
pack $w.text -expand yes -fill both
|
| 28 |
+
|
| 29 |
+
# Set up display styles.
|
| 30 |
+
|
| 31 |
+
if {[winfo depth $w] > 1} {
|
| 32 |
+
set bold "-background #43ce80 -relief raised -borderwidth 1"
|
| 33 |
+
set normal "-background {} -relief flat"
|
| 34 |
+
} else {
|
| 35 |
+
set bold "-foreground white -background black"
|
| 36 |
+
set normal "-foreground {} -background {}"
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
# Add text to widget.
|
| 40 |
+
|
| 41 |
+
$w.text insert 0.0 {\
|
| 42 |
+
The same tag mechanism that controls display styles in text widgets can also be used to associate Tcl commands with regions of text, so that mouse or keyboard actions on the text cause particular Tcl commands to be invoked. For example, in the text below the descriptions of the canvas demonstrations have been tagged. When you move the mouse over a demo description the description lights up, and when you press button 1 over a description then that particular demonstration is invoked.
|
| 43 |
+
|
| 44 |
+
}
|
| 45 |
+
$w.text insert end \
|
| 46 |
+
{1. Samples of all the different types of items that can be created in canvas widgets.} d1
|
| 47 |
+
$w.text insert end \n\n
|
| 48 |
+
$w.text insert end \
|
| 49 |
+
{2. A simple two-dimensional plot that allows you to adjust the positions of the data points.} d2
|
| 50 |
+
$w.text insert end \n\n
|
| 51 |
+
$w.text insert end \
|
| 52 |
+
{3. Anchoring and justification modes for text items.} d3
|
| 53 |
+
$w.text insert end \n\n
|
| 54 |
+
$w.text insert end \
|
| 55 |
+
{4. An editor for arrow-head shapes for line items.} d4
|
| 56 |
+
$w.text insert end \n\n
|
| 57 |
+
$w.text insert end \
|
| 58 |
+
{5. A ruler with facilities for editing tab stops.} d5
|
| 59 |
+
$w.text insert end \n\n
|
| 60 |
+
$w.text insert end \
|
| 61 |
+
{6. A grid that demonstrates how canvases can be scrolled.} d6
|
| 62 |
+
|
| 63 |
+
# Create bindings for tags.
|
| 64 |
+
|
| 65 |
+
foreach tag {d1 d2 d3 d4 d5 d6} {
|
| 66 |
+
$w.text tag bind $tag <Enter> "$w.text tag configure $tag $bold"
|
| 67 |
+
$w.text tag bind $tag <Leave> "$w.text tag configure $tag $normal"
|
| 68 |
+
}
|
| 69 |
+
# Main widget program sets variable tk_demoDirectory
|
| 70 |
+
$w.text tag bind d1 <Button-1> {source -encoding utf-8 [file join $tk_demoDirectory items.tcl]}
|
| 71 |
+
$w.text tag bind d2 <Button-1> {source -encoding utf-8 [file join $tk_demoDirectory plot.tcl]}
|
| 72 |
+
$w.text tag bind d3 <Button-1> {source -encoding utf-8 [file join $tk_demoDirectory ctext.tcl]}
|
| 73 |
+
$w.text tag bind d4 <Button-1> {source -encoding utf-8 [file join $tk_demoDirectory arrow.tcl]}
|
| 74 |
+
$w.text tag bind d5 <Button-1> {source -encoding utf-8 [file join $tk_demoDirectory ruler.tcl]}
|
| 75 |
+
$w.text tag bind d6 <Button-1> {source -encoding utf-8 [file join $tk_demoDirectory cscroll.tcl]}
|
| 76 |
+
|
| 77 |
+
$w.text mark set insert 0.0
|
| 78 |
+
$w.text configure -state disabled
|
my_container_sandbox/workspace/anaconda3/lib/tk8.6/demos/button.tcl
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# button.tcl --
|
| 2 |
+
#
|
| 3 |
+
# This demonstration script creates a toplevel window containing
|
| 4 |
+
# several button widgets.
|
| 5 |
+
|
| 6 |
+
if {![info exists widgetDemo]} {
|
| 7 |
+
error "This script should be run from the \"widget\" demo."
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
package require Tk
|
| 11 |
+
|
| 12 |
+
set w .button
|
| 13 |
+
catch {destroy $w}
|
| 14 |
+
toplevel $w
|
| 15 |
+
wm title $w "Button Demonstration"
|
| 16 |
+
wm iconname $w "button"
|
| 17 |
+
positionWindow $w
|
| 18 |
+
|
| 19 |
+
label $w.msg -font $font -wraplength 4i -justify left -text "If you click on any of the four buttons below, the background of the button area will change to the color indicated in the button. You can press Tab to move among the buttons, then press Space to invoke the current button."
|
| 20 |
+
pack $w.msg -side top
|
| 21 |
+
|
| 22 |
+
## See Code / Dismiss buttons
|
| 23 |
+
pack [addSeeDismiss $w.buttons $w] -side bottom -fill x
|
| 24 |
+
|
| 25 |
+
proc colorrefresh {w col} {
|
| 26 |
+
$w configure -bg $col
|
| 27 |
+
if {[tk windowingsystem] eq "aqua"} {
|
| 28 |
+
# set highlightbackground of all buttons in $w
|
| 29 |
+
set l [list $w]
|
| 30 |
+
while {[llength $l]} {
|
| 31 |
+
set l [concat [lassign $l b] [winfo children $b]]
|
| 32 |
+
if {[winfo class $b] eq "Button"} {
|
| 33 |
+
$b configure -highlightbackground $col
|
| 34 |
+
}
|
| 35 |
+
}
|
| 36 |
+
}
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
button $w.b1 -text "Peach Puff" -width 10 \
|
| 40 |
+
-command [list colorrefresh $w PeachPuff1]
|
| 41 |
+
button $w.b2 -text "Light Blue" -width 10 \
|
| 42 |
+
-command [list colorrefresh $w LightBlue1]
|
| 43 |
+
button $w.b3 -text "Sea Green" -width 10 \
|
| 44 |
+
-command [list colorrefresh $w SeaGreen2]
|
| 45 |
+
button $w.b4 -text "Yellow" -width 10 \
|
| 46 |
+
-command [list colorrefresh $w Yellow1]
|
| 47 |
+
pack $w.b1 $w.b2 $w.b3 $w.b4 -side top -expand yes -pady 2
|
my_container_sandbox/workspace/anaconda3/lib/tk8.6/demos/colors.tcl
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# colors.tcl --
|
| 2 |
+
#
|
| 3 |
+
# This demonstration script creates a listbox widget that displays
|
| 4 |
+
# many of the colors from the X color database. You can click on
|
| 5 |
+
# a color to change the application's palette.
|
| 6 |
+
|
| 7 |
+
if {![info exists widgetDemo]} {
|
| 8 |
+
error "This script should be run from the \"widget\" demo."
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
package require Tk
|
| 12 |
+
|
| 13 |
+
set w .colors
|
| 14 |
+
catch {destroy $w}
|
| 15 |
+
toplevel $w
|
| 16 |
+
wm title $w "Listbox Demonstration (colors)"
|
| 17 |
+
wm iconname $w "Listbox"
|
| 18 |
+
positionWindow $w
|
| 19 |
+
|
| 20 |
+
label $w.msg -font $font -wraplength 4i -justify left -text "A listbox containing several color names is displayed below, along with a scrollbar. You can scan the list either using the scrollbar or by dragging in the listbox window with button 2 pressed. If you double-click button 1 on a color, then the application's color palette will be set to match that color"
|
| 21 |
+
pack $w.msg -side top
|
| 22 |
+
|
| 23 |
+
## See Code / Dismiss buttons
|
| 24 |
+
set btns [addSeeDismiss $w.buttons $w]
|
| 25 |
+
pack $btns -side bottom -fill x
|
| 26 |
+
|
| 27 |
+
frame $w.frame -borderwidth 10
|
| 28 |
+
pack $w.frame -side top -expand yes -fill y
|
| 29 |
+
|
| 30 |
+
scrollbar $w.frame.scroll -command "$w.frame.list yview"
|
| 31 |
+
listbox $w.frame.list -yscroll "$w.frame.scroll set" \
|
| 32 |
+
-width 20 -height 16 -setgrid 1
|
| 33 |
+
pack $w.frame.list $w.frame.scroll -side left -fill y -expand 1
|
| 34 |
+
|
| 35 |
+
bind $w.frame.list <Double-Button-1> {
|
| 36 |
+
tk_setPalette [selection get]
|
| 37 |
+
}
|
| 38 |
+
$w.frame.list insert 0 gray60 gray70 gray80 gray85 gray90 gray95 \
|
| 39 |
+
snow1 snow2 snow3 snow4 seashell1 seashell2 \
|
| 40 |
+
seashell3 seashell4 AntiqueWhite1 AntiqueWhite2 AntiqueWhite3 \
|
| 41 |
+
AntiqueWhite4 bisque1 bisque2 bisque3 bisque4 PeachPuff1 \
|
| 42 |
+
PeachPuff2 PeachPuff3 PeachPuff4 NavajoWhite1 NavajoWhite2 \
|
| 43 |
+
NavajoWhite3 NavajoWhite4 LemonChiffon1 LemonChiffon2 \
|
| 44 |
+
LemonChiffon3 LemonChiffon4 cornsilk1 cornsilk2 cornsilk3 \
|
| 45 |
+
cornsilk4 ivory1 ivory2 ivory3 ivory4 honeydew1 honeydew2 \
|
| 46 |
+
honeydew3 honeydew4 LavenderBlush1 LavenderBlush2 \
|
| 47 |
+
LavenderBlush3 LavenderBlush4 MistyRose1 MistyRose2 \
|
| 48 |
+
MistyRose3 MistyRose4 azure1 azure2 azure3 azure4 \
|
| 49 |
+
SlateBlue1 SlateBlue2 SlateBlue3 SlateBlue4 RoyalBlue1 \
|
| 50 |
+
RoyalBlue2 RoyalBlue3 RoyalBlue4 blue1 blue2 blue3 blue4 \
|
| 51 |
+
DodgerBlue1 DodgerBlue2 DodgerBlue3 DodgerBlue4 SteelBlue1 \
|
| 52 |
+
SteelBlue2 SteelBlue3 SteelBlue4 DeepSkyBlue1 DeepSkyBlue2 \
|
| 53 |
+
DeepSkyBlue3 DeepSkyBlue4 SkyBlue1 SkyBlue2 SkyBlue3 \
|
| 54 |
+
SkyBlue4 LightSkyBlue1 LightSkyBlue2 LightSkyBlue3 \
|
| 55 |
+
LightSkyBlue4 SlateGray1 SlateGray2 SlateGray3 SlateGray4 \
|
| 56 |
+
LightSteelBlue1 LightSteelBlue2 LightSteelBlue3 \
|
| 57 |
+
LightSteelBlue4 LightBlue1 LightBlue2 LightBlue3 \
|
| 58 |
+
LightBlue4 LightCyan1 LightCyan2 LightCyan3 LightCyan4 \
|
| 59 |
+
PaleTurquoise1 PaleTurquoise2 PaleTurquoise3 PaleTurquoise4 \
|
| 60 |
+
CadetBlue1 CadetBlue2 CadetBlue3 CadetBlue4 turquoise1 \
|
| 61 |
+
turquoise2 turquoise3 turquoise4 cyan1 cyan2 cyan3 cyan4 \
|
| 62 |
+
DarkSlateGray1 DarkSlateGray2 DarkSlateGray3 \
|
| 63 |
+
DarkSlateGray4 aquamarine1 aquamarine2 aquamarine3 \
|
| 64 |
+
aquamarine4 DarkSeaGreen1 DarkSeaGreen2 DarkSeaGreen3 \
|
| 65 |
+
DarkSeaGreen4 SeaGreen1 SeaGreen2 SeaGreen3 SeaGreen4 \
|
| 66 |
+
PaleGreen1 PaleGreen2 PaleGreen3 PaleGreen4 SpringGreen1 \
|
| 67 |
+
SpringGreen2 SpringGreen3 SpringGreen4 green1 green2 \
|
| 68 |
+
green3 green4 chartreuse1 chartreuse2 chartreuse3 \
|
| 69 |
+
chartreuse4 OliveDrab1 OliveDrab2 OliveDrab3 OliveDrab4 \
|
| 70 |
+
DarkOliveGreen1 DarkOliveGreen2 DarkOliveGreen3 \
|
| 71 |
+
DarkOliveGreen4 khaki1 khaki2 khaki3 khaki4 \
|
| 72 |
+
LightGoldenrod1 LightGoldenrod2 LightGoldenrod3 \
|
| 73 |
+
LightGoldenrod4 LightYellow1 LightYellow2 LightYellow3 \
|
| 74 |
+
LightYellow4 yellow1 yellow2 yellow3 yellow4 gold1 gold2 \
|
| 75 |
+
gold3 gold4 goldenrod1 goldenrod2 goldenrod3 goldenrod4 \
|
| 76 |
+
DarkGoldenrod1 DarkGoldenrod2 DarkGoldenrod3 DarkGoldenrod4 \
|
| 77 |
+
RosyBrown1 RosyBrown2 RosyBrown3 RosyBrown4 IndianRed1 \
|
| 78 |
+
IndianRed2 IndianRed3 IndianRed4 sienna1 sienna2 sienna3 \
|
| 79 |
+
sienna4 burlywood1 burlywood2 burlywood3 burlywood4 wheat1 \
|
| 80 |
+
wheat2 wheat3 wheat4 tan1 tan2 tan3 tan4 chocolate1 \
|
| 81 |
+
chocolate2 chocolate3 chocolate4 firebrick1 firebrick2 \
|
| 82 |
+
firebrick3 firebrick4 brown1 brown2 brown3 brown4 salmon1 \
|
| 83 |
+
salmon2 salmon3 salmon4 LightSalmon1 LightSalmon2 \
|
| 84 |
+
LightSalmon3 LightSalmon4 orange1 orange2 orange3 orange4 \
|
| 85 |
+
DarkOrange1 DarkOrange2 DarkOrange3 DarkOrange4 coral1 \
|
| 86 |
+
coral2 coral3 coral4 tomato1 tomato2 tomato3 tomato4 \
|
| 87 |
+
OrangeRed1 OrangeRed2 OrangeRed3 OrangeRed4 red1 red2 red3 \
|
| 88 |
+
red4 DeepPink1 DeepPink2 DeepPink3 DeepPink4 HotPink1 \
|
| 89 |
+
HotPink2 HotPink3 HotPink4 pink1 pink2 pink3 pink4 \
|
| 90 |
+
LightPink1 LightPink2 LightPink3 LightPink4 PaleVioletRed1 \
|
| 91 |
+
PaleVioletRed2 PaleVioletRed3 PaleVioletRed4 maroon1 \
|
| 92 |
+
maroon2 maroon3 maroon4 VioletRed1 VioletRed2 VioletRed3 \
|
| 93 |
+
VioletRed4 magenta1 magenta2 magenta3 magenta4 orchid1 \
|
| 94 |
+
orchid2 orchid3 orchid4 plum1 plum2 plum3 plum4 \
|
| 95 |
+
MediumOrchid1 MediumOrchid2 MediumOrchid3 MediumOrchid4 \
|
| 96 |
+
DarkOrchid1 DarkOrchid2 DarkOrchid3 DarkOrchid4 purple1 \
|
| 97 |
+
purple2 purple3 purple4 MediumPurple1 MediumPurple2 \
|
| 98 |
+
MediumPurple3 MediumPurple4 thistle1 thistle2 thistle3 \
|
| 99 |
+
thistle4
|
my_container_sandbox/workspace/anaconda3/lib/tk8.6/demos/dialog1.tcl
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# dialog1.tcl --
|
| 2 |
+
#
|
| 3 |
+
# This demonstration script creates a dialog box with a local grab.
|
| 4 |
+
|
| 5 |
+
interp create child
|
| 6 |
+
load {} Tk child
|
| 7 |
+
child eval {
|
| 8 |
+
wm title . child
|
| 9 |
+
wm geometry . +700+30
|
| 10 |
+
pack [text .t -width 30 -height 10]
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
after idle {.dialog1.msg configure -wraplength 4i}
|
| 14 |
+
set i [tk_dialog .dialog1 "Dialog with local grab" {This is a modal dialog box. It uses Tk's "grab" command to create a "local grab" on the dialog box. The grab prevents any mouse or keyboard events from getting to any other windows in the application until you have answered the dialog by invoking one of the buttons below. However, you can still interact with other applications. For example, you should be able to edit text in the window named "child" which was created by a child interpreter.} \
|
| 15 |
+
info 0 OK Cancel {Show Code}]
|
| 16 |
+
|
| 17 |
+
switch $i {
|
| 18 |
+
0 {puts "You pressed OK"}
|
| 19 |
+
1 {puts "You pressed Cancel"}
|
| 20 |
+
2 {showCode .dialog1}
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
if {[interp exists child]} {
|
| 24 |
+
interp delete child
|
| 25 |
+
}
|