summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-05-14src/utils.c: Add a status_ask_simplechoice() functionBaptiste Jonglez
We need a simpler version, based on the previously defined `status_ask_choice()` function, that asks to choose amongst a number of alternatives that can simply enumerated, without needing to bind keys on them. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-14src/utils.c: Add a status_ask_choice() functionBaptiste Jonglez
This function allows the user to choose between various alternatives, each one being associated to a given key. This will allow a great deal of factorisation, which will make it easier to handle special events (like resizing, user escape...) in an uniform manner. The cool part of the approach taken here is that it allows full i18n (i.e. the key bound to an alternative can be different depending on the language), at the expense of a somewhat less readable code on the caller side. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-08Declare several parameters/variables constantLukas Fleischer
Add the "const" keyword to parameters and variables that are never modified. Most of these were spotted by "-Wwrite-strings". We cast the second parameter to execvp() explicitly as it expects a "char *const[]" where it should expect a "const char *const[]" (according to the documentation, this is due to compatibility reasons). This should be changed once we come up with a better solution. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-08src/args.c: Add "void" in some function declarationsLukas Fleischer
These functions don't take any parameters, "void" is the right parameter signature to use here. Fixes some warnings seen with "-Wstrict-prototypes". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-02src/args.c: Add a mention of "--read-only" in "calcurse --help"Baptiste Jonglez
Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-02Various code cleanupBaptiste Jonglez
Remove obsolete bits of code that weren't thrown away by b5c1981; simplify some others areas of the code. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-02src/utils.c: Get rid of "semantic range checks" when parsing durationBaptiste Jonglez
Don't restrict ranges when entering durations. We now accept duration like "+1d42h600m". This might not seem very logical, but it's perfectly valid, and being able to enter "+36h" is useful when you don't want to do the maths yourself. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-02src/apoint.c: Change the status message displayed when editing a durationBaptiste Jonglez
The duration format has recently changed to allow durations of the form "2d18h42m", but the status message didn't advertize this new possibility. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-21src/htable.h: Add missing prototypesLukas Fleischer
We only generated prototypes for a small subset of all supported functions in the HTABLE_PROTOTYPE macro. Add missing prototypes to allow for accessing corresponding functions if HTABLE_GENERATE is used in a separate compilation unit. This also fixes a couple of compiler warnings seen with "-Wmissing-prototypes". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-21Add prototypes for hash table functionsLukas Fleischer
These can be generated dynamically using the HTABLE_PROTOTYPE macro. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-21src/mem.c: Skip dbg_*() if memory stats are disabledLukas Fleischer
These functions only need to be compiled if calcurse is built with "--enable-memory-debug". Tell the preprocessor to strip them if memory debugging/stats are disabled. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-20Mark several functions staticLukas Fleischer
These are not needed outside of the corresponding compilation units. Spotted with "-Wmissing-prototypes". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-17Merge "%(start"{,str}")" and "%(end"{,str}")"Lukas Fleischer
Add "default" and "epoch" extended formats for dates. "default" is the same as "%H:%M", "epoch" prints the number of seconds since January 1, 1970. Also, change the semantics of "%(start)" to return dates in default format (same format that "%(startstr)" used to use before this patch). The old "%(start)" behavior can be emulated by using "%(start:epoch)". The same applies to "%(end)" and "%(endstr)". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-17Support extended date formatsLukas Fleischer
Add support for appending a strftime()-style format string to "%(start)" and "%(end)". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-17Allow passing extended formatsLukas Fleischer
Extended formats can be specified by adding custom format strings to the end of a long format specifier, separated by a colon (":"). This feature is currently unused. Extended format support for several format specifiers will be added in following patches. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-17Add support for long format specifiersLukas Fleischer
Adds following long format specifiers for each short format specifier: * s: (start) * S: (startstr) * d: (duration) * e: (end) * E: (endstr) * m: (message) * n: (noteid) * N: (note) * p: (priority) Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-17src/utils.c: Break out format specifier parsingLukas Fleischer
Move the format specifier parser to a separate function. This is done in preparation for supporting long format specifiers. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-17test/: Add a READMELukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de> Signed-off-by: Frederic Culot <frederic@culot.org> Signed-off-by: Erik Saule <esaule@bmi.osu.edu>
2012-04-12src/calcurse.c: Start all helper threads in one goLukas Fleischer
Makes our initialization code a tad cleaner and seems to reduce flicker when starting calcurse (the notification bar is no longer drawn before other windows are shown). Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-12Refactor startup screen branchLukas Fleischer
Removes the pointless first parameter to io_startup_screen() and saves one wins_update() call if system dialogs are disabled. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-12Use percentage-based width for the sidebarLukas Fleischer
Use percentage-based widths internally. This slightly impairs (user) feedback but brings the sidebar configuration menu closer to the actual configuration format (the user now configures percentage-based widths, not absolute width values). As a bonus, the sidebar is now resized automatically on each window resize (based on the percentage values). Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-06src/mem.c: Fix putchar() parameterLukas Fleischer
putchar() expects a single character, not a string. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-06Miscellaneous small code cleanupsLukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-05src/keys.c: Use generic list implementationLukas Fleischer
Be consistent and replace the custom linked list implementation we used here by the generic list implementation we use everywhere else. This reduces code complexity, while slightly improving memory overhead. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-05Mark some more variables/parameters constantLukas Fleischer
Fixes a couple of warnings seen with GCC 4.7. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-04-05Mark localized string literals constantLukas Fleischer
Translated strings returned by gettext() are statically allocated and shouldn't be modified. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-30Do not use LLIST_*_CONT for appointmentsLukas Fleischer
This no longer works since we allow appointments lasting longer than 24 hours. This means that there might be an appointment that starts after another one and lasts until the selected day, even though the former doesn't. A simple example, where the old LLIST_TS_FOREACH_CONT approach fails, is: 03/29/2012 @ 19:00 -> 03/30/2012 @ 10:00 |Long event 03/29/2012 @ 21:00 -> 03/29/2012 @ 23:15 |Event 1 (shown) 03/30/2012 @ 14:00 -> 03/30/2012 @ 15:00 |Event 2 (not shown) Instead, allow incoherent appointments and only break if the current appointment *starts after* the selected day. Reported-by: Baptiste Jonglez <baptiste@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-30Revert a bunch of strncmp() conversionsLukas Fleischer
All strncmp() usages were replaced by (evidently) equivalent strcmp() invocations in commit 2c9499bf272e06a62902711c6c20621ef3f80e64. However, some of the strncmp() calls were perfectly justified and we actually broke iCal import and "C-"-style key bindings by converting them to strcmp(). Fix this by reverting all affected conversions. Reported-by: Baptiste Jonglez <baptiste@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-30README: Update with recent changesLukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-29Fix semantics of "general."{systemdialogs,progressbar}Lukas Fleischer
These were renamed from "skip_"* to *. However, we only changed syntax and didn't invert their semantic meaning. Fix this by negating the semantics of those variables. Also, negate these in the configuration file automatically when running `calcurse-upgrade`. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-29src/config.c: Detect legacy configuration filesLukas Fleischer
Check configuration variable names against a list of pre-3.0.0 configuration keys and display a warning if such a variable is found. This reduces the chance of users going wild due to the non-backwards compatible configuration file changes. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-29test/data/conf: Update variable namesLukas Fleischer
Update the default configuration file used in our test suite to match the new configuration variable naming scheme. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-29Add a configuration file upgrade scriptLukas Fleischer
This isn't ready for distribution but allows users of the -git version of calcurse to easily update their configuration files without having to edit them manually. Following things are still missing here: * A command line parameter to specify a custom data directory. * A backup file that is created automatically before upgrading. * Debug output. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-29src/config.c: Reorder configuration variablesLukas Fleischer
Sort configuration variables lexicographically. This makes changes easier to locate. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-27src/config.c: Rename configuration variablesLukas Fleischer
Classify configuration options into different sections. Use consistent names and formatting. This was discussed on the mailing lists. A script that updates configuration files will come in following patches. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-26Update copyright rangesLukas Fleischer
Add 2012 to the copyright range for all source and documentation files. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-12Do not strncpy() strings returned by gettext()Lukas Fleischer
Translated strings returned by gettext() are statically allocated. There's no need to copy them to a buffer, we can use the pointers returned by gettext() instead. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
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-12Avoid redundant window resets in config menuLukas Fleischer
There's no need to reset windows unless the layout was changed. Move wins_reset() to a separate branch to reflect this. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-12Avoid redundant virtual screen updatesLukas Fleischer
Remove some redundant wnoutrefresh() invocations. There's no need to copy a window to the virtual screen unless doupdate() is invoked immediately afterwards. This reduces flicker when browsing in the calendar panel. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-03-02Break out configuration main menuLukas Fleischer
This was the only big block of code left in our main loop. Move it to a separate function, making the main loop a bit clearer. 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-24test/: Run calcurse in read-only modeLukas Fleischer
We don't change any configuration nor do we modify items here, so we can safely invoke calcurse in read-only mode. Fixes a couple of permission errors seen with `make distcheck`. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-02-24Add a read-only optionLukas Fleischer
We don't save any configuration nor items if this is set. This should be used with care, and hence there's no short option for this. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-02-24test/: Use correct calcurse binary and data dirLukas Fleischer
We really don't want to use the calcurse(1) binary from "$PATH" here. Introduce an environment variable "$CALCURSE" which can be used specify the binary to use and set this variable to the binary located in the build directory by default. Similarly, add another environment variable "$DATA_DIR" that can be used to specify a data directory. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-02-24test/Makefile.am: Add tests to "EXTRA_DIST"Lukas Fleischer
Add tests and the dummy data directory to "EXTRA_DIST" since we want these to be shipped in distribution tarballs. Spotted with `make distcheck`. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-02-20src/io.c: Remove C89 incompatible commentLukas Fleischer
Make commenting style consistent with everywhere else. Use "/* [...] */" instead of "// [...]". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-02-19{src,test}/Makefile.am: Enable pedantic warningsLukas Fleischer
Now that we're fully POSIX compliant and fixed up some minor issues with ISO C99, use "-std=c99 -pedantic -D_POSIX_C_SOURCE=200809L" as default build flags for calcurse and the test suite. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-02-19test/run-test.c: Check fgets() return value properlyLukas Fleischer
Not sure what we were doing here. fgets() returns a pointer, not an integer! Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>