summaryrefslogtreecommitdiff
path: root/Test/C04funcdef.ztst
diff options
context:
space:
mode:
Diffstat (limited to 'Test/C04funcdef.ztst')
-rw-r--r--Test/C04funcdef.ztst52
1 files changed, 51 insertions, 1 deletions
diff --git a/Test/C04funcdef.ztst b/Test/C04funcdef.ztst
index f71e5ce77..90f01e397 100644
--- a/Test/C04funcdef.ztst
+++ b/Test/C04funcdef.ztst
@@ -1,3 +1,8 @@
+%prep
+
+ mkdir funcdef.tmp
+ cd funcdef.tmp
+
%test
fn1() { return 1; }
@@ -26,7 +31,7 @@
print regress expansion of function names
}
f$$
-0:Regression test: `function f$$ () { ... }'
+0:Regression test: 'function f$$ () { ... }'
>regress expansion of function names
function foo () print bar
@@ -109,6 +114,8 @@
>really useful
>args
+# ' deconfuse emacs
+
command_not_found_handler() {
print "Your command:" >&2
print "$1" >&2
@@ -201,6 +208,49 @@
>Da de da
>Do be do
+ () { print This has arguments $*; } of all sorts; print After the function
+ function { print More stuff $*; } and why not; print Yet more
+0:Anonymous function with arguments
+>This has arguments of all sorts
+>After the function
+>More stuff and why not
+>Yet more
+
+ fn() {
+ (){ print Anonymous function 1 $*; } with args
+ function { print Anonymous function 2 $*; } with more args
+ print Following bit
+ }
+ functions fn
+0:Text representation of anonymous function with arguments
+>fn () {
+> () {
+> print Anonymous function 1 $*
+> } with args
+> () {
+> print Anonymous function 2 $*
+> } with more args
+> print Following bit
+>}
+
+ touch yes no
+ () { echo $1 } (y|z)*
+ (echo here)
+ () { echo $* } some (y|z)*
+ () { echo empty };(echo here)
+0:Anonymous function arguments and command arguments
+>yes
+>here
+>some yes
+>empty
+>here
+
+ if true; then f() { echo foo1; } else f() { echo bar1; } fi; f
+ if false; then f() { echo foo2; } else f() { echo bar2; } fi; f
+0:Compatibility with other shells when not anonymous functions
+>foo1
+>bar2
+
%clean
rm -f file.in file.out