mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-11 00:30:17 -08:00
Merge branch 'feature/fix-the-long-lines-display-bug'
This commit is contained in:
commit
616da8fa8e
16 changed files with 167 additions and 112 deletions
12
src/lisp.h
12
src/lisp.h
|
|
@ -3911,10 +3911,14 @@ integer_to_uintmax (Lisp_Object num, uintmax_t *n)
|
|||
typedef intmax_t modiff_count;
|
||||
|
||||
INLINE modiff_count
|
||||
modiff_incr (modiff_count *a)
|
||||
modiff_incr (modiff_count *a, ptrdiff_t len)
|
||||
{
|
||||
modiff_count a0 = *a;
|
||||
bool modiff_overflow = INT_ADD_WRAPV (a0, 1, a);
|
||||
modiff_count a0 = *a; int incr = len ? 1 : 0;
|
||||
/* Increase the counter more for a large modification and less for a
|
||||
small modification. Increase it logarithmically to avoid
|
||||
increasing it too much. */
|
||||
while (len >>= 1) incr++;
|
||||
bool modiff_overflow = INT_ADD_WRAPV (a0, incr, a);
|
||||
eassert (!modiff_overflow && *a >> 30 >> 30 == 0);
|
||||
return a0;
|
||||
}
|
||||
|
|
@ -4762,6 +4766,8 @@ extern ptrdiff_t fast_c_string_match_ignore_case (Lisp_Object, const char *,
|
|||
ptrdiff_t);
|
||||
extern ptrdiff_t fast_looking_at (Lisp_Object, ptrdiff_t, ptrdiff_t,
|
||||
ptrdiff_t, ptrdiff_t, Lisp_Object);
|
||||
extern ptrdiff_t find_newline1 (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t,
|
||||
ptrdiff_t, ptrdiff_t *, ptrdiff_t *, bool);
|
||||
extern ptrdiff_t find_newline (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t,
|
||||
ptrdiff_t, ptrdiff_t *, ptrdiff_t *, bool);
|
||||
extern void scan_newline (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue