summaryrefslogtreecommitdiff
path: root/src/keys.c
AgeCommit message (Collapse)Author
2012-03-12Get rid of string structuresLukas Fleischer
These were only used to construct constant strings with additional length fields. However, we can just use standard constant character arrays instead and let the compiler calculate the string length. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-12Use strcmp() instead of strncmp()Lukas Fleischer
strncmp() isn't intended to be a secure strcmp() replacement, it is designed to be used if you want to compare the first n characters of two strings. Since we always compare character pointers with string literals, switch to using strcmp() everywhere. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-02Revamp key bindings displayLukas Fleischer
Refactor the logic inside keys_display_bindings_bar() and remove the need to place the "show next page" key binding at the right positions. This used to be a pain to maintain, since we always had to move key bindings around when introducing a new key. Fix this by passing the actual key bindings in an array and using a separate parameter for the "show next page" key binding (which is automatically inserted at the right places from now on). Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-02-19Remove all usages of bzero() and bcopy()Lukas Fleischer
The bzero() and bcopy() functions are deprecated and were removed from the POSIX standard in IEEE Std. 1003.1-2008. Remove all usages of bzero()/bcopy() and replace them by appropriate memset()/memmove() calls. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-02-18Fix up strncat() usageLukas Fleischer
The last argument to strncat() should not be the total buffer length; it should be the space remaining: The strncat() function shall append not more than n bytes (a null byte and bytes that follow it are not appended) from the array pointed to by s2 to the end of the string pointed to by s1. The initial byte of s2 overwrites the null byte at the end of s1. A terminating null byte is always appended to the result. This patch fixes a couple of potential buffer overflow vulnerabilities. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-11-02Make use of the NULL macroLukas Fleischer
Use this constant everywhere when referring to a null pointer instead of casting 0 to various types of pointers. Created using following semantic patch: @@ type type; @@ - (type *)0 + NULL Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-11-02Do not cast unused return values to voidLukas Fleischer
A small style fix that removes all remaining "(void)" casts. Using these isn't encouraged in GNU coding guidelines and doesn't serve a certain purpose, except for satisfying a few static code analysis tools. We already nuked some of these in previous patches, but this semantic patch should fix what's left: @@ identifier func; @@ - (void)func ( + func ( ...); Long lines were re-formatted manually. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-11-02Avoid use of printf()/fprintf()Lukas Fleischer
Use one of the following functions where appropriate: * puts() (whenever we print hard coded strings to stdout) * fputs() (whenever we print hard coded strings to a stream) * putchar() (whenever we print a single character to stdout) * fputc() (whenever we print a single character to a stream) * strncpy() (whenever we copy hard coded strings to a buffer) This removes the overhead introduced by the format string parser and reduces the number of false positive C-format strings spotted by xgettext(1)'s heuristics. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-10-06Add count buffer to keys_getch()Lukas Fleischer
Key commands can be prefixed with a natural number - keys_getch() will store this number in the buffer pointed to by the second parameter. Set this parameter to NULL to disable count prefixes. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-07-07Add key binding for pipe-item commandLukas Fleischer
This removes the need of reading the whole data file and find matching entries if we want to parse appointments in external programs. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-06-29Enable arrow key navigation by defaultLukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-04-22Update copyright notices in source files, documentation and "COPYING".Lukas Fleischer
* 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>
2011-04-05Compare pointers to "NULL" instead of "0".Lukas Fleischer
"bad_zero.cocci" spatch from http://coccinelle.lip6.fr/impact_linux.php. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-14Overall indentation fixes.Lukas Fleischer
Use spaces instead of tabs for source code indentation only, strip trailing whitespaces from lines. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-05Ensure key descriptions in status bar are always null-terminated.Lukas Fleischer
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>
2011-03-04Update website links to match the new URL.Lukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-04Update mail addresses to match the new mailing lists.Lukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-03Remove CVS "$Id" headers.Lukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2011-03-03Fixed file permissions.Lukas Fleischer
2010-03-20All headers gathered into a single one. Typedefs suppressed.Frederic Culot
2009-07-05Switch to BSD license.Frederic Culot
2009-01-24bugfix: load keys even in non-interactive mode to avoid the loss of ↵Frederic Culot
user-configured key bindings
2009-01-24make it possible to use KEY_HOME and KEY_END to define new key bindings, and ↵Frederic Culot
prevent user from assigning a non-recgnized key
2009-01-03more code cleanupFrederic Culot
2009-01-02various bugfixesFrederic Culot
2009-01-01cut/paste feature adedFrederic Culot
fixed a 2-years old bug that made repeated items with exceptions to load uncorrectly in some cases (thanks Jan for reporting it)
2008-12-28Added wrappers around libc's memory management functions, to easily debug ↵Frederic Culot
memory usage
2008-12-15small bugfixes and a major one (freeze when deleting an appointment's note, ↵Frederic Culot
thanks Jan for reporting it)
2008-12-12code cleanupFrederic Culot
2008-12-08color configuration menu adapted to handle user-defined key bindingsFrederic Culot
2008-12-07Checks added while loading key bindings configuration.Frederic Culot
2008-11-30online help pages updatedFrederic Culot
2008-11-25User-defined keys are now saved to file.Frederic Culot
2008-11-23Building configuration menu to assign keybindingsFrederic Culot
2008-11-16More work on implementing user-definable keybindingsFrederic Culot
2008-11-09Loading of user-configurable keys implementedFrederic Culot
2008-11-08new files to manage user-definable keybindingsFrederic Culot