diff options
| -rw-r--r-- | src/xdisp.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 714c18be466..23667388b56 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -4413,9 +4413,16 @@ single_display_spec_string_p (Lisp_Object prop, Lisp_Object string) | |||
| 4413 | prop = XCDR (prop); | 4413 | prop = XCDR (prop); |
| 4414 | if (!CONSP (prop)) | 4414 | if (!CONSP (prop)) |
| 4415 | return 0; | 4415 | return 0; |
| 4416 | /* FIXME: We should eval the condition following `when', like | 4416 | /* Actually, the condition following `when' should be eval'ed, |
| 4417 | handle_single_display_spec does, and retrun zero if it | 4417 | like handle_single_display_spec does, and we should return |
| 4418 | evaluates to nil. */ | 4418 | zero if it evaluates to nil. However, this function is |
| 4419 | called only when the buffer was already displayed and some | ||
| 4420 | glyph in the glyph matrix was found to come from a display | ||
| 4421 | string. Therefore, the condition was already evaluated, and | ||
| 4422 | the result was non-nil, otherwise the display string wouldn't | ||
| 4423 | have been displayed and we would have never been called for | ||
| 4424 | this property. Thus, we can skip the evaluation and assume | ||
| 4425 | its result is non-nil. */ | ||
| 4419 | prop = XCDR (prop); | 4426 | prop = XCDR (prop); |
| 4420 | } | 4427 | } |
| 4421 | 4428 | ||