]> git.cworth.org Git - sup/log
sup
15 years agoMerge branch 'utf8-fixes' into next
William Morgan [Wed, 20 May 2009 01:06:07 +0000 (18:06 -0700)]
Merge branch 'utf8-fixes' into next

15 years agomore display_length changes
William Morgan [Wed, 20 May 2009 01:04:13 +0000 (18:04 -0700)]
more display_length changes

15 years agofix display of utf8 characters so that widths are correct
William Morgan [Wed, 20 May 2009 00:39:23 +0000 (20:39 -0400)]
fix display of utf8 characters so that widths are correct

Based on a patch from Einar Lielmanis <einars@gmail.com>

15 years agomime-encode utf8 addressess and subjects in outgoing mail
William Morgan [Wed, 20 May 2009 00:27:22 +0000 (20:27 -0400)]
mime-encode utf8 addressess and subjects in outgoing mail

Based heavily on a patch from Helge Titlestad <helgedt@tihlde.org>.

15 years agoMerge commit 'origin/sup-sync-improvements'
William Morgan [Tue, 19 May 2009 23:52:52 +0000 (19:52 -0400)]
Merge commit 'origin/sup-sync-improvements'

15 years agoMerge branch 'master' into next
William Morgan [Mon, 18 May 2009 19:14:03 +0000 (15:14 -0400)]
Merge branch 'master' into next

15 years agobugfix: label counts not set correctly on new messages
William Morgan [Mon, 18 May 2009 19:12:25 +0000 (15:12 -0400)]
bugfix: label counts not set correctly on new messages

New labels were being deleted when label-list-mode was brought
up before they were sync'ed to disk. This fixes that, although
this whole thing should be changed. (See comments.)

15 years agoMerge branch 'parser-user-query-fix' into next
William Morgan [Mon, 18 May 2009 18:18:01 +0000 (14:18 -0400)]
Merge branch 'parser-user-query-fix' into next

15 years agoMerge branch 'master' into next
William Morgan [Mon, 18 May 2009 18:17:57 +0000 (14:17 -0400)]
Merge branch 'master' into next

15 years agoadd a --very-verbose option to sup-tweak-labels
William Morgan [Mon, 18 May 2009 18:16:59 +0000 (14:16 -0400)]
add a --very-verbose option to sup-tweak-labels

15 years agomake a Index#run_query method, update sup-tweak-labels
William Morgan [Mon, 18 May 2009 17:25:52 +0000 (13:25 -0400)]
make a Index#run_query method, update sup-tweak-labels

Index#run_query is now a way of running a query through Sup's
query-parsing and execution framework without being in a
curses context.

15 years agomake parse_user_query_string raise exceptions on error
William Morgan [Mon, 18 May 2009 15:34:57 +0000 (11:34 -0400)]
make parse_user_query_string raise exceptions on error

I.e. instead of flashing an error message. This makes it usable from
non-curses contexts, e.g. sup-tweak-labels.

15 years agoMerge branch 'master' into next
William Morgan [Mon, 18 May 2009 15:21:22 +0000 (11:21 -0400)]
Merge branch 'master' into next

