The script file with the function IsUnicode was updated on 2009-02-10.
I have changed slightly all variable names by adding a prefix letter for the type of the variable. Advantages of using a type prefix letter:
- The type of a variable is always visible which is a great help.
- No problem anymore with variable names similar common words used in comments or strings, especially for searching/replacing such variables. For example sDirectory as variable name is much better than just Directory because word Directory can also exist in comments and strings.
- It is easy to search for all string, number or boolean variables if using a type prefix letter (always lowercase) and the variable name starts with an uppercase character. For example the case sensitive regular expression search string s[A-Z][A-Za-z]+ with option Match Whole Word Only finds all string variables in the script file.
- Using type prefix letters makes the selection of an existing variable of type string, number or boolean easier in the auto-complete dialog.
Additionally the global variable used is now named
g_nDebugMessage.
g_ as additional prefix defines that this variable is a global variable not defined inside the function. Variables with a non standard type don't have a prefix, but have a very special name like
WorkingFile.
The standard prefixes I use are:
an ... array of numbers (doesn't exist in IsUnicode.js)
as ... array of strings (doesn't exist in IsUnicode.js)
b ... boolean
n ... number
s ... string
Further I have added for security a check if the current file is opened/viewed in hex edit mode. The function is not designed for determining the file encoding in hex edit mode. It now returns in this case always
false and an appropriate warning is displayed if displaying debug messages are enabled.
Last I have added a code for demonstrating the usage of the function by simply running it on all open files and telling the user if the file is an ASCII/ANSI file or a Unicode file. The current cursor position in all files is saved before running IsUnicode and restored afterwards.