changeset:   125:f69ce6bf766d
tag:         tip
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Jun 09 15:00:17 2010 +1200
files:       doc/DeveloperManual.html
description:
Some more details about doing release.


changeset:   124:0c14b3562e88
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Jun 09 14:56:01 2010 +1200
files:       src/hsh/curses_display/input_view.py
description:
Add a missing import.


changeset:   123:3b41a717d97e
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Jun 07 22:33:05 2010 +1200
files:       src/hsh/test/test_command.py
description:
Fix tests for change to how leading spaces are handled.


changeset:   122:d808104c4b63
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Jun 07 22:23:37 2010 +1200
files:       doc/DeveloperManual.html
description:
Fix doco format error.


changeset:   121:ab917657457a
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Jun 07 22:22:57 2010 +1200
files:       src/hsh/command.py
description:
Handle a leading space on the command line.


changeset:   120:c4970b6059c1
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Jun 07 21:36:50 2010 +1200
files:       doc/DeveloperManual.html
description:
Add deployment steps list.


changeset:   119:ae64640ec241
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Jun 07 21:27:37 2010 +1200
files:       src/hsh/test/test_command.py
description:
Make tests pass again.


changeset:   118:b3d100bfbc90
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Jun 07 21:24:36 2010 +1200
files:       doc/DeveloperManual.html doc/Introduction.html doc/ReleaseNotes.html doc/UserManual.html
description:
Update documentation in preparation for a release.


changeset:   117:298151200313
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Jun 07 12:39:54 2010 +1200
files:       src/hsh/builtins.py
description:
Show the output of +hsh_view when appropriate.


changeset:   116:80dc468879e7
user:        Alexander Taler <dissent@0--0.org>
date:        Sun Jun 06 03:41:04 2010 +1200
files:       src/hsh/builtins.py
description:
Ensure output of +version and +copying is shown.


changeset:   115:3d74786e620e
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Jun 02 20:09:11 2010 +1200
files:       doc/KnownIssues.html doc/ReleaseNotes.html
description:
Rename KnownIssues.html to ReleaseNotes.html


changeset:   114:59dfc7d10316
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Jun 02 20:08:31 2010 +1200
files:       doc/DeveloperManual.html
description:
Documentation: add a Reference section to DeveloperManual.


changeset:   113:c79f4eb88953
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Jun 02 19:52:13 2010 +1200
files:       doc/DeveloperManual.html
description:
Update for many completed tasks, and some new issues.


changeset:   112:a13a4df08e63
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Jun 02 19:50:56 2010 +1200
files:       src/hsh/curses_display/display.py
description:
Don't throw an exception if extended characters mistakenly end up in the raw stream.


changeset:   111:9cac5ffbee2e
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Jun 02 19:47:05 2010 +1200
files:       src/hsh/curses_display/display.py
description:
Reset more curses options when reclaiming the terminal.


changeset:   110:d6d2d0a6c49c
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Jun 02 07:38:54 2010 +1200
files:       src/hsh/curses_display/display.py src/hsh/curses_display/input_view.py src/hsh/curses_display/job_view.py src/hsh/jobs.py
description:
Support suspending of jobs by doing proper job control.
Thanks to whoever wrote the libc info pages explaining
how it all works.


changeset:   109:5b5ab65f7196
user:        Alexander Taler <dissent@0--0.org>
date:        Mon May 24 02:17:35 2010 +1200
files:       src/hsh/curses_display/display.py
description:
Implement backgrounding full-screen jobs with Ctrl-Z (followed by Enter)


changeset:   108:653c808ca2e0
user:        Alexander Taler <dissent@0--0.org>
date:        Sun May 23 04:35:07 2010 +1200
files:       src/hsh/curses_display/display.py src/hsh/curses_display/input_view.py
description:
Grant exclusive mode only if the main view has focus.  This is preparation
for backgrounding jobs.


changeset:   107:da3360c06f95
user:        Alexander Taler <dissent@0--0.org>
date:        Sat May 22 18:41:41 2010 +1200
files:       src/hsh/curses_display/content_view.py
description:
Make the cursor visible in job output so it's obvious where the focus is.


changeset:   106:14274cb41574
user:        Alexander Taler <dissent@0--0.org>
date:        Sat May 22 18:34:49 2010 +1200
files:       doc/DeveloperManual.html src/hsh/curses_display/display.py
description:
Smoother transition between full-screen jobs and hsh.

