]> code.delx.au - gnu-emacs/blobdiff - lisp/calc/calc.el
Merge from emacs-24; up to 2012-12-03T21:07:47Z!eggert@cs.ucla.edu
[gnu-emacs] / lisp / calc / calc.el
index 2d75e897d9b8f80400126ea8bcef0fbb60c8f654..517161a616d860ccd3f727b252f34d0e9bb96b58 100644 (file)
@@ -464,49 +464,7 @@ to be identified as that note."
   :type 'string
   :group 'calc)
 
-;; Dates that are built-in options for `calc-gregorian-switch' should be 
-;; (YEAR MONTH DAY math-date-from-gregorian-dt(YEAR MONTH DAY)) for speed.
-(defcustom calc-gregorian-switch nil
-  "The first day the Gregorian calendar is used by Calc's date forms.
-This is `nil' (the default) if the Gregorian calendar is the only one used.
-Otherwise, it should be a list `(YEAR MONTH DAY)' when Calc begins to use
-the Gregorian calendar; Calc will use the Julian calendar for earlier dates.
-The dates in which different regions of the world began to use the
-Gregorian calendar vary quite a bit, even within a single country.
-If you want Calc's date forms to switch between the Julian and
-Gregorian calendar, you can specify the date or choose from several
-common choices.  Some of these choices should be taken with a grain
-of salt; for example different parts of France changed calendars at
-different times, and Sweden's change to the Gregorian calendar was
-complicated.  Also, the boundaries of the countries were different at
-the times of the calendar changes than they are now.
-The Vatican decided that the Gregorian calendar should take effect
-on 15 October 1582 (Gregorian), and many Catholic countries made
-the change then.  Great Britian and its colonies had the Gregorian
-calendar take effect on 14 September 1752 (Gregorian); this includes
-the United States."
-  :group 'calc
-  :version "24.4"
-  :type '(choice (const :tag "Always use the Gregorian calendar" nil)
-                 (const :tag "Great Britian and the US (1752 9 14)" (1752 9 14 639797))
-                 (const :tag "Vatican (1582 10 15)" (1582 10 15 577736))
-                 (const :tag "Czechoslovakia (1584 1 17)" (1584 1 17 578195))
-                 (const :tag "Denmark (1700 3 1)" (1700 3 1 620607))
-                 (const :tag "France (1582 12 20)" (1582 12 20 577802))
-                 (const :tag "Hungary (1587 11 1)" (1587 11 1 579579))
-                 (const :tag "Luxemburg (1582 12 25)" (1582 12 25 577807))
-                 (const :tag "Romania (1919 4 14)" (1919 4 14 700638))
-                 (const :tag "Russia (1918 2 14)" (1918 2 14 700214))
-                 (const :tag "Sweden (1753 3 1)" (1753 3 1 639965))
-                 (const :tag "Switzerland (Catholic) (1584 1 22)" (1584 1 22 578200))
-                 (const :tag "Switzerland (Protestant) (1701 1 12)" (1701 1 12 620924))
-                 (list :tag "(YEAR MONTH DAY)" 
-                       (integer :tag "Year") 
-                       (integer :tag "Month (integer)")
-                       (integer :tag "Day")))
-  :set (lambda (symbol value)
-         (set-default symbol value)
-         (setq math-format-date-cache nil)))
+(defvar math-format-date-cache) ; calc-forms.el
 
 (defface calc-nonselected-face
   '((t :inherit shadow
@@ -829,7 +787,9 @@ If nil, selections displayed but ignored.")
     "M-D-Y< H:mm:SSpp>"
     "D-M-Y< h:mm:SS>"
     "j<, h:mm:SS>"
-    "YYddd< hh:mm:ss>"))
+    "YYddd< hh:mm:ss>"
+    "ZYYY-MM-DD Www< hh:mm>"
+    "IYYY-Iww-w<Thh:mm:ss>"))
 
 (defcalcmodevar calc-autorange-units nil
   "If non-nil, automatically set unit prefixes to keep units in a reasonable range.")
@@ -2064,6 +2024,50 @@ See calc-keypad for details."
         (calc-refresh align)))
   (setq calc-refresh-count (1+ calc-refresh-count)))
 
+;; Dates that are built-in options for `calc-gregorian-switch' should be
+;; (YEAR MONTH DAY math-date-from-gregorian-dt(YEAR MONTH DAY)) for speed.
+(defcustom calc-gregorian-switch nil
+  "The first day the Gregorian calendar is used by Calc's date forms.
+This is `nil' (the default) if the Gregorian calendar is the only one used.
+Otherwise, it should be a list `(YEAR MONTH DAY)' when Calc begins to use
+the Gregorian calendar; Calc will use the Julian calendar for earlier dates.
+The dates in which different regions of the world began to use the
+Gregorian calendar vary quite a bit, even within a single country.
+If you want Calc's date forms to switch between the Julian and
+Gregorian calendar, you can specify the date or choose from several
+common choices.  Some of these choices should be taken with a grain
+of salt; for example different parts of France changed calendars at
+different times, and Sweden's change to the Gregorian calendar was
+complicated.  Also, the boundaries of the countries were different at
+the times of the calendar changes than they are now.
+The Vatican decided that the Gregorian calendar should take effect
+on 15 October 1582 (Gregorian), and many Catholic countries made
+the change then.  Great Britain and its colonies had the Gregorian
+calendar take effect on 14 September 1752 (Gregorian); this includes
+the United States."
+  :group 'calc
+  :version "24.4"
+  :type '(choice (const :tag "Always use the Gregorian calendar" nil)
+                 (const :tag "1582-10-15 - Italy, Poland, Portugal, Spain" (1582 10 15 577736))
+                 (const :tag "1582-12-20 - France" (1582 12 20 577802))
+                 (const :tag "1582-12-25 - Luxemburg" (1582 12 25 577807))
+                 (const :tag "1584-01-17 - Bohemia and Moravia" (1584 1 17 578195))
+                 (const :tag "1587-11-01 - Hungary" (1587 11 1 579579))
+                 (const :tag "1700-03-01 - Denmark" (1700 3 1 620607))
+                 (const :tag "1701-01-12 - Protestant Switzerland" (1701 1 12 620924))
+                 (const :tag "1752-09-14 - Great Britain and dominions" (1752 9 14 639797))
+                 (const :tag "1753-03-01 - Sweden" (1753 3 1 639965))
+                 (const :tag "1918-02-14 - Russia" (1918 2 14 700214))
+                 (const :tag "1919-04-14 - Romania" (1919 4 14 700638))
+                 (list :tag "(YEAR MONTH DAY)"
+                       (integer :tag "Year")
+                       (integer :tag "Month (integer)")
+                       (integer :tag "Day")))
+  :set (lambda (symbol value)
+         (set-default symbol value)
+         (setq math-format-date-cache nil)
+         (calc-refresh)))
+
 ;;;; The Calc Trail buffer.
 
 (defun calc-check-trail-aligned ()