diff options
author | Lukas Fleischer <calcurse@cryptocrack.de> | 2012-07-07 00:53:09 +0200 |
---|---|---|
committer | Lukas Fleischer <calcurse@cryptocrack.de> | 2012-07-07 21:27:01 +0200 |
commit | 69345edd77b3ff98a99b36de8063f9e5febad3eb (patch) | |
tree | bd2d3fc7d4db2a597d209a37f1d1500a5efbe45c /src/calcurse.c | |
parent | dd059ca8129a97dfde79101bdcf5d3f7bcec0a90 (diff) | |
download | calcurse-69345edd77b3ff98a99b36de8063f9e5febad3eb.zip |
Add support for copy/paste registers
This adds support for vim-style copy/paste registers which allows
cutting and copying multiple items without having to overwrite the
copy/paste buffer. Registers can be specified using the quote key ('"').
To access a register, type '"x' before a command where "x" is the name
of a register. If you want to copy the currently selected item into
register 1, type '"1c'.
Valid registers are 0-9, a-z, "-" and "_". Note that the latter is the
so-called black hole register, which works similar to the black hole
register in vim.
The register prefix key is currently hardcoded and cannot be configured.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
Diffstat (limited to 'src/calcurse.c')
-rw-r--r-- | src/calcurse.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/calcurse.c b/src/calcurse.c index 8a5d261..770e967 100644 --- a/src/calcurse.c +++ b/src/calcurse.c @@ -64,7 +64,7 @@ int main(int argc, char **argv) { struct day_items_nb inday; int no_data_file = 1; - int count; + int count, reg; #if ENABLE_NLS setlocale(LC_ALL, ""); @@ -173,7 +173,7 @@ int main(int argc, char **argv) wins_reset(); } - key = keys_getch(win[STA].p, &count); + key = keys_getch(win[STA].p, &count, ®); switch (key) { case KEY_GENERIC_REDRAW: resize = 1; @@ -286,7 +286,7 @@ int main(int argc, char **argv) case KEY_GENERIC_CUT: if (wins_slctd() == APP && apoint_hilt() != 0) { - interact_day_item_cut(&inday.nb_events, &inday.nb_apoints); + interact_day_item_cut(&inday.nb_events, &inday.nb_apoints, reg); inday = do_storage(0); wins_update(FLAG_CAL | FLAG_APP); } @@ -294,7 +294,7 @@ int main(int argc, char **argv) case KEY_GENERIC_COPY: if (wins_slctd() == APP && apoint_hilt() != 0) { - interact_day_item_copy(&inday.nb_events, &inday.nb_apoints); + interact_day_item_copy(&inday.nb_events, &inday.nb_apoints, reg); inday = do_storage(0); wins_update(FLAG_CAL | FLAG_APP); } @@ -302,7 +302,7 @@ int main(int argc, char **argv) case KEY_GENERIC_PASTE: if (wins_slctd() == APP) { - interact_day_item_paste(&inday.nb_events, &inday.nb_apoints); + interact_day_item_paste(&inday.nb_events, &inday.nb_apoints, reg); inday = do_storage(0); wins_update(FLAG_CAL | FLAG_APP); } |