diff options
| author | Karoly Lorentey | 2006-02-06 18:44:57 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2006-02-06 18:44:57 +0000 |
| commit | a5805c9d0240fab504f2a3e32db6449392005fb6 (patch) | |
| tree | a6eba3e018d5edf0f33476dcf5d2f2ac50983307 /src | |
| parent | fbb63435176d3614d3603b675784122bf50d22b1 (diff) | |
| parent | 55495ab90ed2afd64f757e55f697d716a7c7b75c (diff) | |
| download | emacs-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/ChangeLog | 21 | ||||
| -rw-r--r-- | src/editfns.c | 3 | ||||
| -rw-r--r-- | src/lisp.h | 6 | ||||
| -rw-r--r-- | src/xdisp.c | 29 | ||||
| -rw-r--r-- | src/xrdb.c | 4 |
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 @@ | |||
| 1 | 2006-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 | |||
| 11 | 2006-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 | |||
| 1 | 2006-02-02 Kenichi Handa <handa@m17n.org> | 22 | 2006-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 | ||
| 5322 | static struct frame *last_escape_glyph_frame = NULL; | ||
| 5323 | static unsigned last_escape_glyph_face_id = (1 << FACE_ID_BITS); | ||
| 5324 | static int last_escape_glyph_merged_face_id = 0; | ||
| 5325 | |||
| 5322 | int | 5326 | int |
| 5323 | get_next_display_element (it) | 5327 | get_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 |