Use curses' getch for input even for full-screen jobs.  This means
issues around input timeouts can be side-stepped, and all characters
are sent to the right place.  Also, remember who is handling input
so the main thread doesn't call getch() too early.


changeset:   105:e83aab66198d
user:        Alexander Taler <dissent@0--0.org>
date:        Sat May 22 02:06:18 2010 +1200
files:       src/hsh/config.py
description:
Alias top to using the #pty.


changeset:   104:e761452cfce3
user:        Alexander Taler <dissent@0--0.org>
date:        Sat May 22 02:03:52 2010 +1200
files:       doc/DeveloperManual.html
description:
Several updates to tasks list.


changeset:   103:350af2af799b
user:        Alexander Taler <dissent@0--0.org>
date:        Sat May 22 02:02:58 2010 +1200
files:       src/hsh/jobs.py
description:
Fix some issues with the internal job list.

Correctly handle issues loading jobs in all cases, by using get_job().
Don't leave holes in the all_jobs array.
len(all_jobs) is the actual next free id, no need to increment it.


changeset:   102:be4e374b72e9
user:        Alexander Taler <dissent@0--0.org>
date:        Sat May 22 01:28:45 2010 +1200
files:       src/hsh/curses_display/input_view.py
description:
Don't show jobs that weren't started.


changeset:   101:e8ec6e0acbb6
user:        Alexander Taler <dissent@0--0.org>
date:        Sat May 22 01:25:51 2010 +1200
files:       src/hsh/curses_display/display.py
description:
Enable debug mode, and more comments on curses timeouts.


changeset:   100:9e0c86732b1c
user:        Alexander Taler <dissent@0--0.org>
date:        Tue May 18 23:37:31 2010 +1200
files:       bin/hsh src/hsh/curses_display/__init__.py src/hsh/curses_display/display.py src/hsh/curses_display/job_view.py src/hsh/curses_display/view.py
description:
Fix terminal settings for #exclusive mode.

Track two different requests for the terminal, one for exclusive
mode, and one for piped/tty mode.

Completely deinitialize the curses library when running jobs in
#exclusive mode, so that line terminators are drawn correctly.

Move the top level run() method out of the module's __init__
file, and into the display module.  This facilitates the sharing
of the initialization code.


changeset:   99:f4fe3505b3fa
user:        Alexander Taler <dissent@0--0.org>
date:        Tue May 18 20:05:29 2010 +1200
files:       src/hsh/curses_display/input_view.py
description:
Always display exclusive jobs, so they don't block waiting for the terminal.


changeset:   98:bae770e93253
user:        Alexander Taler <dissent@0--0.org>
date:        Tue May 18 07:50:02 2010 +1200
files:       src/hsh/jobs.py
description:
Better handling for older and broken job directories.


changeset:   97:b2f79d51e689
user:        Alexander Taler <dissent@0--0.org>
date:        Mon May 17 06:10:17 2010 +1200
files:       doc/DeveloperManual.html src/hsh/curses_display/content_view.py src/hsh/curses_display/view.py
description:
Implement page-based movement for Content View buffers like the job output.

The cursor is no longer drawn in non-editable buffers, and several keystrokes
have been updated to move the whole display instead of the cursor.


changeset:   96:aaba360f43cf
user:        Alexander Taler <dissent@0--0.org>
date:        Mon May 17 06:08:10 2010 +1200
files:       doc/DeveloperManual.html
description:
Update Task List


changeset:   95:7b569477e95b
user:        Alexander Taler <dissent@0--0.org>
date:        Mon May 17 05:11:04 2010 +1200
files:       src/hsh/builtins.py src/hsh/jobs.py
description:
Set directives on job objects in all cases


changeset:   94:9f7a0998297b
user:        Alexander Taler <dissent@0--0.org>
date:        Mon May 17 04:19:45 2010 +1200
files:       src/hsh/curses_display/input_view.py
description:
Change #hideonsuccess to show jobs that haven\'t succeeded


changeset:   93:07011c166753
user:        Alexander Taler <dissent@0--0.org>
date:        Sun May 16 09:04:55 2010 +1200
files:       src/hsh/builtins.py src/hsh/command.py src/hsh/config.py src/hsh/curses_display/input_view.py src/hsh/jobs.py
description:
Add directives #hide, #hideonsuccess, #show.

