The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Change log for psh - The Perl SHell

DESCRIPTION

A reverse-chronological ordered list of changes

0.009 [2001-01-05]

New Features

  • New builtin rename - this does the same as Larry Wall's PPT program but profits from being integrated into psh (it can use psh subs and variables for the modification). - warp [2000-05-01]

  • Psh::OS::backtick() now can call and capture the output of psh builtins on Unix. - warp [2000-05-01]

  • Added new builtin fc which is similar to the command of the same name from bash - inspired by a command on the SourceForge message board (and I finally start to like this command ;-). - warp [2000-05-03]

  • The builtin history now also accepts a text as argument. In that case it will only print commands containing that text. - warp [2000-07-08]

  • The builtin fc now understands the switch -p. Also it's more behaviour compatible with bash's fc.

  • New builtin bind which does keybindings (similar to bash). - Andrew Turner [2000-08-11]

  • New builtin drives which shows the available drives on Windows. - warp [2000-08-26]

Internals

  • New sub Psh::Util::prompt() for interactive prompting. - warp [2000-05-01]

  • Cleanups in Psh::OS::Unix::_setup_redirects and ...::_remove_redirects. - warp [2000-05-01]

  • Added Psh::add_history so builtins etc. can modify history easily. - warp [2000-07-08]

  • Quotes are removed from file names in redirections. - warp [2000-07-08]

  • Fixed variable substitution in Psh::PerlEval so that whitespace after a backslash does not split words anymore. - warp [2000-07-08]

  • Half-hearted attempt at getting whitespace and special characters in TAB completion right. - warp [2000-07-08]

  • Psh::OS::exit renamed to Psh::OS::exit_psh due to problems with POSIX's exit. - warp [2000-08-26]

  • Removed/reduced usage of Cwd.pm due to partly strange behaviour on non-UNIX systems. - warp [2000-08-26]

  • The help builtin cleans up the temp files it creates. - warp [2000-08-26]

Fixes

  • The parser now allows usage of ->. - warp [2000-07-27]

  • Should work on Perl 5.004 again. - warp [2000-07-31]

  • Windows port works and tested on ActiveState Perl 5.6. - warp [2000-08-26]

  • Removed some errors and problems with Windows in prompt package. - warp [2000-07-31]

############################################################################### ############################################################################### ## ## 0.008 ## ############################################################################### ###############################################################################

0.008 [2000-04-30]

New and Enhanced Built-ins

cd and dirs

The cd builtin now has a (currently unlimited) history list, accessible using:

  cd -/+/%number

The new builtin dirs displays the stack.

complete

Adds a mightier and bash compatible way to define custom completions.

firsttime

A firsttime user setup utility for the .pshrc file. It cannot do a lot currently but will grow in future.

function

Tries to emulate bash's behaviour.

history
unalias

Does not remove builtins of the same name anymore.

