What's New in Version 4.95
__________________________
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
***Please enable word wrap when viewing this document***

Major Changes in Latest Versions
================================
Only the most significant feature changes are listed under this topic. See the next main topics for a more comprehensive explanation of the changes.

NoteTab v4.95 (released: 22 May 2003)
ŻŻŻŻŻŻŻŻŻŻŻŻŻ
* Added optional News feature to inform you of NoteTab updates and other Fookes Software news.
* Added Quiet option on Advanced tab in Options dialog box. Turns off most sounds when enabled.
* Updated Help file.
* Several minor glitches fixed and other improvements.

NoteTab v4.92 (released: 14 January 2003)
ŻŻŻŻŻŻŻŻŻŻŻŻŻ
* Maintenance release (see changes under next main topic).

NoteTab v4.91 (released: 26 August 2002)
ŻŻŻŻŻŻŻŻŻŻŻŻŻ
* Maintenance release (see changes under next main topic).

NoteTab v4.9 (released: 10 June 2002)
ŻŻŻŻŻŻŻŻŻŻŻŻ
* Seamless support for UltimaShell Autocompletion Server (UAS).
* New Help files; Clip code now in separate file.
* Supports both WinHelp and HTML Help.
* Supports extended File Open/Save dialogs under Win2000/ME/XP.
* Improved handling of browsers.
* Customizable menu shortcuts (NoteTab Pro and Std).
* Now compatible with NTFS 5 Summary Information Properties.
* Improved Browse Folder dialog box.
* New Clip commands and functions.
* See details of changes under next section.

