aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKaroly Lorentey2006-02-06 18:44:57 +0000
committerKaroly Lorentey2006-02-06 18:44:57 +0000
commita5805c9d0240fab504f2a3e32db6449392005fb6 (patch)
treea6eba3e018d5edf0f33476dcf5d2f2ac50983307 /src
parentfbb63435176d3614d3603b675784122bf50d22b1 (diff)
parent55495ab90ed2afd64f757e55f697d716a7c7b75c (diff)
downloademacs-a5805c9d0240fab504f2a3e32db6449392005fb6.tar.gz
emacs-a5805c9d0240fab504f2a3e32db6449392005fb6.zip
Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-41 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-42 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-43 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-44 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-45 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-46 Merge from erc--emacs--0 * emacs@sv.gnu.org/emacs--devo--0--patch-47 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-48 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-14 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-15 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-16 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-17 Merge from emacs--devo--0 git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-507
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog21
-rw-r--r--src/editfns.c3
-rw-r--r--src/lisp.h6
-rw-r--r--src/xdisp.c29
-rw-r--r--src/xrdb.c4
5 files changed, 59 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 056bb851f4a..166222ae33c 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,24 @@
12006-02-05 Ken Raeburn <raeburn@raeburn.org>
2
3 * editfns.c (Fconstrain_to_field): Fix int/Lisp_Object mixup.
4
5 * lisp.h (XPNTR) [!NO_UNION_TYPE && !HAVE_SHM && !DATA_SEG_BITS]:
6 Cast bitfield value to EMACS_INT, to suppress gcc warning.
7
8 * xrdb.c (malloc, realloc, free) [emacs]: Undefine macros before
9 defining.
10
112006-02-03 Kim F. Storm <storm@cua.dk>
12
13 * xdisp.c: Cache last merged escape glyph face.
14 (last_escape_glyph_frame, last_escape_glyph_face_id)
15 (last_escape_glyph_merged_face_id): New variables.
16 (get_next_display_element): Use/update them.
17 (redisplay_internal): Reset them before redisplay.
18
19 * xdisp.c (set_iterator_to_next): Optimize 2004-12-13 fix.
20 Only recheck faces after displaying ellipsis.
21
12006-02-02 Kenichi Handa <handa@m17n.org> 222006-02-02 Kenichi Handa <handa@m17n.org>
2 23
3 * coding.c (decode_composition_emacs_mule): Fix handling of 24 * coding.c (decode_composition_emacs_mule): Fix handling of
diff --git a/src/editfns.c b/src/editfns.c
index 9be9232a9c7..5bf4eb738ae 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -719,7 +719,8 @@ Field boundaries are not noticed if `inhibit-field-text-motion' is non-nil. */)
719{ 719{
720 /* If non-zero, then the original point, before re-positioning. */ 720 /* If non-zero, then the original point, before re-positioning. */
721 int orig_point = 0; 721 int orig_point = 0;
722 int fwd, prev_old, prev_new; 722 int fwd;
723 Lisp_Object prev_old, prev_new;
723 724
724 if (NILP (new_pos)) 725 if (NILP (new_pos))
725 /* Use the current point, and afterwards, set it. */ 726 /* Use the current point, and afterwards, set it. */
diff --git a/src/lisp.h b/src/lisp.h
index f04d29808d1..66dcdeb00da 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -484,7 +484,11 @@ extern size_t pure_size;
484 in a Lisp object whose data type says it points to something. */ 484 in a Lisp object whose data type says it points to something. */
485#define XPNTR(a) (XUINT (a) | DATA_SEG_BITS) 485#define XPNTR(a) (XUINT (a) | DATA_SEG_BITS)
486#else 486#else
487#define XPNTR(a) XUINT (a) 487/* Some versions of gcc seem to consider the bitfield width when
488 issuing the "cast to pointer from integer of different size"
489 warning, so the cast is here to widen the value back to its natural
490 size. */
491#define XPNTR(a) ((EMACS_INT) XUINT (a))
488#endif 492#endif
489#endif /* not HAVE_SHM */ 493#endif /* not HAVE_SHM */
490#endif /* no XPNTR */ 494#endif /* no XPNTR */
diff --git a/src/xdisp.c b/src/xdisp.c
index 70dc9bd4515..9efa1c60cbc 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5319,6 +5319,10 @@ static int (* get_next_element[NUM_IT_METHODS]) P_ ((struct it *it)) =
5319 display element from the current position of IT. Value is zero if 5319 display element from the current position of IT. Value is zero if
5320 end of buffer (or C string) is reached. */ 5320 end of buffer (or C string) is reached. */
5321 5321
5322static struct frame *last_escape_glyph_frame = NULL;
5323static unsigned last_escape_glyph_face_id = (1 << FACE_ID_BITS);
5324static int last_escape_glyph_merged_face_id = 0;
5325
5322int 5326int
5323get_next_display_element (it) 5327get_next_display_element (it)
5324 struct it *it; 5328 struct it *it;
@@ -5435,11 +5439,19 @@ get_next_display_element (it)
5435 face_id = merge_faces (it->f, Qt, lface_id, 5439 face_id = merge_faces (it->f, Qt, lface_id,
5436 it->face_id); 5440 it->face_id);
5437 } 5441 }
5442 else if (it->f == last_escape_glyph_frame
5443 && it->face_id == last_escape_glyph_face_id)
5444 {
5445 face_id = last_escape_glyph_merged_face_id;
5446 }
5438 else 5447 else
5439 { 5448 {
5440 /* Merge the escape-glyph face into the current face. */ 5449 /* Merge the escape-glyph face into the current face. */
5441 face_id = merge_faces (it->f, Qescape_glyph, 0, 5450 face_id = merge_faces (it->f, Qescape_glyph, 0,
5442 it->face_id); 5451 it->face_id);
5452 last_escape_glyph_frame = it->f;
5453 last_escape_glyph_face_id = it->face_id;
5454 last_escape_glyph_merged_face_id = face_id;
5443 } 5455 }
5444 5456
5445 XSETINT (it->ctl_chars[0], g); 5457 XSETINT (it->ctl_chars[0], g);
@@ -5486,11 +5498,19 @@ get_next_display_element (it)
5486 face_id = merge_faces (it->f, Qt, lface_id, 5498 face_id = merge_faces (it->f, Qt, lface_id,
5487 it->face_id); 5499 it->face_id);
5488 } 5500 }
5501 else if (it->f == last_escape_glyph_frame
5502 && it->face_id == last_escape_glyph_face_id)
5503 {
5504 face_id = last_escape_glyph_merged_face_id;
5505 }
5489 else 5506 else
5490 { 5507 {
5491 /* Merge the escape-glyph face into the current face. */ 5508 /* Merge the escape-glyph face into the current face. */
5492 face_id = merge_faces (it->f, Qescape_glyph, 0, 5509 face_id = merge_faces (it->f, Qescape_glyph, 0,
5493 it->face_id); 5510 it->face_id);
5511 last_escape_glyph_frame = it->f;
5512 last_escape_glyph_face_id = it->face_id;
5513 last_escape_glyph_merged_face_id = face_id;
5494 } 5514 }
5495 5515
5496 /* Handle soft hyphens in the mode where they only get 5516 /* Handle soft hyphens in the mode where they only get
@@ -5684,6 +5704,8 @@ set_iterator_to_next (it, reseat_p)
5684 5704
5685 if (it->dpvec + it->current.dpvec_index == it->dpend) 5705 if (it->dpvec + it->current.dpvec_index == it->dpend)
5686 { 5706 {
5707 int recheck_faces = it->ellipsis_p;
5708
5687 if (it->s) 5709 if (it->s)
5688 it->method = GET_FROM_C_STRING; 5710 it->method = GET_FROM_C_STRING;
5689 else if (STRINGP (it->string)) 5711 else if (STRINGP (it->string))
@@ -5706,8 +5728,9 @@ set_iterator_to_next (it, reseat_p)
5706 set_iterator_to_next (it, reseat_p); 5728 set_iterator_to_next (it, reseat_p);
5707 } 5729 }
5708 5730
5709 /* Recheck faces after display vector */ 5731 /* Maybe recheck faces after display vector */
5710 it->stop_charpos = IT_CHARPOS (*it); 5732 if (recheck_faces)
5733 it->stop_charpos = IT_CHARPOS (*it);
5711 } 5734 }
5712 break; 5735 break;
5713 5736
@@ -10552,6 +10575,8 @@ redisplay_internal (preserve_echo_area)
10552 retry: 10575 retry:
10553 pause = 0; 10576 pause = 0;
10554 reconsider_clip_changes (w, current_buffer); 10577 reconsider_clip_changes (w, current_buffer);
10578 last_escape_glyph_frame = NULL;
10579 last_escape_glyph_face_id = (1 << FACE_ID_BITS);
10555 10580
10556 /* If new fonts have been loaded that make a glyph matrix adjustment 10581 /* If new fonts have been loaded that make a glyph matrix adjustment
10557 necessary, do it. */ 10582 necessary, do it. */
diff --git a/src/xrdb.c b/src/xrdb.c
index 822fb6e2624..0a138687d7b 100644
--- a/src/xrdb.c
+++ b/src/xrdb.c
@@ -88,6 +88,10 @@ extern char *get_system_name ();
88/* Make sure not to #include anything after these definitions. Let's 88/* Make sure not to #include anything after these definitions. Let's
89 not step on anyone's prototypes. */ 89 not step on anyone's prototypes. */
90#ifdef emacs 90#ifdef emacs
91/* darwin.h may have already defined these. */
92#undef malloc
93#undef realloc
94#undef free
91#define malloc xmalloc 95#define malloc xmalloc
92#define realloc xrealloc 96#define realloc xrealloc
93#define free xfree 97#define free xfree