fixup! Avoid using objc_ptr
Provide utf16::advance with range end

There are several crashes reported from firstRectForCharacterRange: which indicate that the system may ask for indexes “out of range”, hence why we now effectively just cap such request.
fixup! Use Objective-C for…in instead of macro
Command-clicking single caret could lead to crash

Command-clicking an existing caret normally toggles, unless there only is a single caret, in which case it adds a caret. This would thus allow you to add a new caret sharing the position of the existing, and command-clicking again would then remove both the two existing carets, leading to an assertion failure (as there were no carets).

Fixes issue #466.
Cap line number when requesting info from layout

With the new constraint based layout, the gutter can issue line record requests before the layout has been updated to hold the new document buffer.
Recent menu ignores files opened via mate

You can still create an alias for ‘mate’ that calls ‘mate --recent’.

The motivation for this change is that stuff you open via mate is generally SCM commit messages, the cron tab, included files (opened from within TextMate via bundle commands), and other such things. Additionally I think that if you open files via ‘mate’ you would just repeat the line in your shell, though I know not all users feel this way.

Folders opened via mate does go into the recent menu.
Recent menu ignores files created with “New Tab”
Add flag to ignore east asian width
Fix “move selection” for east asian scripts

Since it moves one column left/right and east asian scripts have their glyphs count as two columns, it would effectively move half a column, which in practice would be done by inserting a space.

Fixes issue #469.
Refactoring
Don’t select implicit padding

For example moving the selection often require padding to be inserted, previously this padding would become part of the selection.

This fixes issue #72.
Fix thread related crash

Since the std::map hosting the basic environment was using a (function local) static initializer, it would be destroyed during exit — though there might be threads using the basic environment, and joining these might happen after destroying the basic environment.

This should explain the crash in network::launch_tbz.
Whitelist rather than blacklist inherited variables

Initially the environment was clean but it was found that some variables should be inherited, e.g. SSH_AUTH_SOCK.

Therefor a blacklist was introduced, but it seems futile trying to keep it updated with all the variables that may affect the behavior of commands executed from within TextMate, therefor we now use a whitelist.

Probably the whitelist should be user configurable as launchd uses environment variables to communicate dynamically allocated sockets (like SSH_AUTH_SOCK, but there are also some Apple-prefixed variables pointing to named sockets).

Issue #238.
Add indent aware begin/end of line action methods

The methods going to “begin of indented line” will go to the first non-whitespace character on the line, unless the caret is already there or to the left of this character, in which case it will go to the actual beginning of the line.

The “end of indented line” methods work similarly.

If you want [⇪]⌘⇠/⇢ and ⌘⌫/⌦ to use this behavior, you can add the following to your key bindings file:

	"@\UF702"  = "moveToBeginningOfIndentedLine:";
	"$@\UF702" = "moveToBeginningOfIndentedLineAndModifySelection:";
	"@\UF703"  = "moveToEndOfIndentedLine:";
	"$@\UF703" = "moveToEndOfIndentedLineAndModifySelection:";
	"@\U007F"  = "deleteToBeginningOfIndentedLine:";
	"@\UF728"  = "deleteToEndOfIndentedLine:";
Remove “execute selection” menu items

These actions are available as bundle items.
Local key bindings no longer eclipse the default set
Checkin release notes
Allow enabling ARC per target

The issue is that the precompiled header must also be created with ARC enabled, so now we use different precompiled headers depending on wether or not the file to be compiled has -fobjc-arc enabled.

The way this is done is hardcoded for the ARC options, it might be nice to abstract it so that the PCH dependency had a name derived from the PCH-sensitive compiler options.
ARC: Update OakFoundation framework
Explicit timer invalidation