NoteTab v4.86c (released: 10 December 2001)
ŻŻŻŻŻŻŻŻŻŻŻŻŻŻ
* Supports Windows XP themes.
* Many minor improvements and bug fixes.
* New Setup program made through the Inno Setup package (http://www.jrsoftware.org/).
* See details of changes under next section.

NoteTab v4.85 (released: 09 May 2001)
ŻŻŻŻŻŻŻŻŻŻŻŻŻ
* Maintenance release (see changes under next main topic).

NoteTab v4.84 (released: 09 February 2001)
ŻŻŻŻŻŻŻŻŻŻŻŻŻ
* Improved the regular expressions engine.
* Added support in NoteTab Pro and Std for WordWeb.
* Added CSS1 library and Clipbar.
* Added Clip functions to encrypt/decrypt your text and files.
* Added Clip commands and functions performing ROT13, CRC32, MD5, and UUEncode/UUDecode operations.
* Minor improvements to the Clip language and bug fixes.
* See details of changes under next section.

NoteTab v4.83 (released: 26 October 2000)
ŻŻŻŻŻŻŻŻŻŻŻŻŻ
* Now runs on Macs using Virtual PC.
* Minor improvements to the Clip language and bug fixes.
* See details of changes under next section.

NoteTab v4.82 (released: 12 May 2000)
ŻŻŻŻŻŻŻŻŻŻŻŻŻ
* Powerful new engine for regular expressions.
* See details of changes under next section.

NoteTab v4.81 (released: 22 March 2000)
ŻŻŻŻŻŻŻŻŻŻŻŻŻ
* Maintenance release (see changes under next main topic).

NoteTab v4.8 (released: 14 February 2000)
ŻŻŻŻŻŻŻŻŻŻŻŻ
* NoteTab now integrates with HTML Tidy, TopStyle, and CSE HTML Validator.
* Added Clipbars to NoteTab Pro and Std: a special type of toolbar with buttons that run Clips.
* NoteTab Light now supports the full Clip language.
* Added over 50 new commands and functions to the Clip language.
* Improved the HTML Clipbook libraries and added the HTML-1 and HTML-2 Clipbars.
* Option to generate HTML tags in uppercase, lowercase, or XHTML format.
* Menu command to convert selected HTML tags to uppercase, lowercase, or XHTML format.
* Added feature to enable previewing of Web pages, such as ASP and Cold Fusion, through a local Web server.
* NoteTab Pro can now open files larger than 16 MB.
* Supports .png images (image size for HTML image tags).
* Significantly improved performance of Perl, Gawk, and other related Clip commands.
* Improved support for WordStar commands.



Changes in Version 4.95
=======================
* Added optional News feature to inform you of NoteTab updates and other Fookes Software news. This feature is available under the Help menu through the Check for Updates command.

* Added Quiet option on Advanced tab in Options dialog box. Turns off most sound prompts when enabled.

* Used a new method for the "Use as Paste Board" feature.

* NoteTab Light/Std: the ^$GetParaCount$ Clip function usually missed a line. This is now fixed.

* Recent versions of WordWeb were not always recognized. This is now fixed.

* Updated Help file.


Changes in Version 4.92
=======================
* NoteTab now checks Web documents to see if they declare UTF-8 character encoding in their header. If the UTF-8 declaration is found, NoteTab takes care of automatically converting characters from UTF-8 to ANSI on loading, and ANSI to UTF-8 on saving. Note that characters which are not available in the current ANSI character set are substituted by a question mark (?).

* The "Document to HTML" feature no longer converts extended characters to their corresponding entities if the document is a UTF-8 Web file.

* Starting with NetCaptor 7.02, NoteTab can open Web documents in the same browser page when the option is invoked.

* Updated the HTML Clipbook library.

* Wrap to Column in NoteTab Light and Std produced lines that were one character too short. This is now fixed.

* NoteTab Pro: URL protocol names with numbers are now correctly highlighted. E.g.: ed2k:// (eDonkey2000 protocol).

* Other minor changes and fixes.



Changes in Version 4.91
=======================
* Checkbox controls now support a "+" key press to set a check mark and "-" to uncheck it. This is useful for controlling settings through keyboard utilities.

* Updated the Clip Assistant with a new item for the "Menu" command, kindly offered by Sheri Pierce.

* Updated the Help files; ClipCode.chm now uses bookmarked items.

* Fixed an issue in v4.9 where &nbsp; substituting blank characters in indented lines when converting from text to HTML.

* Fixed an issue in v4.9 when using the "View in browser" command with documents on a network drive using the UNC format (eg: \\network\web\filename.html).

* Fixed an issue in v4.9 that resulted in some extra random characters getting added at the end of documents when they were saved to certain types of network drives.

* Fixed a bug that caused loss of data or corruption when saving UTF-8 documents.

* Other minor changes and fixes.



Changes in Version 4.9
======================
* NoteTab now works seamlessly with UltimaShell Autocompletion Server (UAS) from FlashPeak. This excellent utility provides smart autocompletion and can learn new words as you type away. It's easy to use and can save a lot of time. A free version of UAS is available to NoteTab users from here:
http://www.notetab.com/uas.htm

* The Help file has been split into two documents -- the main Help and Clip programming Help. The index for Clip syntax has been completed and URLs are now clickable.

* NoteTab now supports for both WinHelp and HTML Help. If it finds the *.chm HTML Help files in its folder, NoteTab uses them instead of the traditional WinHelp files (.hlp).

* Under Windows 2000, ME, and XP, NoteTab now uses the extended File Open/Save dialogs with the "places" bar.

* Now integrates a new method for launching Web browsers. It should work better than in previous versions. See Help topic "Options | Internet" for details.

* You can now change the default keyboard shortcuts for menu items by creating a definition file called Shortcuts.dat in the NoteTab program folder. Place one shortcut reassignment per line. Start the line with the shortcut value, followed by a space, followed by the menu item. The first menu name in the sequence is the one that appears at the top of the main menu, followed by submenu names (if any), and then the name of the final menu item to activate. You must separate submenu items with a forward slash and leave out any ellipsis. You should put double quotes around a menu name if it contains one or more forward slash characters. The case of characters does not have to be the same as the actual menu commands.You can comment out shortcuts by putting a semicolon at the start of the line. Note that this feature is not available in NoteTab Light. Contents example for the Shortcuts.dat file:

;This line starts with a semicolon and is ignored by NoteTab
Ctrl+Shift+F Document/Font/Change Font
Ctrl+T Document/"Insert Date/Time"

* During the conversion from text to HTML, multiple spaces are now preserved with the &nbsp; entity.

* When saving files on NTFS 5 drives, Summary Information Properties are now preserved when the backups setting is enabled.

* The Browse Folder dialog box used in various parts of NoteTab has been improved.

* Added five new Clip functions:

^$StrIndent("Str";IndentSize)$
Returns the Str value with each line indented by IndentSize number of blank characters.

^$StrAlign("Str";TextWidth;Alignment[;Pad=False])$
This function aligns the Str value within a space specified by TextWidth. Alignment values can be Left, Right, or Center. If the Pad parameter is used, a True value adds blank spaces on the right side of Str (if necessary). Examples:
^$StrAlign("Test";10;Right)$ -> "      Test"
^$StrAlign("Test";10;Center;True)$ -> "   Test   "

^$StrAnsiToOem("Str")$
Returns Str based on ANSI-defined character set converted to OEM.

^$StrOemToAnsi("Str")$
Returns Str based on OEM-defined character set converted to ANSI.

^$GetShellFolder(SystemFolder)$
Returns the path to the specified folder type "SystemFolder". The folder name always ends with a backslash. See below for SystemFolder values and an example of a corresponding path (under Windows 98).

Desktop --> C:\WINDOWS\Desktop\
Templates --> C:\WINDOWS\ShellNew\
AppData --> C:\WINDOWS\Application Data\
Start Menu --> C:\WINDOWS\Start Menu\
Programs --> C:\WINDOWS\Start Menu\Programs\
Startup --> C:\WINDOWS\Start Menu\Programs\StartUp\
Fonts --> C:\WINDOWS\Fonts\
SendTo --> C:\WINDOWS\SendTo\
Recent --> C:\WINDOWS\Recent\
Favorites --> C:\WINDOWS\Favorites\
NetHood --> C:\WINDOWS\NetHood\
Personal --> C:\WINDOWS\My Documents\
Cache --> C:\WINDOWS\Temporary Internet Files\
Cookies --> C:\WINDOWS\Cookies\
History --> C:\WINDOWS\History\
PrintHood --> C:\WINDOWS\PrintHood\
Local AppData --> C:\WINDOWS\Local Settings\Application Data\
My Pictures --> C:\WINDOWS\My Documents\My Pictures\
Administrative Tools -->
  C:\WINDOWS\Start Menu\Programs\Administrative Tools\

^$ExpandEnv("Str")$
This function expands environment-variable strings and replaces them with their defined values. Example (under Windows XP):
^$ExpandEnv("%systemroot%")$ -> "C:\WINDOWS"

Predefined system variables:
  ComputerName
  ComSpec
  HomeDrive
  HomePath
  HomeShare
  LogonServer
  Number_Of_Procesors
  OS
  Os2LibPath
  Path
  PathExt
  Processor_Architecture
  Processor_Identifier
  Processor_Level
  Processor_Revision
  Prompt
  SystemDrive
  SystemRoot
  UserDomain
  UserName
  UserProfile
  WinDir

* Added ^!Menu command to the Clip language. Use it to activate any enabled command from the main program menu. The first menu name in the sequence is the one that appears at the top of the main menu, followed by submenu names (if any), and then the name of the final menu item to activate. You must separate submenu items with a forward slash and leave out any ellipsis. You should put double quotes around a menu name if it contains one or more forward slash characters. The case of characters does not have to be the same as the actual menu commands. The following example opens the Font dialog box for the active document:
^!MENU Document/Font/Change Font

The example below inserts the date and time from the menu command (notice the use of double quotes):
^!MENU Document/"Insert Date/Time"

* Added ^!SetShortcut command to the Clip language. You can use it to temporarily change keyboard shortcuts for menu items. It takes two parameters, which are separated by a space character. The first parameter represents the shortcut value and the second represents the menu item. Note that this command is not available in NoteTab Light. Examples:
^!SetShortcut Ctrl+Shift+F Document/Font/Change Font
^!SetShortcut Ctrl+T Document/"Insert Date/Time"

* Added ^!InsertSelect command to the Clip language. It works just like ^!InsertText but it also selects the inserted text.

* Added the new pre-defined Clip variable ^%AR_WORD%, which contains the Auto-replace text.

* The Clip command "^!Select Filename" has been updated to work with long filenames.

* Improved the ^!Url command with an options parameter to specify a browser similar to the method available in the Options dialog box for the browser fields on the Internet tab. Syntax:
^!Url [Browser command] <url>
The following example will open the URL in Internet Explorer:
^!Url [IExplore] www.fookes.com
or in Mozilla (if you have the browser installed):
^!Url [Mozilla] www.fookes.com

* Fixed an issue with the ^!SaveValue command, which always placed quotes around values. This resulted in numerical and Boolean values being read incorrectly when applied to NoteTab's .ini file settings.

* Under Windows 2000 and XP, NoteTab Light and Std were often unable to undo certain kinds of edit changes. This has been fixed.

* Fixed several issues in the RegEx engine.

* Closing a modified document that is locked by another application displayed an error message, but did not give the opportunity to retry or cancel closing. This is now fixed.

* Under Windows NT/2000/XP, NoteTab could not save over libraries that had the Hidden attribute set. This has been fixed.

* Recent versions of NoteTab failed to load binary files that started with a sequence of null characters. This is now fixed.

* Fixed access violation error when opening UTF-8 files.

* Fixed a minor issue with incorrect line break character sometimes generated when opening Unicode files.

* Other minor changes.


Changes in Version 4.86c
========================
* You can now close document tabs by clicking on them with the middle mouse button or the mouse wheel (like in Netcaptor).

* The "Open File at Cursor" command (F7) now also works with most fully qualified filenames that contain spaces. Example:
C:\Program Files\Accessories\pppmenu.scp

* NoteTab Pro: Added two WordStar commands: Ctrl+N (<Return>+<Left>) and Ctrl+U (Undo)

* Added "Restore Default HTML Editor" to the Utilities library.

* Added support for a logical zero function in the mathematical expressions parser. Use lzero(x) to return 1 if x=0 and 0 if x<>0.

* Added support for Windows XP themes through a manifest file.

* NoteTab Pro: Added option to highlight a word with or without trailing spaces when double-clicking to select. Hold the Alt key down while double clicking to change the selection method. The setting is remembered between NoteTab sessions.

* Changed settings for some of the default options -- only noticeable on a clean install.

* Added ^$StrUrlDecode("Text")$ function to convert URL strings and form Mailto data to plain text. Example:
^$StrUrlDecode("C%3A%5CProgram%20Files%5CReadme%2Etxt")$ --> C:\Program Files\Readme.txt

* Fixed several glitches in the regexp engine.

* Under Windows 2000 and XP, the program window sometimes failed to come to the front when invoked. This has been fixed.

* NoteTab Pro: Fixed incorrect behavior of the vertical scroll bar when lines exceeded 32K.

* NoteTab Pro: Fixed display issue with line ruler when second document window is displayed.

* NoteTab Pro: Fixed a minor issue with URL highlighting when the "Show Nonprinting" option is set.

* Fixed an issue that caused some URLs to be incorrectly invoked through the Web browser.

* Saving files to a remote disk or any other slow target sometimes generated a "file not correctly saved to disk" error message. This has been fixed.

* Under Windows 2000 and XP, NoteTab failed to save over a file that had the Hidden attribute set. This has been fixed.

* Fixed minor problem with disabled "Save Now" command in Clipbook shortcut menu. It was always disabled when the Clip editor was open and only the current Clip has been modified.

* Fixed "Please remove the file's Read-Only attribute" error message when saving new Clipbook Libraries.

* Fixed an issue with the ^$StrSort()$ Clip function. If the criteria did not contain line breaks, the function would return an empty string when RemoveDuplicates = False.

* Fixed incorrect rendering of link character case generated through the HTML-tag Clip-wizard field.

* Fixed an issue affecting FarClips and Clips invoked from Clipbar. The Clip parser failed to convert ^!Clip to ^!FarClip when the command appeared immediately following a conditional statement. Example of statement that would fail if invoked as a FarClip:
^!IfTrue ^$IsEmpty("^%Computer%")$ ^!Clip "FTP server setup"

* Other minor changes.



Changes in Version 4.86
=======================
* Unicode files are now automatically detected on loading and converted to ANSI for display in the editor. Note that the process will not convert characters correctly if they are not available in the current ANSI character set. By default, Unicode files are opened in Read-Only mode. See the "Protect Unicode Files" setting described below.

* New "Protect Unicode Files" setting on the General tab of the Options dialog. When NoteTab opens Unicode files, it has to convert them to the ANSI character set, which contains much fewer characters. As a result, the conversion process may drop non-ANSI and cause the loss of information. When this setting is checked, Unicode files are opened in Read-Only mode, which protects the file from changes. If you know that your Unicode documents will not loose important information during the conversion process, you can uncheck this option in order to open such files in editable mode.

* File Security attributes should now be correctly preserved when a file is saved with backups enabled.

* The "Help/Replace MS Notepad" menu command is now available under Windows 2000 and XP.

* New command-line parameter "/DDE=True or False" to switch off or re-enable DDE communication with Internet Explorer, Netscape, and Opera browsers. This is useful on some faulty Windows ME systems that hang when DDE is used.

* Search Disk now automatically save matches in Favorites file "Search Disk.fvr", so the files can easily be opened at any time until the next search.

* Incremental Clipbook backups using the tilde are now automatically hidden to avoid their appearing in the Clipbook bar.

* When searching through subdirectories, directories with the hidden, read-only, or system attributes were skipped. This is now fixed.

* Page scrolling now works correctly when mouse wheel is set to scroll one "screen" at a time.

* Fixed a glitch in the regexp engine. A replace operation would sometimes fail if the search pattern ended with the $ token.

* Fixed a glitch in Join Lines command that failed to join lines containing a single character.

* Fixed a glitch in the Strip HTML command that failed to produce a blank line when encountering a double line break <br><br>.

* Fixed a glitch in the Clip command "^!Select nnn", which failed to work properly if the range reached a non-empty last line.

* Fixed a glitch in the "Ordered List" and "Unordered list" clips from the HTML Clipbook library.



Changes in Version 4.85
=======================
* Some browsers opened up two windows when launched through the "View in Browser" command. Fixed.

* Custom colors set in the color dialog boxes are now correctly restored between sessions.

* Fixed a problem in the Modify/Change HTML Tags command that could mess up tags ending in a percentage value; like <TD ALIGN=center WIDTH=40%>

* The File Open/Save dialogs can now be stretched if your version of Windows supports this feature.

* The "Create Uppercase Tags" setting on the HTML tab of the Options dialog box now supports three states. When checked, tags are converted to uppercase. When unchecked, they are converted to lowercase. When grayed, case is not modified (useful when dealing with XML files).

* The StrRandom has been updated to let you optionally define which characters are used in the random string that is generated. Syntax: ^$StrRandom(Size[;Characters])$
"Characters" represents a string of characters that the function should use. You can define ranges by using "..". For example, A..Z represents all the uppercase letters of the Roman alphabet; A..Za..z0..1 represents all digits and letters of the Roman alphabet. Function example:
^$StrRandom(10;A..F0..9)$ --> D744E70176

* Holding Ctrl key down while launching NoteTab _no longer_ resets the .ini file. This feature caused too many problems, so it has been removed.

* Clip labels are no longer affected by trailing spaces.

* Fixed a printing problem when long lines that need wrapping don't contain a character to mark a split position.

* Fixed a problem in the mathematical expression parser's way of handling unary minus/plus signs. The following will now work correctly: ^$Calc(-2-2)$ and ^$Calc(+2+2)$

* Other minor changes.



Changes in Version 4.84
=======================
* Added support in NoteTab Pro and Std (registered versions only) for WordWeb, by Antony Lewis. If NoteTab detects the WordWeb DLL, then it will display the WordWeb dialog box when you invoke the Thesaurus from NoteTab's menu and toolbar. WordWeb is a powerful freeware thesaurus/dictionary for Windows. You can read more about it and download a copy from the following Web site http://www.wordweb.co.uk/

* Added support for Cascading Style Sheets through the CSS1 Clipbook library and Clipbar.

* NoteTab can now be started even if it does not find the efomacro.dll file. If NoteTab does not find it, Clips using the ^!Keyboard, ^!PasteBack, and ^!TypeBack commands will not work.

* The "Launch Document" command will now try to open the current document in its associated program when no criteria are specified in the Custom Launch setting.

* Fixed print range setting being ignored when multiple pages are printed.

* Numbers containing a comma (e.g. 1,000,000) are no longer split in word wrapped printed output.

* RegEx replacements now work on lines longer than 1024 characters. Maximum line length supported is now 32 KB.

* Fixed problem in regular expressions using tagged matches higher than "\1" in a replace operation, which did not work.

* Fixed crash that could occur under Windows ME when Web browser was launched from NoteTab.

* Fixed problem that caused NoteTab to fail to recognize some networked printers.

* Relative file names (like "../index.html" and "..\units\foo.pas") now supported by the "Tools|Open File at Cursor" and Tools|Open Link" menu commands.

* Fixed bad folder constructions when invoking the disk browser from the Quick List combobox. Example:
C:\Program Files\NoteTab Pro\*.txt\*.*

* Fixed Count feature, which skipped read-only documents when it iterated through the tabs.

* Fixed protection problem on NT and Win2000, which did not allow saving a file with the Hidden attribute set.


Clip Language:
.............
* Added ^!SetCode command for assigning values to a variable without interpreting ^?{} prompts and Clip tokens like ^P, ^T, ^&, ^#, etc. Variables and functions are evaluated normally.
^!SetCode %VariableName%=Value

* Added ^!InsertCode command for inserting values into the current document without interpreting ^?{} prompts and Clip tokens like ^P, ^T, ^&, ^#, etc. Variables and functions are evaluated normally. This command is very useful when treating UUEncoded text, which may contain character sequences that imitate such tokens.
^!InsertCode Text

* Added ^$StrROT13("Text")$ function to perform a ROT13 operation on the specified text.

* Added ^$StrEncrypt("Text";[Key])$ and ^$StrDecrypt("Text";[Key])$ functions, which provide stronger text encryption than ROT13. Use the optional "Key" parameter to define an encryption password (max. 255 characters). Make sure you don't forget the key you used with this function, otherwise you may never be able to retrieve your encrypted text. Note that although the encryption algorithm is very good, there is no guarantee that it can't be cracked. You should not rely on this feature to protect very sensitive data. Example:
^$StrEncrypt("^$GetSelection$";"^?[key=My secret password]")$

* Added Clip functions ^$GetCrcText("Text")$ and ^$GetCrcFile("Filename")$. Use these to calculate the CRC32 (cyclic redundancy check) of text and files respectively. Example:
^$GetCrcFile(^$GetAppFileName$)$

* Added Clip functions ^$GetMD5Text("Text")$ and ^$GetMD5File("Filename")$. Use these to calculate the MD5 signature of text and files respectively. The result is produced in hexadecimal format. MD5 is a hashing algorithm that generates a digital signature, or Message Digest, representing the supplied data. The MD5 algorithm was produced by RSA Data Security Inc. Example:
^$GetMD5File(^$GetAppFileName$)$

* Added ^$StrUUEncode("Text")$ and ^$StrUUDecode("Text")$ functions, to encode text to 7-bit UUEncode format and decode it back respectively. This encoding format is frequently used to send 8-bit data through transmission media (email, for example) supporting only 7-bit data. These new Clip functions are useful if you want to send encrypted text by email. Example:
^$StrUUEncode("^$StrEncrypt("^$GetText$";)$")$
^$StrDecrypt("^$StrUUDecode("^$GetText$";)$")$
Important note: UUencoded text may contain characters that the Clip parser interprets as tokens, like ^p and ^&. As a result, you should use the ^!SetCode command to assign such data to a variable and ^!InsertCode to paste the result of ^$StrUUEncode("Text")$ into a document. See the example in the Utilities library.

* Added UUEncode and UUDecode Clip commands:
^!UUEncode "InputName"[ "OutputName"]
InputName is the file to encode. Use the optional OutputName to define the name of the UUEncoded data file. If you don't specify an output name, the name will be based on InputName with the extension ".uue".

^!UUDecode "InputName"[ "OutputName"]
InputName is the file to decode. Use the optional OutputName to define the name of the UUEncoded data file. If you don't specify an output name, the name stored in the encoded file will be used.

* Added encryption/decryption command for files:
^!FileScramble "InputName"[ "OutputName"[ "Key"]]
This command can automatically detect if the file needs encrypting or decrypting. InputName is the file to encrypt or decrypt. Use the optional OutputName to define the name of the file created by the operation. If the file is going to be encrypted and you don't specify an output name, the name will be based on InputName with the extension ".npw". If the file is going to be decrypted and you don't specify an output name, the original file name will be used. Use the optional "Key" parameter to define an encryption password (max. 255 characters). Make sure you don't forget your password, or you will not be able to restore your encrypted data.
The encryption algorithm is based on RC4 ("RC4" is a trademark of RSA security corporation). You should not rely on this feature to protect very sensitive data. 

* Added ^$ChangeFileExt("FileName";"Ext")$
Use this function to create a new file name based on the provided extension. Example:
^$ChangeFileExt("c:\config.sys";"bak")$ = c:\config.bak

* Added ^$StrRandom(Size)$ to create strings of random characters of the specified length. Example:
^$StrRandom(6)$ = È$q3ċî

* The ^$GetDocIndex(Name)$ now returns the index number of the specified document, as indicated in the Help file.

* Improved ^$HexToInt(Value)$ and ^$IntToHex(Value)$ to handle larger values.

* Fixed ^!MoveFile command "losing" files when the destination folder does not exist.

* Fixed last character of parameter being truncated by ^!Shell command.



Changes in Version 4.83
=======================
* The program executable file is no longer compressed. The advantage of this is that you will be able to run NoteTab on Macs using Virtual PC. You are also less likely to encounter problems with anti-virus programs.

* When you double click on a word, NoteTab Pro selects the word as well as any white spaces after it. If you don't want the white spaces to be selected, you can now hold down the Alt key when you double click.

* Text that does not fit in a listbox (e.g. Clipbook window) will now be displayed in a popup tip when the mouse cursor is over it

* Added "Help on Clip Programming" under Help menu. This command displays the table of contents on the topic of Clip programming.

* NoteTab Pro: all "Replace All" operations can now be undone in a single operation.

* Implemented a protection against stray keystroke messages generated by some faulty keyboards (notably from Compaq). Stray keystroke messages could cause the Close Document command to be activated.

* Hyperlinks with relative paths to filenames now work. Example: [workdata\client3\important.otl::meetings]

* The "Open File at Cursor" command now also works when a filename uses a relative path.

* Templates with Clip code now set the "modified" state of documents they create (if text is produced).

* Strip HTML Tags command now recognized the &apos; entity.

* The "Change HTML Tags commands now work correctly with Web pages using Server Side Include (SSI) commands.

* The "More..." button displayed in long Clipbar menus now works correctly. It opens a dialog box with a combobox control, which lists all available Clipbars.

* Fixed a glitch in the Modify|Block|Sum menu command.

* Fixed bug causing NoteTab to crash when doing a regexp Replace All operation with $ as the "Find What" criteria.

* Fixed an incompatibility problem between the File|Send command and Outlook Express 5.

* Fixed glitch that caused tabs to be replaced by spaces when using the "Strip HTML Tags" command on tables.

* Fixed RegEx option in Find and Replace dialog box when criteria contains NoteTab tokens (e.g. ^C)

* Fixed Quick List/Disk Files update problem when Save As command is used

* Fixed "Strip HTML Tags" glitch when text contains consecutive <br> tags

* Fixed a problem with the "Evaluate Expression" command which caused the following truncated results:
  10^39 = 1.0E+003
  10^40 = 1.0E+004
Now, the result is correctly formed as:
  10^39 = 1.0E+0039
  10^40 = 1.0E+0040

* Attempted to improve the behavior when launching NoteTab through the MS-Explorer Open command with multiple files selected.

* "Rename" command from Tab bar no longer accepts invalid file name characters

* Favorites "Open All" command now respect order of files in list

* Ctrl+C now makes sound if Office Sounds are enabled

* NoteTab Light/Std: Insert/Overwrite status information is less likely to become out-of-sync.

* NoteTab Light/Std: text now stays selected after a Replace All operation is applied on a selection.

* NoteTab Light/Std: regex tagged matches with Replace criteria should now work as in NoteTab Pro.


Clip Language:
.............
* Added Clip function ^$StrToHtml("Str"[;ConvertLineBreaks[;ConvertEntities]])$, to convert plain text to HTML format. "Str" represents the text you want to convert. Use False for ConvertEntities if you don't want special characters (e.g. İ) to be converted to HTML entities (e.g. &copy;); the default value when omitted is True. Use False for ConvertLineBreaks if you don't want <p> and <br> tags to be inserted at line breaks in the text; the default value when omitted is True.

* Changed the behavior of the ^$GetFiles([+]FilePath;FileSpecs[;Attr][;SortingOrder])$ and ^$GetFileFirst([+]FilePath;FileSpecs[;Attr][;SortingOrder])$ Clip functions. When the Attr field is used, only files that use the specified attributes are selected. To select files that have no attribute settings, use "-" as a value for Attr. You can also span through subdirectories by adding a + sign in front of the FilePath criteria. The following example will select all files under Windows and its subdirectories, that have the System attribute set:
^$GetFiles("+C:\Windows";*.*;S;Name)$

* The registry-related Clip functions and commands (GetRegValue, SaveRegValue, ClearRegValue) look for a colon (:) as the delimiter between the key and name parts. Unfortunately, there are situations where a colon character needs to be used in the name part, and this causes malformed key and name values. In this situation, you can now use a double colon (::) to indicate where the name value starts.

* Fixed a bug in the ^$GetValue(...)$ function, which removed quotes surrounding values.

* Fixed problems in the ^!Find and ^!Replace Clip commands when used with the Regular Expression option.

* Fixed quote problem with ^!Open command: ^!Open "^?{(T=O;S=M)Browse to file(s) to open}"

* Fixed a problem with the GetRelativeName Clip function when only the FileName parameter is specified and quotes are used around it.

* NoteTab Light/Std: fixed ^!SelectTo, which can now be used to select text backwards.



Changes in Version 4.82
=======================
* New engine for regular expressions. More powerful and adds support for RegExp criteria in replace field. See Help file for details.

* Added "Close to System Tray" option on General tab. This lets you configure whether closing NoteTab minimizes the program to the System Tray or not when its icon is displayed there.

* Added "Hidden Files" option in Search Disk dialog box. When set, the command will also search through hidden files.

* The header used in template files can now specify Clip directory functions to represent special path names (e.g. ^$GetScriptPath$, ^$GetTmpPath$). Example taken from FTP.tpl:
= DocTemplate ClipCode "^$GetScriptPath$FTP%0.3d.scr"

* New FTP.clb library. Requires the Windows FTP.exe program.

* New FTP.tpl template file for creating FTP.exe scripts.

* Console applications run by NoteTab can be interrupted with the Ctrl+Alt key combination while NoteTab is receiving/waiting for data.

* Replace All operations applied to selected text now leave the updated text selected.

* Fixed errors in several library files and documentation.

* Fixed MAPI address formatting bug that was accidentally reintroduced in final release of 4.81.

* Fixed incorrect error message claiming a directory does not exist when saving a file with a UNC name (e.g. \\RemoteDisk\Text\).

* Fixed minor bug in Match Brackets command.

* Fixed minor problem with Print dialog box not recognizing Print Range setting under certain situations.

* Other minor fixes.


Clip Language:
.............
* New Clip functions:

^!Shell
Launches the specified file, program, or URL through the Windows shell. Proposed as a replacement for the default ^! launch method. Example: instead of using "^!WordPad c:\autoexec.bat", use "^!Shell WordPad c:\autoexec.bat"

^!ShellWait
Similar to the ^!Shell command, but waits until the launched program is terminated before moving to the next Clip instruction. Unlike the ^!Wait command, you can continue editing files in NoteTab while the application is running. Example:
^!ShellWait WordPad c:\autoexec.bat

^$StrDeleteLeft("Str";Amount)$
Similar to ^$StrDelete()$ but deletes the text from the start of the specified string.

^$StrDeleteRight("Str";Amount)$
Similar to ^$StrDelete()$ but deletes the text from the end of the specified string.

^$StrCopyLeft("Str";Amount)$
Similar to ^$StrCopy()$ but copies the substring from the start of the specified string.

^$IsWildcard("FileName")$
Returns 1 if FileName contains one or more wildcard characters (* and ?), and 0 if it does not.

^$GetSysProgPath$
Returns the path containing system programs like MS-Notepad and FTP.exe.

^$StrStripHTML("Str";PreserveURLs)$
Returns a copy of Str with all HTML tags removed. PreserveURLs is either True or False, and determines if URLs are preserved or not.

^!TextToUnicodeFile "FileName" AnyText
Saves the specified text to FileName in the Unicode format using the current Windows code page.

^!AppendTextToUnicodeFile "FileName" AnyText
Appends the specified text to the end of a disk file in Unicode format using the current Windows code page. A new file is created if FileName does not exist.

^$GetUnicodeFileText("FileName")$
Reads Unicode text from FileName and returns it as normal text based on the current Windows code page.

* Clips with multiple "^&" are better handled.

* Fixed incorrect behavior when pasting Clip text beginning with a line break when the "Indent on Paste" option is set. Now indents a whole selection when place holder is also indented. Example:
^!InsertHtml <p>^P  ^&^P</p>
Applied on the following three lines:
Line1
Line2
Line3
will now indent all the lines in the selection, instead of just the first one.
<p>
  Line1
  Line2
  Line3
</p>

* Clip shell commands did not respect the ^!ChDir setting. Fixed.

* ^$GetWord$, ^$GetBlock$, and ^$GetQuoteBlock$ now return the whole item even when it is wrapped.

* Fixed a bug that caused the ^%AR_KEY% to always return an empty value.

* Fixed problem with ^!SetScreenUpdate not working within sub-Clips (those run with the ^!Clip command).

* Fixed ^$GetColScreen$ when text is selected.

* Fixed ^!MoveFile which caused target directory file to end up in recycle bin if original did not exist.

* Fixed ^!SetFocus Frame1



Changes in Version 4.81
=======================
* New favorites feature: Precede the path name with a + character to also open all matching files contained in subdirectories. Example: 
+C:\Program Files\Web\*.htm*

* Dialogs are now centered with respect to the NoteTab window rather than the screen.

* You can now open the Glossary.otl file from the Help menu.

* Updated some of the libraries and the HTML template.

* The single HTML Clipbar is now replaced by two new ones: HTML-1 and HTML-2 (the last button makes it easy to switch between the two).

* Custom colors are now remembered between NoteTab sessions.

* Sometimes NoteTab did not correctly detect when a file was updated by another application. Fixed.

* When NoteTab receives the focus from another application, it now also checks if the current library in the Clipbook needs updating.

* Join Lines (Ctrl+J) works again when only a single paragraph is selected. It ignores the last blank line, if included in selection.

* Closing the Clip editor now prompts to save changes, as when closing other documents.

* Opening e-mail addresses now uses MAPI rather than going through the default browser (if MAPI is enabled).

* Ctrl+Left/Right arrows will now also place the cursor between tags: >|<.

* The /P command-line parameter now works again.

* Fixed several minor errors in the implementation of the XHTML features.

* Fixed problem with Intellimouse wheel in NoteTab Pro causing lines to scroll only one line at a time under certain conditions.

* NoteTab no longer locks up when a save operation fails and the error dialog is not closed before moving the focus to another application.

* Other minor changes and fixes.


Clip Language:
--------------
^!SetHtmlFormat [UPPERCASE|LOWERCASE|XHTML]
Sets the default format of HTML tags created by the ^!InsertHtml and ^!InsertWizardHtml, as well as other related HTML commands.

^$GetHtmlFormat$
Returns the default format used for creating HTML tags. Possible values are: Uppercase, Lowercase, XHTML.

^$GetClipVersion$
Since version 4.801, this function returns the actual NoteTab release version as an integer. For example, in version 4.801, ^$GetClipVersion$ returns 4801.

* Fixed Clip command ^!AppendToFile so that it accepts text ending with blank lines.

* Custom Clip function names can now be shorter than 5 characters.



Changes in Version 4.8
======================
* Added Clipbars to NoteTab Pro and Std: a special type of toolbar with buttons that run Clips. Users can "attach" their own scripts to this toolbar, as well as use their own icons for the buttons. Several Clipbars are provided with NoteTab, including a couple of handy ones for HTML editing. Clipbars can be opened through the View|Clipbar submenu. See Help for more information.

* NoteTab Light now supports the full Clip language. It can now run the same libraries as NoteTab Pro and NoteTab Std.

* NoteTab supports HTML Tidy -- a free utility that cleans HTML code and fixes errors. Once it is installed, you can invoke it through the "Tools|Tidy HTML Code" menu command. HTML Tidy accepts a variety of switches to control the way it processes HTML tags. NoteTab will try to determine the best switches based on the active document type and the HTML Tag option settings. If you want more control over the settings, you can create a configuration file for Tidy, which you should save in the NoteTab folder with the name Tidy.cfg (see the program's instructions for details). You can learn more about HTML Tidy and download the latest version by visiting the following Web page:
http://www.w3.org/People/Raggett/tidy/
The easiest setup is to copy the Tidy.exe program file to the NoteTab folder, but you may place it anywhere else if you prefer.

* NoteTab supports CSE HTML Validator Pro (v2.00A and higher) -- a program for checking HTML syntax errors. If the program is correctly installed, you will see a new command under the Tools menu called "Validate HTML". When you click on this command, it will send the current document text to CSE HTML Validator. Once the checking is completed, NoteTab will create a Clipbook library containing all the messages produced by the CSE program. Executing the Clips in the library will select the offending line and display the corresponding error message. Note that you should avoid removing or adding lines while correcting errors so that the line numbers referenced by the Clips remain valid. You can learn more about CSE HTML Validator and download the latest version by visiting the following Web page:
http://www.htmlvalidator.com/

* The "Modify|Document to HTML" menu commands now use the <p></p> pair of tags instead of the single <p> used to mark paragraph breaks. This conforms to the latest standards for HTML coding.

* Added menu commands to convert HTML tags to Uppercase/Lowercase/XHTML. See submenu "Modify|Change HTML Tags".

* Added settings in Options dialog box to control the format of HTML tags generated by NoteTab. See Options tab labeled "HTML Files". The setting "Create XHTML Tags" produces tags based on the W3C recommendations for XHTML. The setting "Create Uppercase Tags" produces tags with element and attribute names in upper case.

* Added new options to enable previewing of Web pages, such as ASP and Cold Fusion, through a local Web server (e.g. MS Personal Web Server). See Options tab labeled "HTML Files". The relevant fields are "Server Name" (e.g. localhost) and "Physical Path" (e.g. c:\inetpub\wwwroot\html). When these fields are set, any file under the Physical Path will be displayed through the local Web server. Based on the example values, the following file name:
  c:\inetpub\wwwroot\html\index.asp
is converted to:
  http://localhost/index.asp
when sent for previewing to the browser.

* Can now preserve case of file names by holding down the Ctrl key when inserted in HTML documents (e.g. drag-and-drop from file list).

* Added menu command "File|Template|New" to create new templates.

* Template headers now accept the ^$GetDate()$ function in order to use the current date in the file name. Example:
= DocTemplate ClipCode "Notes-^$GetDate(yyyymmdd)$-%0.3d.txt"

* Added "Document|Disk File Properties" menu command. Shows the Windows "File Properties" dialog box for the current document.

* The "Help|Replace MS Notepad" menu command is no longer displayed under Windows 2000 (and higher). Windows 2000 does not allow substituting MS Notepad with another program.

* Clicking on the More button in the text statistics dialog box now also provides a count of punctuation characters.

* Improved support for WordStar commands.

* Library files with the hidden attribute set are no longer displayed in the Library Bar.

* New shortcut command for System Tray icon to enable/disable the Paste Board (a document set to collect all text sent to the Clipboard). Useful when NoteTab is minimized in System Tray.

* Two new command-line parameters:
+ 1) NoteTab /L=LibraryName:RunClip
Opens the library and automatically runs the specified Clip. Example:
NoteTab /L=Utilities:Calculator
+ 2) NoteTab /INST=InstanceID
Opens a new instance of NoteTab (even if multiple instances is disabled) or activates the instance matching the InstanceID text. Use quotes around InstanceId if it contains spaces. Multiple instances are disabled in instances opened through this method, and documents are not automatically reopened. Example:
NoteTab /INST="HTML Editing"

