Blame


1 9f1fdc12 2005-10-29 devnull #include <u.h>
2 9f1fdc12 2005-10-29 devnull #include <libc.h>
3 9f1fdc12 2005-10-29 devnull #include <bio.h>
4 9f1fdc12 2005-10-29 devnull #include <thread.h>
5 9f1fdc12 2005-10-29 devnull #include <plumb.h>
6 9f1fdc12 2005-10-29 devnull #include <9pclient.h>
7 9f1fdc12 2005-10-29 devnull #include "dat.h"
8 9f1fdc12 2005-10-29 devnull
9 9f1fdc12 2005-10-29 devnull void*
10 9f1fdc12 2005-10-29 devnull emalloc(uint n)
11 9f1fdc12 2005-10-29 devnull {
12 9f1fdc12 2005-10-29 devnull void *p;
13 9f1fdc12 2005-10-29 devnull
14 9f1fdc12 2005-10-29 devnull p = malloc(n);
15 9f1fdc12 2005-10-29 devnull if(p == nil)
16 9f1fdc12 2005-10-29 devnull error("can't malloc: %r");
17 9f1fdc12 2005-10-29 devnull memset(p, 0, n);
18 9f1fdc12 2005-10-29 devnull setmalloctag(p, getcallerpc(&n));
19 9f1fdc12 2005-10-29 devnull return p;
20 9f1fdc12 2005-10-29 devnull }
21 9f1fdc12 2005-10-29 devnull
22 9f1fdc12 2005-10-29 devnull void*
23 9f1fdc12 2005-10-29 devnull erealloc(void *p, uint n)
24 9f1fdc12 2005-10-29 devnull {
25 9f1fdc12 2005-10-29 devnull p = realloc(p, n);
26 9f1fdc12 2005-10-29 devnull if(p == nil)
27 9f1fdc12 2005-10-29 devnull error("can't realloc: %r");
28 9f1fdc12 2005-10-29 devnull setmalloctag(p, getcallerpc(&n));
29 9f1fdc12 2005-10-29 devnull return p;
30 9f1fdc12 2005-10-29 devnull }
31 9f1fdc12 2005-10-29 devnull
32 9f1fdc12 2005-10-29 devnull char*
33 9f1fdc12 2005-10-29 devnull estrdup(char *s)
34 9f1fdc12 2005-10-29 devnull {
35 9f1fdc12 2005-10-29 devnull char *t;
36 9f1fdc12 2005-10-29 devnull
37 9f1fdc12 2005-10-29 devnull t = emalloc(strlen(s)+1);
38 9f1fdc12 2005-10-29 devnull strcpy(t, s);
39 9f1fdc12 2005-10-29 devnull return t;
40 9f1fdc12 2005-10-29 devnull }
41 9f1fdc12 2005-10-29 devnull
42 9f1fdc12 2005-10-29 devnull char*
43 9f1fdc12 2005-10-29 devnull estrstrdup(char *s, char *t)
44 9f1fdc12 2005-10-29 devnull {
45 9f1fdc12 2005-10-29 devnull char *u;
46 9f1fdc12 2005-10-29 devnull
47 9f1fdc12 2005-10-29 devnull u = emalloc(strlen(s)+strlen(t)+1);
48 9f1fdc12 2005-10-29 devnull strcpy(u, s);
49 9f1fdc12 2005-10-29 devnull strcat(u, t);
50 9f1fdc12 2005-10-29 devnull return u;
51 9f1fdc12 2005-10-29 devnull }
52 9f1fdc12 2005-10-29 devnull
53 9f1fdc12 2005-10-29 devnull char*
54 9f1fdc12 2005-10-29 devnull eappend(char *s, char *sep, char *t)
55 9f1fdc12 2005-10-29 devnull {
56 9f1fdc12 2005-10-29 devnull char *u;
57 9f1fdc12 2005-10-29 devnull
58 9f1fdc12 2005-10-29 devnull if(t == nil)
59 9f1fdc12 2005-10-29 devnull u = estrstrdup(s, sep);
60 9f1fdc12 2005-10-29 devnull else{
61 9f1fdc12 2005-10-29 devnull u = emalloc(strlen(s)+strlen(sep)+strlen(t)+1);
62 9f1fdc12 2005-10-29 devnull strcpy(u, s);
63 9f1fdc12 2005-10-29 devnull strcat(u, sep);
64 9f1fdc12 2005-10-29 devnull strcat(u, t);
65 9f1fdc12 2005-10-29 devnull }
66 9f1fdc12 2005-10-29 devnull free(s);
67 9f1fdc12 2005-10-29 devnull return u;
68 9f1fdc12 2005-10-29 devnull }
69 9f1fdc12 2005-10-29 devnull
70 9f1fdc12 2005-10-29 devnull char*
71 9f1fdc12 2005-10-29 devnull egrow(char *s, char *sep, char *t)
72 9f1fdc12 2005-10-29 devnull {
73 9f1fdc12 2005-10-29 devnull s = eappend(s, sep, t);
74 9f1fdc12 2005-10-29 devnull free(t);
75 9f1fdc12 2005-10-29 devnull return s;
76 9f1fdc12 2005-10-29 devnull }
77 9f1fdc12 2005-10-29 devnull
78 9f1fdc12 2005-10-29 devnull void
79 9f1fdc12 2005-10-29 devnull error(char *fmt, ...)
80 9f1fdc12 2005-10-29 devnull {
81 9f1fdc12 2005-10-29 devnull Fmt f;
82 9f1fdc12 2005-10-29 devnull char buf[64];
83 9f1fdc12 2005-10-29 devnull va_list arg;
84 9f1fdc12 2005-10-29 devnull
85 9f1fdc12 2005-10-29 devnull fmtfdinit(&f, 2, buf, sizeof buf);
86 9f1fdc12 2005-10-29 devnull fmtprint(&f, "Mail: ");
87 9f1fdc12 2005-10-29 devnull va_start(arg, fmt);
88 9f1fdc12 2005-10-29 devnull fmtvprint(&f, fmt, arg);
89 9f1fdc12 2005-10-29 devnull va_end(arg);
90 9f1fdc12 2005-10-29 devnull fmtprint(&f, "\n");
91 9f1fdc12 2005-10-29 devnull fmtfdflush(&f);
92 9f1fdc12 2005-10-29 devnull threadexitsall(fmt);
93 9f1fdc12 2005-10-29 devnull }
94 9f1fdc12 2005-10-29 devnull
95 9f1fdc12 2005-10-29 devnull void
96 3f8c36d6 2006-02-09 devnull ctlprint(CFid *fd, char *fmt, ...)
97 9f1fdc12 2005-10-29 devnull {
98 9f1fdc12 2005-10-29 devnull int n;
99 9f1fdc12 2005-10-29 devnull va_list arg;
100 9f1fdc12 2005-10-29 devnull
101 9f1fdc12 2005-10-29 devnull va_start(arg, fmt);
102 3f8c36d6 2006-02-09 devnull n = fsvprint(fd, fmt, arg);
103 9f1fdc12 2005-10-29 devnull va_end(arg);
104 9f1fdc12 2005-10-29 devnull if(n <= 0)
105 9f1fdc12 2005-10-29 devnull error("control file write error: %r");
106 9f1fdc12 2005-10-29 devnull }
107 9f1fdc12 2005-10-29 devnull