Commit graph

3763 commits

Author SHA1 Message Date
ridiculousfish
2db013a5fa Hopeful fix for the build 2014-03-25 20:13:33 -07:00
ridiculousfish
9fece3fdf1 Space and time optimizations for parse_node_t. Reduced size from 48
bytes to 20 bytes.
2014-03-25 20:06:34 -07:00
ridiculousfish
b520a03c57 Prefer swap() member function to std::swap. We were hitting the
inefficient generic std::swap for some derived types.
2014-03-25 12:44:21 -07:00
ridiculousfish
a4cafaad2e Turn on the new "ast" parser by default for execution.
This change replaces fish's execution model, and obviates much of
parser_t. Instead of parsing fish code into a sequence of
commands-arguments, this reifies syntactic constructs into a grammar,
builds a parse tree, and executes that. This provides a big
simplification and (sometimes) performance boost. fish while loops
become C++ while loops, etc.

There are some known regressions in error reporting, which ought to be
fixed in the soon-to-be-merged parser_cleanup branch. There's also
legitimate changes in edge cases. For example, `command builtin ...` now
executes a command called "builtin" instead of doing something else
weird. The most significant change is that syntactic elements must be
unexpected: for example, single quoting 'command' will now cause it to
not be recognized. This should be fixed soon.

