unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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)

  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).