|
|
1.1 root 1: #include "jerq.h"
2: #ifdef SUNTOOLS
3: static char *buffile = "/tmp/muxbuf";
4: #include <sys/file.h>
5: #endif SUNTOOLS
6:
7: typedef struct String{
8: char *s; /* pointer to string */
9: short n; /* number used, no terminal null */
10: short size; /* size of allocated area */
11: } String;
12:
13: getmuxbuf (pmb)
14: String *pmb;
15: {
16: char *ans;
17: int n;
18:
19: #ifdef X11
20: ans = XFetchBytes(dpy, &n);
21: #endif X11
22: #ifdef SUNTOOLS
23: #define BSIZE 4096
24: char buffer[BSIZE];
25: int fd;
26:
27: fd = open(buffile, O_RDONLY);
28: if (fd < 0)
29: return;
30: n = read(fd, buffer, BSIZE);
31: close(fd);
32: if (n < 0)
33: return;
34: ans = buffer;
35: #endif SUNTOOLS
36: if (pmb->size < (n+1)) {
37: pmb->size = n+1;
38: gcalloc(pmb->size, &(pmb->s));
39: }
40: pmb->n = n;
41: strncpy(pmb->s, ans, n+1);
42: #ifdef X11
43: free(ans);
44: #endif X11
45: }
46:
47: setmuxbuf(pmb)
48: String *pmb;
49: {
50: #ifdef X11
51: XStoreBytes(dpy, pmb->s, pmb->n);
52: #endif X11
53: #ifdef SUNTOOLS
54: int fd = open(buffile, O_WRONLY|O_CREAT|O_TRUNC, 0666);
55: if (fd < 0)
56: return;
57: write(fd, pmb->s, pmb->n);
58: close(fd);
59: #endif SUNTOOLS
60: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.