Mercurial > emacs
changeset 51042:edeae7524de9
(get_pos_property): Don't assume that `object' = nil.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sat, 17 May 2003 18:47:04 +0000 |
parents | 4370ce3fabb3 |
children | ba92da4f009a |
files | src/editfns.c |
diffstat | 1 files changed, 21 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/src/editfns.c Sat May 17 18:46:36 2003 +0000 +++ b/src/editfns.c Sat May 17 18:47:04 2003 +0000 @@ -1,5 +1,5 @@ /* Lisp functions pertaining to editing. - Copyright (C) 1985,86,87,89,93,94,95,96,97,98, 1999, 2000, 2001, 2002 + Copyright (C) 1985,86,87,89,93,94,95,96,97,98, 1999, 2000, 2001, 02, 2003 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -399,19 +399,19 @@ Lisp_Object position, object; register Lisp_Object prop; { - struct window *w = 0; - CHECK_NUMBER_COERCE_MARKER (position); if (NILP (object)) XSETBUFFER (object, current_buffer); - - if (WINDOWP (object)) - { - w = XWINDOW (object); - object = w->buffer; - } - if (BUFFERP (object)) + else if (WINDOWP (object)) + object = XWINDOW (object)->buffer; + + if (!BUFFERP (object)) + /* pos-property only makes sense in buffers right now, since strings + have no overlays and no notion of insertion for which stickiness + could be obeyed. */ + return Fget_text_property (position, prop, object); + else { int posn = XINT (position); int noverlays; @@ -457,18 +457,18 @@ } } + { /* Now check the text-properties. */ + int stickiness = text_property_stickiness (prop, position, object); + if (stickiness > 0) + return Fget_text_property (position, prop, object); + else if (stickiness < 0 + && XINT (position) > BUF_BEGV (XBUFFER (object))) + return Fget_text_property (make_number (XINT (position) - 1), + prop, object); + else + return Qnil; + } } - - { /* Now check the text-properties. */ - int stickiness = text_property_stickiness (prop, position); - if (stickiness > 0) - return Fget_text_property (position, prop, Qnil); - else if (stickiness < 0 && XINT (position) > BEGV) - return Fget_text_property (make_number (XINT (position) - 1), - prop, Qnil); - else - return Qnil; - } } /* Find the field surrounding POS in *BEG and *END. If POS is nil,