Item
====
The Item window has the following fields (display/input) and buttons (action/menu/option):

- input    Search
- action   Search
- action   Details )
- input    Item
  menu
- display  Installed
- input    (Description)
- menu     List
  input
- input    Scan
- input    Version
- option   Any mismatch indicates newer version
- input    Source
- input    Verify
- input    Store as
- option   Open containing directory on run
- options  Strip extension / alpha / digits / _ / other
- input    Contains
- input    Install
- option   Keep backup
- option   Start application after installing
- input    Also has
- option   Install/replace these (otherwise just report)
- display  Needs )
- action   List all dependencies )
- option   Include in automatic run
- option   Include in manual run
- actions  Confirm / Cancel / Remove / New / Test / Save / Close

- display  List Etag )
- display  List Last-Modified )
- display  Source Etag )
- display  Source Last-Modified )

) not used/active in cut down version
) normally not useful information for the user, so not visible by default

Some of these are self-explanatory. The ones that are not are described below.

Search
------
Not much use in the cut down version, but still works. The Enter/Return key has the same effect as clicking the Search button.

Item
----
Select an existing item from the menu or fill in the name for a new one. Make sure to click 'New' first if you want to create a new one and have an existing one in the window. The program does not assume you are stupid, so you can easily overwrite the data of an existing item...

List
----
The URL of the web page that has version information about the item. May also be a hostname (dns:) or a package name (pkg: - not available in the cut down version).

Scan
----
A line number (or < for the last line) or an expression (see below: Scan Expressions).

Version
-------
Whatever counts as the version number of the item. This may be more than a number, like a full RFC 3339, RFC 5322 or ISO 8601 date/time string.

Any mismatch indicates newer version
------------------------------------
Set this if the version number is not a mere number.

Source
------
The URL of the archive or other kind of file that counts as source. This may contain the specifier ${version} for the 'version number'.
Enter the literal scanlist followed by a space and a scan expression (see below) if the source URL is to be extracted from the downloaded list page (see above: List).

Verify
------
The URL of a web page/file that provides verification data for the source. This should start with 'hash |' (without the quotes - other options than hash are not available in the cut down version), followed by the actual URL and optionally another space-pipe-space plus a scan expression, if the verification data is not the only thing on that page. E.g. for the AcornSSL module (all on one line):

  hash | https://www.riscosopen.org/content/downloads/common |
   {Nightly Beta HardDisc4} 'md5">[]</'

Store as
--------
The filename to use to store the downloaded item. This may contain the specifier ${version}, if the 'version number' is to be used in the filename. If no path is specified, the file will end up in the default target/cache (see Settings: Default target/...).

Strip extension / alpha / digits / _ / other
--------------------------------------------
Character classes to strip from the filename if the ${version} specifier is used.

Contains
--------
The actual item to extract from the downloaded archive, usually an application name.

Install
-------
Installation path, including the application name. If omitted, no installation will be performed (you will need to extract stuff from the stored download yourself).

Also has
--------
Additional items in the downloaded archive, that may be installed/updated if the next option is set.
This is mostly useful for applications in $.!Boot.Resources or modules. Items may be specified in a comma separated list, with semi-colon separated items in the same destination, e.g.:

  Resources.!Unicode,System.310.Modules.CryptRand;Iconv;Network.URI;SharedULib

This specifies the application !Unicode in $.!Boot.Resources and the modules CryptRand, Iconv, Network.URI and SharedULib in $.!Boot.Resources.!System.310.Modules.

Install/replace these (otherwise just report)
---------------------------------------------
As indicated above, set to update the additional items.


Scan expressions
================
A scan expression can be a line number, a < to indicate the last line or an actual expression, optionally starting with a 'marker' in curly brackets. Looking at the expression in the example under Verify, above:

   {Nightly Beta HardDisc4} 'md5">[]</'

This has a marker, a start text, a target mark [] and a stop text, meaning:
- look for the marker text: Nightly Beta HardDisc4
- then look for the start text: md5">
- scan ahead until the stop text: </
- return anything found between those two bits of text

The expression (after the marker) may be enclosed in single quotes, to prevent losing any required spaces.
The marker is only necessary if omitting it could lead to finding the wrong bit of text. By default, looking for the start text starts on the same line as the marker. This too can lead to finding the wrong piece of text, so it is possible to force the scan to start on the next line, by preceding the start text - AND the quote! - with \n.
