GNU bug report logs -
#13072
24.3.50; Fancy Diary display fontification failures
Previous Next
Reported by: Stephen Berman <stephen.berman <at> gmx.net>
Date: Tue, 4 Dec 2012 00:05:02 UTC
Severity: minor
Tags: fixed, patch
Found in version 24.3.50
Fixed in version 28.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Stephen Berman <stephen.berman <at> gmx.net> writes:
> The doc string of calendar-date-display-form says:
>
> For example, a typical American form would be
> '(month "/" day "/" (substring year -2))
> whereas
> '((format "%9s, %9s %2s, %4s" dayname monthname day year))
> would give the usual American style in fixed-length fields.
>
> But if you set calendar-date-display-form to either of these values
> (either via setq in your user-init-file or via the Custom interface),
> then in the Fancy Diary display the date header line is not fontified.
I've respun your patch for Emacs 28...
However, I'm not really sure why Fancy Diary Mode is doing any of
this -- it seems kinda misguided, and as you say, your patch only fixes
half of the problem.
Instead of inserting the heading, and then trying to make a regexp to
match the heading and letting font-lock fontize, why doesn't it just put
the correct face on the heading when it inserts it? Because trying to
make that regexp is bound to have strange edge cases.
Historical reasons?
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index da98e44926..8ea831554b 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -2406,9 +2406,18 @@ diary-fancy-date-pattern
;; string form"; eg the iso version calls string-to-number on some.
;; Therefore we cannot eg just let day = "[0-9]+". (Bug#8583).
;; Assumes no integers in c-day/month-name-array.
- (replace-regexp-in-string "[0-9]+" "[0-9]+"
- (mapconcat #'eval calendar-date-display-form "")
- nil t))
+ (replace-regexp-in-string
+ "[0-9]+" "[0-9]+"
+ (mapconcat (lambda (x)
+ (if (or (atom x) (eq (car x) 'format))
+ (eval x)
+ (catch 'end
+ (while (consp x)
+ (let ((y (pop x)))
+ (when (or (eq y 'year) (eq y 'month) (eq y 'day))
+ (throw 'end (eval y))))))))
+ calendar-date-display-form "")
+ nil t))
;; Optional ": holiday name" after the date.
"\\(: .*\\)?"))
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
This bug report was last modified 4 years and 279 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.