<?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='OS:Path' id=''>
  <import-decl name='Object' id='Object' export='no' module='Object'/>
  <procedure name='DirName' id='DirName' export='yes'>
    <oberon-doc>
      <summary>Calculates the directory name of pathname <oberon-param href='#DirName.path'>path</oberon-param>.</summary>
      <p pad-after='yes' no-indent='yes'>Calculates the directory name of pathname <oberon-param href='#DirName.path'>path</oberon-param>.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='path' id='DirName.path' 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='BaseName' id='BaseName' export='yes'>
    <oberon-doc>
      <summary>Calculates the basename of pathname <oberon-param href='#BaseName.path'>path</oberon-param>.</summary>
      <p pad-after='yes' no-indent='yes'>Calculates the basename of pathname <oberon-param href='#BaseName.path'>path</oberon-param>.  The basename is the last pathname component of <oberon-param href='#BaseName.path'>path</oberon-param>.  It never contains a slash.  If <oberon-param href='#BaseName.path'>path</oberon-param> ends with a slash, then the basename is the empty string.  If path does not contain a slash, then the basename equals path.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='path' id='BaseName.path' 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='SplitExt' id='SplitExt' export='yes'>
    <oberon-doc>
      <summary>Splits the pathname <oberon-param href='#SplitExt.path'>path</oberon-param> into a pair <samp>(<oberon-param href='#SplitExt.root'>root</oberon-param>, <oberon-param href='#SplitExt.ext'>ext</oberon-param>)</samp> such that <samp>concat(<oberon-param href='#SplitExt.root'>root</oberon-param>,<oberon-param href='#SplitExt.ext'>ext</oberon-param>) = <oberon-param href='#SplitExt.path'>path</oberon-param></samp>.</summary>
      <p pad-after='yes' no-indent='yes'>Splits the pathname <oberon-param href='#SplitExt.path'>path</oberon-param> into a pair <samp>(<oberon-param href='#SplitExt.root'>root</oberon-param>, <oberon-param href='#SplitExt.ext'>ext</oberon-param>)</samp> such that <samp>concat(<oberon-param href='#SplitExt.root'>root</oberon-param>,<oberon-param href='#SplitExt.ext'>ext</oberon-param>) = <oberon-param href='#SplitExt.path'>path</oberon-param></samp>.  The extension <oberon-param href='#SplitExt.ext'>ext</oberon-param> is empty or begins with a period and contains at most one period.  The extension string does not contain a slash character.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='path' id='SplitExt.path' export='no' variable-parameter='no'>
        <type>
          <type-name name='STRING' href='#STRING'/>
        </type>
      </parameter-decl>
      <parameter-decl name='root' id='SplitExt.root' export='no' variable-parameter='yes'>
        <type>
          <type-name name='STRING' href='#STRING'/>
        </type>
      </parameter-decl>
      <parameter-decl name='ext' id='SplitExt.ext' export='no' variable-parameter='yes'>
        <type>
          <type-name name='STRING' href='#STRING'/>
        </type>
      </parameter-decl>
    </formal-parameters>
  </procedure>
  <procedure name='Encode' id='Encode' export='yes'>
    <oberon-doc>
      <summary>Encode the file path or command <oberon-param href='#Encode.path'>path</oberon-param> as a system-specific sequence of bytes.</summary>
      <p pad-after='yes' no-indent='yes'>Encode the file path or command <oberon-param href='#Encode.path'>path</oberon-param> as a system-specific sequence of bytes.</p>
      <p pad-after='yes' no-indent='no'>The default implementation returns a string with all character codes above <samp>0FFX</samp> replaced with the character <samp>_</samp>.  That is, non ISO Latin1 characters are discarded.  For instances of <oberon-type href='Object#String8'>Object.String8</oberon-type>, it is the identity operation.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='path' id='Encode.path' export='no' variable-parameter='no'>
        <type>
          <type-name name='STRING' href='#STRING'/>
        </type>
      </parameter-decl>
      <result-type>
        <type-name module='Object' name='CharsLatin1' href='Object#CharsLatin1'/>
      </result-type>
    </formal-parameters>
  </procedure>
  <procedure name='Decode' id='Decode' export='yes'>
    <oberon-doc>
      <summary>Convert a system-specific sequence of bytes <oberon-param href='#Decode.path'>path</oberon-param> representing a file path into a string instance.</summary>
      <p pad-after='yes' no-indent='yes'>Convert a system-specific sequence of bytes <oberon-param href='#Decode.path'>path</oberon-param> representing a file path into a string instance.  This is the inverse of <oberon-proc href='#Encode'>Encode</oberon-proc>.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='path' id='Decode.path' export='no' variable-parameter='no'>
        <type>
          <array>
            <element-type>
              <type-name module='#predef' name='CHAR'/>
            </element-type>
          </array>
        </type>
      </parameter-decl>
      <result-type>
        <type-name name='STRING' href='#STRING'/>
      </result-type>
    </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='Object'>
    <ref-target type='html' relative-uri='../Object.html'/>
  </module-ref>
</interface-description>
