In the C/POSIX locale EOF on the tty wasn't handled correctly due to a change
a few months ago to fix an unrelated problem with that locale. What is
surprising is that the core fish code doesn't explicitly depend on
input_common_readch returning WEOF if a character isn't seen within
`wait_on_escape_ms` after an escape.
Fixes#3214
The `fish_key_reader` program emits an example `bind` command for the sequence
of keystrokes it sees. However, if that sequence includes a space or del
character the example `bind` command includes extraneous commentary that makes
the command invalid.
Fixes#3262
The recent change to reconcile the history builtin command and function
broke an undocumented behavior of `history --delete`. This change
reinstates that behavior. It also adds an explicit `--exact` search mode
for the `--search` and `--delete` subcommands.
Fixes#3270
The last commit to .gitignore caused git to ignore the whole xcode
project. Also, the addition of `/` to too many paths means missing things in
the pcre2 subdir.
Add a bunch of files I found evidence had existed in my checkout at one
time or another - and a few things I decided to add after looking over
other projects' .gitignores..
* Use the Makefile mechanism to also detect old key_reader binaries
Don't tell them to delete it - just that they might want fkr.
You'd have to of installed it manually. Not unhelpful to point
that out here.
* Remind folks to start a new fish session after install
* Add output for installation during silent builds
* Suppress "Fish has been built, use make install..." if fish was
actually built with a goal of `make install' from the command-line
already and it's already working on that. It can be confusing.
* Get rid of the $(call) stuff for color usage
Fixes problem with gucked up output when doing parallel builds
* Brighten up output with more colors and fancy attributes.
Works fine with TERM=dumb
* Introduce show-VAR targets - with VAR being a variable name,
adding this to the target list wherever you like will cause
the pretty-printed VAR='VAR' output. Can also use MAKE show-FOO
to quickly diagnose problems.
* Put the -D macros in CPPFLAGS (C preprocessor flags) as God
intended instead of MACROS. CPPFLAGS was already defined but
empty - and MACROS was getting added to CXXFLAGS and used on
every CXX invocation.
* Addresss a handful of missed bits from the initial silent make
merge. Like msgfmt output.
* Fix config.status output being completely silenced even when
it's re-running ./configure.
* Work around annoyance with PCRE being perfectly quiet except a
minority of the rm's during make clean.
I recently made a change to remove some no longer needed .gitignore rules
and generally improve the readability of that config file. Contributor
@floam noted that this config file was still too permissive and
ambiguous. This change adds additional refinements that should
a) make it easier for someone to understand why a file/directory is being
excluded, and
b) make it less likely that a mistake results in a file being inadvertently
excluded.
I noticed while doing a build that `git status` was reporting the `obj/`
directory had been modified. Add that to the list of ignored directories.
Remove a couple of build artifacts (`seq` and `set_color`) which aren't
created anymore. Break the ignored files into well defined groups with the
entries sorted in each group.
Only on the OS X travis build.
I can't reproduce it but I figure it's something to do
with test -e vs test -x or the echo -n in command substitution.
Oops.
This was erroneously omitted from the previous commit.
Now backspace in insert mode does backward-delete-char, in default mode
backward-char (i.e. no deleting, just moving). This is consistent with vim.
This undoes the inheritance since it shared too much.
The idea here is to share bindings that aren't something the editors we're inspired by do - there's no "execute" in vi.
The basic editing and moving bindings are now vi-style in vi-mode and emacs-style in default mode.
In particular, Screen and emacs' "ansi-term" behave like neovim in that
they just ignore the sequences, which leads to the terminal rendering
default color (most of the time white) instead.
Only one file belonging to fish-shell had DOS/bogus line endings,
with `git add' picking up changes after updating .gitattributes:
hostname.fish.
Unsurprisingly, it has code to support cygwin and was likely
worked on by a user on a Windows machine. This will help
such cases in the future.
Also, in pcre2-10.21/, there was RunTest.bat which was (correctly)
CRLF formatted. We don't use this batch script at all, so rather
than LF it or add an exception, blast it away like the other pcre2
files omitted from the repo.
There was a lot of very noisy output for things
we do not care about, particularly the echoing of clang commands,
installs, and doxygen output.
We now show output like " CXX src/fish.o" and not much else
unless there is a problem.
Add mechanism to show e.g. CXXFLAGS variables at top of build.
Improve make docs output
Highlight FISH_BUILD_VERSION
FISH_BUILD_VERSION is yellow.
Run ./configure with -q
Commit acfd3801 included a legitimate bug fix and a second change that
didn't correct an actual bug but made the code more fragile. Revert the
second part of that commit (while also suppressing the uninitialized
variable compiler warning that caused the ill-advised change).
Just use static_cast directly instead of inscrutible "shortcut"
macro.
It was not always used and doesn't seem to do much besides scramble
things up; encountering CAST_INIT() in the code seems likely to lead
to head scratching due to the transformation taking place.
It was added to save folks typing the type twice, now with 100
columns available, let's roll that convenience macro back.
sockaddr_dl:
Perform reinterpret_cast<sockaddr_dl> conversion. The cast affected
alignment and looks fishy to a compiler (but it's fine). Ditch
C-style cast and communicate we're doing that on purpose.
Where we already manage to cover an enum entirely in a switch
statement such that default: cannot be reached, help ensure
it stays that way by condemning that route.
Also adjust a 'const' I came across that is ignored.
A common problem for users is that fish doesn't get a locale. This often
happens if systemd is used with getty and fish as login shell.
Fixes#277
Note that I (@krader) made editorial changes before merging this. For
example, running `make style` and otherwise changing long statements to a
series of shorter statements. So if there are any problems it is possible
I introduced them.
A user reported that fish was dying from a SIGSEGV when launched by the
sjterm terminal app. This was traced to a bug in sjterm passing an empty
argv array to the shell. Which, while technically legal, is very unusual
and a bad practice.
Fixes#3269
This change made clang-format apply to our JavaScript sources,
but we haven't yet agreed upon a JavaScript style guide. Once we
agree on one, we can include the JS files in the formatting pass too.
This reverts commit 799d8ddfc4.
The `set_color normal` text had a comment that caused
the example to wrap to the next line in an 80 column window.
Shorten the comment so the example fits on one line.
This is a regression introduced by 834ebef53c
Bolster with a check for only login sessions too -- hopefully makes it
less annooying on subshells in general.
Fixes#3261