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