URI: 
       tbug fixes: list message 1. give correct contents for raw, rawheader, rawbody. provide filename and charset in mime attachments. only rename mailboxes named mbox* not mbox*. - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit bb70a84b1ffa914a1043f521940d8293423aab1b
   DIR parent 9ec386fef4927034303b7e477f1570c09fba527f
  HTML Author: rsc <devnull@localhost>
       Date:   Sat, 23 Jun 2007 06:12:50 +0000
       
       bug fixes:
       list message 1.
       give correct contents for raw, rawheader, rawbody.
       provide filename and charset in mime attachments.
       only rename mailboxes named mbox* not mbox*.
       
       Diffstat:
         M src/cmd/upas/nfs/fs.c               |       6 +++++-
         M src/cmd/upas/nfs/imap.c             |      12 +++++++++++-
       
       2 files changed, 16 insertions(+), 2 deletions(-)
       ---
   DIR diff --git a/src/cmd/upas/nfs/fs.c b/src/cmd/upas/nfs/fs.c
       t@@ -55,6 +55,7 @@ enum
                Qdesc,
                Qencoding,        /* only here temporarily! */
                Qcharset,
       +        Qfilename,
                Qraw,
                Qrawheader,
                Qrawbody,
       t@@ -69,7 +70,6 @@ enum
                Qheader,
                Qdigest,
                Qdisposition,
       -        Qfilename,
                Qflags,
                Qinfo,
                Qrawunix,
       t@@ -488,6 +488,7 @@ filedata(int type, Box *box, Msg *msg, Part *part, char **pp, int *len, int *fre
                case Qdesc:
                case Qencoding:
                case Qcharset:
       +        case Qfilename:
                case Qraw:
                case Qrawheader:
                case Qrawbody:
       t@@ -772,6 +773,7 @@ boxgen(int i, Dir *d, void *aux)
                i--;
                if(i == 0)
                        return filldir(d, Qsearch, box, nil, nil);
       +        i--;
                if(i < box->nsub)
                        return filldir(d, Qbox, box->sub[i], nil, nil);
                i -= box->nsub;
       t@@ -798,6 +800,8 @@ static int mimemsgdir[] = {
        static int mimedir[] = {
                Qtype,
                Qbody,
       +        Qfilename,
       +        Qcharset,
                Qmimeheader,
                Qraw
        };
   DIR diff --git a/src/cmd/upas/nfs/imap.c b/src/cmd/upas/nfs/imap.c
       t@@ -1201,6 +1201,14 @@ unexpected(Imap *z, Sx *sx)
                }
        }
        
       +static int
       +alldollars(char *s)
       +{
       +        for(; *s; s++)
       +                if(*s != '$')
       +                        return 0;
       +        return 1;
       +}
        
        static void
        xlist(Imap *z, Sx *sx)
       t@@ -1220,7 +1228,7 @@ xlist(Imap *z, Sx *sx)
                 * Rename any existing mbox by appending a $.
                 */
                inbox = 0;
       -        if(strncmp(s, "mbox", 4) == 0){
       +        if(strncmp(s, "mbox", 4) == 0 && alldollars(s+4)){
                        t = emalloc(strlen(s)+2);
                        strcpy(t, s);
                        strcat(t, "$");
       t@@ -1588,6 +1596,7 @@ xmsgbodydata(Msg *msg, Sx *k, Sx *v)
                /* now name is something like 1 or 3.2.MIME - walk down parts from root */
                part = msg->part[0];
        
       +
                while('1' <= name[0] && name[0] <= '9'){
                        i = strtol(name, &p, 10);
                        if(*p == '.')
       t@@ -1603,6 +1612,7 @@ xmsgbodydata(Msg *msg, Sx *k, Sx *v)
                        name = p;
                }
        
       +
                if(cistrcmp(name, "") == 0){
                        free(part->raw);
                        part->raw = nstring(v);