15 years agochmod a+x bin/*
Kirill Smelkov [Sat, 16 May 2009 15:01:14 +0000 (19:01 +0400)]
chmod a+x bin/*

The files in there are all executables, and this simplifies running sup
in-tree.

15 years agoChronic context fix
Marcus Williams [Wed, 13 May 2009 09:02:31 +0000 (10:02 +0100)]
Chronic context fix

Chronic should use a context of :past for email date searches as emails
tend to be in the past. This fixes a problem when the wrong year is
guessed. To search for emails in the future you now need to be less
ambiguous (1 apr 2099 instead of 1 apr).

15 years agoMerge commit 'origin/string-split-fixes'
William Morgan [Mon, 18 May 2009 14:32:25 +0000 (07:32 -0700)]
Merge commit 'origin/string-split-fixes'

15 years agoMerge commit 'origin/edit-message-mode-longname'
William Morgan [Mon, 18 May 2009 14:32:13 +0000 (07:32 -0700)]
Merge commit 'origin/edit-message-mode-longname'

15 years agoMerge branch 'better-buffer-list'
William Morgan [Mon, 18 May 2009 14:31:55 +0000 (07:31 -0700)]
Merge branch 'better-buffer-list'

15 years agoMerge commit 'origin/labels-rework'
William Morgan [Mon, 18 May 2009 14:31:37 +0000 (07:31 -0700)]
Merge commit 'origin/labels-rework'

15 years agoMerge branch 'zsh-completion'
William Morgan [Mon, 18 May 2009 14:28:39 +0000 (07:28 -0700)]
Merge branch 'zsh-completion'

15 years agoMerge branch 'dlload-bugfix'
William Morgan [Mon, 18 May 2009 14:28:23 +0000 (07:28 -0700)]
Merge branch 'dlload-bugfix'

15 years agoMerge branch 'undo-manager' into next
William Morgan [Mon, 18 May 2009 14:22:15 +0000 (07:22 -0700)]
Merge branch 'undo-manager' into next

Conflicts:

lib/sup/modes/thread-index-mode.rb

15 years agoMerge branch 'various-mbox-fixes' into next
William Morgan [Mon, 18 May 2009 14:10:27 +0000 (07:10 -0700)]
Merge branch 'various-mbox-fixes' into next

Conflicts:

lib/sup/mbox.rb
test/test_mbox_parsing.rb

15 years agoMerge branch 'master' into next
William Morgan [Sun, 17 May 2009 20:22:37 +0000 (13:22 -0700)]
Merge branch 'master' into next

15 years agoclean up undo logic
William Morgan [Sun, 17 May 2009 20:19:36 +0000 (13:19 -0700)]
clean up undo logic

Various changes:
- Use UndoManager#register block form where possible
- Clean up pluralization code
- Clean up undo return values
- Minor logic fixes

Still some work to do here to make undo lambda returning
more consistent.

15 years agomake UndoManager#register take a block
William Morgan [Sun, 17 May 2009 20:18:25 +0000 (13:18 -0700)]
make UndoManager#register take a block

Also clean up logging messages, argument handling, etc.

15 years agominor bugfix: rubymail sometimes returns a nil content_type
William Morgan [Sun, 17 May 2009 19:31:36 +0000 (12:31 -0700)]
minor bugfix: rubymail sometimes returns a nil content_type

15 years agocheck for a correct date on mbox From lines
William Morgan [Sun, 17 May 2009 18:37:43 +0000 (11:37 -0700)]
check for a correct date on mbox From lines

Determine a splitting line by looking for a From, a something else,
and a parseable date.

15 years agomake the default MBox start offset be 0, not nil
William Morgan [Sun, 17 May 2009 18:36:52 +0000 (11:36 -0700)]
make the default MBox start offset be 0, not nil

This makes writing unit tests easier.

15 years agomake MBox::Loader#next return nil once EOF is hit
William Morgan [Sun, 17 May 2009 18:36:06 +0000 (11:36 -0700)]
make MBox::Loader#next return nil once EOF is hit

Previously it was raising a debugging exception. This is a better
interface for writing unit tests against.

15 years agoMerge branch 'string-split-fixes' into next
William Morgan [Wed, 13 May 2009 20:53:47 +0000 (13:53 -0700)]
Merge branch 'string-split-fixes' into next

Conflicts:
lib/sup/index.rb

15 years agoMerge branch 'master' into next
William Morgan [Wed, 13 May 2009 20:53:00 +0000 (13:53 -0700)]
Merge branch 'master' into next

15 years agobugfix: further fixing of split usage
William Morgan [Wed, 13 May 2009 20:08:51 +0000 (13:08 -0700)]
bugfix: further fixing of split usage

Clean up a couple remaining non-optimal uses of String#split.

15 years agobugfix: index label parsing code incorrect
William Morgan [Wed, 13 May 2009 20:07:14 +0000 (13:07 -0700)]
bugfix: index label parsing code incorrect

Apparently split(/\s+/) is significantly different from split (which is
equivalent to split(" ")) in at least one case:

>> " a b  c   ".split(/\s+/)
=> ["", "a", "b", "c"]
>> " a b  c   ".split
=> ["a", "b", "c"]

This patch refactors the majority of uses of split(/\s+/) to a String#symbolize
method, which is correct.

15 years agominor: remove ucfirst (use capitalize instead)
William Morgan [Wed, 13 May 2009 19:47:50 +0000 (12:47 -0700)]
minor: remove ucfirst (use capitalize instead)

15 years agoMerge branch 'better-buffer-list' into next
William Morgan [Mon, 4 May 2009 14:46:30 +0000 (07:46 -0700)]
Merge branch 'better-buffer-list' into next

15 years agoKeymap: improve behaviour of apply to tagged in thread index
Ben Walton [Mon, 4 May 2009 14:44:11 +0000 (10:44 -0400)]
Keymap: improve behaviour of apply to tagged in thread index

Make = a synonym for + in the thread index mode so that shift isn't
required to apply an action to all tagged messages.

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
15 years agoMerge branch 'sup-sync-improvements' into next
William Morgan [Mon, 4 May 2009 12:48:17 +0000 (05:48 -0700)]
Merge branch 'sup-sync-improvements' into next

Conflicts:

bin/sup-sync

15 years agoMerge branch 'dlload-bugfix' into next
William Morgan [Mon, 4 May 2009 12:45:27 +0000 (05:45 -0700)]
Merge branch 'dlload-bugfix' into next

15 years agobugfix: typo
William Morgan [Mon, 4 May 2009 12:43:24 +0000 (05:43 -0700)]
bugfix: typo

15 years agoMerge branch 'master' into next
William Morgan [Mon, 4 May 2009 12:41:43 +0000 (05:41 -0700)]
Merge branch 'master' into next

15 years agobugfix: poll.rb assuming all messages have froms
William Morgan [Mon, 4 May 2009 12:37:04 +0000 (05:37 -0700)]
bugfix: poll.rb assuming all messages have froms

This was throwing an exception, so now it's protected. The from is only
necessary for the after-poll hook.

15 years agoimprove sup-sync output
William Morgan [Mon, 4 May 2009 12:32:06 +0000 (05:32 -0700)]
improve sup-sync output

Report every 15 seconds, and show the sender for added messages.

15 years agomake sup-sync's --start-at actually useful
William Morgan [Mon, 4 May 2009 12:29:54 +0000 (05:29 -0700)]
make sup-sync's --start-at actually useful

Using --start-at with sup-sync will now seek forward to the next valid message
if given an offset that's not on a message boundary. This makes it possible to
use that option without going through the laborious process of finding the
exact message boundary.

Also die unless --start-at is used with only one source, since using it across
multiple sources is almost definitely an error. (And if that's really what you
want, you can just call sup-sync multiple times.)

15 years agoMerge branch 'various-mbox-fixes' into next
William Morgan [Wed, 29 Apr 2009 17:53:19 +0000 (13:53 -0400)]
Merge branch 'various-mbox-fixes' into next

Conflicts:

lib/sup/mbox.rb

15 years agodon't require has_errors? in Source objects
William Morgan [Wed, 29 Apr 2009 17:48:18 +0000 (13:48 -0400)]
don't require has_errors? in Source objects

Properly speaking that's a function of a Recoverable object, not of a
source, so only call that method when it's availably.

15 years agomake raw_message faster with string += => <<
William Morgan [Wed, 29 Apr 2009 17:47:24 +0000 (13:47 -0400)]
make raw_message faster with string += => <<

this method ain't used that much, but << is significantly
faster than += for Strings.

15 years agofix mbox splitting regexp
William Morgan [Tue, 28 Apr 2009 13:34:27 +0000 (09:34 -0400)]
fix mbox splitting regexp

I dunno. This helps with the "From problem", but at the expense of being
too specific than the mbox spec really demands. I don't think there's a
really right solution, in general (due to the mbox format being a
fundamentally broken one), but I'm hoping this will work with all modern
mbox files.

15 years agoMerge branch 'scanning-speedups' into next
William Morgan [Mon, 27 Apr 2009 00:03:41 +0000 (20:03 -0400)]
Merge branch 'scanning-speedups' into next

15 years agoaaaand fix up NON_EDITABLE_HEADERS
William Morgan [Mon, 27 Apr 2009 00:03:12 +0000 (20:03 -0400)]
aaaand fix up NON_EDITABLE_HEADERS

Since the case has changes but we're doing caseful
comparisons. Sigh.

15 years agoMerge branch 'scanning-speedups' into next
William Morgan [Sun, 26 Apr 2009 23:59:20 +0000 (19:59 -0400)]
Merge branch 'scanning-speedups' into next

15 years agobugfix: edit-message-mode headers broken by case changes
William Morgan [Sun, 26 Apr 2009 23:58:11 +0000 (19:58 -0400)]
bugfix: edit-message-mode headers broken by case changes

This is a lousy hack, but: capitalize header names when
they come back from Source.parse_raw_email_header, and everything
should work as before.

15 years agoMerge branch 'scanning-speedups' into next
William Morgan [Sun, 26 Apr 2009 22:22:50 +0000 (18:22 -0400)]
Merge branch 'scanning-speedups' into next

15 years agoMerge branch 'master' into next
William Morgan [Sun, 26 Apr 2009 22:22:46 +0000 (18:22 -0400)]
Merge branch 'master' into next

15 years agodon't automatically parse header on Message#new
William Morgan [Sun, 26 Apr 2009 22:18:26 +0000 (18:18 -0400)]
don't automatically parse header on Message#new

You must now explicitly call #parse_header (e.g. when loading
from the index) or #load_from_source! (e.g. when loading from
disk).

This prevents redundant loading from the source when adding to the
index, as #snippet must be called before adding, and that requires
loading the entire message from the source.

15 years agomake Index#sync_message take an extra speedy arg
William Morgan [Sun, 26 Apr 2009 22:16:48 +0000 (18:16 -0400)]
make Index#sync_message take an extra speedy arg

Previously it would check the index if docid and entry were nil,
even though nil is a valid result of a previous check. Add an
extra argument controlling whether this check is performed again.

Results in a minor speedup.

15 years agodisable extra (slow) sanity check in Index adding
William Morgan [Sun, 26 Apr 2009 22:15:01 +0000 (18:15 -0400)]
disable extra (slow) sanity check in Index adding

15 years agobetter sup-sync output
William Morgan [Sun, 26 Apr 2009 16:11:54 +0000 (12:11 -0400)]
better sup-sync output

15 years agomove MBox.parse_header -> Source.parse_raw_email_header
William Morgan [Sun, 26 Apr 2009 16:10:56 +0000 (12:10 -0400)]
move MBox.parse_header -> Source.parse_raw_email_header

15 years agodisable logging of email header cleanups
William Morgan [Sun, 26 Apr 2009 15:46:37 +0000 (11:46 -0400)]
disable logging of email header cleanups

I'm now pretty certain this logic is correct, and seeing these
messages was causing people some unnecessary grief. Commented
out for now.

15 years agochange email header parsing. MASSIVE SPEEDUP!
William Morgan [Sun, 26 Apr 2009 15:44:37 +0000 (11:44 -0400)]
change email header parsing. MASSIVE SPEEDUP!

restructure the email header parsing code to improve speed and to
improve API. MBox::read_header now returns a hash containing all
headers, with keys downcased but nothing else.

update Message#parse_header to accept this new format.

update unit tests to reflect new format.

The exciting news is that changes in how the parsing works have resulted
in a 480% speedup in message parsing speed (634 message/s vs 132
messages/s on my machine), across ALL source types. hell yes.

15 years agoreplace += with << in mbox reading
William Morgan [Sun, 26 Apr 2009 14:48:36 +0000 (10:48 -0400)]
replace += with << in mbox reading

there's a tremendous speed difference between these two operators,
though neither of these points are bottlenecks.

15 years agoremove vestigal mbox#read_body method
William Morgan [Sun, 26 Apr 2009 14:32:22 +0000 (10:32 -0400)]
remove vestigal mbox#read_body method

15 years agomake sup-files.rb print out all files when executed
William Morgan [Sun, 26 Apr 2009 14:28:16 +0000 (10:28 -0400)]
make sup-files.rb print out all files when executed

This makes it easy to do something like:
  vi `ruby ./sup-files.rb`
to edit all files.

15 years agoMerge branch 'edit-message-mode-longname' into next
William Morgan [Thu, 23 Apr 2009 13:18:16 +0000 (09:18 -0400)]
Merge branch 'edit-message-mode-longname' into next

15 years agoMerge branch 'master' into next
William Morgan [Thu, 23 Apr 2009 12:42:26 +0000 (08:42 -0400)]
Merge branch 'master' into next

15 years agoimprove mime-view and mime-decode hook documentation
William Morgan [Thu, 23 Apr 2009 12:41:19 +0000 (08:41 -0400)]
improve mime-view and mime-decode hook documentation

15 years agoChanged cc and bcc field editing to use Person.full_address instead of Person.longnam...
Stefan Lundström [Thu, 23 Apr 2009 12:02:13 +0000 (14:02 +0200)]
Changed cc and bcc field editing to use Person.full_address instead of Person.longname which includes the quotations of the name if needed.

15 years agoMerge branch 'master' into next
William Morgan [Mon, 13 Apr 2009 14:54:02 +0000 (07:54 -0700)]
Merge branch 'master' into next

15 years agotrivial: display attachment sizes
William Morgan [Mon, 13 Apr 2009 14:53:35 +0000 (07:53 -0700)]
trivial: display attachment sizes

15 years agoMerge branch 'dlload-bugfix' into next
William Morgan [Thu, 9 Apr 2009 19:29:19 +0000 (15:29 -0400)]
Merge branch 'dlload-bugfix' into next

15 years agoMerge branch 'better-buffer-list' into next
William Morgan [Thu, 9 Apr 2009 19:28:43 +0000 (15:28 -0400)]
Merge branch 'better-buffer-list' into next

15 years agoupdate NewUserGuide.txt with new keymappings
William Morgan [Thu, 9 Apr 2009 19:28:26 +0000 (15:28 -0400)]
update NewUserGuide.txt with new keymappings

15 years agoadd libc message for BSD users
William Morgan [Thu, 9 Apr 2009 19:26:28 +0000 (15:26 -0400)]
add libc message for BSD users

15 years agoimprove dlload of setlocale() and include cygwin
William Morgan [Thu, 9 Apr 2009 19:23:55 +0000 (15:23 -0400)]
improve dlload of setlocale() and include cygwin

Now we catch errors instead of dying completely, and also add
the correct path for cygwin.

15 years agoMerge branches 'dont-canonicalize-email-addresses', 'multi-remove-labels', 'merge...
William Morgan [Thu, 9 Apr 2009 17:35:50 +0000 (10:35 -0700)]
Merge branches 'dont-canonicalize-email-addresses', 'multi-remove-labels', 'merge-labels', 'background-save' and 'encoding-misspellings'

15 years agoMerge branch 'better-buffer-list' into next
William Morgan [Thu, 9 Apr 2009 17:22:55 +0000 (13:22 -0400)]
Merge branch 'better-buffer-list' into next

15 years agoRevert "Buffer switching, 'bn' for the next one and 'bp' for the previous"
William Morgan [Thu, 9 Apr 2009 17:22:42 +0000 (13:22 -0400)]
Revert "Buffer switching, 'bn' for the next one and 'bp' for the previous"

This reverts commit 6dfbd42fbc9ba9cb89f7fd9f1fb71e259a7032ca.

15 years agokeybindings: ; -> buffer-list-mode, b, B, +
William Morgan [Thu, 9 Apr 2009 17:17:34 +0000 (13:17 -0400)]
keybindings: ; -> buffer-list-mode, b, B, +

';' is mapped to buffer-list-mode. I really like this, because
then ;, j, k and enter are all you need to quickly swap between buffers.

Apply-to-tagged is now '+', from ';'. Sorry. But this also leaves
room for ':' as a future buffer-chooser device, e.g. by name, with tab
completion.

'B' is reenabled to mean swap-buffer-backwards.

15 years agoimprove buffer-list-mode to sort by atime and more
William Morgan [Thu, 9 Apr 2009 17:11:15 +0000 (13:11 -0400)]
improve buffer-list-mode to sort by atime and more

Sort buffers by atime, color by whether they're system buffers
or not, and show a '*' for buffers with unsaved content.

15 years agoadd unsaved? attribute to modes
William Morgan [Thu, 9 Apr 2009 17:10:48 +0000 (13:10 -0400)]
add unsaved? attribute to modes

This will be used for displaying a little '*' in buffer-list-mode.

15 years agoadd system and atime attributes to buffers
William Morgan [Thu, 9 Apr 2009 17:06:36 +0000 (13:06 -0400)]
add system and atime attributes to buffers

15 years agoMerge branch 'master' into next
William Morgan [Sun, 29 Mar 2009 16:38:21 +0000 (09:38 -0700)]
Merge branch 'master' into next

15 years agoMerge branch 'dont-canonicalize-email-addresses' into next
William Morgan [Sun, 29 Mar 2009 16:38:19 +0000 (09:38 -0700)]
Merge branch 'dont-canonicalize-email-addresses' into next

15 years agobugfix: catch invalid regular expressions in tag-matching
William Morgan [Sun, 29 Mar 2009 16:36:54 +0000 (09:36 -0700)]
bugfix: catch invalid regular expressions in tag-matching

15 years agoMerge branch 'labels-rework' into next
William Morgan [Sun, 29 Mar 2009 16:25:40 +0000 (12:25 -0400)]
Merge branch 'labels-rework' into next

15 years agoResync listable_labels and applyable_labels with reality
Nicolas Pouillard [Mon, 16 Mar 2009 18:40:09 +0000 (19:40 +0100)]
Resync listable_labels and applyable_labels with reality

The listable_labels method listed all labels except unread
which seems an unneeded complication/restriction, so it's
renamed to all_labels. The applyable_labels was in fact
user-defined labels so it's renamed to user_defined_labels.

15 years agoMerge branch 'default-colors'
William Morgan [Sun, 29 Mar 2009 15:42:32 +0000 (11:42 -0400)]
Merge branch 'default-colors'

15 years agobugfix bugfix: preserve recipient_email email address
William Morgan [Fri, 27 Mar 2009 12:37:44 +0000 (05:37 -0700)]
bugfix bugfix: preserve recipient_email email address

When responding to an email with a recipient_email field (i.e. an Envelope-To
header), look up the name in the account list, but keep the original email
address.

15 years agoMerge branch 'dont-canonicalize-email-addresses' into next
William Morgan [Thu, 26 Mar 2009 19:41:23 +0000 (12:41 -0700)]
Merge branch 'dont-canonicalize-email-addresses' into next

15 years agobugfix: reply from addresses drop the names
William Morgan [Thu, 26 Mar 2009 19:39:46 +0000 (12:39 -0700)]
bugfix: reply from addresses drop the names

In the new world of no Person canonicalization, we instead need to go
through Account (which does map the name) when we use #recipient_email.

Various comment improvements as well.

15 years agoupdate webpage to reference blog and fix 0.7 release date
William Morgan [Wed, 25 Mar 2009 17:07:12 +0000 (10:07 -0700)]
update webpage to reference blog and fix 0.7 release date

15 years agoMerge branch 'dont-canonicalize-email-addresses' into next
William Morgan [Wed, 25 Mar 2009 15:52:16 +0000 (08:52 -0700)]
Merge branch 'dont-canonicalize-email-addresses' into next

15 years agooverwrite from and to fields in index when saving a message
William Morgan [Wed, 25 Mar 2009 15:49:56 +0000 (08:49 -0700)]
overwrite from and to fields in index when saving a message

See comments in the code. This allows you to forcibly update the from/to
address stored in the index for messages, which means you can correct
the bad stuff stored in there due to previous versions of Sup that
canonicalized email addresses.

15 years agoproperly parse email addresses store in index
William Morgan [Wed, 25 Mar 2009 15:49:22 +0000 (08:49 -0700)]
properly parse email addresses store in index

See comments in code. Email addresses are stored in the index in a bizarre
format, but we can re-parse them.

15 years agoremove references to PersonManager in tests
William Morgan [Wed, 25 Mar 2009 15:06:32 +0000 (08:06 -0700)]
remove references to PersonManager in tests

15 years agoRemove the now useless PersonManager
Nicolas Pouillard [Mon, 16 Mar 2009 18:38:17 +0000 (19:38 +0100)]
Remove the now useless PersonManager

Replace PersonManager.person_for by Person.from_address
and PersonManager.people_for by Person.from_address_list

15 years agoClose the "remove email->name mapping" issue
Nicolas Pouillard [Mon, 16 Mar 2009 18:38:02 +0000 (19:38 +0100)]
Close the "remove email->name mapping" issue

15 years agoRemove the people.txt mapping.
Nicolas Pouillard [Mon, 16 Mar 2009 18:37:38 +0000 (19:37 +0100)]
Remove the people.txt mapping.

15 years agoMerge branch 'undo-manager' into next
William Morgan [Wed, 25 Mar 2009 14:44:12 +0000 (07:44 -0700)]
Merge branch 'undo-manager' into next