tagged release 0.6.4
[parrot.git] / languages / tcl / runtime / builtin / encoding.pir
blob03859682427535144cee5fcc2cdfac8a40b4c7bb
1 ###
2 # [encoding]
4 .HLL 'Tcl', 'tcl_group'
5 .namespace []
7 .sub '&encoding'
8   .param pmc argv :slurpy
10   .local pmc retval
12   $I3 = argv
13   unless $I3 goto no_args
15   .local string subcommand_name
16   subcommand_name = shift argv
18   .local pmc options
19   options = new 'ResizablePMCArray'
20   push options, 'convertfrom'
21   push options, 'convertto'
22   push options, 'dirs'
23   push options, 'names'
24   push options, 'system'
26   .local pmc select_option
27   select_option  = get_root_global ['_tcl'], 'select_option'
28   .local string canonical_subcommand
29   canonical_subcommand = select_option(options, subcommand_name)
31   .local pmc subcommand_proc
32   null subcommand_proc
34   subcommand_proc = get_root_global ['_tcl'; 'helpers'; 'encoding'], canonical_subcommand
35   if_null subcommand_proc, bad_args
36   .return subcommand_proc(argv)
38 bad_args:
39   .return ('') # once all commands are implemented, remove this...
41 no_args:
42   tcl_error 'wrong # args: should be "encoding option ?arg ...?"'
44 .end
46 .HLL '_Tcl', ''
48 .namespace [ 'helpers'; 'encoding' ]
50 .sub 'convertfrom'
51   .param pmc argv
53   .local int argc
54   argc = elements argv
56   if argc == 0 goto bad_args
57   if argc > 2  goto bad_args
59   .return('')
61 bad_args:
62   tcl_error 'wrong # args: should be "encoding convertfrom ?encoding? data"'
63 .end
65 .sub 'convertto'
66   .param pmc argv
68   .local int argc
69   argc = elements argv
71   if argc == 0 goto bad_args
72   if argc > 2  goto bad_args
74   .return('')
76 bad_args:
77   tcl_error 'wrong # args: should be "encoding convertto ?encoding? data"'
78 .end
80 .sub 'dirs'
81   .param pmc argv
83   .local int argc
84   argc = elements argv
86   if argc > 1  goto bad_args
88   .return('')
90 bad_args:
91   tcl_error 'wrong # args: should be "encoding dirs ?directoryList?"'
92 .end
94 .sub 'names'
95   .param pmc argv
97   .local int argc
98   argc = elements argv
100   if argc != 0 goto bad_args
102   .return('')
104 bad_args:
105   tcl_error 'wrong # args: should be "encoding names"'
106 .end
108 .sub 'system'
109   .param pmc argv
111   .local int argc
112   argc = elements argv
114   if argc > 1  goto bad_args
116   .return('')
118 bad_args:
119   tcl_error 'wrong # args: should be "encoding system ?encoding?"'
120 .end
122 # Local Variables:
123 #   mode: pir
124 #   fill-column: 100
125 # End:
126 # vim: expandtab shiftwidth=4 ft=pir: