Commit graph

229 commits

Author SHA1 Message Date
David Adam
bcd9c39509 Rename FISH_HISTORY to fish_history
Work on #4414.

(cherry picked and edited from commit
472e186c2b)
2017-09-24 14:30:50 +08:00
David Adam
472e186c2b Rename FISH_HISTORY to fish_history
Work on #4414.
2017-09-24 14:07:45 +08:00
Kurtis Rader
65dcd06ca1 mplement history search glob searches
Instead of treating the search term as a literal string to be matched
treat it as a glob. This allows the user to get a more useful set of
results by using the `*` glob character in the search term.

Partial fix for #3136
2017-09-15 13:43:45 -07:00
Kurtis Rader
905766fca2 Hoist for loop control var to enclosing scope (#4376)
* Hoist `for` loop control var to enclosing scope

It should be possible to reference the last value assigned to a `for`
loop control var when the loop terminates. This makes it easier to detect
if we broke out of the loop among other things.  This change makes fish
`for` loops behave like most other shells.

Fixes #1935

* Remove redundant line
2017-09-08 21:14:26 -07:00
Alexey Alekhin
6368bebf12 Added sbt to the list of new completions
Also fixed sublist indentation and removed periods for formtatting consistency

(cherry picked from commit 75dd852340)
2017-09-01 23:30:59 +08:00
Alexey Alekhin
75dd852340 Added sbt to the list of new completions
Also fixed sublist indentation and removed periods for formtatting consistency
2017-08-30 00:12:20 -07:00
Kurtis Rader
8fe1108cec Update changelog to mention math builtin 2017-08-24 10:26:46 -07:00
Radek SPRTA
04bd4c4b4e Fix apt subcommand option completions
(cherry picked from commit 27d7feaf95)
2017-08-22 21:47:04 -07:00
Radek SPRTA
27d7feaf95 Fix apt subcommand option completions 2017-08-22 21:46:28 -07:00
Kurtis Rader
ba53242b26 Report error when using read-only var in for loop
Using a read-only variable like `status` as a for loop control variable
has never worked. But without this change you simply get non-sensical
behavior that leaves you scratching your head in puzzlement. This change
replaces the non-sensical behavior with an explicit error message.

Fixes #4342
2017-08-20 12:02:45 -07:00
Kurtis Rader
b1ac07a178 Reduce overhead of setting fish vars
The `react_to_variable_change()` function is called whenever a fish var
is set. Even as a consequence of statements like `for x in a b c`. It is
therefore critical that that function be as fast as possible. Especially
when setting the var doesn't have any side-effects which is true something
like 99.9999% of the time.

This change reduces the overhead of `react_to_variable_change()` to
unmeasurable levels. Making the synthetic benchmark in issue #4341
36% faster.

Fixes #4341
2017-08-18 20:13:13 -07:00
Kurtis Rader
4b51e0f935 Fix typo in xdg-mime completion functions 2017-08-17 10:56:18 -07:00
Kurtis Rader
bf3731bed4 Update changelog 2017-08-17 10:31:48 -07:00
Kurtis Rader
3a506543b6 Merge branch 'master' into major 2017-08-07 18:52:00 -07:00
Radek SPRTA
74cac0f86f completions for snap command 2017-08-07 18:47:37 -07:00
Kurtis Rader
55bef3cd2e remove deprecated . (dot) command
Fixes #4294
2017-08-07 18:31:20 -07:00
Kurtis Rader
67de733b9b implement set --append and set --prepend
Fixes #1326
2017-08-04 17:23:24 -07:00
Kurtis Rader
ec884f4bfd Merge branch 'master' into major 2017-08-03 19:02:33 -07:00
Kurtis Rader
2b2057a56b update changelog re set --show 2017-08-03 19:01:12 -07:00
Kurtis Rader
4197420f39 implement limits on command substitution output
This makes command substitutions impose the same limit on the amount
of data they accept as the `read` builtin. It does not limit output of
external commands or builtins in other contexts.

Fixes #3822
2017-08-03 17:40:25 -07:00
Kurtis Rader
7e36053ed9 update changelog 2017-08-03 17:39:22 -07:00
Kurtis Rader
17dff8c569 rewrite abbr function
Rewrite the `abbr` function to store each abbreviation in a separate
variable. This greatly improves the efficiency. For the common case
it is 5x faster. For pathological cases it is upwards of 100x faster.
Most people should be able to unconditionally define abbreviations in
their config.fish without a noticable slow down.

Fixes #4048
2017-08-03 14:35:06 -07:00
Kurtis Rader
7e0833c1e0 Merge branch 'master' into major 2017-07-31 22:15:44 -07:00
Kurtis Rader
067892c4f1 update changelog to document sublime completions 2017-07-31 22:14:22 -07:00
Fabian Homborg
f2724da45c Changelog read -d and IFS changes 2017-07-28 12:20:41 +02:00
Kurtis Rader
30db202c97 fix typo in CHANGELOG 2017-07-26 13:59:26 -07:00
Mahmoud Al-Qudsi
94041974e4 Added option to use completion source order without re-sorting
Introduce a -k/--keep-order switch to `complete` that can be used to
prevent fish from sorting/re-ordering the results provided by a completion
source.

In addition, this patch does so without doing away with deduplication
of completions by introducing a new unique_unsorted(..) helper function
that removes duplicates in-place without affecting the general order of
the vector/container.

Note that the code now uses a stable sort for completions, since the
behavior of is_naturally_less_than as of this patch now means that the
results are not necessarily _actually_ identical just because that function
repeatedly returns false for any ordering of any given two elements.

Fixes #361
2017-07-26 13:18:34 -07:00
Kurtis Rader
6f46f6b45a refactor set builtin
This completes the refactoring of the `set` builtin. It also removes a
seemingly never used feature of the `set` command. It also eliminates all
the lint warnings about this module.

Fixes #4236
2017-07-24 16:28:58 -07:00
Kurtis Rader
23c296f8d5 document first two fish 3.0 changes 2017-07-20 18:25:18 -07:00
Kurtis Rader
8f548962b7 fix regression how fish_escape_delay_ms is handled
Fish 2.6.0 introduced a regression that keeps setting
`fish_escape_delay_ms` as a uvar from working. This also fixes a related
problem: callbacks generated from the initial loading of universal vars
were not being acted on.

Fixes #4196
2017-07-19 19:09:55 -07:00
Kurtis Rader
5dc78dd858 fix regression involving read from scripts
Fixes #4206
2017-07-15 21:21:24 -07:00
Kurtis Rader
277999adef implement argparse builtin
We've needed a fishy way to parse flags and arguments given to scripts
and functions for a very long time. In particular a manner that provides
the same behavior implemented by builtin commands. The long term goal is
to support DocOpt. But since it is unclear when that will happen so this
implements a `argparse` command. So named as homage to the excellent
Python module of the same name.

Fixes #4190
2017-07-12 22:38:24 -07:00
Kurtis Rader
875a9c4c2e properly document --init-command addition 2017-07-10 20:59:42 -07:00
Kurtis Rader
2c582fbc4e document some 2.7.0 changes 2017-07-09 21:54:28 -07:00
Kurtis Rader
80df9053b3 count -h should report 1
The count command should not treat any flag specially. Not even `-h` and
`--help`. It should simply return a count of the number of arguments it
received.

Fixes #4189
2017-07-05 17:24:34 -07:00
Kurtis Rader
8cc4639ea6 implement cdh command
Fixes #2847
2017-07-05 13:25:18 -07:00
Kurtis Rader
c6093ad782 make read honor FISH_HISTORY
The `read` command `-m` and `--mode-name` vars are now deprecated and do
nothing other than result in a warning message. The `read` command now
honors the `FISH_HISTORY` var that is used to control where commands are
read from and written to. You can set that var to the empty string to
suppress the use of both history files. Or you can set it to a history
session ID in which case that will limit the `read` history that is
available.

Fixes #1504
2017-06-30 21:03:05 -07:00
Kurtis Rader
2cc0107dbf document new FISH_HISTORY var in changelog 2017-06-30 17:24:24 -07:00
Charles Ferguson
b48cfbefba Updated CHANGELOG.md to reflect new -C/--init-command. 2017-06-29 21:00:08 -07:00
Kurtis Rader
f3cb625802 implement string unescape
Fixes #3543
2017-06-23 22:23:01 -07:00
Kurtis Rader
60bca14b37 implement string escape --style=xxx
We need a way to encode arbitrary strings into valid fish variable
names. It would also be nice if we could convert strings to valid URLs
without using the slow and hard to understand `__fish_urlencode` function.
In particular, eliminating the need to manipulate the locale.

Fixes #4150
2017-06-23 22:23:01 -07:00
Kurtis Rader
1bee66548a don't mangle empty elements in MANPATH
Fixes #4158
2017-06-23 17:31:28 -07:00
Kurtis Rader
0ffc2899dc document previous two changes 2017-06-20 17:59:50 -07:00
Kurtis Rader
bd299e96b2 implement status is-breakpoint
This implements `status is-breakpoint` that returns true if the current
shell prompt is displayed in the context of a `breakpoint` command.

This also fixes several bugs. Most notably making `breakpoint` a no-op if
the shell isn't interactive. Also, typing `breakpoint` at an interactive
prompt should be an error rather than creating a new nested debugging
context.

Partial fix for #1310
2017-06-20 17:18:59 -07:00
Rabah Meradi
d234a1870b Aucompletion for jest CLI 2017-06-19 23:27:22 -07:00
Kurtis Rader
0ed2af464c document new as completion 2017-06-18 23:33:30 -07:00
Kurtis Rader
82f5fb507d fix echo -h
In addition to fixing `echo -h` this includes some debugging related
cleanups I made while investigating the issue.

Fixes #4120
2017-06-18 22:10:19 -07:00
Kurtis Rader
93dad29ec6 set COLUMNS and LINES earlier
Fixes #4141
2017-06-18 15:38:52 -07:00
Fabian Homborg
cec2999983 Allow help to open the tutorial
This is unambiguous because all the anchors in tutorial.html begin
with "tut".
2017-06-14 13:52:24 +02:00
Kurtis Rader
f6c9bfc0e8 implement string lower and string upper
Fixes #4080
2017-06-10 17:35:25 -07:00
Kurtis Rader
238a49b6f0 document that setenv is now strict
When 2.6.0 was released some people reported that the third-party `rbenv`
and `pyenv` commands were incorrectly depending on our `setenv` function
not behaving exactly like the csh command of the same name. Specifically,
our version had a bug. It allowed more than one value. It no longer
does so after it was rewritten so that the three auto-split vars were
correctly handled.

See issue #4103
2017-06-07 17:05:50 -07:00
David Adam
2bb415c47f CHANGELOG: updates to f5fc92747e 2017-06-03 22:20:14 +08:00
David Adam
eb01106751 CHANGELOG: updates for 2.6.0 2017-06-03 18:21:34 +08:00
David Adam
ec1f00e59b CHANGELOG: updates for 2.6.0 2017-05-16 13:07:55 +08:00
David Adam
426653a9d7 Bump version for 2.6b1 2017-05-14 10:37:03 +08:00
David Adam
611cf852aa CHANGELOG: correct 2.6b1 entry 2017-05-14 10:03:27 +08:00
David Adam
c179e447a6 CHANGELOG: updates for 2.6b1 2017-05-13 22:43:06 +08:00
Kurtis Rader
4c798ce3b4 update changelog to include fix for #1432 2017-05-02 21:11:15 -07:00
Kurtis Rader
fb54d34788 change string match --filter to --entire
Per discussion in PR#3998 to review adding a `--filter` flag to `string
replace` rename the same flag in the `string match` subcommand to avoid
confusion about the meaning of the flag.
2017-05-01 22:19:58 -07:00
Kurtis Rader
16816a1202 add string replace --filter flag
Fixes #3348
2017-05-01 22:07:30 -07:00
Kurtis Rader
6b1c939b67 rename --metadata to --details
Discussion in issue #3295 resulted in a decisions to rename the
functions --metadata flag to --details.

This also fixes a bug in the definition of the short flags for the
`functions` command. The `-e` flag does not take an argument and
therefore should not be defined as `e:`. Notice that the long form,
`--erase`, specifies `no_argument`. This discrepency happened to work
due to a quirk of how the flag parsing loop was written.
2017-04-30 20:21:40 -07:00
David Adam
4fde67fa50 implement disown builtin
Closes #2810.

The syntax mirrors that of zsh.
2017-04-29 19:20:03 +08:00
Kurtis Rader
5b6814d6ad add string match --filter flag
Fixes #3957
2017-04-24 21:45:06 -07:00
Fabian Homborg
805a177673 __fish_config_interactive: Prefer python3
Also includes the CHANGELOG.
2017-04-21 13:45:49 +02:00
Fabian Homborg
ffbda7fe64 Group read changes in CHANGELOG
Also attempt to defeat Travis.
2017-04-18 22:27:32 +02:00
Fabian Homborg
8b201d8077 Update CHANGELOG entry for empty $*PATH components
This was later changed to auto-convert these and expanded to $PATH and $MANPATH as well.
2017-04-18 21:03:13 +02:00
Fabian Homborg
9e2776af0e Changelog $USER changes 2017-04-18 15:13:29 +02:00
Kurtis Rader
89efa9a8b1 update changelog to reflect prior two commits 2017-04-11 19:33:31 -07:00
Fabian Homborg
702de29549 fish.spec.in: Remove which dependency
Also changelog
2017-04-08 13:25:26 +02:00
Fabian Homborg
6ab46bb8db Reword which changelog entry
It's still used by configure, so it is still a compile-time dependency.
2017-04-08 13:21:04 +02:00
Fabian Homborg
3edb7d538f Improve bg argument handling
- Error out if anything that is not a PID is given

- Otherwise background all matching existing jobs, even if not all
  PIDs exist (but print a message for the non-existing ones)

Fixes #3909.
2017-04-04 14:59:43 +02:00
Fabian Homborg
b5a38ca96b Changelog #3922/#1362 2017-04-01 22:44:12 +02:00
Kurtis Rader
62244f01c2 fix umask handling of symbolic modes
This fixes the handling of symbolic umask values. It also removes two
invocations of `perl` and all but two `math` commands.

Fixes #738
2017-03-28 16:28:24 -07:00
Fabian Homborg
2b4ab19d47 CHANGELOG: which dep removal 2017-03-28 15:57:13 +02:00
Kurtis Rader
38c851f4cf let read take a simple string for the prompt
Fixes #802
2017-03-25 20:24:43 -07:00
Kurtis Rader
ae0321778f empty CDPATH elements are equivalent to "."
In the process of fixing the issue I decided it didn't make sense to
have two, incompatible, ways of converting variable strings to arrays.
Especially since the one I'm removing does not return empty array elements.

Fixes #2106
2017-03-22 19:30:42 -07:00
Fabian Homborg
570a6430ad Update changelog
- Mention setenv

- Don't mention bracketed paste twice, group paste-related changes together
2017-03-22 14:41:09 +01:00
Fabian Homborg
29429874b3 Update changelog with the paste changes 2017-03-16 16:13:19 +01:00
Kurtis Rader
516e989464 mention string repeat in the change log 2017-03-14 19:44:07 -07:00
Kurtis Rader
7ab1c6c7ad update CHANGES.md 2017-03-13 21:44:05 -07:00
Fabian Homborg
db63be7909 Add support for bracketed paste
This is a terminal feature where pastes will be "bracketed" in
\e\[200~ and \e\[201~.

It is more of a "security" measure (since particularly copying from a
browser can copy text different from what the user sees, which might
be malicious) than a performance optimization.

Work towards #967.
2017-03-06 00:19:46 +01:00
Markus Reiter
d93e57a3f9 Add export PATH entry to changlog. 2017-02-12 15:20:07 +01:00
Fabian Homborg
afdd1a98c1 Don't clear scrollback with the \cl binding
ncurses since 6.0 sends the "E3" sequence along with "clear", even for
just `clear` or `tput clear`. This deletes the scrollback buffer which
is usually not what you want.

Fixes #2855.
2017-02-12 12:01:28 +01:00
Kurtis Rader
af7f5f42b6 put upper bound on data read will consume
This puts a hard upper bound of 10 MiB on the amount of data that read
will consume. This is to avoid having the shell consume an unreasonable
amount of memory, possibly causing the system to enter a OOM condition,
if the user does something non-sensical.

Fixes #3712
2017-02-09 21:04:46 -08:00
David Adam
40428f592d bump metadata following 2.5.0 release
[ci skip]
2017-02-03 21:17:17 +08:00
David Adam
49e98cde4c Merge branch 'Integration_2.5.0' 2017-02-03 21:14:40 +08:00
David Adam
c3dddee804 CHANGELOG: updates for 2.5.0 2017-02-03 09:44:59 +08:00
mathbunnyru
7a80610300 Delete trailing spaces 2017-01-15 14:57:21 -08:00
David Adam
1f77c2d09d Bump version for 2.5b1 2017-01-14 08:19:35 +11:00
David Adam
509ce38375 CHANGELOG: updates for 2.5b1 2017-01-13 22:47:32 +08:00
David Adam
81a41e26f8 CHANGELOG: updates for 2.5b1 2017-01-11 22:33:27 +08:00
David Adam
5eaccf91e2 drop check for old running fishd instances
Closes #3669.

Reverts commit d1a56139e1.
2017-01-11 19:34:32 +08:00
Clément Martinez
12ea04580a Fix typo in CHANGELOG.md 2017-01-10 23:07:47 +01:00
David Adam
bf274f4fb5 CHANGELOG: updates for 2.5b1
[ci skip]
2017-01-10 07:20:53 +08:00
Fabian Homborg
48392517d4 Moar CHANGELOG for 2.5b1 2017-01-08 16:51:40 +01:00
Fabian Homborg
fc81fa6abf Start 2.5b1 CHANGELOG 2017-01-06 17:41:03 +01:00
David Adam
d7283cdaa1 Merge branch 'Integration_2.4.0' 2016-11-08 12:06:15 +08:00
David Adam
0b0d0e7799 CHANGELOG: updates for 2.4.0 2016-11-08 11:20:50 +08:00
Aaron Gyes
a5f6382d77 Update changelog 2016-10-31 12:03:09 -07:00
David Adam
ddbf63c46f CHANGELOG: updates for 2.4.0 2016-10-31 22:35:36 +08:00
David Adam
e9543617f6 Bump version for 2.4b1 2016-10-18 22:17:06 +08:00
David Adam
9c85dce863 CHANGELOG: last minute addition 2016-10-18 22:17:05 +08:00
David Adam
3eb7a8fa09 CHANGELOG: some grammar changes 2016-10-18 21:57:07 +08:00
Aaron Gyes
cc31cda835 Update CHANGELOG.md
Tweak verbiage re: colors
2016-10-17 18:36:34 -07:00
Kurtis Rader
7e962d6f22 update changelog with latest history changes 2016-10-17 08:25:50 -07:00
Kurtis Rader
bff6a6e66a eliminate compile warnings and augment changelog
Update the CHANGELOG to more accurately reflect what will be included in
the 2.4.0 release vis-a-vis the `history` command behavior.

I noticed that the compiler was emitting some harmless warnings related
to the history changes so deal with those as well.
2016-10-16 21:15:40 -07:00
Aaron Gyes
d5ca88d42d Update CHANGELOG.md
Make it clear we now force UTF-8
2016-10-16 07:17:25 -07:00
David Adam
4f95c4b8ac CHANGELOG: update to current git master 2016-10-16 18:44:34 +08:00
Fabian Homborg
3e30857e99 Update CHANGELOG with merges 2016-08-27 20:25:48 +02:00
Fabian Homborg
f25d5a0f52 CHANGELOG 3, electric jamboree 2016-08-21 17:15:57 +02:00
Fabian Homborg
6d81e2b8a4 More CHANGELOG 2016-08-21 17:08:45 +02:00
Fabian Homborg
df0d0ae80a Additions to CHANGELOG.md 2016-08-21 17:05:47 +02:00
Fabian Homborg
b36414152b Add binding sharing to changelog 2016-08-04 15:05:13 +02:00
David Adam
3cd1ef23ab Merge branch 'Integration_2.3.1'
Includes the `string` fallbacks for upgrades from 2.3.1 (as discussed in
issue #3057).
2016-07-03 22:18:55 +08:00
David Adam
d68c37b726 CHANGELOG: update introduction for 2.3.1
I can write good!
2016-07-03 19:35:55 +08:00
David Adam
e3ac6d3fe2 CHANGELOG: update for 2.3.1 2016-07-03 19:30:21 +08:00
Fabian Homborg
b7c96417d1 Add new completions to CHANGELOG
Generated with `git diff-tree -r --diff-filter=A --name-only --no-commit-id 2.3.0.. -- share/completions | string replace -r '.*/' '' | string replace '.fish' '' | string join ", "`.
2016-07-03 13:17:40 +02:00
Aaron Gyes
9a442673e6 Update CHANGELOG.md 2016-07-03 03:58:05 -07:00
Aaron Gyes
cf393a264d Update CHANGELOG.md 2016-07-03 00:34:51 -07:00
Aaron Gyes
70d798f6ed Update CHANGELOG.md
clipboard actually doesn't die until next-2.x. Cover no-string hack.
2016-07-03 00:34:03 -07:00
Aaron Gyes
497b3f51c8 Update CHANGELOG.md
Update CHANGELOG.md with a few 2.3.1 items.
2016-07-02 19:44:44 -07:00
Fabian Homborg
2a8309458d Update changelog with clipboard change 2016-05-25 16:26:07 +02:00
David Adam
245be2c2e4 CHANGELOG: update for 2.3.0 2016-05-20 22:37:30 +00:00
David Adam
862e0127f6 CHANGELOG: update for 2.3b2 2016-05-05 06:02:52 +08:00
Kurtis Rader
4bb805b5fe document new fish_realpath builtin 2016-04-29 21:47:43 -07:00
David Adam
0f888ad4e6 CHANGELOG: flesh out some of the bigger changes in 2.3
[ci skip]
2016-04-19 22:16:02 +08:00
David Adam
43535cf5a5 Bump version for 2.3b1 2016-04-19 15:55:30 +08:00
David Adam
8eb9dac4bc CHANGELOG: include release notes for previous releases
[ci skip]
2016-04-08 12:45:43 +08:00
David Adam
2ff3a36675 CHANGELOG: move release_notes.html to a markdown document
[ci skip]
2016-04-08 12:39:15 +08:00