1 fd04aace 2003-11-23 devnull #include <u.h>
2 fd04aace 2003-11-23 devnull #include <libc.h>
4 fd04aace 2003-11-23 devnull static char *modes[] =
16 fd04aace 2003-11-23 devnull static void
17 fd04aace 2003-11-23 devnull rwx(long m, char *s)
19 fd04aace 2003-11-23 devnull strncpy(s, modes[m], 3);
23 fd04aace 2003-11-23 devnull dirmodefmt(Fmt *f)
25 fd04aace 2003-11-23 devnull static char buf[16];
28 fd04aace 2003-11-23 devnull m = va_arg(f->args, ulong);
30 fd04aace 2003-11-23 devnull if(m & DMDIR)
31 fd04aace 2003-11-23 devnull buf[0]='d';
32 fd04aace 2003-11-23 devnull else if(m & DMAPPEND)
33 fd04aace 2003-11-23 devnull buf[0]='a';
34 fd04aace 2003-11-23 devnull else if(m & DMAUTH)
35 fd04aace 2003-11-23 devnull buf[0]='A';
37 fd04aace 2003-11-23 devnull buf[0]='-';
38 fd04aace 2003-11-23 devnull if(m & DMEXCL)
39 fd04aace 2003-11-23 devnull buf[1]='l';
41 fd04aace 2003-11-23 devnull buf[1]='-';
42 fd04aace 2003-11-23 devnull rwx((m>>6)&7, buf+2);
43 fd04aace 2003-11-23 devnull rwx((m>>3)&7, buf+5);
44 fd04aace 2003-11-23 devnull rwx((m>>0)&7, buf+8);
45 fd04aace 2003-11-23 devnull buf[11] = 0;
46 fd04aace 2003-11-23 devnull return fmtstrcpy(f, buf);