1*9a747e4fSDavid du Colombier #include <u.h>
2*9a747e4fSDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier #include <bio.h>
4*9a747e4fSDavid du Colombier #include <String.h>
5*9a747e4fSDavid du Colombier #include <thread.h>
6*9a747e4fSDavid du Colombier #include "wiki.h"
7*9a747e4fSDavid du Colombier
8*9a747e4fSDavid du Colombier /* open, create relative to wiki dir */
9*9a747e4fSDavid du Colombier char *wikidir;
10*9a747e4fSDavid du Colombier
11*9a747e4fSDavid du Colombier static char*
wname(char * s)12*9a747e4fSDavid du Colombier wname(char *s)
13*9a747e4fSDavid du Colombier {
14*9a747e4fSDavid du Colombier char *t;
15*9a747e4fSDavid du Colombier
16*9a747e4fSDavid du Colombier t = emalloc(strlen(wikidir)+1+strlen(s)+1);
17*9a747e4fSDavid du Colombier strcpy(t, wikidir);
18*9a747e4fSDavid du Colombier strcat(t, "/");
19*9a747e4fSDavid du Colombier strcat(t, s);
20*9a747e4fSDavid du Colombier return t;
21*9a747e4fSDavid du Colombier }
22*9a747e4fSDavid du Colombier
23*9a747e4fSDavid du Colombier int
wopen(char * fn,int mode)24*9a747e4fSDavid du Colombier wopen(char *fn, int mode)
25*9a747e4fSDavid du Colombier {
26*9a747e4fSDavid du Colombier int rv;
27*9a747e4fSDavid du Colombier
28*9a747e4fSDavid du Colombier fn = wname(fn);
29*9a747e4fSDavid du Colombier rv = open(fn, mode);
30*9a747e4fSDavid du Colombier free(fn);
31*9a747e4fSDavid du Colombier return rv;
32*9a747e4fSDavid du Colombier }
33*9a747e4fSDavid du Colombier
34*9a747e4fSDavid du Colombier int
wcreate(char * fn,int mode,long perm)35*9a747e4fSDavid du Colombier wcreate(char *fn, int mode, long perm)
36*9a747e4fSDavid du Colombier {
37*9a747e4fSDavid du Colombier int rv;
38*9a747e4fSDavid du Colombier
39*9a747e4fSDavid du Colombier fn = wname(fn);
40*9a747e4fSDavid du Colombier rv = create(fn, mode, perm);
41*9a747e4fSDavid du Colombier free(fn);
42*9a747e4fSDavid du Colombier return rv;
43*9a747e4fSDavid du Colombier }
44*9a747e4fSDavid du Colombier
45*9a747e4fSDavid du Colombier Biobuf*
wBopen(char * fn,int mode)46*9a747e4fSDavid du Colombier wBopen(char *fn, int mode)
47*9a747e4fSDavid du Colombier {
48*9a747e4fSDavid du Colombier Biobuf *rv;
49*9a747e4fSDavid du Colombier
50*9a747e4fSDavid du Colombier fn = wname(fn);
51*9a747e4fSDavid du Colombier rv = Bopen(fn, mode);
52*9a747e4fSDavid du Colombier free(fn);
53*9a747e4fSDavid du Colombier return rv;
54*9a747e4fSDavid du Colombier }
55*9a747e4fSDavid du Colombier
56*9a747e4fSDavid du Colombier int
waccess(char * fn,int mode)57*9a747e4fSDavid du Colombier waccess(char *fn, int mode)
58*9a747e4fSDavid du Colombier {
59*9a747e4fSDavid du Colombier int rv;
60*9a747e4fSDavid du Colombier
61*9a747e4fSDavid du Colombier fn = wname(fn);
62*9a747e4fSDavid du Colombier rv = access(fn, mode);
63*9a747e4fSDavid du Colombier free(fn);
64*9a747e4fSDavid du Colombier return rv;
65*9a747e4fSDavid du Colombier }
66*9a747e4fSDavid du Colombier
67*9a747e4fSDavid du Colombier Dir*
wdirstat(char * fn)68*9a747e4fSDavid du Colombier wdirstat(char *fn)
69*9a747e4fSDavid du Colombier {
70*9a747e4fSDavid du Colombier Dir *d;
71*9a747e4fSDavid du Colombier
72*9a747e4fSDavid du Colombier fn = wname(fn);
73*9a747e4fSDavid du Colombier d = dirstat(fn);
74*9a747e4fSDavid du Colombier free(fn);
75*9a747e4fSDavid du Colombier return d;
76*9a747e4fSDavid du Colombier }
77