Age | Commit message (Collapse) | Author |
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Be a little more consistent here.
Also, transifex-client will automatically add a newline character to the
last line of its config file unless it is already there.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
We forgot to add those to the "_SOURCES" variable in commit
0eb1da8dd7fa3ae9d95e12df6058fb41a5ec1c11 and
d668963e2056027526374098efe2869a0d389b92. Spotted by `make distcheck`.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
* 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>
|
|
* 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>
|
|
* 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>
|
|
Do this in a fashion similar to what was done in commit
6ff95238766656c5ea9d5c65c35d3aef93499f60.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
Ensure files don't appear as empty if fopen() fails (e.g. on temporary
EACCES failures).
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
* 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>
|
|
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>
|
|
Regression introduced in commit
5b174ba5d46c256f41c1cfb952d46f49a088db8a.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
* 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>
|
|
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>
|
|
Field seems to be unused. Verify using following spatch:
----
@@ struct recur_apoint *rapt; @@
* rapt->next
----
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
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 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 the new generic list implementation instead of "next" pointers in
todo items.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
Field seems to be unused. Verify using following spatch:
----
@@ struct apoint *apt; @@
* apt->next
----
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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 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>
|
|
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>
|
|
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>
|
|
xfree() should never be used directly and only be called by one of the
mem_*() wrappers.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
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>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Renegerate the catalog file with our new xgettext options. Drop line
numbers.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
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>
|
|
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>
|
|
"bad_zero.cocci" spatch from http://coccinelle.lip6.fr/impact_linux.php.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Seen with "-Wunused-but-set-variable".
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Spotted by clang-analyzer ("Assigned value is garbage or undefined").
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Lukas: Small formatting and logic changes.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|