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.