tadd -A - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 011090f03b7a9f83646dbdd24f321b93e6733a73
 (DIR) parent 5c84c448b82c7bfdfeaae533783aa09317656e86
 (HTM) Author: rsc <devnull@localhost>
       Date:   Mon, 21 Mar 2005 17:27:25 +0000
       
       add -A
       
       Diffstat:
         M man/man1/9p.1                       |      48 ++++++++++++++++++++++++-------
         M src/cmd/9p.c                        |      12 ++++++++----
       
       2 files changed, 46 insertions(+), 14 deletions(-)
       ---
 (DIR) diff --git a/man/man1/9p.1 b/man/man1/9p.1
       t@@ -4,24 +4,21 @@
        .SH SYNOPSIS
        .B 9p
        [
       -.B -a
       -.I addr
       +.I options
        ]
        .B read
        .I path
        .br
        .B 9p
        [
       -.B -a
       -.I addr
       +.I options
        ]
        .B readfd
        .I path
        .PP
        .B 9p
        [
       -.B -a
       -.I addr
       +.I options
        ]
        .B write
        [
       t@@ -31,28 +28,49 @@
        .br
        .B 9p
        [
       -.B -a
       -.I addr
       +.I options
        ]
        .B writefd
        .I path
        .PP
        .B 9p
        [
       -.B -a
       -.I addr
       +.I options
        ]
        .B stat
        .I path
        .PP
        .B 9p
       +[
       +.I options
       +]
        .B rdwr
        .I path
       +.PP
       +.B 9p
       +[
       +.I options
       +]
       +.B ls
       +[
       +.B -dl
       +]
       +.I path...
        .SH DESCRIPTION
        .I 9p
        is a trivial 9P client that can access a single file on a 9P server.
        It can be useful for manual interaction with a 9P server or for
        accessing simple 9P services from within shell scripts.
       +The common options are:
       +.TP
       +.B -a\fI addr
       +dial
       +the server at
       +.I addr
       +.TP
       +.B -A\fI aname
       +attach to the file system named
       +.I aname
        .PP
        The first argument is a command, one of:
        .TP
       t@@ -101,6 +119,16 @@ Print errors, but don't give up.
        .B Rdwr
        is useful for interacting with servers like
        .IR factotum (4).
       +.TP
       +.B ls
       +Print a directory listing in the format of
       +.IR ls (1).
       +The
       +.B -d
       +and
       +.B -l
       +flags have the same meaning as in
       +.IR ls .
        .PD
        .PP
        .I 9p
 (DIR) diff --git a/src/cmd/9p.c b/src/cmd/9p.c
       t@@ -12,7 +12,7 @@ char *addr;
        void
        usage(void)
        {
       -        fprint(2, "usage: 9p [-a address] cmd args...\n");
       +        fprint(2, "usage: 9p [-a address] [-A aname] cmd args...\n");
                fprint(2, "possible cmds:\n");
                fprint(2, "        read name\n");
                fprint(2, "        readfd name\n");
       t@@ -25,6 +25,7 @@ usage(void)
                threadexitsall("usage");
        }
        
       +char *aname;
        void xread(int, char**);
        void xwrite(int, char**);
        void xreadfd(int, char**);
       t@@ -53,6 +54,9 @@ threadmain(int argc, char **argv)
                int i;
        
                ARGBEGIN{
       +        case 'A':
       +                aname = EARGF(usage());
       +                break;
                case 'a':
                        addr = EARGF(usage());
                        if(strchr(addr, '!') == nil)
       t@@ -94,15 +98,15 @@ xparse(char *name, char **path)
                        else
                                *p++ = 0;
                        *path = p;
       -                fs = nsamount(name, "");
       +                fs = nsamount(name, aname);
                        if(fs == nil)
                                sysfatal("mount: %r");
                }else{
                        *path = name;
                        if((fd = dial(addr, nil, nil, nil)) < 0)
                                sysfatal("dial: %r");
       -                if((fs = fsamount(fd, "")) == nil)
       -                        sysfatal("fsmount: %r");
       +                if((fs = fsamount(fd, aname)) == nil)
       +                        sysfatal("fsamount: %r");
                }
                return fs;
        }