aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update message catalogpuLukas Fleischer2024-01-268-1489/+751
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Work around symlink issue in Mac OS GitHub workflowLukas Fleischer2024-01-261-1/+1
| | | | | | | | Follow-up to commit 98ff4db (Fix Mac OS GitHub workflow, 2023-04-11). See actions/setup-python#577 for more details. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix memory leak by freeing linked lists in recurrence rulesMax Kunzelmann2024-01-261-2/+12
| | | | | | | | | | | | The function responsible for freeing a recurring appointment or event did not free the linked lists contained in the `struct rpt` holding the recurrence rules. This led to memory leaks if a user had recurring appointments or events. Found with ASAN. Signed-off-by: Max Kunzelmann <max@mxzero.net> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix memory leak in keys initializationMax Kunzelmann2024-01-261-30/+61
| | | | | | | | | | | | | | Previous to this commit, a strdup took place for every key name including those that were replaced with customized key names later on while never calling free on the pointer returned by strdup. This fix only calls strdup for key names that are not replaced with custom key names. Found with ASAN. Signed-off-by: Max Kunzelmann <max@mxzero.net> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix out of bounds memory access (off by one)Max Kunzelmann2023-12-141-1/+1
| | | | | | | | | | | | If fgets reads a line that only contains a `\n`, then the pointer `eol` will point to the first byte in that buffer. The subsequent dereference of `*(eol -1 )` will access the byte before that buffer. This fix makes sure that that length of the current line read by fgets is at least 2 bytes long. Signed-off-by: Max Kunzelmann <max@mxzero.net> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: use isinstance() instead of comparing typesLukas Fleischer2023-11-061-1/+1
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* add missing call to `va_end()` for copied `va_list`Max2023-11-061-0/+1
| | | | | | | | | The man page stdarg(3) states that each invocation of `va_copy()` must be matched by a corresponding invocation of `va_end()` in the same function. Signed-off-by: Max <max@mxzero.net> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* correctness: kill returns -1 on errorMax2023-11-061-1/+1
| | | | | Signed-off-by: Max <max@mxzero.net> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* remove unnecessary set of sidebar widthMax2023-11-061-2/+0
| | | | | | | | | | | When the function is called, `col` is zero, which leads to setting the sidebar width (in percent) to zero. As the variable holding the percentage is `static unsigned sbarwidth_perc` it is initialized to zero anyway and we set the percentage later to the value loaded from the configuration, too. Signed-off-by: Max <max@mxzero.net> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Remove new line character from result of password commandMax2023-11-061-1/+2
| | | | | | | | | | | For example, using `pass caldav` as `PasswordCommand` returns the password for the account including a newline character at the end because the whole output is captured. This fix removes the new line character at the end of the line while keeping other whitespace character should the password contain any at the end. Signed-off-by: Max <max@mxzero.net> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix segmentation fault when exporting ical fileBenedikt Wildenhain2023-11-051-1/+2
| | | | | | | | | | | | If a note file gets accidently deleted this leads to ical_export_note trying to execute fclose(NULL) which leads to a segmentation fault on current Debian GNU/Linux using libc6 (according to fclose's manpage, the behaviour is undefined in this case). The fix tests whether fopen returned a non-NULL-pointer before trying to close it. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* README.md: add packaging statusHEADmasterLukas Fleischer2023-06-031-13/+14
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Release 4.8.1Lukas Fleischer2023-05-223-2/+28
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Update Transifex config and catalogLukas Fleischer2023-05-229-40/+92
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Update apt index in GitHub workflowLukas Fleischer2023-04-151-1/+3
| | | | | | | | | | | Run `apt-get update` for Ubuntu to fix errors seen because of an out-of-date index: E: Failed to fetch [...] 404 Not Found [IP: 40.119.46.219 80] E: Failed to fetch [...] 404 Not Found [IP: 40.119.46.219 80] E: Failed to fetch [...] 404 Not Found [IP: 40.119.46.219 80] Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix characters in weekly viewLukas Fleischer2023-04-151-6/+5
| | | | | | Fixes GitHub issue #441. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Upgrade configure.acLukas Fleischer2023-04-141-9/+7
| | | | | | | Update outdated configure.ac by running autoupdate, followed by some minor manual changes. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Skip AsciiDoc checks if --disable-docs is usedLukas Fleischer2023-04-141-16/+15
| | | | | | Fixes GitHub issue #451. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Update copyright ranges for 2023Lukas Fleischer2023-04-1162-72/+72
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix Mac OS GitHub workflowLukas Fleischer2023-04-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | Prior to this change, CI was failing with the following error: ==> Installing asciidoc dependency: python@3.11 ==> Pouring python@3.11--3.11.3.monterey.bottle.tar.gz Error: The `brew link` step did not complete successfully The formula built, but is not symlinked into /usr/local Could not symlink bin/2to3 Target /usr/local/bin/2to3 already exists. You may want to remove it: rm '/usr/local/bin/2to3' To force the link and overwrite all conflicting files: brew link --overwrite python@3.11 To list all files that would be deleted: brew link --overwrite --dry-run python@3.11 Explicitly link with overwrite. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix segfault when importing iCal filesMarian Buschsieweke2023-04-111-0/+8
| | | | | | | | Previously, events / appointments without a description resulted in a segfault. This provides a trivial fix by adding an `<emtpy>` as description in this case. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Support PasswordCommand optionRyan Lue2023-04-113-14/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds a new `Auth/PasswordCommand` option to support security best practices re: handling secrets in CLI program configuration. Prior to this commit, the two available options for specifying a password were: 1. via the `Auth/Password` config parameter, or 2. via a `$CALCURSE_CALDAV_PASSWORD` environment variable. The former is unsafe for obvious reasons; the latter is unsafe because as long as the script is running, its environment can be accessed via $ cat /proc/<pid>/environ and is thus visible to anyone with access to the system. This commit preserves preexisting behavior (for backward compatibility) but removes all mention of option 2 from the README. Since the README example for option 2 used a password command anyway, there is little reason to continue its use, and this commit recommends it be deprecated. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Check that note files open before reading themNicholas Johnson2023-01-312-0/+13
| | | | | | | | | | | This fixes the scenario where a note file referenced by a todo, event, or appointment is modified from outside the program in such a way that it cannot be opened by the program, resulting in a segmentation fault. The least surprising way to proceed is to ignore the note. Signed-off-by: Nicholas Johnson <nick@nicksphere.ch> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix handling of recurrent open-ended appointments at 00:00Lukas Fleischer2023-01-011-7/+13
| | | | | | | | | Prior to this commit, a recurrent appointment ending at 00:00 on a given day was not considered to span the day. This is the correct behavior for all cases, except appointments without end time (both starting and ending at midnight on a given day). Handle this edge case explicitly. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Extend default description to all item typesLukas Fleischer2022-12-252-17/+24
| | | | | | | | | | Show default description "(empty description)" for all types of items (appointments, events, recurring appointments/events, TODOs). Follow-up to 7b350ac (Add text for displaying empty event description, 2022-06-21). Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add text for displaying empty event descriptionJonathan van der Steege2022-12-252-2/+8
| | | | | Signed-off-by: Jonathan van der Steege <jonathan@jonakeys.nl> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Release 4.8.0v4.8.0Lukas Fleischer2022-04-163-2/+40
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Update message catalogLukas Fleischer2022-04-168-299/+525
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: fix InsecureSSLLukas Fleischer2022-04-161-3/+1
| | | | | | | | | | | | Pass disable_ssl_certificate_validation as keyword argument to httplib2.Http(). Fixes a regression introduced in 1e1d615 (Refactor calcurse-caldav to use httplib2, 2017-09-06). Fixes GitHub issue #420. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Cleaned up British English localizationMorgan Seltzer2022-04-151-1307/+165
| | | | | | | | | | | Before colour was spelled inconsistently in various places, now it is only spelled colour. Removed ~1000 lines of comments that were commented out msgids that have not been used in many years. Also changed scattered fuzzy translations (which default to using the english string) to officially just use the english string. Signed-off-by: Morgan Seltzer <MorganSeltzer000@gmail.com> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Layout change recognizes changed appointment spaceMorgan Seltzer2022-04-034-66/+72
| | | | | | | | | | | Before a layout change did not update the maximum number of appointments visible, until the config menu was exited. Now the maximum number of appointments are visible immediately after the layout screen is exited. Addresses GitHub issue #381 Signed-off-by: Morgan Seltzer <MorganSeltzer000@gmail.com> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Allow newlines in SUMMARY by replacing them with blanksLars Henriksen2022-03-192-8/+4
| | | | | | Addresses Github issue #414 (Android calendar allows them). Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Update copyright ranges for 2022Lukas Fleischer2022-03-1154-56/+56
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix compiler warning in SHA1 implementationLukas Fleischer2022-03-111-1/+1
| | | | | | | | | Update the signature of sha1_final() to fix the following warning: sha1.c:208:43: warning: argument 2 of type ‘uint8_t[20]’ {aka ‘unsigned char[20]’} with mismatched bound [-Warray-parameter=] Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix SHA1 calculation on big-endian systemsLukas Fleischer2022-03-112-0/+2
| | | | | | | | | Add the AC_C_BIGENDIAN macro to determine endianness and set WORDS_BIGENDIAN accordingly. Fixes GitHub issue #397. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Use AX_WITH_CURSES for curses library discoveryMarco Sirabella2021-11-073-22/+9
| | | | | | | | | | | | Properly discovers libtinfow for customized systems (e.g., Gentoo) while offloading search handling to autoconf builtins. Additionally adds autoconf-archive as a buildtime dependency. Fixes #250. Signed-off-by: Marco Sirabella <marco@sirabella.org> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add autopoint as a dependency in READMEDaniel J. Perry2021-10-161-0/+1
| | | | | Signed-off-by: Daniel J. Perry <dperry45@gatech.edu> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix typo in caldav post-sync hook git commit messageJoseph Turner2021-10-161-1/+1
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Use ./configure passed --docdir for doc install dirMarco Sirabella2021-10-161-2/+0
| | | | | | | | | | | | If any --docdir is passed, the app can't find the builtin documentation Just inherit docdir from configure now, which defaults to the same thing but if overridden will act proper now. Related: https://bugs.gentoo.org/813438 Signed-off-by: Marco Sirabella <marco@sirabella.org> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Make Home/End keys work as expected in text input modenobody2021-08-071-0/+2
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* First day of week can now be any dayMorgan Seltzer2021-08-073-10/+16
| | | | | | | | | | | | | Previously only Sunday and Monday were allowed as the first day of the week, and this was internally treated as a binary variable. This patch allows for users to change the first day of the week to any day. Addresses GitHub feature request #321. Signed-off-by: Morgan Seltzer <MorganSeltzer000@gmail.com> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Backend changes for first day of weekMorgan Seltzer2021-08-076-81/+82
| | | | | | | | | | | | | Previously only Sunday and Monday were allowed for the first day of the week, and was internally treated as a binary variable. This patch changes the backend so all days are accepted, a future patch will allow users to actually select other days. Addresses GitHub feature request #321. Signed-off-by: Morgan Seltzer <MorganSeltzer000@gmail.com> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fixed sidebar config sometime not increasing widthMorgan Seltzer2021-08-072-1/+3
| | | | | | | | | | | | | | The sidebar has a numerical mimumum width that is statically defined, and users may set the width of the sidebar in config by incrementing the percentage of the screen between this minimum and a maximum value of 50%. However, internally the mimimum percentage could be set as low as zero, and while that did not decrease the sidebar size below the numerical minimum width, did mean that between 0 and the mimimum width increasing the percentage had no visual effect to indicate change. Now the mimimum percent is not decremented below the mimimum width. Signed-off-by: Morgan Seltzer <MorganSeltzer000@gmail.com> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix hook docsDhruva Sambrani2021-08-071-2/+2
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Allow configuration of appointment time formatmercurialmoon2021-04-115-8/+32
| | | | | | | | | | Added the option to configure the format in which appointment time is displayed. The setting is called "format.appointmenttime" under the general settings menu. Setting defaults to previous behavior, which was "%H:%M". Signed-off-by: mercurialmoon <mercurialmoon@protonmail.com> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add generic-prev-view key bindingAurora2021-04-115-0/+27
| | | | | | | This can be used to cycle backwards through windows (similarly to generic-change-view). Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Allow undefined actions in keys configuration fileLars Henriksen2021-04-115-252/+327
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the keys file there are three possibilities for each action: 1. One or several keys are assigned to it 2. It is marked as UNDEFINED (new) 3. It is missing from the file On load of the keys file, calcurse respectively 1. Assigns the key(s) 2. Assigns "UNDEFINED" (new) 3. Assigns a default key if possible If default keys were assigned, the user is informed of the number of actions affected, and the keys file is updated. After load each action must either have keys assigned or be undefined. If not, calcurse exits with a failure. If there are syntax/semantic errors in the file, calcurse rejects the file and exits. When an interactive user leaves the keys configuration menu, a warning is issued if any action is UNDEFINED. The keys file is always updated. Addresses GitHub issue #298. Additionally: Description of concepts and data structures used for keyboard keys and virtual keys (actions) as well as name changes and comments to improve readability. Signed-off-by: Lars Henriksen <LarsHenriksen@get2net.dk> Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Release 4.7.1v4.7.1Lukas Fleischer2021-04-101-0/+28
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* po/: translation updates from TransifexLukas Fleischer2021-04-1017-493/+400
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: always request href from serverMax Deineko2021-04-041-10/+12
| | | | | | | | | | | | | | | Apparently, while some CalDAV servers return href values as is in their response, some might return them URL-quoted (which, if I am not mistaken, was the reason for e943b06). Assuming either behaviour when pushing local objects will lead to discrepancy with events dictionary retrieved from the server and thus bugs, hence we always want to use whatever form of href the server returns. Addresses GitHub issues #337 and #356. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>