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>
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>
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>
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>
Use spaces instead of tabs for source code indentation only, strip
trailing whitespaces from lines.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
End times used to be parsed incorrectly if start and end time's hour
components were equal, but the end time was smaller than the start time.
This is fixed by comparing the minute components as well in case of
equal hour components.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This greatly simplifies all line editing functions - especially
getstring() and showstring(). showcursor() is removed and integrated
into showstring(). del_char() and add_char() are simplified as well.
add_char() is renamed to ins_char().
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
Key descriptions are just strncpy()'ed to key[], with KEYS_KEYLEN as
maximum character count. This leads to a non-null-terminated string if
the source pointer actually points to a string with a length of
KEYS_KEYLEN bytes. Always appending a null character fixes this.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
date_sec2hour_str() is superseded by date_sec2date_str() with "%H:%M" as
date format string, so replace all invocations and remove that function
from "utils.c".
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>