Change log for psh - The Perl SHell
A reverse-chronological ordered list of changes
Psh::OS::backtick() now can call and capture the output of
psh builtins on Unix.
- warp [2000-05-01]
-p. Also it's more
behaviour compatible with bash's fc.
Psh::Util::prompt() for interactive prompting.
- warp [2000-05-01]
Psh::OS::Unix::_setup_redirects and
...::_remove_redirects.
- warp [2000-05-01]
Psh::add_history so builtins etc. can modify history
easily.
- warp [2000-07-08]
Psh::PerlEval so that whitespace
after a backslash does not split words anymore.
- warp [2000-07-08]
Psh::OS::exit renamed to Psh::OS::exit_psh due to problems
with POSIX's exit.
- warp [2000-08-26]
############################################################################### ############################################################################### ## ## 0.008 ## ############################################################################### ###############################################################################
cd -/+/%number
The new builtin dirs displays the stack.
$#foo, $foo->{key,
$foo->method, subroutine without &, perl reserved symbol)
! for shell escape
$IGNOREEOF.
@Psh::executable_noexpand.
$Psh::interactive which is set if psh is currently in interactive
mode.
SIGTERM and SIGHUP are not ignored anymore and cause psh to exit instead.
Contributions primarily by Markus Peter (warp) and Simon Huggins
(huggie).
$PSH_TITLE,
$Psh::change_title, $Psh::window_title. The behavior is like prompt
strings.
$Psh::perlfunc_builtins
determines wether Perl builtins should be evaled (default 0)
emacs & ;
kill emacs'').
&Psh::symbols() into a builtin, symbols.
set -o noclobber bash-isms to work.
auto_cd.
print "\n" on CTRL-C to clean up display.
$Psh::history_file.
File::Spec
fallback_builtin and perlfunc modularized and moved into Psh::Strategy::*
Perlfunc configuration variables are now in Psh::Strategy::Perlfunc for cleanliness.
&Psh::news() since there's no need for it being included in psh just for the tryme script.
Refinements to 0.005.
New Features:
$Psh::history_size if
Term::ReadLine::Perl is used
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.
**/ (Example: grep anything **/*.pm).
Win32 Port Enhancements:
execute_complex_command(), get_hostname(),
get_all_users(), get_home_dir(), and get_known_hosts().
Internals:
File::Spec).
$ENV{HOME} in portable code.
A very functional release.
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.
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.
Changed builtin alias so that 'alias name' displays the
alias definition for that name.
It's now possible to do 'bg commandname' (e.g. 'bg emacs')
fg has the same behaviour for consistency.
Respects CDPATH now and sets OLDPWD.
@Psh::Completion::bookmarks and @Psh::Completion::netprograms.
%Psh::Completion::custom_completions.
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.
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.
FIGNORE environment
variable now.
Psh::OS::Unix::glob() - now uses its own glob
routine instead of CORE::glob() - and is significantly faster
(important for executable completion).
$Psh::Prompt_cont, $Psh::result_array.
psh into Psh, Psh::Builtins and Psh::Util.
CURRENT_SHELL is set to the path to psh.
This release fixes bugs, refactors the code, and adds the following features:
alias, export, setenv.
\07 (ASCII BEL) or
\10 (ASCII LF).
ReadLine module.
$psh::debugging variable to hold the debugging
state, so it can be turned on and off in a running psh.
$psh::echo variable to control whether perl results of
evaluation are printed.
which builtin now shows which strategy will apply to
a given command line
<<BLOCK appears
anywhere on the line, or if the line ends with an open brace.
&psh::which() searches are hashed.
Contributions from Markus Peter:
%built_ins mechanism for adding built-in functions.
&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.
vi +3 psh in addition to ls -l.
Getopt::Std for option processing.
Term::ReadLine.
undef to set Term::ReadLine::MinLine
so that we don't get undef usage trouble in the guts of
Term::ReadLine::Gnu.
TODO file.
$interactive detection expression.
%prompt_vars,
which can be modified, so that custom prompt variables
can be created.
%built_ins.
$
didn't work. Thanks to John Labovitz.
Patch.
Patch.
Second release.
Initial release