SUPPORT : BBEdit : Archived Release Notes : BBEdit 7.0.2 Release Notes
BBEdit 7.0.2 Release Notes
This page documents all the feature enhancements and bug fixes included in the BBEdit 7.0.2 maintenance update.
The BBEdit 7.0.1 release notes detail the fixes and improvements made in BBEdit 7.0.1.
Please see Chapter 1 of the BBEdit 7 user manual (Help -> BBEdit User Manual) for a summary of the major features added since the release of BBEdit 6.5.
Additions
BBEdit now supports editing files which are encoded in formats other than the extended-ASCII "Mac Roman". Previously, BBEdit 6.0 and later supported Unicode (UTF-8 and -16) files, but lacked the ability to read and write files in non-Roman encodings without external hints (such as a 'styl' resource in the file), and couldn't determine the encoding from information in the file's contents (such as an HTML meta tag or XML PI).
New popup menus have been added to the "Text Files: Opening" and "Text Files: Saving" preferences panels. The popup in the Opening prefs tells the application which encoding/character set to use:
If a file is well-formed HTML or XML with the appropriate "encoding=" directive (for XML), or meta "charset=" directive (for HTML), and the specified encoding is one supported on the OS, then the file will be read and written in that character set. Also, if a file is well-formed UTF-8 or UTF-16 (i.e. the file's data begins with the appropriate Unicode byte-order mark), that can be detected as well. So the popup in the Text Files: Opening prefs only affects the encoding if it couldn't be determined by inspection of the file.
The popup in "Text Files: Saving" controls the encoding used for newly created documents.
The old Unicode options (see the "Saving as Unicode" section of the manual) are gone; the explicit Unicode formats that those settings reflected are now included on the Encoding popup menu which is shown on the File Options popup in the status bar, and in the "Options..." dialog which is presented from the Save As dialog.
Additionally, if a file is saved with "BBEdit" state, the explicit text encoding is saved in the state, so that it can be recovered later if there are no other cues in the file. Note, however, that if the state information is lost, either by editing the file with an application that doesn't preserve the information (such as an older version of BBEdit), or by removing the resource fork, then the encoding will be determined by the preference in "Text Files: Opening". Also, if the file is HTML/XML and there's an explicit encoding specification in a meta tag or PI, that will override the saved state.
-
There is a new preferences panel: "Text Encodings". This panel provides a list of available text encodings for use in the following locations:
- the "Read As:" popup in the Open dialog;
- the "Encoding" popup in the Options dialog within the Save dialog;
- the "Encoding" submenu of the status bar's "File Options" popup;
- the character set popups in various HTML tools dialogs (including the "New HTML Document" dialog);
- the encoding popup in the "Text Files: Opening" and "Text Files: Saving" preferences panels.
You can otherwise use the buttons to enable and disable selected items (or all of them), and use the "Factory Defaults" button to restore the factory settings. Changes here take effect immediately. (We recommend that you enable only the encodings that you use frequently; if you turn them all on the menu will be unmanageably long.)
The settings for "If a File's Type is Unknown" are now tracked differently for Mac OS X vs. Mac OS 9. On Mac OS 9, the old setting remains in force, and the factory default remains "Assume it's Text". When running on Mac OS X, the factory default setting is now "Map the File Name", which should provide for more desirable default behavior when doing things like multi-file searches with the "Text Files Only" option selected.
The (Insert) File Contents command (on the Insert submenu of the Edit menu) now allows the selection of multiple files. The files will be sorted by name before insertion. You can insert any text file, but note that at this time you cannot mix Unicode and non-Unicode files; all of the files must be either Unicode or single-byte (e.g. ASCII or MacRoman). This change makes Insert File Contents a suitable replacement for the old "Concatenate" plug-in.
You can now create or extend a rectangular selection by holding down the Shift and Option keys and clicking.
BBEdit 7.0.2 is supported for installation and use on Mac OS 9.1. If you are running Mac OS 9, we still strongly recommend 9.2.2, but if you are using hardware incapable of running 9.2.2, 9.1 will do.
The spelling dictionaries are now located inside of the application package, rather than in the "BBEdit Support" folder. This ensures the availability of the built-in spell checker in the absence of a support folder, which in turn simplifies the installation of the software.
This change affects the "Spelling" preferences: "Add..." and "Forget" are replaced by "Enable" and "Disable", and all dictionaries are listed, with a check-mark next to the enabled ones. (You can double-click on a dictionary to toggle it.) Also, the "Dictionaries..." button and its associated dialog have been removed from the "Check Spelling..." dialog box.
Added "Save a Copy..." to the File menu, right under "Save As". This command can be used to save the current contents (and state, if applicable) of an open window to another file. It differs from Save As in that further changes to the document do not affect the copy just saved, but continue to be applied to the original document.
Added an "Export Project..." command to the CVS menu. Choose a project via the standard CVS folder picker, and then choose a destination in the subsequent Nav dialog.
Commit File and Commit Parent Folder now have variants which do not take a commit message. By default, they are flippy menus on the base command.
The Commit File dialog allows you to override the file being committed.
Command-period will stop the current processes in a shell in addition to Control-C. If you bind both Command-. and Control-C to menu items, you are going to be out of luck, so don't do that.
"Update File..." allows you to pick a file from disk to update.
Added an option to the "Application" prefs to control the number of recent items remembered.
Added a "Unix Scripting" preferences pane. This contains a switch to control whether BBEdit sends Perl and Unix scripts to the interpreter as UTF-8 (the default behavior as of BBEdit 7.0) or as Mac Roman (the default behavior for pre-7.0 versions).
When closing a disk browser, the setting of the "Show:" popup is remembered, so that when future disk browser open up, they'll be set to that value.
The "Convert to ASCII" plug-in is now Unicode savvy (though its primary usefulness remains for working on single-byte text).
The Process Lines Containing plug-in now offers a "Selection Only" option.
When you drop a plug-in on the application to install it, BBEdit will create an appropriate folder in ~/Library/Application Support/ (on Mac OS X), or next to the application (on Mac OS 9) if one does not already exist.
File Browsers will try a little harder to display files that aren't obviously text files.
When the file list gains keyboard focus in an FTP save dialog, the first Tab keypress after connecting will go to the file name field, which is more useful. [125]
The Recent... lists explicitly filter out all files that live under /tmp/ (which is ordinarily /private/tmp/) when running on OS X.
The Font menu now offers 11 and 13 point fonts sizes available as options when running on Mac OS X.
The "Language" item on the Window Options popup in the status bar now shows the window's language, so you don't have to go to the submenu to see it.
The link checker now issues an error if you omit the trailing / on a directory url. [175]
The bbedit command-line tool now supports -e or --encoding followed by the internet name of an encoding to open a file in an encoding other than the user's default.
- bbedit --encoding iso-8859-1 foobar.txt
- bbedit --encoding utf-8 foobar.txt
The configuration dialog for the UnComment plug-in is more OS X studly.
Historically, the Philip bar has served as both a wrapping limit and a window size guide. Since nobody has a 9-inch screen anymore, the bar isn't really useful as a window size guide anymore. Therefore, the Philip bar now moves to the right when line number display is turned on, and will also move in sync with the horizontal scrollbar, the better to serve as a wrapping limit.
When confirming the "Open" dialog, any change to the "Translate Line Breaks" switch is no longer saved. This should eliminate the confusion that results when the switch is turned off (accidentally or intentionally), and then the customer wonders why all their files open on one line.
Any unix scripting language that can run from the #! menu can also now be included in HTML through the bbinclude mechanism.
Added two new HTML include cookies:
#basename#: The name of the file stripped of its rightmost period-delimited portion. For example, if the file is named "test.html", the base name is "test", while if the file is named "test.foo.html", the base name is "test.foo".
#file_extension#: The filename extension for the file (determined as the rightmost period-delimited portion of the filename, without the period). For example, whether the file is named "test.html" or "test.foo.html", the filename extension is "html".
The HTML includes processor supports long filenames now.
The includes markup stuff supports long filenames now. (If a name contains Unicode and can't be inserted into a Roman document, you'll get an error to that effect.)
The form markup tools now support adding "name" and/or "id" to the elements they are editing.
Tag editor dialogs with URL attributes no longer have a 255 character limitation for the URL when running on Mac OS X.
The URL generation code now supports long filenames.
The URL encoder now encodes non-ASCII characters as UTF-8.
When copying a url from the status bar (or through the scripting interface) for a document that lives in a defined web site, we give you the full http://www.example.com/file style url rather than a file:// url.
In HTML text views, if trying to resolve the selection as an include file fails we try to resolve it as a URL before handing it off to the normal Open by Name code.
The script tool now has an option to not wrap the contents of the element in an HTML/XHTML comment.
The Add/Remove Line Numbers and Process Lines Containing plug-ins have been made Unicode savvy.
During initial configuration, if the application is running on Mac OS X and Quartz Extreme is not supported on all displays, the "Allow Text Smoothing" preference will be turned off. It can be turned on again if you're willing to pay the price of slower performance on non-accelerated displays or Mac OS X 10.1.x.
The Help, Home, End, Page Up and Page Down keys can now be used when setting key equivalents. Help can be used without modifiers, the other require at least Command or Control.
Fixes
The top level of the hierarchy is now named "Computer" in the directory popup of disk browsers when running on Mac OS X. (Fixed previously, but not noted.)
The PHP keyword list has been updated to include new keywords from PHP 4.3 and fix a reported omission.
The C function scanner properly handles the "__P" macro used to start parameter lists in Apple's Unix headers.
The C function scanner properly handles the macros "EXTERN_API*", "DEFINE_API*", and "CALLBACK_API*" defined in UniversalInterfaces.h
The C function scanner also properly pulls the function name out of "typedef CALLBACK_API(void, MyFunction)(varType varName);"
If a selection range exists when bringing up the Check Spelling dialog, then "Selection Only" will be selected by default, rather than the "Start at Top" setting persisting from a previous invocation of the dialog.
If Mac OS X Developer Help is in use, the "Toolbox Call Template" command (Insert submenu of the Edit menu, and the "Insert" popup in the status bar) is disabled, since the developer help center doesn't support call templates.
Fixed bug in which Mac OS X users whose system language was Icelandic would have a 25002 error reported when searching. (Fixed previously, but not noted.)
Fixed a broken string in the menu keys collision confirmation dialog.
Made a change to the logic which determines if a window needs normalization. If the window meets the minimum screen intersection requirements but its height or width is larger than the display it would live on, it gets normalized. (This is to make Rich feel better that he doesn't have the Lunch Tray PowerBook. :-)
Pasting into the password fields in FTP browser windows should work correctly now.
When specifying the search string or replace string, the application will try to coerce it to the appropriate text class before using it. This fixes a bug encountered when using the result of an AppleScript concatenation operation.
An error is now reported if the scripting interface attempts to access multiple ranges of text when soft wrapping is turned on.
When inserting files with the "Insert/File Contents" command, the files are now transcoded if necessary and the document is upsampled to Unicode (if necessary).
The default encoding name for the Mac Roman encoding is now "macintosh"; this is the W3C registered character set name. If you want to continue using "x-mac-roman", you can, but you'll need to enter it manually.
Strike in the CSS tools should have been line-through.
The DOCTYPE extractor always uses XML rules now instead of SGML rules so that it will correctly skip over XML PIs that have an embedded >. However, if your PHP has an embedded >, to get the document to properly syntax check you'll have to use XHTML.
Fixed a bug in the URL encoder that sometimes caused usernames with % in them to get munged when stored as FTP bookmarks.
Worked around a bug in the third-party ActionScript language module that broke word-left and word-right actions.
Made CVS Export work if $CVS_ROOT is not defined.
Selecting a home-relative path name, e.g. "~/projects/dox" and hitting Command-D now does the right thing when the document is saved.
Fixed bug in which the "Project Builder" check box was incorrectly disabled in the Tools preferences.
Fixed bug in which the CodeWarrior compile commands were disabled for files belonging to a CodeWarrior project when Project Builder support was turned on.
Fixed bug in which very large keyword tables were not loaded.
When adding the missing id attributes to the XHTML tables, I marked them as required by mistake. Fixed.
Avoid calling slow pieces of CF to compute process bundle locations when updating the preview menu on Mac OS 9. This should avoid a particular slowdown which may manifest as "hangs" when launching or terminating apps on Mac OS 9 while BBEdit is running.
Fixed a bug where if you ran a filter on Mac OS X with no shebang line, you crashed.
Worked around the bug in AppleScript on Mac OS 9 that prevents the scripting dictionary from being accessible to the Apple script editor.
When starting with uppercase data, Form Words didn't force characters following an apostrophe to lower case, so if you started with "RICH'S DEN OF INIQUITY" and ran a Form Words, you'd end up with "Rich'S Den Of Iniquity".
'styl' resources are no longer written into files that are encoded other than MacRoman.
"const" and "volatile" keywords are now ignored if they appear immediately after the "typedef" in C/C++/Objective-C source files.
Folder aliases are now correctly resolved when you select one and do a Command-down-arrow in a disk browser window.
Fixed "ByRef" VBScript keyword omission.
Fixed crash which would occur when attempting an AppleScript "move" operation on text objects. (A "move" still won't generate the desired results, for reasons that won't be addressed in this release. If you want to do a move, split it into its constituent operations.)
Fixed bug in which a single-character word was specified as the wrong type: "word N of window 1" returned "word M of window 1" where M was the actual character offset of the word. Now, the correct result is returned: "character M of window 1
Linefeed translation is now implicit for text files opened via FTP, not inferred from the global preference.
Fixed bug in which the temp file's name was mistakenly used as the default when using "Save to FTP Server" on a file that had previously been opened via FTP. This was generally only a problem when the file's name on the FTP server was long enough that the HFS hash representation got used.
When you save a document, it is now bumped to the top of the recent list.
Fixed a bug in the Recent code where if we opened more than one document per second the Recent menu could get out of sync with the folder of recent aliases on disk.
The modal FTP dialogs (Open From/Save To... FTP Server ) now ensure that the list is drawn using the system font. This may address the reported problem in which descenders were clipped off in the FTP dialog lists (but since I could never reproduce it, I can't be sure).
Recent items opened via FTP now float to the top of the list on a save.
Full paths in the recent menu for FTP items are now display consistent with full paths for local items.
Tweaks to the FTP Recent stuff to make it match the new behavior (float to top on save) for local documents.
When displaying the full path for an FTP file in the recent menu, show the path on the server, not the path to the local cached copy.
Fixed a bug where we had the wrong signature in our constant for Project Builder so communication back through Apple Events wasn't working correctly.
id was missing from some elements in the XHTML 1.0 language tables.
When writing text files from Unicode, if any "unmappable element" errors occur an error code is returned instead of merely substituting SUB (0x1A) chars for each unmappable char.
Fixed a bug in the text status bar where when the line number bar changed visibility, the tab stops didn't draw in their new position until that area of the window was otherwise updated.
Fixed a bug in the embedded script runner where running a script subroutine leaked an open resource file. We would eventually run out of file descriptors and not be able to do anything else.
Tweaked the PHP scanner to allow whitespace between the '<<<' and the closing ID of a HereDoc string.
Tweaked the VBScript scanner so that 'REM' must be followed by whitespace (or the end of the text) to be considered the beginning of a comment.
Added type="application/x-javascript" to the HTML scanner as a valid language trigger in SCRIPT tags.
XML UnComment strings are no longer lost.
"Update File" has correct ellipses usage.
Update Folder was not properly pruning obsolete directories. Now it is.
Closing a shell worksheet properly terminates its child processes.
The bbedit tool will now go into the pipe handling case even when -b is specified on the command line.
Fixed a bug in CVS go to next/previous conflict where it now selects the right range, but didn't ensure that it was scrolled into view.
Corrected a bug where the HTML Preview preferences file picker didn't let you navigate through folder aliases.
Added Safari to the factory default browser list.
Fixed a bug in the Sort Lines plug-in where when scripted it was ignoring the specified sub-pattern in the apple event. Process Duplicates had the same bug.
Fixed a bug in shell worksheets where read state only closed the resource fork if an exception occurred.
Fixed a bug in the bbedit tool where if you invoked the tool using a non-existent filename, it would go into the pipe case rather than doing the usual error reporting.
Worked around a system bug where on Jaguar scripted find results come back with the first record being identical to the last.
The default new-document encoding is now set properly when the window is brought up, which fixes a bug in which a document couldn't be saved if it wasn't in the default encoding.
If an invalid file encoding is specified for the "read as" parameter in an Open event, the application will now report an error to that effect.
Fixed bug which would occur when opening a UTF-16 file using "Read As".
Tilde substitution is done correctly in the Copy Path status bar command.
The "Verify Open Documents" operation now ignores the volume mod date when running on Mac OS X. This should yield more reliable results when running on Mac OS X and dealing with files on non-HFS volumes (e.g. NFS).
Improved accuracy of searching via Open Selection/Open by Name when using the CodeWarrior path information. (Sometimes CodeWarrior would return a Unix path, which BBEdit couldn't handle before, but can now.)
Fixed bug in which comparing two files with more than 32767 differences would cause the Differences window to open up with an empty list.
Fixed bug in which BBEdit would become unusable due to Apple Event sending stalls while the CodeWarrior IDE was building.
Fixed bug in which it was difficult to cancel an Open Selection or Open File by Name operation.
Tweaked the algorithm used to determine if a window is stuck to the top/side for purposes of leaving room for palettes. This will hopefully solve the problems people were having with odd window placement/sizing.
Fixed crash in the menu sharing glue which would occur when Frontier was running in Classic on Mac OS X. Note that menu sharing is unlikely to actually work in this situation, but at least it won't crash anymore.
Made a small change to eliminate artifacts created when scrolling a hilited area in an inactive view (as in a disk browser preview pane when the file list pane is the active one).
Add/Remove Line Numbers no longer adds a byte of garbage to files that didn't end in a newline character.
Fixed a bug in New Document where if you had a window like the preferences window open errors would be attached to the wrong window (and you'd get a -43).
Fixed a bug in CVS revision lists where if the item wasn't found in the list, the application could crash.
Fixed a stupid off-by-1 bug in the Anchor dialog. (The labels for the equivalents on the scheme popup were off by 1 - but they actually did insert the intended value.)
Corrected a problem in the XHTML 1.1 language table where STYLE and DIR were omitted in the attribute list for elements for which they were valid.
Fixed bugs in the Sort Lines plug-in's scripting support:
Parameters were marked as optional in the dictionary but were not treated as such.
There was no way to control selection only.
Fixed bugs in the Process Duplicates plug-in's scripting support:
Parameters in the dictionary which were required were not marked as such.
Parameters which were required were not treated as such.
There was no way to control selection only.
BBEdit does rudimentary parsing of the #! in perl scripts. If it sees the taint switch, it passes this to the Perl interpreter on your behalf (including it in the #! is too late.)
In the style dialog if there is no stored value for Type, we fill in text/css so the user knows that is what they should use absent a need to use something else (instead of leaving it blank.)
If you clear the edit field and don't remember the right mime type it is now available from the quickfill popup on the right of the edit field.
The link dialog inserts the link type in lowercase now (these are case insensitive values, but better aesthetically to standardize on one case - lowercase.) Same for the language in the script dialog.
If you use a "non-standard" media type in your style element, the style element editor will no longer eat the value and slam it to a predefined value - your custom media type is preserved.
Fixed a edge condition in the Paragraph tool which would cause the last paragraph of a selected range to not be marked up.
Fixed a bug in the Perl stuff where if we didn't parse out all the errors, and the script was aborted during compilation, the unparsed errors were silently eaten (rather than being displayed as text.)
Adjusted the Perl error parser for Mac OS X to parse "Global symbol "$home" requires explicit package name at /Users/correia/Desktop/perltest/Test.pl line 9, >DATA< line 29."
Corrected a couple of problems in the URL parser where it wasn't tokenizing the components (path, query, and fragment) according to the rules of RFC 2396 when both a fragment and a query were present.
The URL encoder now encodes (and flags as needing encoding) control characters that occur within the URL.
Changes to the URL encoder to make it RFC 2396 compliant.
Fixed a regression in Unix scripting where running the front window in the Terminal from AppleScript caused a crash.
Sending in an incorrect type for: "normalizing tag case normalizing attribute quotes encode entities in attributes" in format scripting no longer silently eats the error and performs the default action.
Document size once again works on untitled documents.
Fixed a bug where the CSS background dialog was transposing left and top when editing an existing rule set.
When generating script markup with a src attribute, we automatically omit the "comment" wrappers since the contents of the script element are ignored in this case.
Fixed the bug responsible for Unix filter output being inserted into Unicode windows incorrectly.
CVS Go To Next/Previous Conflict and automatic conflict selection on update was broken. It isn't anymore.
The backup options dialog now displays long/Unicode filenames correctly.
Fixed bug which was causing BBEdit to send save notifications to itself for documents opened by using the Open dialog, Open File by Name, and other self-generated invocations.
BBEdit no longer sends two save notifications to the CodeWarrior IDE when saving a document; only one is sent.
The CodeWarrior state checker will now back off for ten seconds if an event timeout occurs, rather than retrying immediately.
Fixed bug in which the wrong menu item would be selected as the default in the "Save As..." Options dialog if the default file type wasn't one of the built-in ones.