BBEdit 9.5 Release Notes
This page documents all feature enhancements and bug fixes included in the BBEdit 9.5 update.
For details on all the new features and enhancements offered since BBEdit 9.0, please see its release notes.
For information on changes made in previous versions, please see the release notes archive.
For detailed information on using any of BBEdit's features, please refer to the user manual (choose "User Manual" from BBEdit's Help menu).
BBEdit 9.5 requires Mac OS X 10.5 or later (10.5.8 or later recommended).
This version is a Universal application: it runs natively on both Intel-based and PowerPC-based Macs.
The Quick Search window is gone, and has been replaced by an in-window Live Search bar. Choosing the "Live Search" menu command on the Search menu will open this bar.
As you type in the search field, matches for the string get highlighted in the window's editing view. The search is always literal and case-insensitive. The "previous" and "next" arrows to the left of the field are useful for navigation; you can also type Return or Shift-Return in the search field to go forward or backward.
The Emacs key bindings ctl-S and ctl-R will open the live search bar if necessary; if the search bar is already open, ctl-S will search forward, ctl-R will search backward (assuming that something is entered in the search field; and also that the Emacs keybinding support is turned on in the preferences).
BBEdit now offers enhanced script attachability. In addition to attaching AppleScripts to menu commands (which BBEdit has supported for a long time), you can now attach AppleScripts to certain application and document events.
The attachment points (corresponding to the function names in your attachment scripts) are listed below. Except as noted, all of them share the following characteristics:
Every function takes a single argument, which is a reference to the object in question: the application for application entry points, or the document being opened/closed/saved/etc for document entry points.
Any attachment point whose name contains
expected to return a Boolean result:
true, the operation will continue. If it
false or throws an error (see below) then the
operation will be cancelled. So, for example,
true will allow the
application to quit; returning
false will not.
If an attachment script causes a scripting error and does
not handle it within the script itself, BBEdit will report
the error. In the case of functions which are used to allow
should action, this will prevent the action from
||called when the application has completed startup|
||called when the user has chosen "Quit" (or the application
receives a .
||called when the application has finished shutting down and is about to exit|
||called when the user has chosen "Sleep BBEdit" from the application menu|
||called when the application has completed restoring the sleep state saved by a previous "Sleep" command. Note: if the application restores a sleep state, it will not call
||called when a document has been opened and is ready for use. Note that BBEdit supports multiple types of documents, and so you should be prepared for the argument to be a document of any type.|
||called when the application is preparing to close a document.|
||called when the application has closed a document.|
||called when the application is trying to determine whether a given document should be saved.|
||called when the application is about to begin saving a document. note that this will only be called after a successful return from a
||called after a document has been saved successfully.|
||called when BBEdit is going to make a document writeable (as when the pencil is clicked to unlock)|
||called when BBEdit has successfully made a document writeable|
||called when BBEdit is going to make a document read-only|
||called when BBEdit has successfully made a document read-only|
There's a new folder in the BBEdit application support folder, "Attachment Scripts", which contains the script(s) to implement your custom event handlers. You can write one script to handle each attachment point, or you can write one script to handle the attachment points for an entire class of objects, or you can write one script to handle all of the attachment points for the entire application.
It's also possible to mix and match to specialize: for example, one script to implement a particular attachment point for documents, and one to handle the rest of them.
BBEdit handles the association of scripts to attachment points by means of the script's file name. There are three ways to specify a script's role:
The first form is the most specific: the
ObjectClass may be one
of the following:
entryPoint is one of the attachment points described above
appropriate to the object class. So, for example, a script which
implemented only the documentDidSave attachment point would have
the file name
Document.documentDidSave.scpt and contain a subroutine
on documentDidSave -- do something useful and appropriate end documentDidSave
Note that the file name suffix
.scpt is not mandatory, but you
should follow the current OS conventions as suggested when
saving the script in the Apple script editor (or another script
editor, such as the excellent Script
The second form allows you to implement all of the attachment
points for a single object class in a single script file, if
desired. So, for the application (for example), create a script
Application.scpt, and it can contain subroutines for as
many of the attachment points as you wish:
on applicationDidFinishLaunching -- do something relevant end applicationDidFinishLaunching on applicationDidWakeFromSleep -- do something useful end applicationDidWakeFromSleep on applicationShouldQuit -- hello world return (current date as string contains "day") end applicationShouldQuit
To implement all of the attachment points for the Document class, you'd
create a script named
Document.scpt, and put subroutines in it for the
document attachment points:
on documentDidSave ... end documentDidSave on documentWillClose ... end documentWillClose
Finally, you can write one all-encompassing script which
contains subroutines for all of the attachment points in the
application. To do this, name the script
BBEdit.scpt and put
whatever subroutines in it you wish to implement:
on applicationShouldQuit -- hello world return (current date as string contains "day") end applicationShouldQuit on documentWillClose ... end documentWillClose
When figuring out which script to run, BBEdit will first look
for a script whose name exactly matches the attachment point,
Document.documentShouldSave.scpt. If it is not found,
BBEdit will then look for a script whose name matches the object
class at the attachment point; e.g.
Document.scpt. Finally, if
neither an exact or a class match is found, BBEdit will look for
an application-wide script:
Note that you do not have to implement attachment subroutines for all attachment points, or for all classes -- only the ones you need. If there is no attachment script or subroutine, BBEdit proceeds normally.
Compiled language modules may specify a new plist key:
BBLMCompletionTagsFileNames. This is an array of strings, each
one corresponding to the name of a file in the language module's
Resources directory. Each file (if present) is expected to be a
valid tags file, and is used when generating completions.
Made the regex for detecting python
#! lines more precise.
Added support for swipe to navigate between documents to MDI windows and the documents drawer.
Services clean-up for Snow Leopard:
Renamed certain services to provide better context in the services menu, contextual menu, and configuration interface on Snow Leopard.
NSRequiredContext in the service specification so that a)
services are enabled by default and b) non-file path text selections are
excluded from the open file service.
#bbpragma now supports an encoding attribute to specify an
encoding hint to the syntax checker for document fragments. For
<!-- #bbpragma doctype="-//W3C//DTD XHTML 1.0 Transitional//EN" root_element="body" encoding="utf-8" -->
a new field is supported in tags files:
In the parentheses are three possible constructions: "
indicates that no arguments are optional; "
*" indicates that all
arguments are optional; otherwise, the parentheses contain an
ordered positional list of optional arguments. For example,
optional_args(2, 3) indicates that the second and third
arguments are optional.
optional_args field is present, BBEdit will alter the
construction of the argument placeholders when generating the
function signature for text completion, so that it's easier to
delete the optional arguments that you want to use.
If a file lives in a location "claimed" by multiple source control
configurations (a Subversion checkout below a
P4CONFIG file, for
example) enable menu items for all claimed SCM styles, and let the
user choose commands from the correct one.
When you drop a tarball (a ".tar" file) on BBEdit, or double-click on such a file in a disk browser, BBEdit will now browse into the tarball instead of opening its raw contents in an editing window.
If for some reason you prefer the old behavior:
defaults write com.barebones.bbedit Misc:OpenDiskBrowserForTarballs -bool NO
There's a new placeholder format:
<#* ... #>. This
is used for optional arguments generated during completion. It
can be selected in the usual fashion; and if you delete a
selected optional-argument placeholder with the Backspace key,
BBEdit will delete any leading whitespace, back to a preceding
comma (if there is one).
window scripting object class now has a property: "
live search bar
visible", which indicates whether the Live Search bar is
currently displayed in that window.
BBEdit can now browse Zip archives (in the format created by
the Finder's "Compress", or by using
ditto -k from the command
line). Drop a Zip archive on BBEdit to see it in action.
There's a new command on the View menu: "Reveal in Project List". When one or more projects are open, this command will locate the front project which contains the active document, and reveal the document's file in the project's file list.
The default behavior of the HTML updater has changed when
#! scripts. By default,
STDERR is no longer
inserted to the document unless the script exits with a
non-zero exit code.
To restore the previous behavior
defaults write com.barebones.bbedit HTMLUpdater:AlwaysIncludeSTDERR -bool YES
Added support for enums to the Java language module. Enums now receive auto-fold points and are enumerated in the function popup.
BBEdit now uses the ctags files in
Support/BBEdit/Completion Data/ for more than just completion:
"Find Definition" (and the contextual menu) will now include
definitions specified on those tags files (which is handy if you've
built a tags file from a Mac OS X or iPhone SDK); and symbols
defined in the central tags files will also appear in an appropriate
When you first save a file which begins with a shebang line, BBEdit
will now make that file executable (
a+x, as modified by the umask).
Completion data dictionaries generated by language modules can now
contain an additional key:
AutoIndentCompletionText. It's optional,
but if present signals the completion system that the completion
text, if multi-line, should be auto-indented according to where the
completion is inserted.
The "search here" command (third on the Search menu, after "Multi-File Search") is now enabled when a text document is active and exists on disk.
Edit -> Insert gets a new command: "Emacs Variable Block". This brings up a sheet for confirming the insertion of Emacs variables describing the option settings for the current document. (Using all of the options can result in a pretty verbose result; so you may find it useful to prune the resulting text as desired.) These variables are honored and have precedence over saved document state when BBEdit opens the document. (Inserting the explicit settings can be useful when sharing the document with others.)
BBEdit now remembers preview window positions on a per-document basis, keyed by the document's location (which also works for documents opened via the built-in FTP/SFTP interface) and screen layout. If there is no stored position, BBEdit will use the default location as saved by the "Save Default Window" command; failing that, it will arrange the window on the same display as the parent document window.
The ponies' saronite shoes have been reinforced with titanium, and have a buff applied which increases both ground and flight speed by 30%.
BBEdit can now generate completions for include file names in
C/C++/ObjC/ObjC++ source files. (This applies when typing in an
#import directive.) The data is sourced from the active
Xcode project, system headers and frameworks, and the directory
containing the source file in which you're completing.
@property declarations now appear in the function
Results lists get a contextual menu. Typically, "Copy" is the only item available; but if any of the selected files are in a Subversion working copy, the menu will contain some useful Subversion commands for those files.
The contextual menu in project lists now contains Subversion commands for appropriate items, and commands on the Subversion menu are enabled appropriately when the project list is the target of user events.
Project windows and disk browsers get a new menu button at the bottom of the file list. This button shows the Subversion icon, and contains some Subversion commands which may be usefully applied to selected items in the list.
The visibility of this button is linked to the top-level Subversion command menu; so if you want to hide all things Subversion-related, go to the Menus preferences and turn the Subversion menu off. (Changes here will take effect the next time you make a new project window or disk browser.)
The contextual menu in project lists now contains Subversion commands for appropriate items, and commands on the Subversion menu are enabled appropriately when the project list is the target of user events.
When setting up
~/Library/Application Support/BBEdit/ for the
first time, the folder skeleton contains a "
Read Me.txt" file at
the top level, with helpful information and pointers.
The internal format of saved document state has been reworked, as well as the behaviors for saving and loading it. The most important visible changes are as follows:
When saving state, BBEdit captures only those settings which are fundamental to the document (window position, selection range, folds, splitter setting), or settings which vary from the global preferences. The latter ensures that changes to the global preferences are never inappropriately overridden by document state.
So, for example, if the default document font is Consolas when you save the document, and the document uses that font, but you change the global preference to Menlo before the next time you open that same document, the document's font will be set to Menlo. (Note that this behavior applies to any document setting which takes its default from the prefs; the font is used only to illustrate.)
This change should resolve lots of confusion surrounding the question of "I changed my prefs, how come my document settings don't reflect that?"
The internal data format of the state has changed to accommodate this new behavior. Documents with existing saved state will exhibit the old behavior when they are opened; this is not a bug. BBEdit will write out the new state format the next time you save the document.
Note that the new format is not backward-compatible; so if you open the document with an older version of BBEdit, the new format state will be ignored.
xattr -l /path/to/some/file.
The following UI changes have been made to text encoding selection:
Unicode (UTF-8, no BOM)" has been renamed to "
Unicode (UTF-8)" has been renamed to "
Unicode (UTF-8, with BOM)".
The text encodings menu (as used in the status bar,
preferences, and other locations) has been rearranged so that
the most commonly used Unicode variants (
UTF-16-BE+BOM) are at the top of the menu, with a separator
between them and the rest.
A fresh install of BBEdit will no longer populate the
Application Support/BBEdit folder; instead it will simply create
empty placeholder folders so that you know where stuff goes.
The "Open Hidden" command has been removed from the File menu, since the "Show Hidden Items" check box is available on all supported systems now (and it works).
When saving a document to a mounted file system (not FTP/SFTP), the application now does a "safe save" so that the existing data on disk is not replaced until the new document data has successfully been written.
"Replace All" text factory operations no longer generate a results entry so a results window should no longer appear at the end of a factory run containing Replace All actions, unless errors occurred.
Reworded scary confirmation text when deleting items from the Multi-File Search sources list.
Support for synchronizing the BBEdit application support folder via MobileMe has been removed. If you wish to sync this folder across multiple computers, we recommend the use of DropBox or something like it.
The GUI switch to use the old Find dialog has been removed from the Text Search preferences. The preference is still supported, so if you previously changed it, the change remains in effect.
The expert preference for controlling use of the old Find dialog is:
defaults write com.barebones.bbedit FindDialog:UseOldSk00lFindDialog -bool YES
--gui option to
bbfind now brings the application to
the front when starting the search. To suppress this, add
--background to the command line.
Support for "source format profiles" has been dropped. (This affects the "HTML Markup" prefs pane, and the Markup -> Utilities -> Format... dialog, as well as the scripting interface.)
Project windows will now allow you to open documents which have no clear application association but which nonetheless look like text files.
The on-disk storage format for file filters has been changed to
something more future-friendly; the saved filters are now located in
File Filters.filefilters" in
that although the file is readily human-readable, the internal
structure is undocumented and subject to change; modifications made
without using the application's UI are not supported...)
Existing filters will be converted (nondestructively) to the new format. Note that the new format cannot be used with older versions of the application.
When browsing a Zip archive or tarball, if there is only one top-level item and it's a folder, the rest of the items are hoisted (and the top-level item is not shown).
If a window contains multiple documents, its submenu on the Window menu will contain diamond indicators as appropriate for any documents with unsaved changes or state.
Since the supported system versions can no longer run Classic applications, support for using them as preview helpers has been removed.
If a file changes on disk and the copy open in BBEdit has unsaved changes, you now have the option to ignore future changes to that file (for as long as the document remains open in BBEdit; closing and reopening will cause the behavior to reset).
The expert pref for controlling whether or not temporary files area eligible for the Open Recent has been changed. The new invocation to do so is:
defaults write com.barebones.bbedit RecentItems:RememberTempFiles -bool YES
Changes to the Text Files Only and Show Invisibles properties of an insta-project are remembered. These settings are subsequently applied to new insta-projects.
When selecting a function from the function popup, avoid scrolling when the resulting selection range is already in view.
Fixed bug in which the function menu would open with the wrong item under the mouse in some situations.
In some cases, the document contains an encoding specification
which is valid, but does not map to a user-readable encoding name.
(One example of this is "
utf-16".) In such cases, the encoding
mismatch warning sheet now uses the IANA name if possible.
Fixed bug in which function menu entries for operator definitions in Ruby would contain junk.
Fixed bug in which adding or changing (but not clearing) a keystroke on a #! script or filter would not take effect immediately in some situations.
Fixed a bug in which font and tab settings for a document already open in another window were not correctly applied when opening the document into an additional window. (This tended to occur when the document had an embedded declaration such as an Emacs variable.)
Fixed bug in which changes to the global color prefs didn't affect the display of open documents, when they should have.
Fixed bug in which changes to the editing view chrome preferences (line numbers, tab stops, gutter, and page guide on/off) took effect immediately for windows containing multiple documents, but did not apply to documents opened into existing windows subsequent to the change.
Fixed bug in which the comment strings for languages not backed by
a language module (including the "
(none)" language) were always
Note that there is no user interface for setting the comment strings
for the "
(none)" language; the factory default is to use "
#". To adjust this, you can use the following expert prefs:
defaults write com.barebones.bbedit LanguageSpecific:CommentPrefix -string "some string"
defaults write com.barebones.bbedit LanguageSpecific:CommentSuffix -string "some other string"
Fixed incorrect printing of line numbers when printing the selection range of a soft-wrapped document with hard line numbers in effect.
Corrected broken folder subscriptions on root of disk browser
Subversion commit files (
svn-commit.tmp), files living inside of
various SCM commit directories, and files in
/private/var/folders are no longer eligible for listing on the
Open Recent menu, nor is their state saved (unless, in each case,
the appropriate expert pref is enabled).
Fixed bug in which the Find window's buttons would not enable (or disable) correctly in situations where the window immediately behind the Find window got closed.
Fixed bug in which twisting a folder open or closed (in a disk browser or project list) while changes were occurring in the folder's parent would have a pretty high likelihood of crashing.
Fixed bug in which insta-projects did not correctly reopen after an application sleep (or when restoring from previously saved application state).
BBEdit now prefers
/usr/local/ as the destination when installing
the command-line tools and associated man pages on 10.6 and later.
Fixed bug in which a document's state was not saved when it should have been, when saving the document to disk for the first time.
Fixed bug in which using an insta-project as a Text Factory source would report a -1409 error.
Fixed bug in which "Use Selection for Find" and friends would not correctly generate hex escapes for certain unprintable characters.
Fixed bug in which "Save All" would create instaprojects on disk when it shouldn't have.
Fixed bug in which the "exclude matches" multi-file search option didn't generate the correct results.
respectively) will now end at the appropriate closing tag, rather
than at the first occurrence of
</ after the opening tag. This
behavior is correct for XHTML and XML, but not for HTML 4.x and
earlier; but it is more closely aligned with browser behaviors and
Fixed a bug in which the function menu would appear blank in cases where the item that would have been boldfaced (indicating the current cursor position) was invisible due to "Show comment callouts" or "Show function prototypes" having been switched off.
Changed the predefined name "
multiline" to "
multline" as was
originally intended. The former is not used in TeX, LaTeX or
ConTeXt, whereas the latter is used in the very popular
Fixed bug in which closing a search results window would incorrectly discard any changes to the document currently in its text view, if that document was not open in any other windows.
Adjusted the scripting dictionary so that only the application,
document, and window classes claim the
Fixed bug in which certain manipulations of ctags files did not cause syntax coloring to adjust accordingly.
Corrected template script for menu attachments
[arrays] greater than 200 levels
deep. This limit will probably never be reached intentionally, and
has only been implemented to prevent hangs such as the reported instance
where a search-and-replace produced > 42,000 nested function calls
foo( bar( bat( etc...
Fixed crash which would occur when asking BBEdit to open a project which was missing its project data component.
Menu command attachment scripts now work for items on the named application menu.
The Ruby language module now recognizes regular expressions as
legitimate ends to
if statements, such as in the following:
'a' if s =~ /regex/
This bug generally manifested as fold points not being generated for the method or block which contained the 'if statement'.
Fixed bug in which "Balance while Typing" was turned on in the Find window edit fields, which in turn led to undersired warnings while typing Grep patterns and such.
Fixed bug in which the "Look Up in Dictionary" contextual menu command didn't work correctly (typically, might launch the Dictionary application but look up the wrong word).
Vector typing such as
foo:Vector.<String> in ActionScript files
should no longer confuse the function popup and auto-folder.
Fixed hang in Markdown module which could be triggered by lines
beginning with a hyphen in the middle of a paragraph block. A side
effect of this fix is that the Markdown module now auto-folds and
colors Markdown files in a fashion more consistent with what
Fixed bug in which the GUI preference "Link file's encoding to HTML/XML character set" was not honored in situations where it should have been.
Fixed bug in the FTP/SFTP connection panel, in which arrow navigation in the user name field didn't work correctly.
Fixed bug in which any open documents located on an AFP volume (or
other server volume which allowed the use of
kevent() to monitor
changes to the document's parent folder) would have a reload
triggered when its parent folder's mod date got changed. This in
turn would lead to inappropriate "document changed on disk" warnings
for open documents in the same location with unsaved changes.
Fixed a bug where diffs invoked by the
bbdiff tool weren't
canonicalizing RCS keywords as appropriate.
Fixed bug which could prevent
define blocks (methods, as
described in the new Lasso syntax) from receiving autofolds or being
listed in the function popup.
Fixed crash which could occur when closing a Search Results window after a Grep search.
Fixed bug in which the FTP browser UI wouldn't let you make a new item with the same name as one that you just deleted, without making you first refresh the listing.
Fixed a case in which the application did not prompt to authenticate a save in a situation where it should have done so.
Fixed bug in which a document reloaded due to an attributes change which caused it to become read-only would discard any unsaved changes without asking.
Fixed bug in which Shift Left and Shift Right didn't honor the document's "Auto-Expand Tabs" setting when applied to a rectangular selection.
Integrated updated version of PHP completion data, now with optional arguments.
Fixed cosmetic glitch in the Text Factory UI when displaying Grep strings with embedded line breaks.
Fixed a bug in which "Apply Text Factory" to an open document with a selection range would add a junk character to the end of the document in cases where the selection range was at the end of the document and the document did not end with a line break.
Fixed bug in which MFS file filter terms containing strings would not work correctly when specified in the scripting interface.
The Strings language module now offers spell checking for values.
When doing "Save a Copy", the Save panel will now open pointing to an appropriate location (typically the folder in which the document is located, for documents already on disk).
Fixed bug in which the window title path popup menu didn't update if the document was relocated on disk.
Fixed bug in which the sources list in the Multi-File Search window didn't update correctly when projects were opened and closed.
Fixed bug in which dropping an archive (zip or tarball) on the application didn't check to see whether it was already open in a browser window.
Fixed bug in which dropping a folder on BBEdit would open a new instaproject even if one already existed for that folder.
Changing file filter settings in an instaproject will no longer cause a prompt to save when closing the project (unless you've made substantive changes to the project, like adding files).
The URL detector now correctly picks up
Instaprojects now appear under the "Projects" item in the Multi-File Search window's sources list.
Fixed bug in
twfind in which certain options were
not passed through correctly. This prevented the
options from working as they should have.
Fixed bug in which inappropriate encoding choices crept on to the default read encoding menu in the Text Files preferences after choosing an item from that menu.
BBEdit now returns the
missing value object when asked for the
file property of documents which were opened via built-in FTP/SFTP
from remote servers, or which have not yet been saved on disk.
If there was an error writing out the temp files for comparison, we released a string that we didn't own, and subsequently crashed when the outer autorelease pool was popped.
Fixed bug in which tarballs would be deleted after having been used in a browse list (as in a disk browser).
Disk browsers get some internal rework to reduce resource usage while one is open, and to make room for planned features.
Changed the order of precedence when mapping file names to source
languages, so that suffix matching is applied first. Thus, a file
Makefile.pl will now (correctly) map to Perl, rather than
Fixed bug in which codeless language module function patterns which resulted in a zero-length function body computation (for folding) would cause premature termination of function scanning.
Fixed a bug in which the Lua language module didn't advertise that it supported spell checking, so spell checking didn't work correctly in Lua documents.
Fix bug in the C/C++/ObjC/ObjC++ function scanner in which symbols whose names overlapped with language keywords would confuse the scanner.
Added metadata to aid locating items in Source Control preferences.
Fixed bug in which fold indicators in split editing views were not drawn correctly in the split which didn't currently have keyboard focus.
The "Change Case" transformations have been rewritten to work correctly with non-Roman characters.
Fixed bug in which the AppleScript interface to searching looked
for the "
filter" parameter in the search options, rather than in the
event (which is where the scripting dictionary says to put it). Note that the old form will continue to work for the sake of compatibility with existing scripts, but it is deprecated; so you should adjust your scripts accordingly.
Fixed crash which could occur when shuffling documents in a results window in some circumstances.
Fixed deadlock caused by the
DreamweaverIsRunning() test not being
thread-safe and requiring execution on the main thread.
Corrected a bug where the valid parent elements for
<del> were incorrect for HTML 4 variants.
Fixed a bug in the HTML translate tool where it did not translate entities which didn't map into the MacRoman space back to their character representation.
Fixed bug in which the last item in the text encoding popup menu (Windows Latin-1) would not get a bullet next to it if previously selected as the document's encoding.
Fixed hang which could occur at various points when BBEdit encountered a named pipe or other non-usable entity.
sleep" to the application scripting dictionary.
Global ctags (as located in the Completion Data support folder) are now used when generating completions for unsaved documents (as long as the document's language is correct).
Fixed class of bugs in which command-click on URLs didn't work when the URL was enclosed in nonstandard delimiters.
Fixed bug in which command-click didn't work for non-delimited URLs located at the beginning or end of the document.
Fixed bug in which command-click of a URL didn't work for URLs which were broken across line boundaries.
Clicks on a disclosure triangle in a hierarchical list are never treated as a double-click.
A disk browser is opened when handling an '
odoc' for a package,
rather than creating a temporary project with the package as the
single project item.
Fixed a bug where P4 preferences would get confused about override paths, and not let you correct it
Fixed performance regression in case-insensitive Replace All involving single characters (which also affected Change Case).
Supplemented UTI test for smart folders (which doesn't work on 10.5, since the necessary UTI isn't known to the system) with a filename extension test when adding to a project.
Fixed bug in which "Show Toolbar" in a project window did not restore the toolbar in the project list; only in the text view of a project window.
Fixed bug in which the title bar path popup didn't work for project documents when no text documents were open.
The "Detab" sheet once again allows you to specify one space per tab (effectively replacing each tab with one space, which you could accomplish by other means, but whatever).
Fixed a bug where "Set unmodified" was broken in the New BBEdit Document Automator action.
Fixed a bug where accessing the properties of a project item via the scripting interface failed.
When the menu attachment script stub is created, set its file type
osas' so that Script Editor on 10.6 will open it properly
Fixed a behavioral regression where scripts run from the scripts menu which did a multi-file search, replace, or apply text factory could leave a dangling progress window open.
--gui switch for
bbfind now works as intended on PowerPC
Fixed bug in which the
-E option for
bbfind did not correctly
suppress the additional context as it should have.
Snow Leopard removed the default
coercion handler. Worked around the binary compatibility issue this
caused for existing HTML updater scripts.
Fixed bug in which clicking the "Don't Install" button in the command-line tools installation dialog failed to note that you didn't want to install the tools; so you'd get prompted again at the next application launch.
Fixed bug in which project documents would sometimes fail to remember their saved state (typically settings changes, but other properties as well).
Fixed a bug where the initially selected item for the line ends popup was incorrect.
The command modifier is no longer required to expand/collapse nodes
in a hierarchical list. This is consistent with
thus most other instances of hierarchical lists people will be
Fixed off-by-one in calculation of line numbers for
endDisplayLine scripting properties.
Fixed bug in which file names containing (or ending) with a question mark couldn't be opened via FTP/SFTP.
Documents opened as a batch in the course of opening a project document are no longer subject to the warning about opening a lot of documents as once.
Fixed a bug where the stderr string of the shell command was left in a locked state if an error occurred while parsing the data.
Fixed a bug where the p4 menu commands malfunctioned if the
BBEdit's environment was out of sync with the actual result of
Fixed a bug where the p4 environment/command was not correctly
setup when doing an operation such as compare revisions out of a
results browser and using a
P4CONFIG based setup.
Fixed a bug where BBEdit would silently fail while creating a Perforce configuration if the server was unreachable.
Fixed bug in which documents reloaded due to outside changes were marked dirty.
When a document is changed on disk outside of the application, we now make an effort to preserve the scroll position of any views on that document, rather than always scrolling back to the top.
Fixed a bug where the bbedit tool would crash when invoked with
--maketags when the environment lacked a PWD.
Fixed a bug in which manually disconnecting from an FTP server, and then reconnecting to another server with a different directory layout would result in a blank file listing and a 22125 error if the manual disconnect took place after the timed automatic disconnect.
Fixed a case in which a single-file Find All, multi-file search or replace, or a text factory operation on an untitled document would perform certain unsafe operations and possibly cause a crash.