summaryrefslogtreecommitdiff
path: root/client/clipboard/clipboard.go
diff options
context:
space:
mode:
authorcitrons <citrons@mondecitronne.com>2025-06-05 14:56:22 -0500
committercitrons <citrons@mondecitronne.com>2025-06-07 16:02:18 -0500
commitcf78bc0515fa38a6cc570afd7a7e0000bdcda09e (patch)
tree6a72a3ef0f67dde072d0a9010851ee06441041dc /client/clipboard/clipboard.go
parent8352123b5c2c479cea31c991eeebf7868559db29 (diff)
clipboard support
Diffstat (limited to 'client/clipboard/clipboard.go')
-rw-r--r--client/clipboard/clipboard.go19
1 files changed, 13 insertions, 6 deletions
diff --git a/client/clipboard/clipboard.go b/client/clipboard/clipboard.go
index b110378..b81b500 100644
--- a/client/clipboard/clipboard.go
+++ b/client/clipboard/clipboard.go
@@ -1,4 +1,4 @@
-package tui
+package clipboard
import (
"sync"
@@ -12,23 +12,30 @@ type Clipboard interface {
type virtualClipboard string
func (clip *virtualClipboard) Copy(text string) {
- *clip = text
+ *clip = virtualClipboard(text)
}
var ch = make(chan string)
func (clip *virtualClipboard) Paste() <-chan string {
go func() {
- ch <- *clip
+ ch <- string(*clip)
}()
return ch
}
-var clipboard Clipboard = virtualClipboard {}
-var mut RWMutex
+var defaultClipboard virtualClipboard
+var clipboard Clipboard = &defaultClipboard
+var mut sync.RWMutex
-func Get() {
+func Get() Clipboard {
mut.RLock()
c := clipboard
mut.RUnlock()
return c
}
+
+func Set(c Clipboard) {
+ mut.Lock()
+ clipboard = c
+ mut.Unlock()
+}