|
|
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.