Friday, March 7, 2008

v6.80.0100 - 2008-03-07 11:34

  • + New variable: <curitem> = currently focused/selected list item, i.e. the one that's displayed in the statusbar. Up to now this variable was only recognized in the Source field of a UDC "New". But there's good use for it in other contexts as well, especially in scripting.
    For example:
      ::load <curitem>
    If a script file is currently selected, this script will load it.
  • * Scripting: To improve the interaction between script files I slightly redesigned the logic of resolving the name of a script file to load:
    - If the passed file argument does not contain any extension, the
      *.xys is assumed immediately (there is no test whether a
      file without any extension exists).
    - If a script file was called from another ("parent") script file,
      then the first path to look for the file is the path of
      the parent script file. If no file is found in that path, then
      the application data path will be searched.
    The latter is an important imporvement because it enables you to run script files that depend on other script files from any directory! For example, you have a lot of script files and organize them into various folders. In one folder called E:\XY\Scripts\Rename\ you have these four files:
      Rename.xys
      Rename - IE.xys
      Rename - Insert.xys
      Rename - Remove.xys
    Now Rename.xys calls the other files in statements like this:
      load "Rename - Remove";
    This would not have been possible without the new logic added here, because "Rename - Remove.xys" would have been looked for only in xy app data path and, of course, not been found. Now it is found in E:\XY\Scripts\Rename\. So, now you can e.g. load script files from some network server and need not to worry about paths.
    Also, when users share script files, you don't have to worry about name collisions anymore because each script file package can run in its own folder.