Use regular font for key equivalent control

Previously we used the fixed width font, not really sure why.
Checkin release notes
Process working directory not always setup

This is a fairly subtle bug: We were implicitly creating a temporary std::string object and requesting c_str from this object.

This C string’s lifetime was that of the temporary std::string, and as we did a lot of std::string creation in the following line, with the new libc++, there was a good chance that the temporary string buffer would be re-used and so, our working directory would be set to a bogus value.

This closes issue #329.
Incorporated scalable icons.
Revert "Don’t refresh gutter from OakTextView"

Turns out this is required in the situation where the document occupy less space than the visible document rect.

In this case, inserting new lines will not resize the text view, since it has been artificially enlarged to fit the visible document rect, therefore the gutter view will not update properly when inserting new lines.

I think there is a better solution than have the text view refresh the gutter, reverting is just meant as a quick fix.

This reverts commit 4e2ae3c50879b44568b4d7a6371ae604290856e0.
fixup! Incorporated scalable icons.
Use std::tuple instead of boost::tuple
Remove unused boost headers
Make svn status parser more robust

I assume issue #340 is because of unexpected output from svn which would cause problems for the parser.
Coerce keyFileCustomPath to UTF-8

The text encoding (or even field type) can be practically anything, so we need to either handle everything or coerce to UTF-8.

This is a quick fix for an issue with QuickCursor, a more thorough review of encoding used with AppleEvents is to follow.
fixup! Incorporated scalable icons.

Implemented proper alignment of the icons with the line number font.
Added the ellipsis icon for folded text.
Lower the minimum value for the tab size slider to 1.
Fix running mate via sudo

Since we now use the (numeric) user ID as part of TextMate’s named socket (to allow multiple users on the same system to each run an instance of TextMate), mate needs to know this.

Running ‘mate’ via ‘sudo’ has getuid() return zero (root), hence why we need to specifically handle this.
Remove debug output
Keep (installed) auth server up-to-date

The recent move to 64 bit broke the (binary) protocol used between TextMate and the server for authenticated reads/writes (since size_t is now 64 bit).

This fixes issue #354.
Checkin release notes
If path no longer have SCM info, include it in change set

This allows the SCM drivers to not report status for non-modified versioned files.

The problem was previously that if a driver didn’t report status for such files, having a file go from modified → clean wouldn’t always cause a refresh, since no change notification was generated for the path.

For the svn driver there is a 50% overhead by svn itself in reporting status for files without status, this overhead is likely magnified by the following XML step (where XML for all files in the working copy needs to be parsed).
Disable main menu’s key equivalent handling

This is done by overloading performKeyEquivalent: for the main menu (by setting it to OakMainMenu in MainMenu.xib).

The default implementation of performKeyEquivalent: does not know about scope selectors so it will sometimes call the wrong actions. For example a bundle overloading ⌘X for “-dyn.selection” may still see the item fire with a selection.

This wasn’t a problem previously, as we set the key equivalents via (deprecated) Carbon API (so presumably Cocoa didn’t know about the keys).

This is a preliminary implementation, I just want it out there to have it tested for edge-cases. Long-term we can probably remove the overload of performKeyEquivalent: on OakTextView, which sort of does similar (stops Cocoa from executing the wrong menu actions or interfering with multi-stroke key bindings).
Add svn status xslt to scm target

This is presently not used, it’s skeleton code for @whitlockjc.