<?xml version='1.0' encoding='ISO-8859-1' standalone='no'?>
<!DOCTYPE interface-description SYSTEM 'file:///usr/pkgsrc/lang/oo2c/work.macaroon/oo2c_32-2.0.11/rsrc/OOC/xml/interface-description.dtd'>
<interface-description name='URI:String' id=''>
  <import-decl name='StringBuffer' id='StringBuffer' export='no' module='ADT:StringBuffer'/>
  <import-decl name='CharClass' id='CharClass' export='no' module='URI:CharClass'/>
  <type-decl name='Offset' id='Offset' export='yes'>
    <type>
      <type-name module='#predef' name='INTEGER'/>
    </type>
  </type-decl>
  <procedure name='Unescape' id='Unescape' export='yes'>
    <oberon-doc>
      <summary>Replaces escaped characters with their ISO Latin-1 counterparts.</summary>
      <p pad-after='yes' no-indent='yes'>Replaces escaped characters with their ISO Latin-1 counterparts.  The escape sequence <samp>%00</samp> is translated to a space (ASCII code 32).</p>
      <pre-cond pad-after='yes'>
        <p pad-after='no' no-indent='yes'>The string <oberon-param href='#Unescape.x'>x</oberon-param> is well-formed.  That is, every occurence of the character <samp>%</samp> is followed by two valid hexadecimal digits.</p>
      </pre-cond>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='x' id='Unescape.x' export='no' variable-parameter='no'>
        <type>
          <type-name name='STRING' href='#STRING'/>
        </type>
      </parameter-decl>
      <result-type>
        <type-name name='STRING' href='#STRING'/>
      </result-type>
    </formal-parameters>
  </procedure>
  <procedure name='AppendEscaped' id='AppendEscaped' export='yes'>
    <oberon-doc>
      <summary>Appends the string <oberon-param href='#AppendEscaped.source'>source</oberon-param> to <oberon-param href='#AppendEscaped.dest'>dest</oberon-param>, possibly escaping some characters on the way.</summary>
      <p pad-after='yes' no-indent='yes'>Appends the string <oberon-param href='#AppendEscaped.source'>source</oberon-param> to <oberon-param href='#AppendEscaped.dest'>dest</oberon-param>, possibly escaping some characters on the way.  All characters from <oberon-proc href='URI:CharClass#IsUnreserved'>CharClass.IsUnreserved</oberon-proc> and all characters in <oberon-param href='#AppendEscaped.unreserved'>unreserved</oberon-param> are copied as is.  Any other characters are translated into a three character sequence <samp>%HH</samp>, where <samp>H</samp> is a hex digit from <samp>[0-9A-F]</samp>.  If <oberon-param href='#AppendEscaped.dest'>dest</oberon-param> cannot hold the whole result, then the result string is truncated.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='source' id='AppendEscaped.source' export='no' variable-parameter='no'>
        <type>
          <type-name name='STRING' href='#STRING'/>
        </type>
      </parameter-decl>
      <parameter-decl name='unreserved' id='AppendEscaped.unreserved' export='no' variable-parameter='no'>
        <type>
          <array>
            <element-type>
              <type-name module='#predef' name='CHAR'/>
            </element-type>
          </array>
        </type>
      </parameter-decl>
      <parameter-decl name='dest' id='AppendEscaped.dest' export='no' variable-parameter='no'>
        <type>
          <type-name module='StringBuffer' name='StringBuffer' href='ADT:StringBuffer#StringBuffer'/>
        </type>
      </parameter-decl>
    </formal-parameters>
  </procedure>
  <import-decl name='-RT0' id='-RT0' export='no' module='RT0'/>
  <import-decl name='-Object' id='-Object' export='no' module='Object'/>
  <import-decl name='-Exception' id='-Exception' export='no' module='Exception'/>
  <module-ref name='ADT:StringBuffer'>
    <ref-target type='html' relative-uri='../ADT/StringBuffer.html'/>
  </module-ref>
  <module-ref name='URI:CharClass'>
    <ref-target type='html' relative-uri='CharClass.html'/>
  </module-ref>
</interface-description>
