Author: jonpryor
Date: 2006-01-17 07:38:04 -0500 (Tue, 17 Jan 2006)
New Revision: 55678

Modified:
   trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixDirectoryInfo.xml
   trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileInfo.xml
   trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileSystemInfo.xml
   trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixSymbolicLinkInfo.xml
Log:
Flush.


Modified: trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixDirectoryInfo.xml
===================================================================
--- trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixDirectoryInfo.xml   
2006-01-17 12:09:08 UTC (rev 55677)
+++ trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixDirectoryInfo.xml   
2006-01-17 12:38:04 UTC (rev 55678)
@@ -26,7 +26,7 @@
         </exception>
         <exception cref="T:System.ArgumentException">
           <paramref name="path" /> contains invalid characters; see
-          <see cref="F:Mono.Unix.UnixPath.InvalidPathChars" />.
+          <see cref="M:Mono.Unix.UnixPath.GetInvalidPathChars" />.
         </exception>
         <remarks>
           <para>The <paramref name="path" /> argument is permitted to specify 

Modified: trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileInfo.xml
===================================================================
--- trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileInfo.xml        
2006-01-17 12:09:08 UTC (rev 55677)
+++ trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileInfo.xml        
2006-01-17 12:38:04 UTC (rev 55678)
@@ -27,7 +27,7 @@
         </exception>
         <exception cref="T:System.ArgumentException">
           <paramref name="path" /> contains invalid characters; see
-          <see cref="F:Mono.Unix.UnixPath.InvalidPathChars" />.
+          <see cref="M:Mono.Unix.UnixPath.GetInvalidPathChars" />.
         </exception>
         <remarks>
           <para>The <paramref name="path" /> argument is permitted to specify 

Modified: trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileSystemInfo.xml
===================================================================
--- trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileSystemInfo.xml  
2006-01-17 12:09:08 UTC (rev 55677)
+++ trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileSystemInfo.xml  
2006-01-17 12:38:04 UTC (rev 55678)
@@ -287,6 +287,38 @@
             creating the symbolic link, while this method uses the
             fully-qualified file name to create the symbolic link.
           </para>
+          <example>
+            <para>The <c>ln</c>(1) command:</para>
+            <code lang="sh">ln -s target symlink</code>
+            <para>
+              Can be created using <see cref="N:Mono.Unix" /> in two ways.
+              First, it can be created using 
+              <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />:
+            </para>
+            <code lang="C#">UnixFileInfo f = new UnixFileInfo ("target.ufi");
+f.CreateSymbolicLink ("symlink.ufi");</code>
+            <para>
+              Second, it can be created using 
+              <see 
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" 
+              />:
+            </para>
+            <code lang="C#">UnixSymbolicLinkInfo s = 
+    new UnixSymbolicLinkInfo ("symlink.usli");
+s.CreateSymbolicLinkTo ("target.usli");</code>
+            <para>
+              The links created by the above differ; in particular, the target
+              of 
+              <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />
+              is the full path name of the target, while 
+              <see 
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" 
+              /> contains no extra information:
+            </para>
+            <code lang="sh">$ ls -lF symlink* | cut -c 39-
+symlink -> target
+symlink.ufi -> /full/path/to/target.ufi
+symlink.usli -> target.usli
+            </code>
+          </example>
         </remarks>
         <altmember cref="M:Mono.Unix.Native.Syscall.symlink" />
       </Docs>

Modified: trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixSymbolicLinkInfo.xml
===================================================================
--- trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixSymbolicLinkInfo.xml        
2006-01-17 12:09:08 UTC (rev 55677)
+++ trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixSymbolicLinkInfo.xml        
2006-01-17 12:38:04 UTC (rev 55678)
@@ -17,9 +17,42 @@
         <Parameter Name="path" Type="System.String" />
       </Parameters>
       <Docs>
