From: Jean Forget <J2N-FORGET@orange.fr>
To: "Mattias Engdegård" <mattiase@acm.org>
Cc: Glenn Morris <rgm@gnu.org>, Lars Ingebrigtsen <larsi@gnus.org>,
19174@debbugs.gnu.org
Subject: bug#19174: Wishlist/suggestion for emacs/lisp/calendar/cal-french.el
Date: Tue, 15 Jun 2021 07:55:10 +0200 [thread overview]
Message-ID: <eb4914ba-780b-bb50-1bea-cf538a89438b@orange.fr> (raw)
In-Reply-To: <764F506B-30E1-460A-8D41-8BE56C58DED9@acm.org>
[-- Attachment #1: Type: text/plain, Size: 2574 bytes --]
Le 10/06/2021 à 11:09, Mattias Engdegård a écrit :
> 10 juni 2021 kl. 07.40 skrev Jean Forget <J2N-FORGET@orange.fr>:
>
>> http://datetime.mongueurs.net/Histoire/tit/titre-g.en.html
>>
>> When you read the pages for the additional days, you see that
>> they are printed with a day number and a day-of-week name.
>
> Thank you, that is a primary source! Of course we know little about the context: it may have been written that way for sake of a uniform presentation. However, being no scholar of the republican calendar I will leave that judgement to you.
>
>> About lower case vs upper case: The French convention for
>> Revolutionary names may be different from the French convention
>> for Gregorian names. Most often, the revolutionary month names
>> and day names are printed with an initial capital letter.
>> Yet, there are exceptions. See the front page (link above)
>> which mentions the "9 floréal an 7" with a lower case "f".
>
> Yes, it is a fair assumption that the usage conventions were less rigid in those days, and it can have been a matter of whether the words occurred in a title or in running text. The (French) Wikipédia article uses predominantly lower case but it obviously follows modern conventions. Again, your call.
>
> Feel free to base your changes on my previously posted diff, but give it a good read-through so that the changes are indeed exactly those that you intended. Also, we'd be happy if you wrote some tests; test/lisp/calendar/cal-french-tests.el would be a suitable place.
>
About tests: I am much more used to Perl usages and habits than Lisp.
So the attached Emacs-Lisp file behaves like a Perl module test file.
I have not yet looked at what a real E-Lisp test file looks like.
About lower case vs caps: in my previous message, I have forgotten
to mention another reason I used caps. As I am more a programmer than
an historian, I have opted for ease of programming (not for me, but
for Emacs users). It is easy to convert a capitalized string to
lowercase, it is more difficult to convert a lowercase string to
capitalised, especially with composite words such as "jour de la
Pomme de terre" or "jour du Laurier-thym". If I provide capitalised
strings, the Emacs user can choose between doing nothing and getting
a capitalised string or doing a basic and easy "to-lower" transformation
and getting a lowercase string.
About reading your posted diff: I have not had the time to read it
for now. Also, I may install a recent Emacs version on a virtual
machine, apply your diff and check that it works.
Jean Forget
[-- Attachment #2: verif-calfrench.el --]
[-- Type: text/x-emacs-lisp, Size: 10712 bytes --]
#!/usr/bin/emacs --script
; -*- encoding: utf-8; indent-tabs-mode: nil -*-
;
; Generated test file for the Emacs cal-french.el program.
; Fichier de test généré pour tester le programme cal-french.el de Emacs
;
; Copyright (C) 2014, 2021 Jean Forget
;
; Author: Jean Forget
; Maintainer: Jean Forget
; Keywords: French Revolution, calendar
;
; This program is free software; you can redistribute it and modify
; it under the terms of Emacs:
; the GNU General Public License as published by
; the Free Software Foundation; version 3, or (at your option)
; any later version,
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GNU Emacs; see the file COPYING. If not, see <http://www.gnu.org/licenses/>.
(require 'cal-french)
(defvar cal-french-check-num 0)
(defun ymd-to-mdy (date)
"Convert the date from the logical format to the funny format"
(let ((y (car date))
(m (cadr date))
(d (nth 2 date)))
(list m d y))
)
(defun cal-french-check-unit (date expected-string)
"Unit check for cal-french.el"
(let ((actual-string (calendar-french-date-string (ymd-to-mdy date))))
(setq cal-french-check-num (1+ cal-french-check-num))
(cond ((equal expected-string actual-string)
(princ (format "ok %d
" cal-french-check-num)))
(t
(princ (format "not ok %d got %s expected %s
" cal-french-check-num actual-string expected-string)))
)
)
)
(defun cal-french-check ()
"Self-check for cal-french.el"
(cal-french-check-unit '(1792 9 22) "Primidi 1 Vendémiaire an 1 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1793 10 23) "Duodi 2 Brumaire an 2 de la Révolution, jour du Céleri")
(cal-french-check-unit '(1794 7 27) "Nonidi 9 Thermidor an 2 de la Révolution, jour de la Mûre")
(cal-french-check-unit '(1794 11 23) "Tridi 3 Frimaire an 3 de la Révolution, jour de la Chicorée")
(cal-french-check-unit '(1795 10 5) "Tridi 13 Vendémiaire an 4 de la Révolution, jour du Potiron")
(cal-french-check-unit '(1795 12 25) "Quartidi 4 Nivôse an 4 de la Révolution, jour du Soufre")
(cal-french-check-unit '(1797 1 24) "Quintidi 5 Pluviôse an 5 de la Révolution, jour du Taureau")
(cal-french-check-unit '(1798 2 24) "Sextidi 6 Ventôse an 6 de la Révolution, jour de l'Asaret")
(cal-french-check-unit '(1799 11 9) "Octidi 18 Brumaire an 8 de la Révolution, jour de la Dentelaire")
(cal-french-check-unit '(1801 3 29) "Octidi 8 Germinal an 9 de la Révolution, jour de la Jonquille")
(cal-french-check-unit '(1804 4 30) "Décadi 10 Floréal an 12 de la Révolution, jour du Rateau")
(cal-french-check-unit '(1807 6 1) "Duodi 12 Prairial an 15 de la Révolution, jour de la Bétoine")
(cal-french-check-unit '(1810 7 3) "Quartidi 14 Messidor an 18 de la Révolution, jour de la Lavande")
(cal-french-check-unit '(1813 8 4) "Sextidi 16 Thermidor an 21 de la Révolution, jour de la Guimauve")
(cal-french-check-unit '(1816 9 4) "Octidi 18 Fructidor an 24 de la Révolution, jour du Nerprun")
(cal-french-check-unit '(2000 1 1) "Duodi 12 Nivôse an 208 de la Révolution, jour de l'Argile")
(cal-french-check-unit '(2021 7 11) "Tridi 23 Messidor an 229 de la Révolution, jour des Haricots")
(cal-french-check-unit '(2001 5 11) "Duodi 22 Floréal an 209 de la Révolution, jour de la Fritillaire")
(cal-french-check-unit '(1792 9 22) "Primidi 1 Vendémiaire an 1 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1793 9 21) "Quintidi 5 jour complémentaire an 1 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(1793 9 22) "Primidi 1 Vendémiaire an 2 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1794 9 21) "Quintidi 5 jour complémentaire an 2 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(1794 9 22) "Primidi 1 Vendémiaire an 3 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1795 9 22) "Sextidi 6 jour complémentaire an 3 de la Révolution, jour de la Révolution")
(cal-french-check-unit '(1795 9 23) "Primidi 1 Vendémiaire an 4 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1796 9 21) "Quintidi 5 jour complémentaire an 4 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(1796 9 22) "Primidi 1 Vendémiaire an 5 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1797 9 21) "Quintidi 5 jour complémentaire an 5 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(1797 9 22) "Primidi 1 Vendémiaire an 6 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1799 9 22) "Sextidi 6 jour complémentaire an 7 de la Révolution, jour de la Révolution")
(cal-french-check-unit '(1799 9 23) "Primidi 1 Vendémiaire an 8 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1800 9 22) "Quintidi 5 jour complémentaire an 8 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(1800 9 23) "Primidi 1 Vendémiaire an 9 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1801 9 22) "Quintidi 5 jour complémentaire an 9 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(1801 9 23) "Primidi 1 Vendémiaire an 10 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1823 9 22) "Quintidi 5 jour complémentaire an 31 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(1823 9 23) "Primidi 1 Vendémiaire an 32 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1824 9 22) "Sextidi 6 jour complémentaire an 32 de la Révolution, jour de la Révolution")
(cal-french-check-unit '(1824 9 23) "Primidi 1 Vendémiaire an 33 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1825 9 22) "Quintidi 5 jour complémentaire an 33 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(1825 9 23) "Primidi 1 Vendémiaire an 34 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1892 9 21) "Quintidi 5 jour complémentaire an 100 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(1892 9 22) "Primidi 1 Vendémiaire an 101 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1900 9 22) "Sextidi 6 jour complémentaire an 108 de la Révolution, jour de la Révolution")
(cal-french-check-unit '(1900 9 23) "Primidi 1 Vendémiaire an 109 de la Révolution, jour du Raisin")
(cal-french-check-unit '(1992 9 21) "Quintidi 5 jour complémentaire an 200 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(1992 9 22) "Primidi 1 Vendémiaire an 201 de la Révolution, jour du Raisin")
(cal-french-check-unit '(2000 9 21) "Sextidi 6 jour complémentaire an 208 de la Révolution, jour de la Révolution")
(cal-french-check-unit '(2000 9 22) "Primidi 1 Vendémiaire an 209 de la Révolution, jour du Raisin")
(cal-french-check-unit '(2092 9 20) "Quintidi 5 jour complémentaire an 300 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(2092 9 21) "Primidi 1 Vendémiaire an 301 de la Révolution, jour du Raisin")
(cal-french-check-unit '(2100 9 21) "Sextidi 6 jour complémentaire an 308 de la Révolution, jour de la Révolution")
(cal-french-check-unit '(2100 9 22) "Primidi 1 Vendémiaire an 309 de la Révolution, jour du Raisin")
(cal-french-check-unit '(2192 9 21) "Sextidi 6 jour complémentaire an 400 de la Révolution, jour de la Révolution")
(cal-french-check-unit '(2192 9 22) "Primidi 1 Vendémiaire an 401 de la Révolution, jour du Raisin")
(cal-french-check-unit '(2193 9 21) "Quintidi 5 jour complémentaire an 401 de la Révolution, jour des Récompenses")
(cal-french-check-unit '(2199 9 22) "Primidi 1 Vendémiaire an 408 de la Révolution, jour du Raisin")
(cal-french-check-unit '(2200 9 22) "Sextidi 6 jour complémentaire an 408 de la Révolution, jour de la Révolution")
(cal-french-check-unit '(2791 9 23) "Primidi 1 Vendémiaire an 1000 de la Révolution, jour du Raisin")
(cal-french-check-unit '(2792 9 22) "Primidi 1 Vendémiaire an 1001 de la Révolution, jour du Raisin")
(cal-french-check-unit '(3000 1 1) "Duodi 12 Nivôse an 1208 de la Révolution, jour de l'Argile")
(cal-french-check-unit '(3001 1 1) "Primidi 11 Nivôse an 1209 de la Révolution, jour du Granit")
(cal-french-check-unit '(3791 9 22) "Primidi 1 Vendémiaire an 2000 de la Révolution, jour du Raisin")
(cal-french-check-unit '(3792 9 22) "Primidi 1 Vendémiaire an 2001 de la Révolution, jour du Raisin")
(cal-french-check-unit '(4000 1 1) "Duodi 12 Nivôse an 2208 de la Révolution, jour de l'Argile")
(cal-french-check-unit '(4001 1 1) "Duodi 12 Nivôse an 2209 de la Révolution, jour de l'Argile")
(cal-french-check-unit '(4320 9 10) "Quartidi 24 Fructidor an 2528 de la Révolution, jour du Sorgho")
(cal-french-check-unit '(4320 9 11) "Quintidi 25 Fructidor an 2528 de la Révolution, jour de l'Écrevisse")
(cal-french-check-unit '(4791 9 23) "Primidi 1 Vendémiaire an 3000 de la Révolution, jour du Raisin")
(cal-french-check-unit '(4792 9 22) "Primidi 1 Vendémiaire an 3001 de la Révolution, jour du Raisin")
(cal-french-check-unit '(5000 1 1) "Duodi 12 Nivôse an 3208 de la Révolution, jour de l'Argile")
(cal-french-check-unit '(5001 1 1) "Primidi 11 Nivôse an 3209 de la Révolution, jour du Granit")
(cal-french-check-unit '(5791 9 22) "Primidi 1 Vendémiaire an 4000 de la Révolution, jour du Raisin")
(cal-french-check-unit '(5792 9 21) "Primidi 1 Vendémiaire an 4001 de la Révolution, jour du Raisin")
(cal-french-check-unit '(6000 1 1) "Tridi 13 Nivôse an 4208 de la Révolution, jour de l'Ardoise")
(cal-french-check-unit '(6001 1 1) "Tridi 13 Nivôse an 4209 de la Révolution, jour de l'Ardoise")
(cal-french-check-unit '(6791 9 22) "Primidi 1 Vendémiaire an 5000 de la Révolution, jour du Raisin")
(cal-french-check-unit '(6792 9 21) "Primidi 1 Vendémiaire an 5001 de la Révolution, jour du Raisin")
(cal-french-check-unit '(7791 9 21) "Primidi 1 Vendémiaire an 6000 de la Révolution, jour du Raisin")
(cal-french-check-unit '(7792 9 21) "Primidi 1 Vendémiaire an 6001 de la Révolution, jour du Raisin")
)
(message "%s" "c est parti
")
(cal-french-check)
next prev parent reply other threads:[~2021-06-15 5:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-24 21:01 bug#19174: Wishlist/suggestion for emacs/lisp/calendar/cal-french.el Jean Forget
2014-11-26 19:14 ` Glenn Morris
2021-05-28 2:00 ` Lars Ingebrigtsen
2021-06-07 19:32 ` Jean Forget
2021-06-08 9:34 ` Lars Ingebrigtsen
2021-06-08 17:47 ` Jean Forget
2021-06-09 10:07 ` Lars Ingebrigtsen
2021-06-10 5:56 ` bug#19174: JEAN FORGET Jean Forget
2021-06-09 14:11 ` bug#19174: Wishlist/suggestion for emacs/lisp/calendar/cal-french.el Mattias Engdegård
2021-06-10 5:40 ` Jean Forget
2021-06-10 9:09 ` Mattias Engdegård
2021-06-15 5:55 ` Jean Forget [this message]
2021-06-15 10:29 ` Mattias Engdegård
2021-06-15 13:58 ` Lars Ingebrigtsen
2021-07-23 13:27 ` Lars Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=eb4914ba-780b-bb50-1bea-cf538a89438b@orange.fr \
--to=j2n-forget@orange.fr \
--cc=19174@debbugs.gnu.org \
--cc=larsi@gnus.org \
--cc=mattiase@acm.org \
--cc=rgm@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).