Replace the previous internal 'show_output' setup.
Allow jobs to define their own default directives.
Builtins default to hide.
Create a shared start() method for externaljob and builtin.


changeset:   92:36bc8e9c1bcd
user:        Alexander Taler <dissent@0--0.org>
date:        Fri May 14 19:55:33 2010 +1200
files:       doc/DeveloperManual.html
description:
Several updates to the task list.


changeset:   91:4f8150a74979
user:        Alexander Taler <dissent@0--0.org>
date:        Fri May 14 19:53:40 2010 +1200
files:       src/hsh/curses_display/list_view.py
description:
Don't get stuck searching on disk for previous jobs.


changeset:   90:9576f01d5f2c
user:        Alexander Taler <dissent@0--0.org>
date:        Mon May 10 21:43:49 2010 +1200
files:       src/hsh/aliases.py
description:
Add the aliases implementation which was forgotten


changeset:   89:b7eda5235c6e
user:        Alexander Taler <dissent@0--0.org>
date:        Mon May 10 21:42:52 2010 +1200
files:       src/hsh/builtins.py src/hsh/config.py
description:
Add an +exit builtin


changeset:   88:194dba44a4b2
user:        Alexander Taler <dissent@0--0.org>
date:        Fri May 07 00:44:04 2010 +1200
files:       doc/DeveloperManual.html
description:
Task List Update: aliases are now done.
Add some tasks that arose during the process.


changeset:   87:cc40b559a3ea
user:        Alexander Taler <dissent@0--0.org>
date:        Fri May 07 00:42:14 2010 +1200
files:       src/hsh/command.py src/hsh/config.py
description:
Create default alias list in config.

Prevent alias expansion of aliases to stop unbounded recursion.


changeset:   86:b2752f7e04d0
user:        Alexander Taler <dissent@0--0.org>
date:        Thu May 06 22:52:19 2010 +1200
files:       src/hsh/builtins.py src/hsh/command.py src/hsh/curses_display/display.py src/hsh/curses_display/keybinds.py
description:
Provide implementation of aliases.

Create an Aliases view and define keystrokes for it.
Add the 'alias' builtin for getting at the Aliases view.
Search aliases in command text and do expansions and completions.


changeset:   85:4cdfc93185e3
user:        Alexander Taler <dissent@0--0.org>
date:        Thu May 06 20:12:39 2010 +1200
files:       src/hsh/command.py
description:
Refactor implementation of command.Prog in preparation for aliases.

As a result, fix a bug where programs would be missing from completions
If the text matched a builtin exactly.


changeset:   84:d6a391a07142
user:        Alexander Taler <dissent@0--0.org>
date:        Thu May 06 19:25:56 2010 +1200
files:       src/hsh/curses_display/keyvalue_view.py
description:
Change title of KeyValueView to be parametrized


changeset:   83:304f3185e149
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 28 00:37:57 2010 +1200
files:       src/hsh/builtins.py
description:
Fix an error message mistake


changeset:   82:37c21c1c5492
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Apr 27 23:35:01 2010 +1200
files:       src/hsh/curses_display/keyvalue_view.py
description:
Fix crash in KeyValue view when the value is empty.


changeset:   81:73c84e956492
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Apr 27 23:34:04 2010 +1200
files:       src/hsh/builtins.py
description:
Extend the env builtin to modify the environment


changeset:   80:57a267f79613
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Apr 27 21:52:39 2010 +1200
files:       src/hsh/config.py
description:
Change colours of text being edited.


changeset:   79:b6867109044b
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Apr 27 21:36:26 2010 +1200
files:       src/hsh/config.py src/hsh/curses_display/keybinds.py src/hsh/curses_display/keyvalue_view.py
description:
Implement editing for fields in KeyValueView.  Enable it for
the Environment view.


changeset:   78:decf26b508d7
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Apr 27 21:23:32 2010 +1200
files:       src/hsh/curses_display/display.py
description:
Fix bug in handling crashes in display thread.


changeset:   77:62d935e1c089
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 26 22:18:57 2010 +1200
files:       doc/DeveloperManual.html
description:
Developer Task List Update: new stuff and finished stuff


changeset:   76:ef4cc3ae25d7
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 26 22:14:45 2010 +1200
files:       src/hsh/builtins.py src/hsh/curses_display/display.py src/hsh/curses_display/keybinds.py src/hsh/curses_display/keyvalue_view.py
description:
Initial support managing the environment.

