# HG changeset patch # User Stefan Monnier # Date 1053197224 0 # Node ID edeae7524de916bdb9ef9d1a5b2dbfaeabd39c08 # Parent 4370ce3fabb362ef1efce5e474ba2ef4eb32f15f (get_pos_property): Don't assume that `object' = nil. diff -r 4370ce3fabb3 -r edeae7524de9 src/editfns.c --- 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,