Lines Matching refs:vc_sel
46 } vc_sel = {
47 .lock = __MUTEX_INITIALIZER(vc_sel.lock),
57 invert_screen(vc_sel.cons, s, e-s+2, true);
63 complement_pos(vc_sel.cons, where);
70 return screen_glyph_unicode(vc_sel.cons, n / 2);
71 return inverse_translate(vc_sel.cons, screen_glyph(vc_sel.cons, n), 0);
83 if (vc_sel.start != -1) {
84 highlight(vc_sel.start, vc_sel.end);
85 vc_sel.start = -1;
92 return vc == vc_sel.cons;
195 bp = kmalloc_array((vc_sel.end - vc_sel.start) / 2 + 1, unicode ? 4 : 1,
202 kfree(vc_sel.buffer);
203 vc_sel.buffer = bp;
206 for (i = vc_sel.start; i <= vc_sel.end; i += 2) {
224 vc_sel.buf_len = bp - vc_sel.buffer;
287 if (vc_sel.start == -1) /* no current selection */
289 else if (new_sel_start == vc_sel.start)
291 if (new_sel_end == vc_sel.end) /* no action required */
293 else if (new_sel_end > vc_sel.end) /* extend to right */
294 highlight(vc_sel.end + 2, new_sel_end);
296 highlight(new_sel_end + 2, vc_sel.end);
298 else if (new_sel_end == vc_sel.end)
300 if (new_sel_start < vc_sel.start) /* extend to left */
301 highlight(new_sel_start, vc_sel.start - 2);
303 highlight(vc_sel.start, new_sel_start - 2);
310 vc_sel.start = new_sel_start;
311 vc_sel.end = new_sel_end;
342 if (ps > pe) /* make vc_sel.start <= vc_sel.end */
345 if (vc_sel.cons != vc) {
347 vc_sel.cons = vc;
357 mutex_lock(&vc_sel.lock);
361 mutex_unlock(&vc_sel.lock);
393 mutex_lock(&vc_sel.lock);
394 while (vc_sel.buffer && vc_sel.buf_len > pasted) {
401 mutex_unlock(&vc_sel.lock);
403 mutex_lock(&vc_sel.lock);
407 count = vc_sel.buf_len - pasted;
408 count = tty_ldisc_receive_buf(ld, vc_sel.buffer + pasted, NULL,
412 mutex_unlock(&vc_sel.lock);