Add a KeyValueView for general managing of key value data.
Instantiate the KeyValueView with the environment.
Add the env builtin for loading the environment view.


changeset:   75:583d1ed0fe05
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 26 21:16:18 2010 +1200
files:       src/hsh/config.py src/hsh/curses_display/content_view.py src/hsh/curses_display/display.py src/hsh/curses_display/input_view.py src/hsh/curses_display/keybinds.py src/hsh/curses_display/list_view.py src/hsh/curses_display/message_view.py src/hsh/curses_display/view.py
description:
Generalize keybinds and view managing, and remove special case code.

View switching keybindings are moved to the regular keybinds file,
and use function parameters to specify the view.
All views are stored in a dict, display.views, and accessed by name.
Several View classes now can have name set on creation.


changeset:   74:e35c2c8fa31c
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 26 18:22:51 2010 +1200
files:       src/hsh/curses_display/view.py
description:
Support the inclusion of function args in keybindings.


changeset:   73:ad1d2757765e
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 26 18:20:58 2010 +1200
files:       src/hsh/curses_display/display.py
description:
Consolidate crash handling code into a function.


changeset:   72:2d26fac15e28
user:        Alexander Taler <dissent@0--0.org>
date:        Sat Apr 24 16:56:54 2010 +1200
files:       src/hsh/curses_display/content_view.py src/hsh/curses_display/input_view.py src/hsh/curses_display/view.py
description:
Extend ContentView with support for display offset and trunc mode.

Use these features in InputView.


changeset:   71:50b667ceffa6
user:        Alexander Taler <dissent@0--0.org>
date:        Sat Apr 24 11:19:32 2010 +1200
files:       src/hsh/curses_display/content_view.py src/hsh/curses_display/view.py
description:
Update ContentView internals.

Coordinate transform code is consolidated for easier maintenance and clarity.
Some minor changes in View are included to simplify ContentView.


changeset:   70:18519c3d3a91
user:        Alexander Taler <dissent@0--0.org>
date:        Fri Apr 23 21:20:42 2010 +1200
files:       src/hsh/curses_display/content_view.py
description:
Remove dead variables and rationalize meaning of another.


changeset:   69:c4e23a66d562
user:        Alexander Taler <dissent@0--0.org>
date:        Fri Apr 23 11:22:00 2010 +1200
files:       src/hsh/curses_display/content_view.py
description:
Permit the cursor to go past the end of the line to enable appending text.


changeset:   68:6b90e1feef8a
user:        Alexander Taler <dissent@0--0.org>
date:        Fri Apr 23 11:16:23 2010 +1200
files:       src/hsh/builtins.py src/hsh/curses_display/display.py src/hsh/display.py
description:
Enhance hsh_view builtin to report a list of views.


changeset:   67:bfae98a0986d
user:        Alexander Taler <dissent@0--0.org>
date:        Fri Apr 23 11:14:01 2010 +1200
files:       src/hsh/content.py
description:
Prevent TextContent corruption by forbidding zero-length regions.


changeset:   66:ce0a9517014a
user:        Alexander Taler <dissent@0--0.org>
date:        Thu Apr 22 14:20:39 2010 +1200
files:       src/hsh/config.py src/hsh/content.py src/hsh/curses_display/content_view.py src/hsh/curses_display/job_view.py src/hsh/curses_display/list_view.py src/hsh/curses_display/view.py
description:
Add dedicated display space for line wrapping and truncation markers.
Reorganize the ContentView code which deals with formatted
content and line calculations.

The left- and right-most columns are now dedicated to displaying
line wrapping and truncation markers.


changeset:   65:077d344b8c14
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 21 20:23:41 2010 +1200
files:       src/hsh/curses_display/display.py
description:
Remove logging of all keystrokes


changeset:   64:cb3bad12ca90
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 21 20:21:30 2010 +1200
files:       src/hsh/builtins.py src/hsh/curses_display/display.py src/hsh/curses_display/view.py src/hsh/display.py
description:
Add a mechanism for switching views from the command line.

Formalize an interface for the display, which is accessible to builtins.
Keep a registry of all views inside the display.
Create a new builtin to switch views.


changeset:   63:70e7ef08e020
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 21 17:19:54 2010 +1200
files:       src/hsh/jobs.py
description:
Store and load a job\'s directives


changeset:   62:01d9682dba3c
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 21 17:17:12 2010 +1200
files:       doc/DeveloperManual.html
description:
Add more tasks to the developer manual