-        <param name="path">To be added.</param>
-        <summary>To be added.</summary>
-        <remarks>To be added.</remarks>
+        <param name="path">
+          A <see cref="T:System.String" /> containing the symbolic link to
+          query.
+        </param>
+        <summary>Creates a new <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" />
+          instance containing information about the symbolic link.</summary>
+        <exception cref="T:System.ArgumentNullException">
+          <paramref name="path" /> is <see langword="null" />.
+        </exception>
+        <exception cref="T:System.ArgumentException">
+          <paramref name="path" /> contains invalid characters; see
+          <see cref="M:Mono.Unix.UnixPath.GetInvalidPathChars" />.
+        </exception>
+        <remarks>
+          <para>The <paramref name="path" /> argument is permitted to specify 
+          relative or absolute path information. Relative path information is 
+          interpreted as relative to the current working directory. 
+          <block subset="none" type="note">To obtain the current working 
+          directory, see 
+          <see cref="M:Mono.Unix.UnixDirectoryInfo.GetCurrentDirectory" />.
+          </block></para>
+          <para>It is valid to construct 
+          <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" /> objects for symbolic
+          links that do not exist or for files and directories.
+          However, attempts to use the 
+          <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" /> instance may
+          generate <see cref="T:System.InvalidOperationException" />s
+          and other exception types.
+          Use <see cref="P:Mono.Unix.UnixFileSystemInfo.Exists" /> to see if
+          <paramref name="path" /> exists,
+          <see cref="P:Mono.Unix.UnixFileSystemInfo.IsSymbolicLink" /> to 
ensure
+          that <paramref name="path" /> is a symbolic link, and
+          Use <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.HasContents" />
+          to ensure that the symbolic link target is valid.
+          </para>
+        </remarks>
       </Docs>
     </Member>
     <Member MemberName="CreateSymbolicLinkTo">
@@ -32,9 +65,174 @@
         <Parameter Name="path" Type="System.String" />
       </Parameters>
       <Docs>
