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 #### source ///osh/two.sh rather than source --builtin osh/two.sh
46
47 source --builtin osh/two.sh
48 echo status=$?
49
50 ## STDOUT:
51 status=0
52 ## END
53
54 #### OILS_VERSION, not OIL_VERSION
55
56 if test -n "$OIL_VERSION"; then
57 echo OIL
58 fi
59
60 ## STDOUT:
61 OIL
62 ## END
63
64 #### s.upper(), not s => upper() (might keep this)
65
66 shopt --set parse_ysh_expr_sub
67
68 echo $['foo' => upper()]
69
70 ## STDOUT:
71 FOO
72 ## END
73
74 #### fopen can be spelled redir
75 shopt --set ysh:upgrade
76
77 fopen >out {
78 echo 1
79 echo 2
80 }
81
82 tac out
83
84 ## STDOUT:
85 2
86 1
87 ## END
88
89
90 #### Dict => keys()
91 var en2fr = {}
92 setvar en2fr["hello"] = "bonjour"
93 setvar en2fr["friend"] = "ami"
94 setvar en2fr["cat"] = "chat"
95 pp test_ (en2fr => keys())
96 ## status: 0
97 ## STDOUT:
98 (List) ["hello","friend","cat"]
99 ## END
100
101
102 #### Obj API
103 shopt --set ysh:upgrade
104
105 try {
106 var obj = Object(null, {x: 4})
107 pp test_ (obj)
108 }
109 echo $[_error.code]
110
111 try {
112 pp test_ (propView(obj))
113 }
114 echo $[_error.code]
115
116 try {
117 pp test_ (prototype(obj))
118 }
119 echo $[_error.code]
120
121 ## STDOUT:
122 (Obj) ("x":4)
123 0
124 (Dict) {"x":4}
125 0
126 (Null) null
127 0
128 ## END
129
130 #### evalInFrame() and evalToDict()
131
132 var cmd = ^(echo hi)
133
134 call io->evalInFrame(cmd, vm.getFrame(-1))
135
136 var d = io->evalToDict(cmd)
137 pp test_ (d)
138
139 ## STDOUT:
140 hi
141 hi
142 (Dict) {}
143 ## END
144
145 #### YSH case requires ''/dir/*.py workaround
146
147 shopt --set ysh:all
148
149 case ('/usr/bin/') {
150 ''/usr/* { echo yes }
151 (else) { echo no }
152 }
153 ## STDOUT:
154 yes
155 ## END
156
157 #### \x7e was the legacy syntax for \y7e
158
159 pp test_ ('~' ~ / [\x7e] /) # should be INVALID
160
161 pp test_ ('~' ~ / [\y7e] /)
162
163 ## STDOUT:
164 (Bool) true
165 (Bool) true
166 ## END