summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Update copyright notices in source files, documentation and "COPYING".Lukas Fleischer2011-04-2228-31/+31
| | | | | | | | | * Update copyright dates (use 2004-2011 as date range everywhere). * Change copyright holder from "Frederic Culot" to "calcurse Development Team". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* TODO overhaul.Lukas Fleischer2011-04-221-27/+24
| | | | | | | | | | * Use AsciiDoc style formatting. * Fix some wording. Use "we" instead of "I" and "us" instead of "me". * Update mail addresses. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* README overhaul.Lukas Fleischer2011-04-221-26/+24
| | | | | | | | | | | | | | * Use AsciiDoc style formatting. * Remove outdated information on the "ChangeLog" file (removed that in commit b9fa5bdbb17f507ba756fe38a14d5993e522bb6c). * Replace references to language specific manual files by "doc/manual.html". * Update author roles. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Ignore daemon lock file if the daemon process died.Lukas Fleischer2011-04-221-1/+1
| | | | | | | Do this in a fashion similar to what was done in commit 6ff95238766656c5ea9d5c65c35d3aef93499f60. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Be a bit more fail-safe in "build-aux/git-version-gen".Lukas Fleischer2011-04-221-2/+3
| | | | | | | | The existence of a ".git" directory is not a sufficient condition to be sure we are in a Git repository. Only overwrite the version information file if `git describe` returns a non-empty string. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Return -1 in io_file_is_empty() if file cannot be accessed.Lukas Fleischer2011-04-223-3/+3
| | | | | | | Ensure files don't appear as empty if fopen() fails (e.g. on temporary EACCES failures). Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Documentation Makefile overhaul.Lukas Fleischer2011-04-221-3/+11
| | | | | | | | | * Add documentation input and output files to distribution tarballs. * Use a more generic rule to generate man pages instead of the hardcoded "calcurse.1" target. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add Git version string support.Lukas Fleischer2011-04-224-1/+32
| | | | | | | | Introduce a script to auto-generate version strings. Use `git describe` to create descriptive version strings when building from a Git checkout, use ".version" files for release tarballs. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use "event" structure when iterating over events in app_arg().Lukas Fleischer2011-04-221-1/+1
| | | | | | | Regression introduced in commit 5b174ba5d46c256f41c1cfb952d46f49a088db8a. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add comments to linked list functions.Lukas Fleischer2011-04-221-0/+39
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* llist.c: Nullify pointers after free()'ing.Lukas Fleischer2011-04-221-1/+6
| | | | | | | | | | | | | * Set all data members to "NULL" in llist_free_inner() after freeing them. Altough we normally shouldn't continue working with a list that already went through llist_free_inner(), this will protect against dangling pointer bugs in case anyone will ever come up with the idea of doing so. * Set list head to "NULL" in llist_free(), basically to put the list into an initialized state. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use generic lists for recurring item exceptions.Lukas Fleischer2011-04-224-174/+142
| | | | | | | | | Rename "days" structure to "excp" which seems to be a better name here. Use generic linked lists of excp structures instead of using the "days" structure which again contains a linked list implementation. Do some cleanups and invocation fixes. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Remove "next" member from "recur_apoint" structure.Lukas Fleischer2011-04-191-1/+0
| | | | | | | | | | | | Field seems to be unused. Verify using following spatch: ---- @@ struct recur_apoint *rapt; @@ * rapt->next ---- Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use generic lists for recurring apointments and events.Lukas Fleischer2011-04-195-466/+373
| | | | | | | | Use them instead of "recur_apoint_list" and "next" pointers in "recur_event" type variables. Includes some code simplifications and cleanups. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add recur_apoint_inday() and recur_event_inday().Lukas Fleischer2011-04-192-0/+16
| | | | | | | | | | | | To be used with llist_fn_match_t callbacks later. I feel a bit ill adding those functions. This definitely is a hack. Ultimately, there should be some generic recur_item_inday() function that accepts both recurring apointments and events (or some wrapper structure) instead of parameter galeere. This is not the right place to fix that tho. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use generic lists for generic day items.Lukas Fleischer2011-04-192-101/+88
| | | | | | | Use the new generic list implementation instead of "next" pointers in day_item type variables. Includes some cleanups and fixes. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use generic lists for todo items.Lukas Fleischer2011-04-196-130/+103
| | | | | | | Use the new generic list implementation instead of "next" pointers in todo items. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use generic lists for events.Lukas Fleischer2011-04-197-121/+105
| | | | | | | Use the new generic list implementation instead of those insane "next" pointers in events. Includes some cleanups. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Remove "next" member from "apoint" structure.Lukas Fleischer2011-04-191-1/+0
| | | | | | | | | | | | Field seems to be unused. Verify using following spatch: ---- @@ struct apoint *apt; @@ * apt->next ---- Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use generic lists for appointments.Lukas Fleischer2011-04-195-227/+177
| | | | | | | Use the new generic list implementation instead of "apoint_list" everywhere. Simplify stuff and drop unused variables as well. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add macros to use for thread-safe linked lists.Lukas Fleischer2011-04-192-0/+88
| | | | | | | | | Add LLIST_TS_* macros in a fashion similar to the already existing LLIST_* macros. Unlike the non-thread-safe version, these include LLIST_TS_LOCK and LLIST_TS_UNLOCK which can be used to lock (and unlock) a list (hence the thread-safety). Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add macros for linked list operations.Lukas Fleischer2011-04-191-0/+26
| | | | | | | | | | | Mostly in preparation to the pending thread-safe list macros. This way, we have a similar interface to thead-safe and non-thread-safe lists. This also adds LLIST_FOREACH and LLIST_FIND_FOREACH macros which can be used as shortcuts when iterating over all list items or a subset of list items that is accepted by a callback function. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add linked lists implementation.Lukas Fleischer2011-04-194-0/+287
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As discussed on the mailing lists, the various linked list implementations we currently use at a dozen of different places in the calcurse source tree are inconvenient and should be replaced by a single generic solution. This is a first approach to introduce such a generic implemetation. It provides following functions: * llist_init(): Initialize a list. * llist_free_inner(): Loop through a list and free all items. * llist_free(): Free the list itself (but not the individual items). * llist_first(): Get the first item of a list. * llist_nth(): Get the nth item of a list. * llist_next(): Get the successor of a list item. * llist_find_first(): Find an item using a callback function. * llist_find_next(): Find the next match using a callback function. * llist_find_nth(): Find the nth item in a list (using a callback). * llist_get_data(): Get a pointer to the actual data of a list item. * llist_add(): Add an item at the end of a list. * llist_add_sorted(): Add an item to a sorted list (using a comparison callback function). * llist_remove(): Remove an item from a list. Linked lists are stored in "llist_t" structures, list items are to be stored in "llist_item_t" structs. All of the llist_*() functions either expect a pointer to a llist_t structure (in case the function operates on the list itself) or a pointer to a llist_item_t (llist_*_next() and llist_get_data()). Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use mem_free() instead of xfree() in check_time().Lukas Fleischer2011-04-171-1/+1
| | | | | | | xfree() should never be used directly and only be called by one of the mem_*() wrappers. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Fix io_file_is_empty() behaviour when file starts with a newline.Lukas Fleischer2011-04-121-1/+1
| | | | | | | Read second byte if the first byte is a newline character to ensure the file doesn't contain any further data. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use do-while loops when reading start time and duration in apoint_add().Lukas Fleischer2011-04-121-2/+5
| | | | | | | | Using do-while loops seems more appropriate here as "item_time" hasn't even been read when either of the loops are entered. Spotted by clang-analyzer. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Fix null pointer dereference in parse_date().Lukas Fleischer2011-04-121-9/+12
| | | | | | | | Passing a date in format "mm-dd-yy" where short forms are not allowed would lead to a null pointer dereference here. This one fixes that. Spotted by clang-analyzer. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Remove some more dead assignments spotted by clang-analyzer.Lukas Fleischer2011-04-122-2/+0
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Declare exit_calcurse() "noreturn".Lukas Fleischer2011-04-121-1/+1
| | | | | | | | Functions that never return should be declared "noreturn" to tell the compiler this fact. Also, clang-analyzer will detect this attribute and take it into account when running scan-build. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Drop empty notes after editing.Lukas Fleischer2011-04-124-0/+32
| | | | | | | | | Keeping empty notes doesn't make sense here. Also, there doesn't seem to be a simple way to erase notes yet. This will make calcurse delete any notes that are empty (meaning that they are either 0-byte files or contain nothing but a newline character) when returning from the editor. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Update and cleanup ".gitignore".Lukas Fleischer2011-04-111-22/+16
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add more detailed instructions on `tx push` usage to documentation.Lukas Fleischer2011-04-111-5/+9
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add base transifex-client configuration file.Lukas Fleischer2011-04-112-5/+11
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use HTTPs for tx(1) samples in the documentation.Lukas Fleischer2011-04-111-2/+2
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Update portable object files.Lukas Fleischer2011-04-106-2466/+193
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Update "calcurse.pot".Lukas Fleischer2011-04-101-383/+2
| | | | | | | Renegerate the catalog file with our new xgettext options. Drop line numbers. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add "--no-location" to xgettext options.Lukas Fleischer2011-04-101-0/+4
| | | | | | | Disable line numbers in portable object files. They are not very useful and generate a lot of junk on every update, hiding the actual changes. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Fix Transifex resource slug in documentation.Lukas Fleischer2011-04-101-3/+3
| | | | | | | | The slug of the "calcurse.pot" resource has been changed from "calcurse-pot" to "calcursepot" for consistency reasons. Update the documentation where necessary. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Fix bad use of unsigned integers.Lukas Fleischer2011-04-052-4/+3
| | | | | | | | Unsigned values should never be compared to values less than zero. Detected with "find_unsigned.cocci" spatch from http://coccinelle.lip6.fr/impact_linux.php. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Compare pointers to "NULL" instead of "0".Lukas Fleischer2011-04-0512-93/+93
| | | | | | "bad_zero.cocci" spatch from http://coccinelle.lip6.fr/impact_linux.php. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Remove unused variables from wins_show().Lukas Fleischer2011-04-031-4/+1
| | | | | | Seen with "-Wunused-but-set-variable". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Remove dead assignments spotted by clang-analyzer.Lukas Fleischer2011-04-038-40/+17
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Avoid assignment of undefined value in parse_date().Lukas Fleischer2011-04-031-4/+4
| | | | | | Spotted by clang-analyzer ("Assigned value is garbage or undefined"). Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* ignore the lock file if the pointed process is dead.Erik Saule2011-03-291-8/+24
| | | | | | Lukas: Small formatting and logic changes. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Update translation help in the manual.Lukas Fleischer2011-03-151-13/+75
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Add note on dropped translations to the manual.Lukas Fleischer2011-03-151-0/+5
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Try to stick to the GNU coding standards for the sake of consistency.Lukas Fleischer2011-03-151-133/+170
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Use upper case for macro names.Lukas Fleischer2011-03-153-12/+12
| | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Remove "ChangeLog".Lukas Fleischer2011-03-141-3123/+0
| | | | | | | | | After some discussions on the mailing lists, we decided to remove the GNU-style ChangeLog, as turned out to be very inconvenient. Also, it merely is a replication of the Git log. If you need a similar ChangeLog, use `git log` (or `git log --stats`) instead. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Overall indentation fixes.Lukas Fleischer2011-03-1419-2280/+2280
| | | | | | | Use spaces instead of tabs for source code indentation only, strip trailing whitespaces from lines. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>