Monday, 16 September 2002
Jaguar's Terminal app offers significant improvements in user interface, capability and stability. I'm glad the emulation is now reasonably robust, and the source code has been mostly rewritten.
Some new features and fixes: Terminal now responds to telnet and ssh URLs. The bizarre way settings were replicated inconsistently between the inspector and Preferences window is resolved. It lets you split the window between active text and scrollbacksomething that I'd suggested years ago, and Chris eventually implemented in some early versions of the now-moribund next-generation MacIRC. (Actually, the MacIRC implementation was quite a bit more elegant, but I'm not complaining.) You can now drag text out of as well as into Terminal, though the drag feedback is horrendous. The extent of text selection on a dark background is no longer invisible. The I-beam still becomes close to invisible, howeverCocoa cursors fail to invert when they'd otherwise be hidden, no matter what you do to their masks. Carbon cursors continue to properly invert the same way they always did, so it's no OS X bug.
Terminal is still incredibly slow performing certain operations. Screen drawing during scrolling doesn't even remotely keep up with mouse or scroll-wheel movement on a G4, where rxvt in XDarwin and GLterm have no trouble. Selecting text which spans the split bar is horrendously laggy. Performance improvements should be forthcomingand Apple should really put more engineering effort into Terminal given its wide use among Unix converts used to xterm, rxvt, and friends.
For months I've had code floating around to support Command-click URL launching in 10.1's Terminal, but I haven't distributed it to more than a few people because it's crash-prone in certain situations. An ICeCoffEE user sent me an email last week pointing out another new Jaguar Terminal feature, undocumented as best I can tell: Terminal lets you launch URLs with a command-double-click. This is useful, but it does a bad job: it doesn't properly strip delimiters such as trailing periods or enclosing parentheses, it doesn't handle email addresses or “slack” URLs such as www.domain.com, and responds to a nonstandard shortcut that happily leaves room for me to have ICeCoffEE intervene on a Command-click.
The rewritten Terminal is an opportunity for me to pick up where I left off on ICeCoffEE. I took a break from research tonight and did some poking around with F-Script Anywhere. It looks like I'll be able to access the contents of Jaguar Terminal windows easily (and without sporadically crashing, hopefully!) The TermStorage class has about every conceivable accessor I can think ofmuch better than the weird and flaky manipulation I needed to do to extract the contents of the buffer in older versions.