commit b55de3d1a257d5e0232e081e402532ef68fcedaf
Author: FRIGN <[email protected]>
Date:   Sat Jan 17 22:33:19 2015 +0100

    Add mandoc-manpage for chmod(1)
    
    and mark it as finished in README.
    
    One small rationale on the way the manpage is set up: Looking at
    the coreutils manpage, it does not invite to be a quick reference
    guide, whereas I wrote this manpage to be short and concise in regard
    to the information the advanced user needs.
    No one needs to explain what an octal number is. That's not part of
    the scope of this manpage.
    Also, nobody wants to read a block of text just to find out how
    to build an octal mode string.

diff --git a/README b/README
index 9d2ce0a..a7cc157 100644
--- a/README
+++ b/README
@@ -12,7 +12,7 @@ The following tools are implemented (* == finished):
 * cal             yes                             none
 * cat             yes                             none
   chgrp           no                              -h, -H, -L, -P
-  chmod           yes                             none
+* chmod           yes                             none
   chown           no                              -h, -H, -L, -P
   chroot          non-posix                       none
   cksum           yes                             none
diff --git a/chmod.1 b/chmod.1
index 4deb792..2c69e08 100644
--- a/chmod.1
+++ b/chmod.1
@@ -1,74 +1,66 @@
-.TH CHMOD 1 sbase\-VERSION
-.SH NAME
-chmod \- change file mode
-.SH SYNOPSIS
-.B chmod
-.RB [ \-r ]
-.I octal
-.RI [ file ...]
-.P
-.B chmod
-.RB [ \-r ]
-.RB [ ugoa ]*[ +-= ][ rwxst ]*
-.RI [ file ...]
-.SH DESCRIPTION
-.B chmod
-changes the file mode for the given files.
-.P
-If the mode is an
-.I octal
-number, the modes are set according to that number's comprising bits. The first
-digit defines the setuid (4), setgid (2), and sticky (1) attributes.  The 
second digit
-defines the owner's permissions: read (4), write (2), and execute (1); the 
third
-defines permissions for others in the file's group; and the fourth for all 
other
-users. Leading zeroes may be omitted.
-.P
-Alternatively the mode may be symbolic. The symbol meanings are:
-.TP
-.B u
-modifies owner permissions.
-.PD 0
-.TP
-.B g
-modifies group permissions.
-.TP
-.B o
-modifies other user permissions.
-.TP
-.B a
-modifies all user permissions.
-.PD
-.TP
-.B +
-adds the given permissions to the mode.
-.PD 0
-.TP
-.B -
-removes the given permissions from the mode.
-.TP
-.B =
-sets the mode to the given permissions.
-.PD
-.TP
-.B r
-read permissions.
-.PD 0
-.TP
-.B w
-write permissions.
-.TP
-.B x
-execute permissions.
-.TP
-.B s
-setuid and setgid attributes.
-.TP
-.B t
-sticky attribute.
-.PD
-.SH OPTIONS
-.TP
-.B \-r
-change directory mode recursively.
-.SH SEE ALSO
-.IR chmod (2)
+.Dd January 17, 2015
+.Dt CHMOD 1 sbase\-VERSION
+.Sh NAME
+.Nm chmod
+.Nd change file mode
+.Sh SYNOPSIS
+.Nm chmod
+.Op Fl R
+.Ar mode
+.Op Ar file ...
+.Sh DESCRIPTION
+.Nm
+changes the file mode of the given files.
+.Pp
+If
+.Ar mode
+is
+.Em octal
+"[sog]e"
+.Bl -tag -width Ds
+.It s
+.Xr sticky 1 => s += 1
+.Pp
+.Xr setgid 2 => s += 2
+.Pp
+.Xr setuid 4 => s += 4
+.It o|g|e
+owner | group | everyone
+.Pp
+.Xr execute 1 => o|g|e += 1
+.Pp
+.Xr write 2 => o|g|e += 2
+.Pp
+.Xr read 4 => o|g|e += 4
+.El
+.Pp
+Leading zeroes may be omitted.
+.Pp
+If
+.Ar mode
+is
+.Em symbolic
+"[ugoa]*[+-=][rwxst]*"
+.Bl -tag -width Ds
+.It u|g|o|a
+owner | group | other (non-group) | everyone
+.It +|-|=
+add | remove | set
+.It r|w|x|s|t
+read | write | execute | setuid and setgid | sticky
+.El
+.Sh OPTIONS
+.Bl -tag -width Ds
+.It Fl R
+Change modes recursively
+.El
+.Sh STANDARDS
+The
+.Nm
+utility is compliant with the
+.St -p1003.1-2008
+specification.
+.Pp
+The
+.Op Fl R
+flag is an extension to that specification.
diff --git a/chmod.c b/chmod.c
index 93b97a3..efbd17f 100644
--- a/chmod.c
+++ b/chmod.c
@@ -35,7 +35,7 @@ chmodr(const char *path)
 static void
 usage(void)
 {
-       eprintf("usage: %s [-R] mode [file...]\n", argv0);
+       eprintf("usage: %s [-R] mode [file ...]\n", argv0);
 }
 
 int

Reply via email to