]> granicus.if.org Git - php/commitdiff
some fixes for bug#54254
authorStanislav Malyshev <stas@php.net>
Mon, 6 Aug 2012 03:15:21 +0000 (20:15 -0700)
committerStanislav Malyshev <stas@php.net>
Tue, 7 Aug 2012 08:48:31 +0000 (01:48 -0700)
ext/calendar/calendar.c
ext/calendar/jewish.c
ext/calendar/sdncal.h
ext/calendar/tests/jdmonthname.phpt
ext/calendar/tests/jdtojewish.phpt

index 1ab1f1652ebee283a36fbe22fb76ef33b0b98e37..5947aabc986b9a61bc213770425441727577f6ca 100644 (file)
@@ -204,8 +204,8 @@ static struct cal_entry_t cal_conversion_table[CAL_NUM_CALS] = {
         FrenchMonthName, FrenchMonthName}
 };
 
-#define JEWISH_MONTH_NAME(year)        ((monthsPerYear[(year) % 19] == 13)?JewishMonthNameLeap:JewishMonthName)
-#define JEWISH_HEB_MONTH_NAME(year) ((monthsPerYear[(year) % 19] == 13)?JewishMonthHebNameLeap:JewishMonthHebName)
+#define JEWISH_MONTH_NAME(year)        ((monthsPerYear[((year)-1) % 19] == 13)?JewishMonthNameLeap:JewishMonthName)
+#define JEWISH_HEB_MONTH_NAME(year) ((monthsPerYear[((year)-1) % 19] == 13)?JewishMonthHebNameLeap:JewishMonthHebName)
 
 /* For jddayofweek */
 enum { CAL_DOW_DAYNO, CAL_DOW_SHORT, CAL_DOW_LONG };
index 494d065962346fa539f2ba1678046d1d9651d034..a5849a7d7690c96b4d3d9f12d623ffd785bb99c7 100644 (file)
@@ -86,7 +86,7 @@
  *          4 Tevet     29   29   29         29   29   29
  *          5 Shevat    30   30   30         30   30   30
  *          6 Adar I    --   --   --         30   30   30 (optional)
- *          7 Adar II   29   29   29         29   29   29
+ *          7 Adar (II) 29   29   29         29   29   29
  *          8 Nisan     30   30   30         30   30   30
  *          9 Iyyar     29   29   29         29   29   29
  *         10 Sivan     30   30   30         30   30   30
 #define AM3_11_20 ((9 * HALAKIM_PER_HOUR) + 204)
 #define AM9_32_43 ((15 * HALAKIM_PER_HOUR) + 589)
 
-static int monthsPerYear[19] =
+int monthsPerYear[19] =
 {
 12, 12, 13, 12, 12, 13, 12, 13, 12, 12, 13, 12, 12, 13, 12, 12, 13, 12, 13
 };
index 81328d1369cf5e9cb5eb9e891d7e998144d9033d..c0463c80d45e60bcf2e4688c35278b0770d90948 100644 (file)
@@ -79,7 +79,10 @@ long int JulianToSdn(int year, int month, int day);
 void SdnToJewish(long int sdn, int *pYear, int *pMonth, int *pDay);
 long int JewishToSdn(int year, int month, int day);
 extern char *JewishMonthName[14];
+extern char *JewishMonthNameLeap[14];
 extern char *JewishMonthHebName[14];
+extern char *JewishMonthHebNameLeap[14];
+extern int monthsPerYear[19];
 
 /* French republic calendar conversions. */
 void SdnToFrench(long int sdn, int *pYear, int *pMonth, int *pDay);
index d05d3c595efca2eaaee29c9558fa15cb7f3a592b..207d320162b7b86da2b136f2dd63000149fd755f 100644 (file)
@@ -178,7 +178,7 @@ Heshvan
 Kislev
 Tevet
 Shevat
-AdarI
+Adar
 Nisan
 Iyyar
 Sivan
@@ -279,7 +279,7 @@ Heshvan
 Kislev
 Tevet
 Shevat
-AdarI
+Adar
 Nisan
 Iyyar
 Sivan
index 484b95749cca96563cc1e6ba0e78efb095005dea..bc0ecbdd88ec27ed21cda590697c96b24c446159 100644 (file)
@@ -14,10 +14,11 @@ var_dump(jdtojewish(gregoriantojd(10,28,2002))."\r\n".
        jdtojewish(gregoriantojd(10,8,2002),true, CAL_JEWISH_ADD_GERESHAYIM)."\r\n".
        jdtojewish(gregoriantojd(10,8,2002),true, CAL_JEWISH_ADD_GERESHAYIM+CAL_JEWISH_ADD_ALAFIM_GERESH)."\r\n".
        jdtojewish(gregoriantojd(10,8,2002),true, CAL_JEWISH_ADD_GERESHAYIM+CAL_JEWISH_ADD_ALAFIM)."\r\n".
-       jdtojewish(gregoriantojd(10,8,2002),true, CAL_JEWISH_ADD_GERESHAYIM+CAL_JEWISH_ADD_ALAFIM+CAL_JEWISH_ADD_ALAFIM_GERESH)."\r\n");
+       jdtojewish(gregoriantojd(10,8,2002),true, CAL_JEWISH_ADD_GERESHAYIM+CAL_JEWISH_ADD_ALAFIM+CAL_JEWISH_ADD_ALAFIM_GERESH)."\r\n".
+       jdtojewish(gregoriantojd(3,10,2007))."\r\n");
 ?>
---EXPECT--
-string(184) "2/22/5763
+--EXPECTF--
+string(%d) "2/22/5763
 ëá çùåï äúùñâ
 ëá çùåï ä'úùñâ
 ëá çùåï ä àìôéí úùñâ
@@ -27,4 +28,5 @@ string(184) "2/22/5763
 á' çùåï ä'úùñ"â
 á' çùåï ä àìôéí úùñ"â
 á' çùåï ä' àìôéí úùñ"â
+7/20/5767
 "