(v13) File names, device names, and relative devices
This page applies to Harlequin v13.1r0 and later; both Harlequin Core and Harlequin MultiRIP.
A device type and its devices are said to be either relative or non-relative. This is a property of the device type, so all devices of a particular type are one or the other. For instance, device type 15, used for channels in input plugins, is non-relative, whereas device type 0, the disk filing system, is relative.
Files on a relative device are individually identified by file names and there may be arbitrarily many of them. However, a non-relative device has at most two files—one for reading and one for writing— and these are named simply by referring to the device name. Depending on its implementation, a non-relative device type may either refuse to open additional files on the device, or regard all files opened as referring to the same data.
A device is identified in PostScript by a string which starts with a percent sign ( % ) and optionally ends with another %. The % signs are not considered part of the device name: (%serial%) and (%serial) refer to the same device. Device names in the Harlequin RIP can be up to 50 bytes long (excluding the % signs). Case is significant: (%Serial%) and (%serial%) are different devices.
The GUI can be localized. These localized versions can use multi-byte character representations, so the distinction between bytes and characters is important.
A file is identified in the PostScript language by an arbitrary string, subject only to a maximum length. In the Harlequin RIP, file names can be up to 200 bytes long. However, the name space is unique only within one device, so to identify a file uniquely, the file name must be qualified by a device name, using a percent sign ( % ) to separate the two, and a leading % to indicate that the first part is the name of a device; for example: (%os%Usr/Start). The 200-byte limit does not include this device name.
Non-relative devices do not have named files and therefore to open a file on such a device, only the device name part is given (with or without the trailing % ); for example: (%serial). The distinction between a non-relative device and a file on that device is therefore blurred in the PostScript language.