Kevin Ballard
940f264ee6
Decrement SHLVL when running exec
...
`exec` removes fish from the shell "stack", so SHLVL needs to be
decremented to match. This means `exec fish` will result in the same
SHLVL in the new fish instance.
Also tweak the SHLVL logic to interpret an environment SHLVL of "3foo"
as garbage instead of as the value "3".
Fixes #1693 .
2014-09-19 17:38:54 -07:00
Kevin Ballard
51c2005ea2
Tweak interactive debug output
2014-09-19 16:22:37 -07:00
Kevin Ballard
510ff6a689
Dump interactive logs on travis test failure
...
As far as I know we can't access the build artifacts from Travis, so we
can't check the interactive logs after a test failure. Add an
environment variable that causes the test runner to dump the logs
itself, and set that variable for Travis.
2014-09-19 14:52:02 -07:00
Kevin Ballard
0a32d96b27
Reset fish_bind_mode when changing fish_key_bindings
...
Also avoid resetting bindings if fish_key_bindings is "modified" without
actually changing.
Fixes #1638 .
2014-09-18 15:46:17 -07:00
Kevin Ballard
22fd8e65ad
Disable fish_title on interactive tests
...
This was apparently what was interfering with the tests working on
Linux.
Tweak .travis.yml to install expect so the tests run on Linux.
2014-09-08 00:16:42 -07:00
Kevin Ballard
190712d4b0
Add a test harness for interactive behavior
...
Add a test harness that uses `expect` to drive Fish to test interactive
behavior.
Include some tests for `read`.
2014-09-07 23:56:59 -07:00
Kevin Ballard
efb1467e4e
Cleanup fish tests a bit
...
Split `make test` into two targets `make test_low_level` and `make
test_fishscript`, primarily so fishscript tests can be rechecked quickly
after edits.
Reformat the test.fish file and update some of the code to be a little
more straightforward (e.g. `if not cmd` instead of `if cmd; else`).
2014-09-07 23:50:44 -07:00
Joseph Tannhuber
4acea72700
New -n option for read builtin
...
Usage: read -n nchars
Reads maximum of nchars characters. If nchars <= 0, there's no limit.
2014-09-03 22:48:37 -07:00
Kevin Ballard
1c4223889b
Fix test output for complete -e
tests
...
GNU sort behaves stupidly when LC_ALL is not C. This caused the test
output to be sorted wrong.
2014-09-02 15:52:56 -07:00
Kevin Ballard
90a4fd34d2
Add tests for the various complete -e
changes
2014-09-02 15:30:58 -07:00
Kevin Ballard
7fce9e2411
Trim trailing newline on cmdsubst when IFS=''
...
When $IFS is empty, command substitution no longer splits on newlines.
However we still want to trim off a single trailing newline, as most
commands will emit a trailing newline and it makes it harder to work
with their output.
2014-08-29 12:48:45 -07:00
Kevin Ballard
130619d6b0
Fix $SHLVL
...
Due to being read-only, SHLVL wasn't being incremented properly for
recursive invocations of fish.
2014-08-29 12:22:35 -07:00
ridiculousfish
0b7735d279
Merge pull request #1630 from kballard/expand_variables_in_quoted_strings
...
Fix various expansions issues with variables
2014-08-23 16:13:25 -07:00
ridiculousfish
033373f078
Merge branch 'make_type_better' of github.com:kballard/fish-shell into kballard-make_type_better
2014-08-21 21:36:39 -07:00
Kevin Ballard
2974025010
Fix error span for invalid slice indexes
...
The span now properly points at the token that was invalid, rather than
the start of the slice.
Also fix the span for `()[1]` and `()[d]`, which were previously
reporting no source location at all.
2014-08-21 01:10:07 -07:00
Kevin Ballard
cc49042294
Parse slices even for empty variables
...
When a variable is parsed as being empty, parse out the slice and
validate the indexes anyway, behaving for slicing purposes as if the
variable had a single empty value.
Besides providing errors when expected, this also fixes the following:
set -l foo
echo "$foo[1]"
This used to print "[1]", now it properly prints nothing.
2014-08-20 22:09:32 -07:00
Kevin Ballard
3981b644d6
Fix double expansions ($$foo
)
...
Double expansions of variables had the following issues:
* `"$$foo"` threw an error no matter what the value of `$foo` was.
* `set -l foo ''; echo $$foo` threw an error because of the expansion of
`$foo` to `''`.
With this change, double expansion always works properly. When
double-expanding a multi-valued variable, in a double-quoted string the
first word of the inner expansion is used for the outer expansion, and
outside of a quoted string every word is used for the double-expansion
in each of the arguments.
> set -l foo bar baz
> set -l bar one two
> set -l baz three four
> echo "$$foo"
one two baz
> echo $$foo
one two three four
2014-08-20 21:45:07 -07:00
ridiculousfish
52ae5f885e
Improve history robustness against corrupt files
...
Fixes #1581
2014-07-29 14:42:03 -07:00
Kevin Ballard
973dd6ffbd
read: Support arrays, character splitting
...
Enhance the `read` builtin to support creating an array with the --array
flag. With --array, only a single variable name is allowed and the
entire input is tokenized and placed into that variable as an array.
Also add custom behavior if IFS is empty or unset. In that event, split
the input on every character, instead of the previous behavior of doing
no splitting at all.
2014-07-14 00:46:38 -07:00
Kevin Ballard
cfa13ed84c
Update tests for new type
behavior
...
One of the tests was using `>/dev/null` to suppress the `type` output.
That needs to be `^/dev/null` now, but instead just go ahead and use the
new `-q` flag.
2014-07-13 19:11:29 -07:00
ridiculousfish
98297e5234
Teach while loops to not hang forever with no-execute
...
Fixes #1543
2014-07-11 11:28:10 -07:00
ridiculousfish
18c1b12741
Switch variable name in tests from foo to something less likely to be
...
used accidentally
2014-07-06 20:41:21 -07:00
ridiculousfish
b19f45e15d
Add test for issue 1526
2014-07-06 18:12:18 -07:00
ridiculousfish
3cbace98a7
'echo -' should output a dash instead of treating it as options
...
Fixes #1459
2014-05-16 15:19:07 +08:00
Konrad Borowski
7f2c4cbf8a
Move the empty function test to tests.
2014-05-06 12:31:44 +02:00
Konrad Borowski
91ebe12fc2
Add test for empty function name.
2014-05-06 12:18:09 +02:00
ridiculousfish
b01d09d704
Set the job property of block_t before expanding arguments associated
...
with the job, fixing psub. Fixes #1394
2014-04-02 00:32:08 -07:00
ridiculousfish
d232a0f951
Implement status -n (line number) with new parser
2014-03-01 16:04:13 -08:00
ridiculousfish
bc43409624
Expand the variable name as an ordinary parameter in for loops. Added
...
test for it too.
2014-02-21 18:20:51 -08:00
ridiculousfish
29ddb68da4
Tests and fix to allow return to work correctly within if statements. Closes #1297 .
2014-02-12 01:39:06 -08:00
ridiculousfish
e632d39b1f
Make if statements always return success at the end, matching other
...
shells. Fixes #1061 .
2014-02-07 17:57:53 -08:00
ridiculousfish
699d78bcfe
Make the test harness output file diffs on failure
2014-02-04 11:28:29 -08:00
David Adam
3106cffb65
Makefile/tests: use return values to communicate errors
2014-01-15 23:50:42 +08:00
ridiculousfish
d9056081e7
Added tests for piping an fd other than stdout
2014-01-13 02:49:41 -08:00
ridiculousfish
a9787b769f
Support for implicit cd, no-exec, and the exit builtin. All tests now
...
pass (!). Error reporting still unsteady.
2013-12-29 16:23:26 -08:00
ridiculousfish
a42711e31c
Support for break/continue with new parser execution
2013-12-28 22:52:06 -08:00
ridiculousfish
5cf59de676
Finish rewriting detect_errors to use new parser. All tests now pass (!)
2013-12-12 18:18:07 -08:00
ridiculousfish
e849beabba
Initial work towards various IO cleanups with an eye to fixing https://github.com/fish-shell/fish-shell/issues/110
2013-08-19 18:06:24 -07:00
ridiculousfish
640118e781
Cleanup of code that decides whether or not to fork. Fix for issue where stderr may be output twice.
2013-06-16 23:26:43 -07:00
ridiculousfish
3ea8d83d3f
Try to fix printf tests on Linux
2013-04-03 18:04:17 -07:00
Siteshwar Vashisht
3ac9621f87
Enabled test cases for unicode characters in printf builtin
2013-03-29 12:26:15 +05:30
ridiculousfish
b04e874e43
Teach fish how to push and pop blocks even in the face of no_exec. All tests finally pass.
...
https://github.com/fish-shell/fish-shell/issues/624
2013-03-25 16:06:12 -07:00
ridiculousfish
d146f578a4
Fix printf output to store \r instead of \n
...
Is git breaking line endings?
2013-03-24 15:58:24 -07:00
ridiculousfish
9394583f96
Implement actual error handling for builtin_printf. Fix the tests.
2013-03-24 15:58:24 -07:00
Siteshwar Vashisht
be7d02ebdd
Added test cases for printf builtin
2013-03-03 00:45:34 +05:30
ridiculousfish
ad8d68dd43
Make subcommands modify $status, and make builtin_set not modify status unless it fails
...
https://github.com/fish-shell/fish-shell/issues/547
https://github.com/fish-shell/fish-shell/issues/214
2013-01-31 15:57:08 -08:00
Jan Kanis
640beafa8c
fix a memory leak in profiling, add a profiling test
2013-01-14 01:38:05 +01:00
ridiculousfish
dc37a8079e
Added a seq function that defers to the seq command if present
...
https://github.com/fish-shell/fish-shell/issues/137
2013-01-12 14:18:34 -08:00
Jan Kanis
9ee7b0a501
really fix bug in export status of universal vars; add tests for that bug
2013-01-02 23:31:30 -08:00
Jan Kanis
8a446f43ff
include fixes and suggestions from code review
2012-12-22 18:38:28 +01:00
Jan Kanis
af3059ab2a
Allow 'emit' to accept event arguments
2012-12-20 16:13:00 +01:00
Jan Kanis
1f0ae8b06d
fixed #449 , added test
2012-12-20 16:11:46 +01:00
ridiculousfish
bf27cb1f5e
Further fixes to newline escaping
...
Addresses issue described in https://github.com/fish-shell/fish-shell/issues/347#issuecomment-10650443
2012-11-23 12:03:36 -08:00
ridiculousfish
90495f3ac5
Implement new newline-escaping behavior. Backslashes at the end of lines now essentially delete the newline, within normal text or double quotes. Backslashes are retained within single quotes.
...
Fixes https://github.com/fish-shell/fish-shell/issues/347
Fixes https://github.com/fish-shell/fish-shell/issues/52
2012-11-22 01:09:07 -08:00
ridiculousfish
e9d216bc84
Fixed recursive brace expansion
...
https://github.com/fish-shell/fish-shell/issues/399
2012-11-20 13:52:53 -08:00
ridiculousfish
7bb844a778
Fix bug where 'else if' does not support functions and redirections
...
https://github.com/fish-shell/fish-shell/issues/359
2012-11-04 17:11:02 -08:00
ridiculousfish
57de1388e8
Make the \c special character in echo suppress the newline too
2012-10-17 02:59:43 -07:00
ridiculousfish
7ee0ce745e
Implement -e option to echo (to interpret special characters), and -E to not interpret them
...
https://github.com/fish-shell/fish-shell/issues/337
2012-10-17 02:56:03 -07:00
ridiculousfish
91e1d59869
Fix for issue where else if would fail to pass arguments to commands. Also implements short-circuiting for and/or so that non-existent commands don't produce error messages.
...
Fixes https://github.com/fish-shell/fish-shell/issues/345
Fixes https://github.com/fish-shell/fish-shell/issues/349
2012-10-17 01:07:34 -07:00
ridiculousfish
1a59346b51
Changed "elseif" to "else if"
2012-09-03 13:24:01 -07:00
ridiculousfish
cc1395797e
First stab at elseif implementation
2012-09-01 01:46:14 -07:00
ridiculousfish
bb4a05032b
Merge branch 'index_range'
2012-07-19 10:59:11 -07:00
maxfl
11dd904b6d
Tests for contains -i
2012-07-10 16:21:00 -07:00
maxfl
079f17761c
Fix case when first index is command substitution
2012-07-08 09:45:34 +08:00
maxfl
e1b8c425da
Fix case when second limit is a variable:
...
echo $PATH[1..$n]
2012-07-08 09:39:39 +08:00
maxfl
5f05756e65
Add variable expand ranges
...
echo $PATH[-1..1] #now works
Add tests for ranges
2012-07-08 09:19:11 +08:00
Kevin Ballard
f7d0c4b065
Add a test case for switch error code (issue #161 )
2012-06-24 13:43:44 -07:00
Siteshwar Vashisht
93dc7d4cc1
Add support for querying variables with scope options as requested in issue #132
2012-06-18 22:52:33 +05:30
ridiculousfish
18f04adccb
Support for importing fish 1.x's history and format, and also bash
2012-06-15 16:24:05 -07:00
ridiculousfish
c15975113a
Fix for https://github.com/ridiculousfish/fishfish/issues/2
2012-05-11 18:59:38 -07:00
ridiculousfish
39863ce4d7
Fix for longstanding bug where set -e would fail to erase elements from an array.
...
This was introduced in 7b3377e78c
2012-05-10 01:04:18 -07:00
Grissiom
9b97c55546
add test case for 364d3dbbf8
2010-11-24 00:35:56 +08:00
Grissiom
fefd17fe5e
add test case for 6b243fbc
2010-11-23 23:05:21 +08:00
Grissiom
27df727ca1
don't parse the options that should be passed to fish scripts
...
This commit makes fish_parse_opt stop at first non-option argument,
which expected as fish script name and pass the remaining argument to
that script. I also updated the test cases.
2010-10-03 11:46:26 +08:00
Grissiom
70322077d2
remove trialing spaces #2
2010-09-18 10:18:26 +08:00
axel
bef7fff383
Do not test universal variable functionality since it relies on fish to be installed
...
darcs-hash:20060718173711-ac50b-1feae98c4c283bfa5bbc8dfedec3eb4641316a8d.gz
2006-07-19 03:37:11 +10:00
axel
20e5d298a0
Updates, bugfixing and minor edits on the test suite
...
darcs-hash:20060605133133-ac50b-e2ee5868f9f3ede147c7059d90c0f520ed905a5f.gz
2006-06-05 23:31:33 +10:00
axel
2fab5364e1
Fix broken regression test (irony?)
...
darcs-hash:20051002134406-ac50b-d9d3c94eb08ecd05be1a4e128ca08d9d3ae53978.gz
2005-10-02 23:44:06 +10:00
axel
1ecfc8e4c6
Minor fix in testsuite
...
darcs-hash:20050927174025-ac50b-554f6bf9aefc2da0b5a40baebb44bcd02a933704.gz
2005-09-28 03:40:25 +10:00
axel
e855f2dfc9
Update testsuite to reflect new variable scoping rules
...
darcs-hash:20050927083554-ac50b-80f5fcb0022416a80eb8d3aa673282a2c67d4dd4.gz
2005-09-27 18:35:54 +10:00
axel
6a3e73f87c
Fix regression bug in regression test suite
...
darcs-hash:20050926141136-ac50b-864add3824c34e96ad56bc0e92537196992692b0.gz
2005-09-27 00:11:36 +10:00
axel
7ddecde543
Add subdirectories
...
darcs-hash:20050920133155-ac50b-9a14c6c664dd03afbe8e15e7c7998fcfb5c3c750.gz
2005-09-20 23:31:55 +10:00