-        <param name="path">To be added.</param>
-        <summary>To be added.</summary>
-        <remarks>To be added.</remarks>
+        <param name="path">
+          A <see cref="T:System.String" /> containing the target of this
+          symbolic link instance.
+        </param>
+        <summary>
+          Creates the symbolic link 
+          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> which refers
+          to the symbolic link target <paramref name="path" />.
+        </summary>
+        <exception cref="System.IO.DirectoryNotFoundException">
+          <para>
+            A component of 
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            is not a directory.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.FileNotFoundException">
+          <para>
+            <paramref name="path" /> does not exist.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.IOException">
+          <para>
+            An I/O error occurred while making the directory entry for
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            or allocating the inode for
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            or writing out the link contents of
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
+            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The file
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            would reside on a read-only file system.
+            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The directory in which the entry for the new symbolic link is 
being placed
+            cannot be extended because there is no space left on the file
+            system containing the directory.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The new symbolic link cannot be created because
+            there is no space left on the file
+            system that will contain the symbolic link.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            There are no free inodes on the file system on which the
+            symbolic link is being created.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            An I/O error occurred while making the directory entry or 
allocating the inode.
+            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.PathTooLongException">
+          <para>
+            A component of either pathname exceeded 255 characters,
+            or the entire length of either path name exceeded 1023 characters.
+            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
+          </para>
+        </exception>
+        <exception cref="Mono.Unix.UnixIOException">
+          <para>
+            A component of 
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            denies search permission.
+            [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            Too many symbolic links were encountered in translating the 
pathname.
+            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The path name pointed at by the
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            argument
+            already exists.
+            [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The directory in which the entry for the new symbolic link
+            is being placed cannot be extended because the
+            user's quota of disk blocks on the file system
+            containing the directory has been exhausted.
+            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The new symbolic link cannot be created because the user's
+            quota of disk blocks on the file system that will
+            contain the symbolic link has been exhausted.
+            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The user's quota of inodes on the file system on
+            which the symbolic link is being created has been exhausted.
+            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+          </para>
+        </exception>
+        <remarks>
+          <para>
+            Creates the symbolic link
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> which refers
+            to the target <paramref name="path" />.
+          </para>
+          <para>
+            The <paramref name="path" /> argument is permitted to specify
+            relative or absolute path information. Relative path information 
is 
+            interpreted by the file system as relative to the symbolic link
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
+          </para>
+          <para>
+            Using 
+            <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" 
/>
+            instead of 
+            <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />
+            allows relative path information to be preserved within the
+            symbolic link.
+          </para>
+          <example>
+            <para>The <c>ln</c>(1) command:</para>
+            <code lang="sh">ln -s target symlink</code>
+            <para>
+              Can be created using <see cref="N:Mono.Unix" /> in two ways.
+              First, it can be created using 
+              <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />:
+            </para>
+            <code lang="C#">UnixFileInfo f = new UnixFileInfo ("target.ufi");
+f.CreateSymbolicLink ("symlink.ufi");</code>
+            <para>
+              Second, it can be created using 
+              <see 
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" 
+              />:
+            </para>
+            <code lang="C#">UnixSymbolicLinkInfo s = 
+    new UnixSymbolicLinkInfo ("symlink.usli");
+s.CreateSymbolicLinkTo ("target.usli");</code>
+            <para>
+              The links created by the above differ; in particular, the target
+              of 
+              <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />
+              is the full path name of the target, while 
+              <see 
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" 
+              /> contains no extra information:
+            </para>
+            <code lang="sh">$ ls -lF symlink* | cut -c 39-
+symlink -> target
+symlink.ufi -> /full/path/to/target.ufi
+symlink.usli -> target.usli
+            </code>
+          </example>
+        </remarks>
       </Docs>
     </Member>
     <Member MemberName="CreateSymbolicLinkTo">
@@ -47,9 +245,173 @@
         <Parameter Name="path" Type="Mono.Unix.UnixFileSystemInfo" />
       </Parameters>
       <Docs>
-        <param name="path">To be added.</param>
-        <summary>To be added.</summary>
-        <remarks>To be added.</remarks>
+        <param name="path">
+          A <see cref="T:Mono.Unix.UnixFileSystemInfo" /> instance containing
+          the target of this symbolic link instance.
+        </param>
+        <summary>
+          Creates the symbolic link 
+          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> which refers
+          to the symbolic link target <paramref name="path" />.
+        </summary>
+        <exception cref="System.IO.DirectoryNotFoundException">
+          <para>
+            A component of 
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            is not a directory.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.FileNotFoundException">
+          <para>
+            <paramref name="path" /> does not exist.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.IOException">
+          <para>
+            An I/O error occurred while making the directory entry for
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            or allocating the inode for
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            or writing out the link contents of
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
+            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The file
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            would reside on a read-only file system.
+            [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The directory in which the entry for the new symbolic link is 
being placed
+            cannot be extended because there is no space left on the file
+            system containing the directory.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The new symbolic link cannot be created because
+            there is no space left on the file
+            system that will contain the symbolic link.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            There are no free inodes on the file system on which the
+            symbolic link is being created.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            An I/O error occurred while making the directory entry or 
allocating the inode.
+            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.PathTooLongException">
+          <para>
+            A component of either pathname exceeded 255 characters,
+            or the entire length of either path name exceeded 1023 characters.
+            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
+          </para>
+        </exception>
+        <exception cref="Mono.Unix.UnixIOException">
+          <para>
+            A component of 
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            denies search permission.
+            [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            Too many symbolic links were encountered in translating the 
pathname.
+            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The path name pointed at by the
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            argument
+            already exists.
+            [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The directory in which the entry for the new symbolic link
+            is being placed cannot be extended because the
+            user's quota of disk blocks on the file system
+            containing the directory has been exhausted.
+            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The new symbolic link cannot be created because the user's
+            quota of disk blocks on the file system that will
+            contain the symbolic link has been exhausted.
+            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            The user's quota of inodes on the file system on
+            which the symbolic link is being created has been exhausted.
+            [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+          </para>
+        </exception>
+        <remarks>
+          <para>
+            Creates the symbolic link
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> which refers
+            to the target <paramref name="path" />.
+          </para>
+          <para>
+            The <paramref name="path" /> argument is permitted to specify
+            relative or absolute path information. Relative path information 
is 
+            interpreted by the file system as relative to the symbolic link
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
+          </para>
+          <para>
+            Using 
+            <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" 
/>
+            instead of 
+            <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />
+            allows relative path information to be preserved within the
+            symbolic link.
+          </para>
+          <example>
+            <para>The <c>ln</c>(1) command:</para>
+            <code lang="sh">ln -s target symlink</code>
+            <para>
+              Can be created using <see cref="N:Mono.Unix" /> in two ways.
+              First, it can be created using 
+              <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />:
+            </para>
+            <code lang="C#">UnixFileInfo f = new UnixFileInfo ("target.ufi");
+f.CreateSymbolicLink ("symlink.ufi");</code>
+            <para>
+              Second, it can be created using 
+              <see 
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" 
+              />:
+            </para>
+            <code lang="C#">UnixSymbolicLinkInfo s = 
+    new UnixSymbolicLinkInfo ("symlink.usli");
+s.CreateSymbolicLinkTo ("target.usli");</code>
+            <para>
+              The links created by the above differ; in particular, the target
+              of 
+              <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />
+              is the full path name of the target, while 
+              <see 
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" 
+              /> contains no extra information:
+            </para>
+            <code lang="sh">$ ls -lF symlink* | cut -c 39-
+symlink -> target
+symlink.ufi -> /full/path/to/target.ufi
+symlink.usli -> target.usli</code>
+          </example>
+        </remarks>
       </Docs>
     </Member>
     <Member MemberName="Contents">
@@ -59,9 +421,94 @@
         <ReturnType>Mono.Unix.UnixFileSystemInfo</ReturnType>
       </ReturnValue>
       <Docs>
-        <summary>To be added.</summary>
-        <value>To be added.</value>
-        <remarks>To be added.</remarks>
+        <summary>Gets the target of this symbolic link.</summary>
+        <exception cref="System.ArgumentException">
+          <para>
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            is not a symbolic link.
+            [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.DirectoryNotFoundException">
+          <para>
+            A component of 
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            is not a directory.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.FileNotFoundException">
+          <para>
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.IOException">
+          <para>
+            An I/O error occurred while reading from the file system.
+            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.PathTooLongException">
+          <para>
+            A component of a pathname exceeded 255 characters,
+            or an entire path name exceeded 1023 characters.
+            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
+          </para>
+        </exception>
+        <exception cref="Mono.Unix.UnixIOException">
+          <para>
+            Search permission is denied for a component of the path prefix.
+            [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            Too many symbolic links were encountered in translating the 
pathname.
+            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
+          </para>
+        </exception>
+        <value>
+          <para>
+            A <see cref="T:Mono.Unix.UnixFileSystemInfo" /> reference 
containing
+            information about the target of this symbolic link, or
+            <see langword="null" /> if 
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />:
+          </para>
+          <list type="bullet">
+            <item><term>does not exist, or</term></item>
+            <item><term>is not a symbolic link.</term></item>
+          </list>
+          <para>
+            The behavior will be changed in the future to generate an
+            exception for either of the above error conditions, so current
+            code needs to deal with both exceptions and a 
+            <see langword="null" /> return value.  <see langword="null" />
+            will not be used by the Mono 1.2 release.
+          </para>
+        </value>
+        <remarks>
+          <para>
+            This really should throw the same exceptions as
+            <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.ContentsPath" />
+            instead of returning <see langword="null" />.
+          </para>
+          <para>
+            <block subset="none" type="note">
+              The target may in turn be a symbolic link (nothing prevents
+              symbolic links from referencing other symbolic links).
+              To get the actual target, use
+              <see cref="M:Mono.Unix.UnixPath.GetRealPath" />,
+              <see cref="M:Mono.Unix.UnixPath.GetCompleteRealPath" />,
+              or walk the symbolic link "chain":
+              <code lang="C#">UnixFileSystemInfo target = 
+    new UnixSymbolicLinkInfo ("symlink").Contents;
+while (target != null &amp;&amp; 
+        target.FileType == FileTypes.SymbolicLink) {
+    target = ((UnixSymbolicLinkInfo) target).Contents;
+}</code>
+            </block>
+          </para>
+        </remarks>
       </Docs>
     </Member>
     <Member MemberName="ContentsPath">
@@ -71,9 +518,70 @@
         <ReturnType>System.String</ReturnType>
       </ReturnValue>
       <Docs>
-        <summary>To be added.</summary>
-        <value>To be added.</value>
-        <remarks>To be added.</remarks>
+        <summary>
+          Gets the target of this symbolic link as a 
+          <see cref="T:System.String" />.
+        </summary>
+        <exception cref="System.ArgumentException">
+          <para>
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            is not a symbolic link.
+            [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.DirectoryNotFoundException">
+          <para>
+            A component of 
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            is not a directory.
+            [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.FileNotFoundException">
+          <para>
+            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+            [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.IOException">
+          <para>
+            An I/O error occurred while reading from the file system.
+            [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+          </para>
+        </exception>
+        <exception cref="System.IO.PathTooLongException">
+          <para>
+            A component of a pathname exceeded 255 characters,
+            or an entire path name exceeded 1023 characters.
+            [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
+          </para>
+        </exception>
+        <exception cref="Mono.Unix.UnixIOException">
+          <para>
+            Search permission is denied for a component of the path prefix.
+            [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
+          </para>
+          <para>-or-</para>
+          <para>
+            Too many symbolic links were encountered in translating the 
pathname.
+            [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
+          </para>
+        </exception>
+        <value>
+          A <see cref="T:System.String" /> containing the target of this
+          symbolic link.
+        </value>
+        <remarks>
+          <para>
+            <block subset="none" type="note">
+              The target may in turn be a symbolic link (nothing prevents
+              symbolic links from referencing other symbolic links).
+              To get the actual target, use
+              <see cref="M:Mono.Unix.UnixPath.GetRealPath" /> or
+              <see cref="M:Mono.Unix.UnixPath.GetCompleteRealPath" />.
+            </block>
+          </para>
+        </remarks>
       </Docs>
     </Member>
     <Member MemberName="HasContents">
@@ -83,14 +591,54 @@
         <ReturnType>System.Boolean</ReturnType>
       </ReturnValue>
       <Docs>
-        <summary>To be added.</summary>
-        <value>To be added.</value>
-        <remarks>To be added.</remarks>
+        <summary>
+          Returns a <see cref="T:System.Boolean" /> indicating whether or not 
+          <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.Contents" />
+          and
+          <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.ContentsPath" />
+          are valid.
+        </summary>
+        <value>
+          <see langword="true" /> if 
+          <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.Contents" /> and
+          <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.ContentsPath" />
+          are valid (i.e. won't return <see langword="null" /> or generate an
+          exception); otherwise, <see langword="false" />.
+        </value>
+        <remarks>
+          <para>
+            This method is subject to race conditions in the file system --
+            it's entirely possible for the symlink to be modified or deleted
+            between a call to 
+            <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.HasContents" />
+            and 
+            <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.Contents" />
+            or 
+            <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.ContentsPath" />.
+          </para>
+        </remarks>
       </Docs>
     </Member>
   </Members>
   <Docs>
-    <summary>To be added.</summary>
-    <remarks>To be added.</remarks>
+    <summary>
+      Provides information about and performs operations on symbolic links.
+    </summary>
+    <remarks>
+      <para>The <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" /> class provides
+      information about a symbolic link.  It also allows basic 
+      symbolic link manipulation:</para>
+      <list type="bullet">
+        <item>
+          <term>Symbolic link creation with 
+          <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" />.
+          </term>
+        </item>
+        <item>
+          <term>Symbolic link deletion with 
+          <see cref="M:Mono.Unix.UnixFileInfo.Delete" />.</term>
+        </item>
+      </list>
+    </remarks>
   </Docs>
 </Type>

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to