010 Editor - Release Notes Version 11.0 - September 30th, 2020 The following is an overview of the new functionality in version 11.0 of 010 Editor: New default editor font "Droid Sans Mono" and new themes "Starry Sky" and "Morning Sky".

Simplified editor display and the bar above each editor has been hidden (Run Template and Run Script are moved to icons in the Tool Bar and Edit As and Syntax are moved to the Status Bar).

Run, Repository and Debug icons are now displayed in the top-right corner of a Script or Template as overlaid icons.

Can run a Template at the current cursor position or on a selection by right-clicking on a Hex Editor and choosing Run Template at Offset .

. Improved Status Bar which includes a number of popup sections.

'local' structs are now supported in Templates and Scripts.

Capture groups / backreferences can be used when replacing with Regular Expressions.

When selecting bytes, the selection color is now blended with the existing colors allowing information to show through the selection. The following is a list of all new features in version 11.0 of 010 Editor: Style Added new dark and light application themes Starry Sky and Morning Sky (older themes are still available). New style for a number of dialogs including an improved Welcome dialog, About dialog, Repository dialog, Options dialog and splash screen. Fonts are now more consistently applied across the application on Windows. Tool Buttons can be styled now and rendering is improved. Clicking on a Tool Button when a popup is shown will hide the popup. Table Headers can be styled and rendering is improved. Tables have a solid focus indicator instead of a dotted indicator.

Editor New default editor font "Droid Sans Mono". Simplified style for the Text Editor and Hex Editor with a thinner ruler. When selecting bytes, the selection color is now blended with the existing colors allowing information to show through the selection. The amount of blending for the selection can be adjusted in the Theme/Colors page of the Options dialog. In the Hex Editor, improved drawing of colored bytes so that gaps do not appear in the display. The bar above each editor has been hidden by default. When editing a Script or Template, buttons for Run and Repository are overlaid over the editor in the top right-hand corner. Can right-click on the overlaid icons to hide them or use the ' View > File Bar ' menu. Run Template and Run Script sections are now moved to icons in the Tool Bar by default. Edit As and Syntax sections are moved to the Status Bar. When scrolled to the right, a Scroll Shadow is now drawn along the left side of the editor (can be turned off in the Options dialog). The old-style File Bar can still be shown using ' View > File Bar > Show Old File Bar '. When editing a Hex file, new options Run Template... and Run Template at Offset were added to the right-click menu. The Ruler displays a thicker line at column 80. Removed the cursor hourglass display on undo/redo for small operations. Hid the Undo/Redo actions from the right-click menu if there is no operation to Undo/Redo. Adjusted the wrap line indicator in the left-hand column. Can apply a style to the splitter buttons in the editor scroll bar.

Templates and Scripts The 'local' keyword can now be used with enums and structs. 'GUID' is now built-in as a typedef for an array of 16 unsigned bytes with read/write support in the Template Results. Templates can now be run at an offset (i.e. at the current cursor position on on a set of selected bytes). In the Template Results header a refresh icon is now shown which can be clicked to re-run the Template. The Template Results panel splitter renders better when resizing. When running a Script or Template that is focused, the editor attempts to make the target data file visible (this can be turned off in the Compiling Options dialog). Octal notation

nn is now supported inside a string where n is from 0..7 (before just \0 was properly supported). String assignment with '=' now copies the whole string including null characters. Added GUID highlighting to 010.bt syntax highlighter.

Running Templates at an Offset Can right-click on a Hex Editor and choose Run Template at Offset to execute a Template at the current cursor position. If a selection is made, Run Template at Offset can be used to run a Template on the current selection. Run Template at Offset shows a Run Template dialog with a Run at Offset toggle and field at the bottom. Enter the offset to run the Template in the Run at Offset field. The field will automatically be filled with the cursor position or the start of the selection. Optionally enable the Limit Size field and enter the number of bytes in the field. The Template will be able to access this number of bytes from the offset. The dialog box keeps a history list of the offsets and size limits used. The Run Template dialog shows the list of Open, Installed and Recent Templates similar to the Run Template drop-down in the Tool Bar. A Template now uses virtual addresses that are relative from the offset. For example, address 0 in the Template corresponds to the file position offset . All functions which access addresses use the virtual addressing scheme (e.g. FSeek, FTell, startof). All functions which access the size of the file use the size limit (e.g. FEof, FileSize). After running a Template at an offset the Template Results header reads 'Template Results - <filename> @ <offset> | <sizelimit>. Clicking the down-arrow to the right of the Template Results header shows a popup menu for changing the offset or clearing the offset. Addresses in the Template Results are shown relative to the start of the file by default but can be shown relative to the offset by right-clicking on the Start column and selecting Start Addresses > From Offset .

Templates and Scripts - Local structs The 'local' keyword can be used with structs to declare a struct as in regular C. Local structs can be used in Scripts as well as Templates but must be declared with the 'local' keyword. All variables defined inside a local struct are automatically local but sub-structs must still be declared with the 'local' keyword.

Templates and Scripts - Functions Added new functions for working with GUIDs: GUIDToString and StringToGUID. Added new functions for display formats: GetDisplayFormat and SetDisplayFormat. Added new functions for keep file time: GetKeepFileTime and SetKeepFileTime. Added new functions for checking status: IsBitfieldLeftToRight, IsBitfieldPaddingEnabled and IsUndoEnabled. Added new functions for running Templates at an offset: OffsetGetStart, OffsetSetStart, OffsetGetLimitSize, OffsetSetLimitSize, OffsetClear. In the FindInFiles function added an option to follow symbolic links. In the AddBookmark function changed arraysize to int64. Function GetFileNum now returns -1 if it is called in a Script which has no file target instead of causing a runtime error.

Tool Bars Added new Run Template and Run Script icons which display a drop-down list of Templates or Scripts to run. The drop-down list from the Run Templates or Run Scripts icon shows a list of Open, Installed or Recent Templates or Scripts. Hid the Change Font and Endian icons in the Tool Bar (can be shown by right-clicking on the Tool Bar and select Font or Endian , and note Endian is still visible in the Status Bar). Improved rendering and changed style of some Tool buttons. Tool Bars can now be docked to the left or right side of the application. Reordered icons in the View tool bar. Can change text and disabled text color of tool bar items with the Options dialog. Added icons to the Run Template drop-down to open the Template Repository dialog or Run Template at Offset. Added an icon to the Run Script drop-down to open the Script Repository dialog.

Status Bar Reorganized the Status bar into 3 sections and changed the style on some operating systems. Most Status Bar panels can now be clicked to show a popup menu or change status (clickable panels highlight and show an up-arrow). The central section of the status bar shows different information depending if a Text or Hex file is shown. For Text files, the central section shows Edit As, Syntax Highlighter, Character Set, Linefeeds, and Tabs (also shows Endian for Unicode character sets). For Hex files, the central sections show Edit As, Character Set and Endian. Clicking on the Position, Byte Value or Size panel shows a popup used to change units or open the Goto or Set File Size dialogs. Binary is no longer shown in the Byte Value panel (moved to Inspector) but can be shown by clicking on the panel and selecting Byte Value Units . Commas are shown by default in the File Size panel but can be turned off by left-clicking and selecting File Size Units . Clicking on the Edit As panel shows a popup menu to choose a new Edit As (e.g. Text, Hex, Binary, etc.). Clicking on the Syntax Highlighting panel shows a popup to choose a new Syntax Highlighter or turn off Syntax Highlighting. Syntax Highlighting panel shows 'Plain' if no Syntax Highlighter has been chosen. Clicking on the Character Set panels shows a popup to select a new character set or convert to a different character set. Linefeeds panel now shows 'CRLF' for DOS linefeeds 0D0A, 'LF' for Unix linefeeds 0A, or 'CR' for Mac linefeeds 0D. Clicking on the Linefeeds panels shows a popup menu to convert to a different type of linefeed. Tabs panel now shows SPC if inserting spaces or TAB if inserting tabs. Clicking on the Tabs panel shows a popup menu to change the tab settings. Clicking on the Endian panel toggles the endian and no longer shows a popup menu. Added more information to hints for the panels.

Repository A Repository icon is displayed in the top-right corner of a Script or Template editor and clicking the icon displays the Repository menu. The Repository icon changes depending upon the status of the file (gray means the file is not in the repository and blue means the file is in the repository). On the Repository menu, renamed some menu items from 'Submit File...' to 'Submit to Repository...' and 'Update' to 'Update from Repository...'. When editing a Script or Template, the Repository menu can also be accessed from the editor right-click menu. On the Help menu added View Repository Status and View Repository History . The Repository dialog shows tabs on the bottom and has a new style. In the Repository history dialog, the Comment field now displays the description of the file for the initial version.

Capture Groups / Backreferences When doing a Replace operation with Regular Expressions, backreferences (capture groups) can be used in the replace string. Brackets ( and ) can be used in a Regular Expression to create a capture group. Use \1 up to \9, or $1 up to $9 to reference capture groups 1 through 9. Use \k<n> or ${n} where n is any integer to reference capture group 10 or higher. Named capture groups can be created in a Regular Expression using (?<name>...) A backreference to a named capture group can be created with \k<name> or ${name} in the replace string. Used capture group \0 or $0 to reference the text matching the whole regular expression. The codes \t,

, \r, \a, \e, \f, \v, and \xHH can now be used in the replace string.

Debugging When the debugger is active, the Continue, Stop, and Step icons are overlaid on the top-right corner of the Script or Template being debugged. The Debug Tool Bar is now hidden by default but can be shown with ' View > Tool Bars > Debug '. By default only a Pause button is displayed in the Tool Bar which can be used to pause or stop a running Script or Template. The icon was changed to a double-arrow for Continue. Breakpoint indicators were resized and fixed for drawing issues.

Workspace Added a Table header with File and Path sections to the Workspace to be more consistent with other tabs. Modified files are now shown as bold (can turn this off by right-clicking on the Workspace and selecting Options ). Only show icons now for Scripts, Templates, Drives and Processes (removed file icon for regular files). Possible to display folders with bold text (right-click on the Workspace and select Options ).

Inspector 'Binary' and 'GUID' have been added to the Inspector. The Inspector.bt file has been added to the Repository which can be used to customize the Inspector.

