mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-26 04:43:10 +00:00
Merge branch 'colon'
This commit is contained in:
commit
f83b3a4f58
6 changed files with 22 additions and 4 deletions
5
share/functions/colon.fish
Normal file
5
share/functions/colon.fish
Normal file
|
@ -0,0 +1,5 @@
|
|||
function :
|
||||
# no-op function for compatibility with sh, bash, and others.
|
||||
# Often used to insert a comment into a chain of commands without having
|
||||
# it eat up the remainder of the line, handy in Makefiles.
|
||||
end
|
|
@ -746,6 +746,12 @@ static void setup_user(bool force) {
|
|||
}
|
||||
}
|
||||
|
||||
void misc_init_with_paths() {
|
||||
// Since ':' can cause problems in filenames, the : function is saved to colon.fish
|
||||
// But that means it isn't autoloaded since the name doesn't match the function.
|
||||
bool loaded = function_load(L"colon");
|
||||
}
|
||||
|
||||
/// Various things we need to initialize at run-time that don't really fit any of the other init
|
||||
/// routines.
|
||||
void misc_init() {
|
||||
|
@ -763,7 +769,7 @@ void misc_init() {
|
|||
// MS Windows tty devices do not currently have either a read or write timestamp. Those
|
||||
// respective fields of `struct stat` are always the current time. Which means we can't
|
||||
// use them. So we assume no external program has written to the terminal behind our
|
||||
// back. This makes multiline promptusable. See issue #2859 and
|
||||
// back. This makes multiline prompt usable. See issue #2859 and
|
||||
// https://github.com/Microsoft/BashOnWindows/issues/545
|
||||
has_working_tty_timestamps = false;
|
||||
#else
|
||||
|
|
|
@ -67,6 +67,8 @@ void env_init(const struct config_paths_t *paths = NULL);
|
|||
/// Various things we need to initialize at run-time that don't really fit any of the other init
|
||||
/// routines.
|
||||
void misc_init();
|
||||
/// Same as misc_init() but after configuration paths have been loaded
|
||||
void misc_init_with_paths();
|
||||
|
||||
class env_var_t {
|
||||
private:
|
||||
|
|
|
@ -384,6 +384,9 @@ int main(int argc, char **argv) {
|
|||
|
||||
const io_chain_t empty_ios;
|
||||
if (read_init(paths)) {
|
||||
// Additional initialization that must occur after paths are loaded
|
||||
misc_init_with_paths();
|
||||
|
||||
// Stomp the exit status of any initialization commands (issue #635).
|
||||
proc_set_last_status(STATUS_CMD_OK);
|
||||
|
||||
|
|
|
@ -194,11 +194,13 @@ int function_exists(const wcstring &cmd) {
|
|||
return loaded_functions.find(cmd) != loaded_functions.end();
|
||||
}
|
||||
|
||||
void function_load(const wcstring &cmd) {
|
||||
bool function_load(const wcstring &cmd) {
|
||||
if (!parser_keywords_is_reserved(cmd)) {
|
||||
scoped_rlock locker(functions_lock);
|
||||
load(cmd);
|
||||
return load(cmd) == 0;
|
||||
}
|
||||
|
||||
return false; //not loaded
|
||||
}
|
||||
|
||||
int function_exists_no_autoload(const wcstring &cmd, const env_vars_snapshot_t &vars) {
|
||||
|
|
|
@ -74,7 +74,7 @@ void function_set_desc(const wcstring &name, const wcstring &desc);
|
|||
int function_exists(const wcstring &name);
|
||||
|
||||
/// Attempts to load a function if not yet loaded. This is used by the completion machinery.
|
||||
void function_load(const wcstring &name);
|
||||
bool function_load(const wcstring &name);
|
||||
|
||||
/// Returns true if the function with the name name exists, without triggering autoload.
|
||||
int function_exists_no_autoload(const wcstring &name, const env_vars_snapshot_t &vars);
|
||||
|
|
Loading…
Reference in a new issue