Commit graph

3918 commits

Author SHA1 Message Date
David Adam
3225d7e169 avoid symlink attacks in __fish_print_packages and spawning fishd
* use $XDG_CACHE_HOME for __fish_print_packages completion caches
 * when starting fishd, redirect fishd output to /dev/null, not a
   predictable path

Fix for CVE-2014-3219.

Closes #1440.
2014-05-12 09:30:05 +08:00
Konrad Borowski
6596d91c82 Fix prompt under Windows.
The fix is obviously a hack caused by that NOT_A_WCHAR
doesn't fit in wchar_t. Better fix would be nice.
2014-05-10 17:13:08 +02:00
Philipp Schroer
cd7f1a15f8 Automatically add include paths for ncurses on Cygwin 2014-05-09 14:43:23 -07:00
ridiculousfish
fa68c2619f Use parm_left_cursor and parm_right_cursor for bulk cursor motions.
Fixes #1448
2014-05-09 14:37:23 -07:00
Konrad Borowski
7f2c4cbf8a Move the empty function test to tests. 2014-05-06 12:31:44 +02:00
Konrad Borowski
91ebe12fc2 Add test for empty function name. 2014-05-06 12:18:09 +02:00
Konrad Borowski
13e1e7e1e9 Fix NULL dereference when function name is not specified
It was possible to type `function ""; end`, and this caused fish to
crash because of NULL pointer.
2014-05-06 12:07:16 +02:00
Konrad Borowski
16534ec644 Improve test_wchar2utf8().
Currently it contains strange code like using `do` loop in order to
avoid `goto`s (they aren't evil, honestly), the pointless `if (mem)`
conditional which doesn't even work (had semicolon for some reason).

You may think this code had a bug where the code didn't check for
the pointer to be null before calling `free`, but this is not the case,
as according to C and C++ standard, `free` should allow `NULL` pointers,
and ignore them.
2014-05-04 15:48:50 +02:00
ridiculousfish
333fb1bf97 Use mkostemp instead of mktemp where available 2014-05-03 15:27:58 -07:00
Josh Kuhn
cbef88a593 Fix python completion to work for pypy
Pypy outputs 2 lines with the -V option, as well as adding a whole lot of stuff that confuses the very general sed regex that was used before.
2014-05-03 15:06:57 -07:00
SanskritFritz
b13179d4f4 Functions instead of static variables for conditions. 2014-05-03 12:30:41 -07:00
SanskritFritz
cf89d9bfb0 Fixed an unintended result of some copy paste. 2014-05-03 12:30:41 -07:00
SanskritFritz
f49848c8a4 Removed unnecessary comments. 2014-05-03 12:30:41 -07:00
SanskritFritz
0101b39f6c Completions added/updated. 2014-05-03 12:30:41 -07:00
Maurizio De Santis
4285baa6e1 Prompt sample: Debian chroot environment
When you chroot in Debian, bash shows the chroot environment in the prompt:

```bash

...

if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

...
```

This is the effect:

```
(chroot_env) user@host:~#
```

It is useful when chrooting, since usually the hostname remains the same and thus you can't distinguish where you are.
2014-05-03 12:28:38 -07:00
ridiculousfish
e530af1ff7 Use adjusted_pos when determining the token for tab completing
redirecitons, per #1296
2014-05-03 00:15:13 -07:00
ridiculousfish
60e94a4ec8 fishd to link against fish_version.o in Xcode build 2014-05-02 23:36:47 -07:00
ridiculousfish
c66a574fa0 Simple test for completing redirections 2014-05-02 23:25:54 -07:00
Konrad Borowski
ef3259035d Use precompiled parse files. 2014-05-02 10:31:04 +02:00
Konrad Borowski
4226f4412b fishd requires fish_version.o. 2014-05-02 10:30:01 +02:00
Konrad Borowski
368983d8da Fix header name in fishd.cpp. 2014-05-02 10:26:22 +02:00
ridiculousfish
16b982958b Correctly complete redirections. Fixes #1296 2014-05-02 01:22:39 -07:00
ridiculousfish
0c4819131c Add fish_version to Xcode project 2014-05-02 00:22:19 -07:00
Konrad Borowski
77bc4c5725 Properly check for miliseconds during screen update
This removes undefined behavior in the previous code by properly
checking for miliseconds (actually typing proper names, not abusing
pointer arithmetics).
2014-05-01 11:00:13 +02:00
Konrad Borowski
dd47da92f5 Fix handle leak in get_description() 2014-05-01 10:14:12 +02:00
Konrad Borowski
f8e35de18d Shorten compilation times
Now fish shell stores version is a small file called by other files.
This means that a slight change which modifies one file won't cause
many of files to recompile.

The compilation unit is intentionally small, this is by design. The
smaller it is, the faster it will recompile, and it will be compiled
a lot.
2014-05-01 09:46:27 +02:00
Konrad Borowski
a7facfb760 Fix memory leak when displaying bind list.
This also removes duplication from the code.
2014-05-01 09:23:23 +02:00
ridiculousfish
f5e62f28bc Save a memory allocation in append_formatv 2014-04-30 16:29:52 -07:00
Konrad Borowski
ed37427f9e White is not identical to normal
This makes white work properly in white terminals when used for
`fish_color_*` variables. It's probably silly thing this small
mistake breaks, to be honest, but it's still a bug.
2014-04-30 15:44:51 +02:00
Alan Thompson
07944cfd20 Change terminology in docs from 'environment variables' -> 'shell variables' 2014-04-29 07:27:56 +02:00
David Adam
55bc4168bf use mktemp(1) to generate temporary file names
Fix for CVE-2014-2906.

Closes a race condition in funced which would allow execution of
arbitrary code; closes a race condition in psub which would allow
alternation of the data stream.

Note that `psub -f` does not work (#1040); a fix should be committed
separately for ease of maintenance.

Closes #1437
2014-04-28 10:42:00 +08:00
David Adam
ba1b5e34a7 Check effective credentials of socket peers
Fix for CVE-2014-2905.

Code for getpeereid() on non-BSD systems imported from the PostgreSQL
project under a BSD-style license.

Closes #1436
2014-04-28 10:41:27 +08:00
ridiculousfish
97c2ec8dcf Fix a duplicated variable, and defeat some warnings in fish_tests 2014-04-27 18:44:21 -07:00
ridiculousfish
4948508277 Squelch some more warnings on Linux 2014-04-27 18:27:34 -07:00
ridiculousfish
fb89c762fc Silence unused return value warning in FATAL_EXIT 2014-04-27 17:28:57 -07:00
ridiculousfish
58ebdd4a7e Attempt to silence some warnings 2014-04-27 17:23:19 -07:00
Konrad Borowski
36ef521c0e Fix filehandle leak in proc_get_jiffies 2014-04-26 17:36:20 +02:00
ridiculousfish
a475dd15e6 Migrate universal variables to env_var_t structure. Encapsulate
universal variable storage into a class for better testability.
2014-04-25 16:09:26 -07:00
Konrad Borowski
bb0b82a110 Remove useless return. 2014-04-22 18:54:26 +02:00
David Flores
2bbb59964f functions on top 2014-04-19 14:50:15 -07:00
David Flores
4fd32eb48e added docker completion file 2014-04-19 14:50:15 -07:00
Maxim Gonchar
2872a98b2b Set fish_vi_key_bindings to start in insert mode by default
Add optional argument for fish_vi_key_bindings to set desired initial
mode:
> fish_vi_key_bindings default
2014-04-19 14:48:15 -07:00
ridiculousfish
023af5585f Remove a debugging statement (oops) 2014-04-18 01:13:28 -07:00
ridiculousfish
3d85000f13 Reduce the iterations in the iothread test to something more reasonable.
Remove an unnecessary lock.
2014-04-17 16:39:41 -07:00
ridiculousfish
3d1a204c83 Simplify threading implementation. Removed iothread array. Threads now
run detached (no more pthread_join), and will not exit until they see
that all requests have been dequeued.
2014-04-17 16:07:50 -07:00
ridiculousfish
1ce30deec3 Remove the close_old field from io_fd_t, which is never actually
respected - a bug dating back to fish 1.x! The fd that would be closed
is actually closed in io_cleanup_fds().
2014-04-16 15:31:28 -07:00
ridiculousfish
8ed08872b9 Remove the now-unused parser_t::job_create 2014-04-14 12:40:17 -07:00
ridiculousfish
7a75e7341b Eliminate the parser_use_ast switch, which does nothing, and
exec_no_exec, which also does nothing in the new parser
2014-04-14 11:12:40 -07:00
ridiculousfish
ec6dee8bd1 Minor cleanup of redirection functions 2014-04-11 09:50:12 -07:00
Fabian Ruff
f2a507c4a7 fix gem --version/--help tab completions 2014-04-06 12:58:22 -07:00