gnupg: Format conventions

 
 9.4.2 Format conventions
 ------------------------
 
 Some lines in the output of 'gpgconf' contain a list of colon-separated
 fields.  The following conventions apply:
 
    * The GUI program is required to strip off trailing newline and/or
      carriage return characters from the output.
 
    * 'gpgconf' will never leave out fields.  If a certain version
      provides a certain field, this field will always be present in all
      'gpgconf' versions from that time on.
 
    * Future versions of 'gpgconf' might append fields to the list.  New
      fields will always be separated from the previously last field by a
      colon separator.  The GUI should be prepared to parse the last
      field it knows about up until a colon or end of line.
 
    * Not all fields are defined under all conditions.  You are required
      to ignore the content of undefined fields.
 
    There are several standard types for the content of a field:
 
 verbatim
      Some fields contain strings that are not escaped in any way.  Such
      fields are described to be used _verbatim_.  These fields will
      never contain a colon character (for obvious reasons).  No
      de-escaping or other formatting is required to use the field
      content.  This is for easy parsing of the output, when it is known
      that the content can never contain any special characters.
 
 percent-escaped
      Some fields contain strings that are described to be
      _percent-escaped_.  Such strings need to be de-escaped before their
      content can be presented to the user.  A percent-escaped string is
      de-escaped by replacing all occurrences of '%XY' by the byte that
      has the hexadecimal value 'XY'.  'X' and 'Y' are from the set
      '0-9a-f'.
 
 localized
      Some fields contain strings that are described to be _localized_.
      Such strings are translated to the active language and formatted in
      the active character set.
 
 unsigned number
      Some fields contain an _unsigned number_.  This number will always
      fit into a 32-bit unsigned integer variable.  The number may be
      followed by a space, followed by a human readable description of
      that value (if the verbose option is used).  You should ignore
      everything in the field that follows the number.
 
 signed number
      Some fields contain a _signed number_.  This number will always fit
      into a 32-bit signed integer variable.  The number may be followed
      by a space, followed by a human readable description of that value
      (if the verbose option is used).  You should ignore everything in
      the field that follows the number.
 
 boolean value
      Some fields contain a _boolean value_.  This is a number with
      either the value 0 or 1.  The number may be followed by a space,
      followed by a human readable description of that value (if the
      verbose option is used).  You should ignore everything in the field
      that follows the number; checking just the first character is
      sufficient in this case.
 
 option
      Some fields contain an _option_ argument.  The format of an option
      argument depends on the type of the option and on some flags:
 
      no argument
           The simplest case is that the option does not take an argument
           at all (TYPE '0').  Then the option argument is an unsigned
           number that specifies how often the option occurs.  If the
           'list' flag is not set, then the only valid number is '1'.
           Options that do not take an argument never have the 'default'
           or 'optional arg' flag set.
 
      number
           If the option takes a number argument (ALT-TYPE is '2' or
           '3'), and it can only occur once ('list' flag is not set),
           then the option argument is either empty (only allowed if the
           argument is optional), or it is a number.  A number is a
           string that begins with an optional minus character, followed
           by one or more digits.  The number must fit into an integer
           variable (unsigned or signed, depending on ALT-TYPE).
 
      number list
           If the option takes a number argument and it can occur more
           than once, then the option argument is either empty, or it is
           a comma-separated list of numbers as described above.
 
      string
           If the option takes a string argument (ALT-TYPE is 1), and it
           can only occur once ('list' flag is not set) then the option
           argument is either empty (only allowed if the argument is
           optional), or it starts with a double quote character ('"')
           followed by a percent-escaped string that is the argument
           value.  Note that there is only a leading double quote
           character, no trailing one.  The double quote character is
           only needed to be able to differentiate between no value and
           the empty string as value.
 
      string list
           If the option takes a string argument and it can occur more
           than once, then the option argument is either empty, or it is
           a comma-separated list of string arguments as described above.
 
    The active language and character set are currently determined from
 the locale environment of the 'gpgconf' program.