summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use mvwaddstr() instead of mvwprintw()Baptiste Jonglez2012-05-317-80/+75
| | | | | | | | | | | | | When we only want to display a string at a specific place of the screen, there's no need to use the more complex mvwprintw(), use mvwaddstr() instead. This should be slightly more efficient, and, above all, it prevents weird things to happen if our string contains a '%', being interpreted as an unwanted format string. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* src/config.c: Bail out on incomplete directiveLukas Fleischer2012-05-291-0/+3
| | | | | | | | | | Fixes a segmentation fault that arose if a line in the configuration file didn't contain a value/key separator ("="). Instead of operating on a NULL pointer, throw an error message containing the erroneous directive and bail out. Reported-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Fix incorrect i18n usage for some stringsBaptiste Jonglez2012-05-256-22/+22
| | | | | | | | | | | Some strings are initialized without wrapping them in _(); instead, _() is applied on the variable when it is used. This is incorrect, since these strings don't get added to the catalog. Fix that by applying _() only once, when the string is declared. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* po/POTFILES.in: Add missing source filesLukas Fleischer2012-05-231-1/+11
| | | | | | | We forgot to add these when splitting existing or creating new source files. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Do not localize configuration optionsLukas Fleischer2012-05-232-18/+18
| | | | | | | | | The configuration options shown in the configuration menu are meant to reflect the keys used in the configuration file. The descriptions displayed alongside each option should be sufficient for non-English speakers. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* Merge branch 'maint'Lukas Fleischer2012-05-233-3/+10
|\ | | | | | | | | | | | | Conflicts: src/io.c src/notify.c src/utils.c
| * Do not localize dates in pcal exportsLukas Fleischer2012-05-192-1/+8
| | | | | | | | | | | | | | | | | | * Do not localize the word "week" in pcal export headers. * Reset current locale before formatting dates in pcal export data. Addresses BUG#1. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
| * src/notify.c: Fix printf() misuseLukas Fleischer2012-05-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Make sure we actually copy the notification warning interval to the correct buffer instead of printing it to stdout (using an arbitrary format string). This makes sure the current warning interval is shown when editing the field and also eliminates a potential format string vulnerability. Spotted with "-Wformat-nonliteral". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Add localization to calcurse-upgradeLukas Fleischer2012-05-233-5/+19
| | | | | | | | | | | | | | | | | | | | | | * Use gettext in "scripts/calcurse-upgrade". * Add "scripts/calcurse-upgrade" to "po/POTFILES.in". * Rename "scripts/calcurse-upgrade" to "scripts/calcurse-upgrade.sh" to make sure xgettext(1) detects the correct input file format. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | scripts/calcurse-upgrade: Add debug outputLukas Fleischer2012-05-231-0/+7
| | | | | | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | scripts/calcurse-upgrade: Add a "--config" optionLukas Fleischer2012-05-231-1/+10
| | | | | | | | | | | | | | This allows for specifying an alternate configuration file which is useful if you use a non-default data directory. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | scripts/calcurse-upgrade: Set "-e"Lukas Fleischer2012-05-231-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From the set(1p) man page: When this option is on, if a simple command fails for any of the reasons listed in Consequences of Shell Errors or returns an exit status value >0, and is not part of the compound list following a while, until, or if keyword, and is not a part of an AND or OR list, and is not a pipeline preceded by the ! reserved word, then the shell shall immediately exit. This allows us to remove all the "|| exit 1" statements we used to bail out if one command fails. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Document extended format specifiersLukas Fleischer2012-05-232-0/+50
| | | | | | | | | | | | | | | | | | Add documentation for extended format specifiers (which were introduced in 68b26ff85415ee687b082fbd5150de58cdce0935) to the man page and the manual. Add a note about strftime()-style extended formats for "%(start)" and "%(end)". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Fix default time format for multi-day appointmentsLukas Fleischer2012-05-211-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of commit 0791eaabca0fb1ef8a8675e47d701bbcde4d4a3f, we use strftime() instead of apoint_sec2str() to format start and end dates of appointments. "%H:%M" is the default strftime() format string used to simulate apoint_sec2str(). However, apoint_sec2str() additionally checks for intersection with the current day and displays "..:.." instead of the actual time if the item doesn't start (end) at the current day. Add an additional check to the new default time format and recreate the old behavior for items starting before or ending after the current day. Fixes BUG#3. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Switch to Linux kernel coding styleLukas Fleischer2012-05-2133-10777/+9268
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert our code base to adhere to Linux kernel coding style using Lindent, with the following exceptions: * Use spaces, instead of tabs, for indentation. * Use 2-character indentations (instead of 8 characters). Rationale: We currently have too much levels of indentation. Using 8-character tabs would make huge code parts unreadable. These need to be cleaned up before we can switch to 8 characters. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | src/utils.c: Disable canonical mode in press_any_key()Lukas Fleischer2012-05-201-0/+10
| | | | | | | | | | | | | | | | | | Use tcsetattr() to disable canonical mode in press_any_key() before waiting for a key press. This makes sure that input is available immediately (instead of line by line). Also, disable echoing until a key is pressed. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Fix data type of "general.firstdayofweek"Lukas Fleischer2012-05-175-22/+25
| | | | | | | | | | | | | | | | | | | | | | This option wasn't converted to a proper data type when it was renamed from "week_begins_on_monday" to "general.firstdayofweek". Convert the boolean option into an enumeration type that can take the values "monday" and "sunday". Also, update the documentation, add a conversion rule to the upgrade script and convert the configuration file used in the test suite. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | doc/manual.txt: Update configuration optionsLukas Fleischer2012-05-171-38/+38
| | | | | | | | | | | | | | | | Rename all configuration options in the manual to match the new naming scheme. Also, update the default values of "general.systemdialogs" and "general.progressbar". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Update configuration dialogsLukas Fleischer2012-05-172-24/+24
| | | | | | | | | | | | | | Rename the configuration options shown in the configuration dialogs to match the new naming scheme used in the configuration file. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Document removal of the "-N" command line optionLukas Fleischer2012-05-173-13/+9
| | | | | | | | | | | | | | This option was removed in 6b95f7b67dc8e29072fed4e05efa450422661348. Update the usage message, the man page and the manual accordingly. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Document simple format specifiersLukas Fleischer2012-05-172-0/+177
| | | | | | | | | | | | | | Add documentation for "--format"* to the manual and man page. See commits 7f0c3003ac561a25eeb3c735b32e3ee312ef58c9 etc. for details. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | doc/manual.txt: Document motion count prefixesLukas Fleischer2012-05-171-0/+4
| | | | | | | | | | | | | | Displacement commands can be preceded by motion counts since commit 59e006e56d9f893506af56a4ca114fe53b537e49. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | doc/manual.txt: Update note file naming schemeLukas Fleischer2012-05-171-3/+4
| | | | | | | | | | | | | | | | | | We are now using hash-based note file names instead of mkstemp() (cf. commit 5c6a00ee93e54cc044aee5146e9fcfbcb732a2ee). Update the documentation accordingly. Also, add a note on the garbage collector we added in 8d71923d4f498c8d2fcb22a72346e3e77a7c4a5b. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | doc/manual.txt: Fix a couple of typosLukas Fleischer2012-05-171-14/+14
| | | | | | | | Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | src/wins.c: Run editor and pager in a shellLukas Fleischer2012-05-161-1/+1
| | | | | | | | | | | | | | | | | | This allows for specifying an editor or a pager with additional command line parameters, such as "vim -e". Instead of interpreting "vim -e" as an executable file, we leave it to the shell to tokenize and parse the editor command now. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Allow passing additional parameters to shell_exec()Lukas Fleischer2012-05-164-6/+45
| | | | | | | | | | | | | | | | This allows for specifying multiple command line parameters to be passed on to the command in a way similar to fork_exec(). This is useful if we want to wrap editor or pager invocations in a shell. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Add dummy help for cut and pasteBaptiste Jonglez2012-05-141-0/+4
| | | | | | | | | | | | | | | | It looks like cutting and pasting are only half-implemented: this only avoids a segfault when trying to get help on these functions. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Allow resize events while prompting the userBaptiste Jonglez2012-05-141-1/+6
| | | | | | | | | | | | | | | | | | | | When asking the user to choose between multiple alternatives, properly handle resize events. Note that we would also need to do so in getstring()... Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Various fixes.Baptiste Jonglez2012-05-142-3/+3
| | | | | | | | | | | | | | Use snprintf(3) instead of sprintf(3) and fix a missing i18n tag. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Factorize boolean user prompting.Baptiste Jonglez2012-05-146-35/+19
| | | | | | | | | | | | | | | | | | | | | | Introduce a new `status_ask_bool()` function, and use it where applicable. This greatly reduces code duplication, and will allow handling special events (resize, user escape) much more uniformely. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Use status_ask_choice() on more difficult casesBaptiste Jonglez2012-05-142-38/+87
| | | | | | | | | | | | | | | | | | | | | | These cases are also candidates for the factorisation process, but they are somewhat more tricky to get right. Since we use a completely different approach, the result (from a user perspective) looks different. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Use status_ask_choice() where applicableBaptiste Jonglez2012-05-142-40/+42
| | | | | | | | | | | | | | These cases make obvious candidates for factorisation. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Use status_ask_simplechoice() where applicableBaptiste Jonglez2012-05-141-33/+30
| | | | | | | | | | Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | src/utils.c: Add a status_ask_simplechoice() functionBaptiste Jonglez2012-05-142-0/+34
| | | | | | | | | | | | | | | | | | | | 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>
* | src/utils.c: Add a status_ask_choice() functionBaptiste Jonglez2012-05-142-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Declare several parameters/variables constantLukas Fleischer2012-05-0817-122/+125
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* | src/args.c: Add "void" in some function declarationsLukas Fleischer2012-05-081-4/+4
| | | | | | | | | | | | | | | | | | 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>
* | src/args.c: Add a mention of "--read-only" in "calcurse --help"Baptiste Jonglez2012-05-021-1/+4
| | | | | | | | | | Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Various code cleanupBaptiste Jonglez2012-05-021-11/+3
| | | | | | | | | | | | | | | | 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>
* | src/utils.c: Get rid of "semantic range checks" when parsing durationBaptiste Jonglez2012-05-021-13/+0
| | | | | | | | | | | | | | | | | | | | 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>
* | src/apoint.c: Change the status message displayed when editing a durationBaptiste Jonglez2012-05-021-1/+1
| | | | | | | | | | | | | | | | | | 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>
* | src/htable.h: Add missing prototypesLukas Fleischer2012-04-211-1/+5
| | | | | | | | | | | | | | | | | | | | 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>
* | Add prototypes for hash table functionsLukas Fleischer2012-04-212-0/+2
| | | | | | | | | | | | These can be generated dynamically using the HTABLE_PROTOTYPE macro. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | src/mem.c: Skip dbg_*() if memory stats are disabledLukas Fleischer2012-04-211-45/+48
| | | | | | | | | | | | | | | | 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>
* | Mark several functions staticLukas Fleischer2012-04-205-5/+5
| | | | | | | | | | | | | | These are not needed outside of the corresponding compilation units. Spotted with "-Wmissing-prototypes". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Merge "%(start"{,str}")" and "%(end"{,str}")"Lukas Fleischer2012-04-171-21/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | Support extended date formatsLukas Fleischer2012-04-171-2/+19
| | | | | | | | | | | | | | Add support for appending a strftime()-style format string to "%(start)" and "%(end)". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
* | Allow passing extended formatsLukas Fleischer2012-04-171-5/+24
| | | | | | | | | | | | | | | | | | 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>
* | Add support for long format specifiersLukas Fleischer2012-04-171-5/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | src/utils.c: Break out format specifier parsingLukas Fleischer2012-04-171-24/+72
| | | | | | | | | | | | | | 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>