Find and Replace Added new Find Next/Previous icons. Tool buttons in Find Bars work better with popup issues fixed. In Find in Files, added an option Follow Symbolic Links . Turning this off ignores directories that are symbolic links. In the Find Bar, text is now not automatically converted to uppercase before being displayed in the bar. Lines used to resize sections of the Find bar are now drawn as solid instead of dotted.

General In the Calculator, when multiplying two integers the multiplication is now done as an int64 to prevent overflow. Added ' View > Linefeeds > Show Wrap Line ' to allow drawing a wrap line even when wrapping is turned off. ' View > Character Set > Use Default Char Set ' menu option now includes the name of Edit As to be more clear. When a license for a previous version of 010 Editor is entered in the Register dialog, clicking the 'Check License' button displays the greatest version the license can run. Renamed 'File Interface' to 'Edit As' in the interface and the documentation. Each Dock Header now highlights when the mouse is placed over them when they are docked. Added ' View > Status Bar > Byte Value Units ' to control what is displayed in the Status Bar Byte Value panel. Reordered the ' View > Font ' menu. Added the ' View > File Bar ' menu. Added Insert Tabs to the ' View > View Tabs/Whitespace ' menu. On macOS removed the ' View > Show Tab Bar ' menu option. The tear marker on File Tabs is easier to see. Improved style and drawing in the Explorer tab. Clear All Bookmarks action now asks for confirmation before proceeding. Added scroll bars to the tutorial for long pages.

Options New style for the Options dialog. Scroll bars are automatically displayed now when resizing the dialog. Renamed File Interface page to Edit As . Renamed Keyboard page to Shortcuts . On the Fonts page added Application Font and Dock Header Font . On the Fonts page added Set Old Editor Fonts button to set editor fonts to fonts used in previous versions of 010 Editor. On the Editor page added Show Shadow when Horizontally Scrolled option. On the Edit As page the names of the linefeeds have changed. On the Compiling page added Show Target File after Running Script/Template . On the Theme/Colors page added new styles Starry Sky and Morning Sky . On the Theme/Colors page older styles are listed in the -----Older Themes----- section. On the Theme/Colors page added option for native drawing of Tool Buttons and Table Headers. On the Theme/Colors page some colors have an opacity slider for blending with the background color (0% means transparent and 100% means fully opaque). On the File Dialogs page the directory for Open File, Open Template and Open Script can be set to Current File Location / Last Used Directory or Current File Location / Last Used ??? Directory . Added Application colors: Dock Header Highlighted. Added Tool Bar colors: Button Highlighted, Button Selected, Button Down, Text and Disabled Text. Added Status Bar colors: Status Bar Highlighted, Status Bar Line. Added Dock Window colors: Explorer Fields. Added Table colors: Header, Header Outline, Header Highlight, Grid Lines, and Selected Cell. Added App Bar color: App Bar Splitter. Added Editor colors: Wrap Line, Splitter Button and Scroll Shadow.

Manual Changed help viewer style and icons to better match main application. Reorganized Templates and Scripts manual section to include a Language Reference. Fixed the help viewer now does a better job picking an initial size.

Bugs Fixed casting uint64 to double was only casting the lower 32 bits (note that casting int64 to double works fine). Fixed a memory leak in Templates with a lot of variables. Fixed the FileSave function reported a problem reopening a file after saving to a different name. Fixed a rendering problem with the Hex Editor when dragging the application between monitors with different DPI settings. Fixed a possible crash in a script using Quick Watch to check the value of an item in an array. Fixed the size of a string was not updating properly in the Template Results when the string was expanded while debugging. Fixed on macOS some text could be hard to read in macOS dark mode. Fixed on macOS the Find Options dialog in the Floating Tab Group could sometimes be displayed behind the window. Fixed in the Quick Watch window some drop-downs for enums were not working properly. Fixed some drawing issues with drawing breakpoints when scrolling. Fixed certain cases where the text in a message dialog box could be cut off. Fixed Copy as Java Code should not include the array size and changed datatype to byte. Fixed the button to expand tool bars was too hard to see on a dark theme. Fixed some issues drawing the ruler on high-DPI displays. Fixed an issue with the width of the editor scroll bars on some systems. Fixed deleting a single byte in the Text editor should not show a status bar message. Fixed string assignment in a Script or Template was losing characters after a null was included in a string. Fixed a file in the Floating Tab Group could lose focus when clicking some icons. Fixed possible scrolling issue in the Hex Editor using PageUp/PageDown when Line Width Auto is used. Fixed possible crash with unterminated strings in Scripts or Templates. Fixed Copy as HTML should not copy line numbers if the line numbers are hidden. Fixed hints for Tool Buttons were not displayed when the Floating Tab Group was focused.

Version 10.0.2 - May 1st, 2020 Fixed on Windows a DLL was missing from the installer for older versions of Windows.

Fixed on Linux the numlock key was not working properly.

Fixed on Linux copying large blocks of data from some applications to 010 Editor did not work properly.

Fixed on macOS the scroll bars in the Template Results were not updating properly in some cases.

Fixed on macOS the repository was not updating properly when 010 Editor was installed as an admin.

Fixed on macOS using Paste from Hex Text/Binary Text to paste data from certain applications to 010 Editor did not work properly.

Fixed a slowdown in displaying find results when results occurred on a very long text line.

Fixed some characters were incorrectly being combined when being rendered in the hex editor character area. Version 10.0.1 - February 14th, 2020 On macOS the application is now notarized.

Upgraded to a new version of our user-interface library.

Removed support for Windows XP, 32-bit macOS, and Ubuntu 10.04 to 15.10.

Better support for high-DPI displays.

Fixed a possible crash changing the text editor or hex editor font using the Options dialog.

Fixed in the Find in Files results, sometimes the file names would be incorrectly truncated.

Fixed a redraw issue when working with very large hex files and pressing Ctrl+A.

Fixed Overwrite File was incorrectly removing bookmarks when data was modified.

Fixed the Bookmark dialog was incorrectly truncating array sizes that were more than 4 GB.

Fixed an incorrect status bar message displayed when hovering over the new file icon.

Fixed the Register dialog was missing a Taskbar Icon if displayed before the main application started.

Fixed the warning for running a template which generates a large number of variables was not being displayed.

Added more checks a for corrupt configuration file on macOS. Version 10.0 - December 6th, 2019 The following is an overview of the new functionality in version 10.0 of 010 Editor: A full debugger is now available for finding and fixing problems with Templates and Scripts.

The debugger can be accessed using the Debug menu and includes stepping, breakpoints, watches and a call stack.

menu and includes stepping, breakpoints, watches and a call stack. Templates and Scripts are now threaded, meaning other editing operations can be done while a Template or Script is running.

When using the Text Editor, line numbers and ruler labels are now hidden by default (they can be shown with ' View > Addresses > Show Addresses ' or ' View > Ruler > Show Labels ').

' or ' '). When line numbers or ruler labels are hidden, hover the mouse over the address column or ruler for a second to display a hint popup with the hidden information.

'View > Tabs/Whitespace > Show Whitespace' now can be used to visualize linefeed types for each line. The following is a list of all new features in version 10.0 of 010 Editor: Debugger A full debugger is now included for finding and fixing problems with 010 Editor Templates and Scripts. Added a new Debug menu for controlling the debugger. Debugging can be turned on or off using the ' Debug > Debugging Enabled ' menu option.

Debugger Program Flow Scripts or Templates can be run the usual way (for example with ' Scripts > Run Script ' or ' Templates > Run Template ') or by selecting a Script or Template and clicking ' Debug > Start Debugging '. If debugging is enabled and a breakpoint is hit in the Script or Template, program execution will pause (see the next section for information on breakpoints). When paused a yellow arrow will indicate the current debug active line in the Text Editor. Use ' Debug > Step Over ' to step to the next line of the file, jumping over any functions or structs that are called. Use ' Debug > Step Into ' to step to the next line of the file and step into any functions or structs that are called. Use ' Debug > Step Out ' to execute the rest of the current function or struct and stop at the first statement outside the function or struct. To continue running a paused Script or Template click ' Debug > Continue ', ' Scripts > Continue Script or Template ' or ' Templates > Continue Script or Template '. To pause a running Script or Template click ' Debug > Pause '. To stop a running or paused Script or Template click ' Debug > Stop ' or press Shift+Esc (note this has changed from the Esc key in previous versions). Scripts or Templates are now run threaded meaning other editing operations can take place when a Script or Template is running. If stepping to a line in an include file, the include file is automatically opened in the editor. Right-click on a Script or Template and choose Run to Cursor from the right-click menu. The Script or Template will run (or continue) and execution will stop at the chosen line or at the first breakpoint encountered. When a Script or Template is stopped, click ' Debug > Step Into ' to start the program and stop at the first executable line. When stepping through a Template and the last line of the Template Results or Variables tab is selected, if any new variables are appended to the table then the selection will be moved to the last created variable.

Breakpoints A breakpoint marks a line to stop in the Script or Template and is marked by a red arrow in the left-hand column of the Text Editor. Set or clear a breakpoint for the current line using ' Debug > Toggle Breakpoint ' or by left-clicking the left-hand column in the Text Editor. If a breakpoint is set on a non-executable line then the breakpoint will be moved to the next line that is executable when the Script or Template executes. Breakpoints are persistent (saved to disk) but this can be changed using the Compiling page of the Options dialog. If debugging is disabled then no breakpoints will be hit and the breakpoints are displayed as red outlines in the Text Editor. If the Script or Template is modified when program execution is paused then breakpoints will be disabled. The breakpoints will be displayed as outlines with a solid arrow head. A list of all breakpoints can be found in the Breakpoints tab, which is found in the Inspector tab group or by clicking ' Debug > View Breakpoints '. In the Breakpoints tab, right-click on the table and select Add Breakpoint to set a breakpoint by line number. All breakpoints in all files can be deleted by clicking ' Debug > Delete All Breakpoints '. The color of breakpoints or the active line marker can be controlled using the Theme/Colors page of the Options dialog. Note that breakpoints are not hit when the application is starting up and any files are being reloaded.

Variable Hints When program execution is paused and the mouse is placed over a variable name in the Script or Template, a hint popup will display the value of the variable. When a selection is made in the Script or Template and the mouse is placed over the selection, the selection will be evaluated and the results displayed in a hint popup. Currently only simple functions (sizeof, startof, exists, etc) can be evaluated in a selection and open the Quick Watch dialog to evaluate a selection which contains more complex functions. Note that how variables are scoped can be affected by the Call Stack tab. Variable hints can be turned off using the Compiling page of the Options dialog.

