Publication of this update was unfortunately skipped due to very complex editing required and personal medical issues at that time. Doing now for compete documentation purposes. Sorry about the omission!
- + Implemented the first "On Event Action" (OEA), but for now only as a tweak (still meditating about the interface).
[Settings]
OEA_ListRightClickOnWhite=0
The event is "right-click on the list's white space", and you can currently choose between the following actions:
0 = Popup the Edit menu (as has been before all the time)
1 = Popup the Shell menu for the current folder
2 = Do nothing
Conc. option 0: Just to remind you, in Configuration Advanced, you currently have two checkboxes where you can specify which commands are shown in the Edit menu. - + Tree and List: Now, the shell context menu will show "extended verbs" when you hold SHIFT while right-clicking an item. What those "extended verbs" are depends on your system and software.
- * SC writefile(): Now, the filename may be relative to the current path. For example, this line will generate a standard report of the current folder in the current folder:
::writefile("report.txt", report()); - * SC WriteFile(): Changed the mode argument to better match
ReadFile() (see below).
Syntax: writefile(filename, data, [on_exist], [mode])
mode:
t: [default] text;
auto-detects whether text can be written as ASCII or needs
to be written as UNICODE
ta: text ASCII (1 byte per char);
wide chars (upper Unicode) are represented by "?"
tu: text UNICODE (2 bytes per char);
with LE BOM at file beginning
LE BOM = Little Endian Byte Order Mark: 0xFFFE
b: binary: raw bytes
each byte is internally stored as double-byte character
with a zero big byte
corresponds to mode "b" in ReadFile() - + Scripting got a new function.
Name: ReadFile
Action: Read data from file into string.
Syntax: readfile(filename, [mode])
filename: file full path/name, or relative to current path mode:
t: [default] text
whether file is ASCII or UNICODE is auto-detected
b: binary: raw bytes
each byte is internally stored as double-byte character
with a zero big byte
corresponds to mode "b" in WriteFile()
Examples:
::$a = readfile("test-in.txt");
writefile("test-out.txt", $a);
= Reads text from "test-in.txt" (ASCII or UNICODE) and writes
it back to "test-out.txt" (ASCII or UNICODE).
::$a = readfile("test-in.txt");
writefile("test-out-A.txt", $a, , "ta");
= Reads text from "test-in.txt" (ASCII or UNICODE) and writes
it back to "test-out-A.txt" in ASCII (1 byte per char).
::$a = readfile("test-in.txt");
writefile("test-out-U.txt", $a, , "tu");
= Reads text from "test-in.txt" (ASCII or UNICODE) and writes
it back to "test-out-U.txt" in UNICODE (2 bytes per char).
You can actually use ReadFile() and WriteFile() for file copying
on a low level (bypassing the Shell):
::writefile("test-out.txt", readfile("test-in.txt"));
= Copy "test-in.txt" to "test-out.txt" (text file).
::writefile("xy-out.png", readfile("xy.png", "b"), , "b");
= Copy "xy.png" to "xy-out.png" (any file, binary or text). - * SC report(): Changed handling of line feeds.
- Now, if the template is omitted, each line is terminated with
a line feed (0x0D0A). Before, the last line was excluded from
this.
- Now, if you use a template, *you* are responsible for adding any
line feed at the end of each line if you want to have one.
Before, this was done automatically for all non-last lines.
To add the standard Windows line feed (0x0D0A) you can use
the internal variable <crlf>, or alternatively the functions
chr(13) and/or chr(10). - ! It could happen (under quite rare circumstances) that Auto-Refresh was magically suspended. Fixed.
- + Rename Special | Batch Rename: Since long, the self-referential wildcard (*) is replaced by the original file base (file title excluding extension). Now, there's a 2nd self-referential wildcard (?) that stands for the original file extension.
Examples:
Old Pattern New
a.jpg ? jpg.jpg
a.jpg *.?.bak /e a.jpg.bak
a.jpg ?-<#001> jpg-001.jpg
a.jpg *.?.<date yymmdd> a.jpg.081023.jpg
a.jpg *.?.<date yymmdd> /e a.jpg.081023 - * Dialogs User | Manage Commands and Edit Copy/Move/Backup To... are now centered in screen. Before they were centered in the main window.