From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Michael Heerdegen Newsgroups: gmane.emacs.bugs Subject: bug#11272: 24.1.50; `holiday-sexp' not always sufficient Date: Wed, 18 Apr 2012 19:28:52 +0200 Message-ID: <87hawhkkyz.fsf@web.de> Reply-To: michael_heerdegen@web.de NNTP-Posting-Host: plane.gmane.org X-Trace: dough.gmane.org 1334770146 1768 80.91.229.3 (18 Apr 2012 17:29:06 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 18 Apr 2012 17:29:06 +0000 (UTC) To: 11272@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Apr 18 19:29:01 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1SKYge-0006jz-Id for geb-bug-gnu-emacs@m.gmane.org; Wed, 18 Apr 2012 19:29:00 +0200 Original-Received: from localhost ([::1]:39955 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SKYgd-0005yO-Id for geb-bug-gnu-emacs@m.gmane.org; Wed, 18 Apr 2012 13:28:59 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:60213) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SKYgY-0005xs-9G for bug-gnu-emacs@gnu.org; Wed, 18 Apr 2012 13:28:57 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SKYgS-0003q2-GZ for bug-gnu-emacs@gnu.org; Wed, 18 Apr 2012 13:28:53 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:39083) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SKYgS-0003px-D5 for bug-gnu-emacs@gnu.org; Wed, 18 Apr 2012 13:28:48 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1SKYgg-0000j6-9A for bug-gnu-emacs@gnu.org; Wed, 18 Apr 2012 13:29:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michael Heerdegen Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 18 Apr 2012 17:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 11272 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.13347701202762 (code B ref -1); Wed, 18 Apr 2012 17:29:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 18 Apr 2012 17:28:40 +0000 Original-Received: from localhost ([127.0.0.1]:40117 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SKYgG-0000iQ-GX for submit@debbugs.gnu.org; Wed, 18 Apr 2012 13:28:40 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:43877) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SKYgA-0000iA-UB for submit@debbugs.gnu.org; Wed, 18 Apr 2012 13:28:35 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SKYfk-0003eW-38 for submit@debbugs.gnu.org; Wed, 18 Apr 2012 13:28:11 -0400 Original-Received: from lists.gnu.org ([208.118.235.17]:59797) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SKYfj-0003e6-WF for submit@debbugs.gnu.org; Wed, 18 Apr 2012 13:28:04 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:59926) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SKYff-0005tW-N0 for bug-gnu-emacs@gnu.org; Wed, 18 Apr 2012 13:28:03 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SKYfa-0003YP-JO for bug-gnu-emacs@gnu.org; Wed, 18 Apr 2012 13:27:59 -0400 Original-Received: from fmmailgate04.web.de ([217.72.192.242]:58657) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SKYfa-0003Xy-9F for bug-gnu-emacs@gnu.org; Wed, 18 Apr 2012 13:27:54 -0400 Original-Received: from moweb002.kundenserver.de (moweb002.kundenserver.de [172.19.20.108]) by fmmailgate04.web.de (Postfix) with ESMTP id 40B16763DA8E for ; Wed, 18 Apr 2012 19:26:55 +0200 (CEST) Original-Received: from snow.dragon ([89.204.154.74]) by smtp.web.de (mrweb002) with ESMTPA (Nemesis) id 0LopMx-1Rn7ht29xz-00glW9; Wed, 18 Apr 2012 19:26:55 +0200 X-Provags-ID: V02:K0:giB9gThgpExWqG0eNJRmFM7QAE7tfiAiZr0dHxX3/a7 9IxGGU5HQez2TvdHRm9YwKLiMtCxOvSmLyd6XUfUCGIMfLoZtJ 5T8MxNQH4bjHfZImFMmFRTe6cQiu9FyLriYq5p12dRC2O64vGE Y7XteOBrBFA7MKkXHCfQA1NWBs/z1tPHoL9fGcY+KhJcW+JFOp BohqHyUS+RGtSGL2/y8xhlPj5dWrf7ikb9WjKW8zC0= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4-2.6 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:59224 Archived-At: Hello, I wonder why it is currently not possible to have `holiday-sexp' or a similar function return a _list_ of entries for a given year, instead of only one (or nil). Could we provide such a feature? Some background (just an example): I have a function like this: (defun sundays-after-trinitatis (year) "List of sundays after Trinitatis in year YEAR." (let ((i 1) (results ()) (easterday (tagnummer-ostertag year)) (3lSoKj (3lSoKj year))) (while (<= i 24) (let* ((day (+ easterday 56 (* 7 i)))) (when (< day 3lSoKj) (push (list (calendar-gregorian-from-absolute (+ (calendar-absolute-from-gregorian (list 1 1 year)) -1 day)) (format "%s. sunday after Trinitatis" i)) results))) (setq i (+ i 1))) results)) For any year, according to certain rules, certain sundays are named "nth sunday after Trinitatis", depending on `year'. The above function returns the list of them for any given year. But I can't use it directly with `holiday-sexp' - I have to write my own interface function for the calendar: (defun holiday-sundays-after-trinitatis () "List of visible sundays after Trinitatis in `calendar'." (let ((year displayed-year)) (holiday-filter-visible-calendar (append (sonntage-nach-trinitatis year) (sonntage-nach-trinitatis (+ 1 year)))))) (eval-after-load "holidays" '(add-to-list 'calendar-holidays '(holiday-sundays-after-trinitatis))) I wonder if we could provide a function `holiday-list', so that it would be possible to do this: (add-to-list 'calendar-holidays '(holidays-list '(holiday-sundays-after-trinitatis))) It would no doubt be useful for other cases as well. It could look similar to this: (defun holiday-list (sexp) (let ((y displayed-year) year dates) (holiday-filter-visible-calendar (append (progn (setq year y) (eval sexp)) (progn (setq year (1+ y)) (eval sexp)))))) Please tell me what you think. If you don't want to add something like that, maybe we could at least improve the manual a bit. Under "Holiday Customization", there is this paragraph: | Some holidays just don't fit into any of these forms because special | calculations are involved in their determination. In such cases you | must write a Lisp function to do the calculation. To include eclipses, | for example, add `(eclipses)' to `holiday-other-holidays' and write an | Emacs Lisp function `eclipses' that returns a (possibly empty) list of | the relevant Gregorian dates among the range visible in the calendar | window, with descriptive strings, like this: | | (((6 4 2012) "Lunar Eclipse") ((11 13 2012) "Solar Eclipse") ... ) I think it would be good to add a simple example for how such a function could look like. No user not browsing the sources will know about `holiday-filter-visible-calendar'. At least that function should be mentioned somewhere. Thanks, Michael. In GNU Emacs 24.1.50.1 (i486-pc-linux-gnu, GTK+ Version 3.2.3) of 2012-04-10 on zelenka, modified by Debian (emacs-snapshot package, version 2:20120410-1) Windowing system distributor `The X.Org Foundation', version 11.0.11104000 Configured using: `configure '--build' 'i486-linux-gnu' '--host' 'i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.1.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.1.50/site-lisp:/usr/share/emacs/site-lisp' '--without-compress-info' '--with-crt-dir=/usr/lib/i386-linux-gnu/' '--with-x=yes' '--with-x-toolkit=gtk3' '--with-imagemagick=yes' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2''