Watches Watches can be set in the Watch tab found in the Inspector tab group or by clicking ' Debug > View Watches '. Add a watch by double-clicking on the first empty line in the Name column or by right-clicking on the Watch tab and choosing Add Watch . A watch can be almost any expression or variable name (for example, 'FileSize()-1000' or 'blocks[i].data[10]'). Watches are evaluated every time program execution is paused (e.g. a breakpoint is hit) or when the program is stepped to the next line. If the result of a watch is a struct, the struct can be opened and explored similar to the Template Results. To delete a watch use the Delete key or right-click on a watch and choose Remove Watch . A single list of watches is kept for the entire application. Note that how variables are scoped can be affected by the Call Stack tab.

Quick Watch Expressions can also be evaluated without creating a watch using the Quick Watch dialog (' Debug > Quick Watch '). Enter an expression in the Expression field and click Evaluate . The result of the expression or variable is displayed in the Value column. A list of recent expressions is available by clicking the Down arrow in the dialog. Click the Add Watch button to add the current expression to the Watch tab. If a selection is made in the Text Editor before the Quick Watch dialog is opened, the selection is copied to the Expression field and evaluated.

Debugging Runtime Errors If a runtime error occurs in a Template or Script a popup dialog box will be displayed asking to start the debugger. When debugging errors the cursor is placed on the line that caused the error. Variables can be investigated with Variable Hints in the Text Editor or with watches. Clicking Continue or stepping to the next line will stop the Script or Template. Select the Always use this action toggle in the popup dialog box to always start the debugger or never start the debugger. Whether the debugger starts on an error can also be controlled with the Compiling page of the Options dialog.

Call Stack The Call Stack is available in the Call Stack tab which can be found in the Inspector tab group or by clicking ' Debug > View Call Stack '. When program execution is paused, the Call Stack lists the functions or structs that were called to reach the current execution point. The current function or struct is listed at the top of the call stack and the function or struct which called that function or struct is listed below it. If execution is not inside a function or struct then (Main Program) is listed in the call stack. Double-clicking on a function or struct jumps to the last position inside that function or struct. Double-clicking on a function or struct also makes any local variables inside the function or struct in local scope (this affects any watches or Variable hints in the Text Editor).

Debugger Limitations Currently breakpoints are not hit inside custom read/write/name/comment functions that are called from the Template Results or Variables tab. To debug these functions call them directly inside the Template. Currently breakpoints in on-demand structures are not hit when the structure is created by opening it in the Template Results. To debug these functions trigger creation of the struct directly in the Template by accessing a variable inside the struct. Currently breakpoints are not hit inside the HighlightLineRealtime or HighlightBytesRealtime functions. To debug these functions see the Using the Debugger help topic in the manual for sample code to call.

Templates and Scripts A full debugger including breakpoints, watches and call stack is now available for Templates and Scripts. Templates and Scripts are now threaded, meaning other editing operations can be done while a Template or Script is running. When a Template is running click ' Templates > Stop Template ' or press Shift+Esc to cancel the Template. When a Script is running click ' Scripts > Stop Script ' or press Shift+Esc to cancel the Script. On-demand Structures which have arguments are now supported. Custom read functions can now be called on structs with zero size. Custom name/comment functions now work for local variables. After selecting a Script or a Template that has been run, the Variables tab now shows the list of variables created by that Script or Template. If an included file is opened and modified in the editor, the modified version is used when compiling instead of the disk version. Which warnings are displayed in the Output panel can be configured using the Compiling page of the Options dialog. When the application is starting up and files are being reloaded, the Output panel shows the results from all Templates that were run. The Template Results panel only shows the results from a syntax highlighting template if the Template was run directly (not as the result of opening a file). Can right-click on the Variables tab and select Clear to clear the results from a Script or Template. The InputString function now returns a UTF-8 string. Jump to Template Variable is now only shown on the Editor right-click menu when editing a hex file.

Editor In the Text Editor, line numbers are now hidden by default and can be displayed by clicking ' View > Addresses > Show Addresses '. When addresses are hidden, place the mouse cursor over the address column for a second to see the line number in a hint popup. When addresses are hidden, a triangle marker indicates the last line in a file (this can be turned off by setting the Address End Marker to None in the Theme/Colors Options dialog). When addresses are hidden, a '-' marker indicates lines that are created by word-wrap. In the Text Editor, ruler labels are now hidden by default and can be shown using ' View > Ruler > Show Labels '. When ruler labels are hidden, place the mouse cursor over the ruler for a second to view the mouse and cursor position in a hint popup. In the Hex Editor, small arrows in the ruler show the current cursor position and can be turned off using ' View > Ruler > Show Arrows '. ' View > Tabs/Whitespace > Show Whitespace ' now can be used to visualize linefeed types for each line. The different symbols drawn for Show Whitespace can be configured using the Text Editor page of the Options dialog. Breakpoints can be toggled by clicking the left-most column when editing a Script or Template. When right-clicking on the editor, the cursor is now moved before the right-click menu is shown.

General The shortcut for opening the Base Converter was changed to Ctrl+F11. Updated the visual style of the Windows installer. Using Import Hex with Hex Text or Paste from Hex Text now supports data with more types of formatting.

Options On the Text Editor page added the Show Whitespace section to control how linefeeds are drawn. On the Text Editor page added the Change Whitespace Symbols button to control which symbols are drawn for the different types of whitespace. On the Theme/Colors page added an option to control colors of breakpoints and the debug active line. On the Theme/Colors page added an option to control colors of the Address Hover Marker and Address End Marker (a triangle marker displayed on the last line when Show Addresses is turned off). On the Compiling page added the Configure button to control which warnings are displayed in the Output panel. On the Compiling page added the Breakpoints are Persistent toggle to control whether breakpoints are automatically saved to disk. On the Compiling page added the Show Variable Hints when Debugging option to display the value of variables when the mouse is placed over a variable name in the Text Editor. On the Compiling page added the When errors occur drop-down menu to control what action is taken when an error occurs in a Script or Template. On the Inspector page added the default date format 'dd/MM/yyyy'.

