summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-11-23Do not display a mark when files are auto-savedLukas Fleischer
This is kind of useless since users are not able to react to an auto-save notification. It also causes all kinds of problems if the status bar is in a non-standard mode (message, prompt, ...) and is prone to race conditions if the status bar is updated by another thread at the same time. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-11-22Replace localtime() with localtime_r()Lukas Fleischer
Since the result of localtime() is stored in a statically allocated structure, data was overwritten when a context switch occurred during (or shortly after) the execution of localtime(), potentially resulting in critical data corruption. BUG#7 and BUG#8 are likely related. This patch converts all usages of localtime() with localtime_r(), which is thread-safe. Reported-by: Baptiste Jonglez <baptiste@jonglez.org> Reported-by: Erik Saule <esaule@bmi.osu.edu> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-30Release 3.0.0v3.0.0Lukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-30src/config.c: Fix parsing an unset color themeLukas Fleischer
If color support is disabled, the color theme configuration value is set to "0" or "none", which is a value we no longer accepted since commit a5486605696f92a749277d49c77bb5b194dc67a5. Re-introduce the branch that checks for an unset color theme before actually parsing it. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-30Fix compilation with NLS disabledLukas Fleischer
* src/utils.c: Only call setlocale() if NLS is enabled. * src/calcurse.h: Define a fallback macro ngettext() if NLS is disabled. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-24po/: Translation updates from Transifexv3.0.0-rc2Lukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-24po/calcurse.pot: Update message catalogLukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-18src/args.c: Fix bugs address in usage messageLukas Fleischer
* Point out that bug reports should be sent to the bugs mailing list, not to misc in help and usage messages. * Call more_info() when displaying the help message instead of copy-pasting strings to avoid double translation. Reported-by: rafael ff1 <rafael.f.f1@gmail.com> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-18src/help.c: Add missing _()Lukas Fleischer
Add a missing gettext wrapper. This string should be translated. Reported-by: rafael ff1 <rafael.f.f1@gmail.com> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-18src/keys.c: Fix help strings for generic-{cut,paste}Lukas Fleischer
Reported-by: rafael ff1 <rafael.f.f1@gmail.com> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-13src/keys.c: Add vim-style default bindings for generic-*Lukas Fleischer
Add vim-style key bindings for generic-prev-day, generic-next-day, generic-prev-week and generic-next-week in a fashion similar to what we use for generic-*-month and generic-*-year. The key "t"/"T" for generic-prev-day/generic-next-day is somewhat less than perfect but this is okay given that we're running out of keys... Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-13Add key bindings to go to the previous/next month/yearLukas Fleischer
In addition to generic key bindings for moving one day (week) forward/backward, define similar bindings for moving a month or a year. Of course, count prefixes are allowed here as well. Also add status bar hints and help texts. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-13Rename displacement enumeration elementsLukas Fleischer
* Rename "LEFT" to "DAY_PREV", "RIGHT" to "DAY_NEXT", "UP" to "WEEK_PREV" and "DOWN" to "WEEK_NEXT" to reflect the semantics of these operations. Remove the unneeded "MOVES" element. * Reorder code to improve consistency. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-10calcurse-upgrade: Create a backup before upgradingLukas Fleischer
Make sure the user doesn't end up in a configuration file being totally broken if the upgrade script fails unexpectedly. The backup file is removed if the conversion completed successfully. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-01calcurse-upgrade: Display error if temp file existsv3.0.0-rc1Lukas Fleischer
Instead of bailing out without any hint, show an error message if the temporary file we use in calcurse-upgrade already exists. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-01calcurse-upgrade: Change location of temporary fileLukas Fleischer
Instead of creating the temporary file in a central location, place it in the same directory as the configuration file. Pros: * No need to rely on the "$TMPDIR" environment variable. * Multiple users can upgrade their configuration files at the same time, even if "$!" isn't set properly. * One user can upgrade several configuration files (in different directories or with different file names) at once. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-01calcurse-upgrade: Add "-h" and "-v" optionsLukas Fleischer
Add "-h"/"--help" options to print a usage message and "-v"/"--version" to print the current version. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-01scripts/: Add support for placeholdersLukas Fleischer
Allow for specifying placeholders in shell scripts that are replaced during build time. Predefine a "@PACKAGE_VERSION@" placeholder that is replaced with the current version number. Also, rename all shell scripts to ".sh.in". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-01calcurse-upgrade: Error out on unknown optionLukas Fleischer
Display an error message and bail out if an invalid command line option is passed. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-01scripts/calcurse-upgrade.sh: Fix POSIX compatibilityLukas Fleischer
* Split sed(1) one-liners into multiple lines. POSIX sed(1) doesn't allow separating functions by semicolons. * Escape a newline in the awk(1) script. POSIX awk(1) only allows non-escaped line breaks in specific contexts. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-01src/sigs.c: Define "_BSD_SOURCE" and "__BSD_VISIBLE"Lukas Fleischer
SIGWINCH isn't POSIX-compatible and causes a compile error on several platforms, such as OpenBSD: sigs.c: In function 'generic_hdlr': sigs.c:63: error: 'SIGWINCH' undeclared (first use in this function) sigs.c:63: error: (Each undeclared identifier is reported only once sigs.c:63: error: for each function it appears in.) sigs.c: In function 'sigs_init': sigs.c:97: error: 'SIGWINCH' undeclared (first use in this function) *** Error code 1 Define "_BSD_SOURCE" explicitly in this compilation unit to enforce definition of the "SIGWINCH" constant. Also, set "__BSD_VISIBLE" to 1 since FreeBSD doesn't honor "_BSD_SOURCE". Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-01po/: Translation updates from TransifexLukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-01po/: Add Portuguese (Brazil) translationLukas Fleischer
Thanks-to: Rafael Ferreira <rafael.f.f1@gmail.com> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-01po/calcurse.pot: Update message catalogLukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-06-01src/custom.c: Mark sidebar help string "no-c-format"Lukas Fleischer
This one was incorrectly detected as C format string due to the literal percent sign ("%") contained in the message. Add a comment that explicitly marks it as non-format string to avoid translation issues. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-31test/data/conf: Update with recent changesLukas Fleischer
Update the value of "appearance.calendarview" used in the default configuration file of our test suite (we now use "monthly"/"weekly" instead of integer values). Late fix for what we broke in commit 2c5235cca70bf1c5b5e92dd5b6b178ab13b695f2. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-31Make appearance.calendarview more explicit in config fileBaptiste Jonglez
Instead of using 0 or 1 as a value for `appearance.calendarview`, introduce the more explicit "monthly" and "weekly". Also update `scripts/calcurse-upgrade.sh` to reflect the change. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-31Use our array of available date input formatsBaptiste Jonglez
Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-31Provide an array of available date input formatsBaptiste Jonglez
This will allow to fix the current hardcoding of strings describing date input formats in multiple places. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-31Give a meaning to DATE_FORMATSBaptiste Jonglez
It's a bit weird to consider DATE_FORMATS as part of the date input format enum, all the more so as it does not even represent the number of available formats (since those are numbered from 1). Turn DATE_FORMATS into the number of available date input formats. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-31src/custom.c: Use status_ask_simplechoice()Baptiste Jonglez
This eases up i18n somewhat, since the various date format available are used on other places as well, and thus need to be translated only once. Note that this commit incidentally fixes a small bug introduced by 38912b36: the user was able to set the date input format to a number between 1 and 5, while there are only 4 such formats available. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-31Directly use fprintf() where applicableBaptiste Jonglez
For some reasons, we were using snprintf() to format a string into a buffer, and then displaying this buffer to stdout using fputs(). That's exactly what fprintf() is here for, so use it. Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-31src/day.c: Fix typoBaptiste Jonglez
Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org> Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-31Use mvwaddstr() instead of mvwprintw()Baptiste Jonglez
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>
2012-05-29src/config.c: Bail out on incomplete directiveLukas Fleischer
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>
2012-05-25Fix incorrect i18n usage for some stringsBaptiste Jonglez
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>
2012-05-23po/POTFILES.in: Add missing source filesLukas Fleischer
We forgot to add these when splitting existing or creating new source files. Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-23Do not localize configuration optionsLukas Fleischer
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>
2012-05-23Merge branch 'maint'Lukas Fleischer
Conflicts: src/io.c src/notify.c src/utils.c
2012-05-23Add localization to calcurse-upgradeLukas Fleischer
* 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>
2012-05-23scripts/calcurse-upgrade: Add debug outputLukas Fleischer
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
2012-05-23scripts/calcurse-upgrade: Add a "--config" optionLukas Fleischer
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>
2012-05-23scripts/calcurse-upgrade: Set "-e"Lukas Fleischer
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>
2012-05-23Document extended format specifiersLukas Fleischer
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>
2012-05-21Fix default time format for multi-day appointmentsLukas Fleischer
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>
2012-05-21Switch to Linux kernel coding styleLukas Fleischer
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>
2012-05-20src/utils.c: Disable canonical mode in press_any_key()Lukas Fleischer
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>
2012-05-19Do not localize dates in pcal exportsLukas Fleischer
* 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>
2012-05-19src/notify.c: Fix printf() misuseLukas Fleischer
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>
2012-05-17Fix data type of "general.firstdayofweek"Lukas Fleischer
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>