The following is an overview of the new functionality in version 3.1 of 010 Editor:
- Support for the UTF-8 character set. - Support preprocessor directives #define, #ifdef, #ifndef, #else, etc. - Support for wstring and wchar_t in Scripts/Templates (unicode strings). - Use -noui to run 010 Editor without a user interface for batch files. - Template variables can now have comments (e.g. <comment=""> after a variable). - New options when defining template variables: <fgcolor=???>, <bgcolor=???>, <open=true|false|suppress>, <hidden=true|false>. - Can pass arguments into structures.
The following is a list of all new features in version 3.1 of 010 Editor:
Editor Support the UTF-8 character set. Added 'UTF-8' and 'Binary' to the 'Edit As' drop-down list. Added support for Ctrl+Ins(Copy), Shift+Ins(Paste), and Shift+Del(Cut). Shows a current column position arrow in the text editor ruler. Soft hyphen (0xAD) displayed as hyphen instead of space.
Command Line - Use -noui to run 010 Editor without a user interface for batch files. - Added -nowarnings to disable display of message boxes when using -noui. - Can run comparisons from the command line with -compare. - Added -exitnoerrors to close 010 Editor only if there are no script or template errors.
Histogram - Char column in histogram displays the current file character set.
Bookmarks - Toggle Bookmark (Ctrl+F2) makes a bookmark for the whole selection, not just the selected byte.
Compare - If exactly two files are open, they will automatically be filled in the Compare dialog when opened. - Can run comparisons from the command line. - Increased number of internal allowed differences in comparison algorithm.
Options - Can hide the splash screen on startup (only when the software is registered). - Control the color of the caret. - Can change the input-method editor (IME) color. - Can control the ruler column marker arrow color.
Templates and Scripts - Can display comments for variables using <comment=""> syntax after a variable. - Can set the color of a variable using <fgcolor=???> or <bgcolor=???> after a variable (for example, <fgcolor=cBlack, bgcolor=0x803020>). - Can use <open=true|false> after a variable to have a variable open by default. - Can use <hidden=true|false> after a variable to hide variables. - Can use <open=suppress> after a variable to prevent it opening during Expand All. - Can pass arguments into structures. - Support #ifdef, #ifndef, #define, #undef, #endif, #else, #warning, #error preprocessor directives. - Added support for unicode strings (wstring/wchar_t). - Can use L to indicate wide-string constants (e.g. L"dog"). - Bitfields and enums can now work together. - Can now call functions in templates from scripts. - Enum values can now be any expression. - Better handling of int64 constants (auto-detect). - Added current template directory to include path search. - Use Ctrl+Left/Right/Enter for better navigation in the template results tree. - Double-click on an error or warning takes you to the source code line. - Enum list items can be selected on single-click instead of double-click. - Support showing local variables inside a struct. - Correctly update focus highlight in Variables tab when switching files. - Can cast time types to ints or floats. - Updating variable coloring rule so colors are properly propagated from parents to children. - Exec function is no longer allowed in a template. - Now require "" or <> after #include statements.
New Functions - Can run a template from a script (RunTemplate). - Can set bookmarks from a script or template (AddBookmark, GetBookmarkName, GetBookmarkPos, GetNumBookmarks, RemoveBookmark). - Added new clipboard functions (ClearClipboard, CopyStringToClipboard, GetClipboardString). - Get the current time (GetCurrentTime, GetCurrentDate, GetCurrentDateTime). - Added an Assert function. - Convert a variable such as int or float to bytes (ConvertDataToBytes). - Retrieve the current temporary directory (GetTempDirectory). - Control the output panel where Printf data is displayed (OutputPaneClear, OutputPaneSave, OutputPaneCopy). - Can wait for a certain number of milliseconds (Sleep). - New wstring (unicode string) functions: InputWString, ReadWLine, ReadWString, StringToWString, WMemcmp, WMemcpy, WMemset, WriteWString, WStrcat, WStrchr, WStrcmp WStrcpy, WStrDel, WStricmp WStringToString, WStrlen, WStrncmp WStrncpy, WStrnicmp, WStrstr, WSubStr. - Can determine if a function exists with 'function_exists' keyword. - Exec function has a parameter to wait until execution is finished before returning. - FileOpen can execute the template associated with a file. - Can access the current structure variable with 'this' keyword. - Can access the parent of a structure variable with 'parentof' keyword.
General - Installer can warn user if installing a version that will require an upgrade. - Register dialog button displays 'Cancel' instead of 'Continue' to prevent confusion. - Temp directory can pick up the TEMP system variable. - Add Ctrl+Enter shortcut in Find in File results (keeps focus on Output Window). - Better handling of multiple versions of the configuration file. - Configuration file should be less prone to corruption. - Exporting Decimal Text now writes left-aligned numbers.
Bug Fixes - Fixed templates variable arrays if the size of the array is greater than 2 GB. - Fixed bug where a file could display no data after canceling a script or template. - Fixed bug drawing the ruler when certain fonts are chosen. - Now correctly report physical disk size on Windows XP or higher. - Improved error message when using shift operators. - Improved error message when defining a structure twice with typedef. - Fixed empty structure warning when using bitfields and no padding. - Fixed bug with drawing Fg: in the template results. - Fixed bug selecting bytes in Unicode. - Fixed bug extending a selection with Shift+click. - Fixed reading bookmarks containing enums. - Fixed opening files containing '@'. - Fixed importing a hex text containing very long lines. - Fixed using bitfields mixing named and unnamed variable. - Fixed auto-detect of decimal import text. - Fixed bug using post increment during array access. - Fixed printfs sometimes being colored red after an error. - Fixed syntax highlighting issue with quotes. - Fixed possible crash with the FileClose function. - Fixed error message when defining struct variables incorrectly. - Fixed a typo in the welcome dialog. - Fixed issue with the syntax highlighting menu. - Fixed an issue with double-clicking on find-in-file results. - Fixed Variables Tab not being updated correctly after running a script. - Fixed issue working with files that are deleted. - Fixed issue passing strings to functions which are then passed to other functions. - Fixed selecting issue by dragging over the last line in the text editor. - Fixed negative enums. - Fix for optimizing warning on struct that just contains a 'string' variable.