changeset:   61:17345a35ff77
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 21 17:11:59 2010 +1200
files:       src/hsh/curses_display/view.py
description:
Set the header background for the full length of header lines.


changeset:   60:008d864afbf8
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 21 17:04:21 2010 +1200
files:       src/hsh/curses_display/display.py
description:
Add some comments about curses settings


changeset:   59:fcbbadf43b98
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 21 16:09:01 2010 +1200
files:       src/hsh/jobs.py
description:
Use the on_job_terminate() callback for exclusive jobs too.


changeset:   58:18674a92b579
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 21 16:05:12 2010 +1200
files:       src/hsh/curses_display/job_view.py src/hsh/jobs.py
description:
Add a can_send_input() method to the job interface.


changeset:   57:c49ed3fafc77
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 21 14:34:00 2010 +1200
files:       src/hsh/curses_display/content_view.py src/hsh/curses_display/view.py
description:
Hide cursor when the list view has focus


changeset:   56:65d33fc26d10
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 21 14:33:30 2010 +1200
files:       src/hsh/curses_display/list_view.py
description:
Fix update bug in list view where current job would not be visible.


changeset:   55:3b220daffcf3
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 21 14:18:21 2010 +1200
files:       src/hsh/curses_display/content_view.py src/hsh/curses_display/input_view.py src/hsh/curses_display/job_view.py src/hsh/curses_display/list_view.py src/hsh/curses_display/message_view.py src/hsh/curses_display/view.py
description:
Modify the view class hierarchy.

Functionality for drawing and manipulating the content for a view as an array
of strings is moved out of view and into a new subclass, ContentView.  Classes
which use this functionality (InputView, JobView, MessageView) now inherit from
ContentView, while those which don't (ListView) inherit directly from View and
are simplified by not having to deal with content and its attendant display_pos
and cursor_pos.

This simplifies existing code and prepares for the arrival of a key-value
viewing class which won't need the content stuff either.


changeset:   54:9a2dd33cf87b
user:        Alexander Taler <dissent@0--0.org>
date:        Sat Apr 17 09:00:41 2010 +1200
files:       src/hsh/curses_display/view.py
description:
Account for x display offset when drawing the cursor


changeset:   53:68c7d2d7820f
user:        Alexander Taler <dissent@0--0.org>
date:        Sat Apr 17 08:55:21 2010 +1200
files:       src/hsh/curses_display/list_view.py
description:
Remove an infinite loop when searching for the next job.


changeset:   52:63ed74c4b0a7
user:        Alexander Taler <dissent@0--0.org>
date:        Fri Apr 16 20:16:22 2010 +1200
files:       doc/DeveloperManual.html
description:
Update task list


changeset:   51:ecab9aad96dd
user:        Alexander Taler <dissent@0--0.org>
date:        Fri Apr 16 12:38:16 2010 +1200
files:       src/hsh/builtins.py src/hsh/content.py src/hsh/curses_display/job_view.py src/hsh/curses_display/list_view.py src/hsh/jobs.py
description:
Bug fix to show builtins' output again.
The bug was introduced when the call to job.start() was delayed.
 + Builtins no longer replace their output variable, they modify it
   since the view holds another reference to it.
 + "amount" is removed from the on_job_output() callback, since it's not
   used any longer.
 + Call listeners when a builtin generates output
 + content._chk_slice() wasn't checking longer slices correctly.


changeset:   50:10c9b1921114
user:        Alexander Taler <dissent@0--0.org>
date:        Thu Apr 15 16:31:20 2010 +1200
files:       doc/DeveloperManual.html src/hsh/curses_display/display.py
description:
If there's nothing to display, show the welcome.


changeset:   49:d126070c45a6
user:        Alexander Taler <dissent@0--0.org>
date:        Thu Apr 15 16:25:27 2010 +1200
files:       doc/DeveloperManual.html src/hsh/command.py
description:
Add a space at the end hash directive completions.


changeset:   48:14f6b902ec19
user:        Alexander Taler <dissent@0--0.org>
date:        Thu Apr 15 16:23:52 2010 +1200
files:       doc/DeveloperManual.html
description:
Add some new tasks to do


changeset:   47:4561c330ed19
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 14 00:13:10 2010 +1200
files:       doc/DeveloperManual.html doc/KnownIssues.html doc/UserManual.html
description:
Add documentation about Job Directives, job modes, and jobs in general.
Fix some other documentation errors.


