Daniel K
9374494d2b
Fix job_or_process_extent with command substitution
2015-01-17 11:47:42 +01:00
ridiculousfish
c31ad3ed07
Disallow backgrounding in conditionals and before and/or bool statements
...
Fixes #1136
2014-11-02 13:11:27 -08:00
ridiculousfish
7ac593273e
Remove a bunch of dead code identified by cppcheck
2014-10-31 01:15:50 -07:00
ridiculousfish
a529fc9d83
Set of fixes for issues identified by cppcheck
2014-10-30 22:40:35 -07:00
ridiculousfish
1927ebbc5d
Improve error reporting for unclosed blocks
2014-10-14 00:41:39 -07:00
ridiculousfish
9df0bcea99
Clean up string handling in parse_util_detect_errors_in_argument
2014-10-05 15:40:46 -07:00
Kevin Ballard
6d7a7b00d7
Use ENV_USER with vars set via function -a
...
ENV_USER is intended to be used when setting any variable whose name is
controlled by the user. The names given to `function -a` certainly
qualifies. This wasn't an issue in practice because the only restriction
ENV_USER imposes is also imposed on ENV_LOCAL, but the rules may change
in the future.
2014-10-02 18:41:39 -07:00
ridiculousfish
27dd37ebb4
Fix to indent comments in blocks properly ( #1710 )
...
This makes two changes to parse trees:
1. Unmaterialized nodes no longer have an invalid source location
For example, with the code `while false;end` there are no tokens
associated with the while loop's job_list, and therefore it is
unmaterialized. Previously it would have had a SOURCE_OFFSET_INVALID.
But now it has a zero source length, but an offset equal to the end of
the while loop (i.e. the semicolon), and a zero length. Correspondingly,
the has_source function now checks the length instead of the offset.
2. Special (comment and error) nodes have always been "disconnected,"
meaning they are not the child of any other node. However, they now have
their parent offsets set to whatever the top of the node stack was when
the node was encountered. This gives us a sense of which node the
comment is "in", e.g. if we are constructing a job list then the
comment's parent will be the job list. This lets us determine the
comment's indent.
2014-09-29 11:30:21 -07:00
ridiculousfish
7d7a636f24
Allow running executables with $ in their name.
...
Fixes #1686
2014-09-21 23:35:19 -07:00
ridiculousfish
5e60efefbf
Allow parse_util_detect_errors to treat incomplete strings as errors
...
Fixes bug where sourcing a file with an unclosed quote would not have a
backtrace
2014-07-24 14:41:15 -07:00
ridiculousfish
d5fa4b2ccb
Remove errant debug line
2014-07-07 02:01:43 -07:00
ridiculousfish
3ff104ba30
Rename lock_t to mutex_lock_t to fix Solaris compilation
...
Fixes #1510
2014-07-07 00:38:37 -07:00
ridiculousfish
0d3169ef70
Run restyle.sh to enforce style rules.
2014-03-31 10:01:39 -07:00
ridiculousfish
0325c1ba65
Teach parse_util_detect_errors to report invalid builtins, as found in
...
issue #1252
2014-03-26 18:20:38 -07:00
ridiculousfish
ad6367018b
Excise use of parser_t's error() functionality. Thread a
...
parse_error_list_t through all of the expand functions, enabling them to
report errors more directly. Improve aspects of error reporting for
expansion failures.
2014-03-21 17:13:33 -07:00
ridiculousfish
4deb46290d
Remove additional dead code from old parser
2014-03-20 21:32:03 -07:00
ridiculousfish
e5ef45e4c0
Rewrite parser_t::test_args and parser_t::eval_args to use new parser
2014-03-20 21:32:02 -07:00
ridiculousfish
e780637cf4
Add some tests for parse_util_detect_errors_in_argument
2014-03-20 21:32:02 -07: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
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
1fbf633817
Reimplement exec parsing. Instead of special-casing exec as a command,
...
promote it to a decoration (like 'command' or 'builtin'). This makes tab
completion and syntax highlighting treat exec's first argument as a
command and is otherwise a nice simplification. Fixes #1300
2014-02-13 10:10:49 -08:00
ridiculousfish
bac3b39227
Highlight the entire variable name, not just the dollar sign. Fixes #1201
2014-02-03 14:16:00 -08: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
212eeaa77c
Correctly report errors for 'and' and 'or' in pipelines with new parser
2014-01-13 13:19:58 -08:00
ridiculousfish
eb28c710ba
Improve the 'This command can not be used in a pipeline' message to
...
actually name the command
2014-01-13 12:51:09 -08:00
ridiculousfish
096f850433
Eliminate class parse_t
2014-01-12 22:39:12 -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
3e9153d955
Clean up some error messages. Don't show the line in the error message
...
if it's the first line and we're interactive, since then it's obvious
2013-12-16 16:52:23 -08:00
ridiculousfish
5b24aac266
Initial work on backtrace support with new parser
2013-12-15 16:05:37 -08:00
ridiculousfish
67b1f14a6f
Better support for parse errors in indenting
2013-12-08 14:13:23 -08:00
ridiculousfish
dd0cc5ed9f
Rewriting indenting functionality to use new parser
2013-12-08 13:41:12 -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
ridiculousfish
3c5d5b344e
Fix for buffer overflows identified by libgmalloc
2013-10-16 01:02:15 -07:00
ridiculousfish
54d7c29221
Syntax highlighting for command substitutions
2013-10-08 18:41:35 -07:00
ridiculousfish
dd91779442
Merge branch 'master' into ast_no_templates
...
Conflicts:
configure.ac
exec.cpp
2013-10-06 13:08:57 -07:00
ridiculousfish
cbe615224d
Make tok_last_type return an enum token_type instead of int
2013-09-30 13:57:36 -07:00
ridiculousfish
97ea61a407
Fix for parse_util_token_extent doing the wrong thing inside a command
...
substitution. Fixes https://github.com/fish-shell/fish-shell/issues/833
2013-09-21 16:38:57 -07:00
ridiculousfish
3e3eefc2dc
Improvements to new parser. All functions and completions now parse.
2013-07-22 18:26:15 -07:00
ridiculousfish
f9c2a77c67
Next stab at abbreviations. Highlighting should work.
2013-07-19 12:41:35 -07: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
4416753df0
More cleanup based on static analysis
...
https://github.com/fish-shell/fish-shell/issues/575
2013-02-16 02:38:13 -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