SUPPORT : BBEdit : Archived Release Notes : BBEdit 6.1 Release Notes
This page documents all feature enhancements and bug fixes included in the BBEdit 6 maintenance update.
Additions
BBEdit is now "carbonized" for native execution on Mac OS X. Please read the "Mac OS X Notes" for important information before trying to use BBEdit on Mac OS X.
If you're running on Mac OS X, you can select "Mac OS X Developer Help" as a Preferred Reference in the "Tools" preferences. Having done so, you can then use "Find in Reference" to search the Carbon API help book for your chosen symbol. (Due to limitations of the Apple help system, only the Carbon help book can be searched at this time.)
There's a new command on the File menu: "Open Hidden". This command always shows invisible files, and lets you peek inside of bundles (or packages, or whatever they're called this week). Very useful on Mac OS X. :-)
in the "Check In Folder..." dialog, double-clicking on a collapsed folder would expand it (recursively, if the Option key was held down). Now, double-clicking on an expanded folder will collapse it (and its children, if the option key is held down). Double-clicking on a file still checks it in as before.
the application will now look for the "User Dictionary" file in its preferences folder; if the user dictionary isn't there, the application will look in the Dictionaries folder in the application's support folder (for backward compatibility with existing 6.0 installations).
if the user dictionary isn't found in either place, then it will be created in the application preferences folder. As before, you can relocate the user dictionary to any desired location, as long as you leave behind an alias named "User Dictionary" that points to the actual file.
Removed support for the deprecated #include syntax. The only syntax that should continue to work is
<!-- #bbinclude "foobar" -->
<!-- end bbinclude -->and
#bbincludeThe HTML function scanner has been updated as well.
The Button Puffiness settings (Status Bar prefs) are disabled when running on Mac OS X, because changes there have no visible effect.
added type-to-select in the Preferences panel list.
File browsers work a little better now:
With focus in the list: Tab switches focus; Command/Ctrl-Tab switches focus; Enter opens the file; Return opens the file;
With focus in the text view: Tab switches focus; Command/Ctrl-Tab does the header dance; Enter recenters the selection; Return opens the file with the current selection.
When running on Mac OS X, there's a new switch in "Text Editing" preferences: "Allow Text Smoothing". If turned on, this will allow the system to draw smoothed (anti-aliased) text in text-editing views. When turned off, text smoothing is suppressed, so certain fonts and sizes may become more readable.
Note that if system-wide smoothing is turned off, smoothing will never occur in editing views and this preference switch is disabled.
When opening a malformed UTF-8 document, BBEdit will now present an alert to that effect. If such is encountered during multi-file searching, a warning will be logged.
The FTP tool now provides the ability to open the control connection on ports other than the default (port 21). To specify an alternative port, place it on the end of the host name, separated by a colon:
ftp.example.com:nnnnThe "Script Editor" setting in the Tools preferences is now stored separately for Mac OS 9 and Mac OS X; this makes it easier to share one set of preferences without having to reset the script editor when switch-booting.
The dialog used to add and edit FTP bookmarks in the "FTP Settings" preferences has been expanded so that you now specify the host, user, password, and path separately, rather than having to edit them all lumped together in a URL.
When running on Mac OS X, BBEdit now honors the Unix file permissions when opening documents. If the file's permissions are such that the owner or group can't write to the file, the file will be opened read-only, but you can click the pencil. Confirming the alert will change the Unix file permissions so that you can modify the file, provided that you're the owner of the file, or a member of the file's owner group.
If you're not the file's owner, not a member of the group, and the file is not world-writeable, then the file will be opened readonly, and clicking on the pencil will alert you appropriately.
When running on Mac OS X, BBEdit dispenses with the "mailbox flag" status bar control in favor of the "tic tac" title bar widget (also used by the Finder for controlling window status bars). Windows in which the text view status bar isn't adjacent to the window title bar will not have a status bar control (on 9 -or- on X), but do honor the global status bar preference, and you can use the "Text Options" dialog to show and hide the status bar.
in the "Text Files: Saving" preferences, the switch that used to be called "Force CR at End" is now called "Force New Line at End", to remove any politically-incorrect implication regarding the use of CRs in non-Mac files.
When switching search methods in the Find dialog, BBEdit will now turn off file filtering if the search method is one that implies some pre-selection of the files to be searched: open windows, search results, or script. (You can of course turn the filtering back on if desired.)
when clicking on the "Revert" button in the file filter editing dialog, you can now hold down the Option key to skip the confirmation alert.
When running on Mac OS X, new disk browsers will open up with a view of the current user's home directory. (You can, of course, make a new disk browser to any desired folder by dragging it on to BBEdit.)
Non-breaking spaces now show up as a gray bullet (•) when "Show Invisibles" is turned on.
the forward-delete character will now show up with "Show Invisibles" turned on.
when running on Mac OS X, the factory default for "Default <...> Directory" folder in File Search prefs will be set to the user's login directory.
The scripting object model for text has changed, in the following ways:
the "line" element now refers to a "hard" line, that is, a stream of characters that begins at the start of file or right after a line break, and which ends at the end of file or right before a line break. This is consistent with the previous semantics of "line" in hard-wrapped documents; these semantics now apply in soft-wrapped documents as well.
the "display_line" element is introduced, and refers to a line of text as displayed on screen (bounded by soft and/or hard line breaks). This preserves the semantics of the old "line" class in previous incarnations of the scripting interface, for those who (unwisely) depended on the semantics of "line" in soft-wrapped files.
the "startLine" and "endLine" properties of a text object now refer to the "hard" start and end lines; the practical implication of this is that if a text object crosses multiple soft-wrapped lines, the startLine and endLine properties will be the same.
"startDisplayLine" and "endDisplayLine" properties have been added to the text object class; these provide the old startLine and endLine semantics for those who (unwisely) relied on soft-wrapped semantics.
Added "Use Emacs Key Bindings" switch to the "Text Editing" preferences. If turned on (the factory default), you can use the basic Emacs navigation keystrokes to move around in editing views.
If you're using BBEdit on Mac OS X, you will see a new group of items in the "File Search" preferences, titled "Unix Search Paths". These paths are designed to make it easier to work with Unix source code, which uses include statements of the form:
#include <xxx/yyy.h>A more concrete example: the canonical Unix include directory is "/usr/include". It contains its own subdirectories, but since Unix command-line compilers don't usually do recursive searches, you need to qualify the include file's name if you want to include a file out of one of the subdirectories:
#include <sys/ioctl.h>With the new "Unix Search Paths" settings, you can now add "/usr/include" to the list (actually, it's one of the factory defaults). When you select the "sys/ioctl.h" and choose "Open Selection", BBEdit attempts to construct a file path using each of the directories shown in the Unix Search Paths list. If one resolves to a file, BBEdit will open the resulting file. Thus, the partially- qualified selection:
sys/ioctl.hnow resolves to
/usr/include/sys/ioctl.hand the file opens.
With Mac OS X frameworks, the situation is a little more complicated, and BBEdit applies some smarts to help out. Consider the following example:
#include <Carbon/Carbon.h>Now, there is no directory called "Carbon" anywhere that has a "Carbon.h" in it. The actual "Carbon.h" lives in /System/Libraries/Frameworks/Carbon.framework/Headers/. BBEdit will do a little magic to try to find headers in frameworks if the appropriate framework directory is listed in the Unix Search Paths list (note that /System/Libraries/Frameworks/ is one of the factory defaults), but it can be problematic with nested frameworks.
When running on Mac OS X, any file-selection dialog that allows you to choose an application will now allow you to choose an application bundle. (This includes, but is not limited to, the Script Editor setting in the Tools preferences, and the application lists in the File Types and HTML Preview prefs.)
Added a new command to the File menu: "Close All Documents". When chosen, this command will close all windows which are associated with a document, including text-editing windows, images, pictures, file groups, and movies. Windows which are -not- associated with a document, such as disk browsers, error results, or search results, are not closed by this command.
Language modules can now exert control over the type of path that BBEdit inserts when a file system object is dropped into an editing window with the Command key held down. For example, in HTML and XML files, BBEdit will insert a file URL. In Perl files, BBEdit will insert a Unix file path when running on Mac OS X, and an HFS path when running on Mac OS 9. The default behavior is to insert a colon-delimited HFS file path, which is consistent with previous versions of BBEdit.
(This behavior is defined by the language module developer, not the end user. See the language module SDK documentation for more details.)
Language modules can now exert control over whether BBEdit searches for include files using the same rules as for HTML documents, whether it searches for includes using the same rules as for Cmd-D, or both. The default behavior is for BBEdit to use the HTML rules if the document is (or looks like) an HTML document, and the Cmd-D rules otherwise.
(This behavior is defined by the language module developer, not the end user. See the language module SDK documentation for more details.)
Improvements have been made to the UI for using and editing file filters within the Find dialog:
the "Define..." button has been renamed to "Edit...".
the popup menu listing file filters leads off with two additional items:
New Filter...
If you choose this item, BBEdit will ask you for a filter name, and if you specify one, the filter editing dialog will come up. Thus, you can quickly create a new filter from within the Find dialog, without resorting to the Preferences window.
-
(current criteria)
If you choose this item, BBEdit will use the current set of criteria, as last edited using the "Edit" button. Thus, you can use filter criteria on the fly, without having to create and store a throwaway filter. The remaining items on the filter popup are the named filters as defined in the "File Filters" preferences (or created using the "New Filter..." command. Choosing a filter from the menu will load up its criteria, and you can edit it using the "Edit..." button.
The filter-editing dialog, presented by the "Edit..." button in the Find dialog and "File Filters" preferences, has been improved. The popup menu and the "Add..." button have been removed. When editing an existing filter, you can use the "Save" button to save your changes, the "Revert" button to discard changes, and the "Close" button to dismiss the dialog. (If you've made any changes, you'll be asked to confirm the "Close" button.)
results browsers (search results and error browsers) now get an "Open" button. You can hold down the Option key to ask the Finder to open the selected item(s).
If "Map the File Name" is selected in the "Text Files: Opening" preferences, BBEdit will attempt to map the file name to the list of suffix-to-language mappings specified in the "Languages" preferences. If a file name matches up with a language (even if the language is "None"), then the file is assumed to be a text file. Thus, you can use BBEdit's own suffix mappings to convince it to recognize as text any files whose suffixes aren't in Mac OS X's built-in list of file-suffix-to-file-type mappings.
A new preference has been added to the "Text Editing" preferences: "Use 'Hard' Line Numbering in Soft-Wrapped Text Views". If this switch is turned on, then the line number bar, cursor position display, and "Go To Line" commands in editing views will use line numbers that correspond to "hard" carriage returns in the document, rather than to soft-wrapped line breaks. To restore the behavior of previous versions of BBEdit, turn this preference off.
The anachronistic and trouble-making "Open Read Only" switch has been consigned to the dustbin of history, and removed from the "Open" and "Open Several" dialogs.
The "Soft Wrap SimpleText Documents" switch has been removed from the Preferences dialog; SimpleText documents are always soft-wrapped when opening them (unless they contain saved BBEdit state that says otherwise).
The "Filing" preferences have been split in two, and renamed: "Text Files: Opening" and "Text Files: Saving". Each of the resulting prefs panels contains the appropriate settings for opening and saving text files.
In "Text Files: Opening", there is a new group of settings: "If File's Type Is Unknown". These settings tell BBEdit how to deal with files whose type is not immediately apparent. Usually, such files are created by Unix programs running on Mac OS X, but may also be downloaded from remote servers.
If you select "Ignore It", then BBEdit will behave consistently with previous versions: since the file's type is not 'TEXT' (or any other type which is recognizable as a text-file type), BBEdit will ignore the file in situations where a text file is required.
If you select "Assume It's Text", then BBEdit will assume that the file should be treated as text. This will give maximum exposure to such files, at the expense of occasionally seeing a file which doesn't actually contain text (e.g. a binary data or executable file on Mac OS X).
If you select "Map the File Name", BBEdit will inspect the file's name to see if it can figure out whether the file is text or not. On Mac OS 9, it will do this by applying the Internet Config file name mappings, and you can configure your mappings in the "Internet" control panel. On Mac OS X, BBEdit uses Internet Config services as well, but the mappings are not currently user-configurable. Regardless of the OS you're running BBEdit on, you should select whichever setting makes the most sense for the sorts of files you work with: if the files are downloaded from remote hosts and often don't have correct file types, but you -know- that they're always text, then you can select "Assume It's Text". Given that Mac OS X does not set the file type of any text file created by a Unix program to a useful value, you may find it more useful to use "Map the File Name"; this will generally yield the best results.
In "Text Files: Opening", there is a new group of settings: "Interpret File Contents as:". This collection of switches establishes the default behavior when reading text files; either the contents are auto-detected using information in the file itself, or you can force BBEdit to always interpret the file's contents as UTF-8, Unicode (UTF-16), or byte-swapped Unicode. This setting not only establishes the default behavior when opening files without using the file dialogs, it also establishes the default setting of the "Read As:" popup when using the "Open..." dialog.
PropertyList support in the syntax checker and tag maker.
Added Opera and OmniWeb to the factory default browser lists.
Perl Support on X, Changes on Classic Mac OS
The MacPerl Support folder has been renamed to Perl Support. MacPerl Support will continue to be honored in 6.1 to ease installed base migration.
When running on X, BBEdit uses the perl which is part of the BSD subsystem.
Differences between cancelling perl tasks on X and Classic Mac OS:
On the classic Mac OS you get a progress dialog with a disabled Cancel button. You have to switch to MacPerl and type Command-. to cancel the task (which will cancel it in BBEdit as well) since there isn't a reliable way to signal MacPerl to cancel the script task.
On X, you get a progress dialog with an enabled cancel button and you can cancel the running perl task directly from within BBEdit. Since BBEdit has to kill the spawned process with a SIGINT, any unflushed data in open filehandles (including STDOUT, STDERR, and any user created file handles) will be lost unless the script takes measures to prevent this (BBEdit cannot). This behavior is similar to pressing Control-C while running a script in the shell, except you won't lose STDOUT or STDERR in that case since they are line buffered. You will lose user created files unless the script takes measures to prevent it, even in this situation.
The BBEdit perl support is totally line ending agnostic. If you try to execute a script which has line endings which are not the platform native line endings it applies sufficient magic such that the script will execute on that platform.
Error parsing now supports the BSD perl flavor.
Error parsing is much improved.
When running a perl script, if it is aborted because BEGIN failed *and* there is no STDOUT (because BEGIN can generate output before failing) we only show an error browser and no longer duplicate the output in the perl output window.
When running a perl script, if the run aborted due to compilation errors we only show an error browser and no longer duplicate the output in the perl output window. I'll write this up in the general perl changes but wanted to write it down before I forgot.
As BBEdit parses errors, the errors it successfully parsed out of STDERR are presented in an error browser. There will be some errors which are formed such that BBEdit doesn't recognize them as such. These errors, and the remaning loose text in the STDERR will be presented in the perl output text window. The errors which were successfully parsed out of STDERR are not presented in the perl output text window to reduce noise.
Through the use of sufficient magic, we can also execute selections, untitled windows, and unsaved windows on X even though the underlying perl tools speak in files.
BBEdit will no longer treat a Form Feed character (ASCII 12) as an implicit line break.
the plug-in loader now enforces the following naming convention for CFM plug-ins:
- Given a BBXF resource whose name is "MyPlugIn", the loader will look for a code fragment whose name is "MyPlugIn" when running on Classic (InterfaceLib); when running on Carbon, the loader will prepend a copyright symbol (©) to the name, thus it will look for "©MyPlugIn". If the appropriate named code fragment is missing, the plug-in will not be loaded (and consequently won't show up on the Tools menu).
You can now navigate scrolling criteria lists (file filters) via the Home/End/PageUp/PageDown keys.
Scrollbar enabled state now depends on window activation rather than keyboard focus, so you can use the scrollbar is non-focused views. A scrollbar click in an enabled scrollbar does not change keyboard focus in line with other app's implementations.
A new glossary set is provided to aid in editing Mac OS X property list (".plist") files.
in the Window List floater, the buttons will only change titles when the Option key is down -and- if the mouse is inside of the floating window. This eliminates distracting button title changes when using the Option key for unrelated activities.
If there is an existing 6.0 preferences file, 6.1 will copy over certain settings from the extant file when creating the new prefs file, including:
- menu key bindings
- the script-to-font mappings
- the list of active spelling dictionaries
- suffix-to-language mappings
- text file type settings
- the contents of the last-used file filter from multi-file searching (if any)
Added horizontal auto-scroll support to lists when drag selecting.
Option on Minimize Window will minimize all windows just like clicking in the collapse box.
Window arranging|positioning|restoration|sizing|etc is now mindful of the dock on X.
There is a new dialog for information about items on FTP servers: if you click the "Get Info" button in the "Open from FTP Server" or "Save to FTP Server" dialogs, the resulting dialog presents the name, size, modification date, and (if applicable) file system permissions for the selected file.
You can edit the file's name and click the "Rename" button to rename the file on the server; you can also make changes to the permissions check boxes and click the "Set" button to change the permissions of the file on the server. (Take care not to set the permissions such that the file becomes inaccessible to you!)
Made Compare Revisions behave like Get Revision in that the current version you have on disk is highlighted in the list when the dialog opens.
Toolserver is now suppressed when running on Mac OS X.
The default button for Modify Read Only in the Projector menu is now "Yes" to match the equivalent dialog put up by the editor when typing in a read only file.
Subtly but importantly improved the tracking UI in the color mdef with respect to keeping the initial item hilited as a point of reference.
When looking up something in Shuck, we now autoconfigure the POD helper in Internet Config since the MacPerl installer doesn't do this, and Shuck refuses to work otherwise.
Added .plist to the default XML file extensions.
You can now print image windows opened via QuickTime image translation.
made a change to the regular-expression engine so that character classes are now case-sensitive, *regardless* of the setting of the "Case Sensitive" switch. Thus:
[a-z]+ will match abc will NOT match ABC [A-Z]+ will match ABC will NOT match abc [a-zA-Z]+ will match ABC *and* will match abc
Besides being more predictable, this behavior also is in line with the documentation.
Replacement is unaffected, except insofar as replacement of subpatterns may generate different results if the matching behavior is changed.
"New FTP Browser" has been added to the "New" submenu of the File menu. It will create an FTP browser window.
The underpinnings of the FTP tool have been rewritten.
Fixes
fixed bug in which New With Clipboard or New With Selection would cause the application to bail given a sufficiently large input. Now it reports an out-of-memory error instead.
Fixed a bug in the ascii floater where if the insertion point was after the last character in a document it would show a random character when you clicked on the show button.
fixed bug in which character ranges in certain types of differences would get out of sync as other differences were applied.
fixed bug in which BBEdit was prompting to unlock the keychain when "Store Passwords in Keychain" was turned off.
BBEdit will no longer ask you twice for the password when "Store Passwords in Keychain" is turned off and you open a non-anonymous FTP URL which is missing the password.
markers added by the "Find & Mark All" command are now sorted by position in the document, rather than just being added to the end of the list.
FTP leaf names longer than 31 characters are no longer truncated for window display and other UI-related purposes.
the requirement of Keychain Manager 2.0 is now enforced.
"Exchange Characters" will now correctly cause syntax-coloring information to be updated.
Command-Delete now does something (correct) if there is a non-empty selection at the start of a line.
Insert->Toolbox Call Template will now be disabled if there are no API references available, rather than just deleting the selection.
x-maccyrillic is now inserted as x-mac-cyrillic.
Compare Revisions would fail if the file name + revision suffix was too long. We now carefully avoid that situation.
Disable irrelevant edit control in the find diffs dialog when appropriate.
fixed missing passwords in recent-file clippings on non-Keychain-enabled systems.
file filter lists now let you select the first item (by option-clicking, you can select any term in the list for deletion with the "Fewer Criteria" button).
fixed cosmetic in the Quick Find window when partially obscured.
fixed bug in which the internal arrow-key state wasn't being reset after a Backspace, which would cause Shift-right-arrow to have no effect if performed after a sequence of Shift-left-arrow strokes and then a delete.
the application will now report an error if moving the file to the trash failed during a Close and Delete.
fixed crash when opening Quicktime movies on pre-QT 2.5 systems.
Fixed a bug in the glossary manager where it would do a bad text transform if you had ignore trailing cr's on or an #inline# cookie and there was no trailing vertical white space in the glossary entry.
fixed bug in which the application support folder hierarchy was not being set up correctly when the application was started without an existing support folder.
Integration with Cumulus v4 and v5 via the Deliver API, instead of the now-absent AppleEvents previously used.
When typing into an HTML document with "Display Current Function" enabled, the disk got hit every keystroke. This was a drag.
If you have any floater open, and happen to type something that includes the Option key, the buttons at the top of the floater don't flip/flicker unless the mouse is in, or moves into the floating window's region.
Zoom in place works for windows which don't zoom to the full height of the screen.
improved performance of file screening in the Open dialogs.
dragging the document icon from an editing window's status bar to the Trash will now close the window as well as moving the file to the trash (thus making this gesture equivalent to using "Close & Delete" from the File menu.
fixed cosmetic glitch in the browser list when adding a new browser with no items selected.
FTP session passwords are now remembered correctly on non-Keychain systems.
fixed bug in which the Find dialog would get mixed up and use the current criteria for a search after having chosen a stored filter.
fixed bug in which using the Preferences window to change the name of an FTP bookmark wouldn't take.
The SGML Parser was incorrectly parsing and balancing -- comments -- inside of XML/SGML processing instructions. This screwed up, among other things, PHP function parsing. Fixed.
//support/bbedit/ now works as specified in the documentation.
When generating root URLs, the server path was ignored. Fixed.
Fixed a bug in the placholder engine where Christian Smith and Power of 3 were inserted with a null byte inbetween each character.
Removed some unnecessary data copying in the running of perl filters.
fixed bug in which "Save a Copy to FTP Server" didn't correctly restore the FTP state of the document being copied.
fixed bug in which leaving the "Case Sensitive" option off in the Find Differences dialog would fail to store the parameter in the self-sent event; since the default for the absent 'case sensitive' option is 'true', this had the net effect that compares done from the Find differences dialog were always case sensitive, regardless of the switch setting.
the "Page Setup", "Print One Copy", and "Print" commands are disabled for the Preferences and the Quick Search windows, since they're not printable.
made a change to the drawing of invisibles to prevent alignment problems with monospaced fonts.
Drag-scrolling was too eager to throttle scrolling (we added a horizontal scroll throttle for people who complained it was too fast). Now scrolling is only throttled if you are only scrolling horizontally. If you are scrolling vertically too, the throttle is removed so that scrolling is as fast as it ever was.
when running a script that returns an error, BBEdit will now report the error returned by the script, rather than -1753 (errOSAScriptError). Note that if the error returned by the script is -128 (userCanceledErr) or a similar non-reporting error code, no error will be reported.
when processing a glossary event, BBEdit will now report the exact error code that occurs, rather than the generic "event failed" (-10000) error.
if the global backup options are set to back up to a specific directory ("Use Folder:", in the "Text Files: Saving" preference), but no directory was chosen, BBEdit will now quietly back the file up to the same folder as the document, rather than reporting an error.
Fixed an off by N selection bug in the glossary when inserting when a glossary cookie had N backslashes in its expanded form.
Fixed a bug in the glossary where you couldn't get a literal backslash before a glossary token. It now works. Here are the rules, use the example of the #select# token:
To get glossary substitution, use #select#.
To get literal text instead of glossary substitution, use \#select#.
To get a literal backslash followed by glossary substitution, use \\#select#.
Fixed a bug where dropping a folder on the update folder images dialog would get rid of the focus ring around the cancel button with the wrong background color.
Fixed a bug which was responsible for incorrect glossary substitutions at times.
fixed bug which would break glossary insertion in the case of two adjacent glossary substitutions when the text resulting from the first one ended with a backslash (\):
#select##date# would erroneously generate the selection followed by a literal "#date#" in situations in which the selection ended with a backslash.
Fixed a bug where glossary divider lines were sometimes drawn when that node's level had been collapsed.
Updating the line bar while changing the length of text is more sane (codewise) and flickers less than it used to.
we now guard against getting an event record with a nil keyCode in the message. In this case, we treat the message & charCodeMask as the real char. (The reason that we even care is so that we can distinguish control-A from a "real" end key.)
This solves a problem with events posted by third party utilities such as AliasMenu. Our code really isn't wrong, because events like they post don't normally occur in nature, but by making our code slightly more robust and checking for invalid input, we can handle this aberrant situation more gracefully.
The framework will respond to the apple event sent by Extensis Suitcase indicating it has activated/deactivated font sets and rebuild the font menu in response.
Worked around bug in Dave where if you called FSpSetFInfo on a file with no resource fork it would return errAFPAccessDenied.
Fixed a very old bug in the menu keys code. The situation is this: you have two dynamic bound items and you clear the keystrokes on both of them. One of two things would happen - either the flippy state would be reversed, or one item would be unreachable and never appear.
Fixed the problem of no icons in the status bar for apps which don't provide full icon suites (like MacPerl).
Fixed bug in which $ in grep patterns would sometimes not work correctly for soft-wrapped text.
Finally, thanks to Ira Ruben, got the opportunity to make Shift Left and Shift Right work properly! :-)
fixed bug in grep (regrepeat), where the metacharacters \S, \W, and \D followed by a + (or presumably a *, but I didn't test that) would erroneously continue scanning past the end of the text if the last char was a match.
when counting elements of an insertion point, the text class will now always return zero of the element type is a character, word, or line.
the "find" and "replace" scripting commands now allow you to use an object specifier for the search and/or replace strings. So, for example, you could now write:
replace "abc" using contents of current clipboard searching in window 1plug-in floating windows now report their Apple Event class correctly.
fixed bug in which using the scripting interface to move an empty line would cause a crash.
fixed things so that moves of text objects actually delete the original after the copy is done.
Corrected a bug in the perl filters floater where the Set Key... button was enabled when there was no file selected.
BBEdit will no longer hit the keychain while typing in FTP dialogs or FTP browsers when "Use Keychain for Passwords" is turned off.
fixed memory leak in which the language module loader wasn't releasing the 'BBLM' resources from add-in language modules.
fixed memory leak in which the FTP clipping generator wasn't releasing the URL from an existing clipping in some situations.
BBEdit now sends kBBLMInitMessage to a language module when loading it during application startup, and kBBLMDisposeMessage to the module when quitting.
BBEdit now caches the category table created by a call to language modules with the kBBLMSetCategoryTable message.
fixed bug which would cause function scanning to get slightly goofed if "Show Current Function" was turned on.
when doing a "Save As..." on a file opened via FTP, BBEdit will no longer point the Save As dialog at the FTP Temp folder.
The encoding method is once again remembered by the Translate tool.
Missed a case in the window arranger where it wasn't calling the right wrapper API to figure out the usable screen space.
Improved the appearance of the line splitter when you use custom text colors.
Fixed Gruber's bug where the flippy drew in the wrong color if you collapsed the status bar and were using custom text colors.
Fixed a bug in the list that has been there since the advent of horizontal scrolling where if you drag selected vertically into the hscroll bar it would jump to the bottom of the list rather than scroll vertically in a proper fashion.
Fixed a bug where if you had appearance support turned off and custom text colors and the line bar visible scrolling would screw up the background colors of the text view.
fixed bug in $ grep matching in soft-wrapped files.
you can now use Page Up, Page Down, Home, and End to navigate file filter criteria lists.
using the Tab key in file filter criteria lists will now scroll editable fields into view as necessary.
fixed some display glitches in filter criteria lists when tabbing between visible and invisible items and deselecting invisible fields.
eliminated the focus ring around the dialog's default button in file filter dialogs when there's an "open" edit field.
fixed bug in which typing a single character into an editing field would cause the insertion point to blink on the following (non-existent) line.
fixed bug in which disabled checkboxes and radio buttons would "hide" their values.
fixed -50 error which would sometimes occur when doing a "Paginate" from the "Get Info" dialog.
if you had your default script set to something other than "Roman" (in the "Fonts" preferences), and you opened a non-Roman text file which lacked any indication of its script (e.g. a MacJapanese text file with no resource fork), BBEdit would open the file as Roman, and subsequent attempts to display it as its native script would result in an incorrect display. BBEdit should now behave correctly in these situations.
fixed bug in which scripting text insertion "at" or "after" the insertion point would place the text one character after where it should have gone.
fixed bug in which scripting the insertion of single-byte text into a multi-byte document would insert only half as much text as there was to insert.
fixed -1728 error which would occur when double-clicking on a Sherlock find-by-content result and BBEdit already had the file open.
fixed broken sorting in Standard File-based multiple-open dialog. Among other things, this led to files being added to file groups out of order when using the "Add Files..." button.
fixed sporadic failure to launch an application that wasn't already running.
bbxtSyncWindow() will no longer crash when called for windows which correspond to non-text documents.
Forward-delete and other nonprinting keys no longer screw up type-to-match in various lists.
When generating date-sequenced names for backup files, BBEdit now uses "-" as a date separator instead of "/", to avoid naming problems on Unix file systems.
fixed bug in which executing ToolServer commands would sporadically cause a -108 (out of memory) error to be reported.
"Fixed" classic window width for Patrick. Classic windows no longer fit on classic screens, but the content area is what he thinks it should be.
fixed bug in the preferences subsystem which prevented the glossary node expansion states from being restored.
fixed hang that would occur when typing in Perl documents (including untitled ones, if Perl was made the default language) with syntax coloring turned on.
fixed bug in which the HTML function scanner wouldn't recognize tags that were in upper case and would consequently fail to add the appropriate marks to the function popup.
Fixed the invalid base, link, and meta generation when creating an XHTML document using the default template.
fixed goof in Educate Quotes when processing from other than the start of the document.
fixed bug in which sometimes BBEdit wouldn't be able to resolve aliases that the Finder could (usually recent items).
fixed bug in which closing an FTP document which was opened via the Open Recent menu would fail to move the FTP temp file to the trash.
"Use File Filter" is now switched off in the Find dialog when starting up with fresh prefs.
the JavaScript function scanner can now handle comments that occur between the "function" keyword and the beginning of the function declaration, such as
function /* this is a comment */ foo()
{
}
Fixed a terminology problem where keyTabWidth was mapped to a different string for entab and detab. This made it impossible to write an entab script by hand or edit a recorded on and have it compile.
Fixed bug responsible for HTML include files sometimes not opening from the function popup.
Open Selection/Open By Name always defers to Open By Name when the selection spans multiple lines.
Fixed a bug where we leaked a menu handle every time thru the web safe color popup.
Fixed a bug in the image drop dialog where it wasn't respecting the addressing mode chosen by the user.
Fixed a performance problem in results lists (e.g. HTML syntax check results, multi-file search results) where it would cause slow typing if you had a results window open with lots of results, particularly if you had untitled windows open at the same time.
Fixed a bug in the tag parser where it didn't correctly handle multiply defined attributes.
Fixed a bug in CheckOutFolder where if you chose an unresolvable alias off the recent menu nothing would happen. It reports an error now.
Fixed a bug where the updater would replace (in grep speak to be clear, even though in code we process literals) \#title. instead of \#title\#. Validated the code to make sure this OB1B didn't exist elsewhere.
Fixed a bug where the toolserver status square was always drawn active.
Getting the toolserver status should no longer "hang" the application waiting for the apple event reply.
fixed bug which would sometimes cause saving Unicode files to fail.
fixed a couple of obscure bugs which would occur when using non-inline input for non-Roman scripts.
fixed bug in Zap Gremlins in which it would replace the buffer's text (and mark the buffer dirty) even if nothing had been zapped.
made various changes to speed Preferences access.
fixed a memory leak in the guts of the scripting system.
Export the scrap before running a script from our script menu so that things like "display dialog" which look at the public scrap have current data.
Fixed the dictionary inconsistency where we used
appending to clipboardand
append to clipboardto mean the same thing in two different places.
All scripted clipboard actions now export the scrap immediately so that there is consistency between the scrap that scripting additions see and the private scrap in BBEdit.
Actions that originated in the application (a recorded cut or copy or rotate of the clipboard) do not export right away to avoid the overhead of doing so.
Fixed instances of the result code being throw away when an error occurs during a scripted "set contents of clipboard 3 to s" operation.
Return a more reasonable error string when you try to script the cut or copy of an empty selection.
Fixed a bug where setting the splitter position in a text view didn't record properly.
Fixed a bug in the responsible for losing preferences that were written out at quit time (like window positions).
bbxtGetSelection() and bbxtSetSelection() callbacks will no longer crash when the front window doesn't have a text-editing view.
Passing nil pointers to a BBXT plug-in callback when it expects a valid one, or calling plugins that expect the front window to exist should no longer crash the application.