changeset:   46:09cba39d77b0
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Apr 13 22:35:51 2010 +1200
files:       src/hsh/config.py src/hsh/curses_display/input_view.py src/hsh/jobs.py
description:
Fix bugs in adding jobs to list views.
+ Parameter order was incorrect in call to create_job()
+ Define a new "Initializing" state for jobs that will be run
  but have not yet been started.
+ Fix broken setting of members in job __init__()


changeset:   45:90623f2a4e89
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Apr 13 22:32:29 2010 +1200
files:       src/hsh/curses_display/list_view.py
description:
Draw the cursor correctly on list views.


changeset:   44:d20157d97343
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 12 23:56:22 2010 +1200
files:       src/hsh/curses_display/display.py src/hsh/curses_display/list_view.py src/hsh/curses_display/view.py
description:
Fix broken job list displays.
 + Correctly set width so that ListView.draw_header() won't do division by zero.
 + Rename stored width and height to cur_* instead of last_*, since they
   are used as current values in all places.
 + Remember cur_height and cur_width in align_display() for convenience.
 + Fix broken call to format_lines() in ListView.


changeset:   43:049ca0209bdd
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 12 23:49:14 2010 +1200
files:       src/hsh/jobs.py
description:
Initialize new instance variables on job in the correct place.


changeset:   42:5a8eb2087f60
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 12 23:41:04 2010 +1200
files:       src/hsh/curses_display/display.py src/hsh/curses_display/input_view.py src/hsh/curses_display/job_view.py src/hsh/curses_display/view.py src/hsh/jobs.py
description:
Support #exclusive to give jobs full terminal control.
 + Track requests for terminal control in the job object instead of the
   job view object, and just broker the information in job view.
 + Don't start jobs in the job object itself, because they aren't
   properly prepared to take control of the terminal until they've been
   made visible.
 + Pass an initial state for jobs when starting them so they are
   correctly accepted in lists.


changeset:   41:21877e40b40c
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 12 21:24:45 2010 +1200
files:       src/hsh/builtins.py
description:
Fix text for error message from cd, and show it more gently.


changeset:   40:7e9a7a4ec740
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 12 14:01:30 2010 +1200
files:       doc/DeveloperManual.html
description:
Remove implemented items


changeset:   39:3eec65ff4ac4
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 12 14:00:40 2010 +1200
files:       src/hsh/curses_display/job_view.py src/hsh/curses_display/view.py
description:
Make tail mode work.
 + Track last_cursor_pos and last_display_pos properly.
 + Call move_bottom() correctly.
 + Realign the display before checking if it's dirty.


changeset:   38:4e6b5dace7c7
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 12 11:18:58 2010 +1200
files:       src/hsh/builtins.py
description:
Change cd with no arguments to change to home directory.


changeset:   37:dc0202e62459
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 12 10:28:45 2010 +1200
files:       doc/DeveloperManual.html src/hsh/content.py src/hsh/curses_display/display.py src/hsh/curses_display/input_view.py src/hsh/curses_display/job_view.py src/hsh/curses_display/list_view.py src/hsh/curses_display/message_view.py src/hsh/curses_display/view.py
description:
Move curses drawing code into a separate thread.

This removes problems with thread communication (sometimes
.win would be set to None mid draw) and simplifies the drawing
code.  It is hopefully also a step towards improving performance.


changeset:   36:2428a59dd34f
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Apr 07 20:15:01 2010 +1200
files:       src/hsh/builtins.py src/hsh/curses_display/display.py src/hsh/curses_display/displayable.py src/hsh/curses_display/displayable_input.py src/hsh/curses_display/displayable_job.py src/hsh/curses_display/displayable_joblist.py src/hsh/curses_display/displayable_message.py src/hsh/curses_display/input_view.py src/hsh/curses_display/job_view.py src/hsh/curses_display/keybinds.py src/hsh/curses_display/list_view.py src/hsh/curses_display/message_view.py src/hsh/curses_display/view.py
description:
Replace the unwieldy name "CursesDisplayable" with "View" by renaming
multiple files, classes, and variables.


changeset:   35:9c85e5826085
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Apr 06 10:43:50 2010 +1200
files:       src/hsh/jobs.py
description:
Implement #pty directive to launch jobs in a pseudo terminal.


