David Adam
e60db8075c
Open universal variable lock file read/write and ignore errors
...
Closes #2149 .
2015-07-03 15:31:03 +08:00
ridiculousfish
6c53862ff1
Suppress uvar error messages due to permissions or file not found
...
su does not reset XDG_RUNTIME_DIR, which means that XDG_RUNTIME_DIR
may point to directories that the user does not have permission
to access. Similarly there is no guarantee that XDG_RUNTIME_DIR
points to a directory that actually exists. Rather than try to
handle these issues, we simply ignore them, effectively disabling
realtime uvar notifications. Fixes #1955 .
2015-06-01 23:03:11 -07:00
ridiculous_fish
70a99e494d
Mark libnotify FDs as CLO_EXEC
...
Fixes a fd leak on OS X
2015-01-04 01:21:23 -08:00
David Adam
11bece80a8
Solaris build fixes: fallback to _XOPEN_NAME_MAX if defined
2014-12-21 23:38:02 +08:00
ridiculousfish
dda6be2592
Use -1 instead of 0 for the notifyd token "missing value" sentinel
...
This matches NOTIFY_TOKEN_INVALID
2014-11-19 11:42:55 -08:00
ridiculousfish
38caa0d988
Replace some std::string with wcstring to reduce copying
2014-11-10 00:06:43 -08:00
ridiculousfish
d944add782
Use a directory in /tmp instead of ~/.config/fish for named pipe path
...
The home directory may not be able to support named pipes, e.g. if it's
NFS. This puts the file in a secured directory in /tmp
2014-11-09 22:57:19 -08:00
ridiculousfish
338a1311f5
Make a string into a reference, to save a copy
2014-11-09 22:03:04 -08:00
ridiculousfish
220a15b8f6
Put the universal variables notifier named pipe in XDG_RUNTIME_DIR
...
This is where named pipes belong.
2014-11-09 17:56:38 -08:00
ridiculousfish
330e996c30
Make universal variables cache the path to the variable file
2014-11-09 16:55:02 -08:00
ridiculousfish
aafff91ac8
Fix tests on FreeBSD
...
FreeBSD throws errors if you pass flags like O_WRONLY to mkostemp.
Pass only O_CLOEXEC.
2014-11-01 23:57:12 -07: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
Kevin Ballard
43e451d4d8
Find fishd file even when $HOME is unset
...
env.cpp sets up $HOME based on the current user, if it's not inherited
from the environment. fishd_get_config should be using the same
calculated value of $HOME. To that end, move universal variable
initialization to after $HOME is set up, and read the value from the
fish environment instead of using getenv().
Fixes #1725 .
2014-10-01 12:35:15 -07:00
ridiculousfish
74cedbf1c5
Hopeful fix for Cygwin build ( #1530 )
2014-07-05 10:22:20 -07:00
ridiculousfish
3513ce3ac0
Universal variable callbacks should only be announced for changed
...
values, not every value. Also support erase notifications.
2014-06-16 12:27:28 -07:00
ridiculousfish
6277a2e4a4
Migrate global functions out of env_universal. Have env operate directly
...
on an env_universal_t.
2014-06-15 17:30:50 -07:00
ridiculousfish
84faa60c4e
Fix Linux build of env_universal_common
2014-06-13 15:35:37 -07:00
ridiculousfish
735195e8ea
Teach env_universal_remove to directly report whether the variable was
...
successfully removed.
2014-06-13 15:15:11 -07:00
ridiculousfish
17c2d76c5e
Removed connection_t and associated functions
2014-06-09 16:41:10 -07:00
ridiculousfish
11c1562512
Remove connection_t usage from write_to_fd
2014-06-09 12:57:44 -07:00
ridiculousfish
ef646f0f78
Removal of more fishd artifacts and headers
2014-06-09 12:07:40 -07:00
ridiculousfish
20d7a142c5
Enable fishd-less mode by default.
...
Shell instances now synchronize universal variables using the
filesystem. fishd should no longer be launched by default.
2014-05-29 13:05:47 -07:00
ridiculousfish
9ae06c541f
Remove inotify-based universal notifier
...
The inotify notifier is fragile, fails on travis, and fails to compile
on certain Linux kernels. It doesn't appear to work as well as the named
pipe mechanism. Best to just get rid of it.
2014-05-29 09:57:56 -07:00
ridiculousfish
147403f958
Use mkostemp in universal variables when available
2014-05-15 14:37:44 +08:00
ridiculousfish
38c52cf9b5
Formatting fixes
2014-05-15 14:31:57 +08:00
ridiculousfish
64c1c75c42
Improve universal variable error messages
2014-05-15 14:27:06 +08:00
ridiculousfish
2b11d1060c
Make initialize_synchronizes_via_fishd default to false. Add some
...
logging support to universal variables.
2014-05-15 10:49:06 +08:00
ridiculousfish
a73b903df9
Null notifier to support fishd synchronization, so we can select the
...
synchronization mechanism at runtime
2014-05-14 15:03:44 +08:00
ridiculousfish
e97bec10ea
Remove needs_polling from universal_notifier_t. Add some expository
...
comments.
2014-05-07 14:22:05 -07:00
ridiculousfish
7763718b60
Further cleanup and rationalization of named pipe universal notifier.
2014-05-06 14:10:55 -07:00
ridiculousfish
8a263952ad
Fix named pipe universal notifier. No more threads. Tests now pass.
2014-05-05 23:33:05 -07:00
ridiculousfish
f27232bd0a
Initial work on strategy_named_pipe universal notifier.
2014-05-04 15:06:40 -07:00
ridiculousfish
7e44bcfd8a
Make inotify-based universal variable notifier tests pass
2014-05-03 19:57:20 -07:00
ridiculousfish
47a81c2b39
Re-establish inotify watch when file is deleted
2014-05-03 16:31:11 -07:00
ridiculousfish
186b0f62eb
Early implementation of inotify-based universal variable notifier for
...
Linux
2014-05-01 16:44:37 -07:00
ridiculousfish
60c8012e9e
Implement notifyd-based notification strategy for universal variables
...
(OS X specific)
2014-04-30 15:50:03 -07:00
ridiculousfish
7a5a277c29
Implement universal variable deletion. Adopt shared memory uvar notification.
2014-04-29 17:03:00 -07:00
ridiculousfish
38da76804e
Implement shared memory strategy for universal variable notifications
2014-04-29 14:14:50 -07:00
ridiculousfish
a949f0b0c3
Move universal variable callbacks out from under the lock, to avoid a
...
possible deadlock on reentrancy
2014-04-29 11:28:00 -07:00
ridiculousfish
91aadab3dd
Enhance file_id_t to have richer information, to guard against inode
...
recycling on Linux filesystems
2014-04-28 15:14:33 -07:00
ridiculousfish
c3425bc55f
Include a header to permit building on Linux
2014-04-27 23:52:09 -07:00
ridiculousfish
753c42a3d5
Merge branch 'master' into death_of_fishd
2014-04-27 18:53:35 -07:00
ridiculousfish
58ebdd4a7e
Attempt to silence some warnings
2014-04-27 17:23:19 -07:00
ridiculousfish
d7f22a0c27
Correctly invoke callbacks with fishd-less universal variables. All
...
tests now pass.
2014-04-27 16:53:07 -07:00
ridiculousfish
3b4794ae94
Implement atomic loading/saving of fishd file within fish, eventually
...
permitting removal of fishd. Universal variables test passes, others
fail.
2014-04-27 13:35:32 -07:00
ridiculousfish
6a94b51cba
Beginning steps towards teaching the universal variable system to read
...
the fishd file directly, instead of fetching it through fishd
2014-04-26 11:41:34 -07:00
ridiculousfish
bf14668b2a
Migrate machine and hostname identification from fishd.cpp to
...
env_universal_common.cpp, so that fish can use it
2014-04-25 17:45:22 -07: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
ridiculousfish
9718e70260
Naive reimplementation of utf2wcs and wcs2utf in
...
env_universal_common.cpp. These use the new utf8 functions exposed in
utf8.h. This will allow us to drop the iconv dependency.
2014-03-23 13:06:24 -07:00