Konrad Borowski
6709d1067d
Recommend eval when using variable as command.
2013-09-04 20:43:40 +02:00
ridiculousfish
4899086b3c
Big fat refactoring of how redirections work. In fish 1.x and 2.0.0, the redirections for a process were flattened into a big list associated with the job, so there was no way to tell which redirections applied to each process. Each process therefore got all the redirections associated with the job. See https://github.com/fish-shell/fish-shell/issues/877 for how this could manifest.
...
With this change, jobs only track their block-level redirections. Process level redirections are correctly associated with the process, and at exec time we stitch them together (block, pipe, and process redirects).
This fixes the weird issues where redirects bleed across pipelines (like #877 ), and also allows us to play with the order in which redirections are applied, since the final list is constructed right before it's needed. This lets us put pipes after block level redirections but before process level redirections, so that a 2>&1-type redirection gets picked up after the pipe, i.e. it should fix https://github.com/fish-shell/fish-shell/issues/110
This is a significant change. The tests all pass. Cross your fingers.
2013-08-19 18:06:24 -07: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
551d2dfebd
Merge branch 'master' into ast_templates
...
Conflicts:
fish_tests.cpp
2013-07-21 14:04:06 -07:00
Konrad Borowski
58ad04b61c
Avoid standard command not found message when command-not-found is found
...
Squashed commit of the following:
commit c208bc30b7747b3743212483b3dd7e3f90819f49
Merge: 97bea94
2633372
Author: Konrad Borowski <glitchmr@myopera.com>
Date: Fri Jul 19 09:56:12 2013 +0200
Merge branch 'command-not-found' of git://github.com/GlitchMr/fish-shell into command-not-found
commit 26333721b9
Author: Konrad Borowski <glitchmr@myopera.com>
Date: Fri Jul 19 09:55:13 2013 +0200
Fix command_not_found when not found
commit db34460bb5
Author: Konrad Borowski <glitchmr@myopera.com>
Date: Wed Jul 17 13:41:57 2013 +0200
Avoid showing standard command not found message when possible
In bash, command-not-found handler causes the standard messages to
not appear. Because of events model in fish, it isn't really an
option, so I moved the standard command not found message to
fish function. This way, the messages aren't repeated, and the
standard command not found message appears only when handler
couldn't be found.
2013-07-19 09:56:47 +02:00
ridiculousfish
1511de68ed
Make parse_util_locate_cmdsubst return the innermost command substitution instead of the outermost.
...
Fixes https://github.com/fish-shell/fish-shell/issues/913
2013-07-17 01:35:30 -07:00
ridiculousfish
048f08080d
Rename expression.h to parse_tree.h and parse_exec.h
2013-06-09 14:21:24 -07:00
ridiculousfish
0a02e0db4b
Merge branch 'master' into parsed
2013-06-09 13:52:18 -07:00
ridiculousfish
09b0213738
Fix for quoted variables in command position error message
...
https://github.com/fish-shell/fish-shell/issues/775
2013-06-08 20:08:54 -07:00
ridiculousfish
d54346b205
Stuff
2013-06-01 22:14:47 -07:00
ridiculousfish
94b1d58cc2
Additional changes related to https://github.com/fish-shell/fish-shell/pull/592
2013-02-28 10:25:32 -08:00
Cheer Xiao
76f715c486
add class scoped_push to automatically restore variable on function exit
2013-02-26 12:17:28 -08:00
ridiculousfish
f109d535b1
Add a null check to avoid passing null to io_chain_t::push_back
...
https://github.com/fish-shell/fish-shell/issues/590
2013-02-21 12:44:01 -08:00
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
ridiculousfish
1879dc4b59
Initial set of changes working to make fish robust against running out of file descriptors
2013-01-30 02:22:38 -08:00
ridiculousfish
92b2376c23
Indent switch + case properly. https://github.com/fish-shell/fish-shell/issues/530
2013-01-24 14:59:52 -08:00
ridiculousfish
98a17f4046
Remove some functions which were rendered trivial by xiaq's changes. Make io_file_t take its path directly. Make io_buffer_t no longer use a shared_ptr for its data.
2013-01-19 10:59:43 -08:00
Cheer Xiao
4b6bd7cae5
Split out io_file_t
2013-01-17 15:55:05 +08:00
Cheer Xiao
6f35792c74
Split out io_fd_t
2013-01-17 14:58:53 +08:00
Cheer Xiao
f1b375b042
Split out io_close_t
2013-01-17 14:58:53 +08:00
Cheer Xiao
4e672427bc
parser.cpp: Put off initialization of new_io until mode is known
2013-01-17 14:58:53 +08:00
ridiculousfish
214ef3dd0b
Formatting
2013-01-16 14:50:08 -08:00
Jan Kanis
640beafa8c
fix a memory leak in profiling, add a profiling test
2013-01-14 01:38:05 +01:00
Jan Kanis
44f70d2b52
stop profile switch from crashing (issue #517 ); also make print_profile use a loop instead of recursion
2013-01-14 00:49:32 +01:00
ridiculousfish
373cca0bf6
Formatting
2013-01-12 12:55:23 -08:00
ridiculousfish
b32fcc7a8e
Don't call expand_home_directory from within parser_t::test - it may hang
...
https://github.com/fish-shell/fish-shell/issues/512
2013-01-12 12:53:40 -08:00
Cheer Xiao
b66233de78
Revert "Revert shared_ptr<io_data_t> changes until kinks are ironed out"
...
This reverts commit 77f1b1f0fe
.
2013-01-11 14:18:10 -08:00
ridiculousfish
edb973fadc
Hack around xdm's dumb assumption that the login shell is POSIX compliant so we no longer kill OpenSUSE
...
https://github.com/fish-shell/fish-shell/issues/367
Also fix some formatting
2013-01-04 13:09:01 -08:00
ridiculousfish
77f1b1f0fe
Revert shared_ptr<io_data_t> changes until kinks are ironed out
...
https://github.com/fish-shell/fish-shell/pull/487
Revert "Merge branch 'oo-io' of git://github.com/xiaq/fish-shell into xiaq-oo-io"
This reverts commit f3c8f535a4
, reversing
changes made to b02f6cf3bc
.
Also reverts ac023f7588
and a79d3c680c
2013-01-04 02:05:30 -08:00
Cheer Xiao
a9ada13a23
Use shared_ptr to manage io_data_t*.
2012-12-31 23:54:17 +08:00
ridiculousfish
37bdb20092
Make event_block_t.event not a reference
...
Stylistic tweaks
2012-12-22 12:40:34 -08:00
ridiculousfish
8a66ba6c35
Merge branch 'event-bug-test' of git://github.com/JanKanis/fish-shell into JanKanis-event-bug-test
2012-12-22 12:20:41 -08:00
Jan Kanis
8a446f43ff
include fixes and suggestions from code review
2012-12-22 18:38:28 +01:00
ridiculousfish
0b1e371880
Changes to work recognition per https://github.com/fish-shell/fish-shell/issues/384
...
Word movement should be very similar to fish 1.x
backward-kill-word remains more liberal, but now stops at any of {,'"=}
2012-12-20 17:37:09 -08:00
Jan Kanis
30392bf66a
reference'ize event.cpp/h
2012-12-20 16:13:14 +01:00
Jan Kanis
af3059ab2a
Allow 'emit' to accept event arguments
2012-12-20 16:13:00 +01:00
Cheer Xiao
09b1eee5d0
Random fixes to comments.
2012-12-16 12:23:24 +08:00
ridiculousfish
7117c4a5ee
Remove tok_destroy
2012-11-21 22:14:28 -08:00
ridiculousfish
f545fb2491
Work towards refactoring tokenizer to be a real object
2012-11-21 17:48:35 -08:00
ridiculousfish
26678682ca
Fix indentation of switch statements
2012-11-19 00:31:03 -08:00
ridiculousfish
9992b8eb0e
Apply new indentation, brace, and whitespace style
2012-11-18 16:30:30 -08:00
Łukasz Niemier
47df1ae40a
Remove trailing whitespaces and change tabs to spaces
2012-11-18 11:23:22 +01: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
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
ff124465fd
Clean up some warnings and some unused if-related code
2012-09-01 12:29:00 -07:00
ridiculousfish
de5223db66
Improve documentation and error reporting for elseif.
2012-09-01 02:14:13 -07:00
ridiculousfish
cc1395797e
First stab at elseif implementation
2012-09-01 01:46:14 -07:00
ridiculousfish
95de6cf5a7
Migrated function_data_t out of base block class
...
Removed an auto_ptr (yay)
2012-08-26 23:30:23 -07:00
ridiculousfish
d788c84440
Made type property of block_t constant and private
...
Further work towards cleaning up block_t hierarchy
2012-08-26 23:16:20 -07:00
ridiculousfish
96046ffd30
First stab at getting rid of the ugly state1, state2 properties of block_t
2012-08-26 22:42:29 -07:00
ridiculousfish
61686aff34
Adopt posix_spawn (!)
...
Rewrite IO chains to be a vector of pointers, instead of a linked list
Removed io_transmogrify
2012-08-15 00:57:56 -07:00
ridiculousfish
8de8877c7c
Fix OS X compilation
2012-08-05 12:05:05 -07:00
Siteshwar Vashisht
deca475972
Fixed compilation on Linux
...
Addresses issue https://github.com/fish-shell/fish-shell/issues/264
2012-08-05 18:37:51 +05:30
ridiculousfish
682353f9cc
Fix to restore an optimization from parse_util_get_line_from_offset in a more thread-safe way
2012-08-04 17:44:14 -07:00
ridiculousfish
7a46227141
More warning fixes and switching from int to long or size_t
2012-08-04 13:02:44 -07:00
ridiculousfish
b904aa78e8
Additional warning cleanup and switching from int to size_t where appropriate
2012-08-04 11:34:45 -07:00
ridiculousfish
2e1b3325c6
Warning cleanup
2012-08-04 11:34:45 -07:00
Colin Woodbury
eba75dbc2e
Fixed two small spelling mistakes
...
- Saw these during normal usage today.
"parens" or "parenthesis" was spelled as "parans".
Fixed two instances of this to "parenthesis".
2012-07-24 22:39:03 +09:00
ridiculousfish
b08fb86637
Renamed env_vars to env_vars_snapshot_t
...
Cleanup of non-wcstring version of path_get_path
2012-07-20 20:39:31 -07:00
ridiculousfish
ea1bfd715e
Set of changes to improve Unicode support with respect to combining characters.
...
Should address https://github.com/fish-shell/fish-shell/issues/155
2012-07-15 10:45:18 -07:00
ridiculousfish
1d9f47d1e5
https://github.com/fish-shell/fish-shell/issues/207
...
Improve error message for infinite loop detection
2012-07-09 15:18:22 -07:00
ridiculousfish
b877181e17
Fix for what I believe to be a bug in fish trunk where you can't always successfully control-C out of some while loops
2012-06-04 15:10:35 -07:00
ridiculousfish
69446be1ee
Signal handling cleanup and improved safety
...
Fixes issue where you couldn't control-C out of a loop (https://github.com/ridiculousfish/fishfish/issues/13 )
Also stops doing memory allocation in the signal handler (oops) https://github.com/ridiculousfish/fishfish/issues/27
2012-06-04 14:20:01 -07:00
ridiculousfish
b7ba252965
Restore implicit cd for paths starting with ., .., or ~
2012-06-02 14:04:25 -07:00
ridiculousfish
9bcc7df96f
Lots of modernization changed
...
Removed wcsdupcat
2012-05-09 02:33:42 -07:00
ridiculousfish
e0baab2722
Another effort to make the cd completion work without running command substitutions off of the main thread
2012-05-06 13:51:11 -07:00
ridiculousfish
71a8d39372
Fix to restore completions that use command substitution (like cd)
...
Fix to adopt the same escaping code for both completions and autosuggestions
2012-05-06 13:36:51 -07:00
ridiculousfish
ac3dce38f0
Better fix to make cd completions work again
2012-05-05 14:33:24 -07:00
ridiculousfish
07f5319472
Fix for failing to properly complete cd command
2012-05-05 14:21:21 -07:00
ridiculousfish
e2c3ca9950
Move completions from linked list to std::set
2012-04-09 20:17:06 -07:00
ridiculousfish
268fb37517
Cleanup proc_had_barrier
...
Ensure we don't try to do a universal barrier off of the main thread
2012-03-31 15:33:34 -07:00
ridiculousfish
0bc644abf0
Fix lots of bugs related to the static analyzer
...
Improved how screen.cpp interacts with output_set_writer()
2012-03-26 01:21:10 -07:00
ridiculousfish
6d3f257439
Shortened the "no matches found" error message
2012-03-10 13:44:35 -08:00
ridiculousfish
d173bb6e0a
A bunch of changes working towards eliminating all memory allocation after fork()
2012-03-08 23:21:07 -08:00
ridiculousfish
8a46931e34
Remove string_buffer_t (!)
2012-03-03 22:08:34 -08:00
ridiculousfish
2da8df6202
Rearrange wopen and stat to avoid a race and hopefully improve performance a little bit.
2012-03-02 11:12:08 -08:00
Peter Ammon
8b26d0104c
Some initial changes to use CLO_EXEC, with an eye towards some day using it correctly.
2012-03-02 00:27:40 -08:00
ridiculousfish
8ada404c5f
More work towards improving relationship between multithreading and fork
2012-02-29 16:14:51 -08:00
Siteshwar Vashisht
392232246e
Fixed compilation on Linux with some minor changes.
2012-02-28 21:20:09 +05:30
ridiculousfish
fdfa5c0602
Some initial work towards resolving nasty fork/pthread issues, and to having a per-parser job list
2012-02-27 18:43:24 -08:00
ridiculousfish
38e40862fe
More work towards autosuggesting completions
2012-02-25 18:54:49 -08:00
ridiculousfish
90e979d0d9
Added some const correctness
2012-02-24 09:33:30 -08:00
ridiculousfish
376e199ebb
Removed a lot of string_buffer_t
2012-02-22 12:00:02 -08:00
ridiculousfish
62bd43f17f
Large set of changes to migrate sb_out and sb_err to wcstring
2012-02-22 10:51:06 -08:00
ridiculousfish
5fe7c065dc
Squash a bunch of leaks
2012-02-21 19:33:11 -08:00
Siteshwar Vashisht
74a7303c23
Modified functions in function.h/.cpp to use wcstring instead wchar_t*, other files also modified to use wcstring.
2012-02-19 22:55:15 +05:30
ridiculousfish
9787901ddb
Fix for removing too many event handlers (that's why "Goodbye" never got printed")
2012-02-17 11:37:25 -08:00
ridiculousfish
a08450bcb6
Changes to make autosuggestion smarter about not suggesting commands that could never succeed.
2012-02-16 00:24:27 -08:00
ridiculousfish
910863e9ea
Final removal of halloc. It's like Christmas Morning.
2012-02-09 19:26:44 -08:00
ridiculousfish
80e8f6a0d1
Removed halloc_wcsdup
2012-02-09 18:59:15 -08:00
ridiculousfish
e5ff5f7484
Some hopefully good changes to get IOs off of halloc
2012-02-09 18:43:36 -08:00
ridiculousfish
b3d0561c09
Cleanup event_get_desc
2012-02-08 16:20:48 -08:00
Siteshwar Vashisht
bc8a288386
Got rid of multiple cd paths, only current directory will be searched while changing directories, implicit cd (entering directory just by typing it's name) is removed.
2012-02-09 01:18:51 +05:30
ridiculousfish
399c78fbf7
Fix event_block_t list from ad-hoc linked list to std::dequeue
2012-02-07 21:04:51 -08:00
ridiculousfish
a0a43046b3
Removed discriminated union from block_t type, allowing us to store wcstrings in it
2012-02-07 17:36:54 -08:00
ridiculousfish
5ad6849d4e
Work on new history implementation
2012-02-05 16:42:24 -08:00
ridiculousfish
623eb42a6a
CLean up current_filename, make it a std::stack
2012-02-02 15:05:08 -08:00
ridiculousfish
62f49c55ce
Clean up uses of completion_t
2012-02-01 16:27:14 -08:00
ridiculousfish
0b4b6c498d
Migrated off of old variant of expand_one that used halloc
2012-01-31 21:30:09 -08:00