summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add long format specifiers "raw" and "hash"Lukas Fleischer2016-01-136-5/+114
| | | | | | | Add new format specifiers to print the raw item representation or an object's hash value. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Implement recur_{apoint,event}_tostr()Lukas Fleischer2016-01-132-27/+53
| | | | | | | Add functions to serialize recurrent items without immediately writing them to stdout. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Implement {apoint,event,todo}_tostr()Lukas Fleischer2016-01-134-18/+54
| | | | | | | Add functions to serialize non-recurrent objects without immediately writing them to stdout. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Reimplement asprintf() using dynamic stringsLukas Fleischer2016-01-131-26/+4
| | | | | | Use the new string implementation to simplify asprintf(). Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Implement utility functions for dynamic stringsLukas Fleischer2016-01-133-0/+129
| | | | | | | | Introduce support for strings which support concatenating the current value with a printf-style formatted value, thereby growing in size dynamically. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Reset status page when opening configurationLukas Fleischer2016-01-101-0/+1
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add pre-load and post-load hooksLukas Fleischer2016-01-101-0/+2
| | | | | | Potential use case: Synchronize data with some server before loading. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add an example post-save hookLukas Fleischer2016-01-071-0/+10
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add pre-save and post-save hooksLukas Fleischer2016-01-075-0/+75
| | | | | | | | | | | | | This adds support for hooks which are executed before/after saving calcurse data. Hooks can be placed under hooks/pre-save and hooks/post-save in the data directory and need to be executable. Potential use cases include: * Automatically commit any changes to the data files using a VCS. * Automatically sync with some sever component on data file changes. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* custom.c: Display missing optionsLukas Fleischer2016-01-071-2/+2
| | | | | | | | Also, determine the number of displayed options on the general configuration screen automatically (statically) instead of hard-coding the value to prevent from future fallouts. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add support for --filter-end-* to eventsLukas Fleischer2015-05-202-2/+12
| | | | | | | A natural convention is to specify the end time of an event as 23:59:59 on the day it is scheduled. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Make the generic-credits key binding work againLukas Fleischer2015-04-151-0/+8
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Show an error message on missing documentationLukas Fleischer2015-04-151-1/+2
| | | | | | | Show a warning when the user presses the generic-help binding and the main help document is not available. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Update README and AUTHORSLukas Fleischer2015-04-122-12/+13
| | | | | | | | * Add build instructions. * List the current maintainer first in AUTHORS and README. * Remove outdated information on the TODO file. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Update maintainer email addressLukas Fleischer2015-04-124-3/+4
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Do not mark slice of end time busyLukas Fleischer2015-04-111-4/+18
| | | | | | | | In weekly view, when computing busy slices, do not fill a slot that is only hit by the end time of an appointment. Suggested-by: Håkan Jerning <jerning@home.se> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Fix range checks in day_chk_busy_slices()Lukas Fleischer2015-04-101-5/+8
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Highlight week number when the calendar is selectedLukas Fleischer2015-04-101-0/+4
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Show week numbers in the monthly viewLukas Fleischer2015-04-101-0/+4
| | | | | Suggested-by: Håkan Jerning <jerning@home.se> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Split out code for drawing week numbersLukas Fleischer2015-04-103-99/+116
| | | | | | | This allows for easily adding week numbers to other panel modes, such as the monthly view. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Fix slice computation of recurring appointmentsLukas Fleischer2015-04-101-2/+7
| | | | | Reported-by: Håkan Jerning <jerning@home.se> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* calcurse.1.txt: Split out filter and formatting optionsLukas Fleischer2015-03-261-73/+31
| | | | | | Move those options into separate subsections. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* ical.c: Small refactoringLukas Fleischer2015-02-251-15/+10
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Simplify code in status_ask_choice()Lukas Fleischer2015-02-241-7/+5
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use time_t instead of long in several placesLukas Fleischer2015-02-249-89/+69
| | | | | | | Start converting some variables and return values to store times from long to time_t. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* autogen.sh: Do not use `sed -i`Lukas Fleischer2015-02-241-2/+3
| | | | | | `sed -i` is not portable, use a temporary file instead. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* ical.c: Reduce nesting depthLukas Fleischer2015-02-241-318/+257
| | | | | | Refactor the iCal parser to reduce nesting depth. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Introduce starts_with() and starts_with_ci()Lukas Fleischer2015-02-244-123/+72
| | | | | | | | Create user-defined functions to check whether a string contains a certain prefix instead of messing around with strncmp() and strncasecmp(). Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Make "Add Item" work from the calendar panelLukas Fleischer2015-02-231-0/+1
| | | | | | | Support the "Add item" key binding in the calendar panel and make it add a new appointment. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Redraw calendar panel when switching viewsLukas Fleischer2015-02-231-0/+6
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Support resize in all configuration menusLukas Fleischer2015-02-231-0/+25
| | | | | | | Add missing resize support in the configuration main menu and in the key bindings menu. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add support for UTC times in iCal importsLukas Fleischer2015-02-236-8/+78
| | | | | | | | | | | | | | According to the iCal standard (4.3.12 Time): UTC time, or absolute time, is identified by a LATIN CAPITAL LETTER Z suffix character (US-ASCII decimal 90), the UTC designator, appended to the time value. Parse such time values properly when importing iCal files. Fixes GitHub issue #3. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Release 4.0.0v4.0.0Lukas Fleischer2015-02-222-1/+31
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use date_sec_change() for adding day deltasLukas Fleischer2015-02-222-10/+9
| | | | | | Fixes tests range-002.sh and search-001.sh. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use LONG_MAX for invalid dates in parse_datearg()Lukas Fleischer2015-02-221-3/+3
| | | | | | We cannot use -1 here since negative values are valid dates. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* po/: Translation updates from TransifexLukas Fleischer2015-02-2222-668/+736
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* po/doc/: Rebuild with new translate-toolkitLukas Fleischer2015-02-2223-62/+99
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* calcurse.1.txt: Update details on note file namesLukas Fleischer2015-02-111-2/+1
| | | | | | | Since 5c6a00e (Use hash-bashed file names in edit_note(), 2011-08-02), the file name of notes is no longer generated by mkstemp. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Support weekday names as date specifiersLukas Fleischer2015-02-111-5/+51
| | | | | | Allow for using shorthands like "Monday" as date specifiers. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* doc/calcurse.1.txt: Modernize synopsisv4.0.0-rc1Lukas Fleischer2015-02-071-3/+8
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* doc/: Do not lie about format.inputdateLukas Fleischer2015-02-072-14/+1
| | | | | | | | Since aa682f7 (Rework command line argument handling, 2014-08-06), the format.inputdate option is no longer honored when parsing dates in non-interactive mode. Update the documentation accordingly. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Update copyright rangesLukas Fleischer2015-02-0770-75/+75
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add a couple of shorthands to parse_date()Lukas Fleischer2015-02-071-0/+25
| | | | | | | We now understand the shorthands "today", "yesterday", "tomorrow" and "now" which might come in useful sometimes. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Describe modern equivalents to deprecated optionsLukas Fleischer2015-02-072-16/+30
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Document new optionsLukas Fleischer2015-02-072-0/+270
| | | | | | | Document the query and grep modes, as well as the new filter interface, in the man page and in the user manual. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Handle dates past January 19th, 2038Lukas Fleischer2015-02-075-13/+36
| | | | | | Try to support dates past year 2038 on systems with 64-bit time_t. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Only werase() calendar if month is changedLukas Fleischer2014-10-171-8/+6
| | | | | | | Optimize the monthly view by only erasing the window content when a new month is selected. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Let SIGUSR1 trigger a reloadTim Hentenaar2014-10-104-0/+14
| | | | | | | | | | | | | In an effort to better integrate the import process with external applications, it's desirable to have a mechanism by which external programs can trigger a reload of calcurse's data. This patch adds that functionality via SIGUSR1. The reload request is handled in the main loop. When the user is currently entering data, the request is delayed until the main loop is re-entered. Signed-off-by: Tim Hentenaar <tim@hentenaar.com> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Factor out item reload codeLukas Fleischer2014-10-103-92/+97
| | | | | | | Adds a new function io_reload_data() which can be used to reload all appointments and TODO items. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add io_load_data() wrapperLukas Fleischer2014-10-104-14/+15
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>