Bugs Fixed scripts were not given permission to execute functions in DLLs in some cases. Fixed incorrect error message 'Incorrect function' when trying to load a file that does not exist on some machines. Fixed a crash replacing certain empty regular expressions with nothing. Fixed a possible crash editing a text file which contains a very long line (as reported by Kexu Wang of Fortinet's FortiGuard Labs). Fixed incorrect size of tabs in the Preferences dialog of the Help application. Fixed Save All does not try to save text in the Calculator to a file. Fixed the Inspector would sometimes not update properly after clicking a Floating Tab Group file and then a Template Results panel in the main window. Fixed possible crash with the Memset function (as reported by Kexu Wang of Fortinet's FortiGuard Labs). Fixed possible crash with ReadWLine/ReadLine/ReadWString/ReadString functions and very large files (as reported by Kexu Wang of Fortinet's FortiGuard Labs). Fixed ' Format > Comment Selection ' now works with Python commenting. Fixed permission issue with the FileSaveRange function. Fixed up some inaccurate error messages when using invalid name/comment functions. Fixed a text color issue with the Output pane after calling the OutputPaneClear function. Fixed when replacing with nothing, sometimes not all replacements were listed in the Replace Results when 2 or more occurrences were found together. Fixed an empty struct could be executed twice in some cases.

Version 9.0.2 - April 26th, 2019 Fixed icon transparency for the Windows Explorer shell extension.

Fixed syntax highlighting for keywords (HighlightMatchKeyword) now finds the longest matching keyword instead of the shortest (e.g. 'background-repeat' vs 'background').

Fixed when 010 Editor is run as administrator on Windows, files could no longer be opened from the Windows Explorer shell extension. Now a new non-admin copy of 010 Editor is opened before the files are opened.

Fixed on Linux the IBus IME can now be used.

Fixed possible crash in Memcpy, StrCat and SubStr when using very large arrays.

Fixed possible memory overrun when downloading news.

Fixed when opening a text file from the command line containing a BOM, sometimes bytes were improperly selected at the beginning of the file. Version 9.0.1 - December 5th, 2018 Fixed a number of cases when a Syntax Highlighter was not properly applied when a file was opened.

Fixed an error running a Syntax Highlighter when the first line of a file was blank.

Fixed using 'return' inside a struct which was declared in a function would cause an error in the function.

Fixed bookmarks created while the Bookmarks panel was hidden were not properly shown when the Boomkarks panel was displayed.

Fixed on Linux when using a dark theme, the category headings in the Repository dialog could not be read.

Fixed the 'Hide Characters over 127' toggle should always be turned off when a custom character set is created.

Fixed passing a very long line to a Syntax Highlighter could cause the software to slow down. Syntax Highlighters now only color up to the Maximum Line Length as set in the Text Editor Options.

Fixed a problem running a template on a template, or a script on a script using the File Bar (right-click on the File Bar to enable this).

Fixed the Sleep function on Linux/macOS was using microseconds instead of milliseconds.

Fixed the Variables tab was not always showing the results after running a script.

Added a warning when a very long line was encountered (over 100,000 bytes) and word wrap was turned on. These lines cannot currently be fully wrapped and this will be improved in the future. Version 9.0 - October 10th, 2018 The following is an overview of the new functionality in version 9.0 of 010 Editor: Syntax Highlighters can now be shared via our online template repository.

Syntax Highlighters are implemented as a function inside a Binary Template .bt file.

Syntax Highlighters can be run by clicking the Syntax: section in the File Bar just above each text editor or by clicking ' Templates > Syntax ' on the main menu.

section in the File Bar just above each text editor or by clicking ' ' on the main menu. Added a number of new character sets and simple character sets can be customized, imported, or exported.

Scripts and Templates can now call functions in an external library (*.dll on Windows, *.so on Linux, *.dylib on macOS) using #link.

Now the last cursor position and scroll position for files are restored when 010 Editor is restarted.

Added Delete Line (Ctrl+Shift+Backspace) and Delete Blank Lines commands to the Format menu.

Triple-click to select by line and drag to select multiple lines. The following is a list of all new features in version 9.0 of 010 Editor: Syntax Highlighting Syntax Highlighters can now be shared via our online template . Syntax Highlighters are written in a different format than before and are implemented as a function inside a Binary Template bt file. New Binary Templates XML.bt, CPP.bt, PHP.bt and HTML.bt are automatically installed to perform syntax highlighting for those formats and other Binary Templates will be added to the online repository soon. Highlighting for 010 Editor Templates and Scripts is now performed with the 010.bt Binary Template. Removed the ' View > Highlighting > Syntax Highlighting ' menu. Syntax Highlighters are now run by clicking the Syntax: section in the File Bar just above each text editor or by clicking ' Templates > Syntax ' on the main menu. Clear Syntax Highlighters from a file by clicking on the Syntax: section in the File Bar above a text editor and select ' (none) '. If a Syntax Highlighter is found in the repository to highlight the current file, a dialog will popup asking to install or ignore the file, similar to installing regular Binary Templates. The Syntax page has been removed from the Options dialog. When 010 Editor v9 is first run, any old custom Syntax Highlighters created with the Syntax page of the Options dialog are exported to XML files in the 'Documents\SweetScape\Old Syntax Highlighters' directory. Old Syntax Highlighters must be converted manually to the new format and there is not yet an automated tool to do the conversion. The new Syntax Highlighting method can handle a huge range of other text formats but requires some programming to implement. SweetScape Software will be available to help with conversion of Syntax Highlighters for common text formats time permitting. If Old Syntax Highlighters were exported, they can be exported again later by clicking the Export Old Syntax Highlighter button on the Highlights page of the Options dialog. If this button is not displayed then there are no Syntax Highlighters to export. Syntax Highlighters are written by implementing the function HighlightLineRealtime inside a Binary Template. This function applies colors to a single line of text. Highlighting can also be applied to binary files instead of text files by implementing the function HighlightBytesRealtime in a Binary Template. Added new functions to help in the creation of Syntax Highlighters: HighlightFindStyle, HighlightGetStyleForeColor, HighlightGetStyleBackColor, HighlightAllowInstanceSharing, HighlightApplyStyle, HighlightApplyColor, HighlightGetNextToken, HighlightBuildKeywordList, HighlightMatchKeyword, HighlightMatchString, HighlightFindKeyword, HighlightFindString, HighlightCheckMultiLineRule, HighlightCheckCommentRule, HighlightCheckSingleLineRule, HighlightCheckKeywordRule, HighlightCheckTagRule, HighlightCheckTagTokenRule, HighlightColorPattern. Some highlighting functions can do case insensitive matching by using the HIGHLIGHT_IGNORECASE constant. Some highlighting functions can do regular expression matching by using the HIGHLIGHT_REGEX constant. The HighlightFindStyle function has an option to create custom Syntax Styles if they do not yet exist. Custom Syntax Styles now store separate colors for light and dark themes. If instance sharing is turned on using the HighlightAllowInstanceSharing function then only one copy of the Syntax Highlighter is kept in memory and used for all open files of the target text format. By default the Template Results panel is not shown when running a Binary Template that does syntax highlighting.

File Interfaces Syntax Highlighting is no longer controlled via the current File Interface ( View > Edit As ). Combined the old file interfaces XML and HTML into a single Tagged interface. Combined the old file interfaces C/C++ and PHP into a single Code interface. ' File > New ' menu now controlled by clicking Manage New File Types... on the Editor page of the Options dialog. Possible to show or hide different sections (e.g. Run Script, Run Template, Repository...) of the File Bar above each text or hex editor by right-clicking on the File Bar.

Character Sets Added support for more character sets as well as custom character sets. The ' View > Character Set ' menu has been reorganized to show a list of common character sets, followed by a list of recently used characters, followed by the character sets sorted into Standard, International, and Custom categories. Character sets can be viewed, customized, imported and exported using the new Character Sets page of the Options dialog. Now per-file character sets can be set by turning off the ' View > Character Set > Use Default' toggle . If the Use Default toggle is on then the character set comes from the current File Interface. When opening a file and a different character set is detected than the current File Interface has, the Use Default toggle will be turned off automatically (an example of this is opening a Unicode XML file). If a different character set is chosen when the Use Default toggle is off, that character set will be remembered when the file is closed and opened again. Added the following character sets: Arabic (ISO) - ISO 8859-6 Baltic (ISO) - ISO 8859-13 Cyrillic (KOI8-R) - KOI8-R Cyrillic (KOI8-U) - KOI8-U Cyrillic (ISO) - ISO 8859-5 Eastern Europe (ISO) - ISO 8859-2 Greek (ISO) - ISO 8859-7 Hebrew (ISO) - ISO 8859-8 Japanese (EUC-JP) - EUC-JP Japanese (ISO-2022-JP) - ISO 2022-JP Turkish (ISO) - ISO 8859-9 Existing character sets Arabic, Baltic, Cyrillic, Eastern Europe, Greek, and Hebrew now have "(Windows)" appended to their name to show they are using the Windows code pages. Japanese character set is now named 'Japanese (Shift_JIS)'. Now just a single Korean character set EUC-KR is supported. The Character Sets page of the Options dialog allows viewing character sets and creating custom character sets. Character sets are displayed in a 16x16 table for easy visualization. Information about different symbols is displayed in a tool tip when moving the mouse cursor over the character set table. When viewing a complex (multi-byte) character set a horizontal scroll bar will appear to allow scrolling through the different pages. The font of the character set table can be controlled by right-clicking on the table. Simple character sets can be modified by clicking on a symbol in the character set table and selecting a different symbol using the Change Symbol dialog that pops up. If attempting to modify a built-in characters set, the character set will be copied to a new custom character set before the modification is made. Simple character sets can be exporting to a CSV file by clicking on the Export... button. A simple character set can be imported by clicking the Import... button. The import format should be 256 numbers separated by commas, spaces, or tabs and the number -1 designates no change. In the Change Symbol dialog click the Reset button to reset the character to the original value or enter a new Unicode code point U+XXXX in the edit field at the top right corner. In the Character Sets page of the Options dialog enable the Show at Top Level toggle to display the character set at the top of the ' View > Character Sets ' menu. For custom character sets, the Encoding can be chosen to select which internal encoding this character set uses to convert bytes to characters. Enable the Hide Characters over 127 toggle to hide the display of any character with Unicode code points over 127 (for example, this is used for the ASCII character set). The text displayed in the status bar when a character set is active can be controlled using the Status Bar Indicator edit box. An integer ID Number can be specified for custom character sets for use in scripting functions such as ConvertString. New constants are available for the ConvertString function for the newly available build-in character sets. Created character sets are available for conversion when using the ' Tools > Convert... ' tool. The Convert tool shows the character sets marked as Show at Top Level and recently used character sets at the top of the Target Character Set list. After the Convert tool is run, the file may be assigned a per-file character set (i.e. the ' View > Character Set > Use Default ' toggle is turned off and a different character set is assigned).

External Functions in DLLs Templates and Scripts can now call functions in an external dynamic library. Works with Windows DLLs (*.dll), Linux shared objects (*.so), or macOS DYLIB files (*.dylib). All functions defined inside of a #link "<filename>" and #endlink directive are assumed to be located in an external library (note that no body can be defined for these functions). The 32-bit version of 010 Editor should be used when linking to 32-bit external libraries and the 64-bit version of 010 Editor should be used when linking to 64-bit external libraries. Supports passing regular integer variables, floats and doubles and arrays of these types to external functions. Support passing strings or wstrings to external functions. Supports return types of any regular integer variables, float, double, string or wstring. Use & to pass variables as references (pointers are not currently allowed in scripts and templates). Structs cannot currently be passed to external functions. Templates must be granted ExecuteDLL permission before being allowed to call functions in an external library. See the Permissions page of the Options dialog.

Templates and Scripts Templates and Scripts can now use functions in an external library (see External Functions in DLLs above). Added support for time64_t including new functions StringToTime64T and Time64TToString. The ImportFile function can now import Motorola with word-based addressing. The default character set for Templates and Scripts for new installs of 010 Editor is now UTF-8 (the character set of existing installations of 010 Editor is not changed). Syntax Highlighting is now done through Binary Templates. Implement the HighlightLineRealtime function in a Template to provide syntax highlighting for a text file, or HighlightBytesRealtime function to provide highlighting for a binary file. Added a variety of HighlightXXX functions to help with writing syntax highlighters. Added new functions for testing the type of different characters: IsCharAlpha, IsCharAlphaW, IsCharNum, IsCharNumW, IsCharAlphaNum, IsCharAlphaNumW, IsCharSymbol, IsCharSymbolW, IsCharWhitespace, IsCharWhitespaceW.

General Now the last cursor position and scroll position for files are restored when 010 Editor is restarted (this can be turned off using the Editor page of the Options dialog). Added ' Format > Delete Line ' command (Ctrl+Shift+Backspace shortcut by default). Added Ctrl+Shift+N shortcut key to create a Hex file. Triple-click the mouse to select a whole line in the text or hex editor. Triple-click the mouse and drag to select by lines. Added the ' Format > Delete Blank Lines ' command to delete empty lines in a file or selection. Added ' Format > Delete Left Word/Delete Right Word ' to the format menu with shortcuts Ctrl+Backspace and Ctrl+Del. Can export Motorola S19/S28/S37 hex data using word-based addressing (added Motorola Hex Address Format toggle to the Export Hex dialog). Can import Motorola S19/S28/S37 hex data using word-based addressing (added Motorola Hex Address Format toggle to the Importing section of the Options dialog). Added new 64-bit type time64_t to the Inspector (the new type has also been added to the Inspector.bt file). Hid Unicode line in the Inspector as it could cause rare crashes when browsing large binary files. This can be re-enabled by choosing Use Custom Inspector in the Inspector Options and then editing the Inspector.bt file.

Options Add new Character Sets page for organizing and customizing character sets. Remove Syntax page as Syntax Highlighting is now done through Binary Templates. Added Export Old Syntax Highlighter button on the Highlights page if old custom syntax highlighters are found. On the Editor page added Show Startup Page when All Files are Closed toggle. On the Editor page added Remember Last Cursor Position toggle. ' File > New ' menu is now controlled by clicking Manage New File Types... on the Editor page of the Options dialog. Added ExecuteDLL permission to the Permissions page to allow Templates to execute functions in an external library. On the Importing page added Motorola Hex Address Format radio buttons.

macOS Fixed a problem on macOS opening files from the command line that contain spaces. Fixed a problem using the Esc key to cancel certain operations on macOS. Fixed a problem with the hex editor Auto-line width calculation on macOS. Fixed an issue with the version number display in the macOS Finder on some versions of macOS. Fixed on macOS the undo stack was being lost after saving a file in some cases.

Bugs Fixed preprocessor symbol expansion was improperly expanding constants inside strings. Fixed the Input Method Editor (IME) was not being displayed properly after certain operations. Fixed a problem using the color picker in the Custom Colors section of the Find Bar Options dialog. Fixed opening a file when a different character set is detected than is assigned in the current File Interface, then that file is assigned a per-file character set (for example if opening a Unicode XML file). Fixed a crash with Copy As Text Area operation in certain cases. Fixed an issue with the Portable version loading files from the command line when the application was already open. Fixed an issue displaying non-printable characters in the text editor on some machines. Fixed newly created Tool Bars where not being themed properly. Fixed a crash assigning to structs in certain cases (should generate an error instead of crashing). Fixing pressing Backspace when a selection was made and the cursor was at the beginning of the file was not deleting the selection. Fixed clicking 'View > Template Results' may not properly show a hidden Template Results panel when moved to the right side. Fixed an issue using Ctrl+C to copy text from the Output panel when text was selected in the main editor window. Fixed name and password are now being encoded before being sent to our online server for license checks. Fixed a problem using the FindAll and ReplaceAll functions using UTF-8. Fixed in the Template Repository, clicking the View button does not properly focus the displayed file. Fixed the Inspector when using a custom Template was not updating properly after FileNew was called in a script. Fixed using unpadded bitfields could result in a zero sized variable in some cases. Fixed a problem loading a custom theme that was imported. Fixed a bug on Linux with unreadable white text in the help file when using a dark OS theme. Fixed Copy Table command in the Checksum Results panel was only copying one column. Fixed Copy as Rich Text Format now creates background colors in a format compatible with WordPad.

Version 8.0.1 - September 29th, 2017 Fixed crash on macOS using Printf and %Lx or %Ld in certain cases.

Fixed templates with a file mask but no ID bytes were not being executed when a data file was opened.

Fixed possible crashes in Find and Replace with Regular Expressions that use ^ or $.

Fixed when installing on Mac, path info is added to .profile if it exists and .bash_profile does not.

Fixed crash passing variables of the wrong type to user functions in certain cases.

Fixed crash using Ctrl+Enter when certain panels were displayed.

Fixed crash using ++ or -- operators on a struct (should be a syntax error).

Fixed bug with FileSave and FileSaveRange properly converting UTF8 file names.

Fixed crash in FileNameSetExtension function when passing an empty extension.

Find/Goto/Select Bar Options button hotkey changed to Alt+P (Alt+O was not working). Version 8.0 - May 3rd, 2017 The following is an overview of the new functionality in version 8.0 of 010 Editor: Different application themes are now available including dark and light themes.

Themes can be customized, created, exported and imported using the Theme/Colors page of the Options dialog.

A Portable version of 010 Editor is now available on Windows for running 010 Editor from USB keys.

New visual style for the Text Editor, Hex Editor and File/Docking Tabs.

Better support for high-DPI displays including new higher-resolution icons.

Tabs in the Workspace, Inspector and Output windows can now be rearranged and undocked separately.

Workspace, Startup page, plus other dialogs now show a list of files split into Name/Path. The following is a list of all new features in version 8.0 of 010 Editor: Themes 010 Editor now has themes which control the colors used for the application and how certain elements are drawn. The default theme is a dark theme (Evening Sky) but a light theme is available (Blue Sky) plus others. Themes can be chosen in the Welcome dialog when the application is first run or on the Theme/Colors page of the Options dialog. A 'Classic' theme is available which is similar to previous versions of 010 Editor. The individual colors of the themes can all be customized using the Theme/Colors page of the Options dialog. New themes can be created, exported and imported using the Theme/Colors page. Themes now control the colors of the Menu Bar, Tool Bars, File Tabs, Dock Window Tabs, Dock Windows, Tables, Graphs, Editors, etc. Syntax Styles (for example for C/C++ or XML highlighting) are now controlled with the Theme. Syntax Styles can be created, modified or deleted using the Theme/Colors page. Background colors from templates are automatically darkened when using dark themes (see the new ThemeAutoScaleColors function to control this). Bookmark colors are now controlled using the theme unless the Use Custom Color toggle is enabled in the Add Bookmark dialog. New style for Find/Replace/Goto/Select bars and bars are now themeable. Some UI elements can either be drawn using the OS standard method (called Native drawing) or with a custom themed drawing. Native drawing of elements can be turned on or off using the Options drop-down menu on the Theme/Colors page of the Options dialog. On macOS some UI elements are always drawn using Native rendering (for example the Menu bar and the Status bar). The Startup page colors are now controlled using Themes.

Portable Version A Portable version of 010 Editor is now available for Windows 32 and 64-bit as a separate installer. The Portable version can be placed on a USB key and moved between different computers. Run the '010EditorPortable.exe' program to start 010 Editor (or the '010Editor.exe' program in the 'AppData' directory). Licensing information is stored in the portable directory structure under 'AppData\Config' instead of the registry. The program asks to copy a license from the registry to the portable directory structure the first time the portable version is run. Scripts and Templates are automatically installed to the '010 Scripts' and '010 Templates' directories in the portable directory structure. All directories in the Directories panel of the Options dialog are listed as being offset the '($BASEDIR)' constant. No desktop icon is created and no extension to the Windows Explorer is installed. To uninstall just delete the installed directory structure (no uninstaller is necessary).

High-DPI Displays Better support for high-DPI displays on Windows and Linux and Mac. Includes new higher-resolution icons.

Docking Windows Individual tabs of the Workspace, Inspector and Output Windows can now be rearranged and torn off. Tabs for the Docking Windows are drawn in a new style which is themeable. A new docking menu can be accessed by clicking the down arrow in the Dock Header when the window is docked (not floating). The docking menu can be used to Hide or Float the currently displayed Dock Window. When docked, clicking the X button in the Dock Header hides all Tabs in the group. The View menu now allows showing or hiding the individual tabs of the Dock Windows. Commands were added to the View menu to show or hide all tabs in a Dock Window at the same time (for example see ' View > Workspace Windows > Show/Hide All Workspace Windows '). Allow Docking option on the right-click menu of a Dock Window now applies to that particular tab, not the whole tab group. The position of Docking Windows can be reset by clicking the down arrow in a custom Dock Header and choosing ' Reset All Docking ' from the drop-down menu or by using the -resetdocks command line option.

File Tabs New animated reorder when dragging File Tabs to new positions. Can use the mouse scroll wheel to scroll through tabs if many tabs are open. If a tab is dragged far enough, it will be torn off and can be moved to other tab groups (an arrow shows the insert position). New visual style that is themeable. Better support for dragging tabs when many tabs are opened. Hint text for the tab now shows the size of the file.

Editor Double-click and drag on a text file to select by words. In a text file Ctrl+Backspace deletes the previous word and Ctrl+Del deletes the next word.

Explorer Can use the Root field to set the root directory for the Explorer (only files and directories below that directory are shown). Hide files that do not match the filter instead of just disabling them. Removed the Refresh button as refreshes are done automatically.

Command Line Can use -safe command line option to start 010 Editor without running any scripts or templates on startup. Renamed -reset to -resetdocks for resetting the Dock Window positions. Can use -install on macOS to perform installation checks (check if 010 Editor has been added to the system path).

Templates/Scripts Background colors from templates are automatically darkened when using dark themes (see the new ThemeAutoScaleColors function to control this). New function ThemeIsDark returns true if a dark theme is currently being used. Date formats in the Template Results can now be set to different formats (see the Inspector page of the Options dialog). New functions GetDefaultDateFormat, GetDefaultTimeFormat, and GetDefaultDateTimeFormat can be used to query the chosen date/time formats in the Inspector page of the Options dialog. Can enabled synchronized scrolling of the Template Results using ' Window > Synchronize Template Results Scrolling ' (can also be turned on in the Compare dialog). Added function SetBytesPerLine to override the number of bytes per line of a hex editor. Fixed when using on-demand structs the endian setting was not being properly read from the parent.

General Workspace, Startup page, Window List, plus other dialogs now show a list of files split into Name/Path. Can resize the columns of the Workspace and the Startup page Recent Files list. Windows Installer is smaller and faster and does not require restarting the computer. The current Find Results scroll position is saved and restored when switching files. Can set a different date or time format for the Inspector/Template Results on the Inspector page of the Options dialog. Add Bookmark dialog has been rearranged and Bookmark colors are controlled by the theme unless the Use Custom Color toggle is enabled. Can clear the search history for the Find Bar or Replace Bar by clicking '(clear find history)' from the Find Bar history list. When performing a Compare, the Floating Tab Group is hidden if files are moved to the main window as a result of tiling. Save All command now skips over read-only files instead of showing an error that they could not be saved.

Options Can set a different date or time format for the Inspector/Template Results on the Inspector page of the Options dialog. Colors page of the Options dialog renamed to Themes/Colors and can be used to control the current theme. Individual colors are marked as bold when modified and can be reset individually. Color changes are applied immediately in most cases so changes can be seen without having to press the OK button. Removed the Style Options page (styles are now controlled on the Theme/Colors page). Renamed Shadow Cursor to Inactive Caret on the Editor page. Added a Separator Spacing option on the Hex Editor page.

macOS Added Minimize command on the Window menu (Ctrl+M). Shortcut key for Compare changed to Ctrl+Shift+M. Changed shortcut keys for Show and Hide Workspace/Inspector/Output/Floating panels from Alt+(number) to Alt+Shift+(number). Added -install command line option to perform installation tasks again (check if the program is added to the system path). When installing and the program is added to the system path, a copy of .bash_profile is made before overwriting. Fixed issue running 010 Editor from the command line on some macOS systems. Fixed crash on macOS with QAccessibleEvent::uniqueId function.

Linux Removed dependency on libpng12.so library. Fixed some application focus issues on Ubuntu 16 when using Alt+Tab.

Bugs Fixed issue with local variables sometimes being placed in the wrong scope when allocating structs inside functions. Fixed underscores were not being printed correctly. Fixed some typos with the Writing Binary Templates tutorial. Fixed a problem using parentof in a custom read function. Fixed Atoi/Atof would work incorrectly when using a non-null-terminated string. Fixed the Floating Tab Group was sometimes not focused correctly after showing it using the View menu. Fixed when reloading a file that is in the repository, the repository icons in the File Bar were not updated correctly. Fixed issue with the dialog size being too small when using the InputRadioButtonBox or InputString functions. Fixed a Base64 import which was not divisible by 4 bytes could sometimes result in extra 00 padding bytes being imported. Fixed some files were being incorrectly identified as Intel-Hex or Motorola on drag-and-drop. Fixed a crash deleting a script or template from the Options dialog when none were installed. Fixed a problem accessing the characters of a non-local string when the string is passed to a function inside a template. Fixed updating the repository on machines using a proxy. Fixed updating the repository on some machines when a directory was not being created properly.

Version 7.0.2 - June 6th, 2016 Fixed newly downloaded repository records could be incorrectly duplicated on some systems.

Fixed problem on some Linux systems copying data from other applications to 010 Editor.

Fixed problem with Mac OS X certificate on OS X 10.9+.

Fixed problem where a long script which opens files could steal focus from other applications.

ID Bytes can now match the first 2048 bytes of a file (was 1024 bytes).

Synchronized Scrolling can now work between text and hex files. Version 7.0.1 - May 13th, 2016 Fixed Find in Files would crash on some Windows 8/10 64-bit machines.

Fixed ID Bytes detection may fail on some files or drives over 2 GB in length.

Mac application is now properly signed.

Fixed help viewer crash on Windows XP.

Fixed output from Printf inside an on-demand struct or read function was not being properly displayed in the Output area.

Fixed problem displaying the Print dialog on some machines.

Fixed problem saving files on Windows with no extension.

Fixed issue loading bookmarks containing non-ASCII character names.

Fixed crash on some Mac machines rendering certain fonts.

Now show a warning that the Print dialog cannot be displayed if no printers are installed. Version 7.0 - March 23rd, 2016 The following is an overview of the new functionality in version 7.0 of 010 Editor: New 010 Editor Repository holds an online collection of Binary Templates and Scripts that have been submitted by users of the software.

Files from the Repository can be downloaded and installed or uninstalled in 010 Editor with the click of a button.

Templates or Scripts can be submitted to the Repository directly from 010 Editor.

Can handle multiple versions of files in the Repository including updates, diffs, merges, etc.

Updated the style of a number of dialogs including the Startup page and Welcome page.

Added 'Using the Repository' tutorial to teach the basics of the repository.

Major upgrade to UI library resulting in a number of minor bug fixes and visual fixes.

New webpage 'http://www.sweetscape.com/010editor/repository/' shows the Repository in real time.

New 'Repository' menu displayed in the File Bar above a Template or Script. The following is a list of all new features in version 7.0 of 010 Editor: Repository New Repository Dialog accessed by clicking 'Templates > Template Repository' or 'Scripts > Script Repository'. Repository dialog lists all files in the repository and can sort by Category, Alphabetic, or Newest. Install or Uninstall files from the Repository Dialog with the click of a button. Can search for Scripts or Templates in the Repository Dialog with the search field. Licenses for 010 Editor now include free Support, Upgrades, and Repository Updates for 1 year from the date of purchase. When opening a file a dialog pops up if a Template is found in the Repository that can parse the file (can install the Template or ignore). Repository can check for 'ID Bytes' for data files before asking to install. New webpage 'http://www.sweetscape.com/010editor/repository/' shows the Repository in real time. Download package includes a number of files from the Repository (called the Local Repository) so files can be installed even on computers not connected to the internet. Online Repository checked for new updates every 3 days (can be changed or turned off). Renamed a number of files in the repository (e.g. "BMPTemplate.bt" => "BMP.bt"). Recent repository updates are listed on the Startup page (double-click on an item to view) or on the History tab of the Repository Dialog. Can submit files to the Repository directly from 010 Editor (see 'Submit File' in the 'Repository' menu above a Script or Template). Submission dialog checks the header for errors and provides an easier way to add Category or History information to the submission. Note that all submissions are reviewed by SweetScape Software before being allowed in the repository. New 'Repository' menu in the File Bar above each Template or Script in the editor. Icon in the File Bar shows the file repository status (Installed from Repository, Modified, Update Available, Conflict). Use the Repository Menu to Update, Check for Modifications, Diff, Revert, Delete, or View Repository. Full update engine including powerful 3-way merge algorithm and showing conflicts. 'Available Versions' table in the Repository Dialog can show multiple versions of files in the Repository. The different versions can be viewed, installed or compared. Display a special warning if a template installed from the Repository asks for permissions to read or write to other files. History tab of the Repository Dialog is displayed when new updates downloaded (can be turned off). Included new tutorial 'Help > Tutorials > Using the Repository'. Default Templates and Scripts (e.g. 'BMP.bt', 'IsASCII.1sc', etc) are now installed from the Repository.

Templates/Scripts New Template and Script repository allows installing and submitting Templates and Scripts easily. Templates and Scripts can be listed by Category in the Templates and Scripts menu. Standard templates have been renamed (e.g. "BMPTemplate.bt" => "BMP.bt"). Templates can now have 'ID Bytes' which provide an extra check that a template can parse a data file. For example, the 'ZIP.bt' file has ID Bytes '50 4B //PK'. Renamed 'Templates > Online Template Repository' to 'Template Repository' which now shows the Repository Dialog. Renamed 'Scripts > Online Script Repository' to 'Script Repository' which now shows the Repository Dialog. Renamed 'Templates > Edit Template List' to 'View Installed Templates'. Renamed 'Scripts > Edit Script List' to 'View Installed Scripts'. The Output panel is no longer shown by default when Printf is called in a template (this can be controlled using the Compiling Options page). New standard comment header at the beginning of Templates or Scripts created with 'Templates > New Template' or 'Scripts > New Script'. New header includes History, Category, File Mask, and ID Bytes. Local strings are now displayed using the character set from the current file (used to always be ANSI). #include now searches the Template and Script Repository Directories.

General Updated style for a number of dialog boxes. Inspector and Workspace are now docked to the right side by default (just drag-and-drop to move to the left side). Updated Welcome Page with information about the repository. Changed default selection background color. A dialog now pops up when Support, Free Upgrade, and Free Repository Updates are about to expire (about 30 days left) and when expired. Updated Startup page with modified style and Repository news. License information is now displayed on the lower-right corner of the Startup page (click to display the Register dialog). Downloading application news/updates is now done in the background instead of when the application was shut down. Small modifications to the default colors for the editor. Read-only state of files is saved with the workspace. When a new license is entered a dialog displays the end dates for Support, Free Upgrades and Free Repository Updates. About page now displays current license info and has a button to show the Register dialog. Major upgrade to UI library resulting in a number of minor bug fixes and visual fixes.

Options Template Options and Script Options now display the list of installed files, including files that have been installed from the Repository. Include the category name in the list of installed templates and scripts. Easier way to add local Templates and Scripts to the list. Clicking the 'Add...' button displays a multi-select file dialog box. When adding local Templates or Scripts information such as File Mask, ID Bytes, and Category can be extracted from the comments at the beginning of the file. Templates and Scripts now have an 'Edit...' button to load the file in the editor. Added 'ID Bytes' for Templates as an extra way to check that data files can be parsed by a Template (ID Bytes can be turned off by unchecking the 'Require' toggle). Added 'Status' info for Templates and Scripts and click the 'Show...' button to display the Repository dialog if installed from the Repository. Added 'Set Shortcut' button on Scripts and Templates Options for an easy way to set a shortcut for these items. New Repository Options page displays options for the Repository (some options are duplicated in the Repository Dialog). Directory Options now allows setting the default Template and Script directory (moved from the Compiling Options). Directory Options can set the directory where Scripts and Templates are installed from the Repository. Moved File Dialog settings to a separate File Dialog Options page. Added an option on the Compiling page to control whether the Output panel is displayed automatically when Printf is called in a Script or Template. List of options on the left side of the Options Dialog is now resizable (you may need to enlarge the dialog first). Options Dialog remembers its size when 010 Editor is shutdown and restarted. New constants $TEMPLATE_REPOS_DIR and $SCRIPT_REPOS_DIR can be used in file names in the Options dialog.

Mac New installation method. Just drag-and-drop to install. Now support OS X 10.7 and higher (sorry 10.6 users, we tried). Help viewer now renders fonts better on retina displays. Fixed some font spacing issues on dialogs on the Mac. For OS X 10.7 and 10.8 the default hex editor font is now Andale Mono (there is a rendering bug using Courier New on these systems).

Bugs Fixed a crash in the Help Viewer when doing a search for certain keywords. Fixed problem on Linux using Save As to save a large file in certain cases. Fixed issue with multiple warnings when running scripts or templates are split onto separate lines. Fixed bug in dialog asking to save a file which is marked as read-only was not displaying the file name correctly. Fixed issue using the regular expression anchor '$' on files with DOS linefeeds. Fixed using increment or decrement on a variable inside a variable accessor could sometime be called multiple times. Fixed issue where the Addresses for the last line of a large text file were not displayed correctly using 'Byte Number (Decimal)'. Fixed issue with wrong the background color sometimes being set when defining structs within structs. Fixed bug with the FindFirst function incorrectly wrapping when starting the search from the end of the file. Fixed crash when using an invalid regular expression in the FindFirst function. Fixed using ReadByte/ReadInt/etc with no arguments and positions greater than 0xFFFFFFFF. Fixed possible crash in FindOpenFile function after using FileClose. Fixed when a custom name function had an error an empty string was being displayed for the name. Fixed problem allocating a local variable after a struct definition sometimes having the improper scope. Fixed FindInFiles and FindFiles now return strings in UTF-8 format. Fixed possible crash assessing types defining by a call to RunTemplate. Fixed FindFirst and FindAll would incorrectly search the whole file when size was zero. Fixed crash using more than 15 parameters to SScanf. Increased the maximum parameters for SScanf from 15 to 30. Fixed bug with WMemSet function when the value to set was more than 255. Fixed a problem viewing process names that contained non-ASCII characters. Fixed a memory leak in user functions in certain cases. Fixed a crash when a script or template ends with an unmatched '*/'. Fixed an error message when trying to allocate an array more than 4 GB. Fixed a bug using the '+' operator to add strings and single characters in certain cases. Fixed some focus issues on Windows when opening a file and 010 Editor was minimized to the task bar. Fixed restoring the application to the correct monitor when 010 Editor was maximized and then closed. Fixed typing a backslash character when using the Japanese character set on Mac OS X. Fixed issue when FileOpen failed and afterwards an incorrect file was selected.

Version 6.0.3 - Sept 25th, 2015 Fixed a crash when a find occurrence was found on a line containing more than 65535 characters.

Fixed the line number was not being properly displayed in the Find in Files results for text files.

Fixed a problem opening file names on Mac OS X containing certain characters.

Fixed a bug using the number constant 0xffffffffffffffff in a script or template;

Fixed a crash when starting 010 Editor during the 30-day trial period and the system clock was set back (an error is now displayed).

Fixed a crash when using an invalid regular expression in a syntax highlighting rule.

Fixed the wrong number of pages being printing in certain cases when printing a hex file.

Fixed Export CSV of the Find results for Hex Bytes sometimes improperly included an extra linefeed.

Fixed the AddBookmark function was not properly using the UTF-8 character set for the 'name' parameter. Version 6.0.2 - April 13th, 2015 Fixed problem opening physical drives on Linux.

Fixed error using 'Copy As > Copy as Base64' and 'Copy As > Copy as Uuencoding'.

Now display an error when an invalid character constant is encountered in a script or template.

Fixed FILETIME error in the Inspector on Linux/Mac 64-bit.

Fixed error in the first result using Find Strings on a custom range.

Updated color for the Welcome and New Version dialogs.

Fixed error in the documentation for the Exec function about the function's return value.

Fixed error message in the footer of the Manual on the Mac. Version 6.0.1 - January 28th, 2015 Fixed crash on exit on some Mac OS X machines.

Fixed problem opening processes on 64-bit Windows.

Made the color of the Startup page darker (was too bright on some monitors).

Can now change or reset the color of the Startup page by clicking the 'Options' button on the Startup page.

Fixed some issues using some IME's with the hex editor.

Fixed bytes not being swapped correctly when printing and swap by group is enabled. Version 6.0 - December 16th, 2014 The following is an overview of the new functionality in version 6.0 of 010 Editor: 010 Editor is now available as a 64-bit program on Windows, Mac and Linux.

Searching with Regular Expressions.

Improved Find speed, up to 10 times faster in some cases.

Changed the style of the Startup page, Welcome page, and File Bar.

Added new 'Writing Binary Templates' tutorial to teach the basics of creating Binary Templates.

Can export the Template Results in XML format.

Can import Find results. The following is a list of all new features in version 6.0 of 010 Editor: General 010 Editor is now available as a 64-bit program on Windows, Mac and Linux. Redesigned Startup page which is automatically shown on startup (this can be changed with the Startup Action section on the Startup page). The Startup page is automatically shown when all files are closed (this can be turned off with the Options button on the Startup page). Redesigned Welcome page with a link to the new Writing Binary Templates tutorial. When asking to save changes to multiple files (for example, when closing 010 Editor), all the files to save will be listed in a single dialog. Redesigned style for the File Bar/Ruler at the top of each Editor Window. When a file is modified by an external program, the dialog asking to reload changes has two new options: Always Reload and Always Ignore . Always Reload will continually reload the file if changes are detected and Always Ignore will not prompt for reloading any more. The Floating Tab Group is automatically hidden when all tabs in it are closed (this can be turned off in the Editor Options dialog). Moved Save Selection command to the File menu. A popup message is shown when a new version of 010 Editor is available (this can be turned off with the General Options dialog). Added ' Help > Check for Updates ' to check if a new version of 010 Editor is available. When created new files, the default linefeeds to use are now specified in the File Interface (see the File Interfaces page of the Options dialog). When editing a word-wrapped line in the Text Editor, pressing the Home key twice goes to the very beginning of the line and pressing the End key twice goes to the very end of the line. Exporting CSV from tables now exports strings as UTF-8. When using Import Hex, the directory where the file was imported is remembered when using Save As to save the file. 'Highlighting > Control Characters' now includes ASCII 127 by default (will need to reset the Highlighting options to take effect). Clicking ' Help > Support by Email ' now opens a web form which allows sending a message on all platforms instead of trying to use a local email client. The current version number is now displayed in the Register dialog. Increased maximum line width in the Hex Editor from 1024 to 16384 bytes. Syntax Highlighting can now apply rules based on Regular Expressions. Made text in the About dialog easier to read.

Mac OS X Better support for fonts on Mac Retina displays.

Linux Linux can now use Gtk styles if available.

Find Can search with Regular Expressions (click Search with Regular Expressions on the Options panel of the Find Bar). Improved Find speed, up to 10 times faster in some cases. Default Find type for text files is now Text which searches for strings in the current character set of the file, whether that be ASCII, Unicode, UTF-8, etc. The Find type ASCII is now just used for finding ASCII+ANSI strings (use the Find type Text to search for other character sets). Can Import find results that were exported from the Find or Find in Files tabs (Import and Export can be done from the right-click menu of the results table). Added a toggle to the Find Bar Options to prevent the Find Bar from disappearing after search. Display a warning when more than 10000000 find occurrences are found (this limit can be changed or turned off using the Find Bar Options). In the Find Bar Options, use the Use Custom Color toggle to apply a custom color for any search. Fixed issues searching for very long arrays of hex bytes (more than 16384 bytes). Now display an error when a read-error is encountered when searching on a Windows hard drive. Increase the maximum line length in the Find results from 4096 to 65535.

Tutorials Added new 'Writing Binary Templates' tutorial to teach the basics of creating Binary Templates. Moved Tutorials to the Help menu.

Templates/Scripts Can export the Template Results in XML format. Can layout Template Results to the right of the Hex Editor Window by right-clicking the Template Results and choosing Template Results Position . Exporting Template Results as CSV or XML exports strings in UTF-8 format. Default file name for exporting Template Results now includes the file name. Preprocessor #define now works with symbols that have previously been defined. Added note to the manual about preprocessor constant _010_LINUX being defined on Linux. New Functions Added RegExMatch, RegExMatchW, RegExSearch, and RegExSearchW functions for searching within strings for regular expressions. Added ExportXML function to export Template Results as XML. Added FindStrings function to perform a string search similar to ' Search > Find Strings '. New functions GetBackColor and GetForeColor can be used to query the currently active color. Added GetMouseWheelScrollSpeed and SetMouseWheelScrollSpeed to get or set the current mouse wheel speed. Function Updates Can use regular expressions in the FindAll, FindFirst, FindInFiles or ReplaceAll functions with the 'method=FINDMETHOD_REGEX' parameter. Memcpy/WMemcpy functions now have extra parameters 'int destOffset=0, int srcOffset=0' that can be used to read or write from the middle of an array. Functions ReadLine, TextReadLine, TextWriteLine, TextReadLineW, TextWriteLineW, TextGetLineSize all have an option 'int includeLinefeed=true'. When this parameter is false, linefeeds are not included in the read, write, or size operation. ReadByte/ReadInt/ReadShort/etc. now default to the position 'FTell()'. Can retrieve the error code from a process called using the Exec function with the errorCode parameter.

Command Line Use -line: to jump to a specific line in a text file. Use -goto: to jump to a byte address, sector, line or short in a file. -goto: supports the syntax from the Goto Bar (for example, use '-goto:+10,s' to skip ahead 10 sectors). Set a selection from the command line using -select:<start>:<size> or -select::<size> . Old syntax of using @ after a file name to set the cursor or selection is still supported but will be deprecated in the future.

Options New option on General page: Show Popup when a New Version is Available . Can set default linefeeds when creating new files on the File Interface page instead of the Text Editor page. New Directories page used to control the initial directory when opening a file dialog box (open file, save file, import, export, open template, save template, open script, save script). New option on Editor page: Auto-hide Floating Tab Group when All Files are Closed . Moved options for the cache into a separate Cache page. Ruler Color now effects the File Bar color as well.

Bugs Fixed problem on Mac using the %Lx format specifier in Printfs. Fixed some drives on Windows were not correctly displaying the last few sectors. Fixed Find on some Windows drives would stop before reaching the end of the drive. Fixed crash exporting a very large Find results from a text file. Fixed Histogram percentages not always totaling 100% with some types of histograms. Fixed problem displaying histogram for int64's. Fixed crash calling a function in a script when the first character in the argument list was a comma. Fixed issue where focus could be incorrectly grabbed from other applications in some cases. Fixed cannot delete bookmarks that exist beyond the end of the file. On Windows, fixed using file masks '.*' and '.' should match files with no extension. Fixed crash using bookmarks on files with file names longer than 128 characters (no limit now). Fixed a case where it was possible to cancel a Find in Files directory scan and get an incorrect progress state. Fixed Replacing text with nothing did not show any text in the Find tab of the Output panel. Fixed replace two spaces with nothing can cause a crash in certain cases. Fixed right-click and Mark Selection End on an existing selection sometimes did not work as expected. Fixed highlighting issue using Lock to Selection on the Find Bar with selections greater than 2 GB. Fixed ensuring Inspector.bt is called when the selection size is changed. Fixed opening a single file from the Windows Explorer right-click menu would sometimes not correctly restore previously open files. Fixed crash with long Comparisons when sorting set to the Result column. Fixed some address issues using Copy as Text Area. Fixed bug writing 0x0d0a to a text file from a script when two linefeeds would be displayed instead of one. Fixed bug with the FindFirst function searching up when a match occurs at the very top of the file. Fixed some progress issues when doing a long Replace operation.

Version 5.0.2 - July 28th, 2014 Fixed problem writing to drives on Windows 7 and later versions. Windows now requires that all open file handles be closed before changes can be saved.

If all file handles are not closed when a drive is opened, a warning is displayed and the drive is marked as read-only (Windows only).

In the Open Drive dialog each physical drive shows a list of logical drives it contains (Windows only).

Added 010 Editor to Mac Finder 'Open With' right-click menu for most file types.

Changed Chinese Simplified encoding from GB2312 to GB18030 (GB18030 is a superset of GB2312).

Fixed using Printf/FPrintf and %s with strings more than 4096 characters long.

Fixed error message on some machines about regsvr32 in the Windows installer.

Fixed crash with sizeof operator on certain structs declared with a size attribute.

attribute. Fixed not being able to cancel a script after the RunTemplate function was called.

Fixed Find in Files was not properly releasing some file handles.

Functions InputNumber/InputFloat/InputString properly resize the dialog before it is displayed.

Fixed problem using Exec function on Linux and Mac with file names than contain spaces.

Using %f parameter in External Programs now auto-adds quotes for file names containing spaces.

Now show a warning when attempting to open Template Results hierarchies deeper than 31 levels.

Fixed 010 Editor unable to run on some Linux machines due to a Qt library issue.

Fixed crash on Mac with duplicate enums. Version 5.0.1 - June 19th, 2014 Fixed Copy As Hex Text crash when the hex editor Line Width is set to Auto Width.

Fixed possible text corruption in Linux when deleting.

Fixed crash using SHA-512 on certain large files.

Fixed setting a shortcut key for a script starting with a lowercase letter.

Fixed possible crash with Allow Multiple Find Ranges and large files.

Fixed Hex Operation dialog becoming uneditable after first operation on the Mac.

Fixed crash with certain non-terminated strings in scripts or templates.

Fixed problems opening files larger than 4 GB on Linux.

Fixed clicking the upgrade link in the Register dialog when the licensee name contains certain non-ASCII characters.

Added instructions on running 010 Editor on Ubuntu 14.04 64-bit. Version 5.0 - June 24th, 2013 The following is an overview of the new functionality in version 5.0 of 010 Editor: Syntax highlighting for HTML, XML and PHP.

Customizable syntax highlighting.

Column mode (hold Ctrl while dragging the mouse to select columns).

Customizable toolbars and right-click menu.

Available for Linux, Windows and Mac OS X.

New format menu with options for Uppercase, Lowercase, Capitalize, Tabify, Untabify, Comment Selection, Uncomment Selection, Increase Line Indent, Decrease Line Indent, and Trim Trailing Whitespace.

Show whitespace.

Better interface for customizing shortcut keys.

Added SHA-512 algorithm.

Added 16-bit half-float data type (hfloat).

Support for importing and exporting binary text.

19 new functions for Scripts and Templates. The following is a list of all new features in version 5.0 of 010 Editor: Syntax Highlighting Added syntax highlighting for HTML, XML and PHP. New Syntax Highlights can be created or existing Highlights modified using the Syntax page of the Options dialog. Support styles for Syntax Highlights so multiple rules can share a single color. Edit styles using the Styles page of the Options dialog. Easily modify the list of highlighted keywords for a Syntax Highlight. Support multiple rule types including Multi-Line Block, Single-Line Comment, Keywords, Single-Line Block, C-Style String, Tag Name, and Tag Attribute. Rules can be applied with Ignore Case for case insensitivity. Support multi-line C-style strings with '\'. Import or export the list of Syntax Highlights including styles using the Import List or Export List buttons. Support sub-rules so that different types of syntax highlighting can be applied to the same file.

Column Mode Support Column Mode for editing the columns of text or hex data. Easily make a column selection with the mouse by holding down Ctrl while dragging. Enter column mode using Alt+C or click the Column Mode icon in the Toolbar. Make column selections and copy or paste them using the clipboard. Make a column selection and start typing to insert text on each line at the same time. Column selections supported in Hex mode as well. Click and drag straight down to create a special column insert line. When the clipboard contains just a single line of data, pasting the data with a column selection pastes the data on each line of the selection.

Linux Version Added Linux version with installer. Officially support Ubuntu 10.04 and later. Available as a 32-bit program (can be installed on 64-bit OS as well). Can load scripts and templates by double-clicking them in the Ubuntu File Manager. Support Unix-style middle-click clipboard.

Toolbar Customization Can customize Toolbars by using the Toolbars page of the Options dialog. Access the Toolbars page by right-clicking on a Toolbar and selecting 'Customize...'. Drag-and-drop actions to the Toolbar list to insert items into the Toolbars. Insertion point marked with red line. Drag icons out of the Toolbar list to delete items from the Toolbars. Create, delete and rename custom Toolbars.

Menu Customization Customize the Editor Right-Click menu using the Menus page of the Options dialog. Can also access the Menus page by right-clicking on an Editor Window and choosing 'Customize...'. Drag-and-drop actions from the Actions tree to the menu to insert actions. A red line marks the action insertion point. Drag items out of the menu to delete actions from the menu. Add separators to the menu using the special Separator action. Add sub-menus to the menu with the Submenu action. Double-click on a sub-menu name to rename the sub-menu.

Format Menu Added new Format menu for working with text data. Can convert text to Uppercase , Lowercase , or Capitalize (e.g. APPLE, apple, Apple). Converts spaces to tabs using Tabify or tabs to spaces using Untabify . Can add or remove comments from the selection using Comment Selection and Uncomment Selection . Commenting supports line comments (e.g. '//') and multi-line comments (e.g. '/*' and '*/') based off the current Syntax Highlighting scheme. Format menu supports Increase Line Indent to add tabs or Decrease Line Indent to remove tabs (similar to using Tab or Shift+Tab in the editor). Trim Trailing Whitespace removes any spaces or tabs from the end of each line. Tabify , Untabify and Trim Trailing Whitespace operate on the whole file if no selection is made.

Show Whitespace Use 'View > Tabs/Whitespace > Show Whitespace' or the icon in Toolbar to display whitespace. Shows symbols in a text file where spaces and tabs exist. The color of the symbols can be controlled in the Colors page of the Options dialog. The Show Whitespace setting is remembered with the current File Interface.

Shortcut Keys New, easier-to-use interface for changing Shortcut keys in the Options dialog. Better support for Shortcut keys on the Mac. Enter a Shortcut key by pressing the key on your keyboard instead of having to type out 'Ctrl+M'. Use ' Help > View Shortcut List ' or click the List Shortcuts button in the Options dialog to view a list of all shortcuts sorted by shortcut name. The list of shortcuts shows any customized shortcuts as bold. Allow multiple shortcut keys to be assigned to a single action. Better interface for removing shortcut keys from actions. Can see any conflicting actions when assigning shortcut keys.

New Functions Converts a set of hex bytes to a double, float, or hfloat with ConvertBytesToDouble, ConvertBytesToFloat, or ConvertBytesToHFloat. Support copying an array of hex bytes to or from the clipboard with CopyBytesToClipboard and GetClipboardBytes. Save a portion of a file with the FileSaveRange function. Access the custom clipboards with the GetClipboardIndex and SetClipboardIndex functions. Access other properties of bookmarks with the GetBookmarkArraySize, GetBookmarkBackColor, GetBookmarkForeColor, GetBookmarkMoveWithCursor, and GetBookmarkType functions. Added a radio button box input dialog using the function InputRadioButtonBox. Ask the user for a directory with the InputDirectory function. Can overwrite a block of bytes using the OverwriteBytes function. Added ReadHFloat and WriteHFloat for working with half-floats. Set environment variables within the working process with the SetEnv function.

Functions Updates FileClose was improperly asking to save changes on a modified file. GetClipboardString, CopyStringToClipboard, and ClearClipboard uses the current clipboard (see GetClipboardIndex and SetClipboardIndex). CopyStringToClipboard has a charset parameter to inform the clipboard of the type of data being copied. Can specify a custom polynomial or initial value with the Checksum functions. Added an optional number of bytes to read to the ReadWString, ReadString, ReadLine, and ReadWLine functions. FileNew has a new makeActive parameter to control if the created file is set as the active file. Added an optional fill character to the InsertBytes function. InputOpenFileName, InputOpenFileNames, and InputSaveFileName functions now use UTF-8 strings. The Sleep function now refreshes the screen before long sleeps (more than 1000 milliseconds). Added SHA512 algorithm to the checksum functions. Added Binary Text format to the Import/Export functions. TextGetNumLines now returns -1 if the current file is a hex file. Update help that Strlen returns the number of bytes instead of the number of characters.

Templates/Scripts Added 16-bit Half-float (hfloat) data type. Automatically cast between hfloat, float and double data types. Tooltips now properly use any custom <name=> functions.

General Updated visual style of the interface and updated some icons. Added new File Interfaces HTML, PHP, and XML. When selecting more than one line in a text editor, the number of selected lines is now shown by default in the status bar. Added SHA-512 hash algorithm. Able to delete individual recent files or clear the list of recent files by right-clicking on the Recent Files list in the Workspace or the Startup page. Added Goto button to the Goto Bar. Added new File Interfaces to the New list. Auto-detect XML files. Added -readonlyall command line option to mark all files as read only. Added 'Selection > Goto Selection Start' and 'Selection > Goto Selection End' for jumping to the beginning or the end of a selection from the right-click menu. Synchronized scrolling now only works between all hex files or all text files. Faster Undo/Redo for operations which contain a large number of small operations. Renamed 'Toggle Word Wrap' action to 'Word Wrap'. Renamed configuration file to '010Editor50.cfg'. Removed 3-computer limit in the End-User License Agreement.

Import/Export Added Import/Export option for the Binary Text format (e.g. 10100010 11110000). Added Copy As Binary Text and Paste From Binary Text to the Edit menu. 'Copy as <format>' now uses the displayed number of bytes per line (it was using the number of bytes from the last export).

Options Can disable the auto-import of Intel Hex or Motorola files when dragging and dropping from the system File Manager (see the Importing page). Added option to disable the Backspace/Delete key in Overwrite mode for hex files (see the Hex Editor page). Can control the color of the Show Whitespace characters on the Colors page.

Bugs Fixed bug with Save Selection on a newly created file. Fixed crash with -compare command line option when the file names were the same. Fixed issue with updating the Recent Files list when scripts or templates were opened. Deleting a file from the Workspace Recent Files list did not update the Startup Page Recent Files list. Fixed up Insert Date / Insert Color on big endian unicode files. Fixed up 'Move to New Vertical Tab Group' missing after a Compare. Fixed warning dialog for optimized structs cannot be dismissed on Mac. Fixed crash when an improper argument was passed to a function inside a script in certain cases. Fixed error message in the Windows installer about Regsvr32. Possible to delete part of a DOS linefeed in certain cases.

Version 4.0.4 - March 20th, 2013 Fixed Find Strings finding unicode strings on odd byte boundaries.

Fixed crash assigning to a non-existent variable from a script.

Fixed crash in find hex bytes when using ',a'.

Fixed crash when checksum functions are used inside custom read/comment functions. Version 4.0.3 - November 8th, 2012 Fixed crash with Printf when using certain combinations of parameters.

Fixed problem using Goto on the Mac.

Fixed using on-demand structs within custom read functions in certain cases.

Fixed 