ref: d998b7013538f1bc31a933be0d35e10bf6d89b1e
parent: 70127e3c49ebbced48fe2195c646904cd6a21dfb
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Fri Mar 28 09:32:35 EDT 2025
sam: include delimiter-pair when extending selection
--- a/sys/src/cmd/sam/moveto.c
+++ b/sys/src/cmd/sam/moveto.c
@@ -142,12 +142,27 @@
void
stretchsel(File *f, Posn p1, int mode)
{
- int c, i;
- Rune *r, *l;
+ int c, i, lc, rc;
+ Rune *r, *l, *x;
Posn p;
if(p1 > f->nc)
return;
+ if(mode){
+ lc = f->dot.r.p1 > 0 ? filereadc(f, f->dot.r.p1-1) : '\n';
+ rc = f->dot.r.p2 < f->nc ? filereadc(f, f->dot.r.p2) : '\n';
+ for(i=0; left[i]; i++){
+ l = left[i];
+ r = right[i];
+ x = strrune(l, lc);
+ if(x && r[x-l] == rc){
+ f->dot.r.p1 -= lc != '\n';
+ f->dot.r.p2++;
+ return;
+ }
+ }
+ }
+
f->dot.r.p1 = f->dot.r.p2 = p1;
for(i=0; left[i]; i++){
l = left[i];
--
⑨