[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/casefiddle.c,v
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/src/casefiddle.c,v |
Date: |
Tue, 12 Feb 2008 21:25:47 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Stefan Monnier <monnier> 08/02/12 21:25:46
Index: casefiddle.c
===================================================================
RCS file: /sources/emacs/emacs/src/casefiddle.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -b -r1.62 -r1.63
--- casefiddle.c 1 Feb 2008 16:00:54 -0000 1.62
+++ casefiddle.c 12 Feb 2008 21:25:45 -0000 1.63
@@ -179,11 +179,11 @@
register int c;
register int inword = flag == CASE_DOWN;
register int multibyte = !NILP (current_buffer->enable_multibyte_characters);
- int start, end;
- int start_byte, end_byte;
- int changed = 0;
- int opoint = PT;
- int opoint_byte = PT_BYTE;
+ EMACS_INT start, end;
+ EMACS_INT start_byte, end_byte;
+ EMACS_INT first = -1, last; /* Position of first and last changes. */
+ EMACS_INT opoint = PT;
+ EMACS_INT opoint_byte = PT_BYTE;
if (EQ (b, e))
/* Not modifying because nothing marked */
@@ -226,7 +226,10 @@
inword = ((SYNTAX (c) == Sword) && (inword || !SYNTAX_PREFIX (c)));
if (c != c2)
{
- changed = 1;
+ last = start;
+ if (first < 0)
+ first = start;
+
if (! multibyte)
{
MAKE_CHAR_UNIBYTE (c);
@@ -266,11 +269,10 @@
if (PT != opoint)
TEMP_SET_PT_BOTH (opoint, opoint_byte);
- if (changed)
+ if (first >= 0)
{
- start = XFASTINT (b);
- signal_after_change (start, end - start, end - start);
- update_compositions (start, end, CHECK_ALL);
+ signal_after_change (first, last + 1 - first, last + 1 - first);
+ update_compositions (first, last + 1, CHECK_ALL);
}
}