summaryrefslogtreecommitdiff
path: root/sys/src
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2020-05-07 23:28:55 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2020-05-07 23:28:55 +0200
commit2c3e60d95b0beafa25845b401ed9996ebe8100fb (patch)
treeceb82406df077209c5e85ef5a0c66b4c24498000 /sys/src
parent04066fe973c628476fbe9eb65bf62a67334987f7 (diff)
parentec4011acf78e176c226d69d355c3996dc3a1062c (diff)
merge
Diffstat (limited to 'sys/src')
-rw-r--r--sys/src/cmd/acme/text.c8
-rw-r--r--sys/src/cmd/aux/getflags.c35
-rw-r--r--sys/src/cmd/aux/usage.c7
-rw-r--r--sys/src/cmd/rio/wind.c6
4 files changed, 43 insertions, 13 deletions
diff --git a/sys/src/cmd/acme/text.c b/sys/src/cmd/acme/text.c
index 9611a2e4b..ebbc5dcfd 100644
--- a/sys/src/cmd/acme/text.c
+++ b/sys/src/cmd/acme/text.c
@@ -868,7 +868,8 @@ textcommit(Text *t, int tofile)
static Text *clicktext;
static uint clickmsec;
-static int clickcount;
+static int clickcount;
+static Point clickpt;
static Text *selecttext;
static uint selectq;
@@ -927,9 +928,12 @@ textselect(Text *t)
b = mouse->buttons;
q0 = t->q0;
q1 = t->q1;
+ dx = abs(clickpt.x - mouse->xy.x);
+ dy = abs(clickpt.y - mouse->xy.y);
+ clickpt = mouse->xy;
selectq = t->org+frcharofpt(t, mouse->xy);
clickcount++;
- if(mouse->msec-clickmsec >= 500 || selecttext != t || clickcount > 3)
+ if(mouse->msec-clickmsec >= 500 || selecttext != t || clickcount > 3 || dx > 3 || dy > 3)
clickcount = 0;
if(clickcount >= 1 && selecttext==t && mouse->msec-clickmsec < 500){
textstretchsel(t, selectq, &q0, &q1, clickcount);
diff --git a/sys/src/cmd/aux/getflags.c b/sys/src/cmd/aux/getflags.c
index 880f0dc38..f4d97271b 100644
--- a/sys/src/cmd/aux/getflags.c
+++ b/sys/src/cmd/aux/getflags.c
@@ -10,17 +10,38 @@ usage(void)
}
char*
+skipspace(char *p)
+{
+ while(isspace(*p))
+ p++;
+ return p;
+}
+
+char*
+nextarg(char *p)
+{
+ char *s;
+
+ s = strchr(p, ',');
+ if(s == nil)
+ return p+strlen(p); /* to \0 */
+ while(*s == ',' || isspace(*s))
+ s++;
+ return s;
+}
+
+char*
findarg(char *flags, Rune r)
{
char *p;
Rune rr;
-
- for(p=flags; p!=(char*)1; p=strchr(p, ',')+1){
+
+ for(p=skipspace(flags); *p; p=nextarg(p)){
chartorune(&rr, p);
if(rr == r)
return p;
}
- return nil;
+ return nil;
}
char*
@@ -44,10 +65,8 @@ countargs(char *p)
int n;
n = 1;
- while(*p == ' ')
- p++;
- for(; *p && *p != ','; p++)
- if(*p == ' ' && *(p-1) != ' ')
+ for(p=skipspace(p); *p && *p != ','; p++)
+ if(isspace(*p) && !isspace(*(p-1)))
n++;
return n;
}
@@ -71,7 +90,7 @@ main(int argc, char *argv[])
}
fmtfdinit(&fmt, 1, buf, sizeof buf);
- for(p=flags; p!=(char*)1 && *p != 0; p=strchr(p, ',')+1){
+ for(p=skipspace(flags); *p; p=nextarg(p)){
s = e = nil;
if(p[1] == ':'){
s = p + 2;
diff --git a/sys/src/cmd/aux/usage.c b/sys/src/cmd/aux/usage.c
index a2f8c7c2c..fa9d0b1c7 100644
--- a/sys/src/cmd/aux/usage.c
+++ b/sys/src/cmd/aux/usage.c
@@ -1,5 +1,6 @@
#include <u.h>
#include <libc.h>
+#include <ctype.h>
void
main(void)
@@ -30,9 +31,11 @@ main(void)
if(flags[0]){
single = 0;
for(p=flags; *p; ){
+ while(isspace(*p))
+ p++;
p += chartorune(&r, p);
if(*p == ':')
- while(*p != '\0' && *p != ',' && *p != ' ')
+ while(*p && *p != ',' && !isspace(*p))
p++;
if(*p == ',' || *p == 0){
if(!single){
@@ -44,7 +47,7 @@ main(void)
p++;
continue;
}
- while(*p == ' ')
+ while(isspace(*p))
p++;
if(single){
fmtprint(&fmt, "]");
diff --git a/sys/src/cmd/rio/wind.c b/sys/src/cmd/rio/wind.c
index a9cfd248e..2aa3dd715 100644
--- a/sys/src/cmd/rio/wind.c
+++ b/sys/src/cmd/rio/wind.c
@@ -962,6 +962,7 @@ wdelete(Window *w, uint q0, uint q1)
static Window *clickwin;
static uint clickmsec;
+static Point clickpt;
static uint clickcount;
static Window *selectwin;
static uint selectq;
@@ -1018,9 +1019,12 @@ wselect(Window *w)
b = w->mc.buttons;
q0 = w->q0;
q1 = w->q1;
+ dx = abs(clickpt.x - w->mc.xy.x);
+ dy = abs(clickpt.y - w->mc.xy.y);
+ clickpt = w->mc.xy;
selectq = w->org+frcharofpt(w, w->mc.xy);
clickcount++;
- if(w->mc.msec-clickmsec >= 500 || clickwin != w || clickcount > 3)
+ if(w->mc.msec-clickmsec >= 500 || clickwin != w || clickcount > 3 || dx > 3 || dy > 3)
clickcount = 0;
if(clickwin == w && clickcount >= 1 && w->mc.msec-clickmsec < 500){
mode = (clickcount > 2) ? 2 : clickcount;