From 3fd51250be8cd6f6ac5df5342d3b81e6ed1c01a9 Mon Sep 17 00:00:00 2001 From: rsc Date: Mon, 7 Nov 2005 01:51:11 +0000 Subject: fix snarf --- src/cmd/9term/9term.c | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'src/cmd/9term/9term.c') diff --git a/src/cmd/9term/9term.c b/src/cmd/9term/9term.c index 9d1fa1d1..e62330a3 100644 --- a/src/cmd/9term/9term.c +++ b/src/cmd/9term/9term.c @@ -322,7 +322,7 @@ button2menu(Window *w) break; case Paste: - //XXX getsnarf(); + riogetsnarf(); wpaste(w); wscrdraw(w); break; @@ -332,7 +332,7 @@ button2menu(Window *w) break; case Send: - //XXX getsnarf(); + riogetsnarf(); wsnarf(w); if(nsnarf == 0) break; @@ -505,3 +505,31 @@ rcinputproc(void *arg) } } +void +rioputsnarf(void) +{ + char *s; + + s = smprint("%.*S", nsnarf, snarf); + if(s){ + putsnarf(s); + free(s); + } +} + +void +riogetsnarf(void) +{ + char *s; + int n, nb, nulls; + +fprint(2, "getsnarf\n"); + s = getsnarf(); + if(s == nil) + return; + n = strlen(s)+1; + free(snarf); + snarf = runemalloc(n); + cvttorunes(s, n, snarf, &nb, &nsnarf, &nulls); + free(s); +} -- cgit v1.2.3