1 # TODO-deprecate: Code we want to get rid of!
2
3
4 #### oil:upgrade as alias for ysh:upgrade
5
6 shopt -p | grep simple_word
7 shopt --set oil:upgrade
8 shopt -p | grep simple_word
9
10 shopt --unset ysh:upgrade
11 shopt -p | grep simple_word
12
13 ## STDOUT:
14 shopt -u simple_word_eval
15 shopt -s simple_word_eval
16 shopt -u simple_word_eval
17 ## END
18
19
20 #### %() array literal
21
22 shopt --set parse_at
23
24 var x = %(one two)
25 echo @x
26
27 ## STDOUT:
28 one two
29 ## END
30
31 #### _match() instead of _group()
32
33 shopt --set ysh:upgrade
34
35 if ('foo42' ~ / <capture d+> /) {
36 echo $[_match(0)]
37 echo $[_group(0)]
38 }
39
40 ## STDOUT:
41 42
42 42
43 ## END
44
45 #### _status instead of _error.code
46
47 shopt --set ysh:upgrade
48
49 f() {
50 return 42
51 }
52
53 try {
54 f
55 }
56 echo status=$_status
57
58 ## STDOUT:
59 status=42
60 ## END
61
62
63 #### source ///osh/two.sh rather than source --builtin osh/two.sh
64
65 source --builtin osh/two.sh
66 echo status=$?
67
68 ## STDOUT:
69 status=0
70 ## END
71
72 #### OILS_VERSION, not OIL_VERSION
73
74 if test -n "$OIL_VERSION"; then
75 echo OIL
76 fi
77
78 ## STDOUT:
79 OIL
80 ## END
81
82 #### s.upper(), not s => upper() (might keep this)
83
84 shopt --set parse_ysh_expr_sub
85
86 echo $['foo' => upper()]
87
88 ## STDOUT:
89 FOO
90 ## END
91
92 #### fopen can be spelled redir
93 shopt --set ysh:upgrade
94
95 fopen >out {
96 echo 1
97 echo 2
98 }
99
100 tac out
101
102 ## STDOUT:
103 2
104 1
105 ## END
106
107
108 #### Dict => keys()
109 var en2fr = {}
110 setvar en2fr["hello"] = "bonjour"
111 setvar en2fr["friend"] = "ami"
112 setvar en2fr["cat"] = "chat"
113 pp test_ (en2fr => keys())
114 ## status: 0
115 ## STDOUT:
116 (List) ["hello","friend","cat"]
117 ## END
118
119
120 #### Obj API
121 shopt --set ysh:upgrade
122
123 try {
124 var obj = Object(null, {x: 4})
125 pp test_ (obj)
126 }
127 echo $[_error.code]
128
129 try {
130 pp test_ (propView(obj))
131 }
132 echo $[_error.code]
133
134 try {
135 pp test_ (prototype(obj))
136 }
137 echo $[_error.code]
138
139 ## STDOUT:
140 (Obj) ("x":4)
141 0
142 (Dict) {"x":4}
143 0
144 (Null) null
145 0
146 ## END
147
148 #### evalInFrame() and evalToDict()
149
150 var cmd = ^(echo hi)
151
152 call io->evalInFrame(cmd, vm.getFrame(-1))
153
154 var d = io->evalToDict(cmd)
155 pp test_ (d)
156
157 ## STDOUT:
158 hi
159 hi
160 (Dict) {}
161 ## END
162
163 #### YSH case requires ''/dir/*.py workaround
164
165 shopt --set ysh:all
166
167 case ('/usr/bin/') {
168 ''/usr/* { echo yes }
169 (else) { echo no }
170 }
171 ## STDOUT:
172 yes
173 ## END
174
175 #### \x7e was the legacy syntax for \y7e
176
177 pp test_ ('~' ~ / [\x7e] /) # should be INVALID
178
179 pp test_ ('~' ~ / [\y7e] /)
180
181 ## STDOUT:
182 (Bool) true
183 (Bool) true
184 ## END