diff options
| author | Glenn Morris | 2011-01-24 19:47:47 -0800 |
|---|---|---|
| committer | Glenn Morris | 2011-01-24 19:47:47 -0800 |
| commit | 06d8ace51597cd41e110560a56a1abeb6cce23d6 (patch) | |
| tree | e893bab169f27821637fc07e3cd2414b4b9b7b68 /src | |
| parent | c5ecc7690d4afafb42049634d64abd781ff76642 (diff) | |
| parent | 0d19d4feaa653a315853716e64bbaddb210a26ca (diff) | |
| download | emacs-06d8ace51597cd41e110560a56a1abeb6cce23d6.tar.gz emacs-06d8ace51597cd41e110560a56a1abeb6cce23d6.zip | |
Merge from emacs-23.
Note setting of CANNOT_DUMP on ia64 hpux is still to be merged manually.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 10 | ||||
| -rw-r--r-- | src/lisp.h | 31 | ||||
| -rw-r--r-- | src/xdisp.c | 9 |
3 files changed, 33 insertions, 17 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 134e289681c..3776682c692 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2011-01-25 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * xdisp.c (handle_fontified_prop): Be careful with font-lock changing | ||
| 4 | the buffer's point-max (bug#7876). | ||
| 5 | |||
| 6 | 2011-01-25 Chong Yidong <cyd@stupidchicken.com> | ||
| 7 | |||
| 8 | * lisp.h (XPNTR): Obey DATA_SEG_BITS in all non-USE_LSB_TAG cases. | ||
| 9 | Remove unused case (Bug#6811). | ||
| 10 | |||
| 1 | 2011-01-23 Jan Djärv <jan.h.d@swipnet.se> | 11 | 2011-01-23 Jan Djärv <jan.h.d@swipnet.se> |
| 2 | 12 | ||
| 3 | * nsterm.m (x_set_offset): Set dont_constrain to 0 so the call to | 13 | * nsterm.m (x_set_offset): Set dont_constrain to 0 so the call to |
diff --git a/src/lisp.h b/src/lisp.h index 64c0b2332e3..c5c047a53cb 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -444,7 +444,13 @@ enum pvec_type | |||
| 444 | ((var) = ((EMACS_INT) ((EMACS_UINT) (type) << VALBITS) \ | 444 | ((var) = ((EMACS_INT) ((EMACS_UINT) (type) << VALBITS) \ |
| 445 | + ((EMACS_INT) (ptr) & VALMASK))) | 445 | + ((EMACS_INT) (ptr) & VALMASK))) |
| 446 | 446 | ||
| 447 | #ifdef DATA_SEG_BITS | ||
| 448 | /* DATA_SEG_BITS forces extra bits to be or'd in with any pointers | ||
| 449 | which were stored in a Lisp_Object */ | ||
| 450 | #define XPNTR(a) ((EMACS_UINT) (((a) & VALMASK) | DATA_SEG_BITS)) | ||
| 451 | #else | ||
| 447 | #define XPNTR(a) ((EMACS_UINT) ((a) & VALMASK)) | 452 | #define XPNTR(a) ((EMACS_UINT) ((a) & VALMASK)) |
| 453 | #endif | ||
| 448 | 454 | ||
| 449 | #endif /* not USE_LSB_TAG */ | 455 | #endif /* not USE_LSB_TAG */ |
| 450 | 456 | ||
| @@ -482,6 +488,14 @@ enum pvec_type | |||
| 482 | # define XSET(var, vartype, ptr) \ | 488 | # define XSET(var, vartype, ptr) \ |
| 483 | (((var).s.val = ((EMACS_INT) (ptr))), ((var).s.type = ((char) (vartype)))) | 489 | (((var).s.val = ((EMACS_INT) (ptr))), ((var).s.type = ((char) (vartype)))) |
| 484 | 490 | ||
| 491 | #ifdef DATA_SEG_BITS | ||
| 492 | /* DATA_SEG_BITS forces extra bits to be or'd in with any pointers | ||
| 493 | which were stored in a Lisp_Object */ | ||
| 494 | #define XPNTR(a) (XUINT (a) | DATA_SEG_BITS) | ||
| 495 | #else | ||
| 496 | #define XPNTR(a) ((EMACS_INT) XUINT (a)) | ||
| 497 | #endif | ||
| 498 | |||
| 485 | #endif /* !USE_LSB_TAG */ | 499 | #endif /* !USE_LSB_TAG */ |
| 486 | 500 | ||
| 487 | #if __GNUC__ >= 2 && defined (__OPTIMIZE__) | 501 | #if __GNUC__ >= 2 && defined (__OPTIMIZE__) |
| @@ -503,23 +517,6 @@ extern Lisp_Object make_number (EMACS_INT); | |||
| 503 | 517 | ||
| 504 | #define EQ(x, y) (XHASH (x) == XHASH (y)) | 518 | #define EQ(x, y) (XHASH (x) == XHASH (y)) |
| 505 | 519 | ||
| 506 | #ifndef XPNTR | ||
| 507 | #ifdef DATA_SEG_BITS | ||
| 508 | /* This case is used for the rt-pc. | ||
| 509 | In the diffs I was given, it checked for ptr = 0 | ||
| 510 | and did not adjust it in that case. | ||
| 511 | But I don't think that zero should ever be found | ||
| 512 | in a Lisp object whose data type says it points to something. */ | ||
| 513 | #define XPNTR(a) (XUINT (a) | DATA_SEG_BITS) | ||
| 514 | #else | ||
| 515 | /* Some versions of gcc seem to consider the bitfield width when | ||
| 516 | issuing the "cast to pointer from integer of different size" | ||
| 517 | warning, so the cast is here to widen the value back to its natural | ||
| 518 | size. */ | ||
| 519 | #define XPNTR(a) ((EMACS_INT) XUINT (a)) | ||
| 520 | #endif | ||
| 521 | #endif /* no XPNTR */ | ||
| 522 | |||
| 523 | /* Largest and smallest representable fixnum values. These are the C | 520 | /* Largest and smallest representable fixnum values. These are the C |
| 524 | values. */ | 521 | values. */ |
| 525 | 522 | ||
diff --git a/src/xdisp.c b/src/xdisp.c index 4d0ff88f9a3..09a3cae5754 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -3173,6 +3173,8 @@ handle_fontified_prop (struct it *it) | |||
| 3173 | val = Vfontification_functions; | 3173 | val = Vfontification_functions; |
| 3174 | specbind (Qfontification_functions, Qnil); | 3174 | specbind (Qfontification_functions, Qnil); |
| 3175 | 3175 | ||
| 3176 | xassert (it->end_charpos == ZV); | ||
| 3177 | |||
| 3176 | if (!CONSP (val) || EQ (XCAR (val), Qlambda)) | 3178 | if (!CONSP (val) || EQ (XCAR (val), Qlambda)) |
| 3177 | safe_call1 (val, pos); | 3179 | safe_call1 (val, pos); |
| 3178 | else | 3180 | else |
| @@ -3212,6 +3214,13 @@ handle_fontified_prop (struct it *it) | |||
| 3212 | 3214 | ||
| 3213 | unbind_to (count, Qnil); | 3215 | unbind_to (count, Qnil); |
| 3214 | 3216 | ||
| 3217 | /* The fontification code may have added/removed text. | ||
| 3218 | It could do even a lot worse, but let's at least protect against | ||
| 3219 | the most obvious case where only the text past `pos' gets changed', | ||
| 3220 | as is/was done in grep.el where some escapes sequences are turned | ||
| 3221 | into face properties (bug#7876). */ | ||
| 3222 | it->end_charpos = ZV; | ||
| 3223 | |||
| 3215 | /* Return HANDLED_RECOMPUTE_PROPS only if function fontified | 3224 | /* Return HANDLED_RECOMPUTE_PROPS only if function fontified |
| 3216 | something. This avoids an endless loop if they failed to | 3225 | something. This avoids an endless loop if they failed to |
| 3217 | fontify the text for which reason ever. */ | 3226 | fontify the text for which reason ever. */ |