* Improved the command-line parser. Now accepts multiple file names without quotes (as long as the names don't contain spaces).

* Changed the method used to associated file types with NoteTab.

* Changed method used for handling .ini files. Should be much faster on Windows NT.

* Holding Ctrl key down while launching NoteTab resets the .ini file.

* Improved handling of single and multiple instances of NoteTab.

* NoteTab Pro can now open files larger than 16 MB.

* NoteTab can now also determine the size attributes for .png images.

* Changed behavior of Ctrl+Left/Right arrows in NoteTab Pro to match the behavior of NoteTab Std/Light.

* Loading of a large number of documents can be aborted by holding down the Alt+Ctrl keys.

* NoteTab now uses the standard "Browse for Folder" dialog box.


Clipbar:
--------
* Added support for user-made toolbars, called Clipbars. You can open available Clipbars and create new ones through the "View|Clipbar" submenu commands. Quick instructions to add buttons to a Clipbar:
+ Open a new Clipbar or an existing one.
+ Open the Clipbook window (F4) and select the library that contains the Clips you want to use from the Clipbar.
+ The setting "Single Click to Paste" on the Clipbook tab in the Options box must be unchecked.
+ Click on the desired Clip label in the Clipbook window and drag it to the Clipbar. The button is added once you release the mouse button. You can reorder Clipbar buttons by holding the Shift key down and dragging them to the new position.
+ To change the button icon, click on it with the right mouse button to open the context menu and choose the "Button Properties" command. Choose a new icon from the list in the dialog box. You can either use the internal NoteTab icons, or your own custom icons. Your icons should be placed in the NoteTab Libraries folder. Accepted image formats are bitmaps (.bmp) and icons (.ico). Recommended maximum image size is 18x18 pixels. Larger images are shrunk to fit in the allocated space and may look distorted. The icon transparency color is determined by the pixel color at the bottom-left corner of the image.
+ A Clipbar can contain Clips from any library as long as they remain available in the Libraries directory. Note that the Clipbar reads the Clips from disk only. If you have edited a Clip in NoteTab and want to test it from the Clipbar, you will first have to save your library to disk.
+ To save the changes made to the Clipbar, click on it with the right mouse button to open the context menu and choose the "Save Clipbar" command. When the Clipbar is saved, the settings are stored in the Libraries directory in a text file with the .ctb extension. You can edit it manually by choosing the "Edit Clipbar" command from the context menu.

IMPORTANT: Currently, the Clipbar cannot handle Clips that use the ^$GetClipText(ClipName)$ function and user-made functions.

* The Clipbar supports the OnOpen and OnClose events. Just drag an OnOpen or OnClose Clip to it. The OnOpen event is triggered when a Clipbar is first opened, and when switching to another library. The OnClose event is triggered when switching to another library or starting a new one, and when closing NoteTab. The triggering of these events can be canceled by holding down the Shift key.

* Added command-line parameter to open a specific Clipbar when launching NoteTab:
   NoteTab /C=ClipbarName


Clip Language:
--------------
* Simple text Clips use the "^&" code to determine where selected text should be placed when pasting the Clip contents. If no text is selected, then it marks the position where the cursor should be placed. In NoteTab 4.6 and older, this method did not work in executable Clips. This issue has been addressed in version 4.8. See the HTML library for an example of this new functionality.

* You can now apply Clips on text that contains Clip code, without causing it to be interpreted by the Clip parser. Unfortunately, there is a small price to pay for this improvement. The following old function formats for dates: ^[mm/dd/yyyy^] and mathematical evaluation: ^$[Expression] will not work if their arguments are built from the values of variables and functions. Instead of those old function formats, you should use the more recent ^$GetDate(mm/dd/yyyy)$ and ^$Calc(Expression[;Decimals])$ functions.

* Conditional commands now accept a command statement instead of a label. The second command statement may not be another conditional command, and it may not be followed by an ELSE-type label. Examples:
^!If ^%Variable% < 0 ^!Set %Variable%=0
^!IfFileExist "^%Variable%" GoToLabelTrue ELSE ^!Prompt File does not exist

* You can now create your own Clip functions, using an approach that is similar to the ^!Clip command. Custom Clip functions must not have the same name as a pre-defined function. The function name corresponds to the name of the Clip that contains the code. You can create functions that take one parameter or none. You can access the parameter data in your function script by using the ^& code. Your function script must assign the result to the new ^!Result command, or by using the new pre-defined variable %RESULT%. Example:
H="Double"
^!IfTrue ^$IsNumber("^&")$ Multiply
^!Result ^&^&
^!Goto End
:Multiply
^!Result ^$Calc(^& * 2)$

H="TestDouble"
^!Prompt ^$Double(^?[Enter a number or some text])$


HTML Editing
¨¨¨¨¨¨¨¨¨¨¨¨
^!InsertHtml Any text with tokens (^p/^t)
Similar to ^!InsertText command, but converts HTML tags to Uppercase, Lowercase, or XHTML format (depending on settings in Options).  This command is sensitive to the "Indent on Paste" setting in the Options dialog box on the Clipbook tab. You can precede it with the command "^!SetPasteIndent Off" to make it ignore the indent setting.

^!InsertWizardHtml Any text with tokens (^p/^t)
Similar to ^!InsertHtml command, but removes attributes that have no value. This command is useful when used together with the Clip wizard. It allows the user to leave certain fields blank in the Wizard, and the corresponding tags are then automatically removed before being inserted in the document. Example:
  ^!InsertWizardHtml <TD ALIGN="" WIDTH="">
will insert the following tag in your document: <TD>

^!RunTidy [i|d]
^!RunTidy [Switches]
HTML Tidy is a free utility that cleans HTML code and fixes errors. This new Clip command will send your document text to the HTML Tidy program. The corrected output returned by HTML Tidy is then inserted into the document. The StdError stream is saved in a file called "StdError.err" in NoteTab's application directory, unless another file is specified with the SetStdError Name command. You can use the optional parameter "Switches" to specify Tidy command-line arguments; example:
   ^!RunTidy -f errs.txt -qiu
If no argument is specified and you have a Tidy.cfg file in the NoteTab folder, then HTML Tidy will be configured according to the settings in that configuration file. If NoteTab does not find the configuration file, it will determine the appropriate switches based on the settings in NoteTab. If you have a Tidy.cfg file, but you want NoteTab to ignore it and use default settings, then use the "d" argument (without the quotes). If you want NoteTab to determine the best settings, but would like to have your tags indented, just use the "i" argument; example:
^!RunTidy i
You can learn more about HTML Tidy and download the latest version by visiting the following Web page:
http://www.w3.org/People/Raggett/tidy/
The easiest setup is to install the Tidy.exe program file in the NoteTab folder, but you may place it anywhere else if you prefer.

^$GetTidyExe$
Returns full path and name of HTML Tidy application.

^$GetHtmlTagName("TagStr"[;Format])$
Returns the name of the HTML Tag, either in uppercase or lowercase. If the Format parameter is not specified, the character case is determined by the settings in NoteTab's Options. Use the Format parameter to control the format of HTML tags. It can have one of the following values: UPPERCASE, LOWERCASE, or XHTML. Example:
^$GetHtmlTagName("<TD ALIGN="left" WIDTH="250">";LOWERCASE)$ -> td

^$GetHtmlTagAttr("TagStr";Attr[;Format])$
Returns the value of the specified HTML attribute. If the Format parameter is not specified, the result is determined by the settings in NoteTab's Options. Use the Format parameter to control the case of minimized attributes (it has no effect on the value returned for normal attributes). It can have one of the following values: UPPERCASE, LOWERCASE, or XHTML. Example:
^$GetHtmlTagAttr("<DL COMPACT>;Compact;XHTML)$ -> compact
^$GetHtmlTagAttr("<DL COMPACT>;Compact;UPPERCASE)$ -> COMPACT
^$GetHtmlTagAttr("<TD ALIGN="left" WIDTH="250">";Width)$ -> 250

^$GetHtmlTagTidy("TagStr"[;Format])$
Returns a properly formatted HTML tag converted to uppercase, lowercase, or XHTML format. If the Format parameter is not specified, the result is determined by the settings in NoteTab's Options. Use the Format parameter to control the format of HTML tags. It can have one of the following values: UPPERCASE, LOWERCASE, or XHTML. Example:
^$GetHtmlTagTidy("<HR SIZE=2 NOSHADE>";XHTML)$ -> <hr size="2" noshade="noshade" />

^$GetHtmlTextTidy("Str"[;Format])$
Returns the string with HTML tags converted to Uppercase, Lowercase, or XHTML format. If the Format parameter is not specified, the result is determined by the settings in NoteTab's Options. Use the Format parameter to control the format of HTML tags. It can have one of the following values: UPPERCASE, LOWERCASE, or XHTML.


TopStyle
¨¨¨¨¨¨¨¨
NoteTab now supports Bradsoft's TopStyle CSS editor, version 1.51 and above -- a program for editing Cascading Style Sheets. You can learn more about this useful program and download the latest version by visiting the following Web page:
http://www.bradsoft.com/redir.asp?id=130
Note that the TopStyle commands described below are used in the TopStyle library packaged with NoteTab. There is also a convenient TopStyle Clipbar to access the Clip commands.

^$IsTopStyleEnabled$
Returns 1 if the TopStyle editor is available through NoteTab, and 0 if it is not.

^$EditStyleBlock("Str")$
Opens TopStyle in <style>..</style> block editing mode. Returns the updated style block. Note that the "Str" argument should not include the surrounding <style>..</style> tags.

^$EditStyleAttr("Str")$
Opens TopStyle in inline (STYLE attribute) editing mode. Returns the updated style. Note that the contents of the style attribute should only include the value assigned to the style attribute. For example, if you wish to edit the style attribute in the tag <span style="color:blue">, then you should only pass color:blue to this function.

^!EditStyleSheet [FileName]
Opens the specified style sheet file in TopStyle. If no file name is specified, this command will launch TopStyle without opening a specific style sheet. Note that unlike the EditStyleBlock and EditStyleAttr functions, which block the calling application until the user closes TopStyle, EditStyleSheet simply executes TopStyle and returns immediately.


Application
¨¨¨¨¨¨¨¨¨¨¨
^$GetAppFileName$
Returns the file and path name of the NoteTab program file. Example, with default folder for NoteTab Pro:
^$GetAppFileName$  -> C:\Program Files\NoteTab Pro\NotePro.exe

^!DirectPrint "Title" Data
Prints text directly to the printer, bypassing NoteTab's print procedure. Uses default printer settings. Title is the text shown in the Print manager and Data is the text to send directly to the printer. Data can contain printer control codes.

^!SetFocus [Clipbook|ClipEdit|Document|Frame1|Frame2|List_Clip|List_Disk|List_Docs|List_Favs|Outline|PasteBoard]
Moves the focus to the specified screen object. This command will fail if the NoteTab window is minimized. Example to move the focus to the Outline-headings window:
^!SetFocus Outline


Keyboard
¨¨¨¨¨¨¨¨
^$IsCtrlKeyDown$
Returns 1 if the Control key is pressed while the function is executed and 0 if it is not.

^$IsShiftKeyDown$
Returns 1 if the Shift key is pressed while the function is executed and 0 if it is not.

^$IsAltKeyDown$
Returns 1 if the Alt key is pressed while the function is executed and 0 if it is not.


Selection and Cursor Position
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
^!Select [EMAIL|HTMLTAG]
The Select command has two new switches. EMAIL extends the selection of an e-mail address under the cursor, and HTMLTAG selects a complete HTML tag.

^$GetWord[(SelectText)]$ and ^$GetBlock[(SelectText)]$
Added the optional Boolean argument "SelectText" to make NoteTab select the corresponding block of text.

^$GetHtmlTag[(SelectText)]$
Returns the HTML tag at cursor position. Use the optional Boolean argument "SelectText" to make NoteTab select the corresponding block of text.

^$GetQuoteBlock[(SelectText)]$
Returns the block of text between double quotes (") at the cursor position. Use the optional Boolean argument "SelectText" to make NoteTab select the corresponding block of text. This function is especially useful for retrieving attribute values within HTML tags.

^$GetColStart$
Returns the cursor column index in the current document. If some text is selected, then the beginning of the selection determines the column position.

^$GetRowStart$
Returns the cursor line index in the current document. If some text is selected, then the beginning of the selection determines the line index.

^$GetColEnd$
Returns the cursor column index in the current document. If some text is selected, then the end of the selection determines the column position.

^$GetRowEnd$
Returns the cursor line index the in current document. If some text is selected, then the end of the selection determines the line index.

^$GetColLeft$
Returns the leftmost column index visible in current document window.

^$GetRowTop$
Returns the index of the top line visible in current document window.

^!SetView RowTop:ColLeft
Moves the top line and leftmost column to the specified coordinates in current document window.


Clip Code
¨¨¨¨¨¨¨¨¨
^!SetDebug [On|Off]
When enabled, a dialog box pops up just before each statement and paste operation is executed. The dialog box shows the parsed instruction or the text about to be pasted in the document. There are three buttons; "Yes" is for continuing execution until the next instruction, "No" disables Debug mode, and "Cancel" ends Clip execution.

^!SetPasteIndent [On|Off]
Enables or disables automatic indenting when a Clip inserts text into a document. The scope of this command is limited to the Clip (and eventual sub-Clips) where it was invoked. When a Clip ends, the original user setting is automatically re-enabled.

^$IsPasteIndent$
Returns 1 if Clips insert text with automatic indenting and 0 if not.

^!DestroyLibrary [LibraryName]
Deletes the specified Clipbook library (path name and extension are not needed). If the optional LibraryName argument is not used, then the library currently running the Clip is closed and destroyed.

^!InsertText Any text with tokens (^p/^t)
Since version 4.8, this command is sensitive to the "Indent on Paste" setting in the Options dialog box on the Clipbook tab. You can precede it with the command "^!SetPasteIndent Off" to make it ignore the indent setting.



Clipbar
¨¨¨¨¨¨¨
^!OpenClipbar Name
Opens the specified Clipbar file.

^!CloseClipbar
Closes the current Clipbar.

^!ReloadClipbar
Reloads the current Clipbar.

^$GetClipbarName$
Returns the name of the current Clipbar file.


Files
¨¨¨¨¨
^$GetFileFirst(FilePath;FileSpecs[;Attr][;SortingOrder])$
Added optional Attr parameter. Attr can represent multiple values: A = Archive, H = Hidden, R = Read-only, S = System, * = All attributes. If the Attr parameter is not used, then file attributes are ignored.

^$GetFiles(FilePath;FileSpecs[;Attr][;SortingOrder])$
The parameters are identical to the ^$GetFileFirst$ function. Returns all matching files as a single string using the default separator (;), or the one defined by ^!SetListDelimiter. Note that ^$GetFileNext$ and ^!CloseFileFind do not work with this function. This new function is useful to assign the result to an array variable. Example:
^!SetArray %Files%=^$GetFiles("c:\Program Files\NoteTab Pro\Documents";*.txt;AR;DATE)$

^!SetFileAttr "FileSpecs" Attr
Changes the file attributes. FileSpecs is the file name, which may have wild cards. Attr can represent multiple values: A = Archive, H = Hidden, R = Read-only, S = System, * = All attributes. Use a minus sign in front of the letter to remove an attribute. The following example sets the Archive attribute and removes the Read-only attribute, if set:
^!SetFileAttr "c:\Scandisk.log" A-R

^!IfFileAttr "FileName" Attr GoToLabelTrue [ELSE GoToLabelFalse]
Compares FileName attributes with Attr. If Attr is equal or a subset of FileName's attributes, then GoToLabelTrue is activated. Attr can represent multiple values: A = Archive, D = Directory, H = Hidden, R = Read-only, S = System, V = VolumeID, * = All attributes. Example:
^!IfFileAttr "c:\Scandisk.log" AH LabelTrue ELSE LabelFalse
If Scandisk.log has at least the Archive and Hidden attributes set, then the instruction jumps to LabelTrue.

^$GetFileAttr(FileName)$
Returns the file attributes as a string of characters. A file can have zero, one, or several attributes. The string may contain the following characters: A = Archive, D = Directory, H = Hidden, R = Read-only, S = System, V = VolumeID, * = All attributes. Example:
^$GetFileAttr(c:\Scandisk.log)$ -> AH

^$GetRelativeName(FileName;BaseDir)$
Returns the relative name of FileName against BaseDir. If BaseDir is not defined, the active document path is used as the reference directory. Example:
^$GetRelativeName(c:\temp\test\MyFile.txt;c:\temp\)$ -> test\MyFile.txt

^$GetExpandedName(FileName;BaseDir)$
Returns the fully qualified name of FileName against BaseDir. If BaseDir is not defined, the active document path is used as the reference directory. Example:
^$GetExpandedName(..\MyFile.txt;c:\temp\test\)$ -> c:\temp\MyFile.txt

^$FileToUrl("FileName")$
Converts a Windows file name to a URL file name. Example:
^$FileToUrl("c:\program files\index.htm")$ -> file:///c|/program%20files/index.htm

^$UrlToFile("URL")$
Converts a URL file name to a Windows file name. Example:
^$UrlToFile("file:///c|/program%20files/index.htm")$ -> c:\program files\index.htm

* The following procedures will now also work with files in the form of URLs
  ^$GetName(FileName)$
  ^$GetFileName(FileName)$
  ^$GetPath(FileName)$


Text Processing
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
^!IfMatch "RegExp" "Value2" GoToLabelTrue [ELSE GoToLabelFalse]
Similar to ^!IfSame, but accepts a regular expression for the first value.

^$StrAnsiToAscii("Str")$
Returns Str with all extended ANSI characters converted to ASCII.

^$StrAsciiToAnsi("Str")$
Returns Str with all extended ASCII characters converted to ANSI.

^$IsLowercase("Str")$
Returns 1 if Str does not contain any uppercase characters, and 0 if it does.

^$IsUppercase("Str")$
Returns 1 if Str does not contain any lowercase characters, and 0 if it does.

^$IsCapitalized("Str")$
Returns 1 if Str does not start with a lowercase character and is not followed by any uppercase characters, and 0 if this condition is not met.

^$IsMixedCase("Str")$
Returns 1 if Str contains both lowercase and uppercase characters, and 0 if it does not.

^$IsAlpha("Str")$
Returns 1 if Str contains only characters from the alphabet, and 0 if it does not.

^$IsAlphaNumeric("Str")$
Returns 1 if Str contains only numbers and characters from the alphabet, and 0 if it does not.

^$IsBlank("Str")$
Returns 1 if Str contains only blank characters (tabs, spacebar, line breaks, etc.), and 0 if it does not.

^$StrCapitalize("Str")$
Capitalizes all words in Str and returns the resulting string.

^$StrInvertCase("Str")$
Converts all uppercase characters to lowercase, and lowercase characters to uppercase, and returns the resulting string.

^$StrSentenceCase("Str")$
Capitalizes all words following a period, exclamation, and question mark and converts all other words to lowercase.

^$CharToDec(Character)$
Returns the decimal value of Character. Example:
^$CharToDec(S)$ -> 83

^$DecToChar(Decimal)$
Returns the character corresponding to the decimal value. Example:
^$DecToChar(83)$ -> S
Note that you should avoid converting the following decimal values 1, 4, 5, and 6 to characters as they have a special meaning for the Clip interpreter.

^$IntToHex(Char)$
Now also returns the ANSI hex code of single character if Char does not represent a number.


Windows
¨¨¨¨¨¨¨
^$GetSpecialPath(TypeFolder)$
Returns the path name of the specified Windows folder. TypeFolder can have one of the following values:
   AppFolder
   Desktop
   DesktopDir
   StartMenu
   Programs
   Startup
   SendTo
   Favorites
   Recent
   CommonDesktopDir
   CommonStartMenu
   CommonPrograms
   CommonStartup
   CommonFavorites

^!MakeShortcut ShortcutLocation "Target" ["Arguments"] ["Description"] [CmdShow]
Creates Windows shortcuts. Syntax:

- ShortcutLocation is the place where the shortcut is created. It accepts the same values as the TypeFolder argument used in the ^$GetSpecialPath(TypeFolder)$ function.
- "Target" is the program to execute, or the document to launch.
- "Arguments" are eventual command-line switches you might want to use with the target program.
- "Description" is an optional parameter you can use to identify the shortcut. If it is left blank, the shortcut name will be the same as the target program name.
- CmdShow defines how the program is opened. It can have one of the following values:
   Normal (default if no value specified)
   Maximized
   Minimized

Example:
  ^!MakeShortcut SendTo "^$GetAppFileName$" "" "Open in NoteTab" MAXIMIZED


Registry:
¨¨¨¨¨¨¨¨¨
^!SaveRegValue [BaseRoot\]Key[:Name]=Value
Saves the specified value under the key entry in the Windows Registry. If BaseRoot is not defined, then HKEY_CURRENT_USER is used. If no value is specified for Name, the "(Default)" name is used. The maximum amount of text that can be saved this way is 1024 characters. Use with care! Example:
^!SaveRegValue HKEY_CURRENT_USER\Software\Beta:UserName=Raymond
^!SaveRegValue Control Panel\International:sDate=/
^!SaveRegValue HKEY_CLASSES_ROOT\.386=vxdfile

^$GetRegValue("[BaseRoot\]Key[:Name]")$
Returns the value stored under the specified key in the Windows Registry. If BaseRoot is not defined, then HKEY_CURRENT_USER is used. If no value is specified for Name, the "(Default)" name is used. Returns an empty string if the key does not exist. Example based on ^!SaveRegValue example:
   ^$GetRegValue(HKEY_CURRENT_USER\Software\Beta:UserName)$  -> Raymond
   ^$GetRegValue(Control Panel\International:sDate)$  -> /
   ^$GetRegValue(HKEY_CLASSES_ROOT\.386)$  -> vxdfile

^!ClearRegValue [BaseRoot\]Key[:Name]
Deletes the specified name or key in the Windows Registry. If BaseRoot is not defined, then HKEY_CURRENT_USER is used. If a Name is specified, then only that name will be deleted from the Registry. If no Name is specified (no colon), then the key and all Names under it will be deleted. Use with care!

BaseRoot can be any of the following values:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS


Bug fixes:
----------
* Made changes to the code underlying the Clip commands ^!RunPerl, ^!RunGawk, ^!RunScript, as well as the functions ^$GetOutput("Command")$, ^$GetInputOutput("Command")$, ^$GetDosOutput("Command")$. These should run better under all versions of Win32, and especially Windows NT.
* Selecting text containing the characters "^&" (without quotes) in a document and running a Clip using the "^&" code no longer causes NoteTab to freeze.
* Fixed several problems in the spell-checker.
* Fixed access violation error when second document window was closed.
* Fixed RegExp bug when used with Count Occurrences and Replace All.
* Fixed NoteTab Pro bug that caused file truncation when a paragraph exceeded a length of 65,500 characters.
* Fixed a glitch in NoteTab Pro when printing text with tabs.
* Blank lines at end of text are now ignored when printing.
* Hyperlinks using the format [test.html#anchor] are now correctly converted from OTL to HTML.
* The Clip command ^!Find no longer attempts to translate NoteTab tokens (^P, ^T, etc.) when a regular expression is specified.
* Can now run NoteTab from copy-protected disks.



The NoteTab Mailing List
========================
The mailing list is a great place to meet other NoteTab users -- friendly people from all walks of life, and ranging from complete beginners to experts. If you are a "newbie", ask some of the "old timers" some basic questions to help get you started. Also use this list to exchange ideas, share neat tips and tricks, ask questions, suggest new features, etc. Whether you are a registered NoteTab user or not, you are welcome to join. And best of all, it is free. You will find more information about this list on the following web page:

   http://www.notetab.com/maillist.htm (main site)
or
   http://www.notetab.ch/maillist.htm (Swiss site)



Hope you enjoy the new features!
--Eric G.V. Fookes

________________________________________________________
NoteTab is a trademark of Fookes Software, Switzerland 
  Copyright İ 1995-2003, Fookes Software, Switzerland
              - All Rights Reserved -

Windows is a trademark of Microsoft Corporation registered in the U.S. and other countries.  
All other trademarks and service marks are the property of their respective owners.
