hsh Release Notes
Copyright (C) 2010 Alexander Taler (dissent@0--0.org)
This file is part of hsh.
hsh is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
hsh is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with hsh. If not, see
http://www.gnu.org/licenses/
.
For more detail check the user manual.
Major Changes in version 1.-2.4
-
Search feature: A search window can be opened, providing pattern highlighting
and output searching. Documented thoroughly in the user guide.
-
Jobs can now be replaced using a new hash directive, and the convenient
keybinding M-e which provides the previous command line for editing. The
previous job's command line and output are discarded and replaced with the
new command line and output, but retaining jobid and position in job lists.
-
Several improvements to the history mechanism, including how the final
history entry is handled, and navigating the history view. history is now an
alias to show the history view.
-
Correctly handle \r characters in job output.
-
Bind M-w to a new function to toggle line-wrapping.
-
Create an alias, jobs, to show the list of running jobs.
-
Fixed some issues with escape characters and glob patterns on the command
line.
-
cd builtin now gives error messages in a more polite fashion.
-
Internal changes to text formatting and screen layout fix some minor bugs in
display, particulary in the list views.
-
Internal documentation is now generated as pydoc.
Major Changes in version 1.-2.3
-
The SessionList view is now the default view when a job is created, and it
includes job output in addition to basic details of jobs. The Home and End
keys are useful for moving through the output, as well as Alt-H for hiding
it.
-
Correct return codes are being shown once again for #exclusive jobs.
-
The current job in SessionList is always synched with the one shown in
JobView.
-
Tab characters in output are handled correctly.
-
Spaces in file names are handled properly by tab completion.
-
The meaning of a leading + has changed, so that it now suppresses the use of
builtins and aliases, which is generally more useful.
Major Changes in version 1.-2.2
-
Job directives, specified by a # have been introduced. Six have been defined
in two groups:
exclusive
, pty
, and piped
define how
standard input and output are assigned when a job is created.
hide
, hideonsuccess
, and show
define
the conditions of when a job will be shown to the user.
-
Proper job control has been implemented so full-screen jobs can be suspended.
#exclusive jobs running in the foreground work as usual with the ^Z
character. #piped and #pty jobs which are running full-screen can be
backgrounded with ^Z followed by Enter. Two ^Zs will send a ^Z to the
process.
-
Improvements to the appearance and movement of job output so that it can be
more easily navigated and it's more obvious what is happening. Particularly
improved is the handling of long lines.
-
Provide a way to examine and modify the environment. This can be accessed
using the env builtin.
-
Provide command aliases, along with a way to view and modify them. This can
be accessed using the alias builtin. A default list of aliases is included,
particularly useful for specifying process to run in alternative terminal
modes.
-
Curses drawing has been moved into its own dedicated thread.
-
Better backward and forward compatibility so multiple versions of hsh can
coexist.
Current Issues
This list contains the largest known issues, a more complete list can be found
in the developer manual.
-
Sometimes when hsh reclaims the terminal from a full-screen #piped or #pty
program the terminal drawing is messed up, and most of the screen is drawn
above where it should be. The problem can be fixed by resizing the terminal,
and it doesn't affect terminals with fewer than 25 lines.
-
Sometimes the first keystroke to a full-screen program is lost. This happens
if it's an extended keystroke like an arrow key, and the program is in #piped
or #pty mode.
-
Job output is not displayed for jobs loaded from disk.
-
Alert messages can hang around long after they are meaningful.
-
There should be a way to disable logging if the user wants to enter something
secret like a password, or view secret output. This can be achieved by
running the job #exclusive, but should be available in other modes too.
-
Typing a glob symbol as part of the command name causes an exception when it
should only raise an alert.
-
Some interactive programs like sftp only display the prompt after the user
has submitted a command.
-
Deleting a job from the session list also removes it from command history.
-
If a job is left marked as running even though it's not, there's no way for
hsh to delete it.
-
hsh doesn't distinguish between running jobs it created, and those created by
other instances.
-
Display can flicker a bit when the terminal is very large.
-
The Python globbing library can't match literal glob characters (*, ?, etc.)
so completions with these may not work as expected.