diff options
-rw-r--r-- | src/term.c | 25 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 21 insertions, 6 deletions
diff --git a/src/term.c b/src/term.c index b9af73101..7ff5af6dc 100644 --- a/src/term.c +++ b/src/term.c @@ -5031,12 +5031,25 @@ check_termcode( * Compute the time elapsed since the previous mouse click. */ gettimeofday(&mouse_time, NULL); - timediff = (mouse_time.tv_usec - - orig_mouse_time.tv_usec) / 1000; - if (timediff < 0) - --orig_mouse_time.tv_sec; - timediff += (mouse_time.tv_sec - - orig_mouse_time.tv_sec) * 1000; + if (orig_mouse_time.tv_sec == 0) + { + /* + * Avoid computing the difference between mouse_time + * and orig_mouse_time for the first click, as the + * difference would be huge and would cause multiplication + * overflow. + */ + timediff = p_mouset; + } + else + { + timediff = (mouse_time.tv_usec + - orig_mouse_time.tv_usec) / 1000; + if (timediff < 0) + --orig_mouse_time.tv_sec; + timediff += (mouse_time.tv_sec + - orig_mouse_time.tv_sec) * 1000; + } orig_mouse_time = mouse_time; if (mouse_code == orig_mouse_code && timediff < p_mouset diff --git a/src/version.c b/src/version.c index 898ad79ad..20267a7f1 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1846, +/**/ 1845, /**/ 1844, |