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
Łukasz Niemier
47df1ae40a
Remove trailing whitespaces and change tabs to spaces
2012-11-18 11:23:22 +01:00
ridiculousfish
84729c4dfa
Additional warnings cleanup, effective C++ violations, dead code removal
2012-08-05 13:24:33 -07:00
ridiculousfish
25c6671a87
Fix for inability to go backwards through history
2012-08-04 16:06:40 -07:00
ridiculousfish
c67702a498
Cleaned up lots of typecasts, simplified some string handling
2012-08-04 15:11:43 -07:00
ridiculousfish
54ceb4211e
Additional warning fixes and migration from int to size_t or long where appropriate
2012-08-04 13:47:56 -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
2e1b3325c6
Warning cleanup
2012-08-04 11:34:45 -07:00
ridiculousfish
345a528625
Untangle unescaping responsibilities in highlight.cpp. Fix cd autosuggestions to properly handle quotes. Factor out some of the quote unescaping behavior from reader.cpp to parse_util.cpp.
...
Add some autosuggestion tests
2012-07-06 14:34:53 -07:00
maxfl
01d8490255
Return the previous logic for '\\'.
...
The following expression now works:
```sh
switch '\\'
case '\\'
echo 1
end
```
Due to ambiguity, the following expression also works:
```sh
switch '\a'
case '\\a'
echo 1
end
```
By the way, the following expression now doesn't work, which was not the
case before, because of wrong escaping:
```sh
switch 'nn'
case '\n'
echo 1
end
```
2012-07-05 14:17:25 -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
Siteshwar Vashisht
57f3df3cab
Fix for crash while editing multiple lines requested in issue #143
2012-06-21 21:05:14 +05:30
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
376e199ebb
Removed a lot of string_buffer_t
2012-02-22 12:00:02 -08:00
ridiculousfish
8f1423946f
Fix a crash when using quotes due to wgettext thread safety issues.
2012-02-17 15:55:54 -08:00
ridiculousfish
910863e9ea
Final removal of halloc. It's like Christmas Morning.
2012-02-09 19:26:44 -08:00
ridiculousfish
a534c397f5
Const correctness changes
2012-02-06 00:57:43 -08:00
ridiculousfish
3b8a4e56b0
A bunch of work to move towards a sane memory model in job_t
2012-01-29 22:06:58 -08:00
ridiculousfish
843ba4ac2c
Move autoload class into autoload.h and cpp
2012-01-25 18:59:35 -08:00