@@ -2,7 +2,6 @@ package clipboard
22
33import (
44 "errors"
5-
65 "github.com/zyedidia/clipper"
76)
87
@@ -78,16 +77,27 @@ func Write(text string, r Register) error {
7877 return write (text , r , CurrentMethod )
7978}
8079
81- // ReadMulti reads text from a clipboard register for a certain multi- cursor
82- func ReadMulti (r Register , num , ncursors int ) (string , error ) {
80+ // ReadMulti reads text array from a clipboard register, which can be a multi cursor clipboard
81+ func ReadMulti (r Register ) ([] string , error ) {
8382 clip , err := Read (r )
84- if err != nil {
85- return "" , err
83+ multivalid := false
84+ if err == nil {
85+ multivalid = ValidMulti (r , & clip )
86+ } else {
87+ multivalid = ValidMulti (r , nil )
8688 }
87- if ValidMulti (r , clip , ncursors ) {
88- return multi .getText (r , num ), nil
89+
90+ if ! multivalid {
91+ returnarray := make ([]string , 1 , 1 )
92+ if err == nil {
93+ returnarray [0 ] = clip
94+ } else {
95+ returnarray [0 ] = ""
96+ }
97+ return returnarray , err
8998 }
90- return clip , nil
99+
100+ return multi .getAllText (r ), nil
91101}
92102
93103// WriteMulti writes text to a clipboard register for a certain multi-cursor
@@ -97,13 +107,20 @@ func WriteMulti(text string, r Register, num int, ncursors int) error {
97107
98108// ValidMulti checks if the internal multi-clipboard is valid and up-to-date
99109// with the system clipboard
100- func ValidMulti (r Register , clip string , ncursors int ) bool {
101- return multi .isValid (r , clip , ncursors )
110+ func ValidMulti (r Register , clip * string ) bool {
111+ return multi .isValid (r , clip )
102112}
103113
104114func writeMulti (text string , r Register , num int , ncursors int , m Method ) error {
115+ // Write to multi cursor clipboard
105116 multi .writeText (text , r , num , ncursors )
106- return write (multi .getAllText (r ), r , m )
117+
118+ // Write to normal cliipboard
119+ multitext := multi .getAllTextConcated (r )
120+ if multitext == "" {
121+ return write ("" , r , m )
122+ }
123+ return write (multitext , r , m )
107124}
108125
109126func read (r Register , m Method ) (string , error ) {
0 commit comments