New Features

  • Extended Completion code for Perl (supports $#foo, $foo->{key, $foo->method, subroutine without &, perl reserved symbol)

  • Executable completion now even after initial ! for shell escape

  • Some minimal status code testing and error handling for user input.

  • Understands environment variable $IGNOREEOF.

  • Accepts the -i command line switch and ignores it for bash compatibility.

  • If the line you entered matches the last line it won't be added to the history.

  • On Unix, support for a global .pshrc file at /etc/pshrc.

  • New variable @Psh::executable_noexpand.

  • New variable $Psh::interactive which is set if psh is currently in interactive mode.

Bugs Fixed

  • Fixed some small problems with globbing code.

  • Fixed problem with pod2man and CHANGES.pod reported on Sourceforge.

  • SIGTERM and SIGHUP are not ignored anymore and cause psh to exit instead.

  • Switch -r now reserved for restricted mode, new switch -f for alternative resource file.

  • Fixed problem with quoting which was not removed for the executable strategy.

  • Piping is now possible in aliases.

  • The parser now allows nesting aliases.

0.007 [2000-02-14]

Contributions primarily by Markus Peter (warp) and Simon Huggins (huggie).

New Features

  • Support for window titles. New environment variable $PSH_TITLE, $Psh::change_title, $Psh::window_title. The behavior is like prompt strings.

  • Strategy perlfunc is a default strategy again. $Psh::perlfunc_builtins determines wether Perl builtins should be evaled (default 0)

  • Builtin kill now supports sending a signal to a named job (e.g. "emacs & ; kill emacs").

  • Builtin strategy for loading strategies on demand and adding them to the list of strategies to use. Handy for strategies that are used less often than the core strategies.

  • Properly pipeable aliases.

  • Fallback and most other builtins are loaded on demand.

  • Converted &Psh::symbols() into a builtin, symbols.

  • New builtin set. Acts like bash's set and returns environment. Could be extended to allow set -o noclobber bash-isms to work.

  • New strategy auto_cd.

  • Builtin strategy now knows command available to list available strategies

Bug Fixes

  • The Unix resize handler now works correctly in big xterms.

  • Added print "\n" on CTRL-C to clean up display.

  • Fixed generation of $Psh::history_file.

Other Changes

  • Added README.perl5.004 to explain about File::Spec

  • Strategies fallback_builtin and perlfunc modularized and moved into Psh::Strategy::*

  • Perlfunc configuration variables are now in Psh::Strategy::Perlfunc for cleanliness.

  • Removed &Psh::news() since there's no need for it being included in psh just for the tryme script.

  • List of builtins for which autoloading is supported is built automatically during startup.

0.006 [2000-01-03]

Refinements to 0.005.

New Features:

  • New builtin delenv.

  • Builtin kill accepts multiple PIDs.

  • Saving the history file now respects $Psh::history_size if Term::ReadLine::Perl is used

  • Manifest Filters for pipeline code, e.g. try:

        ls | s/y/k/                      # Substitution. Example is a Y2K fix.
        ls | { print ++$i, ": $_"; }q    # Quick. Iterate over lines.
        netstat | { $_[1]>2; }g          # Grepish. Print line if { ... } evaluates to true.

    See the psh documentation for more information.

  • New recursive globbing using **/ (Example: grep anything **/*.pm).

Win32 Port Enhancements:

  • It now works. 0.005 was missing a couple of patches.

  • Makes use of system registry.

  • Implementations of execute_complex_command(), get_hostname(), get_all_users(), get_home_dir(), and get_known_hosts().

Internals:

  • Moved prompt code and perl evaluation code into own packages.

  • Implementing redirects and pipes in psh.

  • Clean-ups for all code using filenames (now using File::Spec).

  • More I18N.

  • Removed usage of $ENV{HOME} in portable code.

0.005 [1999-12-28]

A very functional release.

New Evaluation Strategies

  • brace

  • fallback_builtin

    Builtins of this type (currently searched in package Psh::Builtins::Fallback) will be executed AFTER no program of that name was found. This allows simulation of common commands like ls and env on systems not having such binaries.

  • auto_resume

New Bultins

  • builtin

  • env

    On systems with an env binary installed it will use the binary, on other systems (namely Win32) it will print a list of environment variables.

  • help

  • unalias

Builtin Enhancements

  • alias

    Changed builtin alias so that 'alias name' displays the alias definition for that name.

  • bg

    It's now possible to do 'bg commandname' (e.g. 'bg emacs') fg has the same behaviour for consistency.

  • cd

    Respects CDPATH now and sets OLDPWD.

Portability Enhancements

  • Added portability infrastructure.

  • Working Win32 port (though it has limited features).

Completion Enhancements

  • Variables for bookmark completion are now @Psh::Completion::bookmarks and @Psh::Completion::netprograms.

  • New Perl Hashkey completion will TAB complete the name of keys for Perl hashes (if they are not written in quotes).

  • Support for user defined completions by %Psh::Completion::custom_completions.

  • Perl Symbol completion now supports package names and package name completion.

  • Support for TAB completions for builtins.

  • A custom_completions entry may now also be code. If the value of a custom_completions key/value pair is a sub that sub will be called and the result used as rules.

  • A rule for custom_completions may now have an optional third argument. If that argument is true, the custom_completion will replace the standard completions instead of adding to them.

  • Filename Completion respects the FIGNORE environment variable now.

Other Changes

  • Documentation updates.

  • Locales defined for: Default (English), French, German, Italian, Portuguese, and Spanish.

  • New fallback builtins: ls

  • Prompt evaluation is now more bash compatible and handles even more complex prompts.

  • Replaced Psh::OS::Unix::glob() - now uses its own glob routine instead of CORE::glob() - and is significantly faster (important for executable completion).

  • New variables: $Psh::Prompt_cont, $Psh::result_array.

  • Moved almost all code from psh into Psh, Psh::Builtins and Psh::Util.

  • Environment variable CURRENT_SHELL is set to the path to psh.

Bug Fixes

  • Generation of weekday names.

  • Small fixes for setenv, print_list and abs_path.

  • Fixed signal description generation.

0.004 [1999-12-13]

This release fixes bugs, refactors the code, and adds the following features:

  • Background process management much more like bash.

  • Perl code in addition to executables may be put in the background.

  • Pipelines.

  • Initial internationalization.

  • New built-ins: alias, export, setenv.

  • A flexible set of evaluation strategies that can be selected or reordered by setting a configuration variable.

  • Prompt strings can have escapes like \07 (ASCII BEL) or \10 (ASCII LF).

  • avoided trying to save history if there wasn't even a ReadLine module.

  • added $psh::debugging variable to hold the debugging state, so it can be turned on and off in a running psh.

  • A $psh::echo variable to control whether perl results of evaluation are printed.

  • The which builtin now shows which strategy will apply to a given command line

  • Grab more input automatically if <<BLOCK appears anywhere on the line, or if the line ends with an open brace.

  • results of &psh::which() searches are hashed.

  • Thorough documentation of every user-accessible variable and function

0.003 [1999-11-23]

Contributions from Markus Peter:

  • Rudimentary background jobs handling and job management.

  • Signal handling.

  • Filename completion.

  • Updates to history handling.

  • Flexible %built_ins mechanism for adding built-in functions.

  • Smart mode is on by default.

0.00205 [1999-11-08]

  • Changed prompting to pass prompt string into &iget(), which passes it on to &Term::ReadLine::readline() or prints it out if the ReadLine module is not available. Thanks to Sam Tregar and tmb at lumo.com.

  • Changed history handling so that empty lines and those consisting of entirely whitespace are not recorded.

  • Fixed a couple of typos.

  • Changed the regular expression for `smart mode' to allow vi +3 psh in addition to ls -l.

  • Now uses Getopt::Std for option processing.

  • Fixed the code that detects the presence of Term::ReadLine.

  • Made more use of debug mode to print out advisory information.

  • Use zero instead of undef to set Term::ReadLine::MinLine so that we don't get undef usage trouble in the guts of Term::ReadLine::Gnu.

0.00204 [1999-11-01]

  • Added a bunch of stuff to the TODO file.

  • Added parens around each part of the $interactive detection expression.

  • Prompt variables are now dealt with via %prompt_vars, which can be modified, so that custom prompt variables can be created.

  • Added %built_ins.

0.00203 [1999-08-28]

  • Fixed typo that caused a bug where prompt variable $ didn't work. Thanks to John Labovitz.

0.00202 [1999-08-23]

Patch.

0.00201 [1999-08-23]

Patch.

0.002 [1999-07-23]

Second release.

0.001 [1999-07-23]

Initial release