2005-09-25 Axel Liljencrantz * parser.c: (parse_job, parser_skip_arguemnts, paresr_Test): No semicolon required after else and begin 2005-09-24 Axel Liljencrantz * Version 1.14.0 * reader.c (reader_readline): Quit token search on escape * parser.c (pares_job_main_loop): Make command substitutions for the case command expand properly * parser.c (pares_job_main_loop): Fix memory leak on parse error in pipeline * common.h, common.c: Make DEBUG_LEVEL constant into debug_level runtime configurable variable * proc.h (handle_child_status): Fix crash bug when user presses ^C 2005-09-23 Axel Liljencrantz * reader.c (set_signal_handlers): Ignore SIG_PIPE, generated by fishd socket * exec.c (exec_read_io_buffer): Do not block, since SIG_PIPE seems to mess up EOF status on pipes * init/fish_function.fish (type): Minor improvements to the type function 2005-09-22 Axel Liljencrantz * env_universal.c, env_universal_common.c, env.c, fishd.c, builtin_set.c, exec.c, init/fish_interactive.fish: Exportable universal variables 2005-09-20 Axel Liljencrantz * exec.c, reader.c (exec_read_io_buffer, run_pager): Don't leak file descriptors when showing completion pager * builtin_set.c (print_variables): Fix broken sort of variable names on print * builtin.c, function.c, function.h: Add support for --key-binding flag on function definitions * init/fish_input, init/fish_function, input.c: Switch over to using keybinding-functions for keybindings 2005-09-19 Axel Liljencrantz * env_universal.c, env_universal_common.c (barrier, callback, create_message, parse_message): Add support for blocking a client until all current messages from the client and corresponding replies have been transmitted. * env_universal.c (env_universal_read_all): Avoid recursive get_socket issues * fish_pager.c (main, init, destroy): Return unused keypresses on pager exit * reader.c (run_pager): Return unused keypresses on pager exit * fish_pager.c (completion_try_print, main): Use alternate screen for interactive pager when available. * reader.c (reader_readline): Quit searching on escape 2005-09-17 Axel Liljencrantz * init/fish.in: Revert DISPLAY to non-array * doc_src/doc.hdr: Documentation cleanup 2005-09-16 Axel Liljencrantz * builtin.c (builtin_status): Added the status builtin, for checking the fishprogram status * doc_src/doc.hdr, init/fish, init/fish_function.fish, init/fish_complete.fish, init/fish_interactive.fish: Switch nomencalature: from subshell to command substitution * doc_src/doc.hdr: Update documentation on variables * doc_src/doc.hdr: Update documentation on commands and builtins * doc_src/doc.hdr: Update documentation on completions * init/fish_function.fish: help command now shows help for non-builtin commands * init/fish_function.fish: help command now searches man-pages * env_universal.c, env_universal_common.c, fishd.c, env.c, builtin_set.c: Add support for universal variables * env.c: Setting a local variable does not erase a global variable with the same name 2005-09-13 Axel Liljencrantz * exec.c (handle_new_child): Only call tcsetpgrp after creating new group * exec.c, proc.c (setup_child_process, internal_exec_helper, handle_new_child, job_continue): Do not put block commands into their own groups 2005-09-06 Axel Liljencrantz * expand.c (tilde_expand): ~ should expand to $HOME, not getpwuid(getuid())->pw_dir 2005-09-05 Axel Liljencrantz * parser.c, builtin.c, Makefile.in (parse_job, builtin_not, builtin_run, builtin_get_desc): Add new 'not' builtin to negate commands * parser.c, builtin.c, Makefile.in (parse_job, builtin_begin, builtin_run, builtin_get_desc): Add new 'begin' builtin to create unconditional block 2005-09-01 Axel Liljencrantz * complete.c (complete_load): Reload completions from file if completion file changes * init/fish_functions: Added a 'type' shellscript function, with the same functionality as the bash builtin with the same name, and additional support for gnu style long options 2005-08-31 Axel Liljencrantz * init/completions/modprobe.fish: Add completions for modprobe command * init/completions/service.fish: Add completions for service command * init/completions/man.fish: Manual page completion now honors section specification * builtin.c, exec.c, proc.c (builtin_run, exec, job_continue): Builtins now follow the same rules w.r.t. setting the status variable as all other commands 2005-09-12 Axel Liljencrantz * Version 1.13.4 * common.c (block, unblock, fgetws2): Smart blocking support to avoid excessive calls to signal blocking functions * complete.c (complete): Fix infinite loop when completing string 'command ' 2005-09-07 Axel Liljencrantz * Version 1.13.3 * init/fish.in, init/fish_function.fish: Actually apply Netocrats patch, and not a broken patch causing random error messages 2005-09-06 Axel Liljencrantz * Version 1.13.2 2005-09-05 Axel Liljencrantz * builtin.c (builtin_source): Fix crash when sourcing non-existant file * init/fish.in: Only call unicode_start if in unicode locale 2005-09-05 Netocrat * init/fish.in: Only set LANG in login shells * init/fish_function (prompt_pwd): Don't use ellipsis character when not in unicode mode 2005-08-28 James Vega * function.c: Add missing #include "intern.h" * env.c (env_set): GCC 4.0 workaround 2005-08-31 Axel Liljencrantz * init/completions/function.fish: Some completions for function accidentally targeted the functions builtin. (Note the extra 's') 2005-08-31 Axel Liljencrantz * Version 1.13.1 2005-08-31 Netocrat * reader.c (write_prompt): Fix prompt flickering issue 2005-08-31 Axel Liljencrantz * exec.c (internal_exec_helper): Function blocks should not be marked as subshells * exec.c (setup_child_process): Unblock childs signal handlers, fixes script bug 2005-08-28 Axel Liljencrantz * Version 1.13.0 2005-08-26 Axel Liljencrantz * init/fish_inputrc: Remove the lame replace-commandline feature * init/fish_inputrc: Remove the lame explain feature 2005-08-25 Axel Liljencrantz * proc.c (job_do_notifications): Do not notify user about status changed in subshell jobs * init/completions/rpm.fish: Added package completion functionality * init/completions/yum.fish: Added completions for yum command 2005-08-24 Horea Haitonic * init/completions/diff.fish: Updated completions for diff command 2005-08-24 Axel Liljencrantz * util.c (sb_printf): Added sb_printf function for formated output into string buffer * util.c (sb_append_in, sb_append_float): Dropped various stringbuffer functions in favour of sb_printf * common.c (debug): Added function for making debugging messages * builtin.c, exec.c, parser.c: Error reporting cleanups * reader.c (reader_write_title): Make console detection slightly less lame 2005-08-22 Axel Liljencrantz * parser.c (parse_job): Make implicit cd use wrapper function around cd if available * parser.c (parser_push_block): Fixed bug causing some global variables to be invisible inside functions * env.c (env_push_block, env_pop_block, env_set, local_Scope_exports): Keep track of exported variables in scope to decrease amount of times we have to reexport variable values * init/fish.in: Make sure the installation directory is added to the PATH variable, fixes issues where fish won't find it's various subcommands when installed in uncommon locations 2005-08-22 Horea Haitonic * builtin.c (builtin_cd): Remove support for 'cd -' from cd builtin * init/fish_function.fish(cd): Add support for 'cd -' to cd shellfunction wrapper * init/fish_function.fish(cd): Add support for directory history * init/fish_function.fish(pushd,popd): Add support for directory stack 2005-08-20 Axel Liljencrantz * proc.c, reader.c (job_continue,set_signal_handlers): Make non-interactive mode use signals for handling children * proc.c (job_continue): Use waitpid when there are no IO_BUFFER redirections 2005-08-19 Axel Liljencrantz * exec.c (exec, launch_process, handle_child_process, setup_child_process): Clean up exec.c, add buffering for functions and blocks. * parser.c (parser_push_block): Fix bug causing while loops in functions to be evaluated when the function was defined * reader.c (handle_winch, check_winch): window size environment variables where erroneously set by signal handlers, causing potential crash. * init/fish (contains): Made 'contains' much, much faster * exec.c (exec): Fix bug causing exec builtin to crash the shell 2005-08-18 Axel Liljencrantz * wildcard.c (get_desc): Re-add stat-call to command completion, but make sure only files that match the completion are stated. * proc.c (io_add): io_add can now add together two chains of io redirections, which is needed when merging block-level and job-level redirections. Lack of this functionality caused a bug when doing complex io redirections. 2005-08-18 Jan Fader * INSTALL: Changed the Chapter over "Local Install Procedure" * configure.ac: Fixed not working installation to $HOME * Makefile.in: Make echo at the end of the install target not verbose 2005-08-16 Axel Liljencrantz * init/completions/apropos.fish: Improve completions for aprops * parser.c: Added profiling support. Set the PROFILE macro in parser.c to non-zero to enable. 2005-08-15 Axel Liljencrantz * init/completions/wget.fish: Add completions for wget command * exec.c (exec_subshell): Remove null entries caused by invalid unicode 2005-08-14 Axel Liljencrantz * builtin_set.c (builtin_set): Fixed bug causing bug when changing variable scope without changing value * exec.c, proc.c, parser.c: Added support for piping output of blocks 2005-08-12 Axel Liljencrantz * complete.c (complete_cmd_desc): New implementation of command description lookup, much faster! * wildcard.c (get_desc): Avoid calling stat during command completion for performance reasons. Command filesizes are no longer printed. * wutil.c (wgetcwd, wchdir): Add more wrapper functions * builtin.c (builtin_cd): Use new wrappers in wutil * wutil.c (wutil_wcs2str): Make convertions use internal buffer for better performance * complete.c (complete_load): Add support for dynamic completion loading * Makefile.in: Add build support for dynamic completion loading * init/fish_complete: Split into multiple dynamically loaded parts * builtin.c (builtin_complete): Add -y switch for requesting the loading of completions for a command * env.c: Decrease the amount of exported environment variable recalculations * reader.c, builtin.c (do_exit, builtin_exit): Fixed bug causing fish_on_exit function not to be evaluated in very rare cases 2005-08-11 Axel Liljencrantz * builtin_commandline.c (builtin_commandline): Split of to separate file * builtin_commandline.c (builtin_commandline): Make the switches more logical and orthogonal * builtin_commandline.c (builtin_commandline): Split of duplicate code to separate functions * reader.c (reader_current_token_extent): Fix bug when a short string token follows a pipe or semicolon causing incorrect token identification * reader.c (reader_current_job_extent, reader_current_process_extent): Add new extent computation commands 2005-08-09 Axel Liljencrantz * builtin.c (builtin_commandline): Add support for inserting readline functions from a command * init/fish_inputrc: Change default behaviour of \C-d to __fish_delete_or_exit * expand.c (expand_backslash): Add support for C-style character escapes for unicode, as well as octal and hexadecimal ascii, i.e. \uxxxx, \Uxxxxxxxx, \xxx and \oooo. * init/fish_complete.fish: Added skin-specific completions for Valgrind * complete.c (complete_param): Fixed bug causing some completions to be omitted * init/fish_complete.fish: Added completions for the commandline builtin 2005-08-09 Horea Haitonic * builtin_set.c (update_values): Improve behavior in assigning array-slices with improper number of arguments 2005-08-08 Axel Liljencrantz * exec.c (launch_process): Fix bug on redirection to self, i.e. >&1. * env.c (env_set): Fix scoping misfeature causing improper scoping for exported variables * env.c (env_set): Make it possible to explicitly unexport variables * builtin_set.c (builtin_set): Add unexport switch to set builtin * main.c (main): Fix broken login shell detection 2005-08-08 Horea Haitonic * builtin_set.c: Completely new implementation of the 'set' builtin, supporting erasing sets of array elements. 2005-08-05 Axel Liljencrantz * intern.c (intern, intern_free_all): Add string pooling library, decreases memory usage by ~40kB * exec.c proc.c (exec_subshell, ss_create, ss_wait, ss_clear, read_subshell): Remove old (forking) subshell implementation * exec.c (exec): Make sure builtins don't fork when buffering output (slight performance increase, larger when using Valgrind) * init/fish_complete.fish (__fish_complete_cd): Make sure we don't actually change the directory * builtin.c (builtin_cd): Make sure OLDPWD is not changed when using cd in subshells * builtin.c (builtin_read): Fixed bug causing random breakage 2005-08-04 Axel Liljencrantz * complete.c (complete_add, complete_param): Add support for conditional command completions * builtin.c (builtin_complete): Add switches to the complete builtin to support conditional command completion * util.c (al_set): Make sure unused array_list_t elements are zeroed 2005-08-04 Horea Haitonic * util.c (al_push): Set new list size on resize 2005-07-30 Axel Liljencrantz * exec.c, proc.c (exec_subshell): Execute subshells in main process 2005-07-28 Axel Liljencrantz * Version 1.12.1 * expand.c (expand_file_completion): Removed unneeded function, the program should call expand_string directly * expand.c (expand_string): Remove unneeded wrapper, expand_string is now the main function * complete.c (complete_param_expand): Renamed complete_param_file to complete_param_expand, since it does completions for more than just filenames * complete.c (complete): Make sure process completion is always performed 2005-07-27 Axel Liljencrantz * init/fish_complete.fish: A common group completion function, used by chgrp and a few others * init/fish_complete.fish: Tweak kill completion to work on non-Debian systems 2005-07-26 Horea Haitonic * init/fish_complete.fish: Add completions for kill, zip and diff commands. * init/fish_complete.fish: A common process completion function, used by ps and top 2005-07-17 James Vega * doc_src/set_color.c, doc_src/tokenize.c, doc_src/mimedb.c: Add missing #includes 2005-07-17 Axel Liljencrantz * parser.c (parser_is_block, parser_is_subcommand, parsert_is_reserved): Changed name of functions parser_block_add, parser_subcommand and parser_reserved * tokenizer.c, tokenizer.h (tok_init, tok_next): Changed return type to void * doc_src/complete.txt: Added documentation for dynamic completion descriptions * parser.c (parse_job, eval_job, eval, parse_job_main_loop): Remove unused tokenizer stacking support * reader.c: Code cleanup, API documentation additions. 2005-07-16 Axel Liljencrantz * fish_tests.c: Add Library test functions * configure.ac: Handle installation to subdirectories of $HOME properly * tokenizer.c (tok_init): Add checks for invalid input * parser.c (parser_test): Add checks for invalid input 2005-07-15 Axel Liljencrantz * Version 1.12.0 2005-07-15 Horea Haitonic * init/fish_complete.fish: Updated make completions to make them more robust 2005-07-14 Axel Liljencrantz * complete.c (complete_init, complete_destroy): Remove table with descriptions for executables * complete.c (complete): Fixed bug where fish failed to find the command to complete * complete.c (complete_add): Fixed missing initialization * env.c (env_init): Removed remnant of $random variable * init/fish_complete.fish: Fixed a few typos, misspelled words, etc * init/fish_complete.fish: Make sure -x flag is set properly * init/fish_complete.fish(__fish_print_users): Added generic username completion * reader.c (completion_print): Fixed width miscalculation bug in completion listing code 2005-07-13 Axel Liljencrantz * common.c (str2wcs): Make the maximum error report count runtime configurable * complete.c (complete): Do not report string convertion errors in completion mode * builtin.c, builtin.h, exec.c (builtin_exec, builtin_run): Renamed builtin_exec to builtin_run to avoid nameclash when adding the builtin 'exec' * builtin.c, parser.c, exec.c (builtin_exec, builtin_run, exec, parse_job): Add builtin 'exec' 2005-07-08 James Vega * reader.c (reader_sanity_check): Remove useless sanity checks 2005-07-08 Axel Liljencrantz * autoconf.ac: Fixed docdir bug * init/fish_funcion.fish (help): Fixed bug causing fish not to show right section for builtins 2005-07-07 Axel Liljencrantz * wildcard.c(wildcard_expand): File completion now includes file size * init/fish_complete.fish: Tweaked completions 2005-07-07 Yongjian Xu * init/fish_complete.fish: Added loads of new completions 2005-07-05 Axel Liljencrantz * parser.c (parser_reserved): Added reserved words 'end', 'else', 'case', 'builtin' and 'command' 2005-07-04 Axel Liljencrantz * builtin.c (builtin_commandline): Add token handling functionality to commandline builtin * parser.c, complete.c (parser_check_command, complete): Remove token handling functionality through environment variables - replaced by commandline builtin * init/fish_functions.fish (contains,_contains_help): Added a contains function, for checking if a key is in a set 2005-07-01 Axel Liljencrantz * reader.c (reader_current_token_extent, reader_current_subshell_extent): Factor out token handling code * reader.c (reader_readline, handle_token_history): Add token search functionality 2005-06-27 James Vega * input.c (add_emacs_bindings): Fix spelling error causing broken keybindings 2005-06-27 Axel Liljencrantz * complete.c (complete_add,complete_parm): Add support for old and gnu style long option completion for the same command * gen_hdr2.c (main): Added missing return statement 2005-06-24 Axel Liljencrantz * init/fish_complete.fish (__fish_complete_suffix): Add general purpose file completion function * init/fish_complete.fish (__fish_complete_directory): Add general purpose directory completion function * init/fish_complete.fish (__fish_rpm_complete): Add rpm completions * init/fish_complete.fish (__fish_cd_complete): Make cd completion it's own function * function.c (function_get_names,get_names_internal): Add support for hidden functions * builtin.c (builtin_function,builtin_functions): Add support for hidden functions * complete.c (complete_cmd): Add support for hidden functions * init/fish_complete.fish: Update completions for set_color 2005-06-19 Axel Liljencrantz * input.c(input_init,add_emacs_bindings,add_common_bindings,add_vi_bindings): Add initial vi-mode implementation 2005-06-17 James Vega * Makefile.in: Add -fno-strict-aliasing compiler flag 2005-06-16 Axel Liljencrantz * Version 1.11.1! * doc_src/doc.hdr: Small documentation tweak to work around a bug in Doxygen 1.4.3 * env.c (env_init): Make HOME variable writeable by root * reader.c, configure.ac (writembs): Ugly kludge to make powerpc work * parser.c (parser_reserved): Add function for checking if a word is reserved * parser.c (parser_test): Made validator use parser_reserved function * builtin.c(builtin_function): Made function definitions respect reserved words 2005-06-14 Tom Arnett * init/fish_function.fish (prompt_pwd): Corrected the escape for the ellipsis character 2005-06-14 James Vega * builtin.c (builtin_cd): Add support for '-' argument, which performs a cd to the previous working directory. * builtin.c (set_pwd): Extract out common functionality for setting pwd. 2005-06-15 Axel Liljencrantz * proc.c (handle_child_status): Remove debug message * init/fish_interactive.fish, highlight.h: Changed the color environment variables to lower case, since they are not global variables * doc_src/doc.hdr: Updated sections on fish_prompt and fish_title to reflect that they are now functions, and not environment variables 2005-06-14 Axel Liljencrantz * Version 1.11.0! * common.c (str2wcs, error_reset): Add an upper limit to the number of minor errors to report for a single command. 2005-06-13 Axel Liljencrantz * configure.ac: Make default configuration directory to always be /etc, never $PREFIX/etc * reader.c(write_prompt): Make fish_prompt a function * init/fish_interactive.fish(fish_prompt): Make fish_prompt a function * reader.c(write_title): Make fish_title a function * init/fish: Make sure the PATH is sane * builtin.c(builtin_builtin):Add support for -n option * builtin.c(builtin_set):Add support for -n option * builtin.c(builtin_functions):Add support for -n option * init/fish_complete.fish: Add completions for scp command 2005-06-11 Michael Wardle * input.c (input_parse_inputrc_line): tilde expand parameter to 'include' 2005-06-11 Axel Liljencrantz * expand.c (expand_brackets): Improve tab completion in bracket expantion context * expand.c (expand_brackets): Fix handling of the comma character in bracket expantion 2005-06-10 Axel Liljencrantz * init/fish_complete.fish: Additional completions for mplayer * init/fish_complete.fish: Completion information for the date command * expand.h, wildcard.h: Moved various constants from wildcard.h to expand.h 2005-06-10 Michael Wardle * doc_src/doc.hdr: Spelling correction * doc_src/doc.hdr: Fixed description of \b escape * init/fish_complete.fish: Drop error messages on missing files when completing ssh hosts 2005-06-08 Bram Senders * init/fish_function.fish (help): Added www-browser and x-www-browser as one of the possible help browsers. 2005-06-08 Axel Liljencrantz * main.c (main): Event hooks are now functions and not environment variables * reader.c (read_i): Event hooks are now functions and not environment variables * reader.c (read_i): Added fish_on_exec hook * builtin.c (builtin_functions): functions builtin can now be used to redefine the description of functions * doc_src/doc.hdr: Changelog now lives in it's own file * ChangeLog: Changelog now lives in it's own file 2005-06-08 James Vega * main.c (main): Add support for the -i option (force interactive mode) * Various files: A large number of code cleanups, removing warnings * Various files: Insurmountable number of spelling fixes 2005-06-08 Jan Fader * Makefile.in: Remove install_local option and replace it with correct handling of configuration files * configure.ac: Remove install_local option and replace it with correct handling of configuration files 2005-06-07 Axel Liljencrantz * parser.c (skipped_exec): Fixed crash bug when using a switch statement in a function * parser.c (parser_test): Fixed unhelpful error messages when evaluating a script * init/fish_function.fish (help): Fixed text-based browsers going to the background even if they are console based * init/fish_function.fish (vared): Added support for a help option 2005-06-01 Axel Liljencrantz * Version 1.10.1! * expand.c: %self now expands to the shells own pid * complete.c: Fixed bug with completion descriptions for completion of command names containing spaces * init/fish_function.fish: The help command was broken in the previous release * init/fish_complete.fish: Fixed bug in tab completions for cd command. The 'new and improved' completion script in 1.10 was a bit buggy, it seems... * expand.c: Using double dollars for creating map variables was accidentally broken. This meant among other things that the vared command didn't work. This bug was reported by Jan Fader * init/fish_functions.fish: Improved error handling in the vared function * init/fish_functions.fish: The vared command did not work when given the name of an undefined variable * configure.ac: There where multiple issues with fish when compiled witout the xsel command. Jan Fader pointed these bugs out and provided patches for some of them. * Makefile.in: Fixed build script bug causing the integrated help message for the commandline builtin to dissapear * reader.c: Fixed rendering bug causing incorrect prompt after executing some keyboard shortcuts 2005-05-28 Axel Liljencrantz * Version 1.10! * builtin.c: Added a return builtin. * builtin.c, function.c, complete.c: Functions can now have meaningful completion descriptions. * builtin.c, complete.c: Builtin commands now have meaningful completion descriptions. * A more robust method for finding the help documentation is used. * If the current directory is very long, the prompt is ellipsised. * Long commands are ellipsised instead of overflowing to the next line. * Improved completions for cd, uniq, gcc and mplayer. * Much improved performance in the apparently common case of holding down the enter key for a longer stretch of time. * Fixed bug where the PWD variable was set incorrect on startup. * Fixed bug where appending output to a non-existing file would fail. 2005-05-24 Axel Liljencrantz * Version 1.9.2 * Error message from the cd command was missing a newline, which caused it to be erased by the prompt. * Help browser is now put to the background if it is known to be graphical. Mikael Rasmussen suggested this. * Added hook fish_on_return, specifying command to be called when fish returns from evaluating a command. * Changed names of variables that are not exported to lower case. * make uninstall missed a few files. This is now fixed, thanks to Jan Fader. * Specifying a prefix to configure now works. Many people sent in patches for this, including Valient Gough, James Vega and Jan Fader. * Valient Gough sent in patches to fixes multiple issues regarding building rpms. * Fixed a few documentation issues. Several people, including Michael Rasmussen pointed these out. * Fixed bug where files that can't be stat:ed cause fish to perform a double free when doing wildcard expantion. * Fixed bug in manual page tab completion where completing a non-existing manual page results in bogus output. 2005-05-18 Axel Liljencrantz * Version 1.9.1 * Fixed bug causing fish to hang on manual page tab completion if the whatis database can't be found. This bug has been reported by Gerben Versluis, Yongjian Xu and Ross Logan, but I couldn't pinpoint the source of the error before. * Fixed bug causing fish to hang on command tab completion if the whatis database can't be found. This bug has been reported by Gerben Versluis, Yongjian Xu and Ross Logan, but I couldn't pinpoint the source of the error before. * Fixed bug causing subshell output to be expanded * Various minor bugs in gen_hdr2.c fixed, making documentation generation more robust. This change was sent in by Pierre Houston. * The file gen_hdr.sh was simplified, and now works on OS X. This change was sent in by Pierre Houston. 2005-05-14 Axel Liljencrantz * Version 1.9 * Changed quoting rules so that quoted and unquoted text can be mingled in one token * Command names must may no longer contain variables. This is needed to correctly determine block scope. * Functions definitions are now a block. The new syntax is much more suitable for complex functions. * A new builtin, functions, for erasing and listing functions. * Lots of minor cleanups, typedefed structs now end with '_t', a new string hashing function should decrease collisions in hash tables, etc. * Variables can now be used as array indices. * The set_color command can now be used to set the background color of the terminal. * Added highlighting of grep matches and some additional colors for the ls command. These changes where submitted by Philip Ganchev. * Minor performance increases. * Moving a word left or right moves to the last space after the word. * Completion pager is now much better at handling long completions and descriptions. * Fish now uses the unicode ellipsis character instead of tripple dots when it can't fit a completion * Line number for errors is now correctly calculated * Error reports are more specific * The commandline builtin can now be used to print the current commandline or append a string to the current commandline * Fixed infinite loop when tab-completing inside curly brackets * Fixed some of the IO redirection issues for functions * Fixed bug that caused the $history variable to randomly misbehave. * Fixed bug in file desctiption generation for strange filetypes. * Fixed bug in completion description for variables where variable array descriptions could contain illegal characters 2005-04-29 Axel Liljencrantz * Version 1.8 * Fixed bug that made 'make uninstall' miss some files * Fixed bug where subshells with quoted parentesis in them would result in errors * Fixed crash bug when manually erasing a completion with 'complete -e' * Fixed bug causing completion list to have larger column width than needed in some cases * Fixed broken header causing wide characters to not work correctly. Both Adam Rice and Yongjian Xu have been a great help in making this work. * Vastly improved startup time * A large number of smaller updates and additions to the documentation * Completion description for manual page completion is now the whatis information * Completion description for commands now search manual sections 8, n, o and l in addition to section 1 * Matching parenthesis and quotes are now highlighted as they are typed, not just when moving the cursor over them * Remove debug message on tab-completing directory from CDPATH * Tab completion displays list of completions on single tap if completions have no common prefix * Fish does not redraw the completion list on multiple tab taps * It is now possible to specify an initial string for the read builtin * New vared function for editing the value of a variable * New commandline builtin for changing the command buffer * History search now searches anywhere in the command * History search highlights the matching string * Changed output of set command when called with no arguments to be more readable 2005-04-24 Axel Liljencrantz * Version 1.7.1 * Remove annoying debug message. Pointed out by Claudio Fontana. 2005-04-23 Axel Liljencrantz * Version 1.7 * Support for environment variable arrays. $PATH[3] is the third element of the PATH variable, etc. * You can set individual variable elements using set, i.e. 'set PATH[2] foo' replaces the third element of PATH with 'foo' * You can create an array using set, i.e. 'set foo bar baz' creates an array variable 'foo' with the elements 'bar' and 'baz' * aliases have been replaced by functions. The Use 'help function' for an introduction to functions. * Arguments to scripts/functions are now contained in the environment variable array $args. * functions can now be used in pipes * complete.c: tab completion of directories in CDPATH for implicit cd now works. * builtin.c: AThe read builtin now uses the internal line reading library, which means it supports all the advanced line reading capabilities that fish supports. * : Debian packages are now available. Thank you to Dave Tait for making this happen. (This was really added to 1.6.1, but I forgot to mention it in the changelog) * env.c: You can now access previous commands through the environment variable array named history * init/fish_function.fish: Added keyboard shortcut Control-r for replacing text in the current commandline * input.c: Changed a few keyboard shortcuts * doc_src/doc.hdr: Documentation updates * : Fixed bug that broke several keyboard shortcuts * reader.c: Check for double with characters through wcwidth 2005-06-15 Axel Liljencrantz * Version 1.6.1 * util.c: Fixed buffer overflow with string_buffer * complete.c: Fixed bug where tab-completion would not work on executable scripts * reader.c: Fixed crash on terminals that do not provide some capabilities * input.c: Alt-left and Alt-right keymappings where accidentaly reversed 2005-04-09 Axel Liljencrantz * Version 1.6 * init/fish_complete.fish: Updated completions for set_color. Thanks to Phil Ganchev for the bug report. * reader.c: Added several new readline functions, suggested by Doug Dimick and Phil Ganchev. * : ^C breaks all loops, conditional blocks, etc when waiting for a job to finish. * builtin.c: Minor tweaks of completion syntax after suggestions from Tijmen Baarda. * parser.c: If you just write in the name of a directory to fish, fish will implicitly assume this is a cd command and change to that directory. Thanks to Phil Ganchev for the suggestion. * highlight.c: Highlighting of matching parentheses and quotes. * doc_src/doc.hdr: The usual batch of documentation updates. * parser.c: fish now has an upper limit on the number of recursive alias calls. This prevents trashing/crashing on bad aliases. * parser.c: fish makes sure that an alias does not unconditionally call itself. This prevents the most trivial types of accidental infinite recursion. 2005-04-02 Axel Liljencrantz * Version 1.5.2 * : Fixed broken header that caused compilation issues 2005-04-02 Axel Liljencrantz * Version 1.5.1 * reader.c: Fixed issue in completion display, where long completions might spill to the next line and cause uglyness * highlight.c, reader.c: Fixed a bug in error explanation (^X) where gibberish would be printed in some cases * reader.c: Fixed various minor issues with repainting the screen after status updates * configure.ac, Makefile.in: fish can now be compiled without xsel by using './configure --without-xsel'. This means fish can now be compiled on systems without X headers. * input.c: Initial support for reading escape sequences for special keys from an inputrc file. * input.c: Initial support for binding a command to a key. Meta-w runs whatis on the current command. Read the /etc/fish_inputrc file for more information. * reader.c: The LINES and COLUMNS variables are set to the correct terminal size 2005-03-20 Axel Liljencrantz * Version 1.5 * complete.c: Tab completion of files now displays file descriptions now from the mimetype database * mimedb.c: New mimedb command, can be used to look up mimetype, description and default action for a file, as well as launch the default handler of a file. * builtin.c: Jobs command prints CPU activity for jobs (Linux only) * highlight.c: Added syntax highligting for subshells * complete.c: Added tab completion inside of subshells * reader.c: ^X prints comments on possible problems * main.c: 'fish -h' starts the help browser * : Non-builtin commands shipped with fish have much improved help * doc_src/doc.hdr: Various cleanups and rewrites of the documentation * : Fixed accidental mixing of stream and fd based output which caused some status messages to become garbled. * : Fixed bug hangup on commands such as 'ls --color|less', caused by process group weirdness. Thank you to Doug Dimick for reporting this issue. * init/fish: Fixed problems with the linux frambuffer and unicode. Drew Ferguson reported this problem and went out of his way to help me solve it. Thanks! * reader.c: Fixed Konsole Home and End keys not working. Thank you to Jason L. Buberel for reporting this issue. 2005-03-11 Axel Liljencrantz * Version 1.4 * highlight.c: Unknown/misspelled options are now flaged red by syntax highlighting if tab completions have been specified for the command. * builtin.c: Added 'break' and 'continue' loop control builtins. * builtin.c: Added 'switch' and 'case' builtins for conditionally executing a block. * doc_src/doc.hdr: Lots of smaller updates to the documentation. * configure.ac: fish now uses autoconf to improve platform independance. * kill.c: Fixed a bug in X clipboard support which could hang the shell. * expand.c: Fixed a bug where environment variables were escaped when they shouldn't be. This bug caused som tab-completions for the screen command to break in 1.3 * complete.c: Fixed bug causing problems for tab-completion if PATH elements end with a slash * fish_tests.c: Took the first steps towards a test suite. So far only some simple syntax tests are performed. * init/fish: If LANG is unspecified, a default value of en_US.UTF-8 is set 2005-03-07 Axel Liljencrantz * Version 1.3 * builtin.c: New syntax for if, while and for builtins. * : Added support for X copy and paste inside of fish. Thank you to Stéphane Chazelas for pointers on how to do this. * : Included the Xsel program, written by Conrad Parker, with fish. This is the wonderful program that allows fish to use X copy and paste. * complete.c: Fixed bug causing slowdown in tab completion of wildcarded strings. * reader.c: Avoid calling setupterm() more than once, since the NCurses version leaks memory and sometimes calls exit, possibly without an error message. * set_color.c: Fixed bug in the set_color command that could cause accidental underlining of text. Oh no! * init/fish_complete.fish: Added tab completions for w, xsel, xprop, btdownloadcurses.py and btdownloadheadless.py commands. * doc_src/coplete.txt: Rewrote documentation for the complete command to make it easier to understand how command specific completions work. * complete.c: Scripts with extensions are now described with language, i.e. Perl scripts are discribed as "Perl script", not "Executable" 2005-02-27 Axel Liljencrantz * Version 1.2.1 * : Fixed obvious crash bug. I should REALLY try to put together a test suite for fish. * env.c: Added support for changing locale while fish is running. 2005-02-26 Axel Liljencrantz * Version 1.2 * INSTALL: The INSTALL file contained a dangerAous mistake, where users were advised to use a command which could cause an invalid /etc/shells. Thanks to Klaus Alexander Seistrup for spotting this. * builtin.c: Fixed bug where sourcing a file when in interactive mode would reset signal handlers. * builtin_help.c: Builtin help pages are now stored as narrow character strings. This avoids escape sequences being improperly displayed on some platforms. It also decreases memory usage by a few kB. * util.c: The comparison function used for sorting completions has been changed so it won't cause duplicate entries. * wildcard.c: Avoid returning excessive number of completions when tab-completing a parameter ending with a wildcard. Thanks to Klaus Alexander Seistrup for suggesting this. * doc_src/fish.1: Added a man-page pointing to the main fish documentation. Thanks to Chris F.A. Johnson for suggesting this. * doc_src/doc.hdr: Minor changes to the documentation. * expand.c: Added tab completion for job id, with the job command as the description. * init/fish_complete.fish: Added tab completions for ps, top, test, cvs, pine, chown and chgrp commands. * builtin.c: Added CDPATH support for the cd builtin. 2005-02-16 Axel Liljencrantz * Version 1.1.1 * init/fish: Fixed typo that caused spurious error messages on startup 2005-02-16 Axel Liljencrantz * Version 1.1 * exec.c: Fixed possible segfault when using builtins in subshells (Subshells would sometimes read uninitialized data, no actual crashes encountered, but that might just be luck) * expand.c: Completion descriptions for environment variables and for home directories (~USER). * util.c: String sorting functions now sort strings that are a prefix to another string first (I.e. 'foo' comes before 'foobar') * reader.c: Tab completion pager colors can be set by user * init/fish_complete.fish: Updated tab completion command description lookup to only use section 1 manuals * doc_src/doc.hdr: Added documentation chapter on environment variables * doc_src/doc.hdr: Added search targets for help sections 'color', 'prompt', 'title', 'variables' and 'expansion' * doc_src/doc.hdr: Added BSD license info to documentation (About 100 lines of fish code comes from OpenBSD and is BSD licensed) * doc_src/doc.hdr: Minor additions and edits to documentation and initialization files * init/fish_complete.fish: Added tab completions for bc, mv, uniq, wc and who 2005-02-13 Axel Liljencrantz * Version 1.0 * Initial release, everything is new