Things to ponder: 1) Should the stretch have been inserted "before the foo ended", i.e., with that face extending to the end of the range? 1a) Perhaps :extend of the face should control that? 2) To identify a range, we need an identity, so I used `eq' on the list containing the width spec itself. Other identities that are possible, for instance: (propertize "foo" 'display '(min-width 8.0 :the-identity)) But... what if somebody then does: (insert (propertize "foo" 'display '(min-width 5.0 :the-identity)) (propertize "foo" 'display '(min-width 10.0 :the-identity))) Using the `eq' of the list is awkward, but at least it's not ambiguous. And we need an identity, because otherwise this won't be possible: (insert (propertize "foo" 'display '(min-width 5.0)) (propertize "bar" 'display '(min-width 5.0))) 3) Should this stuff nest? We could have a stack of these, but meh. 4) Probably other things. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no