changeset:   34:40f32af9fb23
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Apr 06 10:12:17 2010 +1200
files:       src/hsh/command.py src/hsh/curses_display/displayable_input.py src/hsh/curses_display/displayable_job.py src/hsh/jobs.py src/hsh/test/test_command.py
description:
Further refinement of job directive handling.
Prevent CommandText class from returning incompatible directives.
Extend job creation functions to take directives.
Within displayable_job, rename exclusive to fullscreen, since exclusive
is now used for jobs which are granted full terminal control.


changeset:   33:e8728868fcad
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Apr 06 10:05:42 2010 +1200
files:       src/hsh/curses_display/keybinds.py
description:
Bind Enter to select_job() in the JobHistory view


changeset:   32:d32250b4f8a4
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Apr 06 07:01:46 2010 +1200
files:       src/hsh/command.py src/hsh/test/test_command.py
description:
Change internal handling of directives in command.py.
The 'startonly' variable and special logic is removed.  Instead,
HashDirective is now attached directly to CommandText in the
hierarchy, alongside Prog, Arg and ArgSeparator.  Directives are
expanded in the same way as parameters, to allow future token types
(specifically Alias) to also include directives.


changeset:   31:4af91867c331
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 05 13:42:13 2010 +1200
files:       bin/hsh
description:
Fix hsh launch script to refer to python in a more portable way.


changeset:   30:d40bd2653450
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 05 13:38:57 2010 +1200
files:       src/hsh/curses_display/displayable_joblist.py
description:
Replace an array reference which can fail due to a race condition.
It doesn't really fix the core problem of multiple threads accessing
the data structure.


changeset:   29:877d99414a33
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Apr 05 13:37:31 2010 +1200
files:       src/hsh/command.py src/hsh/test/test_command.py
description:
Add command line support for job directives (# directives).

src/hsh/command.py:
  + Reorganize and expand documentation of Token.
  + Define a new class variable: startonly.
  + Create the commencer re in Token rather than all subclasses.
  + Add directives() to CommandText.
  + Move subtoken list parsing to module level to reduce work and code.
  + Define the HashDirective token.


changeset:   28:e938820f5d73
user:        Alexander Taler <dissent@0--0.org>
date:        Fri Apr 02 21:06:03 2010 +1300
files:       doc/DeveloperManual.html
description:
Update the list of near-term tasks to represent current thinking


changeset:   27:28d0847d1027
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Mar 31 20:57:28 2010 +1300
files:       doc/Introduction.html
description:
Add a new entry to the desired feature list


changeset:   26:a7410acaef14
user:        Alexander Taler <dissent@0--0.org>
date:        Mon Mar 29 22:27:35 2010 +1300
files:       src/hsh/curses_display/display.py src/hsh/curses_display/displayable_job.py src/hsh/jobs.py
description:
Encapsulate job input stuff in preparation for differences
in how it's done for pseudo terminals.
+ Add close_input() and send_input() methods to Job and subclasses.
+ Support multiple input exception types.


changeset:   25:148cfb2bc713
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Mar 24 21:42:08 2010 +1300
files:       doc/DeveloperManual.html doc/UserManual.html
description:
Documentation Update - add TOC to Dev Manual, title to Introduction


changeset:   24:0b5a6e2bdd6b
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Mar 24 11:20:09 2010 +1300
files:       bin/make_pkg.sh
description:
Increment version number for next release


changeset:   23:ac728ea0a3c9
user:        Alexander Taler <dissent@0--0.org>
date:        Wed Mar 24 11:19:22 2010 +1300
files:       src/hsh/curses_display/display.py src/hsh/curses_display/displayable_input.py src/hsh/curses_display/displayable_joblist.py
description:
Add alert for missing program.
Abstract access to alert messages through the display.


changeset:   22:30a584e59d1b
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Mar 23 00:48:21 2010 +1300
files:       bin/make_pkg.sh
description:
Change output hints from make_pkg.sh


changeset:   21:ffe4548093a5
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Mar 23 00:46:06 2010 +1300
files:       .hgtags
description:
Added tag hsh-1.-2.1 for changeset a2895f881e23


changeset:   20:a2895f881e23
tag:         hsh-1.-2.1
user:        Alexander Taler <dissent@0--0.org>
date:        Tue Mar 23 00:36:15 2010 +1300
files:       bin/make_pkg.sh
description:
Make the ChangeLog more verbose.


