Age | Commit message (Collapse) | Author |
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Add documentation for "--format"* to the manual and man page. See
commits 7f0c3003ac561a25eeb3c735b32e3ee312ef58c9 etc. for details.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Displacement commands can be preceded by motion counts since commit
59e006e56d9f893506af56a4ca114fe53b537e49.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
These cases make obvious candidates for factorisation.
Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org>
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org>
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Baptiste Jonglez <baptiste--git@jonglez.org>
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
These can be generated dynamically using the HTABLE_PROTOTYPE macro.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
These are not needed outside of the corresponding compilation units.
Spotted with "-Wmissing-prototypes".
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
Add support for appending a strftime()-style format string to "%(start)"
and "%(end)".
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
putchar() expects a single character, not a string.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
Fixes a couple of warnings seen with GCC 4.7.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
Translated strings returned by gettext() are statically allocated and
shouldn't be modified.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
|
|
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>
|
|
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>
|