mirror of
https://salsa.debian.org/dskoll/remind.git
synced 2026-04-19 07:48:40 +02:00
Compare commits
1219 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e7cfc20ce | |||
| 0c9a35a584 | |||
| 5e333f6162 | |||
| af8b4e6df1 | |||
| 3fa798523a | |||
| 53001f9fbc | |||
| 9cd76eae84 | |||
| c8295b6251 | |||
| 3c95245407 | |||
| 3362c7226c | |||
| 356b562d75 | |||
| 6eebcdc39d | |||
| 5a80d63060 | |||
| c7ca1b4baa | |||
| dc89a6fba9 | |||
| f83fec5563 | |||
| 9c38161430 | |||
| 68f5fe1d10 | |||
| bc7c57e53b | |||
| 88aacb3905 | |||
| a894076bfc | |||
| 82e068fcca | |||
| a119d97539 | |||
| 01afb63a3d | |||
| 54fccabdfe | |||
| ba4d44664f | |||
| d76c5499b5 | |||
| 84e8244e48 | |||
| 92a6115a5c | |||
| b98e336e9e | |||
| ffcd21446e | |||
| af9ca68d99 | |||
| 71db7168a1 | |||
| 54f284c43f | |||
| 0ab93f2dea | |||
| 3d97f87bcd | |||
| dcfa6d8ef8 | |||
| 52dd5332f4 | |||
| 7b5fafe1ab | |||
| 929af71a10 | |||
| abf7c74ff2 | |||
| 5b9d9a67b2 | |||
| 16ca2ade23 | |||
| d3e6c81a3a | |||
| 13ae49d3cd | |||
| 78adc9f61d | |||
| a622d4fad4 | |||
| 6c0e7b4ff5 | |||
| 28e0599380 | |||
| 87445f639c | |||
| af6e159eaa | |||
| bffa28e258 | |||
| 1781f84d84 | |||
| ed6e65182e | |||
| f5cc0ec686 | |||
| a2c818f96c | |||
| 0bbbaaf3d9 | |||
| 1c81d4cae3 | |||
| 56c684087b | |||
| 9500a929ea | |||
| 585d45e4a1 | |||
| 67d1d1366d | |||
| f4018892e8 | |||
| ffd309f89d | |||
| 286babc1bf | |||
| cc3c0040e9 | |||
| b33a1ee98b | |||
| 99706741bb | |||
| df73a74503 | |||
| c747ebebb4 | |||
| 6b412062c2 | |||
| 27b688f82c | |||
| 4c314ff81c | |||
| d2955ec733 | |||
| 480216db9e | |||
| 9dbb0de7e6 | |||
| 9f9ae77895 | |||
| d9796e72e5 | |||
| e0b0d043c6 | |||
| fe4499ab72 | |||
| e50d583659 | |||
| 6b05d772f0 | |||
| 84dd73f023 | |||
| 00dca8b70f | |||
| c4bc145cd9 | |||
| bd614c1cde | |||
| 1446ac0552 | |||
| 26ded447ab | |||
| a4ccb0738e | |||
| 27a1b449bd | |||
| 1443282859 | |||
| 4a2d707654 | |||
| fd2a61928c | |||
| a05d9eefc9 | |||
| 6f230e81bd | |||
| 973019c4c7 | |||
| cb712ad7e7 | |||
| be7c67b6fd | |||
| a933c8bc69 | |||
| 087fbfd8e6 | |||
| ff641d7990 | |||
| 54e788b765 | |||
| 4283feff31 | |||
| 062a84b758 | |||
| d161a8ff1a | |||
| 0df4a79531 | |||
| 1b26e39e2f | |||
| c63c4cf07e | |||
| 586b3565f0 | |||
| 877aaed1a1 | |||
| 57fa1a6099 | |||
| 6cdb12b5a8 | |||
| c73e1b6f97 | |||
| e8c779c785 | |||
| 96e076a13f | |||
| 80d258621a | |||
| ed6d35e418 | |||
| 9dca1840a1 | |||
| f4ec23df90 | |||
| a0536a8141 | |||
| 553899127a | |||
| 73519889c7 | |||
| 54ac99abcc | |||
| 0c1954bdf4 | |||
| 46e1b7386e | |||
| cdf480112a | |||
| ed38feee83 | |||
| d7f5582a45 | |||
| d042263d3d | |||
| f1591140d4 | |||
| 1b41367163 | |||
| 6bdee7ef89 | |||
| d50b464314 | |||
| ad5dff1de7 | |||
| ac9f32f044 | |||
| e48d025f5d | |||
| 0f5de395ff | |||
| 406629144f | |||
| 36e4f52828 | |||
| ae39eb1d6e | |||
| 342c229a57 | |||
| 52fc89ddc7 | |||
| 821e7a64c8 | |||
| 8c3f7e092c | |||
| 6161214226 | |||
| 5b892eba8e | |||
| e0fde98410 | |||
| aec17b3243 | |||
| 83009e765d | |||
| 42dc81132f | |||
| 51d8b7be39 | |||
| 04cc3fd8dd | |||
| bd429d1450 | |||
| 57fa0bfb2e | |||
| bc7f92e3c0 | |||
| 67ab911d43 | |||
| 43191fc6a3 | |||
| da1cc9137c | |||
| 1306195045 | |||
| edb73548d6 | |||
| c143d554b7 | |||
| c2dbf32dd6 | |||
| a0e32c715b | |||
| 356e0044c4 | |||
| eea90b1aaa | |||
| b2c5575849 | |||
| 7064d64b22 | |||
| 5783430fdd | |||
| 3e8c40990d | |||
| cbdc124355 | |||
| 40e60dd627 | |||
| e508bee0ed | |||
| 0200be82ba | |||
| 4c8b6e74d2 | |||
| bbdcf44102 | |||
| 02007a32fe | |||
| fd7c79b6b4 | |||
| c8c2d5d32e | |||
| 4eafaaefeb | |||
| de6e387969 | |||
| f8d1439fc8 | |||
| fd7079d7f8 | |||
| 1ccf1d236d | |||
| 7041e2cad8 | |||
| b1b21e21b3 | |||
| 533718b0a0 | |||
| 4e75d1574c | |||
| c94137e0b3 | |||
| e49251cfb0 | |||
| e3627e8ea3 | |||
| 2c1f44c9b9 | |||
| cce24634ae | |||
| e2435c34a9 | |||
| a70ba8d42c | |||
| dea14be2d5 | |||
| 6750a393f1 | |||
| e18cd72791 | |||
| 6e1dc7dcd7 | |||
| bf193250cc | |||
| 2c5eeb02f6 | |||
| 5cd343c27c | |||
| 81b48b70c4 | |||
| 5e738020a7 | |||
| 7949341037 | |||
| f4d8331456 | |||
| 17beef5ce6 | |||
| aaae80d02b | |||
| e97de16203 | |||
| d5e38ee3b4 | |||
| 11594aee2d | |||
| 711f0b6c69 | |||
| 87a8b9811d | |||
| 689b1d0e13 | |||
| a8650e888f | |||
| dea2aed628 | |||
| 5618b928e0 | |||
| 91187c4c60 | |||
| 636ae8f21a | |||
| 405398b226 | |||
| 0df3a903b1 | |||
| eac07d212c | |||
| 96da3a6596 | |||
| 94ef20d702 | |||
| c9c309e436 | |||
| 52c973509b | |||
| c192c580da | |||
| 235e5ec1c7 | |||
| 3d30173f9a | |||
| 8b0bbc9fb7 | |||
| c57d2fd52a | |||
| 2970591187 | |||
| 23ec559ddf | |||
| 302bc5a5de | |||
| 950c0b3747 | |||
| ad382fea25 | |||
| a66e855ca7 | |||
| a1b814d6b1 | |||
| 62030719bb | |||
| 985816dc32 | |||
| a131a53132 | |||
| c5e723b6ac | |||
| 3fe2b88e65 | |||
| 54603090ee | |||
| 2514b3681f | |||
| 0b7b101814 | |||
| 3ac1c622fd | |||
| 7878f6623c | |||
| 00ad38e5fe | |||
| 10ae0b0077 | |||
| e032f3315d | |||
| a38fd95a90 | |||
| 9f7609b2c6 | |||
| a6c166ae0c | |||
| e9c89b770f | |||
| df6298bd63 | |||
| 739d285e36 | |||
| ee1c931932 | |||
| 0806b6738f | |||
| 020e82d575 | |||
| a20f2b588e | |||
| 631e721a96 | |||
| 8453e17c6c | |||
| 76c1e2abb3 | |||
| 3389f1c91b | |||
| b2d47ae979 | |||
| e2c615f310 | |||
| e8492a4303 | |||
| 4695efaabd | |||
| c433f42587 | |||
| 4708e59a43 | |||
| d56ac6332a | |||
| b054baf590 | |||
| 42f5e3467d | |||
| 97013ae89b | |||
| 2acead9118 | |||
| a53a80acb4 | |||
| 56e62b1b4d | |||
| c645db5ede | |||
| ef6b9c3783 | |||
| 019bee26cb | |||
| 152cd4090b | |||
| b7fc2b5776 | |||
| 723aba9b7c | |||
| 8a5b88338b | |||
| 7236441e02 | |||
| e4bab0dda4 | |||
| 5b7d4a07ec | |||
| 8c3d2c4003 | |||
| f485d607ff | |||
| a0effa5f0b | |||
| 7d501cda6f | |||
| 5d7f55c8d5 | |||
| 097bf92bea | |||
| b9dea59206 | |||
| 46aa144b65 | |||
| 914971308d | |||
| a22e81040f | |||
| 72f74f03cf | |||
| d0e45e727e | |||
| ce2b2e80da | |||
| 11771b7d3d | |||
| 01cb028532 | |||
| 58b6f43b9c | |||
| 1dedb667e8 | |||
| 8a96236788 | |||
| 2a13163659 | |||
| 336a9684d4 | |||
| 86945c6e18 | |||
| 684280db5e | |||
| d801408933 | |||
| 79b3da3820 | |||
| ed021d3f46 | |||
| 27d0fda280 | |||
| ef12da4ec6 | |||
| 7b098e95ad | |||
| 7d13f4b09e | |||
| cecdfe6ade | |||
| 216bbd6378 | |||
| 30e2e9c633 | |||
| bf2aabd610 | |||
| c019221d15 | |||
| b7bd6faf07 | |||
| 80d58220fe | |||
| cd8624e176 | |||
| 8515fb7ddd | |||
| 84f9f4ae0a | |||
| e201ebcfa4 | |||
| 4e15c3ec35 | |||
| 1adccf9b1f | |||
| a1aa5c2ad9 | |||
| 1e0d650737 | |||
| 553d092ca8 | |||
| dc62841517 | |||
| 326e7bfc53 | |||
| b9dc7c16ad | |||
| abd54b016b | |||
| db02b54067 | |||
| 40a78dfbbb | |||
| c860b46baa | |||
| 1458ba8856 | |||
| 7b9b6ebc96 | |||
| 7ee4073c7a | |||
| 8c072cd9b6 | |||
| b794a45c3f | |||
| 98e491ed1d | |||
| c397cc06da | |||
| 8616236b3c | |||
| 702704af1a | |||
| a0d1b19050 | |||
| a5c8ae491c | |||
| b3cf741d15 | |||
| 0b28dde9c7 | |||
| 5a3980b5b8 | |||
| a8e33118d6 | |||
| 2223277f64 | |||
| c72413e3c1 | |||
| fa1033db6f | |||
| 61e3edd2ac | |||
| 093c97ff91 | |||
| 6e64b175aa | |||
| 09dba4bc94 | |||
| 2e443ac5b7 | |||
| 59a8c88178 | |||
| 40eab03d84 | |||
| e993bf59cf | |||
| c6de5a2c8f | |||
| 51cc939d0c | |||
| c857192e6d | |||
| 4591c2b181 | |||
| 7843a1b2ba | |||
| 649481cf01 | |||
| c253bdfcbe | |||
| 1910808fd7 | |||
| 1d8cb9749e | |||
| e3f9380fcd | |||
| 326c3f59b0 | |||
| 03f1c5a047 | |||
| 02122491c3 | |||
| 735f6f5686 | |||
| ac033d75c0 | |||
| e2185e773a | |||
| d9ae417e01 | |||
| e1d0948538 | |||
| 357ddf285a | |||
| 41859fc484 | |||
| 07275e71b0 | |||
| f68521cb95 | |||
| 526610bdd2 | |||
| 973e3448ae | |||
| 9a3f28f6fc | |||
| a3e32d2dc4 | |||
| a8b78eff00 | |||
| 460db83298 | |||
| 4560712778 | |||
| ce8803dde9 | |||
| 60ca5d45e3 | |||
| 4454613d00 | |||
| 0704808500 | |||
| 166b1ac499 | |||
| e33bf4e80a | |||
| b3af44d212 | |||
| 1e753d5209 | |||
| 4bf31005ea | |||
| 7c86bc910a | |||
| 4f146a99a9 | |||
| a6a638e0e6 | |||
| 325814f5e1 | |||
| 5c4ea7d09e | |||
| 2bf73987ac | |||
| 3e9eeea8dc | |||
| d164d72c1c | |||
| 632cee62d9 | |||
| 7a40260f0d | |||
| 09f043b3de | |||
| c0341c8ba3 | |||
| 850c717803 | |||
| f13f9e18bd | |||
| 8bdca0d684 | |||
| 129bf5612e | |||
| 829962fae1 | |||
| c5f9ed8541 | |||
| 4a7cef4644 | |||
| 0e010b56ec | |||
| ee179ee2f5 | |||
| e28712cef3 | |||
| 8f0a2a7e79 | |||
| ef23bba77f | |||
| 602086ae2d | |||
| f5a170acbd | |||
| 8125b96f0b | |||
| 0bb7d89bb9 | |||
| eb109bbbc0 | |||
| 1a0809fd31 | |||
| 09625b9d68 | |||
| 4e164c4268 | |||
| 691185f22c | |||
| a8bfb41a9e | |||
| fafb30db05 | |||
| 243e816523 | |||
| b49c0f52bd | |||
| 07fca94a7f | |||
| 73917ee537 | |||
| 76f9edecf6 | |||
| d77d9854d2 | |||
| c2b53f95a4 | |||
| caef8b80d6 | |||
| 5e016768af | |||
| ee08ce98d7 | |||
| 581bd95838 | |||
| bb92dab1ab | |||
| 83b5c52c76 | |||
| 93eca25141 | |||
| 34421cb10e | |||
| 29b87898aa | |||
| e9e4db94bd | |||
| c95ad0261a | |||
| 7fef456483 | |||
| 386131e74d | |||
| 824d3c88f1 | |||
| 18a206abd2 | |||
| 8dbae776c9 | |||
| b78702cc53 | |||
| d2b43605ad | |||
| 7728e09337 | |||
| 2666353ce6 | |||
| 0b8a306483 | |||
| b51a0b2d08 | |||
| 959355b19c | |||
| 9c3f0f1994 | |||
| dac337a65b | |||
| 98739dfdbc | |||
| 17b7a1ea84 | |||
| 4d45925758 | |||
| 8cadb23f48 | |||
| 63211b65c2 | |||
| 1be84525b1 | |||
| 67ae95a464 | |||
| c03a95ad94 | |||
| 51aa7aecb9 | |||
| 592cfe5a20 | |||
| b4cf15e73e | |||
| 862e143372 | |||
| 1f10ca49ad | |||
| 4a0c4ffdca | |||
| 27c8737f3a | |||
| ecf45fc453 | |||
| 0a1178cfd7 | |||
| 20a35dc627 | |||
| 79887c06f0 | |||
| f7ff424904 | |||
| 6678721fe3 | |||
| 496302097b | |||
| fe3e2b9a20 | |||
| 400a6b066f | |||
| 76d181e7fc | |||
| 77373eed2d | |||
| 6b52be388f | |||
| 0518a12a91 | |||
| 362a02c4b8 | |||
| 3e3a0cde47 | |||
| c16f93effd | |||
| 61b27c02b5 | |||
| ba28eaad53 | |||
| 92c2d0cc9f | |||
| 21d5e8a095 | |||
| 60417d68a7 | |||
| 7d25387403 | |||
| b454cf5b20 | |||
| 9ea6385b72 | |||
| 55b7908444 | |||
| e9ff66478b | |||
| d3240d711d | |||
| a8d63a4199 | |||
| a4807a21c3 | |||
| a394ef53a0 | |||
| eb8243743a | |||
| 8444bb15c5 | |||
| b86245c4c6 | |||
| 499fcfad41 | |||
| bddbbf061b | |||
| 05136f4cf0 | |||
| e62e3d5d03 | |||
| 595fdaa4a4 | |||
| 133febc2c1 | |||
| f8c6d7ff6c | |||
| db3341db91 | |||
| 8cbcd3ec01 | |||
| 4c6512e9b6 | |||
| 4769789a8f | |||
| b4a8cb085c | |||
| 4f816d52fd | |||
| 94b3a0248d | |||
| 5fbf1d82e4 | |||
| 55eb3ebe95 | |||
| 2afa3c5558 | |||
| 30d9a42db2 | |||
| 74d357b84d | |||
| 09c98a93ec | |||
| ed89ab7c04 | |||
| 27c74be02b | |||
| 8f22ab39dc | |||
| 795c53f4ce | |||
| 3fd18a9cc0 | |||
| a5afb4a87e | |||
| 379fc4542d | |||
| 538ef6c8ce | |||
| 95c7e8856c | |||
| 95523c8f10 | |||
| 97b53d5e40 | |||
| fb688850b1 | |||
| 5b1bad2650 | |||
| e5ff132c5e | |||
| a0830ad23c | |||
| 9290f53466 | |||
| e5711032bd | |||
| 08e3c1d5a2 | |||
| 29c579a301 | |||
| 61f55bceee | |||
| 6586fae3eb | |||
| d5a86f3e4f | |||
| 96551ccaa4 | |||
| c83ee86d10 | |||
| c913306cbd | |||
| 03d385df97 | |||
| 61fcc1b275 | |||
| 26977a4ac0 | |||
| 28acd05215 | |||
| be4eed8b20 | |||
| cdb0850373 | |||
| 0d55e04284 | |||
| f4cce54b70 | |||
| 2dc6ca44f1 | |||
| d1d833f0f3 | |||
| 1d44577ce9 | |||
| 1be7c2d6d7 | |||
| b1f418ee42 | |||
| 72b0bf96fe | |||
| 3388849fa5 | |||
| dc9650d5fa | |||
| 8eb40ae748 | |||
| 89184f1d0f | |||
| e899c790b9 | |||
| bd6d695020 | |||
| 20d4626a71 | |||
| 8ff94c5031 | |||
| ee185a0eeb | |||
| 06f8932efd | |||
| 1dc627148c | |||
| 3cdde5351f | |||
| 6e93b8a73d | |||
| 267e8533cf | |||
| d3bfb0a28f | |||
| 5a31bc7058 | |||
| 746bde71bd | |||
| b274ac635c | |||
| 9e0a74e583 | |||
| 0f782f7697 | |||
| 8efde3e9af | |||
| 3bf3137dc4 | |||
| 63ec32d28d | |||
| d2f4177cdb | |||
| 1d958fb7a8 | |||
| fcd580d42e | |||
| 34dab68805 | |||
| 216dd03922 | |||
| 5eef9ac621 | |||
| 6b798d5f7c | |||
| 22ccce0934 | |||
| fe2af14952 | |||
| 8e99ed27e7 | |||
| bb12362cc8 | |||
| 1bfc630a64 | |||
| 987983f8ae | |||
| 657a6118aa | |||
| 43e7e6ec7f | |||
| b8b3c19fbf | |||
| 69298c96a5 | |||
| 7356138872 | |||
| 616966f5df | |||
| a59e277c21 | |||
| 740ae2c3e9 | |||
| 25b7a40f2b | |||
| 2beaab1a2f | |||
| 60793d53c6 | |||
| 4f869c8c81 | |||
| 8955180a35 | |||
| a30cbf5797 | |||
| b2bd6109dc | |||
| 9455ec48d7 | |||
| f751f5defa | |||
| 994edbebbe | |||
| 70959b791c | |||
| 524ece5119 | |||
| 6334bd61b6 | |||
| 2e56edd557 | |||
| 8cae1d21cd | |||
| 1de6ed16eb | |||
| 860cb94f41 | |||
| 6b505704e9 | |||
| 167631451d | |||
| fa5180b94d | |||
| ae01d7be43 | |||
| d5ce39ade1 | |||
| a043dfe8b9 | |||
| 7cfb75e3b3 | |||
| a18f0d982f | |||
| 0e2dc805c2 | |||
| 4c1e11df2c | |||
| 76776d054a | |||
| 45ebd05cb6 | |||
| 0203ce3979 | |||
| 72d10178bf | |||
| 96f4e26d53 | |||
| 4fd86f1b6a | |||
| 2f3ee0aec3 | |||
| a5dde31160 | |||
| b45428df05 | |||
| d938763643 | |||
| e4e2157622 | |||
| 04b349c6c7 | |||
| 7fe3eb7391 | |||
| c1992b577a | |||
| 632283d47f | |||
| 1d9e46997c | |||
| 861ce34022 | |||
| 32e8db322d | |||
| 3df2b72175 | |||
| e7ac4f95be | |||
| e7ed69287b | |||
| 2e80417f53 | |||
| ee435d2bb9 | |||
| bb516946be | |||
| 81157e1cb5 | |||
| 51dfd707a2 | |||
| 7c3bf8601b | |||
| 714195efe5 | |||
| eaeca2d09b | |||
| ffa3b13437 | |||
| 2551e98d11 | |||
| 1bfd7761bc | |||
| de9cb1d0a3 | |||
| b2d32b514a | |||
| 6e53fd6924 | |||
| 8296d2b962 | |||
| d6e66ee1e6 | |||
| a49532b9c5 | |||
| 57d87f4caf | |||
| ec9b30c616 | |||
| 27d8a62ab6 | |||
| 5077814c4a | |||
| ca795a352a | |||
| e59fc36458 | |||
| 39e3657539 | |||
| 6031f70701 | |||
| 3567c9e55f | |||
| 26de4e3fd3 | |||
| cd65c6144d | |||
| d32edbbb1f | |||
| eae48a5538 | |||
| 63eba104d9 | |||
| ae64961735 | |||
| f7bb91320c | |||
| c11071a859 | |||
| 53cbcc22db | |||
| af9dcec3e9 | |||
| d5a4b0d235 | |||
| 3b870403d9 | |||
| 284d822884 | |||
| d881a26ad0 | |||
| 8519edde29 | |||
| a30c467c48 | |||
| 887cd83ebe | |||
| 242d787ca2 | |||
| 5dd2cf7356 | |||
| 5efb70909d | |||
| a60d466774 | |||
| 1c01f36271 | |||
| 3718632551 | |||
| e8f3d5ff9f | |||
| d77e27942d | |||
| 734cc61489 | |||
| 44d489d3d2 | |||
| 3e36ffa9ff | |||
| 12104a96b1 | |||
| 8ab8d65a15 | |||
| f7a8122cef | |||
| 77d9bbb7d6 | |||
| 623def52fd | |||
| d088e35142 | |||
| 5821e55eb8 | |||
| 1ee989c65d | |||
| 62388fb21f | |||
| 13571f84af | |||
| 03fdc06b65 | |||
| 4bce675ae6 | |||
| 7b64623115 | |||
| e268bbf31d | |||
| 5863404de6 | |||
| 2de5996f4e | |||
| 695e79602a | |||
| cf0d958da5 | |||
| 85b0348fa7 | |||
| 15a5d9a876 | |||
| 1baa6dab0c | |||
| 34bb250ba3 | |||
| 598b1b7464 | |||
| e63d4be4e8 | |||
| 65561e7f34 | |||
| da31dadb71 | |||
| 705adbb82a | |||
| 269f9788b6 | |||
| 5e1c5ae384 | |||
| 562eb83bde | |||
| a53db00243 | |||
| 11375729db | |||
| 9fee354e6c | |||
| ec76554d41 | |||
| ddb0817c99 | |||
| 3d6ecd1f72 | |||
| e3ec6565e9 | |||
| 8ed49ead7f | |||
| 49fbca416f | |||
| 82cd438fff | |||
| 946e1bca38 | |||
| e40c81b5bf | |||
| f23418480d | |||
| bb4df39c50 | |||
| 5fec775863 | |||
| a85980fec2 | |||
| f3ea2962e6 | |||
| 3a5af23ab6 | |||
| f9656edc51 | |||
| 5134b47d47 | |||
| d4a183f3bf | |||
| 87e392de6c | |||
| afc1667e64 | |||
| 8d25270c43 | |||
| 929866a770 | |||
| 395bad96a7 | |||
| cd7be006c9 | |||
| f658ba7ee7 | |||
| 7416f4c035 | |||
| 2860159ff7 | |||
| 64fa71ab09 | |||
| ffbba7d4d1 | |||
| fdcc2d8acf | |||
| f1aa4d16af | |||
| a55c5580f3 | |||
| 569e315306 | |||
| acd641845d | |||
| 6b7e6f6788 | |||
| 4248b9c624 | |||
| 6de98d1357 | |||
| 18f21693af | |||
| 6fa500a860 | |||
| 941c02582e | |||
| e56e3924d9 | |||
| d1384a8f69 | |||
| 0488d689aa | |||
| 988a94e669 | |||
| ac7e93ac1c | |||
| bb7e9ee676 | |||
| ac949ce7bd | |||
| 0fa8eed11f | |||
| df8694a128 | |||
| 13df3d96e5 | |||
| e345eb15f2 | |||
| e8b2872a87 | |||
| 2f196e3c9f | |||
| 839b844a10 | |||
| 0cea410529 | |||
| 90397ece64 | |||
| 0b95fc290c | |||
| 9a4e8b6070 | |||
| 924fd16ade | |||
| 0815fe19cc | |||
| 7f445e1b66 | |||
| 31afc60af4 | |||
| 9d34a8aa42 | |||
| 91325ff489 | |||
| 1f99d6df59 | |||
| 8a608a06b8 | |||
| bb34474e59 | |||
| 029c054489 | |||
| 01400d0672 | |||
| a1eafb2c89 | |||
| af88e393f9 | |||
| 3a250ce765 | |||
| d651ac40a8 | |||
| 653324e220 | |||
| e5c6703eaa | |||
| 1596d9c76a | |||
| 4aacf74e25 | |||
| ae58bc7c11 | |||
| 387125d983 | |||
| aa5f9297b2 | |||
| 8c4a7e766f | |||
| d7f32d3901 | |||
| d4f09e2a31 | |||
| 8b5fe4f2a0 | |||
| 98fc4a917f | |||
| e633530a36 | |||
| bfea9915b9 | |||
| d68ed6e75d | |||
| a22631d768 | |||
| 552bf84e33 | |||
| 28d0251093 | |||
| f3d969f658 | |||
| 2afe95d090 | |||
| 3692a6b265 | |||
| 8fc19358bb | |||
| c8f9773d83 | |||
| e1091db82f | |||
| 9f8ed13434 | |||
| 914f03d5eb | |||
| a801f6d4ce | |||
| fde5a7b4ca | |||
| 0e1fff6339 | |||
| 60fdeac2e9 | |||
| 3b3f10d448 | |||
| 48a4314dd2 | |||
| 9beff3a24a | |||
| 1ef90c7a61 | |||
| 5c886d181e | |||
| da4d830163 | |||
| c7abb7986c | |||
| 5a3b3d8a06 | |||
| 127cee03df | |||
| 7455748d54 | |||
| e278d0e768 | |||
| a5acc12239 | |||
| a25afb9771 | |||
| 6252a472b5 | |||
| dbe4c662c1 | |||
| b77a261c87 | |||
| 351c54cc50 | |||
| 72d0b13ad5 | |||
| bea2a6541c | |||
| 5258e98f54 | |||
| af9d42721c | |||
| 8ed43f5c3e | |||
| ec02a87c2b | |||
| 6c2ec04d40 | |||
| 9f91cdf0b9 | |||
| 8ada68ce54 | |||
| d7975634af | |||
| 87be68fecf | |||
| b42d5fd412 | |||
| 603228b944 | |||
| c62f676813 | |||
| c7654c27a6 | |||
| b00bf05fea | |||
| 29bd07d4ef | |||
| b7047da89e | |||
| f26334e25f | |||
| b80bc5f788 | |||
| 91549e18ce | |||
| 07fd975935 | |||
| f9d968cf68 | |||
| 6a7e696a60 | |||
| 6734fae1db | |||
| 481fbc20a1 | |||
| 3c120bf561 | |||
| ee65e04974 | |||
| 4ee6bb0eca | |||
| b9839421f2 | |||
| 67601507fa | |||
| c2e5534462 | |||
| f4ea3af6fc | |||
| e0998a3991 | |||
| d67e580d0a | |||
| d6ce54eea4 | |||
| 8b9ec43029 | |||
| 9d68134f0f | |||
| 3d91371870 | |||
| d1c0ef63b0 | |||
| 2a59da61e1 | |||
| 2bc5e21627 | |||
| 7d77bfd12a | |||
| 0ff589c288 | |||
| f3cca092be | |||
| 7218d55f08 | |||
| ec72c74016 | |||
| c946f08235 | |||
| a8543ac349 | |||
| dd3c0e14ed | |||
| a2bc0acd3c | |||
| a34266741a | |||
| dedb9766c9 | |||
| aedd759f50 | |||
| a24c2f6905 | |||
| fac31a10b8 | |||
| fba9f139ed | |||
| 588d9debe8 | |||
| 805c2e0c69 | |||
| 2c2b1440b3 | |||
| 6973f62d74 | |||
| f547c1e714 | |||
| f8ea124b1f | |||
| 820e2aec4d | |||
| 01ce6b2d8f | |||
| b39e0eab7e | |||
| d6fc451d74 | |||
| ac91556fc2 | |||
| ccf639efe6 | |||
| a8aa3b328b | |||
| 74a3b3e73d | |||
| c0e68b57ea | |||
| 0ad4ea26eb | |||
| ea7aafaf5e | |||
| 18043080ba | |||
| 7cd8cf3a77 | |||
| 21da52ec36 | |||
| 7a0c164843 | |||
| 5cf4961f19 | |||
| 68926d145b | |||
| fdc3e4d23d | |||
| f179c837e1 | |||
| 740bb44956 | |||
| 5b953769fe | |||
| 1ae00ce778 | |||
| a01e05c1db | |||
| 63fb3e99f3 | |||
| 6cf7f5d2d8 | |||
| 316eb43303 | |||
| 576112a39a | |||
| 6607223abb | |||
| 9e85b1932d | |||
| 4ba7f5b1f2 | |||
| fc93ae890a | |||
| 8051d01945 | |||
| 63430c59f7 | |||
| c646bfc63f | |||
| 58dea8f69b | |||
| f1c82dcb37 | |||
| b984b66819 | |||
| 44bdae302b | |||
| 8eb6b250fb | |||
| d838c41bf2 | |||
| f9dbf36496 | |||
| fe1427db28 | |||
| 2621ad5604 | |||
| efecf2e1ea | |||
| 8666e6357e | |||
| ae7069c9cb | |||
| 0c6ab3e607 | |||
| 17d6a60c0a | |||
| e3e0a541dc | |||
| 712aa08fbc | |||
| 98c5bf511e | |||
| 1f9281628f | |||
| 8fb15aed17 | |||
| a24c3a8542 | |||
| 8f8059e3f3 | |||
| 24bb462199 | |||
| 38e914f171 | |||
| 4a02c54e8d | |||
| 5fe169438a | |||
| a7ef6e851a | |||
| 4d57b9d0aa | |||
| 5a7452d9f6 | |||
| 3916887aff | |||
| f84f59fa91 | |||
| 1032f8908e | |||
| 6c2e8fc608 | |||
| 012e527fb5 | |||
| 62198c9807 | |||
| de95224d62 | |||
| be374a0464 | |||
| fe9b3186d7 | |||
| 8405ea6c53 | |||
| 4274d05e10 | |||
| 4e80ce1159 | |||
| 52f473f2af | |||
| 1d6ca51bf9 | |||
| e662d0b3dd | |||
| b910d557d1 | |||
| a4ad0a9e97 | |||
| 07f67e7dd7 | |||
| d6575773fb | |||
| ac1303886e | |||
| 1569992184 | |||
| 55a1f1d746 | |||
| ef7742a3cc | |||
| ef48c2020b | |||
| 6dcb25073b | |||
| 4824b07ec8 | |||
| a8f1228fb7 | |||
| 80e51d1d0f | |||
| 80e30638a5 | |||
| dd2fc30364 | |||
| a5865fb5fe | |||
| aca2f28341 | |||
| 7a3f5f7ac9 | |||
| 1731710ef2 | |||
| dc2a8f48bf | |||
| 5e16179bfa | |||
| a7c1bc81b2 | |||
| 5f5ec8ef19 | |||
| 712ff56792 | |||
| 99af1f964c | |||
| de5d1347e5 | |||
| 5e07fbde6d | |||
| c523c7f3b3 | |||
| 6b3c6b0ec7 | |||
| 62b94ab065 | |||
| 49c7399599 | |||
| 5fa9297aba | |||
| 4ada31798b | |||
| e78f953e90 | |||
| af7a9ad8b5 | |||
| 35eae045a6 | |||
| 98a20ae058 | |||
| df9ef6e13a | |||
| 10f5802069 | |||
| 780044219f | |||
| d015c061e7 | |||
| 6f6326d433 | |||
| 9488e7ca13 | |||
| 71c11672c2 | |||
| 0acefa800e | |||
| d45cee4712 | |||
| c026aa05e2 | |||
| 50076c74fa | |||
| 1563d77c06 | |||
| ed72ef8629 | |||
| 06c5996086 | |||
| 570ca857a0 | |||
| f8f20b7afc | |||
| f55ef7ff20 | |||
| 79220a74cf | |||
| 77111ef628 | |||
| bf96063311 | |||
| 58a201fceb | |||
| 47cecb210b | |||
| bfbf744b0a | |||
| 0cf56ac1de | |||
| 2880a718f4 | |||
| da0dd0f7c6 | |||
| c456d3e0ff | |||
| 59059736e6 | |||
| f5cf2ab832 | |||
| cc4ff2582d | |||
| 90f5fde3bb | |||
| 9fbe9f5132 | |||
| f05661fa6c | |||
| d6882c3378 | |||
| e32cab937e | |||
| 14bb939977 | |||
| 13e830782d | |||
| f39bb5e2d9 | |||
| 8b795e81b7 | |||
| aef7eeda5a | |||
| 0641a6f8f1 | |||
| 4fdf7b706b | |||
| 0653b9420a | |||
| 27ede1ce37 | |||
| a303fb9cba | |||
| 92af4e9c3e | |||
| abc4f45fed | |||
| e651f92bd9 | |||
| b2d3d98d72 | |||
| cb8b7f85af | |||
| d30f347a0b | |||
| 5e9b1e7464 | |||
| 58085470c5 | |||
| 8f0de805d5 | |||
| 3f879a1b97 | |||
| 94270c3d98 | |||
| bb8a689186 | |||
| a7e73cdac8 | |||
| d38c324340 | |||
| fade38d522 | |||
| 858a7601aa | |||
| 37e3d3d1d1 | |||
| ff67ab3c86 | |||
| ad7faa8ad9 | |||
| c927166a8a | |||
| 9d22fba842 | |||
| 3d5adf6c42 | |||
| 5ba862cbd7 | |||
| 6f20e056c9 | |||
| 878ab1a8bc | |||
| 4d17494371 | |||
| 65763b9522 | |||
| 52840d40de | |||
| 6892e7a805 | |||
| 24d0264f92 | |||
| 56c37e4e05 | |||
| 86c99102b5 | |||
| de4a23ee1e | |||
| 6a9f7c186a | |||
| eaed22a42b | |||
| f47cf2320e | |||
| eb100e57e2 | |||
| 948548c73f | |||
| 7495ae1e05 | |||
| 51ae17bd0a | |||
| 61d665ef7d | |||
| 5aaf19ffdb | |||
| 2eb672e380 | |||
| 4a59bf686b | |||
| f98ab6f686 | |||
| 3600cd95cd | |||
| f8bd79fbb2 | |||
| 4c403047eb | |||
| 25009de417 | |||
| c4588654ec | |||
| c1e5279272 | |||
| cda8396690 | |||
| c0f79d1e69 | |||
| 375a0fb7a2 | |||
| 2069114ef1 | |||
| f6d9e8724d | |||
| 8e55438200 | |||
| 1ca6feb112 | |||
| 732ce8283f | |||
| 122bd3e07e | |||
| 0ac5cbb837 | |||
| 7f3d4812a8 | |||
| e1fa11c94c | |||
| c06c65acf1 | |||
| a84fa0bc8f | |||
| 054648e02b | |||
| 9548041334 | |||
| da306f2900 | |||
| 26587aea02 | |||
| adc86e0f00 | |||
| a9ed5f075e | |||
| 21e30c980e | |||
| a657b2e55a | |||
| ff8c55b8b6 | |||
| eb36c5bca0 | |||
| 89173ce1ee | |||
| 5d115ba3e3 | |||
| 7e3adeb9c9 | |||
| 080cda86fa | |||
| 6274cbad52 | |||
| 85c4ad821d | |||
| b758a2fea8 | |||
| 6619cc7ca4 | |||
| 961f7a8a62 | |||
| 905287901f | |||
| 669be7bf57 | |||
| 9b8eb2dc4c | |||
| 00ab7b196d | |||
| f616be4bdd | |||
| 8ae9ce8523 | |||
| 6d2bbbd7e2 | |||
| 1453be83b2 | |||
| 8659131be2 | |||
| 0276ce322d | |||
| b36c99a34b | |||
| ad575f1485 | |||
| a9162f1472 | |||
| 221e2554a9 | |||
| 04ec6c3695 | |||
| b1594980fc | |||
| 024a8ef38d | |||
| b281051421 | |||
| aa1b275b51 | |||
| c22ca68857 | |||
| 3804ce3fe3 | |||
| 0977f1db04 | |||
| 83c97934c9 | |||
| 44c9d74caa | |||
| 172f56754a | |||
| dc184cc713 | |||
| 2c30088553 | |||
| 6f0c189afb | |||
| 0e2996c3e1 | |||
| ce8040dd1f | |||
| a8fd2d463d | |||
| 237813127c | |||
| 3e6259532f | |||
| c015441130 | |||
| 9661455fee | |||
| df983b4123 | |||
| 068d5429eb |
@@ -2,3 +2,4 @@
|
|||||||
.gitattributes export-ignore
|
.gitattributes export-ignore
|
||||||
remind.php export-ignore
|
remind.php export-ignore
|
||||||
sync-to-dianne-git export-ignore
|
sync-to-dianne-git export-ignore
|
||||||
|
php export-ignore
|
||||||
|
|||||||
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
liberapay: dskoll
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
# Remind has moved
|
||||||
|
|
||||||
|
For various reasons, I have decided to move Remind off GitHub. This repo
|
||||||
|
will be archived. To create merge requests or issues, please visit
|
||||||
|
Remind's new home at https://salsa.debian.org/dskoll/remind
|
||||||
|
|
||||||
|
-- Dianne Skoll
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
# language: bash
|
||||||
|
---
|
||||||
|
|
||||||
|
name: Remind unit tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
push
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Remind
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Add test user
|
||||||
|
run: |
|
||||||
|
sudo adduser --home /home/testuser --gecos 'Test User' --disabled-password testuser
|
||||||
|
- name: Fix ownership
|
||||||
|
run: |
|
||||||
|
sudo chown -R testuser .
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
sudo su -c './configure && make' testuser
|
||||||
|
- name: Run Tests
|
||||||
|
run: |
|
||||||
|
sudo su -c 'make test' testuser
|
||||||
|
- name: Fix up permissions so GitHub does not complain
|
||||||
|
run: |
|
||||||
|
sudo chmod -R a+rwX .
|
||||||
+20
-9
@@ -1,26 +1,37 @@
|
|||||||
rem2pdf/Makefile.old
|
|
||||||
*.bak
|
*.bak
|
||||||
*.o
|
*.o
|
||||||
*~
|
*~
|
||||||
.gitignore
|
.gitignore
|
||||||
|
MYMETA.json
|
||||||
|
MYMETA.yml
|
||||||
|
Makefile
|
||||||
TAGS
|
TAGS
|
||||||
autom4te.cache
|
autom4te.cache
|
||||||
|
blib/
|
||||||
config.log
|
config.log
|
||||||
config.status
|
config.status
|
||||||
|
man/rem.1
|
||||||
|
man/rem2ps.1
|
||||||
|
man/remind.1
|
||||||
|
man/tkremind.1
|
||||||
|
pm_to_blib
|
||||||
rem2html/Makefile
|
rem2html/Makefile
|
||||||
|
rem2html/rem2html
|
||||||
|
rem2html/rem2html.1
|
||||||
|
rem2pdf/Makefile.PL
|
||||||
|
rem2pdf/Makefile.old
|
||||||
|
rem2pdf/Makefile.top
|
||||||
|
rem2pdf/bin/rem2pdf
|
||||||
|
scripts/tkremind
|
||||||
|
set-irc-topic
|
||||||
src/*.tar.gz*
|
src/*.tar.gz*
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/config.h
|
src/config.h
|
||||||
src/rem2ps
|
src/rem2ps
|
||||||
src/remind
|
src/remind
|
||||||
|
src/test-*.out
|
||||||
src/version.h
|
src/version.h
|
||||||
tests/test.out
|
tests/test.out
|
||||||
www/Makefile
|
www/Makefile
|
||||||
rem2pdf/Makefile.PL
|
gmon.out
|
||||||
MYMETA.json
|
tests/once.timestamp
|
||||||
MYMETA.yml
|
|
||||||
Makefile
|
|
||||||
blib/
|
|
||||||
pm_to_blib
|
|
||||||
rem2pdf/Makefile.top
|
|
||||||
rem2pdf/bin/rem2pdf
|
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
workflow:
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_BRANCH =~ /wip/
|
||||||
|
when: never
|
||||||
|
|
||||||
|
tests:
|
||||||
|
image: 'debian:stable-slim'
|
||||||
|
before_script:
|
||||||
|
- apt update && apt-get -y install gcc make
|
||||||
|
- useradd --create-home testuser
|
||||||
|
- chown -R testuser .
|
||||||
|
- chmod -R go-w .
|
||||||
|
script:
|
||||||
|
- LANG=C.UTF-8 su testuser -c './configure && make all && make test'
|
||||||
|
artifacts:
|
||||||
|
when: always
|
||||||
|
paths:
|
||||||
|
- tests/test.out
|
||||||
@@ -3,7 +3,7 @@ THE REMIND COPYRIGHT
|
|||||||
1. REMIND refers to the entire set of files and documentation in the
|
1. REMIND refers to the entire set of files and documentation in the
|
||||||
REMIND package.
|
REMIND package.
|
||||||
|
|
||||||
2. REMIND is Copyright 1992-2021 Dianne Skoll, except where noted in
|
2. REMIND is Copyright 1992-2024 Dianne Skoll, except where noted in
|
||||||
individual files.
|
individual files.
|
||||||
|
|
||||||
3. DISTRIBUTION AND USE
|
3. DISTRIBUTION AND USE
|
||||||
@@ -16,7 +16,7 @@ individual files.
|
|||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
675 Mass Ave, Cambridge, MA 02139, USA
|
51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
MICROSOFT WINDOWS
|
|
||||||
=================
|
|
||||||
|
|
||||||
I used to prohibit porting Remind to Microsoft Windows. However, this
|
|
||||||
may cause problems with the GPL, so I have removed that restriction.
|
|
||||||
|
|
||||||
Although I cannot prevent you from porting Remind to Windows, I appeal
|
|
||||||
to you not to do it. I am trying to encourage the growth of free
|
|
||||||
software, not proprietary software.
|
|
||||||
|
|
||||||
If you port Remind to Windows, I will not provide support or answers to
|
|
||||||
questions -- you're on your own. On the other hand, I will feel no guilt
|
|
||||||
in taking enhancements and merging them into the UNIX stream.
|
|
||||||
|
|
||||||
APPLE
|
|
||||||
=====
|
|
||||||
|
|
||||||
I can't prevent you from using Remind on Apple's products, but I hope
|
|
||||||
you don't. Apple's corporate culture is the very antithesis of Free
|
|
||||||
Software. Rather than using Mac OS X, I encourage you to switch to
|
|
||||||
Linux or FreeBSD, two Free Software operating systems that are every
|
|
||||||
bit as capable as Mac OS X and which are unencumbered by Apple's
|
|
||||||
arbitrary restrictions.
|
|
||||||
|
|
||||||
And if you're looking to port Remind to other Apple products like the
|
|
||||||
iPhone or iPad, please don't. Those products enforce Apple's rigorous
|
|
||||||
controls much more stringently than Mac OS X on an Apple PC.
|
|
||||||
|
|
||||||
--
|
|
||||||
Dianne Skoll
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
# Top-level Makefile for Remind.
|
# Top-level Makefile for Remind.
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
all: src/Makefile
|
all: src/Makefile
|
||||||
@echo ""
|
@echo ""
|
||||||
@@ -12,25 +13,38 @@ all: src/Makefile
|
|||||||
@$(MAKE) -C rem2pdf -f Makefile.top
|
@$(MAKE) -C rem2pdf -f Makefile.top
|
||||||
install:
|
install:
|
||||||
@echo ""
|
@echo ""
|
||||||
@echo "*********************"
|
@echo "**********************************"
|
||||||
@echo "* *"
|
@echo "* *"
|
||||||
@echo "* Installing REMIND *"
|
@echo "* Installing REMIND (unstripped) *"
|
||||||
@echo "* *"
|
@echo "* *"
|
||||||
@echo "*********************"
|
@echo "**********************************"
|
||||||
@echo ""
|
@echo ""
|
||||||
@$(MAKE) -C src install
|
@$(MAKE) -C src install
|
||||||
@$(MAKE) -C rem2html install
|
@$(MAKE) -C rem2html install
|
||||||
@$(MAKE) -C rem2pdf -f Makefile.top install
|
@$(MAKE) -C rem2pdf -f Makefile.top install INSTALL_BASE=$(INSTALL_BASE)
|
||||||
clean:
|
clean:
|
||||||
find . -name '*~' -exec rm {} \;
|
find . -name '*~' -exec rm {} \;
|
||||||
$(MAKE) -C src clean
|
-rm man/rem.1 man/rem2ps.1 man/remind.1 man/tkremind.1 scripts/tkremind
|
||||||
|
-$(MAKE) -C src clean
|
||||||
-$(MAKE) -C rem2pdf clean
|
-$(MAKE) -C rem2pdf clean
|
||||||
|
|
||||||
|
install-stripped:
|
||||||
|
@echo ""
|
||||||
|
@echo "********************************"
|
||||||
|
@echo "* *"
|
||||||
|
@echo "* Installing REMIND (stripped) *"
|
||||||
|
@echo "* *"
|
||||||
|
@echo "**********************************"
|
||||||
|
@echo ""
|
||||||
|
@$(MAKE) -C src install-stripped
|
||||||
|
@$(MAKE) -C rem2html install
|
||||||
|
@$(MAKE) -C rem2pdf -f Makefile.top install INSTALL_BASE=$(INSTALL_BASE)
|
||||||
|
|
||||||
test:
|
test:
|
||||||
@$(MAKE) -C src -s test
|
@$(MAKE) -C src -s test
|
||||||
|
|
||||||
distclean: clean
|
distclean: clean
|
||||||
rm -f config.cache config.log config.status src/Makefile src/config.h tests/test.out www/Makefile rem2pdf/Makefile.top rem2pdf/Makefile.old rem2pdf/Makefile rem2pdf/Makefile.PL rem2pdf/bin/rem2pdf
|
rm -f config.cache config.log config.status src/Makefile src/config.h tests/test.out www/Makefile rem2pdf/Makefile.top rem2pdf/Makefile.old rem2pdf/Makefile rem2pdf/Makefile.PL rem2pdf/bin/rem2pdf rem2html/rem2html
|
||||||
|
|
||||||
src/Makefile: src/Makefile.in
|
src/Makefile: src/Makefile.in
|
||||||
./configure
|
./configure
|
||||||
|
|||||||
@@ -34,5 +34,45 @@ If you do NOT have Tcl/Tk or are NOT running X Windows:
|
|||||||
|
|
||||||
5) Type: "make install" -- you may need to be root to do this.
|
5) Type: "make install" -- you may need to be root to do this.
|
||||||
|
|
||||||
|
PREREQUISITES:
|
||||||
|
--------------
|
||||||
|
|
||||||
|
Remind and rem2ps have no prerequisites beyond the standard C library and
|
||||||
|
the standard math library.
|
||||||
|
|
||||||
|
Rem2HTML requires the JSON::MaybeXS Perl module.
|
||||||
|
Rem2PDF requires the JSON::MaybeXS, Pango and Cairo Perl modules.
|
||||||
|
|
||||||
|
- On Debian-like systems, these prerequisites may be installed with:
|
||||||
|
|
||||||
|
apt install libjson-maybexs-perl libpango-perl libcairo-perl
|
||||||
|
|
||||||
|
- On RPM-based systems, you need perl-Pango, perl-Cairo and perl-JSON-MaybeXS
|
||||||
|
|
||||||
|
- On Gentoo, you need dev-perl/Pango, dev-perl/Cairo and dev-perl/JSON-MaybeXS.
|
||||||
|
|
||||||
|
- On Arch linux, you need pango-perl, cairo-perl and perl-json-maybexs
|
||||||
|
|
||||||
|
TkRemind requires Tcl/Tk and the tcllib library.
|
||||||
|
|
||||||
|
- On Debian-like systems, install with:
|
||||||
|
|
||||||
|
apt install tcl tk tcllib
|
||||||
|
|
||||||
|
- On RPM-based systems, you need tcl, tk and tcllib
|
||||||
|
|
||||||
|
- On Arch Linux, you need tk and tcllib. The latter is available at
|
||||||
|
https://aur.archlinux.org/packages/tcllib
|
||||||
|
|
||||||
|
If the little arrows for "Previous Month" and "Next Month" do not display
|
||||||
|
correctly in TkRemind, you may need to install the Noto Fonts. Install
|
||||||
|
all of your distribution's Nonto Font-related packages.
|
||||||
|
|
||||||
|
- On Debian-like systems, install with:
|
||||||
|
|
||||||
|
apt install fonts-noto-core fonts-noto-color-emoji \
|
||||||
|
fonts-noto-extra fonts-noto-ui-core fonts-noto-ui-extra
|
||||||
|
|
||||||
|
==========================================================================
|
||||||
Contact info: mailto:dianne@skoll.ca
|
Contact info: mailto:dianne@skoll.ca
|
||||||
Home page: https://dianne.skoll.ca/projects/remind/
|
Home page: https://dianne.skoll.ca/projects/remind/
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# -*-Mode: TCL;-*-
|
# -*-Mode: TCL;-*-
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
#--------------------------------------------------------------
|
#--------------------------------------------------------------
|
||||||
# BUILD.TK
|
# BUILD.TK
|
||||||
@@ -14,6 +15,8 @@
|
|||||||
# the next line restarts using wish \
|
# the next line restarts using wish \
|
||||||
exec wish "$0" "$@"
|
exec wish "$0" "$@"
|
||||||
|
|
||||||
|
global RemindExecutable
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
# %PROCEDURE: SetConfigDefaults
|
# %PROCEDURE: SetConfigDefaults
|
||||||
# %ARGUMENTS:
|
# %ARGUMENTS:
|
||||||
@@ -26,10 +29,10 @@ exec wish "$0" "$@"
|
|||||||
proc SetConfigDefaults {} {
|
proc SetConfigDefaults {} {
|
||||||
global Config
|
global Config
|
||||||
set Config(LAT_DEG) 45
|
set Config(LAT_DEG) 45
|
||||||
set Config(LAT_MIN) 24
|
set Config(LAT_MIN) 25
|
||||||
set Config(LAT_SEC) 14
|
set Config(LAT_SEC) 14
|
||||||
set Config(LON_DEG) 75
|
set Config(LON_DEG) 75
|
||||||
set Config(LON_MIN) 39
|
set Config(LON_MIN) 41
|
||||||
set Config(LON_SEC) 23
|
set Config(LON_SEC) 23
|
||||||
set Config(LOCATION) "Ottawa"
|
set Config(LOCATION) "Ottawa"
|
||||||
set Config(DEFAULT_PAGE) "Letter"
|
set Config(DEFAULT_PAGE) "Letter"
|
||||||
@@ -37,9 +40,8 @@ proc SetConfigDefaults {} {
|
|||||||
set Config(TIMESEP) ":"
|
set Config(TIMESEP) ":"
|
||||||
set Config(NORTHERN_HEMISPHERE) 1
|
set Config(NORTHERN_HEMISPHERE) 1
|
||||||
set Config(WESTERN_HEMISPHERE) 1
|
set Config(WESTERN_HEMISPHERE) 1
|
||||||
set Config(LANGUAGE) "English"
|
|
||||||
set Config(INST_DIR) "/usr/local/bin"
|
set Config(INST_DIR) "/usr/local/bin"
|
||||||
set Config(MAN_DIR) "/usr/local/man"
|
set Config(MAN_DIR) "/usr/local/share/man"
|
||||||
}
|
}
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
@@ -52,7 +54,7 @@ proc SetConfigDefaults {} {
|
|||||||
# Pops up an error dialog; then calls exit.
|
# Pops up an error dialog; then calls exit.
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
proc Bail { msg } {
|
proc Bail { msg } {
|
||||||
tk_dialog .err "Remind Configuration Error" $msg error 0 "Bummer"
|
tk_messageBox -message "Remind Build Error" -detail $msg -icon error -type ok
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -123,7 +125,7 @@ proc CreateMainDialog {} {
|
|||||||
# Creates the "installation directories" dialog.
|
# Creates the "installation directories" dialog.
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
proc CreateInstallDirDialog { w } {
|
proc CreateInstallDirDialog { w } {
|
||||||
global Config
|
global Config RemindExecutable
|
||||||
label $w.binlabel -text "Location for programs: "
|
label $w.binlabel -text "Location for programs: "
|
||||||
entry $w.bin -width 30
|
entry $w.bin -width 30
|
||||||
$w.bin insert end $Config(INST_DIR)
|
$w.bin insert end $Config(INST_DIR)
|
||||||
@@ -132,16 +134,19 @@ proc CreateInstallDirDialog { w } {
|
|||||||
entry $w.man -width 30
|
entry $w.man -width 30
|
||||||
$w.man insert end $Config(MAN_DIR)
|
$w.man insert end $Config(MAN_DIR)
|
||||||
|
|
||||||
text $w.blurb -width 1 -height 5 -wrap word -relief flat -takefocus 0
|
text $w.blurb -width 1 -height 20 -wrap word -relief flat -takefocus 0
|
||||||
$w.blurb insert end "\n(Tabbed-notebook Tcl code taken from \"Effective Tcl/Tk Programming\" by Mark Harrison and Michael McLennan, Addison-Wesley Professional Computing Series.)"
|
if { "$RemindExecutable" != "" } {
|
||||||
$w.blurb configure -state disabled
|
$w.blurb insert end "Note: Default settings were obtained by querying the existing installed version of Remind found at: $RemindExecutable\n"
|
||||||
# Disable all text-window behaviour
|
}
|
||||||
bindtags $w.blurb {NoSuchTag}
|
$w.blurb insert end "\n(Tabbed-notebook Tcl code taken from \"Effective Tcl/Tk Programming\" by Mark Harrison and Michael McLennan, Addison-Wesley Professional Computing Series.)\n"
|
||||||
grid $w.binlabel -row 0 -column 0 -sticky e
|
grid $w.binlabel -row 0 -column 0 -sticky e
|
||||||
grid $w.bin -row 0 -column 1 -sticky nsew
|
grid $w.bin -row 0 -column 1 -sticky nsew
|
||||||
grid $w.manlabel -row 1 -column 0 -sticky e
|
grid $w.manlabel -row 1 -column 0 -sticky e
|
||||||
grid $w.man -row 1 -column 1 -sticky nsew
|
grid $w.man -row 1 -column 1 -sticky nsew
|
||||||
grid $w.blurb - -sticky nsew
|
grid $w.blurb - -sticky nsew
|
||||||
|
# Disable all text-window behaviour
|
||||||
|
bindtags $w.blurb {NoSuchTag}
|
||||||
|
$w.blurb configure -state disabled
|
||||||
}
|
}
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
@@ -190,7 +195,7 @@ proc CreateLocationDialog { w } {
|
|||||||
grid $w.north $w.west
|
grid $w.north $w.west
|
||||||
grid $w.south $w.east
|
grid $w.south $w.east
|
||||||
grid $w.loclab -sticky e
|
grid $w.loclab -sticky e
|
||||||
grid $w.location -sticky nsew -row 6 -column 1
|
grid $w.location -sticky nsew -row 8 -column 1
|
||||||
}
|
}
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
@@ -236,32 +241,6 @@ proc CreateOptionsDialog { w } {
|
|||||||
|
|
||||||
grid configure $w.timelabel -row 2 -column 0 -sticky e
|
grid configure $w.timelabel -row 2 -column 0 -sticky e
|
||||||
grid configure $w.time -row 2 -column 1 -sticky nsew
|
grid configure $w.time -row 2 -column 1 -sticky nsew
|
||||||
|
|
||||||
label $w.langlabel -text "Language: "
|
|
||||||
menubutton $w.lang -text $Config(LANGUAGE) -indicatoron 1 -relief raised \
|
|
||||||
-menu $w.lang.menu
|
|
||||||
menu $w.lang.menu -tearoff 0
|
|
||||||
foreach lang {
|
|
||||||
"Brazilian Portuguese"
|
|
||||||
"Danish"
|
|
||||||
"Dutch"
|
|
||||||
"English"
|
|
||||||
"Finnish"
|
|
||||||
"French"
|
|
||||||
"German"
|
|
||||||
"Italian"
|
|
||||||
"Norwegian"
|
|
||||||
"Polish"
|
|
||||||
"Romanian"
|
|
||||||
"Spanish"
|
|
||||||
"Icelandic"
|
|
||||||
} {
|
|
||||||
$w.lang.menu add command -label $lang -command [list $w.lang configure -text $lang]
|
|
||||||
}
|
|
||||||
|
|
||||||
grid configure $w.langlabel -row 3 -column 0 -sticky e
|
|
||||||
grid configure $w.lang -row 3 -column 1 -sticky nsew
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
@@ -292,9 +271,9 @@ proc BuildRemind {} {
|
|||||||
|
|
||||||
.msgs insert end "\n>>> Creating src/custom.h...\n\n" green
|
.msgs insert end "\n>>> Creating src/custom.h...\n\n" green
|
||||||
CreateCustomH
|
CreateCustomH
|
||||||
.msgs insert end ">>> Calling `./configure'...\n\n" green
|
.msgs insert end "\n>>> Calling `./configure'...\n\n" green
|
||||||
CallConfigure
|
CallConfigure
|
||||||
.msgs insert end ">>> Calling `make'...\n\n" green
|
.msgs insert end "\n>>> Calling `make'...\n\n" green
|
||||||
CallMake
|
CallMake
|
||||||
.msgs insert end "\n----------------------------------------------\n\n"
|
.msgs insert end "\n----------------------------------------------\n\n"
|
||||||
.msgs insert end "Remind" red
|
.msgs insert end "Remind" red
|
||||||
@@ -355,7 +334,7 @@ proc RunCommand { cmd } {
|
|||||||
# %RETURNS:
|
# %RETURNS:
|
||||||
# Nothing
|
# Nothing
|
||||||
# %DESCRIPTION:
|
# %DESCRIPTION:
|
||||||
# Reads characters from command pipelin and appends them to .msg.
|
# Reads characters from command pipeline and appends them to .msg.
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
proc CommandReadable { f } {
|
proc CommandReadable { f } {
|
||||||
global CmdDone
|
global CmdDone
|
||||||
@@ -446,12 +425,12 @@ proc CreateCustomH {} {
|
|||||||
"#define DEFAULT_LATITUDE *" {
|
"#define DEFAULT_LATITUDE *" {
|
||||||
set lat [expr $LAT_DEG + ($LAT_MIN/60.0) + ($LAT_SEC/3600.0)];
|
set lat [expr $LAT_DEG + ($LAT_MIN/60.0) + ($LAT_SEC/3600.0)];
|
||||||
puts $out "#define DEFAULT_LATITUDE $lat"
|
puts $out "#define DEFAULT_LATITUDE $lat"
|
||||||
.msgs insert end "#define DEFAULT_LATITUDE $lat"
|
.msgs insert end "#define DEFAULT_LATITUDE $lat\n"
|
||||||
}
|
}
|
||||||
"#define DEFAULT_LONGITUDE *" {
|
"#define DEFAULT_LONGITUDE *" {
|
||||||
set lon [expr -1.0 * ($LON_DEG + ($LON_MIN/60.0) + ($LON_SEC/3600.0))]
|
set lon [expr -1.0 * ($LON_DEG + ($LON_MIN/60.0) + ($LON_SEC/3600.0))]
|
||||||
puts $out "#define DEFAULT_LONGITUDE $lon"
|
puts $out "#define DEFAULT_LONGITUDE $lon"
|
||||||
.msgs insert end "#define DEFAULT_LONGITUDE $lon"
|
.msgs insert end "#define DEFAULT_LONGITUDE $lon\n"
|
||||||
}
|
}
|
||||||
"#define LOCATION *" {
|
"#define LOCATION *" {
|
||||||
puts $out "#define LOCATION \"$Config(LOCATION)\""
|
puts $out "#define LOCATION \"$Config(LOCATION)\""
|
||||||
@@ -485,27 +464,17 @@ proc CreateCustomH {} {
|
|||||||
# %RETURNS:
|
# %RETURNS:
|
||||||
# Nothing
|
# Nothing
|
||||||
# %DESCRIPTION:
|
# %DESCRIPTION:
|
||||||
# Runs "make" with appropriate language definitions
|
# Runs "make"
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
proc CallMake {} {
|
proc CallMake {} {
|
||||||
global Options
|
global Options
|
||||||
set lang [$Options.lang cget -text]
|
set nproc 0
|
||||||
switch -- $lang {
|
catch { set nproc [exec nproc] }
|
||||||
"German" { set lang GERMAN }
|
if { $nproc != 0 } {
|
||||||
"Dutch" { set lang DUTCH }
|
RunCommand "make -j $nproc"
|
||||||
"Finnish" { set lang FINNISH }
|
} else {
|
||||||
"French" { set lang FRENCH }
|
RunCommand "make"
|
||||||
"Norwegian" { set lang NORWEGIAN }
|
|
||||||
"Danish" { set lang DANISH }
|
|
||||||
"Polish" { set lang POLISH }
|
|
||||||
"Brazilian Portuguese" { set lang BRAZPORT }
|
|
||||||
"Italian" { set lang ITALIAN }
|
|
||||||
"Romanian" { set lang ROMANIAN }
|
|
||||||
"Spanish" { set lang SPANISH }
|
|
||||||
"Icelandic" { set lang ICELANDIC }
|
|
||||||
default { set lang ENGLISH }
|
|
||||||
}
|
}
|
||||||
RunCommand "make \"LANGDEF=-DLANG=$lang\""
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -720,7 +689,7 @@ proc notebook_fix_size {win} {
|
|||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
proc FindRemind {} {
|
proc FindRemind {} {
|
||||||
global env
|
global env
|
||||||
set path [concat [split $env(PATH) ":"] "/bin" "/usr/bin" "/usr/local/bin"]
|
set path [concat [split $env(PATH) ":"] "/usr/local/bin" "/bin" "/usr/bin" ]
|
||||||
foreach thing $path {
|
foreach thing $path {
|
||||||
if [file executable [file join $thing "remind"]] {
|
if [file executable [file join $thing "remind"]] {
|
||||||
return [file join $thing "remind"]
|
return [file join $thing "remind"]
|
||||||
@@ -738,16 +707,17 @@ proc FindRemind {} {
|
|||||||
# sensible defaults.
|
# sensible defaults.
|
||||||
#***********************************************************************
|
#***********************************************************************
|
||||||
proc SetConfigFromRemind {} {
|
proc SetConfigFromRemind {} {
|
||||||
global Config
|
global Config RemindExecutable
|
||||||
SetConfigDefaults
|
SetConfigDefaults
|
||||||
set rem [FindRemind]
|
set rem [FindRemind]
|
||||||
|
set RemindExecutable $rem
|
||||||
if {"$rem" == ""} {
|
if {"$rem" == ""} {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
set dir [file dirname $rem]
|
set dir [file dirname $rem]
|
||||||
set Config(INST_DIR) $dir
|
set Config(INST_DIR) $dir
|
||||||
if {"$dir" == "/usr/local/bin"} {
|
if {"$dir" == "/usr/local/bin"} {
|
||||||
set Config(MAN_DIR) "/usr/local/man"
|
set Config(MAN_DIR) "/usr/local/share/man"
|
||||||
} elseif {$dir == "/usr/bin"} {
|
} elseif {$dir == "/usr/bin"} {
|
||||||
set Config(MAN_DIR) "/usr/share/man"
|
set Config(MAN_DIR) "/usr/share/man"
|
||||||
}
|
}
|
||||||
@@ -757,6 +727,8 @@ proc SetConfigFromRemind {} {
|
|||||||
set Config(MAN_DIR) "/usr/share/man"
|
set Config(MAN_DIR) "/usr/share/man"
|
||||||
} elseif {[file readable "/usr/man/man1/remind.1"]} {
|
} elseif {[file readable "/usr/man/man1/remind.1"]} {
|
||||||
set Config(MAN_DIR) "/usr/man"
|
set Config(MAN_DIR) "/usr/man"
|
||||||
|
} elseif {[file readable "/usr/local/share/man/man1/remind.1"]} {
|
||||||
|
set Config(MAN_DIR) "/usr/local/share/man"
|
||||||
} elseif {[file readable "/usr/local/man/man1/remind.1"]} {
|
} elseif {[file readable "/usr/local/man/man1/remind.1"]} {
|
||||||
set Config(MAN_DIR) "/usr/local/man"
|
set Config(MAN_DIR) "/usr/local/man"
|
||||||
}
|
}
|
||||||
@@ -771,7 +743,6 @@ proc SetConfigFromRemind {} {
|
|||||||
QueryRemind $rem LOCATION {$Location}
|
QueryRemind $rem LOCATION {$Location}
|
||||||
QueryRemind $rem DATESEP {$DateSep}
|
QueryRemind $rem DATESEP {$DateSep}
|
||||||
QueryRemind $rem TIMESEP {$TimeSep}
|
QueryRemind $rem TIMESEP {$TimeSep}
|
||||||
QueryRemind $rem LANGUAGE {language()}
|
|
||||||
|
|
||||||
set $Config(LAT_MIN) [expr abs($Config(LAT_MIN))]
|
set $Config(LAT_MIN) [expr abs($Config(LAT_MIN))]
|
||||||
set $Config(LAT_SEC) [expr abs($Config(LAT_SEC))]
|
set $Config(LAT_SEC) [expr abs($Config(LAT_SEC))]
|
||||||
|
|||||||
+101
@@ -0,0 +1,101 @@
|
|||||||
|
dnl Process this file with autoconf to produce a configure script.
|
||||||
|
|
||||||
|
AC_INIT(remind, 05.02.00, , , https://dianne.skoll.ca/projects/remind/)
|
||||||
|
AC_CONFIG_SRCDIR([src/queue.c])
|
||||||
|
|
||||||
|
cat <<'EOF'
|
||||||
|
|
||||||
|
**********************
|
||||||
|
* *
|
||||||
|
* Configuring REMIND *
|
||||||
|
* *
|
||||||
|
**********************
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
AC_CONFIG_HEADERS([src/config.h])
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(perl-build-artifacts,
|
||||||
|
[ --disable-perl-build-artifacts
|
||||||
|
Disable perllocal.pod and .packlist generation], ac_cv_perlartifacts=$enableval, ac_cv_perlartifacts=yes)
|
||||||
|
|
||||||
|
AH_BOTTOM([#include <custom.h>])
|
||||||
|
|
||||||
|
dnl Checks for programs.
|
||||||
|
AC_PROG_CC
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
AC_PROG_LN_S
|
||||||
|
AC_PROG_MAKE_SET
|
||||||
|
AC_PATH_PROG([PERL], [perl])
|
||||||
|
|
||||||
|
dnl Checks for libraries.
|
||||||
|
AC_CHECK_LIB(m, sqrt)
|
||||||
|
AC_CHECK_HEADERS_ONCE([sys/time.h stdint.h])
|
||||||
|
|
||||||
|
dnl Integer sizes
|
||||||
|
AC_CHECK_SIZEOF(unsigned int)
|
||||||
|
AC_CHECK_SIZEOF(unsigned long)
|
||||||
|
AC_CHECK_SIZEOF(time_t)
|
||||||
|
|
||||||
|
dnl Checks for header files.
|
||||||
|
AC_CHECK_HEADERS(strings.h sys/types.h glob.h wctype.h locale.h langinfo.h sys/inotify.h)
|
||||||
|
|
||||||
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
AC_STRUCT_TM
|
||||||
|
|
||||||
|
if test "$GCC" = yes; then
|
||||||
|
CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes"
|
||||||
|
# Check for link-time optimization support
|
||||||
|
f=-flto=auto
|
||||||
|
AC_MSG_CHECKING([whether $CC supports $f])
|
||||||
|
if $CC -Werror -E $f - < /dev/null > /dev/null 2>&1 ; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
CFLAGS="$CFLAGS $f"
|
||||||
|
f=-ffat-lto-objects
|
||||||
|
AC_MSG_CHECKING([whether $CC supports $f])
|
||||||
|
if $CC -Werror -E $f - < /dev/null > /dev/null 2>&1 ; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
CFLAGS="$CFLAGS $f"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl If sizeof(time_t) is 4, try to get 64-bit time_t
|
||||||
|
if test "$ac_cv_sizeof_time_t" = "4" ; then
|
||||||
|
AC_MSG_NOTICE([time_t is 32-bits on this system; attempting to use 64-bit time_t])
|
||||||
|
CFLAGS="$CFLAGS -D_TIME_BITS=64 -D_FILE_OFFSET_BITS=64"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$ac_cv_perlartifacts" = "yes" ; then
|
||||||
|
PERLARTIFACTS=
|
||||||
|
else
|
||||||
|
PERLARTIFACTS='NO_PACKLIST=1 NO_PERLLOCAL=1'
|
||||||
|
fi
|
||||||
|
|
||||||
|
RELEASE_DATE=`grep '[[0-9]][[0-9]][[0-9]][[0-9]]-[[0-9]][[0-9]]-[[0-9]][[0-9]]' docs/WHATSNEW | head -n 1 | awk '{print $NF}'`
|
||||||
|
|
||||||
|
# Sanity-check release date
|
||||||
|
echo "$RELEASE_DATE" | grep '^....-..-..$' > /dev/null 2>&1
|
||||||
|
if test "$?" != 0 ; then
|
||||||
|
echo "*** COULD NOT DETERMINE RELEASE DATE: docs/WHATSNEW is incorrect!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
AC_CHECK_FUNCS(strdup strcasecmp strncasecmp setenv unsetenv glob mbstowcs setlocale initgroups inotify_init1)
|
||||||
|
|
||||||
|
VERSION=$PACKAGE_VERSION
|
||||||
|
CONFIG_CMD="$0$ac_configure_args_raw"
|
||||||
|
CONFIG_CMD=`echo "$CONFIG_CMD" | sed -e 's/"/\\\\"/g'`
|
||||||
|
AC_DEFINE_UNQUOTED([CONFIG_CMD], ["$CONFIG_CMD"], [Configuration command used to build Remind])
|
||||||
|
AC_SUBST(CONFIG_CMD)
|
||||||
|
AC_SUBST(VERSION)
|
||||||
|
AC_SUBST(PERL)
|
||||||
|
AC_SUBST(PERLARTIFACTS)
|
||||||
|
AC_SUBST(RELEASE_DATE)
|
||||||
|
AC_CONFIG_FILES([src/Makefile www/Makefile src/version.h rem2html/Makefile rem2html/rem2html rem2pdf/Makefile.PL rem2pdf/Makefile.top rem2pdf/bin/rem2pdf man/rem.1 man/rem2ps.1 man/remind.1 man/tkremind.1 scripts/tkremind])
|
||||||
|
AC_OUTPUT
|
||||||
|
chmod a+x rem2pdf/bin/rem2pdf
|
||||||
|
chmod a+x scripts/tkremind
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
dnl Process this file with autoconf to produce a configure script.
|
|
||||||
|
|
||||||
AC_INIT(src/queue.c)
|
|
||||||
|
|
||||||
cat <<'EOF'
|
|
||||||
|
|
||||||
**********************
|
|
||||||
* *
|
|
||||||
* Configuring REMIND *
|
|
||||||
* *
|
|
||||||
**********************
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
AC_CONFIG_HEADER(src/config.h)
|
|
||||||
|
|
||||||
dnl Checks for programs.
|
|
||||||
AC_PROG_CC
|
|
||||||
AC_PROG_INSTALL
|
|
||||||
AC_PROG_LN_S
|
|
||||||
AC_PROG_MAKE_SET
|
|
||||||
AC_PATH_PROG([PERL], [perl])
|
|
||||||
|
|
||||||
dnl Checks for libraries.
|
|
||||||
dnl Replace `main' with a function in -lm:
|
|
||||||
|
|
||||||
AC_CHECK_LIB(m, sqrt)
|
|
||||||
|
|
||||||
dnl Integer sizes
|
|
||||||
AC_CHECK_SIZEOF(unsigned int)
|
|
||||||
AC_CHECK_SIZEOF(unsigned long)
|
|
||||||
|
|
||||||
dnl Checks for header files.
|
|
||||||
AC_CHECK_HEADERS(sys/types.h sys/file.h glob.h wctype.h locale.h)
|
|
||||||
|
|
||||||
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
||||||
AC_STRUCT_TM
|
|
||||||
|
|
||||||
dnl Checks for library functions.
|
|
||||||
AC_FUNC_UTIME_NULL
|
|
||||||
AC_HEADER_TIME
|
|
||||||
|
|
||||||
if test "$GCC" = yes; then
|
|
||||||
CFLAGS="$CFLAGS -Wall -Wextra -Wstrict-prototypes"
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_CHECK_FUNCS(setenv unsetenv glob mbstowcs setlocale initgroups)
|
|
||||||
VERSION=03.04.00
|
|
||||||
AC_SUBST(VERSION)
|
|
||||||
AC_SUBST(PERL)
|
|
||||||
AC_OUTPUT(src/Makefile www/Makefile src/version.h rem2html/Makefile rem2pdf/Makefile.PL rem2pdf/Makefile.top rem2pdf/bin/rem2pdf)
|
|
||||||
chmod a+x rem2pdf/bin/rem2pdf
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
The upstream GitHub project for ical2rem is:
|
||||||
|
|
||||||
|
https://github.com/jbalcorn/ical2rem
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2005, 2007, 2019 Justin B. Alcorn
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
# ical2rem
|
||||||
|
The original iCal to Remind script, first released in 2005.
|
||||||
|
|
||||||
|
Reads iCal files and outputs remind-compatible files. Tested ONLY with
|
||||||
|
calendar files created by Mozilla Calendar/Sunbird. Use at your own risk.
|
||||||
|
|
||||||
|
## License
|
||||||
|
In 2005, this was released with the Gnu Public License V2. However, I am changing it to the MIT License, since that provides greater freedom to do with this code what you want.
|
||||||
|
|
||||||
|
Copyright (c) 2005, 2007, 2019 Justin B. Alcorn
|
||||||
|
|
||||||
|
## How I use Remind and Google Calendar together
|
||||||
|
|
||||||
|
- My family has a Google Email domain, and our email addresses all end in the same domain. We all use Google Calendars and I want to mail reminders to each of the family members containing both Google Calendar and .reminder information.
|
||||||
|
- Under my ~/.rem/ directory each family member has a directory. Each directory contains a standard remind file called 'reminders' that at the very least has the line "INCLUDE /home/jalcorn/.rem/<username>/ical2rem" and flag files indicating whether they want Daily or Weekly reminders. My reminders files references my standard .reminders file, and I also have a flag so if I run a Test run I'll get it. There's actually a lot more files (I have a big family).
|
||||||
|
````
|
||||||
|
./rem
|
||||||
|
./son1:
|
||||||
|
drwxrwxr-x 2 jalcorn jalcorn 4096 Dec 12 14:02 .
|
||||||
|
drwxr-xr-x 12 jalcorn jalcorn 4096 Dec 12 14:13 ..
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 51 Mar 3 06:10 ical2rem
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 33 Oct 27 2016 son1.ics -> /home/jalcorn/calendars/son1.ics
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 976 Dec 12 14:02 reminders
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 0 Oct 27 2016 Weekly
|
||||||
|
|
||||||
|
./justin:
|
||||||
|
drwxrwxr-x 2 jalcorn jalcorn 4096 Feb 27 08:29 .
|
||||||
|
drwxr-xr-x 12 jalcorn jalcorn 4096 Dec 12 14:13 ..
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 32 Oct 27 2016 son1.ics -> /home/jalcorn/calendars/son1.ics
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 0 Nov 7 2016 Daily
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 34 Oct 27 2016 family.ics -> /home/jalcorn/calendars/family.ics
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 37320 Mar 3 06:10 ical2rem
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 34 Oct 27 2016 justin.ics -> /home/jalcorn/calendars/justin.ics
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 24 Nov 7 2016 reminders -> /home/jalcorn/.reminders
|
||||||
|
lrwxrwxrwx 1 jalcorn jalcorn 34 Oct 27 2016 vmd.ics -> /home/jalcorn/calendars/vmd.ics
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 0 Oct 27 2016 Test
|
||||||
|
-rw-rw-r-- 1 jalcorn jalcorn 0 Nov 7 2016 Weekly
|
||||||
|
````
|
||||||
|
- bin/getgooglecals.sh runs out of crontab and downloads whatever calendars I want. Note that we can also download organization calendars, I've included a public one here (Cleveland Heights Vocal Music Department calendar).
|
||||||
|
- dailyreminders.sh is linked to weeklyreminders.sh and testreminders.sh so I can run it in different modes. The concatenate the various calendar outputs as a single remind file then send the reminders via email.
|
||||||
|
### Example: .rem/son1/reminders file:
|
||||||
|
````
|
||||||
|
INCLUDE /home/jalcorn/.rem/defs.rem
|
||||||
|
INCLUDE /home/jalcorn/.rem/float
|
||||||
|
INCLUDE /home/jalcorn/.rem/son1/ical2rem
|
||||||
|
fset _weeks() coerce("STRING", (trigdate()-today())/7) + plural((trigdate()-today())/7, " week")
|
||||||
|
FSET _sfun(x) choose(x, -60, 30, 5, 0)
|
||||||
|
FSET oldfloat(y,m,d) trigger(MAX(realtoday(), date(y,m,d)))
|
||||||
|
FSET due(y,m,d) "(" + (date(y,m,d)-trigdate()) + ")"
|
||||||
|
SET fullmoon moondate(2)
|
||||||
|
REM [trigger(realtoday())] SPECIAL SHADE 145 70 100 %
|
||||||
|
REM [float(2019,4,15,105)] MSG File tax return [due(2017,4,15)]%
|
||||||
|
REM PRIORITY 9999 MSG %"%"%
|
||||||
|
INCLUDE /home/jalcorn/.rem/bdays
|
||||||
|
SET $LongDeg 81
|
||||||
|
SET $LongMin 11
|
||||||
|
SET $LongSec 11
|
||||||
|
SET $LatDeg 41
|
||||||
|
SET $LatMin 11
|
||||||
|
SET $LatSec 11
|
||||||
|
REM [trigger(moondate(2))] +1 MSG %"Full Moon%" %b%
|
||||||
|
fset _srtd() coerce("STRING", _no_lz(_am_pm(sunrise(today()))))
|
||||||
|
fset _sstd() coerce("STRING", _no_lz(_am_pm(sunset(today()))))
|
||||||
|
MSG Sun is up today from [_srtd()] to [_sstd()].%"%"%
|
||||||
|
````
|
||||||
|
## Revision History
|
||||||
|
### Version 0.7 2024-09-04
|
||||||
|
- ISSUE 8: New version of remind complains if _sfun isn't defined. Output a header
|
||||||
|
to define a function that does nothing if the function doesn't exist.
|
||||||
|
### Version 0.6 2019-03-01
|
||||||
|
- Publish on GitHub and change license to MIT License
|
||||||
|
- Add supporting files and explanation of how I use it
|
||||||
|
### version 0.5.2 2007-03-23
|
||||||
|
- BUG: leadtime for recurring events had a max of 4 instead of DEFAULT_LEAD_TIME
|
||||||
|
- remove project-lead-time, since Category was a non-standard attribute
|
||||||
|
- NOTE: There is a bug in iCal::Parser v1.14 that causes multiple calendars to
|
||||||
|
fail if a calendar with recurring events is followed by a calendar with no
|
||||||
|
recurring events. This has been reported to the iCal::Parser author.
|
||||||
|
### version 0.5.1 2007-03-21
|
||||||
|
- BUG: Handle multiple calendars on STDIN
|
||||||
|
- add --heading option for priority on section headers
|
||||||
|
### version 0.5 2007-03-21
|
||||||
|
- Add more help options
|
||||||
|
- --project-lead-time option
|
||||||
|
- Supress printing of heading if there are no todos to print
|
||||||
|
### version 0.4
|
||||||
|
- Version 0.4 changes all written or inspired by, and thanks to Mark Stosberg
|
||||||
|
- Change to GetOptions
|
||||||
|
- Change to pipe
|
||||||
|
- Add --label, --help options
|
||||||
|
- Add Help Text
|
||||||
|
- Change to subroutines
|
||||||
|
- Efficiency and Cleanup
|
||||||
|
### version 0.3
|
||||||
|
- Convert to GPL (Thanks to Mark Stosberg)
|
||||||
|
- Add usage
|
||||||
|
### version 0.2
|
||||||
|
- add command line switches
|
||||||
|
- add debug code
|
||||||
|
- add SCHED _sfun keyword
|
||||||
|
- fix typos
|
||||||
|
### version 0.1 - ALPHA CODE.
|
||||||
|
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
#
|
||||||
|
# cal_futureonly.pl -
|
||||||
|
# Reads iCal files and outputs events between 1 month ago and 1 year from now.
|
||||||
|
# Copyright (c) 2005, 2007, 2019 Justin B. Alcorn
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
cal_futureonly.pl --file=filname.ics > output.ics
|
||||||
|
|
||||||
|
--help Usage
|
||||||
|
--man Complete man page
|
||||||
|
--infile (REQUIRED) name of input calendar file
|
||||||
|
--file (REQUIRED) name of output calendar file
|
||||||
|
|
||||||
|
Expects an ICAL stream on STDIN. Converts it to the format
|
||||||
|
used by the C<remind> script and prints it to STDOUT.
|
||||||
|
|
||||||
|
=head2 --infile
|
||||||
|
|
||||||
|
Input file
|
||||||
|
|
||||||
|
=head2 --file
|
||||||
|
|
||||||
|
Output File
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use Data::ICal;
|
||||||
|
use Data::ICal::Entry;
|
||||||
|
use DateTime::Span;
|
||||||
|
use Data::ICal::DateTime;
|
||||||
|
use DateTime;
|
||||||
|
use Getopt::Long 2.24 qw':config auto_help';
|
||||||
|
use Pod::Usage;
|
||||||
|
use Data::Dumper;
|
||||||
|
use vars '$VERSION';
|
||||||
|
$VERSION = "0.1";
|
||||||
|
|
||||||
|
my $help;
|
||||||
|
my $man;
|
||||||
|
my $infile;
|
||||||
|
my $file;
|
||||||
|
my $debug = 0;
|
||||||
|
|
||||||
|
GetOptions (
|
||||||
|
"help|?" => \$help,
|
||||||
|
"man" => \$man,
|
||||||
|
"debug" => \$debug,
|
||||||
|
"infile=s" => \$infile,
|
||||||
|
"file=s" => \$file
|
||||||
|
);
|
||||||
|
pod2usage(1) if $help;
|
||||||
|
pod2usage(1) if (! $file);
|
||||||
|
pod2usage(-verbose => 2) if $man;
|
||||||
|
|
||||||
|
my $limit = DateTime->now();
|
||||||
|
$limit->subtract( months => 1);
|
||||||
|
my $endlimit = DateTime->now()->add(years =>1);
|
||||||
|
print STDERR "including events from: ",$limit->ymd," to: ".$endlimit->ymd,"\n" if $debug;
|
||||||
|
my $span = DateTime::Span->from_datetimes( start => $limit, end => $endlimit );
|
||||||
|
print STDERR "Parsing $infile\n" if $debug;
|
||||||
|
my $cal = Data::ICal->new(filename => $infile);
|
||||||
|
if (! $cal) {
|
||||||
|
die "Died Trying to read $infile :".$cal->error_message;
|
||||||
|
}
|
||||||
|
#my $archive = Data::ICal->new(filename => 'archive.ics');
|
||||||
|
print "Output = $file\n" if $debug;
|
||||||
|
my $new = Data::ICal->new();
|
||||||
|
if (! $new) {
|
||||||
|
die $new->error_message;
|
||||||
|
}
|
||||||
|
|
||||||
|
my @events = $cal->events($span);
|
||||||
|
$new->add_entries(@events);
|
||||||
|
|
||||||
|
open(NEW, ">$file");
|
||||||
|
print NEW $new->as_string;
|
||||||
|
close NEW;
|
||||||
|
exit 0;
|
||||||
|
#:vim set ft=perl ts=4 sts=4 expandtab :
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
r=`basename $0`
|
||||||
|
|
||||||
|
if [ $r == 'weeklyreminders.sh' ];
|
||||||
|
then
|
||||||
|
t=14;
|
||||||
|
w=Weekly;
|
||||||
|
elif [ $r == 'dailyreminders.sh' ];
|
||||||
|
then
|
||||||
|
t=3;
|
||||||
|
w=Daily;
|
||||||
|
else
|
||||||
|
t=5
|
||||||
|
w=Test;
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd .rem
|
||||||
|
for d in * ;
|
||||||
|
do
|
||||||
|
if [ "$( ls -A $d/$w 2>/dev/null )" ];
|
||||||
|
then
|
||||||
|
echo "Sending a $w reminder to $d"
|
||||||
|
ft=/tmp/$d-t-$$.txt
|
||||||
|
f=/tmp/$d-$$.txt
|
||||||
|
echo "Reminders for next $t days:" >> $f
|
||||||
|
cat /dev/null > $d/ical2rem
|
||||||
|
for c in $d/*.ics
|
||||||
|
do
|
||||||
|
calname=`basename $c .ics | tr a-z A-Z`
|
||||||
|
cat $c 2>/dev/null | sed -e "s/^SUMMARY:/SUMMARY: {${calname}} /" \
|
||||||
|
| sed -e 's/DT\([A-Z]*\);TZID=UTC:\([0-9T]*\)/DT\1:\2Z/' >> $ft
|
||||||
|
done
|
||||||
|
cat $ft | ~/bin/ical2rem.pl --label "Online Calendar" --heading "PRIORITY 9999" --lead-time $t >> $d/ical2rem
|
||||||
|
if [ -e $d/reminders ];then r="${d}/reminders"; else r="${d}/ical2rem";fi
|
||||||
|
/usr/bin/remind -q -iplain=1 $r >> $f
|
||||||
|
echo "
|
||||||
|
All calendars can be accessed by logging into https://calendar.google.com/ as $d@jalcorn.net
|
||||||
|
" >> $f
|
||||||
|
cat $f | mail -s "$w Reminders for $d" $d@jalcorn.net;
|
||||||
|
cat $f
|
||||||
|
rm $f
|
||||||
|
rm $ft
|
||||||
|
fi;
|
||||||
|
done
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Get google calendars, fix issues caused by changes in Google calendars, and remove all past events.
|
||||||
|
#
|
||||||
|
# Obviously, I've removed the private hashes from private calendars.
|
||||||
|
#
|
||||||
|
cd ~/calendars
|
||||||
|
wget -q -O full/justin.ics --no-check-certificate https://www.google.com/calendar/ical/jbalcorn\%40gmail.com/private-aaaaaaaaaaaaaaaaaaaaaaaaaa/basic.ics
|
||||||
|
wget -q -O full/family.ics --no-check-certificate https://www.google.com/calendar/ical/jalcorn.net_aaaaaaaaaaaaaaaaaaaaaaaaaa\%40group.calendar.google.com/private-6c42a79dec0b3b3bb7b9b0ebf9776bc1/basic.ics
|
||||||
|
wget -q -O full/son1.ics --no-check-certificate https://www.google.com/calendar/ical/son1\%40jalcorn.net/private-aaaaaaaaaaaaaaaaaaaaaaaaaa/basic.ics
|
||||||
|
wget -q -O full/vmd.ics --no-check-certificate https://calendar.google.com/calendar/ical/chuh.org_0pmkefjkiqc4snoel7occlslh8%40group.calendar.google.com/public/basic.ics
|
||||||
|
|
||||||
|
for i in full/*.ics;do
|
||||||
|
cat $i 2>/dev/null | sed -e 's/DT\([A-Z]*\);TZID=UTC:\([0-9T]*\)/DT\1:\2Z/' > /tmp/temp.ics
|
||||||
|
cp /tmp/temp.ics $i
|
||||||
|
done
|
||||||
|
|
||||||
|
~/bin/cal_futureonly.pl --infile=full/justin.ics --file=justin.ics
|
||||||
|
~/bin/cal_futureonly.pl --infile=full/family.ics --file=family.ics
|
||||||
|
~/bin/cal_futureonly.pl --infile=full/son1.ics --file=son1.ics
|
||||||
|
~/bin/cal_futureonly.pl --infile=full/vmd.ics --file=vmd.ics
|
||||||
Executable
+396
@@ -0,0 +1,396 @@
|
|||||||
|
#!/usr/bin/perl -w
|
||||||
|
#
|
||||||
|
# ical2rem.pl -
|
||||||
|
# Reads iCal files and outputs remind-compatible files. Tested ONLY with
|
||||||
|
# calendar files created by Mozilla Calendar/Sunbird. Use at your own risk.
|
||||||
|
# MIT License
|
||||||
|
#
|
||||||
|
# Copyright (c) 2005, 2007, 2019 Justin B. Alcorn
|
||||||
|
#
|
||||||
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
|
# in the Software without restriction, including without limitation the rights
|
||||||
|
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
# copies of the Software, and to permit persons to whom the Software is
|
||||||
|
# furnished to do so, subject to the following conditions:
|
||||||
|
#
|
||||||
|
# The above copyright notice and this permission notice shall be included in all
|
||||||
|
# copies or substantial portions of the Software.
|
||||||
|
#
|
||||||
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
# SOFTWARE.
|
||||||
|
#
|
||||||
|
# version 0.8 2024-10-16
|
||||||
|
# - Issue 9. Remove extra day notation on all day events.
|
||||||
|
# version 0.7.1 2024-09-19
|
||||||
|
# - Made sure license statements were consistent
|
||||||
|
# version 0.7 2024-09-04
|
||||||
|
# - Added dummy _sfun to resolve Issue #8
|
||||||
|
# version 0.6 2019-03-01
|
||||||
|
# - Updates to put on GitHub
|
||||||
|
# version 0.5.2 2007-03-23
|
||||||
|
# - BUG: leadtime for recurring events had a max of 4 instead of DEFAULT_LEAD_TIME
|
||||||
|
# - remove project-lead-time, since Category was a non-standard attribute
|
||||||
|
# - NOTE: There is a bug in iCal::Parser v1.14 that causes multiple calendars to
|
||||||
|
# fail if a calendar with recurring events is followed by a calendar with no
|
||||||
|
# recurring events. This has been reported to the iCal::Parser author.
|
||||||
|
# version 0.5.1 2007-03-21
|
||||||
|
# - BUG: Handle multiple calendars on STDIN
|
||||||
|
# - add --heading option for priority on section headers
|
||||||
|
# version 0.5 2007-03-21
|
||||||
|
# - Add more help options
|
||||||
|
# - --project-lead-time option
|
||||||
|
# - Supress printing of heading if there are no todos to print
|
||||||
|
# version 0.4
|
||||||
|
# - Version 0.4 changes all written or inspired by, and thanks to Mark Stosberg
|
||||||
|
# - Change to GetOptions
|
||||||
|
# - Change to pipe
|
||||||
|
# - Add --label, --help options
|
||||||
|
# - Add Help Text
|
||||||
|
# - Change to subroutines
|
||||||
|
# - Efficiency and Cleanup
|
||||||
|
# version 0.3
|
||||||
|
# - Convert to GPL (Thanks to Mark Stosberg)
|
||||||
|
# - Add usage
|
||||||
|
# version 0.2
|
||||||
|
# - add command line switches
|
||||||
|
# - add debug code
|
||||||
|
# - add SCHED _sfun keyword
|
||||||
|
# - fix typos
|
||||||
|
# version 0.1 - ALPHA CODE.
|
||||||
|
|
||||||
|
=head1 SYNOPSIS
|
||||||
|
|
||||||
|
cat /path/to/file*.ics | ical2rem.pl > ~/.ical2rem
|
||||||
|
|
||||||
|
All options have reasonable defaults:
|
||||||
|
--label Calendar name (Default: Calendar)
|
||||||
|
--start Start of time period to parse (parsed by str2time)
|
||||||
|
--end End of time period to parse
|
||||||
|
--lead-time Advance days to start reminders (Default: 3)
|
||||||
|
--todos, --no-todos Process Todos? (Default: Yes)
|
||||||
|
--iso8601 Use YYYY-MM-DD date format
|
||||||
|
--locations, --no-locations Include location? (Default: Yes)
|
||||||
|
--end-times, --no-end-times Include event end times in reminder text
|
||||||
|
(Default: No)
|
||||||
|
--heading Define a priority for static entries
|
||||||
|
--help Usage
|
||||||
|
--debug Enable debug output
|
||||||
|
--man Complete man page
|
||||||
|
|
||||||
|
Expects an ICAL stream on STDIN. Converts it to the format
|
||||||
|
used by the C<remind> script and prints it to STDOUT.
|
||||||
|
|
||||||
|
=head2 --label
|
||||||
|
|
||||||
|
ical2rem.pl --label "Bob's Calendar"
|
||||||
|
|
||||||
|
The syntax generated includes a label for the calendar parsed.
|
||||||
|
By default this is "Calendar". You can customize this with
|
||||||
|
the "--label" option.
|
||||||
|
|
||||||
|
=head2 --iso8601
|
||||||
|
|
||||||
|
Use YYYY-MM-DD date format in output instead of Mmm DD YYYY
|
||||||
|
|
||||||
|
=head2 --locations, --no-locations
|
||||||
|
|
||||||
|
Whether or not to include locations in events
|
||||||
|
|
||||||
|
=head2 --lead-time
|
||||||
|
|
||||||
|
ical2rem.pl --lead-time 3
|
||||||
|
|
||||||
|
How may days in advance to start getting reminders about the events. Defaults to 3.
|
||||||
|
|
||||||
|
=head2 --no-todos
|
||||||
|
|
||||||
|
ical2rem.pl --no-todos
|
||||||
|
|
||||||
|
If you don't care about the ToDos the calendar, this will surpress
|
||||||
|
printing of the ToDo heading, as well as skipping ToDo processing.
|
||||||
|
|
||||||
|
=head2 --heading
|
||||||
|
|
||||||
|
ical2rem.pl --heading "PRIORITY 9999"
|
||||||
|
|
||||||
|
Set an option on static messages output. Using priorities can made the static messages look different from
|
||||||
|
the calendar entries. See the file defs.rem from the remind distribution for more information.
|
||||||
|
|
||||||
|
=cut
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use iCal::Parser;
|
||||||
|
use Date::Parse;
|
||||||
|
use DateTime;
|
||||||
|
use Getopt::Long 2.24 qw':config auto_help';
|
||||||
|
use Pod::Usage;
|
||||||
|
use Data::Dumper;
|
||||||
|
use vars '$VERSION';
|
||||||
|
$VERSION = "0.5.2";
|
||||||
|
|
||||||
|
# Declare how many days in advance to remind
|
||||||
|
my $DEFAULT_LEAD_TIME = 3;
|
||||||
|
my $PROCESS_TODOS = 1;
|
||||||
|
my $HEADING = "";
|
||||||
|
my $help;
|
||||||
|
my $debug;
|
||||||
|
my $man;
|
||||||
|
my $iso8601;
|
||||||
|
my $do_location = 1;
|
||||||
|
my $do_end_times;
|
||||||
|
my $start;
|
||||||
|
my $end;
|
||||||
|
|
||||||
|
my $label = 'Calendar';
|
||||||
|
GetOptions (
|
||||||
|
"label=s" => \$label,
|
||||||
|
"start=s" => \$start,
|
||||||
|
"end=s" => \$end,
|
||||||
|
"lead-time=i" => \$DEFAULT_LEAD_TIME,
|
||||||
|
"todos!" => \$PROCESS_TODOS,
|
||||||
|
"iso8601!" => \$iso8601,
|
||||||
|
"locations!" => \$do_location,
|
||||||
|
"end-times!" => \$do_end_times,
|
||||||
|
"heading=s" => \$HEADING,
|
||||||
|
"help|?" => \$help,
|
||||||
|
"debug" => \$debug,
|
||||||
|
"man" => \$man
|
||||||
|
) or pod2usage(1);
|
||||||
|
pod2usage(1) if $help;
|
||||||
|
pod2usage(-verbose => 2) if $man;
|
||||||
|
|
||||||
|
my $month = ['None','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
|
||||||
|
|
||||||
|
my @calendars;
|
||||||
|
my $in;
|
||||||
|
|
||||||
|
while (<>) {
|
||||||
|
$in .= $_;
|
||||||
|
if (/END:VCALENDAR/) {
|
||||||
|
push(@calendars,$in);
|
||||||
|
$in = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
print STDERR "Read all calendars\n" if $debug;
|
||||||
|
my(%parser_opts) = ("debug" => $debug);
|
||||||
|
if ($start) {
|
||||||
|
my $t = str2time($start);
|
||||||
|
die "Invalid time $start\n" if (! $t);
|
||||||
|
$parser_opts{'start'} = DateTime->from_epoch(epoch => $t);
|
||||||
|
}
|
||||||
|
if ($end) {
|
||||||
|
my $t = str2time($end);
|
||||||
|
die "Invalid time $end\n" if (! $t);
|
||||||
|
$parser_opts{'end'} = DateTime->from_epoch(epoch => $t);
|
||||||
|
}
|
||||||
|
print STDERR "About to parse calendars\n" if $debug;
|
||||||
|
my $parser = iCal::Parser->new(%parser_opts);
|
||||||
|
my $hash = $parser->parse_strings(@calendars);
|
||||||
|
print STDERR "Calendars parsed\n" if $debug;
|
||||||
|
|
||||||
|
##############################################################
|
||||||
|
#
|
||||||
|
# Subroutines
|
||||||
|
#
|
||||||
|
#############################################################
|
||||||
|
#
|
||||||
|
# _process_todos()
|
||||||
|
# expects 'todos' hashref from iCal::Parser is input
|
||||||
|
# returns String to output
|
||||||
|
sub _process_todos {
|
||||||
|
my $todos = shift;
|
||||||
|
|
||||||
|
my ($todo, @newtodos, $leadtime);
|
||||||
|
my $output = "";
|
||||||
|
|
||||||
|
$output .= 'REM '.$HEADING.' MSG '.$label.' ToDos:%"%"%'."\n";
|
||||||
|
|
||||||
|
# For sorting, make sure everything's got something
|
||||||
|
# To sort on.
|
||||||
|
my $now = DateTime->now;
|
||||||
|
for $todo (@{$todos}) {
|
||||||
|
# remove completed items
|
||||||
|
if ($todo->{'STATUS'} && $todo->{'STATUS'} eq 'COMPLETED') {
|
||||||
|
next;
|
||||||
|
} elsif ($todo->{'DUE'}) {
|
||||||
|
# All we need is a due date, everything else is sugar
|
||||||
|
$todo->{'SORT'} = $todo->{'DUE'}->clone;
|
||||||
|
} elsif ($todo->{'DTSTART'}) {
|
||||||
|
# for sorting, sort on start date if there's no due date
|
||||||
|
$todo->{'SORT'} = $todo->{'DTSTART'}->clone;
|
||||||
|
} else {
|
||||||
|
# if there's no due or start date, just make it now.
|
||||||
|
$todo->{'SORT'} = $now;
|
||||||
|
}
|
||||||
|
push(@newtodos,$todo);
|
||||||
|
}
|
||||||
|
if (! (scalar @newtodos)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
# Now sort on the new Due dates and print them out.
|
||||||
|
for $todo (sort { DateTime->compare($a->{'SORT'}, $b->{'SORT'}) } @newtodos) {
|
||||||
|
my $due = $todo->{'SORT'}->clone();
|
||||||
|
my $priority = "";
|
||||||
|
if (defined($todo->{'PRIORITY'})) {
|
||||||
|
if ($todo->{'PRIORITY'} == 1) {
|
||||||
|
$priority = "PRIORITY 1000";
|
||||||
|
} elsif ($todo->{'PRIORITY'} == 3) {
|
||||||
|
$priority = "PRIORITY 7500";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (defined($todo->{'DTSTART'}) && defined($todo->{'DUE'})) {
|
||||||
|
# Lead time is duration of task + lead time
|
||||||
|
my $diff = ($todo->{'DUE'}->delta_days($todo->{'DTSTART'})->days())+$DEFAULT_LEAD_TIME;
|
||||||
|
$leadtime = "+".$diff;
|
||||||
|
} else {
|
||||||
|
$leadtime = "+".$DEFAULT_LEAD_TIME;
|
||||||
|
}
|
||||||
|
$output .= "REM ".$due->month_abbr." ".$due->day." ".$due->year." $leadtime $priority MSG \%a $todo->{'SUMMARY'}\%\"\%\"\%\n";
|
||||||
|
}
|
||||||
|
$output .= 'REM '.$HEADING.' MSG %"%"%'."\n";
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
#
|
||||||
|
# Main Program
|
||||||
|
#
|
||||||
|
######################################################################
|
||||||
|
|
||||||
|
# Issue 8 https://github.com/jbalcorn/ical2rem/issues/8
|
||||||
|
# Make sure there is a _sfun function declared in the reminder file. We'll just make it do nothing here.
|
||||||
|
print 'IF args("_sfun") < 1
|
||||||
|
FSET _sfun(x) choose(x,0)
|
||||||
|
ENDIF
|
||||||
|
';
|
||||||
|
|
||||||
|
print _process_todos($hash->{'todos'}) if $PROCESS_TODOS;
|
||||||
|
|
||||||
|
my ($leadtime, $yearkey, $monkey, $daykey,$uid,%eventsbyuid);
|
||||||
|
print 'REM '.$HEADING.' MSG '.$label.' Events:%"%"%'."\n";
|
||||||
|
my $events = $hash->{'events'};
|
||||||
|
foreach $yearkey (sort keys %{$events} ) {
|
||||||
|
my $yearevents = $events->{$yearkey};
|
||||||
|
foreach $monkey (sort {$a <=> $b} keys %{$yearevents}){
|
||||||
|
my $monevents = $yearevents->{$monkey};
|
||||||
|
foreach $daykey (sort {$a <=> $b} keys %{$monevents} ) {
|
||||||
|
my $dayevents = $monevents->{$daykey};
|
||||||
|
foreach $uid (sort {
|
||||||
|
DateTime->compare($dayevents->{$a}->{'DTSTART'}, $dayevents->{$b}->{'DTSTART'})
|
||||||
|
} keys %{$dayevents}) {
|
||||||
|
my $event = $dayevents->{$uid};
|
||||||
|
if ($eventsbyuid{$uid}) {
|
||||||
|
my $curreventday = $event->{'DTSTART'}->clone;
|
||||||
|
$curreventday->truncate( to => 'day' );
|
||||||
|
$eventsbyuid{$uid}{$curreventday->epoch()} =1;
|
||||||
|
for (my $i = 0;$i < $DEFAULT_LEAD_TIME && !defined($event->{'LEADTIME'});$i++) {
|
||||||
|
if ($eventsbyuid{$uid}{$curreventday->subtract( days => $i+1 )->epoch() }) {
|
||||||
|
$event->{'LEADTIME'} = $i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# Issue 9. Multi-day events have extra day with zero time. Mark this as the date not needed in reminders file so we can skip later
|
||||||
|
# Repeating multi-day events have the same uid so we need to mark each one.
|
||||||
|
if ($event->{'DTSTART'} eq $event->{'DTEND'} and $event->{'DTEND'}->hour eq 0 and $event->{'DTEND'}->minute eq 0 and $event->{'DTEND'}->second eq 0) {
|
||||||
|
$eventsbyuid{$uid}{$event->{'DTSTART'}->ymd} = 'rm';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$eventsbyuid{$uid} = $event;
|
||||||
|
my $curreventday = $event->{'DTSTART'}->clone;
|
||||||
|
$curreventday->truncate( to => 'day' );
|
||||||
|
$eventsbyuid{$uid}{$curreventday->epoch()} =1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach $yearkey (sort keys %{$events} ) {
|
||||||
|
my $yearevents = $events->{$yearkey};
|
||||||
|
foreach $monkey (sort {$a <=> $b} keys %{$yearevents}){
|
||||||
|
my $monevents = $yearevents->{$monkey};
|
||||||
|
foreach $daykey (sort {$a <=> $b} keys %{$monevents} ) {
|
||||||
|
my $dayevents = $monevents->{$daykey};
|
||||||
|
foreach $uid (sort {
|
||||||
|
DateTime->compare($dayevents->{$a}->{'DTSTART'}, $dayevents->{$b}->{'DTSTART'})
|
||||||
|
} keys %{$dayevents}) {
|
||||||
|
my $event = $dayevents->{$uid};
|
||||||
|
if (exists($event->{'LEADTIME'})) {
|
||||||
|
$leadtime = "+".$event->{'LEADTIME'};
|
||||||
|
} else {
|
||||||
|
$leadtime = "+".$DEFAULT_LEAD_TIME;
|
||||||
|
}
|
||||||
|
my $start = $event->{'DTSTART'};
|
||||||
|
my $end = $event->{'DTEND'};
|
||||||
|
my $duration = "";
|
||||||
|
# Issue 9. All Day events create an event that has zero length and DTSTART and DTEND at 00:00 on last day. Marked while handling multi-day events. Ignore these
|
||||||
|
if ($start eq $end and $eventsbyuid{$uid}{$start->ymd} and $eventsbyuid{$uid}{$start->ymd} eq 'rm') {
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
if ($end and ($start->hour or $start->minute or $end->hour or $end->minute)) {
|
||||||
|
# We need both an HH:MM version of the delta, to put in the
|
||||||
|
# DURATION specifier, and a human-readable version of the
|
||||||
|
# delta, to put in the message if the user requested it.
|
||||||
|
my $seconds = $end->epoch - $start->epoch;
|
||||||
|
my $minutes = int($seconds / 60);
|
||||||
|
my $hours = int($minutes / 60);
|
||||||
|
$minutes -= $hours * 60;
|
||||||
|
$duration = sprintf("DURATION %d:%02d ", $hours, $minutes);
|
||||||
|
}
|
||||||
|
print "REM ";
|
||||||
|
if ($iso8601) {
|
||||||
|
print $start->strftime("%F ");
|
||||||
|
} else {
|
||||||
|
print $start->month_abbr." ".$start->day." ".$start->year." ";
|
||||||
|
}
|
||||||
|
print "$leadtime ";
|
||||||
|
if ($duration or $start->hour > 0 or $start->minute > 0) {
|
||||||
|
print "AT ";
|
||||||
|
print $start->strftime("%H:%M");
|
||||||
|
print " SCHED _sfun ${duration}MSG %a %2 ";
|
||||||
|
} else {
|
||||||
|
print "MSG %a ";
|
||||||
|
}
|
||||||
|
print "%\"", "e($event->{'SUMMARY'});
|
||||||
|
print(" at ", "e($event->{'LOCATION'}))
|
||||||
|
if ($do_location and $event->{'LOCATION'});
|
||||||
|
print "\%\"";
|
||||||
|
if ($do_end_times and ($start->hour or $start->minute or
|
||||||
|
$end->hour or $end->minute)) {
|
||||||
|
my $start_date = $start->strftime("%F");
|
||||||
|
my $start_time = $start->strftime("%k:%M");
|
||||||
|
my $end_date = $end->strftime("%F");
|
||||||
|
my $end_time = $end->strftime("%k:%M");
|
||||||
|
# We don't want leading whitespace; some strftime's support
|
||||||
|
# disabling the pdding in the format string, but not all,
|
||||||
|
# so for maximum portability we do it ourselves.
|
||||||
|
$start_time =~ s/^\s+//;
|
||||||
|
$end_time =~ s/^\s+//;
|
||||||
|
my(@pieces);
|
||||||
|
if ($start_date ne $end_date) {
|
||||||
|
push(@pieces, $end_date);
|
||||||
|
}
|
||||||
|
if ($start_time ne $end_time) {
|
||||||
|
push(@pieces, $end_time);
|
||||||
|
}
|
||||||
|
print " (-", join(" ", @pieces), ")";
|
||||||
|
}
|
||||||
|
print "%\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
sub quote {
|
||||||
|
local($_) = @_;
|
||||||
|
s/\[/["["]/g;
|
||||||
|
return $_;
|
||||||
|
}
|
||||||
|
|
||||||
|
exit 0;
|
||||||
|
#:vim set ft=perl ts=4 sts=4 tabstop=4 expandtab :
|
||||||
@@ -1,279 +0,0 @@
|
|||||||
#!/usr/bin/perl -w
|
|
||||||
#
|
|
||||||
# ical2rem.pl -
|
|
||||||
# Reads iCal files and outputs remind-compatible files. Tested ONLY with
|
|
||||||
# calendar files created by Mozilla Calendar/Sunbird. Use at your own risk.
|
|
||||||
# Copyright (c) 2005, 2007, Justin B. Alcorn
|
|
||||||
|
|
||||||
# This program is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU General Public License
|
|
||||||
# as published by the Free Software Foundation; either version 2
|
|
||||||
# of the License, 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 this program; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# version 0.5.2 2007-03-23
|
|
||||||
# - BUG: leadtime for recurring events had a max of 4 instead of DEFAULT_LEAD_TIME
|
|
||||||
# - remove project-lead-time, since Category was a non-standard attribute
|
|
||||||
# - NOTE: There is a bug in iCal::Parser v1.14 that causes multiple calendars to
|
|
||||||
# fail if a calendar with recurring events is followed by a calendar with no
|
|
||||||
# recurring events. This has been reported to the iCal::Parser author.
|
|
||||||
# version 0.5.1 2007-03-21
|
|
||||||
# - BUG: Handle multiple calendars on STDIN
|
|
||||||
# - add --heading option for priority on section headers
|
|
||||||
# version 0.5 2007-03-21
|
|
||||||
# - Add more help options
|
|
||||||
# - --project-lead-time option
|
|
||||||
# - Supress printing of heading if there are no todos to print
|
|
||||||
# version 0.4
|
|
||||||
# - Version 0.4 changes all written or inspired by, and thanks to Mark Stosberg
|
|
||||||
# - Change to GetOptions
|
|
||||||
# - Change to pipe
|
|
||||||
# - Add --label, --help options
|
|
||||||
# - Add Help Text
|
|
||||||
# - Change to subroutines
|
|
||||||
# - Efficiency and Cleanup
|
|
||||||
# version 0.3
|
|
||||||
# - Convert to GPL (Thanks to Mark Stosberg)
|
|
||||||
# - Add usage
|
|
||||||
# version 0.2
|
|
||||||
# - add command line switches
|
|
||||||
# - add debug code
|
|
||||||
# - add SCHED _sfun keyword
|
|
||||||
# - fix typos
|
|
||||||
# version 0.1 - ALPHA CODE.
|
|
||||||
|
|
||||||
=head1 SYNOPSIS
|
|
||||||
|
|
||||||
cat /path/to/file*.ics | ical2rem.pl > ~/.ical2rem
|
|
||||||
|
|
||||||
All options have reasonable defaults:
|
|
||||||
--label Calendar name (Default: Calendar)
|
|
||||||
--lead-time Advance days to start reminders (Default: 3)
|
|
||||||
--todos, --no-todos Process Todos? (Default: Yes)
|
|
||||||
--heading Define a priority for static entries
|
|
||||||
--help Usage
|
|
||||||
--man Complete man page
|
|
||||||
|
|
||||||
Expects an ICAL stream on STDIN. Converts it to the format
|
|
||||||
used by the C<remind> script and prints it to STDOUT.
|
|
||||||
|
|
||||||
=head2 --label
|
|
||||||
|
|
||||||
ical2rem.pl --label "Bob's Calendar"
|
|
||||||
|
|
||||||
The syntax generated includes a label for the calendar parsed.
|
|
||||||
By default this is "Calendar". You can customize this with
|
|
||||||
the "--label" option.
|
|
||||||
|
|
||||||
=head2 --lead-time
|
|
||||||
|
|
||||||
ical2rem.pl --lead-time 3
|
|
||||||
|
|
||||||
How may days in advance to start getting reminders about the events. Defaults to 3.
|
|
||||||
|
|
||||||
=head2 --no-todos
|
|
||||||
|
|
||||||
ical2rem.pl --no-todos
|
|
||||||
|
|
||||||
If you don't care about the ToDos the calendar, this will surpress
|
|
||||||
printing of the ToDo heading, as well as skipping ToDo processing.
|
|
||||||
|
|
||||||
=head2 --heading
|
|
||||||
|
|
||||||
ical2rem.pl --heading "PRIORITY 9999"
|
|
||||||
|
|
||||||
Set an option on static messages output. Using priorities can made the static messages look different from
|
|
||||||
the calendar entries. See the file defs.rem from the remind distribution for more information.
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use iCal::Parser;
|
|
||||||
use DateTime;
|
|
||||||
use Getopt::Long 2.24 qw':config auto_help';
|
|
||||||
use Pod::Usage;
|
|
||||||
use Data::Dumper;
|
|
||||||
use vars '$VERSION';
|
|
||||||
$VERSION = "0.5.2";
|
|
||||||
|
|
||||||
# Declare how many days in advance to remind
|
|
||||||
my $DEFAULT_LEAD_TIME = 3;
|
|
||||||
my $PROCESS_TODOS = 1;
|
|
||||||
my $HEADING = "";
|
|
||||||
my $help;
|
|
||||||
my $man;
|
|
||||||
|
|
||||||
my $label = 'Calendar';
|
|
||||||
GetOptions (
|
|
||||||
"label=s" => \$label,
|
|
||||||
"lead-time=i" => \$DEFAULT_LEAD_TIME,
|
|
||||||
"todos!" => \$PROCESS_TODOS,
|
|
||||||
"heading=s" => \$HEADING,
|
|
||||||
"help|?" => \$help,
|
|
||||||
"man" => \$man
|
|
||||||
);
|
|
||||||
pod2usage(1) if $help;
|
|
||||||
pod2usage(-verbose => 2) if $man;
|
|
||||||
|
|
||||||
my $month = ['None','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];
|
|
||||||
|
|
||||||
my @calendars;
|
|
||||||
my $in;
|
|
||||||
|
|
||||||
while (<>) {
|
|
||||||
$in .= $_;
|
|
||||||
if (/END:VCALENDAR/) {
|
|
||||||
push(@calendars,$in);
|
|
||||||
$in = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
my $parser = iCal::Parser->new();
|
|
||||||
my $hash = $parser->parse_strings(@calendars);
|
|
||||||
|
|
||||||
##############################################################
|
|
||||||
#
|
|
||||||
# Subroutines
|
|
||||||
#
|
|
||||||
#############################################################
|
|
||||||
#
|
|
||||||
# _process_todos()
|
|
||||||
# expects 'todos' hashref from iCal::Parser is input
|
|
||||||
# returns String to output
|
|
||||||
sub _process_todos {
|
|
||||||
my $todos = shift;
|
|
||||||
|
|
||||||
my ($todo, @newtodos, $leadtime);
|
|
||||||
my $output = "";
|
|
||||||
|
|
||||||
$output .= 'REM '.$HEADING.' MSG '.$label.' ToDos:%"%"%'."\n";
|
|
||||||
|
|
||||||
# For sorting, make sure everything's got something
|
|
||||||
# To sort on.
|
|
||||||
my $now = DateTime->now;
|
|
||||||
for $todo (@{$todos}) {
|
|
||||||
# remove completed items
|
|
||||||
if ($todo->{'STATUS'} && $todo->{'STATUS'} eq 'COMPLETED') {
|
|
||||||
next;
|
|
||||||
} elsif ($todo->{'DUE'}) {
|
|
||||||
# All we need is a due date, everything else is sugar
|
|
||||||
$todo->{'SORT'} = $todo->{'DUE'}->clone;
|
|
||||||
} elsif ($todo->{'DTSTART'}) {
|
|
||||||
# for sorting, sort on start date if there's no due date
|
|
||||||
$todo->{'SORT'} = $todo->{'DTSTART'}->clone;
|
|
||||||
} else {
|
|
||||||
# if there's no due or start date, just make it now.
|
|
||||||
$todo->{'SORT'} = $now;
|
|
||||||
}
|
|
||||||
push(@newtodos,$todo);
|
|
||||||
}
|
|
||||||
if (! (scalar @newtodos)) {
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
# Now sort on the new Due dates and print them out.
|
|
||||||
for $todo (sort { DateTime->compare($a->{'SORT'}, $b->{'SORT'}) } @newtodos) {
|
|
||||||
my $due = $todo->{'SORT'}->clone();
|
|
||||||
my $priority = "";
|
|
||||||
if (defined($todo->{'PRIORITY'})) {
|
|
||||||
if ($todo->{'PRIORITY'} == 1) {
|
|
||||||
$priority = "PRIORITY 1000";
|
|
||||||
} elsif ($todo->{'PRIORITY'} == 3) {
|
|
||||||
$priority = "PRIORITY 7500";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (defined($todo->{'DTSTART'}) && defined($todo->{'DUE'})) {
|
|
||||||
# Lead time is duration of task + lead time
|
|
||||||
my $diff = ($todo->{'DUE'}->delta_days($todo->{'DTSTART'})->days())+$DEFAULT_LEAD_TIME;
|
|
||||||
$leadtime = "+".$diff;
|
|
||||||
} else {
|
|
||||||
$leadtime = "+".$DEFAULT_LEAD_TIME;
|
|
||||||
}
|
|
||||||
$output .= "REM ".$due->month_abbr." ".$due->day." ".$due->year." $leadtime $priority MSG \%a $todo->{'SUMMARY'}\%\"\%\"\%\n";
|
|
||||||
}
|
|
||||||
$output .= 'REM '.$HEADING.' MSG %"%"%'."\n";
|
|
||||||
return $output;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
#
|
|
||||||
# Main Program
|
|
||||||
#
|
|
||||||
######################################################################
|
|
||||||
|
|
||||||
print _process_todos($hash->{'todos'}) if $PROCESS_TODOS;
|
|
||||||
|
|
||||||
my ($leadtime, $yearkey, $monkey, $daykey,$uid,%eventsbyuid);
|
|
||||||
print 'REM '.$HEADING.' MSG '.$label.' Events:%"%"%'."\n";
|
|
||||||
my $events = $hash->{'events'};
|
|
||||||
foreach $yearkey (sort keys %{$events} ) {
|
|
||||||
my $yearevents = $events->{$yearkey};
|
|
||||||
foreach $monkey (sort {$a <=> $b} keys %{$yearevents}){
|
|
||||||
my $monevents = $yearevents->{$monkey};
|
|
||||||
foreach $daykey (sort {$a <=> $b} keys %{$monevents} ) {
|
|
||||||
my $dayevents = $monevents->{$daykey};
|
|
||||||
foreach $uid (sort {
|
|
||||||
DateTime->compare($dayevents->{$a}->{'DTSTART'}, $dayevents->{$b}->{'DTSTART'})
|
|
||||||
} keys %{$dayevents}) {
|
|
||||||
my $event = $dayevents->{$uid};
|
|
||||||
if ($eventsbyuid{$uid}) {
|
|
||||||
my $curreventday = $event->{'DTSTART'}->clone;
|
|
||||||
$curreventday->truncate( to => 'day' );
|
|
||||||
$eventsbyuid{$uid}{$curreventday->epoch()} =1;
|
|
||||||
for (my $i = 0;$i < $DEFAULT_LEAD_TIME && !defined($event->{'LEADTIME'});$i++) {
|
|
||||||
if ($eventsbyuid{$uid}{$curreventday->subtract( days => $i+1 )->epoch() }) {
|
|
||||||
$event->{'LEADTIME'} = $i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$eventsbyuid{$uid} = $event;
|
|
||||||
my $curreventday = $event->{'DTSTART'}->clone;
|
|
||||||
$curreventday->truncate( to => 'day' );
|
|
||||||
$eventsbyuid{$uid}{$curreventday->epoch()} =1;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
foreach $yearkey (sort keys %{$events} ) {
|
|
||||||
my $yearevents = $events->{$yearkey};
|
|
||||||
foreach $monkey (sort {$a <=> $b} keys %{$yearevents}){
|
|
||||||
my $monevents = $yearevents->{$monkey};
|
|
||||||
foreach $daykey (sort {$a <=> $b} keys %{$monevents} ) {
|
|
||||||
my $dayevents = $monevents->{$daykey};
|
|
||||||
foreach $uid (sort {
|
|
||||||
DateTime->compare($dayevents->{$a}->{'DTSTART'}, $dayevents->{$b}->{'DTSTART'})
|
|
||||||
} keys %{$dayevents}) {
|
|
||||||
my $event = $dayevents->{$uid};
|
|
||||||
if (exists($event->{'LEADTIME'})) {
|
|
||||||
$leadtime = "+".$event->{'LEADTIME'};
|
|
||||||
} else {
|
|
||||||
$leadtime = "+".$DEFAULT_LEAD_TIME;
|
|
||||||
}
|
|
||||||
my $start = $event->{'DTSTART'};
|
|
||||||
print "REM ".$start->month_abbr." ".$start->day." ".$start->year." $leadtime ";
|
|
||||||
if ($start->hour > 0) {
|
|
||||||
print " AT ";
|
|
||||||
print $start->strftime("%H:%M");
|
|
||||||
print " SCHED _sfun MSG %a %2 ";
|
|
||||||
} else {
|
|
||||||
print " MSG %a ";
|
|
||||||
}
|
|
||||||
print "%\"$event->{'SUMMARY'}";
|
|
||||||
print " at $event->{'LOCATION'}" if $event->{'LOCATION'};
|
|
||||||
print "\%\"%\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
exit 0;
|
|
||||||
#:vim set ft=perl ts=4 sts=4 expandtab :
|
|
||||||
@@ -141,7 +141,7 @@ appear with exactly the text and exactly the same duration (including
|
|||||||
one VEVENT object, that will have a RFC2445 C<RDATE> property.
|
one VEVENT object, that will have a RFC2445 C<RDATE> property.
|
||||||
|
|
||||||
B<rem2ics> is not yet smart enough to derive an C<RRULE> based
|
B<rem2ics> is not yet smart enough to derive an C<RRULE> based
|
||||||
recurrance. If you really want that feature, either implement it and
|
recurrence. If you really want that feature, either implement it and
|
||||||
send in a patch, or contact the author and convince him to do it.
|
send in a patch, or contact the author and convince him to do it.
|
||||||
|
|
||||||
=head2 Other iCalendar Properties
|
=head2 Other iCalendar Properties
|
||||||
@@ -164,7 +164,7 @@ runs.
|
|||||||
|
|
||||||
=head2 Other iCalendar Perl objects
|
=head2 Other iCalendar Perl objects
|
||||||
|
|
||||||
Why does't B<rem2ics> use any of the iCalendar Perl stuff in CPAN?
|
Why doesn't B<rem2ics> use any of the iCalendar Perl stuff in CPAN?
|
||||||
Because I don't trust them, and they are too big for this app. One
|
Because I don't trust them, and they are too big for this app. One
|
||||||
links to a binary library. Another hasn't been maintained since 1991,
|
links to a binary library. Another hasn't been maintained since 1991,
|
||||||
and is full of notes as to how buggy and incomplete it is. And so
|
and is full of notes as to how buggy and incomplete it is. And so
|
||||||
@@ -218,7 +218,7 @@ Bug fix, error message for non-recurring events
|
|||||||
Bug fix,
|
Bug fix,
|
||||||
rem2ics 0.91 chokes on timed reminders with
|
rem2ics 0.91 chokes on timed reminders with
|
||||||
duration using `remind -s` as it functions in remind-03.01.03.
|
duration using `remind -s` as it functions in remind-03.01.03.
|
||||||
Remind 3.01 changed how the -s data is formated for events that have a duration
|
Remind 3.01 changed how the -s data is formatted for events that have a duration
|
||||||
Patch by Paul Hinze E<lt>paul dot t dot hinze at gmail dot comE<gt>
|
Patch by Paul Hinze E<lt>paul dot t dot hinze at gmail dot comE<gt>
|
||||||
and Michael Schultz E<lt>mjschultz at gmail dot comE<gt>
|
and Michael Schultz E<lt>mjschultz at gmail dot comE<gt>
|
||||||
|
|
||||||
@@ -376,7 +376,7 @@ foreach $v (@events) {
|
|||||||
|
|
||||||
my(%grovel);
|
my(%grovel);
|
||||||
|
|
||||||
# if the user doesnt want recurrance detection
|
# if the user doesn't want recurrence detection
|
||||||
unless ($options{norecurr}) {
|
unless ($options{norecurr}) {
|
||||||
|
|
||||||
# then dont put events in the grovel hash
|
# then dont put events in the grovel hash
|
||||||
@@ -393,7 +393,7 @@ unless ($options{norecurr}) {
|
|||||||
$v = ${$grovel{$k}}[0];
|
$v = ${$grovel{$k}}[0];
|
||||||
$v->{recurlist} = \@{$grovel{$k}};
|
$v->{recurlist} = \@{$grovel{$k}};
|
||||||
foreach my $v0 (@{$grovel{$k}}) {
|
foreach my $v0 (@{$grovel{$k}}) {
|
||||||
$v0->{is_recurrance} = $v;
|
$v0->{is_recurrence} = $v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -409,12 +409,12 @@ unless ($options{norecurr}) {
|
|||||||
# might have a problem if a recurring event has two instances both on
|
# might have a problem if a recurring event has two instances both on
|
||||||
# the first day.
|
# the first day.
|
||||||
|
|
||||||
# Every event that is recurring has a "is_recurrance" property.
|
# Every event that is recurring has a "is_recurrence" property.
|
||||||
# Additionally, (hopefully) the first/earliest event in a set of
|
# Additionally, (hopefully) the first/earliest event in a set of
|
||||||
# recurrances has a "recurlist" property. The "recurlist" is a
|
# recurrences has a "recurlist" property. The "recurlist" is a
|
||||||
# reference to a list of references to each of the events. The first
|
# reference to a list of references to each of the events. The first
|
||||||
# one on that list will be the same event that has the "recurlist"
|
# one on that list will be the same event that has the "recurlist"
|
||||||
# property. The "is_recurrance" property is a reference back to the
|
# property. The "is_recurrence" property is a reference back to the
|
||||||
# event that has the "recurlist" property.
|
# event that has the "recurlist" property.
|
||||||
|
|
||||||
foreach my $k (keys %grovel) {
|
foreach my $k (keys %grovel) {
|
||||||
@@ -466,8 +466,8 @@ foreach my $k (keys %grovel) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach $v (@events) {
|
foreach $v (@events) {
|
||||||
# for recurrant events, skip those that arnt the "head"
|
# for recurrent events, skip those that arnt the "head"
|
||||||
next if ($v->{is_recurrance} and (not $v->{recurlist}));
|
next if ($v->{is_recurrence} and (not $v->{recurlist}));
|
||||||
|
|
||||||
if (${$v->{sf}}[4] eq "*") { # no time was given
|
if (${$v->{sf}}[4] eq "*") { # no time was given
|
||||||
$v->{i_dtstart} = sprintf("DTSTART:%s", $v->{dts});
|
$v->{i_dtstart} = sprintf("DTSTART:%s", $v->{dts});
|
||||||
@@ -485,7 +485,7 @@ foreach $v (@events) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (${$v->{sf}}[3] ne "*") { # a duration was given
|
if (${$v->{sf}}[3] ne "*") { # a duration was given
|
||||||
# It's convienient that RFC2445 defines DURATION, thus we
|
# It's convenient that RFC2445 defines DURATION, thus we
|
||||||
# don't need to calculate DTEND, with awkward figuring out
|
# don't need to calculate DTEND, with awkward figuring out
|
||||||
# crossing hours, days, months, year, etc. Instead we
|
# crossing hours, days, months, year, etc. Instead we
|
||||||
# will let the iCalendar consuming application worry about it.
|
# will let the iCalendar consuming application worry about it.
|
||||||
@@ -501,8 +501,8 @@ print "BEGIN:VCALENDAR\015\012"
|
|||||||
|
|
||||||
# output each vevent
|
# output each vevent
|
||||||
foreach $v (@events) {
|
foreach $v (@events) {
|
||||||
# for recurrant events, only output the "head", skip the others
|
# for recurrent events, only output the "head", skip the others
|
||||||
next if ($v->{is_recurrance} and (not $v->{recurlist}));
|
next if ($v->{is_recurrence} and (not $v->{recurlist}));
|
||||||
|
|
||||||
print "BEGIN:VEVENT\015\012";
|
print "BEGIN:VEVENT\015\012";
|
||||||
my $tag = ${$v->{sf}}[2];
|
my $tag = ${$v->{sf}}[2];
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
;; Author: Shelagh Manton <shelagh.manton@gmail.com> with help from
|
;; Author: Shelagh Manton <shelagh.manton@gmail.com> with help from
|
||||||
;; Dianne Skoll
|
;; Dianne Skoll
|
||||||
;; Keywords: remind configure convenience
|
;; Keywords: remind configure convenience
|
||||||
;; Version: 0.14
|
;; Version: 0.15-dfs2
|
||||||
|
|
||||||
;; This program is free software; you can redistribute it and/or
|
;; This program is free software; you can redistribute it and/or
|
||||||
;; modify it under the terms of the GNU General Public License
|
;; modify it under the terms of the GNU General Public License
|
||||||
@@ -19,8 +19,7 @@
|
|||||||
|
|
||||||
;; You should have received a copy of the GNU General Public License
|
;; You should have received a copy of the GNU General Public License
|
||||||
;; along with this program; if not, write to the Free Software
|
;; along with this program; if not, write to the Free Software
|
||||||
;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA
|
||||||
;; 02111-1307, USA.
|
|
||||||
|
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
|
|
||||||
@@ -91,7 +90,6 @@
|
|||||||
(define-key remind-conf-mode-map "\C-c\C-x" 'rem-tomorrow)
|
(define-key remind-conf-mode-map "\C-c\C-x" 'rem-tomorrow)
|
||||||
(define-key remind-conf-mode-map "\C-c\C-a" 'rem-days-away)
|
(define-key remind-conf-mode-map "\C-c\C-a" 'rem-days-away)
|
||||||
(define-key remind-conf-mode-map "\M-j" 'remind-indent-line)
|
(define-key remind-conf-mode-map "\M-j" 'remind-indent-line)
|
||||||
(define-key remind-conf-mode-map (kbd "RET") 'remind-indent-line)
|
|
||||||
(define-key remind-conf-mode-map "\C-c\C-c" 'rem-save-file)
|
(define-key remind-conf-mode-map "\C-c\C-c" 'rem-save-file)
|
||||||
|
|
||||||
;; syntax-table
|
;; syntax-table
|
||||||
@@ -111,12 +109,16 @@
|
|||||||
|
|
||||||
(defconst remind-keywords
|
(defconst remind-keywords
|
||||||
(sort
|
(sort
|
||||||
(list "RUN" "REM" "ONCE" "SATISFY" "BEFORE" "UNSET" "OMIT" "FIRST" "SATISFY"
|
(list "ADDOMIT" "AFTER" "AT" "BAN" "BANNER" "BEFORE" "CAL" "CLEAR"
|
||||||
"OMIT" "DATE" "SKIP" "ONCE" "AFTER" "WARN" "PRIORITY" "AT" "SCHED" "IF" "ELSE" "ENDIF"
|
"CLEAR-OMIT-CONTEXT" "DEBUG" "DO" "DUMP" "DUMPVARS" "DURATION" "ELSE"
|
||||||
"WARN" "UNTIL" "THROUGH" "SCANFROM" "DURATION" "TAG" "MSG" "MSF" "CAL" "SPECIAL" "IFTRIG"
|
"ENDIF" "ERRMSG" "EXIT" "EXPR" "FIRST" "FLUSH" "FOURTH" "FRENAME" "FROM" "FSET"
|
||||||
"PS" "PSFILE" "BANNER" "INCLUDE" "PUSH-OMIT-CONTEXT" "DEBUG" "DUMPVARS" "PUSH" "CLEAR" "POP"
|
"FUNSET" "IF" "IFTRIG" "IN" "INC" "INCLUDE" "INCLUDECMD" "LAST"
|
||||||
"CLEAR-OMIT-CONTEXT" "POP-OMIT-CONTEXT" "SET" "ERRMSG" "FSET" "DUMP" "BAN" "INC" "SCAN"
|
"LASTDAY" "LASTWORKDAY" "MAYBE" "MAYBE-UNCOMPUTABLE" "MSF" "MSG"
|
||||||
"EXIT" "FLUSH" "PRESERVE" "MOON" "COLOR" "UNSET")
|
"NOQUEUE" "OMIT" "OMITFUNC" "ONCE" "POP" "POP-OMIT-CONTEXT" "PRESERVE"
|
||||||
|
"PRIORITY" "PS" "PSFILE" "PUSH" "PUSH-OMIT-CONTEXT" "REM" "RUN"
|
||||||
|
"SATISFY" "SCAN" "SCANFROM" "SCHED" "SECOND" "SET" "SKIP" "SPECIAL"
|
||||||
|
"SYSINCLUDE" "TAG" "THIRD" "THROUGH" "TRANSLATE" "TRANS" "UNSET"
|
||||||
|
"UNTIL" "WARN")
|
||||||
#'(lambda (a b) (> (length a) (length b)))))
|
#'(lambda (a b) (> (length a) (length b)))))
|
||||||
|
|
||||||
|
|
||||||
@@ -127,35 +129,58 @@
|
|||||||
|
|
||||||
(defconst remind-builtin-variables
|
(defconst remind-builtin-variables
|
||||||
(sort
|
(sort
|
||||||
(list "$CalcUTC" "$CalMode" "$Daemon" "$DateSep" "$DefaultPrio" "$DontFork" "$DontTrigAts" "$DontQueue"
|
(list " $AddBlankLines" "$Ago" "$Am" "$And" "$April" "$At" "$August"
|
||||||
"$EndSent" "$EndSentIg" "$NumTrig" "$FirstIndent" "$FoldYear" "$FormWidth" "$HushMode"
|
"$CalcUTC" "$CalMode" "$Daemon" "$DateSep" "$DateTimeSep" "$December"
|
||||||
"$IgnoreOnce" "$InfDelta" "$NextMode" "$NumQueued" "$NumTrig" "$PrefixLineNo" "$PSCal" "$RunOff"
|
"$DedupeReminders" "$DefaultColor" "$DefaultDelta"
|
||||||
"$SimpleCal" "$SortByDate" "$SortByPrio" "$MinsFromUTC" "$LatDeg" "$LatMin" "$LatSec" "$EndSent"
|
"$DefaultPrio" "$DefaultTDelta" "$DeltaOverride"
|
||||||
"$EndSentIg" "$Location" "$LongDeg" "$LongMin" "$LongSec" "$MaxSatIter" "$SubsIndent" "$T" "$Td"
|
"$DontFork" "$DontQueue" "$DontTrigAts" "$EndSent" "$EndSentIg"
|
||||||
"$Tm" "$Tw" "$Ty" "$TimeSep" "$UntimedFirst" "$U" "$Ud" "$Um" "$Uw" "$Uy")
|
"$ExpressionTimeLimit" "$February" "$FirstIndent" "$FoldYear"
|
||||||
|
"$FormWidth" "$Friday" "$Fromnow" "$Hour" "$Hplu" "$HushMode"
|
||||||
|
"$IgnoreOnce" "$InfDelta" "$IntMax" "$IntMin" "$Is" "$January" "$July"
|
||||||
|
"$June" "$LatDeg" "$Latitude" "$LatMin" "$LatSec" "$Location"
|
||||||
|
"$LongDeg" "$Longitude" "$LongMin" "$LongSec" "$March" "$MaxFullOmits"
|
||||||
|
"$MaxLateMinutes" "$MaxPartialOmits" "$MaxSatIter" "$MaxStringLen"
|
||||||
|
"$May" "$MinsFromUTC" "$Minute" "$Monday" "$Mplu" "$NextMode"
|
||||||
|
"$November" "$Now" "$NumFullOmits" "$NumPartialOmits" "$NumQueued"
|
||||||
|
"$NumTrig" "$October" "$On" "$OnceFile" "$ParseUntriggered" "$Pm"
|
||||||
|
"$PrefixLineNo" "$PSCal" "$RunOff" "$Saturday" "$September"
|
||||||
|
"$SimpleCal" "$SortByDate" "$SortByPrio" "$SortByTime" "$SubsIndent"
|
||||||
|
"$Sunday" "$SuppressImplicitWarnings" "$SuppressLRM" "$SysInclude" "$T" "$Td"
|
||||||
|
"$TerminalBackground" "$Thursday" "$TimeSep" "$Tm" "$Today"
|
||||||
|
"$Tomorrow" "$Tt" "$Tuesday" "$Tw" "$Ty" "$U" "$Ud" "$Um"
|
||||||
|
"$UntimedFirst" "$Use256Colors" "$UseBGVTColors" "$UseTrueColors"
|
||||||
|
"$UseVTColors" "$Uw" "$Uy" "$Was" "$Wednesday")
|
||||||
#'(lambda (a b) (> (length a) (length b)))))
|
#'(lambda (a b) (> (length a) (length b)))))
|
||||||
|
|
||||||
|
|
||||||
(defconst remind-time-words
|
(defconst remind-time-words
|
||||||
(sort
|
(sort
|
||||||
(list "Jan" "January" "Feb" "Mar" "Apr" "Jun" "Jul" "Aug" "Sept" "Sep" "Oct" "Nov" "Dec"
|
(list "Apr" "April" "Aug" "August" "Dec" "December" "Feb" "February"
|
||||||
"February" "March" "April" "May" "June" "July" "August" "September" "October"
|
"Jan" "January" "Jul" "July" "Jun" "June" "Mar" "March" "May"
|
||||||
"November" "December" "Mon" "Monday" "Tue" "Tues" "Tuesday" "Wed" "Wednesday"
|
"Nov" "November" "Oct" "October" "Sep" "September" "Fri"
|
||||||
"Thu" "Thursday" "Thurs" "Fri" "Friday" "Saturday" "Sat" "Sun" "Sunday")
|
"Friday" "Mon" "Monday" "Sat" "Saturday" "Sun" "Sunday" "Thu"
|
||||||
|
"Thursday" "Tue" "Tuesday" "Wed" "Wednesday")
|
||||||
#'(lambda (a b) (> (length a) (length b)))))
|
#'(lambda (a b) (> (length a) (length b)))))
|
||||||
|
|
||||||
|
|
||||||
(defconst remind-builtin-functions
|
(defconst remind-builtin-functions
|
||||||
(sort
|
(sort
|
||||||
(list "abs" "access" "args" "asc" "baseyr" "char" "choose" "coerce" "current" "date" "datetime" "datepart"
|
(list "_" "abs" "access" "adawn" "adusk" "ampm" "ansicolor" "args" "asc"
|
||||||
"dawn" "day" "daysinmon" "defined" "dosubst" "dusk" "easter" "easterdate" "evaltrig" "filedate"
|
"baseyr" "char" "choose" "coerce" "columns" "current" "date"
|
||||||
"filedatetime" "filedir" "filename" "getenv" "hebdate" "hebday" "hebmon" "hebyear" "hour" "iif" "index" "isdst"
|
"datepart" "datetime" "dawn" "day" "daysinmon" "defined" "dosubst"
|
||||||
"isleap" "isomitted" "language" "lower" "max" "min" "minute" "minsfromutc" "mon" "monnum" "moondate" "moondatetime"
|
"dusk" "easterdate" "evaltrig" "filedate" "filedatetime" "filedir"
|
||||||
"moonphase" "moontime" "msgprefix" "msgsuffix" "nonomitted" "now" "ord" "ostype" "plural"
|
"filename" "getenv" "hebdate" "hebday" "hebmon" "hebyear" "hour"
|
||||||
"psmoon" "psshade" "realcurrent" "realnow" "realtoday" "sgn" "shell" "slide" "strlen" "substr" "sunrise" "sunset" "time" "timepart"
|
"htmlescape" "htmlstriptags" "iif" "index" "isany" "isdst" "isleap"
|
||||||
"thisyear" "today" "trigdate" "trigdatetime" "trigger" "trigger" "trigtime" "trigvalid" "typeof" "tzconvert" "upper" "value"
|
"isomitted" "language" "localtoutc" "lower" "max" "min" "minsfromutc"
|
||||||
"version" "weekno" "wkday" "wkdaynum" "year"
|
"minute" "mon" "monnum" "moondate" "moondatetime" "moonphase"
|
||||||
)
|
"moontime" "multitrig" "ndawn" "ndusk" "nonomitted" "now" "ord"
|
||||||
|
"orthodoxeaster" "ostype" "pad" "plural" "psmoon" "psshade"
|
||||||
|
"realcurrent" "realnow" "realtoday" "rows" "sgn" "shell" "shellescape"
|
||||||
|
"slide" "soleq" "stdout" "strlen" "substr" "sunrise" "sunset" "time"
|
||||||
|
"timepart" "timezone" "today" "trig" "trigback" "trigdate"
|
||||||
|
"trigdatetime" "trigdelta" "trigduration" "trigeventduration"
|
||||||
|
"trigeventstart" "trigfrom" "trigger" "trigpriority" "trigrep"
|
||||||
|
"trigscanfrom" "trigtags" "trigtime" "trigtimedelta" "trigtimerep"
|
||||||
|
"triguntil" "trigvalid" "typeof" "tzconvert" "upper" "utctolocal"
|
||||||
|
"value" "version" "weekno" "wkday" "wkdaynum" "year")
|
||||||
#'(lambda (a b) (> (length a) (length b)))))
|
#'(lambda (a b) (> (length a) (length b)))))
|
||||||
|
|
||||||
;;; faces
|
;;; faces
|
||||||
@@ -164,21 +189,21 @@
|
|||||||
(defvar remind-conf-command-face 'remind-conf-command-face
|
(defvar remind-conf-command-face 'remind-conf-command-face
|
||||||
"Remind commands.")
|
"Remind commands.")
|
||||||
(defface remind-conf-command-face
|
(defface remind-conf-command-face
|
||||||
'((t :foreground "SeaGreen4" :bold t))
|
'((t :foreground "#FF8080"))
|
||||||
"Font Lock mode face used to highlight commands."
|
"Font Lock mode face used to highlight commands."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
(defvar remind-conf-keyword-face 'remind-conf-keyword-face
|
(defvar remind-conf-keyword-face 'remind-conf-keyword-face
|
||||||
"Remind keywords.")
|
"Remind keywords.")
|
||||||
(defface remind-conf-keyword-face
|
(defface remind-conf-keyword-face
|
||||||
'((t :foreground "blue violet"))
|
'((t :foreground "#FFFF80"))
|
||||||
"Font Lock mode face used to highlight keywords."
|
"Font Lock mode face used to highlight keywords."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
(defvar remind-conf-substitutes-face 'remind-conf-substitutes-face
|
(defvar remind-conf-substitutes-face 'remind-conf-substitutes-face
|
||||||
"Remind substitutes.")
|
"Remind substitutes.")
|
||||||
(defface remind-conf-substitutes-face
|
(defface remind-conf-substitutes-face
|
||||||
'((t :foreground "blue2"))
|
'((t :foreground "#8080FF"))
|
||||||
"Font Lock mode face used to highlight substitutes."
|
"Font Lock mode face used to highlight substitutes."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
@@ -192,7 +217,7 @@
|
|||||||
(defvar remind-conf-variable-face 'remind-conf-variable-face
|
(defvar remind-conf-variable-face 'remind-conf-variable-face
|
||||||
"Remind variable.")
|
"Remind variable.")
|
||||||
(defface remind-conf-variable-face
|
(defface remind-conf-variable-face
|
||||||
'((t :foreground "DeepPink2" :bold t))
|
'((t :foreground "#FF8080" :bold t))
|
||||||
"Font Lock mode face used to highlight commands."
|
"Font Lock mode face used to highlight commands."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
@@ -213,14 +238,14 @@
|
|||||||
(defvar remind-comment-face 'remind-comment-face
|
(defvar remind-comment-face 'remind-comment-face
|
||||||
"Remind comments.")
|
"Remind comments.")
|
||||||
(defface remind-comment-face
|
(defface remind-comment-face
|
||||||
'((t :foreground "brown"))
|
'((t :foreground "#FF7F24"))
|
||||||
"Font-lock face for highlighting comments."
|
"Font-lock face for highlighting comments."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
(defvar remind-string-face 'remind-string-face
|
(defvar remind-string-face 'remind-string-face
|
||||||
"Remind strings.")
|
"Remind strings.")
|
||||||
(defface remind-string-face
|
(defface remind-string-face
|
||||||
'((t :foreground "tomato"))
|
'((t :foreground "#FF7FE0"))
|
||||||
"Font lock mode face used to highlight strings."
|
"Font lock mode face used to highlight strings."
|
||||||
:group 'remind-conf)
|
:group 'remind-conf)
|
||||||
|
|
||||||
@@ -244,29 +269,52 @@
|
|||||||
:group 'remind-conf
|
:group 'remind-conf
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(defconst remind-keywords-regex (regexp-opt remind-keywords 'words))
|
||||||
|
(defconst remind-type-keywords-regex (regexp-opt remind-type-keywords 'words))
|
||||||
|
(defconst remind-builtin-variables-regex (regexp-opt remind-builtin-variables 'words))
|
||||||
|
(defconst remind-builtin-functions-regex (regexp-opt remind-builtin-functions 'words))
|
||||||
|
(defconst remind-time-words-regex (regexp-opt remind-time-words 'words))
|
||||||
|
|
||||||
|
;; Case-insensitive matching functions
|
||||||
|
(defun remind-keywords-matcher (limit)
|
||||||
|
(let ((case-fold-search t))
|
||||||
|
(re-search-forward remind-keywords-regex limit 'no-error)))
|
||||||
|
(defun remind-type-keywords-matcher (limit)
|
||||||
|
(let ((case-fold-search t))
|
||||||
|
(re-search-forward remind-type-keywords-regex limit 'no-error)))
|
||||||
|
(defun remind-builtin-variables-matcher (limit)
|
||||||
|
(let ((case-fold-search t))
|
||||||
|
(re-search-forward remind-builtin-variables-regex limit 'no-error)))
|
||||||
|
(defun remind-builtin-functions-matcher (limit)
|
||||||
|
(let ((case-fold-search t))
|
||||||
|
(re-search-forward remind-builtin-functions-regex limit 'no-error)))
|
||||||
|
(defun remind-time-words-matcher (limit)
|
||||||
|
(let ((case-fold-search t))
|
||||||
|
(re-search-forward remind-time-words-regex limit 'no-error)))
|
||||||
|
|
||||||
;; keywords
|
;; keywords
|
||||||
|
|
||||||
(defconst remind-conf-font-lock-keywords-1
|
(defconst remind-conf-font-lock-keywords-1
|
||||||
(list
|
(list
|
||||||
'("^[\;\#]\\s-+.*$" . remind-comment-face)
|
'("^\s*[\;\#].*$" . remind-comment-face)
|
||||||
(cons (regexp-opt remind-keywords 'words) remind-conf-keyword-face)
|
'("\"[^\"]*\"" . remind-string-face)
|
||||||
|
'(remind-keywords-matcher . remind-conf-keyword-face)
|
||||||
'("%[\"_]" . font-lock-warning-face)
|
'("%[\"_]" . font-lock-warning-face)
|
||||||
'("\\(%[a-mops-w]\\)" . remind-conf-substitutes-face)
|
'("\\(%[a-z]\\)" . remind-conf-substitutes-face)
|
||||||
'("\"[^\"]*\"" . remind-string-face))
|
"Minimal font-locking for `remind-conf-mode'."))
|
||||||
"Minimal font-locking for `remind-conf-mode'.")
|
|
||||||
|
|
||||||
(defconst remind-conf-font-lock-keywords-2
|
(defconst remind-conf-font-lock-keywords-2
|
||||||
(append remind-conf-font-lock-keywords-1
|
(append remind-conf-font-lock-keywords-1
|
||||||
(list
|
(list
|
||||||
(cons (regexp-opt remind-time-words 'words) remind-time-face)
|
'(remind-time-words-matcher . remind-time-face)
|
||||||
(cons (regexp-opt remind-builtin-functions 'words) remind-conf-command-face)
|
'(remind-builtin-functions-matcher . remind-conf-command-face)
|
||||||
'("%$" . remind-conf-endline-face)))
|
'("%$" . remind-conf-endline-face)))
|
||||||
"Additional commands to highlight in `remind-conf-mode'.")
|
"Additional commands to highlight in `remind-conf-mode'.")
|
||||||
|
|
||||||
(defconst remind-conf-font-lock-keywords-3
|
(defconst remind-conf-font-lock-keywords-3
|
||||||
(append remind-conf-font-lock-keywords-2
|
(append remind-conf-font-lock-keywords-2
|
||||||
(list
|
(list
|
||||||
(cons (regexp-opt remind-type-keywords 'words) remind-conf-type-face)
|
'(remind-type-keywords-matcher . remind-conf-type-face)
|
||||||
'("\[[a-zA-Z]\\{3,6\\}\]" . remind-conf-color-face)
|
'("\[[a-zA-Z]\\{3,6\\}\]" . remind-conf-color-face)
|
||||||
'("\\s-+\\([12][0-9]\\|3[01]\\|0?[0-9]\\)\\s-+" . remind-conf-substitutes-face);better date regexp
|
'("\\s-+\\([12][0-9]\\|3[01]\\|0?[0-9]\\)\\s-+" . remind-conf-substitutes-face);better date regexp
|
||||||
'("\\s-+\\([12][09][0-9][0-9][-/]\\(0[1-9]\\|1[0-2]\\)[-/]\\([12][0-9]\\|0[1-9]\\|3[01]\\)\\)\\s-+" . remind-time-face) ;; pseudo ISO 8601 date format.
|
'("\\s-+\\([12][09][0-9][0-9][-/]\\(0[1-9]\\|1[0-2]\\)[-/]\\([12][0-9]\\|0[1-9]\\|3[01]\\)\\)\\s-+" . remind-time-face) ;; pseudo ISO 8601 date format.
|
||||||
@@ -274,7 +322,7 @@
|
|||||||
'("\\s-+\\(\\(?:20\\|19\\)[0-9][0-9]\\)\\s-+" . remind-conf-substitutes-face);years
|
'("\\s-+\\(\\(?:20\\|19\\)[0-9][0-9]\\)\\s-+" . remind-conf-substitutes-face);years
|
||||||
'("\\s-+\\(2[0-4]\\|[01]?[0-9][.:][0-5][0-9]\\)\\s-+" . remind-conf-substitutes-face);24hour clock, more precise
|
'("\\s-+\\(2[0-4]\\|[01]?[0-9][.:][0-5][0-9]\\)\\s-+" . remind-conf-substitutes-face);24hour clock, more precise
|
||||||
'("\\s-+\\([+-][+-]?[1-9][0-9]*\\)\\s-+" 1 remind-conf-delta-face prepend)
|
'("\\s-+\\([+-][+-]?[1-9][0-9]*\\)\\s-+" 1 remind-conf-delta-face prepend)
|
||||||
(cons (regexp-opt remind-builtin-variables 'words) remind-conf-variable-face)))
|
'(remind-builtin-variables-matcher . remind-conf-variable-face)))
|
||||||
"The ultimate in highlighting experiences for `remind-conf-mode'.")
|
"The ultimate in highlighting experiences for `remind-conf-mode'.")
|
||||||
|
|
||||||
;;YYYY-MM-DD@hh:mm, YYYY-MM-DD@hh.mm, YYYY/MM/DD@hh:mm and YYYY/MM/DD@hh.mm
|
;;YYYY-MM-DD@hh:mm, YYYY-MM-DD@hh.mm, YYYY/MM/DD@hh:mm and YYYY/MM/DD@hh.mm
|
||||||
@@ -462,16 +510,16 @@ Acts on the region or places point where it needs to be."
|
|||||||
;; finally the derived mode.
|
;; finally the derived mode.
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(define-derived-mode remind-conf-mode text-mode "REM"
|
(define-derived-mode remind-conf-mode text-mode "Remind Conf Mode"
|
||||||
"Major mode for editing remind calendar configuration files.
|
"Major mode for editing remind calendar configuration files.
|
||||||
|
|
||||||
\\{remind-conf-mode-map}"
|
\\{remind-conf-mode-map}"
|
||||||
:syntax-table remind-conf-syntax-table
|
:syntax-table remind-conf-syntax-table
|
||||||
(set (make-local-variable 'font-lock-keywords-case-fold-search) t) ;this is not working atm 2009-04-13
|
|
||||||
(set (make-local-variable 'font-lock-defaults) '(remind-conf-font-lock-keywords))
|
(set (make-local-variable 'font-lock-defaults) '(remind-conf-font-lock-keywords))
|
||||||
(set (make-local-variable 'comment-start) ";")
|
(set (make-local-variable 'comment-start) ";")
|
||||||
(set (make-local-variable 'comment-start) "#")
|
(set (make-local-variable 'comment-start) "#")
|
||||||
(set (make-local-variable 'comment-end) "\n")
|
(set (make-local-variable 'comment-end) "\n")
|
||||||
|
(set (make-local-variable 'comment-end-skip) "[ \t]*\\(\\s>\\||#\\)")
|
||||||
(set (make-local-variable 'skeleton-end-hook) nil) ; so the skeletons will not automatically go to a new line.
|
(set (make-local-variable 'skeleton-end-hook) nil) ; so the skeletons will not automatically go to a new line.
|
||||||
(set (make-local-variable 'fill-column) '100);cause I was having problems with autofill.
|
(set (make-local-variable 'fill-column) '100);cause I was having problems with autofill.
|
||||||
(set (make-local-variable 'indent-line-function) 'remind-indent-line)
|
(set (make-local-variable 'indent-line-function) 'remind-indent-line)
|
||||||
|
|||||||
+1
-1
@@ -95,7 +95,7 @@ Norman Walsh.
|
|||||||
#!/usr/local/bin/wish
|
#!/usr/local/bin/wish
|
||||||
wm withdraw .
|
wm withdraw .
|
||||||
after 15000 { destroy . ; exit }
|
after 15000 { destroy . ; exit }
|
||||||
tk_dialog .d { Message } $argv warning 0 { OK }
|
tk_messageBox -message Message -detail $argv -icon info -type ok
|
||||||
destroy .
|
destroy .
|
||||||
exit
|
exit
|
||||||
-------------- Cut Here ---------- Cut Here ---------- Cut Here -------------
|
-------------- Cut Here ---------- Cut Here ---------- Cut Here -------------
|
||||||
|
|||||||
+1138
-63
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,19 @@
|
|||||||
|
# Demo the columns() function
|
||||||
|
#
|
||||||
|
# Run as: remind -@2 alignment.rem
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
|
SET $AddBlankLines 0
|
||||||
|
BANNER %
|
||||||
|
|
||||||
|
FSET center(x) pad("", " ", (columns() - columns(x))/2) + x
|
||||||
|
FSET right(x) pad("", " ", columns() - columns(x)) + x
|
||||||
|
|
||||||
|
MSG This is left-aligned.
|
||||||
|
MSG [ansicolor(0,255,0)]🌕 🌕 🌕 🌕 This is also left-aligned.[ansicolor("")]
|
||||||
|
|
||||||
|
MSG [center("This is centered.")]
|
||||||
|
MSG [ansicolor(255,255,0) + center("🌕 🌕 🌕 🌕 This is also centered. ") + ansicolor("")]
|
||||||
|
|
||||||
|
msg [right("This is right-aligned.")]
|
||||||
|
msg [ansicolor(255,0,0) + right("This is also right-aligned. 🌕 🌕 🌕") + ansicolor("")]
|
||||||
Executable
+39
@@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# A little demo script that displays ANSI text attributes
|
||||||
|
# Not all attributes work on all terminals... your mileage may vary.
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
|
remind -@2 - <<'EOF'
|
||||||
|
|
||||||
|
SET $AddBlankLines 0
|
||||||
|
BANNER %
|
||||||
|
INCLUDE [$SysInclude]/ansitext.rem
|
||||||
|
MSG This file shows off some ANSI text attributes and colors.
|
||||||
|
MSG Not all attributes work on all terminals.%_
|
||||||
|
|
||||||
|
MSG This is [ansi_bold]bold.[ansi_normal]
|
||||||
|
MSG This is [ansi_faint]faint.[ansi_normal]
|
||||||
|
MSG This is [ansi_italic]italic.[ansi_normal]
|
||||||
|
MSG This is [ansi_underline]underline.[ansi_normal]
|
||||||
|
MSG This is [ansi_underline2]underline2.[ansi_normal]%_
|
||||||
|
MSG This is [ansi_reverse]reverse.[ansi_normal]%_
|
||||||
|
MSG This is [ansi_strikeout]strikeout.[ansi_normal]%_
|
||||||
|
MSG This is [ansi_overline]overline.[ansi_normal]%_
|
||||||
|
|
||||||
|
MSG This is [ansicolor(255,0,0)]red.[ansicolor("")]
|
||||||
|
MSG This is [ansicolor(0,255,0)]green.[ansicolor("")]
|
||||||
|
MSG This is [ansicolor(0,0,255)]blue.[ansicolor("")]
|
||||||
|
MSG This is [ansicolor(255,255,0)]yellow.[ansicolor("")]
|
||||||
|
MSG This is [ansicolor(255,0,255)]magenta.[ansicolor("")]
|
||||||
|
MSG This is [ansicolor(0,255,255)]cyan.[ansicolor("")]
|
||||||
|
MSG This is [ansi_bold][ansicolor(255,255,255)][ansicolor(0,0,0,1)]white on black[ansicolor("")][ansi_normal]
|
||||||
|
MSG This is [ansi_bold][ansicolor(0,0,0)][ansicolor(255,255,255,1)]black on white[ansicolor("")][ansi_normal]
|
||||||
|
MSG %_
|
||||||
|
|
||||||
|
# You can combine attributes
|
||||||
|
MSG This is [ansicolor(0,255,0)][ansicolor(0,0,96,1)][ansi_italic][ansi_bold]Green-Bold-Italic-on-Blue[ansi_normal][ansicolor("")]
|
||||||
|
|
||||||
|
EOF
|
||||||
|
|
||||||
|
exit 0
|
||||||
Executable
+67
@@ -0,0 +1,67 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# A little demo script that displays astronomical events
|
||||||
|
#
|
||||||
|
# Best used in a UTF-8 environment.
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
|
# Set your latitude and longitude correctly for Sunrise/Sunset/Equinox/Solstice
|
||||||
|
#
|
||||||
|
# The values below are for Ottawa, Ontario, Canada
|
||||||
|
latitude="45.420556"
|
||||||
|
longitude="-75.689722"
|
||||||
|
|
||||||
|
remind -g "-i\$Latitude=\"$latitude\"" "-i\$Longitude=\"$longitude\"" -q -@2 - "$@" <<'EOF'
|
||||||
|
SET $AddBlankLines 0
|
||||||
|
BANNER %
|
||||||
|
|
||||||
|
INCLUDE [$SysInclude]/ansitext.rem
|
||||||
|
|
||||||
|
MSG Today is [ansi_bold][$T][ansi_normal], being the [ord($T-date(year($T),1,1)+1)] day of [year($T)].
|
||||||
|
MSG Not including today, the year [year($T)] has [date(year($T)+1, 1, 1)-$T-1] more [plural(date(year($T)+1, 1, 1)-$T-1, "day")] left.%_
|
||||||
|
|
||||||
|
IF $TerminalBackground == 0
|
||||||
|
SPECIAL COLOR 255 255 0 Sunrise: 🌅 [sunrise()] today and [sunrise($T+1)] tomorrow
|
||||||
|
SPECIAL COLOR 255 128 0 Sunset: 🌇 [sunset()] today and [sunset($T+1)] tomorrow%_
|
||||||
|
ELSE
|
||||||
|
SPECIAL COLOR 128 128 0 Sunrise: 🌅 [sunrise()] today and [sunrise($T+1)] tomorrow
|
||||||
|
SPECIAL COLOR 128 32 0 Sunset: 🌇 [sunset()] today and [sunset($T+1)] tomorrow%_
|
||||||
|
|
||||||
|
ENDIF
|
||||||
|
EOF
|
||||||
|
|
||||||
|
remind -g "-i\$Latitude=\"$latitude\"" "-i\$Longitude=\"$longitude\"" -q -@2 - "$@" <<'EOF'
|
||||||
|
SET $AddBlankLines 0
|
||||||
|
BANNER %
|
||||||
|
IF $TerminalBackground == 0
|
||||||
|
REM [moondatetime(0)] +60 SPECIAL COLOR 255 255 0 New moon: 🌑 [$T] %3 (%b)
|
||||||
|
REM [moondatetime(1)] +60 SPECIAL COLOR 255 255 128 First Quarter: 🌓 [$T] %3 (%b)
|
||||||
|
REM [moondatetime(2)] +60 SPECIAL COLOR 255 255 255 Full moon: 🌕 [$T] %3 (%b)
|
||||||
|
REM [moondatetime(3)] +60 SPECIAL COLOR 255 255 128 Last Quarter: 🌗 [$T] %3 (%b)
|
||||||
|
ELSE
|
||||||
|
REM [moondatetime(0)] +60 SPECIAL COLOR 128 128 0 New moon: 🌑 [$T] %3 (%b)
|
||||||
|
REM [moondatetime(1)] +60 SPECIAL COLOR 128 128 64 First Quarter: 🌓 [$T] %3 (%b)
|
||||||
|
REM [moondatetime(2)] +60 SPECIAL COLOR 0 0 0 Full moon: 🌕 [$T] %3 (%b)
|
||||||
|
REM [moondatetime(3)] +60 SPECIAL COLOR 128 128 64 Last Quarter: 🌗 [$T] %3 (%b)
|
||||||
|
ENDIF
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
remind -g "-i\$Latitude=\"$latitude\"" "-i\$Longitude=\"$longitude\"" -q -@2 - "$@" <<'EOF'
|
||||||
|
SET $AddBlankLines 0
|
||||||
|
BANNER %
|
||||||
|
|
||||||
|
IF $LatDeg >= 0
|
||||||
|
REM [soleq(0)] +366 MSG Next Vernal Equinox: 🌼 [$T] %3 (%b)
|
||||||
|
REM [soleq(1)] +366 MSG Next Summer Solstice: 😎 [$T] %3 (%b)
|
||||||
|
REM [soleq(2)] +366 MSG Next Autumnal Equinox: 🍂 [$T] %3 (%b)
|
||||||
|
REM [soleq(3)] +366 MSG Next Winter Solstice: ❄️ [$T] %3 (%b)
|
||||||
|
ELSE
|
||||||
|
REM [soleq(0)] +366 MSG Next Autumnal Equinox: 🍂 [$T] %3 (%b)
|
||||||
|
REM [soleq(1)] +366 MSG Next Winter Solstice: ❄️ [$T] %3 (%b)
|
||||||
|
REM [soleq(2)] +366 MSG Next Vernal Equinox: 🌼 [$T] %3 (%b)
|
||||||
|
REM [soleq(3)] +366 MSG Next Summer Solstice: 😎 [$T] %3 (%b)
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
EOF
|
||||||
+119
-153
@@ -6,6 +6,11 @@
|
|||||||
# Cut and paste as desired! Also, near the end, there are a bunch of #
|
# Cut and paste as desired! Also, near the end, there are a bunch of #
|
||||||
# holiday definitions for the U.S. #
|
# holiday definitions for the U.S. #
|
||||||
# #
|
# #
|
||||||
|
# *** NOTE *** #
|
||||||
|
# #
|
||||||
|
# This file is simply a grab-bag of examples. It is NOT meant to be #
|
||||||
|
# included as-is in a live reminder file. #
|
||||||
|
# #
|
||||||
# Some examples provided by George M. Sipe <gsipe@pyratl.ga.pyramid.com> #
|
# Some examples provided by George M. Sipe <gsipe@pyratl.ga.pyramid.com> #
|
||||||
# #
|
# #
|
||||||
# U.S. holidays provided by Dave Rickel <drickel@sjc.mentorg.com> #
|
# U.S. holidays provided by Dave Rickel <drickel@sjc.mentorg.com> #
|
||||||
@@ -16,7 +21,8 @@
|
|||||||
# "#PSSTUFF" for nifty PostScript examples #
|
# "#PSSTUFF" for nifty PostScript examples #
|
||||||
# #
|
# #
|
||||||
# This file is part of REMIND. #
|
# This file is part of REMIND. #
|
||||||
# Copyright (C) 1992-2018 Dianne Skoll #
|
# Copyright (C) 1992-2024 Dianne Skoll #
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
# #
|
# #
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
@@ -25,72 +31,22 @@ RUN OFF
|
|||||||
################################################
|
################################################
|
||||||
# Ensure required version of remind is used... #
|
# Ensure required version of remind is used... #
|
||||||
################################################
|
################################################
|
||||||
IF version() < "03.01.10"
|
IF version() < "03.04.02"
|
||||||
ERRMSG This file requires at least version 03.01.10 of Remind.%
|
ERRMSG This file requires at least version 03.04.02 of Remind.%
|
||||||
ERRMSG This version is version [version()].
|
ERRMSG This version is version [version()].
|
||||||
EXIT
|
EXIT
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
######################################
|
|
||||||
# Symbolic constants for weekdays... #
|
|
||||||
######################################
|
|
||||||
SET Sunday 0
|
|
||||||
SET Monday 1
|
|
||||||
SET Tuesday 2
|
|
||||||
SET Wednesday 3
|
|
||||||
SET Thursday 4
|
|
||||||
SET Friday 5
|
|
||||||
SET Saturday 6
|
|
||||||
|
|
||||||
SET Sun 0
|
|
||||||
SET Mon 1
|
|
||||||
SET Tue 2
|
|
||||||
SET Wed 3
|
|
||||||
SET Thu 4
|
|
||||||
SET Fri 5
|
|
||||||
SET Sat 6
|
|
||||||
|
|
||||||
#########################################
|
|
||||||
# Symbolic constants for month names... #
|
|
||||||
#########################################
|
|
||||||
|
|
||||||
SET Jan 1
|
|
||||||
SET Feb 2
|
|
||||||
SET Mar 3
|
|
||||||
SET Apr 4
|
|
||||||
SET May 5
|
|
||||||
SET Jun 6
|
|
||||||
SET Jul 7
|
|
||||||
SET Aug 8
|
|
||||||
SET Sep 9
|
|
||||||
SET Oct 10
|
|
||||||
SET Nov 11
|
|
||||||
SET Dec 12
|
|
||||||
|
|
||||||
SET January 1
|
|
||||||
SET February 2
|
|
||||||
SET March 3
|
|
||||||
SET April 4
|
|
||||||
SET May 5
|
|
||||||
SET June 6
|
|
||||||
SET July 7
|
|
||||||
SET August 8
|
|
||||||
SET September 9
|
|
||||||
SET October 10
|
|
||||||
SET November 11
|
|
||||||
SET December 12
|
|
||||||
|
|
||||||
###########################################################
|
###########################################################
|
||||||
# Other symbolic constants and functions for "pasting"... #
|
# Symbolic constants and functions for "pasting"... #
|
||||||
###########################################################
|
###########################################################
|
||||||
SET Quote CHAR(34)
|
SET Quote CHAR(34)
|
||||||
|
|
||||||
# Handy constants/function for specifing week of month...
|
# Handy constants/function for specifying week of month...
|
||||||
SET Week_1 1
|
SET Week_1 1
|
||||||
SET Week_2 8
|
SET Week_2 8
|
||||||
SET Week_3 15
|
SET Week_3 15
|
||||||
SET Week_4 22
|
SET Week_4 22
|
||||||
FSET _last(mo) "1 " + MON((mo%12)+1) + " --7"
|
|
||||||
|
|
||||||
#################################################################
|
#################################################################
|
||||||
# Function that removes a single leading zero from a string... #
|
# Function that removes a single leading zero from a string... #
|
||||||
@@ -119,50 +75,23 @@ REM 1 MSG John's [_mo_num(11, 1984)] 'monthly' anniversary
|
|||||||
# Here's a tricky problem: The 4th of July is a holiday in the U.S.
|
# Here's a tricky problem: The 4th of July is a holiday in the U.S.
|
||||||
# However, if it falls on a Saturday, the previous Friday is a holiday.
|
# However, if it falls on a Saturday, the previous Friday is a holiday.
|
||||||
# If it falls on a Sunday, the next Monday is a holiday. Here's how
|
# If it falls on a Sunday, the next Monday is a holiday. Here's how
|
||||||
# to do it. NOTE that the following procedure makes the OMIT context
|
# to do it.
|
||||||
# dependent upon the current date. SInce it only depends on the current
|
#
|
||||||
# year, which is not likely to change while producing a calendar, we
|
# For those reminders that update the OMIT context with ADDOMIT, we use
|
||||||
# are fairly safe. However, reminders with huge DELTA or BACK components
|
# SCANFROM -7 for safety; see the man page about moveable OMITs.
|
||||||
# may not operate as expected. In general, any time you make OMIT
|
|
||||||
# dependent upon the current date, it's tricky and results may not be
|
|
||||||
# what you expect. You should try to make sure that the OMIT context
|
|
||||||
# "near" any current reminders will not change during a calendar run.
|
|
||||||
# The SCANFROM clause will make these OMITs safe.
|
|
||||||
############################################################################
|
############################################################################
|
||||||
|
|
||||||
# Calculate the weekday of the holiday.
|
# If it falls on a Saturday, bump to previous Friday
|
||||||
REM 4 July SCANFROM -7 SATISFY 1
|
REM 3 JULY SCANFROM -7 ADDOMIT SATISFY [$Tw == 5] MSG Independence day (observed)
|
||||||
|
|
||||||
SET iday $T
|
# If it falls on a Sunday, bump to following Monday
|
||||||
IF WKDAYNUM(iday) == Sat
|
REM 5 July SCANFROM -7 ADDOMIT SATISFY [$Tw == 1] MSG Independence day (observed)
|
||||||
REM [iday] MSG Independence day (actual)
|
|
||||||
OMIT [iday-1] MSG Independence day (observed)
|
|
||||||
ELSE
|
|
||||||
IF WKDAYNUM(iday) == Sun
|
|
||||||
REM [iday] MSG Independence day (actual)
|
|
||||||
OMIT [iday+1] MSG Independence day (observed)
|
|
||||||
ELSE
|
|
||||||
OMIT [iday] MSG Independence day
|
|
||||||
ENDIF
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
############################################################################
|
# If it falls on Sat or Sun, note the actual day
|
||||||
# A meeting on the first Monday of every month which is moved to the #
|
REM 4 July SCANFROM -7 ADDOMIT SATISFY [$Tw == 0 || $Tw == 6] MSG Independence day (actual)
|
||||||
# second Monday in the event of a holiday. #
|
|
||||||
############################################################################
|
|
||||||
|
|
||||||
# First, the normal meeting. However, the SKIP keyword means this
|
# Otherwise observed and actual is on the 4th
|
||||||
# one won't be triggered if the first Monday is a holiday
|
REM 4 July SCANFROM -7 ADDOMIT SATISFY [$Tw >= 1 && $Tw <= 5] MSG Independence Day
|
||||||
REM Mon 1 SKIP MSG Meeting
|
|
||||||
|
|
||||||
# Now, calculate the "potential" delayed meeting
|
|
||||||
REM Mon 8 SATISFY 1
|
|
||||||
|
|
||||||
# But only actually trigger the delayed meeting if the previous
|
|
||||||
# Monday was a holiday
|
|
||||||
IF ISOMITTED($T-7)
|
|
||||||
REM [$T] MSG Delayed meeting
|
|
||||||
ENDIF
|
|
||||||
|
|
||||||
##########################################################################
|
##########################################################################
|
||||||
# #
|
# #
|
||||||
@@ -201,6 +130,8 @@ REM Sat Sun SPECIAL SHADE 220
|
|||||||
# The following holidays were provided by Dave Rickel #
|
# The following holidays were provided by Dave Rickel #
|
||||||
# Modified by D. Skoll to give safe OMITs for moveable holidays #
|
# Modified by D. Skoll to give safe OMITs for moveable holidays #
|
||||||
# #
|
# #
|
||||||
|
# NOTE: See include/holidays/us.rem for more up-to-date definitions #
|
||||||
|
# #
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
SET SaveTrig $NumTrig
|
SET SaveTrig $NumTrig
|
||||||
@@ -216,32 +147,49 @@ REM [easter+49] MSG %"Pentecost%"
|
|||||||
# which ones are omitted - use the general forms shown below. You'll
|
# which ones are omitted - use the general forms shown below. You'll
|
||||||
# need the Week_n variables defined way up in the file.
|
# need the Week_n variables defined way up in the file.
|
||||||
|
|
||||||
OMIT Jan 1 MSG %"New Year's%" Day
|
OMIT Jan 1 MSG %"New Year's Day%"
|
||||||
REM Mon Jan [Week_3] MSG Martin Luther King - %"MLK Day%"
|
REM Third Monday in Jan MSG Martin Luther King - %"MLK Day%"
|
||||||
REM Feb 2 MSG %"Ground Hog Day%"
|
REM Feb 2 MSG %"Ground Hog Day%"
|
||||||
REM Feb 14 MSG %"Valentine's%" Day
|
REM Feb 14 MSG %"Valentine's Day%"
|
||||||
REM Mon Feb [Week_3] SCANFROM -7 ADDOMIT MSG %"President's Day%"
|
REM Third Monday in Feb SCANFROM -7 ADDOMIT MSG %"President's Day%"
|
||||||
REM Mar 17 MSG %"St. Patrick's%" Day
|
REM Mar 17 MSG %"St. Patrick's Day%"
|
||||||
|
|
||||||
# The DST rules are accurate for most locations in
|
# The DST rules are accurate for most locations in
|
||||||
# North America
|
# North America
|
||||||
REM Sun Apr 1 ++2 UNTIL 1 Jan 2007 MSG Daylight Saving Time - %"DST starts%" %b
|
REM Sun Apr 1 ++2 UNTIL 1 Jan 2007 MSG Daylight Saving Time - %"DST starts%" %b
|
||||||
REM Sun Mar 8 ++2 FROM 1 Jan 2007 MSG Daylight Saving Time - %"DST starts%" %b
|
REM Sun Mar 8 ++2 FROM 1 Jan 2007 MSG Daylight Saving Time - %"DST starts%" %b
|
||||||
|
|
||||||
REM Sun [_last(Oct)] ++2 UNTIL 1 Jan 2007 MSG Daylight Saving Time - %"DST ends%" %b
|
REM Last Sunday in October ++2 UNTIL 1 Jan 2007 MSG Daylight Saving Time - %"DST ends%" %b
|
||||||
REM Sun 1 Nov ++2 FROM 1 Jan 2007 MSG Daylight Saving Time - %"DST ends%" %b
|
REM First Sunday in November ++2 FROM 1 Jan 2007 MSG Daylight Saving Time - %"DST ends%" %b
|
||||||
|
|
||||||
REM Apr 1 MSG %"April Fool's%" Day
|
REM Apr 1 MSG %"April Fool's%" Day
|
||||||
REM Mon Tue Wed Thu Fri Sat 15 Apr MSG %"Income tax%" due
|
|
||||||
|
# US Tax Day
|
||||||
|
PUSH-OMIT-CONTEXT
|
||||||
|
# Normal case: 16 April falls Mon-Fri
|
||||||
|
REM 16 Apr SCANFROM -7 ADDOMIT SATISFY [$Tw >= 1 && $Tw <= 5] MSG Emancipation Day
|
||||||
|
|
||||||
|
# 16 April falls on Saturday: Observe on the 15th
|
||||||
|
REM 15 Apr SCANFROM -7 ADDOMIT SATISFY [$Tw == 5] MSG Emancipation Day (observed)
|
||||||
|
|
||||||
|
# 16 April falls on Sunday: Observe on the 17th
|
||||||
|
REM 17 Apr SCANFROM -7 ADDOMIT SATISFY [$Tw == 1] MSG Emancipation Day (observed)
|
||||||
|
|
||||||
|
# If you live in Maine or Massachussetts, uncomment the next line
|
||||||
|
# REM Third Monday in April SCANFROM -7 ADDOMIT MSG Patriots Day
|
||||||
|
|
||||||
|
REM Apr 15 OMIT Sat Sun AFTER MSG Tax Day
|
||||||
|
POP-OMIT-CONTEXT
|
||||||
|
|
||||||
REM May 5 MSG %"Cinco de Mayo%"
|
REM May 5 MSG %"Cinco de Mayo%"
|
||||||
REM Sat May [Week_1] MSG %"Kentucky Derby%"
|
REM First Sat in May MSG %"Kentucky Derby%"
|
||||||
REM Sun May [Week_2] MSG %"Mother's Day%"
|
REM Second Sun in May MSG %"Mother's Day%"
|
||||||
REM Sat May [Week_3] MSG %"Armed Forces Day%"
|
REM Third Sat in May MSG %"Armed Forces Day%"
|
||||||
REM Mon [_last(May)] SCANFROM -7 ADDOMIT MSG %"Memorial Day%"
|
REM Last Monday in May SCANFROM -7 ADDOMIT MSG %"Memorial Day%"
|
||||||
REM Jun 14 MSG %"Flag Day%"
|
REM Jun 14 MSG %"Flag Day%"
|
||||||
REM Sun Jun [Week_3] MSG %"Father's Day%"
|
REM Third Sun in June MSG %"Father's Day%"
|
||||||
REM Mon Sep [Week_1] SCANFROM -7 ADDOMIT MSG %"Labor Day%"
|
REM First Mon in Sep SCANFROM -7 ADDOMIT MSG %"Labor Day%"
|
||||||
REM Mon Oct [Week_2] MSG %"Columbus Day%"
|
REM Second Mon in Oct MSG %"Columbus Day%"
|
||||||
REM Nov 11 MSG %"Veterans Day%"
|
REM Nov 11 MSG %"Veterans Day%"
|
||||||
|
|
||||||
REM Oct 30 MSG %"Mischief Night%"
|
REM Oct 30 MSG %"Mischief Night%"
|
||||||
@@ -262,6 +210,24 @@ if $NumTrig > SaveTrig
|
|||||||
REM SPECIAL SHADE 220
|
REM SPECIAL SHADE 220
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
# A meeting on the first Monday of every month which is moved to the #
|
||||||
|
# second Monday in the event of a holiday. #
|
||||||
|
############################################################################
|
||||||
|
|
||||||
|
# First, the normal meeting. However, the SKIP keyword means this
|
||||||
|
# one won't be triggered if the first Monday is a holiday
|
||||||
|
REM First Monday SKIP MSG Meeting
|
||||||
|
|
||||||
|
# Now, calculate the "potential" delayed meeting
|
||||||
|
REM Second Monday SATISFY 1
|
||||||
|
|
||||||
|
# But only actually trigger the delayed meeting if the previous
|
||||||
|
# Monday was a holiday
|
||||||
|
IF ISOMITTED($T-7)
|
||||||
|
REM [$T] MSG Delayed meeting
|
||||||
|
ENDIF
|
||||||
|
|
||||||
#PSSTUFF2
|
#PSSTUFF2
|
||||||
##########################################################################
|
##########################################################################
|
||||||
# #
|
# #
|
||||||
@@ -278,10 +244,10 @@ REM PS Border Border moveto \
|
|||||||
([hebday($U)] [hebmon($U)]) show
|
([hebday($U)] [hebmon($U)]) show
|
||||||
|
|
||||||
# Fill in the phases of the moon on the PostScript calendar
|
# Fill in the phases of the moon on the PostScript calendar
|
||||||
[moondate(0)] SPECIAL MOON 0
|
REM [moondate(0)] SPECIAL MOON 0
|
||||||
[moondate(1)] SPECIAL MOON 1
|
REM [moondate(1)] SPECIAL MOON 1
|
||||||
[moondate(2)] SPECIAL MOON 2
|
REM [moondate(2)] SPECIAL MOON 2
|
||||||
[moondate(3)] SPECIAL MOON 3
|
REM [moondate(3)] SPECIAL MOON 3
|
||||||
|
|
||||||
# The following example puts sunrise and sunset times in PostScript in the
|
# The following example puts sunrise and sunset times in PostScript in the
|
||||||
# calendar - the sizes are hard-coded, however, and work best in landscape.
|
# calendar - the sizes are hard-coded, however, and work best in landscape.
|
||||||
@@ -344,51 +310,51 @@ FSET _PastMon(x, y) IIF(WKDAYNUM(_h2(x,y))!=1, _h2(x,y), _h2(x,y)+1)
|
|||||||
SET InIsrael VALUE("InIsrael", 0)
|
SET InIsrael VALUE("InIsrael", 0)
|
||||||
SET Reform VALUE("Reform", 0)
|
SET Reform VALUE("Reform", 0)
|
||||||
|
|
||||||
[_h(1, "Tishrey")] ++4 MSG %"Rosh Hashana 1%" is %b.
|
REM [_h(1, "Tishrey")] ++4 MSG %"Rosh Hashana 1%" is %b.
|
||||||
|
|
||||||
# No RH-2 or Tzom Gedalia in Reform
|
# No RH-2 or Tzom Gedalia in Reform
|
||||||
IF !Reform
|
IF !Reform
|
||||||
[_h(2, "Tishrey")] ++4 MSG %"Rosh Hashana 2%" is %b.
|
REM [_h(2, "Tishrey")] ++4 MSG %"Rosh Hashana 2%" is %b.
|
||||||
[_PastSat(3, "Tishrey")] ++4 MSG %"Tzom Gedalia%" is %b.
|
REM [_PastSat(3, "Tishrey")] ++4 MSG %"Tzom Gedalia%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
[_h(10, "Tishrey")] ++4 MSG %"Yom Kippur%" is %b.
|
REM [_h(10, "Tishrey")] ++4 MSG %"Yom Kippur%" is %b.
|
||||||
[_h(15, "Tishrey")] ++4 MSG %"Sukkot 1%" is %b.
|
REM [_h(15, "Tishrey")] ++4 MSG %"Sukkot 1%" is %b.
|
||||||
|
|
||||||
IF !InIsrael
|
IF !InIsrael
|
||||||
[_h(16, "Tishrey")] MSG %"Sukkot 2%"
|
REM [_h(16, "Tishrey")] MSG %"Sukkot 2%"
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
[_h(21, "Tishrey")] ++4 MSG %"Hoshana Rabba%" is %b.
|
REM [_h(21, "Tishrey")] ++4 MSG %"Hoshana Rabba%" is %b.
|
||||||
[_h(22, "Tishrey")] ++4 MSG %"Shemini Atzeret%" is %b.
|
REM [_h(22, "Tishrey")] ++4 MSG %"Shemini Atzeret%" is %b.
|
||||||
|
|
||||||
IF InIsrael
|
IF InIsrael
|
||||||
[_h(22, "Tishrey")] ++4 MSG %"Simchat Torah%" is %b.
|
REM [_h(22, "Tishrey")] ++4 MSG %"Simchat Torah%" is %b.
|
||||||
ELSE
|
ELSE
|
||||||
[_h(23, "Tishrey")] ++4 MSG %"Simchat Torah%" is %b.
|
REM [_h(23, "Tishrey")] ++4 MSG %"Simchat Torah%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
# Because Kislev can change length, we must be more careful about Chanukah
|
# Because Kislev can change length, we must be more careful about Chanukah
|
||||||
FSET _chan(x) HEBDATE(24, "Kislev", $U-9)+x
|
FSET _chan(x) HEBDATE(24, "Kislev", $U-9)+x
|
||||||
[_chan(1)] ++4 MSG %"Chanukah 1%" is %b.
|
REM [_chan(1)] ++4 MSG %"Chanukah 1%" is %b.
|
||||||
[_chan(2)] MSG %"Chanukah 2%"
|
REM [_chan(2)] MSG %"Chanukah 2%"
|
||||||
[_chan(3)] MSG %"Chanukah 3%"
|
REM [_chan(3)] MSG %"Chanukah 3%"
|
||||||
[_chan(4)] MSG %"Chanukah 4%"
|
REM [_chan(4)] MSG %"Chanukah 4%"
|
||||||
[_chan(5)] MSG %"Chanukah 5%"
|
REM [_chan(5)] MSG %"Chanukah 5%"
|
||||||
[_chan(6)] MSG %"Chanukah 6%"
|
REM [_chan(6)] MSG %"Chanukah 6%"
|
||||||
[_chan(7)] MSG %"Chanukah 7%"
|
REM [_chan(7)] MSG %"Chanukah 7%"
|
||||||
[_chan(8)] MSG %"Chanukah 8%"
|
REM [_chan(8)] MSG %"Chanukah 8%"
|
||||||
|
|
||||||
# Not sure about Reform's position on the next one.
|
# Not sure about Reform's position on the next one.
|
||||||
IF !Reform
|
IF !Reform
|
||||||
# 10 Tevet will never be a Saturday, so whether or not to
|
# 10 Tevet will never be a Saturday, so whether or not to
|
||||||
# move it is moot. (Thanks to Art Werschulz.)
|
# move it is moot. (Thanks to Art Werschulz.)
|
||||||
[_h(10, "Tevet")] MSG %"Tzom Tevet%" is %b.
|
REM [_h(10, "Tevet")] MSG %"Tzom Tevet%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
[_h(15, "Shvat")] ++4 MSG %"Tu B'Shvat%" is %b.
|
REM [_h(15, "Shvat")] ++4 MSG %"Tu B'Shvat%" is %b.
|
||||||
[_h(14, "Adar A")] ++4 MSG %"Purim Katan%" is %b.
|
REM [_h(14, "Adar A")] ++4 MSG %"Purim Katan%" is %b.
|
||||||
[_h(15, "Adar A")] ++4 MSG %"Shushan Purim Katan%" is %b.
|
REM [_h(15, "Adar A")] ++4 MSG %"Shushan Purim Katan%" is %b.
|
||||||
|
|
||||||
# If Purim is on Sunday, then Fast of Esther is 11 Adar.
|
# If Purim is on Sunday, then Fast of Esther is 11 Adar.
|
||||||
IF WKDAYNUM(_h2(13, "Adar")) != 6
|
IF WKDAYNUM(_h2(13, "Adar")) != 6
|
||||||
@@ -396,18 +362,18 @@ IF WKDAYNUM(_h2(13, "Adar")) != 6
|
|||||||
ELSE
|
ELSE
|
||||||
REM [_h2(11, "Adar")] ++4 MSG %"Fast of Esther%" is %b.
|
REM [_h2(11, "Adar")] ++4 MSG %"Fast of Esther%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
[_h(14, "Adar")] ++4 MSG %"Purim%" is %b.
|
REM [_h(14, "Adar")] ++4 MSG %"Purim%" is %b.
|
||||||
[_h(15, "Adar")] ++4 MSG %"Shushan Purim%" is %b.
|
REM [_h(15, "Adar")] ++4 MSG %"Shushan Purim%" is %b.
|
||||||
[_h(15, "Nisan")] ++4 MSG %"Pesach%" is %b.
|
REM [_h(15, "Nisan")] ++4 MSG %"Pesach%" is %b.
|
||||||
|
|
||||||
IF !InIsrael
|
IF !InIsrael
|
||||||
[_h(16, "Nisan")] MSG %"Pesach 2%"
|
REM [_h(16, "Nisan")] MSG %"Pesach 2%"
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
[_h(21, "Nisan")] MSG %"Pesach 7%"
|
REM [_h(21, "Nisan")] MSG %"Pesach 7%"
|
||||||
|
|
||||||
IF !InIsrael && !Reform
|
IF !InIsrael && !Reform
|
||||||
[_h(22, "Nisan")] MSG %"Pesach 8%"
|
REM [_h(22, "Nisan")] MSG %"Pesach 8%"
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
REM [_PastSun(27, "Nisan")] SATISFY 1
|
REM [_PastSun(27, "Nisan")] SATISFY 1
|
||||||
@@ -423,36 +389,36 @@ ENDIF
|
|||||||
# Thursday. If 4 Iyar is a Sunday, then Yom Hazikaron
|
# Thursday. If 4 Iyar is a Sunday, then Yom Hazikaron
|
||||||
# moves to 5 Iyar and Yom Ha'atzmaut to 6 Iyar.
|
# moves to 5 Iyar and Yom Ha'atzmaut to 6 Iyar.
|
||||||
IF WKDAYNUM(_h2(4, "Iyar")) == 4 || WKDAYNUM(_h2(4, "Iyar")) == 5
|
IF WKDAYNUM(_h2(4, "Iyar")) == 4 || WKDAYNUM(_h2(4, "Iyar")) == 5
|
||||||
[_h(2, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
REM [_h(2, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
||||||
[_h(3, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
REM [_h(3, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
||||||
ELSE
|
ELSE
|
||||||
IF WKDAYNUM(_h2(4, "Iyar")) == 0
|
IF WKDAYNUM(_h2(4, "Iyar")) == 0
|
||||||
[_h(5, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
REM [_h(5, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
||||||
[_h(6, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
REM [_h(6, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
||||||
ELSE
|
ELSE
|
||||||
[_h(4, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
REM [_h(4, "Iyar")] ++4 MSG %"Yom Hazikaron%" is %b.
|
||||||
[_h(5, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
REM [_h(5, "Iyar")] ++4 MSG %"Yom Ha'atzmaut%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
# Not sure about Reform's position on Lag B'Omer
|
# Not sure about Reform's position on Lag B'Omer
|
||||||
IF !Reform
|
IF !Reform
|
||||||
[_h(18, "Iyar")] ++4 MSG %"Lag B'Omer%" is %b.
|
REM [_h(18, "Iyar")] ++4 MSG %"Lag B'Omer%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
[_h(28, "Iyar")] ++4 MSG %"Yom Yerushalayim%" is %b.
|
REM [_h(28, "Iyar")] ++4 MSG %"Yom Yerushalayim%" is %b.
|
||||||
[_h(6, "Sivan")] ++4 MSG %"Shavuot%" is %b.
|
REM [_h(6, "Sivan")] ++4 MSG %"Shavuot%" is %b.
|
||||||
|
|
||||||
IF !InIsrael && !Reform
|
IF !InIsrael && !Reform
|
||||||
[_h(7, "Sivan")] MSG %"Shavuot 2%"
|
REM [_h(7, "Sivan")] MSG %"Shavuot 2%"
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
# Fairly sure Reform Jews don't observe the next two
|
# Fairly sure Reform Jews don't observe the next two
|
||||||
IF !Reform
|
IF !Reform
|
||||||
# Tzom Tamuz and Tish'a B'Av are moved to Sunday if they normally
|
# Tzom Tamuz and Tish'a B'Av are moved to Sunday if they normally
|
||||||
# fall on a Saturday
|
# fall on a Saturday
|
||||||
[_PastSat(17, "Tamuz")] ++4 MSG %"Tzom Tammuz%" is %b.
|
REM [_PastSat(17, "Tamuz")] ++4 MSG %"Tzom Tammuz%" is %b.
|
||||||
[_PastSat(9, "Av")] ++4 MSG %"Tish'a B'Av%" is %b.
|
REM [_PastSat(9, "Av")] ++4 MSG %"Tish'a B'Av%" is %b.
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
# Counting the omer - do the whole spiel, i.e:
|
# Counting the omer - do the whole spiel, i.e:
|
||||||
|
|||||||
+5
-5
@@ -1,9 +1,9 @@
|
|||||||
" Vim syntax file
|
" Vim syntax file
|
||||||
" Language: Remind
|
" Language: Remind
|
||||||
" Maintainer: Davide Alberani <alberanid@libero.it>
|
" Maintainer: Davide Alberani <da@erlug.linux.it>
|
||||||
" Last Change: 18 Sep 2009
|
" Last Change: 02 Nov 2015 + 13 Mar 2022 by Dianne Skoll <dianne@skoll.ca>
|
||||||
" Version: 0.5
|
" Version: 0.7+dianne1
|
||||||
" URL: http://erlug.linux.it/~da/vim/syntax/remind.vim
|
" URL: http://ismito.it/vim/syntax/remind.vim
|
||||||
"
|
"
|
||||||
" remind is a sophisticated reminder service
|
" remind is a sophisticated reminder service
|
||||||
" you can download remind from:
|
" you can download remind from:
|
||||||
@@ -23,7 +23,7 @@ syn keyword remindExpiry UNTIL FROM SCANFROM SCAN WARN SCHED THROUGH
|
|||||||
syn keyword remindTag PRIORITY TAG
|
syn keyword remindTag PRIORITY TAG
|
||||||
syn keyword remindTimed AT DURATION
|
syn keyword remindTimed AT DURATION
|
||||||
syn keyword remindMove ONCE SKIP BEFORE AFTER
|
syn keyword remindMove ONCE SKIP BEFORE AFTER
|
||||||
syn keyword remindSpecial INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP COLOR COLOUR
|
syn keyword remindSpecial INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP COLOR COLOUR DO
|
||||||
syn keyword remindRun MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON
|
syn keyword remindRun MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON
|
||||||
syn keyword remindConditional IF ELSE ENDIF IFTRIG
|
syn keyword remindConditional IF ELSE ENDIF IFTRIG
|
||||||
syn keyword remindDebug DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
|
syn keyword remindDebug DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
# Global variables for various ANSI escape-code sequences
|
||||||
|
# Not all sequences are supported by all terminals.
|
||||||
|
|
||||||
|
# This file is part of REMIND
|
||||||
|
# REMIND is Copyright (C) 1992-2024 by Dianne Skoll
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
|
if !defined("ansi_bold")
|
||||||
|
# Disable ANSI attributes in calandar mode
|
||||||
|
if $CalMode
|
||||||
|
set ansi_normal ""
|
||||||
|
set ansi_bold ""
|
||||||
|
set ansi_faint ""
|
||||||
|
set ansi_italic ""
|
||||||
|
set ansi_underline ""
|
||||||
|
set ansi_reverse ""
|
||||||
|
set ansi_strikeout ""
|
||||||
|
set ansi_underline2 ""
|
||||||
|
set ansi_overline ""
|
||||||
|
else
|
||||||
|
set ansi_normal char(27) + "[0m"
|
||||||
|
set ansi_bold char(27) + "[1m"
|
||||||
|
set ansi_faint char(27) + "[2m"
|
||||||
|
set ansi_italic char(27) + "[3m"
|
||||||
|
set ansi_underline char(27) + "[4m"
|
||||||
|
set ansi_reverse char(27) + "[7m"
|
||||||
|
set ansi_strikeout char(27) + "[9m"
|
||||||
|
set ansi_underline2 char(27) + "[21m"
|
||||||
|
set ansi_overline char(27) + "[53m"
|
||||||
|
endif
|
||||||
|
preserve ansi_normal ansi_bold ansi_faint ansi_italic ansi_underline2 ansi_reverse ansi_strikeout ansi_underline2 ansi_overline
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Example: REM MSG I must [ansi_bold]emphasize[ansi_normal] \
|
||||||
|
# the [ansi_italic]severity[ansi_normal] of the situation!
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
This directory contains holiday files. The two-character files contain
|
||||||
|
holidays for various countries. Some countries (such as US and CA) have
|
||||||
|
regions with their own different holidays; the regional holidays are
|
||||||
|
stored in *.rem files underneath the country-code directory (eg, us and ca,
|
||||||
|
respectively.)
|
||||||
|
|
||||||
|
Many of these files were generated from the excellent "holidays" Python
|
||||||
|
library at https://pypi.org/project/holidays/
|
||||||
|
|
||||||
|
I did great damage to the library and host a terrible, awful hacked version
|
||||||
|
at https://github.com/dfskoll/holidays; it is this repo (in the remind-output
|
||||||
|
branch) that I used to generate the Remind files.
|
||||||
|
|
||||||
|
********************** IMPORTANT CAVEATS **********************
|
||||||
|
|
||||||
|
Any holidays that depend on a non-Gregorian calendar such as Jewish,
|
||||||
|
Islamic, Chinese and other East Asian calendars will NOT appear in the
|
||||||
|
country files! The only exceptions are holidays depending on the
|
||||||
|
Orthodox Easter date, for which Remind has support.
|
||||||
|
|
||||||
|
Also, I have made no effort to track changes to holiday legislation
|
||||||
|
over time. Therefore, the holiday files may be inaccurate for years
|
||||||
|
prior to 2024. I also did not include any one-off holidays such as
|
||||||
|
the funeral of Queen Elizabeth on 19 September 2022.
|
||||||
|
|
||||||
|
Non-country holiday files are:
|
||||||
|
|
||||||
|
chinese-new-year.rem - Chinese New Year from 2022 through 2050
|
||||||
|
discordian.rem - Discordian holidays
|
||||||
|
jewish.rem - Jewish holidays
|
||||||
|
pagan.rem - Pagan holidays
|
||||||
|
|
||||||
|
ADVANCE WARNING:
|
||||||
|
================
|
||||||
|
|
||||||
|
None of the included holiday files have deltas or substitution sequences.
|
||||||
|
You can use the following trick if you would like (for example) 7 days'
|
||||||
|
advance warning of holidays:
|
||||||
|
|
||||||
|
# Save old definition (if any) of msgsuffix
|
||||||
|
FRENAME msgsuffix saved_msgsuffix
|
||||||
|
|
||||||
|
# Save old value of $DefaultDelta
|
||||||
|
SET old_delta $DefaultDelta
|
||||||
|
|
||||||
|
# We want 7 days' advance warning
|
||||||
|
SET $DefaultDelta 7
|
||||||
|
|
||||||
|
# Add a suffix to print " is in xxx days", etc.
|
||||||
|
# Note the char(8) at the start to put the suffix
|
||||||
|
# on the same line as the reminder, and the final %
|
||||||
|
# in the argument of dosubst() to avoid an *extra*
|
||||||
|
# newline from being added
|
||||||
|
FSET msgsuffix(x) char(8) + dosubst(" is %b.%", $T)
|
||||||
|
|
||||||
|
# Include your holiday files here...
|
||||||
|
SYSINCLUDE holidays/us.rem
|
||||||
|
SYSINCLUDE holidays/us/ny.rem
|
||||||
|
|
||||||
|
# Restore old version of msgsuffix and $DefaultDelta
|
||||||
|
FRENAME saved_msgsuffix msgsuffix
|
||||||
|
SET $DefaultDelta old_delta
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Andorra.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/ad/
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
OMIT 6 January MSG Epiphany
|
||||||
|
OMIT [easterdate($Uy)-47] MSG Carnival
|
||||||
|
OMIT 14 March MSG Constitution Day
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Good Friday
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Easter Monday
|
||||||
|
OMIT 1 May MSG Labor Day
|
||||||
|
OMIT [easterdate($Uy)+50] MSG Whit Monday
|
||||||
|
OMIT 15 August MSG Assumption Day
|
||||||
|
OMIT 8 September MSG National Day
|
||||||
|
OMIT 1 November MSG All Saints' Day
|
||||||
|
OMIT 8 December MSG Immaculate Conception Day
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
OMIT 26 December MSG Saint Stephen's Day
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 02 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 02.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/ad.rem
|
||||||
|
|
||||||
|
REM Third Saturday in July ADDOMIT SCANFROM -28 MSG Canillo Annual Festival
|
||||||
|
REM Sunday 16 July ADDOMIT SCANFROM -28 MSG Canillo Annual Festival
|
||||||
|
REM Monday 17 July ADDOMIT SCANFROM -28 MSG Canillo Annual Festival
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 03 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 03.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/ad.rem
|
||||||
|
|
||||||
|
OMIT 15 August MSG Encamp Annual Festival
|
||||||
|
OMIT 16 August MSG Encamp Annual Festival
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 04 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 04.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/ad.rem
|
||||||
|
|
||||||
|
OMIT 15 August MSG La Massana Annual Festival
|
||||||
|
OMIT 16 August MSG La Massana Annual Festival
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 05 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 05.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/ad.rem
|
||||||
|
|
||||||
|
OMIT 15 August MSG Ordino Annual Festival
|
||||||
|
OMIT 16 August MSG Ordino Annual Festival
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 06 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 06.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/ad.rem
|
||||||
|
|
||||||
|
REM Friday 23 July ADDOMIT SCANFROM -28 MSG Sant Julià de Lòria Annual Festival
|
||||||
|
REM Saturday 24 July ADDOMIT SCANFROM -28 MSG Sant Julià de Lòria Annual Festival
|
||||||
|
REM Sunday 25 July ADDOMIT SCANFROM -28 MSG Sant Julià de Lòria Annual Festival
|
||||||
|
REM Monday 26 July ADDOMIT SCANFROM -28 MSG Sant Julià de Lòria Annual Festival
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 07 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 07.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/ad.rem
|
||||||
|
|
||||||
|
REM First Saturday in August ADDOMIT SCANFROM -28 MSG Andorra la Vella Annual Festival
|
||||||
|
REM Sunday 2 August ADDOMIT SCANFROM -28 MSG Andorra la Vella Annual Festival
|
||||||
|
REM Monday 3 August ADDOMIT SCANFROM -28 MSG Andorra la Vella Annual Festival
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 08 in Andorra
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 08.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/ad.rem
|
||||||
|
|
||||||
|
OMIT 25 July MSG Escaldes-Engordany Annual Festival
|
||||||
|
OMIT 26 July MSG Escaldes-Engordany Annual Festival
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for United Arab Emirates
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG رأس السنة الميلادية
|
||||||
|
OMIT 2 December MSG اليوم الوطني
|
||||||
|
OMIT 3 December MSG اليوم الوطني
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Albania
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Festat e Vitit të Ri
|
||||||
|
REM 1 January OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1))==0 || wkdaynum(date($Ty, 1, 1))==6] MSG Festat e Vitit të Ri (ditë pushimi e shtyrë)
|
||||||
|
OMIT 2 January MSG Festat e Vitit të Ri
|
||||||
|
REM 2 January OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 2))==0 || wkdaynum(date($Ty, 1, 2))==6] MSG Festat e Vitit të Ri (ditë pushimi e shtyrë)
|
||||||
|
OMIT 14 March MSG Dita e Verës
|
||||||
|
REM 14 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 14))==0 || wkdaynum(date($Ty, 3, 14))==6] MSG Dita e Verës (ditë pushimi e shtyrë)
|
||||||
|
OMIT 22 March MSG Dita e Nevruzit
|
||||||
|
REM 22 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 22))==0 || wkdaynum(date($Ty, 3, 22))==6] MSG Dita e Nevruzit (ditë pushimi e shtyrë)
|
||||||
|
REM 31 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 31))==0 || wkdaynum(date($Ty, 3, 31))==6] MSG E diela e Pashkëve Katolike (ditë pushimi e shtyrë)
|
||||||
|
OMIT [easterdate($Uy)] MSG E diela e Pashkëve Katolike
|
||||||
|
OMIT [easterdate($Uy)] MSG E diela e Pashkëve Ortodokse
|
||||||
|
OMIT 1 May MSG Dita Ndërkombëtare e Punëtorëve
|
||||||
|
REM 1 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1))==0 || wkdaynum(date($Ty, 5, 1))==6] MSG Dita Ndërkombëtare e Punëtorëve (ditë pushimi e shtyrë)
|
||||||
|
REM 5 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 5))==0 || wkdaynum(date($Ty, 5, 5))==6] MSG E diela e Pashkëve Ortodokse (ditë pushimi e shtyrë)
|
||||||
|
OMIT 5 September MSG Dita e Shenjtërimit të Shenjt Terezës
|
||||||
|
REM 5 September OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 9, 5))==0 || wkdaynum(date($Ty, 9, 5))==6] MSG Dita e Shenjtërimit të Shenjt Terezës (ditë pushimi e shtyrë)
|
||||||
|
OMIT 22 November MSG Dita e Alfabetit
|
||||||
|
REM 22 November OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 22))==0 || wkdaynum(date($Ty, 11, 22))==6] MSG Dita e Alfabetit (ditë pushimi e shtyrë)
|
||||||
|
OMIT 28 November MSG Dita Flamurit dhe e Pavarësisë
|
||||||
|
REM 28 November OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 28))==0 || wkdaynum(date($Ty, 11, 28))==6] MSG Dita Flamurit dhe e Pavarësisë (ditë pushimi e shtyrë)
|
||||||
|
OMIT 29 November MSG Dita e Çlirimit
|
||||||
|
REM 29 November OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 29))==0 || wkdaynum(date($Ty, 11, 29))==6] MSG Dita e Çlirimit (ditë pushimi e shtyrë)
|
||||||
|
OMIT 8 December MSG Dita Kombëtare e Rinisë
|
||||||
|
REM 8 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 8))==0 || wkdaynum(date($Ty, 12, 8))==6] MSG Dita Kombëtare e Rinisë (ditë pushimi e shtyrë)
|
||||||
|
OMIT 25 December MSG Krishtlindjet
|
||||||
|
REM 25 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25))==0 || wkdaynum(date($Ty, 12, 25))==6] MSG Krishtlindjet (ditë pushimi e shtyrë)
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Armenia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Նոր տարվա օր
|
||||||
|
OMIT 2 January MSG Նոր տարվա օր
|
||||||
|
OMIT 6 January MSG Սուրբ Ծնունդ եւ Հայտնություն
|
||||||
|
OMIT 28 January MSG Բանակի օր
|
||||||
|
OMIT 8 March MSG Կանանց տոն
|
||||||
|
OMIT 24 April MSG Եղեռնի զոհերի հիշատակի օր
|
||||||
|
OMIT 1 May MSG Աշխատանքի օր
|
||||||
|
OMIT 9 May MSG Հաղթանակի և Խաղաղության տոն
|
||||||
|
OMIT 28 May MSG Հանրապետության օր
|
||||||
|
OMIT 5 July MSG Սահմանադրության օր
|
||||||
|
OMIT 21 September MSG Անկախության օր
|
||||||
|
OMIT 31 December MSG Նոր տարվա գիշեր
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Angola
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Dia do Ano Novo
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 4] MSG Dia do Ano Novo (ponte)
|
||||||
|
REM 3 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 4)) == 2] MSG Dia do Início da Luta Armada de Libertação Nacional (ponte)
|
||||||
|
OMIT 4 February MSG Dia do Início da Luta Armada de Libertação Nacional
|
||||||
|
REM 5 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 4)) == 4] MSG Dia do Início da Luta Armada de Libertação Nacional (ponte)
|
||||||
|
REM 12 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 13)) == 2] MSG Dia do Carnaval (ponte)
|
||||||
|
REM 14 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 13)) == 4] MSG Dia do Carnaval (ponte)
|
||||||
|
OMIT [easterdate($Uy)-47] MSG Dia do Carnaval
|
||||||
|
REM 7 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 8)) == 2] MSG Dia Internacional da Mulher (ponte)
|
||||||
|
OMIT 8 March MSG Dia Internacional da Mulher
|
||||||
|
REM 9 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 8)) == 4] MSG Dia Internacional da Mulher (ponte)
|
||||||
|
REM 22 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 23)) == 2] MSG Dia da Libertação da África Austral (ponte)
|
||||||
|
OMIT 23 March MSG Dia da Libertação da África Austral
|
||||||
|
REM 24 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 23)) == 4] MSG Dia da Libertação da África Austral (ponte)
|
||||||
|
REM 3 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 4)) == 2] MSG Dia da Paz e Reconciliação Nacional (ponte)
|
||||||
|
OMIT 4 April MSG Dia da Paz e Reconciliação Nacional
|
||||||
|
REM 5 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 4)) == 4] MSG Dia da Paz e Reconciliação Nacional (ponte)
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Sexta-Feira Santa
|
||||||
|
REM 30 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 2] MSG Dia Internacional do Trabalhador (ponte)
|
||||||
|
OMIT 1 May MSG Dia Internacional do Trabalhador
|
||||||
|
REM 2 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 4] MSG Dia Internacional do Trabalhador (ponte)
|
||||||
|
REM 16 September ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 9, 17)) == 2] MSG Dia do Fundador da Nação e do Herói Nacional (ponte)
|
||||||
|
OMIT 17 September MSG Dia do Fundador da Nação e do Herói Nacional
|
||||||
|
REM 18 September ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 9, 17)) == 4] MSG Dia do Fundador da Nação e do Herói Nacional (ponte)
|
||||||
|
REM 1 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 2)) == 2] MSG Dia dos Finados (ponte)
|
||||||
|
OMIT 2 November MSG Dia dos Finados
|
||||||
|
REM 3 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 2)) == 4] MSG Dia dos Finados (ponte)
|
||||||
|
REM 10 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 11)) == 2] MSG Dia da Independência Nacional (ponte)
|
||||||
|
OMIT 11 November MSG Dia da Independência Nacional
|
||||||
|
REM 12 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 11)) == 4] MSG Dia da Independência Nacional (ponte)
|
||||||
|
REM 24 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 2] MSG Dia de Natal e da Família (ponte)
|
||||||
|
OMIT 25 December MSG Dia de Natal e da Família
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 4] MSG Dia de Natal e da Família (ponte)
|
||||||
|
REM 31 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 2] MSG Dia do Ano Novo (ponte)
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Argentina
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Año Nuevo
|
||||||
|
OMIT [easterdate($Uy)-48] MSG Día de Carnaval
|
||||||
|
OMIT [easterdate($Uy)-47] MSG Día de Carnaval
|
||||||
|
OMIT 24 March MSG Día Nacional de la Memoria por la Verdad y la Justicia
|
||||||
|
OMIT 2 April MSG Día del Veterano y de los Caidos en la Guerra de Malvinas
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Viernes Santo
|
||||||
|
OMIT 1 May MSG Día del Trabajo
|
||||||
|
OMIT 25 May MSG Día de la Revolución de Mayo
|
||||||
|
REM 15 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 17)) == 3] MSG Paso a la Inmortalidad del General Don Martín Miguel de Güemes (observado)
|
||||||
|
REM 16 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 17)) == 2] MSG Paso a la Inmortalidad del General Don Martín Miguel de Güemes (observado)
|
||||||
|
REM 17 June ADDOMIT SCANFROM -28 SATISFY [$Tw != 2 && $Tw != 3 && $Tw != 4] MSG Paso a la Inmortalidad del General Don Martín Miguel de Güemes (observado)
|
||||||
|
OMIT 20 June MSG Paso a la Inmortalidad del General Don Manuel Belgrano
|
||||||
|
REM 21 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 17)) == 4] MSG Paso a la Inmortalidad del General Don Martín Miguel de Güemes (observado)
|
||||||
|
OMIT 9 July MSG Día de la Independencia
|
||||||
|
REM 15 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 17)) == 3] MSG Paso a la Inmortalidad del General Don José de San Martin (observado)
|
||||||
|
REM 16 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 17)) == 2] MSG Paso a la Inmortalidad del General Don José de San Martin (observado)
|
||||||
|
REM 17 August ADDOMIT SCANFROM -28 SATISFY [$Tw != 2 && $Tw != 3 && $Tw != 4 && $Tw != 5] MSG Paso a la Inmortalidad del General Don José de San Martin (observado)
|
||||||
|
REM 20 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 17)) == 5] MSG Paso a la Inmortalidad del General Don José de San Martin (observado)
|
||||||
|
REM 21 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 17)) == 4] MSG Paso a la Inmortalidad del General Don José de San Martin (observado)
|
||||||
|
REM 10 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 12)) == 3] MSG Día del Respeto a la Diversidad Cultural (observado)
|
||||||
|
REM 11 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 12)) == 2] MSG Día del Respeto a la Diversidad Cultural (observado)
|
||||||
|
REM 12 October ADDOMIT SCANFROM -28 SATISFY [$Tw != 2 && $Tw != 3 && $Tw != 4 && $Tw != 5] MSG Día del Respeto a la Diversidad Cultural (observado)
|
||||||
|
REM 15 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 12)) == 5] MSG Día del Respeto a la Diversidad Cultural (observado)
|
||||||
|
REM 16 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 12)) == 4] MSG Día del Respeto a la Diversidad Cultural (observado)
|
||||||
|
REM 18 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 20)) == 3] MSG Día de la Soberanía Nacional (observado)
|
||||||
|
REM 19 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 20)) == 2] MSG Día de la Soberanía Nacional (observado)
|
||||||
|
REM 20 November ADDOMIT SCANFROM -28 SATISFY [$Tw != 2 && $Tw != 3 && $Tw != 4 && $Tw != 5] MSG Día de la Soberanía Nacional (observado)
|
||||||
|
REM 23 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 20)) == 5] MSG Día de la Soberanía Nacional (observado)
|
||||||
|
REM 24 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 20)) == 4] MSG Día de la Soberanía Nacional (observado)
|
||||||
|
OMIT 8 December MSG Inmaculada Concepción de María
|
||||||
|
OMIT 25 December MSG Navidad
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for American Samoa
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM Third Monday in January ADDOMIT SCANFROM -28 MSG Martin Luther King Jr. Day
|
||||||
|
REM Third Monday in February ADDOMIT SCANFROM -28 MSG Washington's Birthday
|
||||||
|
REM 16 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 17)) == 6] MSG American Samoa Flag Day (observed)
|
||||||
|
OMIT 17 April MSG American Samoa Flag Day
|
||||||
|
REM 18 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 17)) == 0] MSG American Samoa Flag Day (observed)
|
||||||
|
REM Last Monday in May ADDOMIT SCANFROM -28 MSG Memorial Day
|
||||||
|
REM 18 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 19)) == 6] MSG Juneteenth National Independence Day (observed)
|
||||||
|
OMIT 19 June MSG Juneteenth National Independence Day
|
||||||
|
REM 20 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 19)) == 0] MSG Juneteenth National Independence Day (observed)
|
||||||
|
REM 3 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 4)) == 6] MSG Independence Day (observed)
|
||||||
|
OMIT 4 July MSG Independence Day
|
||||||
|
REM 5 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 4)) == 0] MSG Independence Day (observed)
|
||||||
|
REM 15 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 16)) == 6] MSG Manu'a Islands Cession Day (observed)
|
||||||
|
OMIT 16 July MSG Manu'a Islands Cession Day
|
||||||
|
REM 17 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 16)) == 0] MSG Manu'a Islands Cession Day (observed)
|
||||||
|
REM First Monday in September ADDOMIT SCANFROM -28 MSG Labor Day
|
||||||
|
REM Second Monday in October ADDOMIT SCANFROM -28 MSG Columbus Day
|
||||||
|
REM Second Sunday in October ADDOMIT SCANFROM -28 MSG White Sunday
|
||||||
|
REM 10 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 11)) == 6] MSG Veterans Day (observed)
|
||||||
|
OMIT 11 November MSG Veterans Day
|
||||||
|
REM 12 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 11)) == 0] MSG Veterans Day (observed)
|
||||||
|
REM Fourth Thursday in November ADDOMIT SCANFROM -28 MSG Thanksgiving
|
||||||
|
REM 24 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 31 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 14 February MSG Valentine's Day
|
||||||
|
REM 17 March MSG Saint Patrick's Day
|
||||||
|
REM 31 October MSG Halloween
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Austria.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/at/
|
||||||
|
|
||||||
|
OMIT 1 January MSG Neujahr
|
||||||
|
OMIT 6 January MSG Heilige Drei Könige
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Ostermontag
|
||||||
|
OMIT 1 May MSG Staatsfeiertag
|
||||||
|
OMIT [easterdate($Uy)+39] MSG Christi Himmelfahrt
|
||||||
|
OMIT [easterdate($Uy)+50] MSG Pfingstmontag
|
||||||
|
OMIT [easterdate($Uy)+60] MSG Fronleichnam
|
||||||
|
OMIT 15 August MSG Mariä Himmelfahrt
|
||||||
|
OMIT 26 October MSG Nationalfeiertag
|
||||||
|
OMIT 1 November MSG Allerheiligen
|
||||||
|
OMIT 8 December MSG Mariä Empfängnis
|
||||||
|
OMIT 25 December MSG Christtag
|
||||||
|
OMIT 26 December MSG Stefanitag
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM [easterdate($Uy)-2] MSG Karfreitag
|
||||||
|
REM 24 December MSG Heiliger Abend
|
||||||
|
REM 31 December MSG Silvester
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 1 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 1.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 11 November MSG Hl. Martin
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 2 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 2.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 19 March MSG Hl. Josef
|
||||||
|
REM 10 October MSG Tag der Volksabstimmung
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 3 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 3.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 15 November MSG Hl. Leopold
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 4 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 4.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 4 May MSG Hl. Florian
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 5 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 5.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 24 September MSG Hl. Rupert
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 6 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 6.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 19 March MSG Hl. Josef
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 7 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 7.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 19 March MSG Hl. Josef
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 8 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 8.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 19 March MSG Hl. Josef
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision 9 in Austria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision 9.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/at.rem
|
||||||
|
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 15 November MSG Hl. Leopold
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Australia.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/au/
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
OMIT 26 January MSG Australia Day
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Good Friday
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Easter Monday
|
||||||
|
OMIT 25 April MSG ANZAC Day
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
OMIT 26 December MSG Boxing Day
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision ACT in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision ACT.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
REM Second Monday in March ADDOMIT SCANFROM -28 MSG Canberra Day
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM Monday 27 May ADDOMIT SCANFROM -28 MSG Reconciliation Day
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM First Monday in October ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM First Monday in August SCANFROM -28 MSG Bank Holiday
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision NSW in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision NSW.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM First Monday in October ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM First Monday in August SCANFROM -28 MSG Bank Holiday
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision NT in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision NT.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM First Monday in May ADDOMIT SCANFROM -28 MSG May Day
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM First Monday in August ADDOMIT SCANFROM -28 MSG Picnic Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 1] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 24 December MSG Christmas Eve (from 7pm)
|
||||||
|
REM 31 December MSG New Year's Eve (from 7pm)
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision QLD in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision QLD.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM First Monday in May ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
REM Wednesday 10 August ADDOMIT SCANFROM -28 MSG The Royal Queensland Show
|
||||||
|
REM First Monday in October ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision SA in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision SA.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
REM Second Monday in March ADDOMIT SCANFROM -28 MSG Adelaide Cup Day
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM First Monday in October ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
OMIT 26 December MSG Proclamation Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 1] MSG Proclamation Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Proclamation Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Proclamation Day (observed)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 24 December MSG Christmas Eve (from 7pm)
|
||||||
|
REM 31 December MSG New Year's Eve (from 7pm)
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision TAS in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision TAS.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/au.rem
|
||||||
|
|
||||||
|
REM Second Monday in March ADDOMIT SCANFROM -28 MSG Eight Hours Day
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision VIC in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision VIC.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
REM Second Monday in March ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
OMIT [easterdate($Uy)-1] MSG Easter Saturday
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM Second Monday in June ADDOMIT SCANFROM -28 MSG King's Birthday
|
||||||
|
REM Saturday 1 October --8 ADDOMIT SCANFROM -28 MSG Grand Final Day
|
||||||
|
REM First Tuesday in November ADDOMIT SCANFROM -28 MSG Melbourne Cup Day
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision WA in Australia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision WA.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/au.rem
|
||||||
|
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG New Year's Day (observed)
|
||||||
|
REM First Monday in March ADDOMIT SCANFROM -28 MSG Labour Day
|
||||||
|
OMIT [easterdate($Uy)] MSG Easter Sunday
|
||||||
|
REM 26 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 25)) == 0] MSG ANZAC Day (observed)
|
||||||
|
REM 27 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 25)) == 6] MSG ANZAC Day (observed)
|
||||||
|
REM First Monday in June ADDOMIT SCANFROM -28 MSG Western Australia Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 6] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 1] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
|
REM 28 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 6] MSG Boxing Day (observed)
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Aruba
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Aña Nobo
|
||||||
|
OMIT 25 January MSG Dia di Betico
|
||||||
|
OMIT [easterdate($Uy)-48] MSG Dialuna prome cu diaranson di shinish
|
||||||
|
OMIT 18 March MSG Dia di Himno y Bandera
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Bierna Santo
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Di dos dia di Pasco di Resureccion
|
||||||
|
OMIT 1 May MSG Dia di Obrero
|
||||||
|
OMIT [easterdate($Uy)+39] MSG Dia di Asuncion
|
||||||
|
REM 31 August ADDOMIT SCANFROM -28 SATISFY [$Tw != 0] MSG Dia di Rey
|
||||||
|
REM 1 September ADDOMIT SCANFROM -28 SATISFY [$Tw == 1] MSG Dia di Rey
|
||||||
|
OMIT 25 December MSG Pasco di Nacemento
|
||||||
|
OMIT 26 December MSG Di dos dia di Pasco di Nacemento
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Azerbaijan
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Yeni il bayramı
|
||||||
|
REM 1 January OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1))==0 || wkdaynum(date($Ty, 1, 1))==6] MSG Yeni il bayramı (müşahidə olunur)
|
||||||
|
OMIT 2 January MSG Yeni il bayramı
|
||||||
|
REM 2 January OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 2))==0 || wkdaynum(date($Ty, 1, 2))==6] MSG Yeni il bayramı (müşahidə olunur)
|
||||||
|
OMIT 20 January MSG Ümumxalq hüzn günü
|
||||||
|
OMIT 8 March MSG Qadınlar günü
|
||||||
|
REM 8 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 8))==0 || wkdaynum(date($Ty, 3, 8))==6] MSG Qadınlar günü (müşahidə olunur)
|
||||||
|
OMIT 20 March MSG Novruz bayramı
|
||||||
|
REM 20 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 20))==0 || wkdaynum(date($Ty, 3, 20))==6] MSG Novruz bayramı (müşahidə olunur)
|
||||||
|
OMIT 21 March MSG Novruz bayramı
|
||||||
|
REM 21 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 21))==0 || wkdaynum(date($Ty, 3, 21))==6] MSG Novruz bayramı (müşahidə olunur)
|
||||||
|
OMIT 22 March MSG Novruz bayramı
|
||||||
|
REM 22 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 22))==0 || wkdaynum(date($Ty, 3, 22))==6] MSG Novruz bayramı (müşahidə olunur)
|
||||||
|
OMIT 23 March MSG Novruz bayramı
|
||||||
|
REM 23 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 23))==0 || wkdaynum(date($Ty, 3, 23))==6] MSG Novruz bayramı (müşahidə olunur)
|
||||||
|
OMIT 24 March MSG Novruz bayramı
|
||||||
|
REM 24 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 24))==0 || wkdaynum(date($Ty, 3, 24))==6] MSG Novruz bayramı (müşahidə olunur)
|
||||||
|
OMIT 9 May MSG Faşizm üzərində qələbə günü
|
||||||
|
REM 9 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 9))==0 || wkdaynum(date($Ty, 5, 9))==6] MSG Faşizm üzərində qələbə günü (müşahidə olunur)
|
||||||
|
OMIT 28 May MSG Müstəqillik Günü
|
||||||
|
REM 28 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 28))==0 || wkdaynum(date($Ty, 5, 28))==6] MSG Müstəqillik Günü (müşahidə olunur)
|
||||||
|
OMIT 15 June MSG Azərbaycan xalqının milli qurtuluş günü
|
||||||
|
REM 15 June OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 15))==0 || wkdaynum(date($Ty, 6, 15))==6] MSG Azərbaycan xalqının milli qurtuluş günü (müşahidə olunur)
|
||||||
|
OMIT 26 June MSG Azərbaycan Respublikasının Silahlı Qüvvələri günü
|
||||||
|
REM 26 June OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 26))==0 || wkdaynum(date($Ty, 6, 26))==6] MSG Azərbaycan Respublikasının Silahlı Qüvvələri günü (müşahidə olunur)
|
||||||
|
OMIT 8 November MSG Zəfər Günü
|
||||||
|
REM 8 November OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 8))==0 || wkdaynum(date($Ty, 11, 8))==6] MSG Zəfər Günü (müşahidə olunur)
|
||||||
|
OMIT 9 November MSG Azərbaycan Respublikasının Dövlət bayrağı günü
|
||||||
|
REM 9 November OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 9))==0 || wkdaynum(date($Ty, 11, 9))==6] MSG Azərbaycan Respublikasının Dövlət bayrağı günü (müşahidə olunur)
|
||||||
|
OMIT 31 December MSG Dünya azərbaycanlılarının həmrəyliyi günü
|
||||||
|
REM 31 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 31))==0 || wkdaynum(date($Ty, 12, 31))==6] MSG Dünya azərbaycanlılarının həmrəyliyi günü (müşahidə olunur)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 27 September MSG Anım Günü
|
||||||
|
REM 18 October MSG Müstəqilliyin Bərpası Günü
|
||||||
|
REM 12 November MSG Konstitusiya Günü
|
||||||
|
REM 17 November MSG Milli Dirçəliş Günü
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Bosnia And Herzegovina
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Bosnia And Herzegovina.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/ba/
|
||||||
|
|
||||||
|
OMIT 1 January MSG Nova godina
|
||||||
|
OMIT 2 January MSG Nova godina
|
||||||
|
OMIT 7 January MSG Božić (Pravoslavni)
|
||||||
|
OMIT [orthodoxeaster($Uy)-2] MSG Veliki petak (Pravoslavni)
|
||||||
|
OMIT [orthodoxeaster($Uy)+1] MSG Uskrsni ponedjeljak (Katolički)
|
||||||
|
OMIT 1 May MSG Međunarodni praznik rada
|
||||||
|
OMIT 2 May MSG Međunarodni praznik rada
|
||||||
|
OMIT 25 December MSG Božić (Katolički)
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision BIH in Bosnia And Herzegovina
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision BIH.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/ba.rem
|
||||||
|
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG Nova godina (preneseno)
|
||||||
|
OMIT 6 January MSG Badnji dan (Pravoslavni)
|
||||||
|
OMIT 1 March MSG Dan nezavisnosti
|
||||||
|
OMIT [orthodoxeaster($Uy)-2] MSG Veliki petak (Katolički)
|
||||||
|
OMIT [orthodoxeaster($Uy)] MSG Uskrs (Katolički)
|
||||||
|
OMIT [orthodoxeaster($Uy)] MSG Vaskrs (Pravoslavni)
|
||||||
|
OMIT [orthodoxeaster($Uy)+1] MSG Uskrsni ponedjeljak (Pravoslavni)
|
||||||
|
REM 3 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG Međunarodni praznik rada (preneseno)
|
||||||
|
OMIT 9 May MSG Dan pobjede nad fašizmom
|
||||||
|
OMIT 25 November MSG Dan državnosti
|
||||||
|
OMIT 24 December MSG Badnji dan (Katolički)
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision BRC in Bosnia And Herzegovina
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision BRC.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/ba.rem
|
||||||
|
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG Nova godina (preneseno)
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG Nova godina (preneseno)
|
||||||
|
REM 8 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 7)) == 0] MSG Božić (Pravoslavni) (preneseno)
|
||||||
|
OMIT 8 March MSG Dan uspostavljanja Brčko distrikta
|
||||||
|
REM 9 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 8)) == 0] MSG Dan uspostavljanja Brčko distrikta (preneseno)
|
||||||
|
REM 3 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG Međunarodni praznik rada (preneseno)
|
||||||
|
REM 3 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 6] MSG Međunarodni praznik rada (preneseno)
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Božić (Katolički) (preneseno)
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision SRP in Bosnia And Herzegovina
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision SRP.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/ba.rem
|
||||||
|
|
||||||
|
REM 3 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 6] MSG Nova godina (preneseno)
|
||||||
|
OMIT 6 January MSG Badnji dan (Pravoslavni)
|
||||||
|
OMIT 14 January MSG Pravoslavna Nova godina
|
||||||
|
OMIT [orthodoxeaster($Uy)-2] MSG Veliki petak (Katolički)
|
||||||
|
OMIT [orthodoxeaster($Uy)] MSG Uskrs (Katolički)
|
||||||
|
OMIT [orthodoxeaster($Uy)] MSG Vaskrs (Pravoslavni)
|
||||||
|
OMIT [orthodoxeaster($Uy)+1] MSG Uskrsni ponedjeljak (Pravoslavni)
|
||||||
|
REM 3 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 6] MSG Međunarodni praznik rada (preneseno)
|
||||||
|
OMIT 9 May MSG Dan pobjede nad fašizmom
|
||||||
|
OMIT 21 November MSG Dan uspostave Opšteg okvirnog sporazuma za mir u Bosni i Hercegovini
|
||||||
|
OMIT 24 December MSG Badnji dan (Katolički)
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Barbados
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
OMIT 21 January MSG Errol Barrow Day
|
||||||
|
REM 22 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 21)) == 0] MSG Errol Barrow Day (observed)
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Good Friday
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Easter Monday
|
||||||
|
OMIT 28 April MSG National Heroes Day
|
||||||
|
REM 29 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 28)) == 0] MSG National Heroes Day (observed)
|
||||||
|
OMIT 1 May MSG May Day
|
||||||
|
REM 2 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG May Day (observed)
|
||||||
|
OMIT [easterdate($Uy)+50] MSG Whit Monday
|
||||||
|
OMIT 1 August MSG Emancipation Day
|
||||||
|
REM First Monday in August ADDOMIT SCANFROM -28 MSG Kadooment Day
|
||||||
|
REM 2 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 1)) == 1] MSG Emancipation Day (observed)
|
||||||
|
REM 3 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 1)) == 0] MSG Emancipation Day (observed)
|
||||||
|
OMIT 30 November MSG Independence Day
|
||||||
|
REM 1 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 30)) == 0] MSG Independence Day (observed)
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
OMIT 26 December MSG Boxing Day
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
|
REM 27 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26)) == 0] MSG Boxing Day (observed)
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Bangladesh
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 21 February MSG International Mother's language Day
|
||||||
|
OMIT 17 March MSG Sheikh Mujibur Rahman's Birthday and Children's Day
|
||||||
|
OMIT 26 March MSG Independence Day
|
||||||
|
OMIT 14 April MSG Bengali New Year's Day
|
||||||
|
OMIT 1 May MSG May Day
|
||||||
|
OMIT 15 August MSG National Mourning Day
|
||||||
|
OMIT 16 December MSG Victory Day
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Belgium
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Nieuwjaar
|
||||||
|
OMIT [easterdate($Uy)] MSG Pasen
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Paasmaandag
|
||||||
|
OMIT 1 May MSG Dag van de Arbeid
|
||||||
|
OMIT [easterdate($Uy)+39] MSG O. L. H. Hemelvaart
|
||||||
|
OMIT [easterdate($Uy)+49] MSG Pinksteren
|
||||||
|
OMIT [easterdate($Uy)+50] MSG Pinkstermaandag
|
||||||
|
OMIT 21 July MSG Nationale feestdag
|
||||||
|
OMIT 15 August MSG O. L. V. Hemelvaart
|
||||||
|
OMIT 1 November MSG Allerheiligen
|
||||||
|
OMIT 11 November MSG Wapenstilstand
|
||||||
|
OMIT 25 December MSG Kerstmis
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM [easterdate($Uy)-2] MSG Goede Vrijdag
|
||||||
|
REM [easterdate($Uy)+40] MSG Vrijdag na O. L. H. Hemelvaart
|
||||||
|
REM 26 December MSG Banksluitingsdag
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Burkina Faso
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
OMIT 3 January MSG Revolution Day
|
||||||
|
REM 4 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 3)) == 0] MSG Revolution Day (observed)
|
||||||
|
OMIT 8 March MSG International Women's Day
|
||||||
|
REM 9 March ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 8)) == 0] MSG International Women's Day (observed)
|
||||||
|
OMIT [easterdate($Uy)+1] MSG Easter Monday
|
||||||
|
OMIT 1 May MSG Labour Day
|
||||||
|
REM 2 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG Labour Day (observed)
|
||||||
|
OMIT [easterdate($Uy)+39] MSG Ascension Day
|
||||||
|
OMIT 5 August MSG Independence Day
|
||||||
|
REM 6 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 5)) == 0] MSG Independence Day (observed)
|
||||||
|
OMIT 15 August MSG Assumption Day
|
||||||
|
REM 16 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 15)) == 0] MSG Assumption Day (observed)
|
||||||
|
OMIT 31 October MSG Martyrs' Day
|
||||||
|
OMIT 1 November MSG All Saints' Day
|
||||||
|
REM 1 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 31)) == 0] MSG Martyrs' Day (observed)
|
||||||
|
REM 2 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 1)) == 0] MSG All Saints' Day (observed)
|
||||||
|
OMIT 11 December MSG Proclamation of Independence Day
|
||||||
|
REM 12 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 11)) == 0] MSG Proclamation of Independence Day (observed)
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Bulgaria
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Нова година
|
||||||
|
REM 1 January OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1))==0 || wkdaynum(date($Ty, 1, 1))==6] MSG Нова година (почивен ден)
|
||||||
|
OMIT 3 March MSG Ден на Освобождението на България от османско иго
|
||||||
|
REM 3 March OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 3, 3))==0 || wkdaynum(date($Ty, 3, 3))==6] MSG Ден на Освобождението на България от османско иго (почивен ден)
|
||||||
|
OMIT [orthodoxeaster($Uy)-2] MSG Велики петък
|
||||||
|
OMIT [orthodoxeaster($Uy)-1] MSG Велика събота
|
||||||
|
OMIT [orthodoxeaster($Uy)] MSG Великден
|
||||||
|
OMIT [orthodoxeaster($Uy)+1] MSG Великден
|
||||||
|
OMIT 1 May MSG Ден на труда и на международната работническа солидарност
|
||||||
|
REM 1 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1))==0 || wkdaynum(date($Ty, 5, 1))==6] MSG Ден на труда и на международната работническа солидарност (почивен ден)
|
||||||
|
OMIT 6 May MSG Гергьовден, Ден на храбростта и Българската армия
|
||||||
|
REM 6 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 6))==0 || wkdaynum(date($Ty, 5, 6))==6] MSG Гергьовден, Ден на храбростта и Българската армия (почивен ден)
|
||||||
|
OMIT 24 May MSG Ден на светите братя Кирил и Методий, на българската азбука, просвета и култура и на славянската книжовност
|
||||||
|
REM 24 May OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 24))==0 || wkdaynum(date($Ty, 5, 24))==6] MSG Ден на светите братя Кирил и Методий, на българската азбука, просвета и култура и на славянската книжовност (почивен ден)
|
||||||
|
OMIT 6 September MSG Ден на Съединението
|
||||||
|
REM 6 September OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 9, 6))==0 || wkdaynum(date($Ty, 9, 6))==6] MSG Ден на Съединението (почивен ден)
|
||||||
|
OMIT 22 September MSG Ден на Независимостта на България
|
||||||
|
REM 22 September OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 9, 22))==0 || wkdaynum(date($Ty, 9, 22))==6] MSG Ден на Независимостта на България (почивен ден)
|
||||||
|
OMIT 24 December MSG Бъдни вечер
|
||||||
|
REM 24 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 24))==0 || wkdaynum(date($Ty, 12, 24))==6] MSG Бъдни вечер (почивен ден)
|
||||||
|
OMIT 25 December MSG Рождество Христово
|
||||||
|
REM 25 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25))==0 || wkdaynum(date($Ty, 12, 25))==6] MSG Рождество Христово (почивен ден)
|
||||||
|
OMIT 26 December MSG Рождество Христово
|
||||||
|
REM 26 December OMIT SAT SUN AFTER ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 26))==0 || wkdaynum(date($Ty, 12, 26))==6] MSG Рождество Христово (почивен ден)
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM 1 November MSG Ден на народните будители
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Bahrain
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG رأس السنة الميلادية
|
||||||
|
OMIT 1 May MSG عيد العمال
|
||||||
|
OMIT 16 December MSG اليوم الوطني
|
||||||
|
OMIT 17 December MSG اليوم الوطني
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Burundi
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG New Year's Day
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG New Year's Day (observed)
|
||||||
|
OMIT 5 February MSG Unity Day
|
||||||
|
REM 6 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 5)) == 0] MSG Unity Day (observed)
|
||||||
|
OMIT 6 April MSG President Ntaryamira Day
|
||||||
|
REM 7 April ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 4, 6)) == 0] MSG President Ntaryamira Day (observed)
|
||||||
|
OMIT 1 May MSG Labour Day
|
||||||
|
REM 2 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG Labour Day (observed)
|
||||||
|
OMIT [easterdate($Uy)+39] MSG Ascension Day
|
||||||
|
OMIT 8 June MSG President Nkurunziza Day
|
||||||
|
REM 9 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 8)) == 0] MSG President Nkurunziza Day (observed)
|
||||||
|
OMIT 1 July MSG Independence Day
|
||||||
|
REM 2 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 1)) == 0] MSG Independence Day (observed)
|
||||||
|
OMIT 15 August MSG Assumption Day
|
||||||
|
REM 16 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 15)) == 0] MSG Assumption Day (observed)
|
||||||
|
OMIT 13 October MSG Prince Louis Rwagasore Day
|
||||||
|
REM 14 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 13)) == 0] MSG Prince Louis Rwagasore Day (observed)
|
||||||
|
OMIT 21 October MSG President Ndadaye's Day
|
||||||
|
REM 22 October ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 10, 21)) == 0] MSG President Ndadaye's Day (observed)
|
||||||
|
OMIT 1 November MSG All Saints' Day
|
||||||
|
REM 2 November ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 11, 1)) == 0] MSG All Saints' Day (observed)
|
||||||
|
OMIT 25 December MSG Christmas Day
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Christmas Day (observed)
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Brunei
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
|
||||||
|
OMIT 1 January MSG Awal Tahun Masihi
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG Awal Tahun Masihi (diperhatikan)
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 5] MSG Awal Tahun Masihi (diperhatikan)
|
||||||
|
OMIT 23 February MSG Hari Kebangsaan
|
||||||
|
REM 24 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 23)) == 0] MSG Hari Kebangsaan (diperhatikan)
|
||||||
|
REM 24 February ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 2, 23)) == 5] MSG Hari Kebangsaan (diperhatikan)
|
||||||
|
OMIT 31 May MSG Hari Angkatan Bersenjata Diraja Brunei
|
||||||
|
REM 1 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 31)) == 0] MSG Hari Angkatan Bersenjata Diraja Brunei (diperhatikan)
|
||||||
|
REM 1 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 31)) == 5] MSG Hari Angkatan Bersenjata Diraja Brunei (diperhatikan)
|
||||||
|
OMIT 15 July MSG Hari Keputeraan KDYMM Sultan Brunei
|
||||||
|
REM 16 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 15)) == 0] MSG Hari Keputeraan KDYMM Sultan Brunei (diperhatikan)
|
||||||
|
REM 16 July ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 7, 15)) == 5] MSG Hari Keputeraan KDYMM Sultan Brunei (diperhatikan)
|
||||||
|
OMIT 25 December MSG Hari Natal
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Hari Natal (diperhatikan)
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 5] MSG Hari Natal (diperhatikan)
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Bolivia.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/bo/
|
||||||
|
|
||||||
|
OMIT 1 January MSG Año Nuevo
|
||||||
|
REM 2 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 1)) == 0] MSG Año Nuevo (observado)
|
||||||
|
OMIT 22 January MSG Día de la Creación del Estado Plurinacional de Bolivia
|
||||||
|
REM 23 January ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 1, 22)) == 0] MSG Día de la Creación del Estado Plurinacional de Bolivia (observado)
|
||||||
|
OMIT [easterdate($Uy)-48] MSG Carnaval
|
||||||
|
OMIT [easterdate($Uy)-47] MSG Carnaval
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Viernes Santo
|
||||||
|
OMIT 1 May MSG Día del Trabajo
|
||||||
|
REM 2 May ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 5, 1)) == 0] MSG Día del Trabajo (observado)
|
||||||
|
OMIT [easterdate($Uy)+60] MSG Corpus Christi
|
||||||
|
OMIT 21 June MSG Año Nuevo Aymara Amazónico
|
||||||
|
REM 22 June ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 6, 21)) == 0] MSG Año Nuevo Aymara Amazónico (observado)
|
||||||
|
OMIT 6 August MSG Día de la Independencia de Bolivia
|
||||||
|
REM 7 August ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 8, 6)) == 0] MSG Día de la Independencia de Bolivia (observado)
|
||||||
|
OMIT 17 October MSG Día de la Dignidad Nacional
|
||||||
|
OMIT 2 November MSG Día de Todos los Difuntos
|
||||||
|
OMIT 25 December MSG Navidad
|
||||||
|
REM 26 December ADDOMIT SCANFROM -28 SATISFY [wkdaynum(date($Ty, 12, 25)) == 0] MSG Navidad (observado)
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision B in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision B.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 18 November MSG Día del departamento de Beni
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision C in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision C.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 14 September MSG Día del departamento de Cochabamba
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision H in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision H.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 25 May MSG Día del departamento de Chuquisaca
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision L in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision L.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 16 July MSG Día del departamento de La Paz
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision N in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision N.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 11 October MSG Día del departamento de Pando
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision O in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision O.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT [easterdate($Uy)-51] MSG Carnaval de Oruro
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision P in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision P.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 10 November MSG Día del departamento de Potosí
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision S in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision S.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 24 September MSG Día del departamento de Santa Cruz
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision T in Bolivia
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision T.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/bo.rem
|
||||||
|
|
||||||
|
OMIT 15 April MSG La Tablada
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# See important caveats in the README file in this directory.
|
||||||
|
#
|
||||||
|
# Note: This file consists only of the country-wide
|
||||||
|
# holidays for Brazil.
|
||||||
|
#
|
||||||
|
# For region-specific holidays, you need to include
|
||||||
|
# one of the regional *.rem files in the directory
|
||||||
|
# [$SysInclude]/holidays/br/
|
||||||
|
|
||||||
|
OMIT 1 January MSG Confraternização Universal
|
||||||
|
OMIT [easterdate($Uy)-2] MSG Sexta-feira Santa
|
||||||
|
OMIT 21 April MSG Tiradentes
|
||||||
|
OMIT 1 May MSG Dia do Trabalhador
|
||||||
|
OMIT 7 September MSG Independência do Brasil
|
||||||
|
OMIT 12 October MSG Nossa Senhora Aparecida
|
||||||
|
OMIT 2 November MSG Finados
|
||||||
|
OMIT 15 November MSG Proclamação da República
|
||||||
|
OMIT 20 November MSG Dia Nacional de Zumbi e da Consciência Negra
|
||||||
|
OMIT 25 December MSG Natal
|
||||||
|
|
||||||
|
# Optional holidays
|
||||||
|
REM [easterdate($Uy)-48] MSG Carnaval
|
||||||
|
REM [easterdate($Uy)-47] MSG Carnaval
|
||||||
|
REM [easterdate($Uy)-46] MSG Início da Quaresma
|
||||||
|
REM [easterdate($Uy)+60] MSG Corpus Christi
|
||||||
|
REM 28 October MSG Dia do Servidor Público
|
||||||
|
REM 24 December MSG Véspera de Natal
|
||||||
|
REM 31 December MSG Véspera de Ano-Novo
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision AC in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision AC.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/br.rem
|
||||||
|
|
||||||
|
REM 23 January ADDOMIT SCANFROM -28 SATISFY [$Tw < 2 || $Tw > 4] MSG Dia do Evangélico
|
||||||
|
REM Friday 23 January ADDOMIT SCANFROM -23 SATISFY [wkdaynum(date($Ty, 1, 23)) >= 2 && wkdaynum(date($Ty, 1, 23)) <= 4] MSG Dia do Evangélico
|
||||||
|
REM 8 March ADDOMIT SCANFROM -28 SATISFY [$Tw < 2 || $Tw > 4] MSG Dia Internacional da Mulher
|
||||||
|
REM Friday 8 March ADDOMIT SCANFROM -23 SATISFY [wkdaynum(date($Ty, 3, 8)) >= 2 && wkdaynum(date($Ty, 3, 8)) <= 4] MSG Dia Internacional da Mulher
|
||||||
|
OMIT 15 June MSG Aniversário do Acre
|
||||||
|
REM 23 September ADDOMIT SCANFROM -28 SATISFY [$Tw < 2 || $Tw > 4] MSG Dia da Amazônia
|
||||||
|
REM Friday 23 September ADDOMIT SCANFROM -23 SATISFY [wkdaynum(date($Ty, 9, 23)) >= 2 && wkdaynum(date($Ty, 9, 23)) <= 4] MSG Dia da Amazônia
|
||||||
|
REM 17 November ADDOMIT SCANFROM -28 SATISFY [$Tw < 2 || $Tw > 4] MSG Assinatura do Tratado de Petrópolis
|
||||||
|
REM Friday 17 November ADDOMIT SCANFROM -23 SATISFY [wkdaynum(date($Ty, 11, 17)) >= 2 && wkdaynum(date($Ty, 11, 17)) <= 4] MSG Assinatura do Tratado de Petrópolis
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision AL in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision AL.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 24 June MSG São João
|
||||||
|
OMIT 29 June MSG São Pedro
|
||||||
|
OMIT 16 September MSG Emancipação Política de Alagoas
|
||||||
|
OMIT 30 November MSG Dia do Evangélico
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision AM in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision AM.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 5 September MSG Elevação do Amazonas à categoria de província
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision AP in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision AP.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 19 March MSG São José
|
||||||
|
OMIT 25 July MSG São Tiago
|
||||||
|
OMIT 13 September MSG Criação do Território Federal
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision BA in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision BA.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 2 July MSG Independência da Bahia
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision CE in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision CE.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 19 March MSG São José
|
||||||
|
OMIT 25 March MSG Abolição da escravidão no Ceará
|
||||||
|
OMIT 15 August MSG Nossa Senhora da Assunção
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision DF in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision DF.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 21 April MSG Fundação de Brasília
|
||||||
|
OMIT 30 November MSG Dia do Evangélico
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision ES in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision ES.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/br.rem
|
||||||
|
|
||||||
|
OMIT [easterdate($Uy)+8] MSG Nossa Senhora da Penha
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Holiday file for subdivision GO in Brazil
|
||||||
|
# Derived from the Python holidays project at
|
||||||
|
# https://github.com/vacanza/holidays
|
||||||
|
#
|
||||||
|
# Note that this file includes only the holidays for
|
||||||
|
# the specific subdivision GO.
|
||||||
|
# See important caveats in the file ../README
|
||||||
|
#
|
||||||
|
# If you want the national holidays as well, you must
|
||||||
|
# also include [$SysInclude]/holidays/br.rem
|
||||||
|
|
||||||
|
OMIT 26 July MSG Fundação da cidade de Goiás
|
||||||
|
OMIT 24 October MSG Pedra fundamental de Goiânia
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user