Please open issues for any regressions you find!
2014-03-25 00:34:22 -07:00
ridiculousfish
0d64bbed46 Stop linking iconv, now that we have our own utf8 conversion routines 2014-03-23 13:29:57 -07:00
ridiculousfish
9718e70260 Naive reimplementation of utf2wcs and wcs2utf in
env_universal_common.cpp. These use the new utf8 functions exposed in
utf8.h. This will allow us to drop the iconv dependency.
2014-03-23 13:06:24 -07:00
Siteshwar Vashisht
a67dd9fbdd Included missing stdint.h header in utf8.cpp 2014-03-23 15:09:43 +05:30
ridiculousfish
aabed8279e Incorporate a modified UTF8 <-> wchar_t implementation from Alexey
Vatchenko (http://www.bsdua.org/libbsdua.html) in preparation for
eliminating our dependency on iconv
2014-03-22 23:46:58 -07:00
ridiculousfish
06eb271bda Changes full_escape to not generate \x escapes for non-ASCII characters.
Partially reverts 51de269 . Fixes #1225
2014-03-22 14:46:23 -07:00
jer-gentoo
5f11854286 Check for libtinfo after libncurses
See Gentoo bug 459768 (https://bugs.gentoo.org/show_bug.cgi?id=459768)

Closes #1322 (https://github.com/fish-shell/fish-shell/pull/1322).
2014-03-19 11:29:22 +08:00
ridiculousfish
14f4e0e271 Fix for issue where pager contents may stay around if you executed a
command with pager contents visible
2014-03-16 16:49:31 -07:00
ridiculousfish
73c2846d64 Remove support for input IO_BUFFERs, which were only used by fish_pager 2014-03-15 19:49:55 -07:00
ridiculousfish
acd2038407 Remove old pager remnants, including documentation and references in the
build system
2014-03-15 14:24:05 -07:00
ridiculousfish
2442ae60db Remove old fish_pager source and implementation 2014-03-15 14:00:18 -07:00
ridiculousfish
6c096191ba Remove support for invoking old pager 2014-03-15 13:46:15 -07:00
ridiculousfish
20f9dd9a6b Fix for extra newline that gets appended if a command is not found in
the new parser
2014-03-15 13:07:19 -07:00
David Adam
44e94b8cfa ignore (generated) messages.pot 2014-03-13 21:56:56 +08:00
David Adam
8c21cf7761 translations: update new strings, convert all to UTF-8 2014-03-13 21:56:04 +08:00
David Adam
d2851cf5c5 translations: correct strings for fish_greeting default message 2014-03-13 21:16:35 +08:00
David Adam
b0716253a2 Makefile: assume UTF-8 in our codebase for translation generation 2014-03-13 21:16:35 +08:00
David Adam
eaf023b4d8 Makefile: separate messages.pot error lines 2014-03-13 21:16:35 +08:00
ridiculousfish
e47ad09130 Make contains take the string by const reference again, for performance reasons 2014-03-11 12:43:52 +08:00
David Adam
689d0082d8 README.md: document build and runtime dependencies even better. 2014-03-10 10:09:52 +08:00
ridiculousfish
390a49072d Reorganize keyword recognition in the parser to use a single table 2014-03-10 07:38:14 +08:00
Daniel J. Hofmann
7dc0b6f40b Fixed various Undefined Behavior occurrences.
Conditionally uninitialized:
 - builtin_commandline.cpp:577
 - expand.cpp:869
 - parse_util.cpp:1036

Initialization of POD structs:
 - event.cpp:61
 - autoload.cpp:22

References used with va_start:
 - common.cpp:608:18

Found with clang-3.4's awesome -Wconditional-uninitialized,
-Wmissing-field-initializers and -Wvarargs.
2014-03-07 18:28:16 +01:00
ridiculousfish
79d14521db Support for error detection in arguments in new parser. Restores error
reporting for bad arguments (e.g. with bad variable names)
2014-03-04 02:54:08 -08:00
ridiculousfish
8d6b0c8d76 Allow the caller to specify the goal node when parsing a string via the
new parser. This enables parsing either a job list or an argument list.
2014-03-04 02:54:08 -08:00
Konrad Borowski
1486774249 Force at least one line of output for set_color.
This should fix #1323.
2014-03-03 22:17:55 +01:00
ridiculousfish
d232a0f951 Implement status -n (line number) with new parser 2014-03-01 16:04:13 -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
ridiculousfish
858b6aa257 Correct some mistakes in the fish grammar comment 2014-02-27 20:34:42 -08:00
Konrad Borowski
74135c0600 Merge pull request #1317 from pullreq/cpp
Fixup filenames in comments; remove dead code found with scan-build.
2014-02-27 17:18:18 +01:00
Geoff Nixon
18dd6f58e3 Fixes .c -> .cpp in comments. For doxygen. 2014-02-27 06:23:40 -08:00
Geoff Nixon
ddcd2b0810 Dead stores 2014-02-27 06:23:40 -08:00
Konrad Borowski
6d749789ce Use 127.0.0.1 for fish config.
Before this change, fish config used 0 as its address. However, this
isn't a good idea from security point of view, as web service can be
accessed from everywhere, and do anything on the account it was ran on.

This also deals with firewalls which block the access to 0 even from
the host machine itself. It possibly might fix #673, but I'm not sure.
2014-02-27 14:47:08 +01:00
ridiculousfish
3224062b32 Optimize some fast paths in autoload loading. Use an iterator to avoid
doing multiple set lookups, and cache the tokenized path to avoid
multiple memory allocations.
2014-02-24 13:06:54 -08:00
ridiculousfish
688ea28bed Optimize the tokenize_variable_array hot spot to do less string copying 2014-02-24 09:54:30 -08:00
ridiculousfish
5e7c01c251 Rework color editing in fish_config. Bury customization mode a bit:
initially the user only sees the various themes, and has to activate
customization mode to change colors. Tweak the appearance as well.
2014-02-24 01:56:02 -08:00
ridiculousfish
de2eea05b4 Turn on the new pager by default, as described in #291 2014-02-22 22:24:23 -08:00
ridiculousfish
1de819e3de Fix for busted tab completions in for loop arguments, switch statements,
and other syntactic constructs. Fixes #1309
2014-02-21 19:55:55 -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
a57077aba3 Correctly color "end" command, and variable name in for loop. 2014-02-21 18:01:40 -08:00
ridiculousfish
8eaabacf44 Allow double-tapping tab to fully disclose pager, per #291 2014-02-20 13:30:26 -08:00
ridiculousfish
adf5b036d6 Fix to stop reporting config.fish execution as coming from "standard
input" within backtraces
2014-02-20 10:57:13 -08:00
ridiculousfish
3ab954644f Make fish install a command_not_found handler in non-interactive uses.
Previously, fish's command_not_found handler would be installed in
__fish_config_interactive. Errors that occured early in startup (e.g. in
config.fish) or in non-interactive mode would therefore not be reported.
With this change, fish now exposes its default cnf handler as
__fish_default_command_not_found_handler . config.fish then installs a
cnfh that invokes the default. When fish goes interactive, the initial
cnfh is overwritten with a fancier one, that may in turn fall back to
invoking the default.
2014-02-20 10:26:57 -08:00
ridiculousfish
64953e26fc Clean up Xcode project and remove unnecessary ARCHS settings 2014-02-17 15:02:13 -08:00
ridiculousfish
2e1024d275 Tweak error reporting in new parser to use fewer lines 2014-02-17 14:52:08 -08:00
ridiculousfish
2253c57628 Remove the reader_selected_completion_changed callback. Fix a hang when
the pager gets empty, as reported in 291
2014-02-16 19:59:00 -08:00
ridiculousfish
9c7d1dbb6f Make the pager search field allow searching on the prefix 2014-02-16 19:59:00 -08:00
Mandeep Sandhu
ef9f2ab31f Add completions for git stash sub-commands
Closes #1102.

Signed-off-by: David Adam <zanchey@ucc.gu.uwa.edu.au>
2014-02-16 21:58:21 +08:00