ridiculousfish
6b3a37c597
Remove obviated builtins and additional cleanup of old parser
2014-03-02 13:11:17 -08:00
ridiculousfish
be33d3f2a4
Revert "Merge pull request #1317 from pullreq/cpp"
...
This reverts commit 74135c0600
, reversing
changes made to 6d749789ce
.
See discussion in #1317
2014-02-28 02:16:48 -08:00
Geoff Nixon
18dd6f58e3
Fixes .c -> .cpp in comments. For doxygen.
2014-02-27 06:23:40 -08:00
ridiculousfish
503bbd85b5
Test and fix issue where, if binding X is a prefix of binding Y, and X
...
is specified before Y, then Y will never be invoked because X will
always get there first. Now instead we order bindings in descending
order by length, so that we always test the binding before any others that
prefixes it. Fixes #1283 .
2014-02-12 12:52:31 -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
5be3606236
Increased support for completion search field. Use btab (shift-tab) to
...
complete-and-search.
2014-01-27 00:56:13 -08:00
Julian Aron Prenner
213e907044
Merge remote-tracking branch 'upstream/master' into bind_mode
...
Conflicts:
builtin.cpp
reader.cpp
share/functions/fish_default_key_bindings.fish
2014-01-15 15:27:06 +01:00
Julian Aron Prenner
fc21bb6eda
Replace builtin 'bind_mode' with variable $fish_bind_mode
2014-01-15 12:04:52 +01:00
Julian Aron Prenner
dede320630
Rename 'new-mode' to 'sets-mode', prepare for selection support.
2014-01-15 11:39:19 +01:00
ridiculousfish
53814983ff
Update style and formatting to conform to fish style guide.
2014-01-15 01:40:40 -08:00
ridiculousfish
dc8014562b
Fix for issue where unterminated quotes would attempt to be executed,
...
instead of continuing edit onto the next line.
2014-01-14 00:02:18 -08:00
ridiculousfish
096f850433
Eliminate class parse_t
2014-01-12 22:39:12 -08:00
ridiculousfish
ec469782c8
Improvements to error messages with new parser. In particular, "naked
...
builtins" now print their help (e.g. just 'while')
2014-01-12 15:10:59 -08:00
ridiculousfish
89069fdaa4
Miscellaneous minor fixes based on cppcheck static analyzer
2014-01-12 13:33:35 -08:00
ridiculousfish
d69f408b14
Rename builtin parse to __fish_parse
2014-01-08 15:13:08 -08:00
ridiculousfish
b34721b3f4
Miscellaneous optimizations to reduce string copying
2014-01-07 14:57:58 -08:00
ridiculousfish
fb882f0b69
Support for stack overflow and infinite recursion detection in new
...
parser
2014-01-01 15:29:56 -08:00
Julian Aron Prenner
dc90cd6bc4
Better input handling; add support multiple binding commands
2014-01-01 00:11:32 +01:00
Julian Aron Prenner
2587649ca2
Allow restricting earsing and listing of bindings to specific mode;
...
implement force repaint and multi-char bindings;
2013-12-31 14:53:29 +01:00
Julian Aron Prenner
d1faac58dd
Implement bind modes
2013-12-31 01:52:41 +01:00
ridiculousfish
715823a666
Bringup of function definitions, switch statements with new parser
2013-12-27 03:58:42 -08:00
ridiculousfish
6ce4b344e4
Hook up for statements, if statements, and function definition in new
...
parser
2013-12-27 01:38:43 -08:00
ridiculousfish
ed70195c7e
Merge branch 'master' into ast
...
Conflicts:
function.cpp
parser.cpp
parser.h
2013-12-20 17:44:37 -08:00
ridiculousfish
e38217683c
Refactor block_t storage in parser_t from a linked list to a vector
2013-12-20 17:41:21 -08:00
ridiculousfish
ddb37a47da
Stop using realpath() in builtin_source, so as to preserve relative path
...
reporting in backtraces
2013-12-15 16:43:22 -08:00
ridiculousfish
e25d49b80b
Make builtin_parse output to stdout
2013-12-12 18:17:30 -08:00
ridiculousfish
67b1f14a6f
Better support for parse errors in indenting
2013-12-08 14:13:23 -08:00
ridiculousfish
964c7e6f3b
Merge branch 'master' into ast
...
Conflicts:
complete.cpp
2013-10-27 13:37:14 -07:00
ridiculousfish
cf766b55cc
Fix formatting
2013-10-26 15:27:39 -07:00
ridiculousfish
630b0515ad
Merge branch 'master' into ast
...
Conflicts:
parse_util.cpp
2013-10-16 01:48:21 -07:00
Konrad Borowski
1349d129c5
Fix #213 . You can now remove autoloaded functions.
...
Oddly enough, the code is here, but is internal function.
2013-10-12 21:55:23 +02:00
ridiculousfish
5490f54d00
Make parse_t::parse a static method so we don't have to create lots of
...
useless parse_t objects
2013-10-12 01:17:55 -07:00
Konrad Borowski
97e731e05c
Escape characters in function names. Fixes #1031 .
2013-10-09 16:39:24 +02:00
ridiculousfish
a51bd03a5c
Remove parse_exec stuff
2013-10-08 18:48:01 -07:00
ridiculousfish
dd91779442
Merge branch 'master' into ast_no_templates
...
Conflicts:
configure.ac
exec.cpp
2013-10-06 13:08:57 -07:00
Alex Charron
061b872498
Refactored builtin_echo with better argument parsing.
2013-09-22 08:53:12 +02:00
Konrad Borowski
5818289c2d
Deprecate "." command. Fixes #310 .
...
Needs documentation (for the new name), but manages to move . to source,
while preserving compatibility.
2013-08-14 18:43:09 +03:00
ridiculousfish
e58b73179f
More work on new parser
2013-08-11 00:35:00 -07:00
ridiculousfish
8e07e55c1f
More work on new parser
2013-08-08 15:06:46 -07:00
ridiculousfish
3e3eefc2dc
Improvements to new parser. All functions and completions now parse.
2013-07-22 18:26:15 -07:00
ridiculousfish
551d2dfebd
Merge branch 'master' into ast_templates
...
Conflicts:
fish_tests.cpp
2013-07-21 14:04:06 -07:00
ridiculousfish
92099c7af2
Initial abbreviation work. Tests currently fail.
2013-07-19 12:41:34 -07:00
Konrad Borowski
d6c9d3ce94
Use \x1B instead of \e.
2013-07-16 13:42:31 -07:00
ridiculousfish
70b83a3bbb
Implement support for switch
2013-06-30 15:38:31 -07:00
ridiculousfish
66af0c1a53
More work on the AST. block statements worked out a bit more.
2013-06-24 12:33:40 -07:00
ridiculousfish
4ca46b7883
Beginning support for new parser error messages
2013-06-15 15:21:35 -07:00
ridiculousfish
827a9d640c
Added parse builtin for testing. Lots of work on simulated execution.
2013-06-15 14:32:38 -07:00
ridiculousfish
2da81b0ae7
Formatting and style updates
2013-05-05 02:33:17 -07:00
ridiculousfish
0f12f2b6b1
Formatting cleanup of builtin_contains
2013-04-28 14:35:00 -07:00
ridiculousfish
bcf3accb74
Eliminate a static string from input_terminfo_get_sequence
2013-04-15 13:07:17 -07:00
ridiculousfish
c37c7cee05
Reduce compiled code size a bit
2013-04-13 02:00:31 -07:00
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
Siteshwar Vashisht
d9c9760aac
Initial version of printf builtin
2013-03-02 20:54:12 +05:30
ridiculousfish
6d522e6ed6
First round of fixes based on cppcheck
...
https://github.com/fish-shell/fish-shell/issues/575
2013-02-16 00:02:40 -08:00
ridiculousfish
8d95d0834d
First stab at builtin set_color. Moved set_color.cpp to builtin_set_color.cpp and taught fish about it.
2013-02-14 15:52:24 -08:00
Jan Kanis
9a89da3b33
merge branch 'bug-537' and branch 'bug-read-ctrlC'. This should fix both #537 and #516
2013-02-05 23:16:18 +01: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
Jan Kanis
a3b497b271
rename reader_data_t.interruptible to exit_on_interrupt
2013-01-22 11:28:04 +01:00
Jan Kanis
970d05df39
make the read
builtin respect ctrl-C
2013-01-20 23:38:21 +01:00
ridiculousfish
6d61919941
Rearrange some variables for possibly better alignment. int -> bool
2013-01-19 13:32:12 -08:00
ridiculousfish
8d4a701f86
Implement builtin [ via builtin test
2013-01-05 01:30:03 -08:00
ridiculousfish
37bdb20092
Make event_block_t.event not a reference
...
Stylistic tweaks
2012-12-22 12:40:34 -08:00
ridiculousfish
e31431140a
Formatting
2012-12-22 12:21:31 -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
2a91a7640c
Make echo recognize -ne
2012-12-20 18:10:08 -08: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
ridiculousfish
644607c29f
Eliminate str2wcs
2012-12-19 13:31:06 -08:00
Cheer Xiao
09b1eee5d0
Random fixes to comments.
2012-12-16 12:23:24 +08:00
ridiculousfish
eec6db0a23
forward-word should accept a word of an autosuggestion
...
https://github.com/fish-shell/fish-shell/issues/435
2012-12-10 16:23:08 -08:00
ridiculousfish
6fc9e6f21e
Make tok_first return a wcstring instead of a wchar_t*
2012-11-21 22:23:48 -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
ridiculousfish
dc8cc39bc8
Don't autosuggest in builtin_read
...
https://github.com/fish-shell/fish-shell/issues/29
2012-11-18 02:43:35 -08:00
ridiculousfish
d76f880faf
Support for fish_right_prompt
...
Fixes https://github.com/fish-shell/fish-shell/issues/80
2012-11-07 19:59:20 -08:00
ridiculousfish
e52cf09bc1
Simplify handling of escape sequences in echo -e
2012-10-17 17:08:45 -07: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
Ian Munsie
ffc03735e8
Don't barf when ending a FAKE block
...
After updating, fish would immediately die when started in an xterm from
my window manager (wmii) with a message like:
fish: builtin.cpp:3357: int builtin_end(parser_t&, wchar_t**): Assertion `false' failed.
fish: Job 1, “~/code/fish-shell/fish” terminated by signal SIGABRT (Abort)
Starting fish from an existing shell worked, and running it on other
machines that I was only SSHing into worked as well. I did discover that
on one machine starting git from one specific directory
(/home/ian/bml/kernel) would cause this failure, but starting from any
other directory worked as normal. I'm not entirely sure what
circumstances contribute to this failure - starting from a copy of the
kernel directory works fine.
The failure only started with the following commit, which introduced the
assert(false):
commit d788c84440
Made type property of block_t constant and private
Further work towards cleaning up block_t hierarchy
Looking at this fail in gdb:
(gdb) r
Starting program: /home/ian/code/fish-shell/fish
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
fish: builtin.cpp:3357: int builtin_end(parser_t&, wchar_t**): Assertion `false' failed.
Program received signal SIGABRT, Aborted.
0x00007ffff6c82475 in *__GI_raise (sig=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
function=0x548520 "int builtin_end(parser_t&, wchar_t**)") at assert.c:81
(gdb) up 3
3357 assert(false); //should never get here
(gdb) p parser.current_block->type()
$1 = FAKE
So this happens when we run an end command for a FAKE block.
The below patch adds an empty case for FAKE blocks to avoid hitting the
assert. I would need to study the code in more detail to understand if
we should even be executing this code if we are in a FAKE block, but
this patch seems to solve the issue for me.
Signed-off-by: Ian Munsie <darkstarsword@gmail.com>
2012-09-22 23:51:41 -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
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
84729c4dfa
Additional warnings cleanup, effective C++ violations, dead code removal
2012-08-05 13:24:33 -07:00
ridiculousfish
c67702a498
Cleaned up lots of typecasts, simplified some string handling
2012-08-04 15:11:43 -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
8185bee4b8
Lots of work towards making fish build without warnings on Mountain Lion, mostly in terms of using size_t instead of int
2012-08-04 11:34:45 -07:00
ridiculousfish
e7cbcc83a4
Implemented history deletion from fish_config
...
Fixes https://github.com/fish-shell/fish-shell/issues/250
2012-07-27 00:31:00 -07:00
ridiculousfish
62c49f13ce
Switch from std::list to std::vector in a few places to reduce compiled code size
2012-07-24 22:32:11 -07:00
ridiculousfish
261bf12c91
Lots of miscellaneous cleanup. Unified the path_get_cd_path, path_allocate_cd_path, etc. functions
2012-07-20 22:11:05 -07:00
maxfl
0c03b6ddc7
Allow 'contains' builtin to return index
...
Add an option -i/--index to the contains builtin to print the index
of first coincidence.
2012-07-10 16:21:00 -07:00
maxfl
232ed91ec7
Fix read default prompt. It's now single line.
2012-07-06 15:31:45 -07:00
maxfl
ea4b37d5c5
Fixed case behaviour
...
* case no properly handles -h and --help flags, i.e. treats it as
pattern
* fixed case escaping:
The following expressions now work correctly:
switch '*'
echo '*'
echo Match any string
end
switch '*'
echo '\*'
echo Match asterix
end
switch '\\'
echo '\\\\'
echo Match slash
end
The same for '?' sign
2012-07-05 14:17:25 -07:00
ridiculousfish
7bbc7a61ce
Clarify the function name deferral in functions_def
...
Prohibit making a function with an empty name
2012-07-01 15:33:50 -07:00
maxfl
ab62fe6496
Update funced
...
* Editor mode is no the default
* Use -i or --interactive or -e fish to edit function in interactive
mode
* tmpname is now created with random number added and check that file
do not already exist
* check $TMPDIR existence and put /tmp if it does not exist
* There is an undocumented feature to use functions, started with dash.
Introduce necessary changes to funced, functions, def_function()
in order to make it work properly.
* Delete editor guessing. Use $EDITOR variable or -e key
2012-07-01 14:20:43 -07:00