summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* sigs.c: Suppress compiler warningLukas Fleischer2016-01-261-0/+4
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Support SIGUSR1 in daemon modeLukas Fleischer2016-01-261-0/+12
| | | | | | | | | In commit 7f62fb1 (Let SIGUSR1 trigger a reload, 2014-10-10), we added support for reloading the data files by sending SIGUSR1 to an interactive calcurse process. Add the same functionality to the daemon mode. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Use calendar-multiget to obtain ETagLukas Fleischer2016-01-261-14/+17
| | | | | | | | Some CalDAV servers do not support calendar-query with a UID filter. Use a calendar-multiget request to obtain the ETag of submitted objects instead. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Fix property filterLukas Fleischer2016-01-261-3/+3
| | | | | | | Fix a TypeError that occurred during string formatting by putting parentheses around the multi-line string. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* git-version-gen: Do not use `echo -n`Lukas Fleischer2016-01-251-1/+1
| | | | | | | `echo -n` is non-portable and does not work under some operating systems, such as OS X. Replace it with printf. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Handle missing ETag gracefullyLukas Fleischer2016-01-251-1/+4
| | | | | | | | | | This was partly fixed by 475c341 (calcurse-caldav: Fix late retrieval of ETag, 2016-01-25). However, the case where the server does not return ETag after creating a new item still wasn't handled properly. This patch hopefully addresses this and also makes sure that the ETag header is matched case-insensitively. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Improve version checkLukas Fleischer2016-01-251-11/+7
| | | | | | Make sure that at least a current Git build of calcurse is used. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Print XML dump in debug mode onlyLukas Fleischer2016-01-251-1/+1
| | | | | | | | In die_atnode(), we currently print a full dump of the XML node if verbose mode is enabled. Change this behavior such that a dump is only created in debug mode. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* contrib/caldav/README: Minor improvementsLukas Fleischer2016-01-251-5/+5
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Fix comment on certificate checksLukas Fleischer2016-01-251-1/+1
| | | | | | Clarify that ssl._create_unverified_context() was added in Python 3.4.3. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Support custom HTTP headersLukas Fleischer2016-01-252-1/+11
| | | | | | | Add support for specifying additional HTTP headers, such as the User-Agent, in the configuration file. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Fix late retrieval of ETagLukas Fleischer2016-01-251-2/+2
| | | | | | | Fixes another regression introduced in badbd71 (calcurse-caldav: Add a debug mode, 2016-01-23). Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Fix --init=keep-localLukas Fleischer2016-01-251-1/+1
| | | | | | | Fixes a regression introduced in badbd71 (calcurse-caldav: Add a debug mode, 2016-01-23). Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Fix duplicate Content-Type prefixLukas Fleischer2016-01-251-2/+2
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Fix MIME type in requestsLukas Fleischer2016-01-251-1/+4
| | | | | | | Specify application/xml in the Content-Type of requests except for PUT, where we actually submit calendar data. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Show debug output before checking statusLukas Fleischer2016-01-241-5/+5
| | | | | | | Make sure we print the headers and the body of a HTTP response in debug mode, even if the HTTP status code indicates failure. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Add XML declaration to requestsLukas Fleischer2016-01-241-11/+13
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Prefix error messages with "error:"Lukas Fleischer2016-01-231-3/+5
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Check response statusLukas Fleischer2016-01-231-0/+5
| | | | | | | Bail out if the HTTP status code of any of the replies starts with a digit other than 2. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Include command/path in the debug outputLukas Fleischer2016-01-231-2/+5
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Ensure path always starts/ends with a slashLukas Fleischer2016-01-231-1/+1
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Add a debug modeLukas Fleischer2016-01-231-43/+44
| | | | | | | Dump all communication with the server to stdout if --debug is specified. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Fix parsing of the Verbose config optionLukas Fleischer2016-01-231-1/+1
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* calcurse-caldav: Make InsecureSSL optionalLukas Fleischer2016-01-231-1/+5
|
* calcurse-caldav: Add a workaround for Python <3.4Lukas Fleischer2016-01-231-3/+10
| | | | | | | Python versions prior to 3.4 do not check certificates by default and thus do not support ssl._create_unverified_context(). Add a workaround. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add a script to synchronize with CalDAV serversLukas Fleischer2016-01-223-0/+518
| | | | | | | | | | Introduce calcurse-caldav, a Python script that can be used to synchronize calcurse instances with CalDAV servers. The script was tested with an instance of the Radicale CalDAV server but it is still alpha software. Make backups before giving it a try! Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Make automatic selection of todo items smarterLukas Fleischer2016-01-183-15/+28
| | | | | | | | * Automatically focus new todo items after adding them to the list. * Keep selection when an item is moved (e.g. by changing its priority). * Focus the next item in the list when an item is removed. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Improve ordering of todo itemsLukas Fleischer2016-01-183-4/+29
| | | | | | | | * Show uncompleted items first. * Order uncompleted and completed items by priority. * Order items with the same priority alphabetically. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Hide "0." prefix of todo items with undefined priorityLukas Fleischer2016-01-181-9/+29
| | | | | | | | In the todo panel, all uncompleted items are currently prefixed with their priorities. Drop this prefix from items with priority 0, i.e. undefined priority. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Save active view on the todo panelLukas Fleischer2016-01-183-0/+38
| | | | | | | | Add a configuration option appearance.todoview and use it to automatically save the currently active todo panel view and restore it when restarting calcurse. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Support todo items with an undefined priorityLukas Fleischer2016-01-182-13/+8
| | | | | | | In addition to priorities 1-9, support todo items without any specific priority, internally represented by priority 0. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Use a separate field for the completed statusLukas Fleischer2016-01-186-43/+40
| | | | | | | Add a new field that indicates whether a todo item is completed or not instead of encoding completed todo items by negative priorities. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add a "hide completed" view to the todo panelLukas Fleischer2016-01-185-14/+83
| | | | | | Add a second view to the todo panel that hides all completed items. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Fix segfault when running hooks in non-interactive modeLukas Fleischer2016-01-161-2/+6
| | | | | | | Do not run wins_prepare_external() and wins_unprepare_external() before and after running hooks in non-interactive mode. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Document new options and format specifiersLukas Fleischer2016-01-152-0/+54
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Run pre-save and post-save hooks on reloadLukas Fleischer2016-01-151-0/+17
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Export item UIDs upon requestLukas Fleischer2016-01-155-24/+64
| | | | | | | Add a new --export-uid command line option that adds each item's hash to the UID property when exporting. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Import data from stdin when the import file is "-"Lukas Fleischer2016-01-151-1/+4
| | | | | | | Support "-" as file name to the -i/--import option and read from stdin when that file is specified. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* ical: Handle items without an end date gracefullyLukas Fleischer2016-01-131-16/+17
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* ical: Refactor item date/time parserLukas Fleischer2016-01-131-10/+8
| | | | Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Reimplement ical_unformat_line() using dynamic stringsLukas Fleischer2016-01-131-22/+10
| | | | | | | Use the new dynamic string utility functions instead of relying on a fixed-size buffer. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* ical: Export completed todo items properlyLukas Fleischer2016-01-131-3/+6
| | | | | | | Do not skip completed todo items when exporting to an iCal file. Instead, mark them as "STATUS:COMPLETED". Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* ical: Honor completed status of todo itemsLukas Fleischer2016-01-131-0/+5
| | | | | | | When importing todo items from an iCal file, mark completed items as completed. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Hide import statistics in quiet modeLukas Fleischer2016-01-131-1/+1
| | | | | | | | Do not show the import summary when system dialogs are disabled or when the --quiet option is specified, even if calcurse is executed in non-interactive mode. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add --list-imported command line optionLukas Fleischer2016-01-135-26/+66
| | | | | | | When this option is used together with -i/--import, the object identifiers of imported objects are printed to stdout. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add command line option to suppress dialogsLukas Fleischer2016-01-136-6/+20
| | | | | | | Implement a -q/--quiet command line option to disable system dialogs temporarily. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Implement filter modeLukas Fleischer2016-01-131-4/+8
| | | | | | | Add a new -F mode that is identical to -G but writes the result back to the calcurse data files instead of stdout. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* Add an option to filter by object hashLukas Fleischer2016-01-137-8/+91
| | | | | | | | | Implement a new --filter-hash option to filter by object identifiers. Each object having an identifier that has the specified pattern as a prefix is matched. Patterns starting with an exclamation mark (!) are interpreted as negative patterns. Signed-off-by: Lukas Fleischer <lfleischer@calcurse.org>
* 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>