New Features

  • Visual Wrap
    Visual Wrap is a passive display mode that allows text to be automatically wrapped to the window width without introducing hard line enders into the file. This feature is useful when editing files with very long lines which would otherwise extend off-screen to the right, out of view. The Visual Wrap Options dialog provides access to options related to the operation of Visual Wrap. Wrapping can be set to occur at the window width, the Text Width, or at the Right Margin Rule. By default, Visual Wrap is maintained when edits are made, although this can be optionally disabled. An option is also provided for dealing with trailing spaces when Visual Wrap is first applied.

    In Visual Wrap mode, the Line count in the status bar switches to a Paragraph counter, since a one-to-one relationship between screen lines and physical lines no longer exists. Lines with a soft line ender are denoted by a trailing space character, and a single left chevron (<) is displayed if Visible Spaces mode is active. Adding a trailing space to a line converts a hard line ender to a soft line ender; removing the trailing space converts a soft line ender to a hard line ender.

    Additional commands have also been added in support of Visual Wrap. The Soften Line Enders command can be applied to a text file which has unwanted line enders, thereby making the file "flowable" and eligible for Visual Wrap. The Harden Line Enders command does the opposite: it converts soft line enders to hard line enders, effectively "locking" the current on-screen formatting into the file. The new Go to Paragraph command has been added to allow a jump to specified paragraph number.

  • XML Formatting
    Two new commands have been added to the Tools menu: Format XML and Unformat XML. These commands can be used to apply and remove formatting, respectively, from XHTML and other XML-compliant text files. If you've ever opened an XML file and seen one long, flowing line extend off the right edge of the screen, you'll appreciate this new feature.

    Format XML adds newlines and indentation intelligently to any XML-compliant file to create a neatly formatted document. Options are provided to control the amount of indent, whether to indent with spaces or tabs, when and whether text and tags should be wrapped, when to suppress newlines, and other formatting nuances. If a range of lines is selected, formatting or unformatting will be performed only on the selected lines. Upon completion, a statistics dialog provides information to assist in locating unmated or unclosed tags, or other data inconsistencies. A set of automation options provides precise control over how/if/when XML files should be auto-formatted as they are opened. The Unformat XML command can be used to convert a formatted document to "flat" form, in case this is required for processing, to reduce file size, or for other reasons.

  • User-defined Toolbar Icons
    Using the Configure|Toolbar dialog, it's now possible to assign new icons to any of the toolbar buttons. New icons can be assigned to change the look of Boxer's toolbar, or to provide distinct icon images for commands that would otherwise use the same icons (Macros and User Lists are two such examples). User-defined image files can be either icon (.ICO) or bitmap (.BMP) files. Two new icon sizes are also available: in addition to the existing 16x16 and 32x32 options, 24x24 and 48x48 scaling options have been added. A collection of 64 sample images is provided with the release, and users are free to use icons from others sources as well, or to create their own.

  • Windows 7 Compatibility
    Boxer 14 has been tested and tuned to run under Windows 7, Microsoft's newest operating system. Boxer runs under both the 32-bit and 64-bit versions of Windows 7.

  • Efficient Line Number Display
    Boxer will display its on-screen line numbers using the minimum number of columns possible, expanding and contracting the line number margin automatically if the file's line count grows or shrinks.

  • Move Line Up/Down
    Move Line Up and Move Line Down can be used to easily move items up and down in an ordered list. These new commands appear near the bottom of the Edit|Line menu. Though simple in concept, you'll be surprised how much these commands can speed common editing operations. (The Swap Lines command, which was nearly identical in function to the new Move Line Down command, has been removed from the menu, but remains available for use by shortcut key, or within macros.)

  • Text Obfuscation
    ROT5, ROT13, ROT18 and ROT47 conversion commands have been added to the Block|Convert Other submenu. These commands provide a simple, reversible text obfuscation scheme for use in non-critical encryption situations.

  • Line Spacing: this new Block menu command permits a selected range of lines--or the whole file--to be converted to single-, double- or triple-spaced format.

  • Support for handling ANSI X12 files has been added. On the file open dialog, an option has been added to instruct Boxer to recognize an end-of-record character, after which a conventional line break will be added as the file is read. This function can also be activated (for the next file named) by using the -E command line option flag. This feature is useful for opening ANSI X12 files, and any other file format that uses a non-standard record ender. By default, the inserted line breaks will be written to the file when it is next saved. To override this behavior, use the File|Properties dialog option to remove line enders when saving.

  • The File Tab context menu has a new Open Containing Folder option that can be used to open an Explorer window into the folder that contains the file being edited.

  • Netbook compatible: Boxer's menus have been tuned to ensure they fit on a 1024 x 600 screen size, as is found on most Netbook computers.

  • The Value at Cursor command now displays the Unicode code point for the character at the cursor, as well as the numeric or named HTML entity for that character.

  • The Replace confirmation dialog includes a new option called "Skip to Next File." This option can be used when a Replace is being performed across all open files, and you'd like to move immediately to the next file without processing any remaining matches in the current file.

  • The new Window|Last Visited command provides a convenient means to return to the last visited window. The default shortcut key for this command is Shift+Alt+F6.

  • The new Unhighlight Matches command on the Search menu removes highlighting from matched strings, leaving the "Highlight all matches" option on the Find dialog undisturbed.

  • New macro function: FTPOpen(string fn) can be used to open an FTP file, using Boxer's syntax for naming an FTP file and the account from which it is opened.

  • New macro function: the Trunc() macro function has been added. It can be used to truncate a floating point value to a specified number of places.

  • New macro function: GetSelectionBounds() retrieves the line and column boundaries of the current selection.

  • The GetString() macro function now recognizes an optional third parameter. If present, this new string parameter is presented as the default entry string in the dialog that appears to collect user input.

  • A set of commands has been added that allow closed file tabs to be reopened more easily. Right click on a file tab and choose "Undo Close Tab" to undo the most recent file closure. Options are also provided to undo all closed tabs, to selectively reopen closed tabs, or to clear the list of closed tabs. The last ten (10) closed file tabs are recorded. Clicking the middle mouse button in an empty area of the file tab zone is recognized as a shortcut gesture to undo the last closed file tab.

  • Boxer's file loading and saving has been enhanced so that it's now possible to create a zero-length file, or a file with just a few characters and no trailing newline. In the past, an empty line was assumed to always contain a line ender.

  • Improvements were made to the Null Character Handling dialog: the name of the file that triggered the dialog is now displayed on the dialog. Also, an option is provided to always open files containing nulls in hex editing mode, thereby avoiding display of the dialog. A Help button has also been added.

  • When resizing a document window by mouse, a report appears on the status line that shows the width of the window in columns.

  • When sizing the panes of a split window by mouse, a report appears on the status line that shows the percentage of width/height allocated to each pane.

  • The Block|Save Selection As command has been enhanced so that text fragments will be saved using the current file encoding format from File|Properties (ASCII, UTF-8, UTF-16 little endian or UTF-16 big endian) and the current line ender style (PC, Macintosh or Unix).

  • In Power Columns mode, the Home key will be recognized as a request to shift the selection to column one.

  • Four new command line options:
    -WH
    Set the height of the main application window to the value specified. -WL
    Position the main application window with its left edge at the specified pixel location.
    -WT
    Position the main application window with its top edge at the specified pixel location.
    -WW
    Set the width of the main application window to the value specified.

  • A Wrap-to-window checkbox option has been added to the viewer in the Paste-As dialog.

  • The latest version of Ctags, v5.8, has been added to the release.

  • The ANSI and OEM Character Set Charts each display the active code page name and number for reference.

  • The Word Count feature now includes newlines in its character count report, with proper consideration to the length of the newline that will be added to each line (PC line enders use two characters, other styles one character.)

  • A "Stop" button has been added the Jump|Ctags Function Index dialog. This button can be used to halt Boxer's internal processing of a lengthy Refresh operation. The external processing performed by Ctags itself cannot be halted in this way.

  • Added the $BoxerDrive User Tools Macro, which expands to contain the drive letter of Boxer's program folder.

  • Updated the default syntax highlighting info for C++ reserved words and preprocessor directives.

  • New Syntax Highlighting information was added for the following languages: Euphoria, PocoScript, Powershell, Vera, Verilog and VHDL.

  • Provide an option for experienced users to disable the warning message and halting of macro execution that occurs when a macro tries to execute a disabled editor command.

  • Perl Regular Expressions support has been enhanced to use character conversion tables that respect the current locale. This makes it possible to perform case-insensitive searches for text strings that include accented characters.

  • The text of some of the PCRE regular expression compiler error messages were made more meaningful and helpful.


    Changes

  • When running under a color scheme with a black background, the operating system would change some of the calculator's text labels to white, which did not contrast well on the calculator's silver faceplate.

  • Boxer will be less demanding of CPU cycles when it is focused and idle, and when the application is inactive.

  • The selected range will be adjusted internally when a Power Columns delete operation is requested for a range of lines that extends to the empty line past EOF.

  • When running in portable mode, the path to the Ctags Program and Ctags Output File is computed anew each time, in case the drive letter of the USB drive has changed since the path was last saved.

  • The System Info display, accessible from the About dialog, was updated to properly report the operating system name when Windows 7 is in use.

  • The "Default" button on the Configure|Toolbar dialog will now reset the various options on the dialog, and not simply the toolbar button contents and relative order.

  • The installer was changed to prevent the user from selecting the portable installation option, and then specifying an installation directory on a fixed drive.

  • Various changes were made to help reduce flicker when loading or restoring several files. In particular, improvements were made for the case when maximized child windows within a maximized application window were loaded or restored.

  • When printing, and visible spaces are not being printed, strip trailing spaces to prevent the possibility of a line wrapping due to trailing spaces.

  • Added a confirmation dialog before Delete Bookmarked Lines performs its function.

  • Ensure that the Next Bookmark and Previous Bookmark commands scroll the screen left/right as needed to bring the bookmark location into view, and sufficiently to provide visual context.

  • When a file is reloaded using File|Reload, reset the internal flag so that it will be reindexed for Ctags. This makes it easier to test changes made to the CTAGS.CNF file: no need to close Boxer, just reload a source file to see the effect of your changes.

  • After the Configure|Ctags Function Indexing is run, ensure that all files are re-indexed in case the configuration changes made have affected the indexing results.

  • Auto-Complete was changed so that accented characters can be matched case insensitively.

  • A refinement has been made to Tab key processing in the custom file open dialog: the text cursor will be placed inside the closing double quote after a file expansion occurs, so it's easier to type a new, non-existent filename. In the past, the user would need to place the cursor inside the double-quoted string manually for this case.

  • The various Delete Lines That... commands have been enhanced so that accented characters are properly recognized for operations that are insensitive to case.

  • The Highlight All Matches option of the Find dialog has been enhanced so that it can highlight accented characters properly when case-insensitive searches are performed.

  • Allow the maximum line length to be a full 32k (32767) characters, instead of 32k-2.

  • The various OEM/ANSI/Error/HTML... charts have been moved to a "Reference Charts" submenu on the Tools menu.

  • Added .XHT and .XHTML at file extensions for HTML syntax highlighting.

  • Find Mate: make a change to permit duplicate entries in the mating pairs list used by Find Mate. This is sometimes needed to support HTML tags that are used with and without attributes.

  • Added new HTML and XHTML tags to the default list of tags used by Find Mate. Made the defined mating pairs work more reliably with tags that contain attributes.

  • Refine and update the default file extensions that control when the Open in Browser command can be used.

  • When the Page Setup option "Wrap long lines to the next line" is in use, ensure that the first character in a wrapped line is not a space.

  • Rename the "Strip HTML Tags" command to "Strip HTML/XML Tags."

  • Change the ValueAtCursor() macro function to ensure command is enabled after loading a file from within a macro.

  • Give a warning message when the content of a private clipboard is too large to be saved for the next edit session.

  • Allow the Edit|Copy Filename command to be enabled in hex editing mode.


    Bugs

  • Under some circumstances, if Boxer lost focus while a modal dialog was topmost, the program would effectively be locked up when focus was restored, since the modal dialog did not always return to its topmost position.

  • When a modal dialog with a "tool window" style border was active, the Boxer application icon was not appearing in the Alt+Tab application list under Windows Vista or Windows 7. Similarly, the File Picker and Programmer's Calculator, which are distinct executables, will now appear in the Alt+Tab application list under Windows Vista and Windows 7.

  • If a file that belonged to a Boxer project was changed outside of Boxer in such a way that the stored cursor location became invalid, a crash could occur.

  • The Copy directory function on the custom File Open dialog box was not formatting its results in perfect columnar format.

  • Sometimes the label in the File Open dialog that reports the number of files selected would report "2" when it should have reported "1."

  • On Vista and Windows 7, Boxer could not locate its INI file to read a few settings it needed early on in its initialization.

  • An access violation could occur if Boxer was left open when system shutdown was requested.

  • After a breakpoint was set from the Macro dialog's Debug interface, the breakpoint would still be active if the macro was run with the dialog closed.

  • Trouble with Search and Replace when "wrap around" option used: on the line on which the operation was begun, text to the left of the cursor would not be processed, and text to the right of the cursor would be processed twice.

  • If the Hex Viewer in the Paste-As dialog was selected without toggling "Show all clipboard formats," the clipboard viewer would be empty.

  • With one window open: split a window, unsplit it, press F6 to go to the next window, cursor would disappear.

  • The state of the Project|Auto-Update setting was not being properly restored from session to session.

  • An *extremely* long "favorite dirs" setting could cause corruption of the Boxer.ini file.

  • The Block|Total command could report erroneous results when operating on European style values (1.234,56), if the text to right of the values being totalled contained one or more decimal points.

  • Keystroke Recordings that involved keys pressed during Power Columns mode did not play back correctly.

  • An Invalid Line error occurred when pasting full-line text mode from the clipboard into a Select-All text selection.

  • Loading Unicode UTF-16 files with lines greater that 16k characters in length could result in a crash.

  • The Round() macro function returned imprecise results for certain rounding operations.

  • When text is selected, a report is displayed on the status line that shows the number of character contained in the selection. If the line ender property for the file was CR+LF (PC line ender), the report was accurate. If the line ender was either CR (Macintosh line ender) or LF (Unix line ender), the character count was inexact.

  • Ensure that a CTags tip is immediately removed from the screen when the mouse exits the window by sliding across the open tip.

  • The View|Shaded Tab Zones and View|Tab Display Size commands would each issue an error if run when no files were open.

  • The DeleteLinesThat***() macro functions were not properly tolerating the absence of the optional second parameter.

  • Activating a series of windows by clicking their file tabs did not preserve the internal Windows Z-order for the child windows.

  • If the Edit-As-List button was used on the Configure|Text Highlighting dialog to remove all text highlighting strings, an exception error could occur thereafter.

  • Under some circumstances, the line numbers used for jumping to a line from the results window of the Find Text in Disk Files feature could become out-of-sync with the line numbers displayed in the report.

  • If Boxer was left open while logoff or shutdown was attempted, an error would be reported.

  • Passing command line parameters from an external application that calls Boxer had been disrupted due to another change. That change (which made it easier to abort an unwanted series of file open requests) has been rolled back in favor of restoring this functionality.

  • The macro function AppendToClipboard() was not working properly when used with a private clipboard.

  • When the Tab key was used in Power Columns mode, and was configured to insert spaces rather than hard tabs, the number of spaces inserted did not properly account for the cursor column at the time the tab key was pressed.

  • Under some circumstances, a "List index out of bounds error" could occur when closing a file, if the file was a member of an open project.

  • An access violation could occur if an invalid filepath was found in a project file.

  • An exception error could occur if the Ctags.txt file contained very long lines.

  • When Ctags indexed more than 5,000 files, a warning message would be given repeatedly.

  • Issuing the "Help On" command when no files were open produced an error.