aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/calcurse.h1
-rw-r--r--src/interaction.c12
2 files changed, 13 insertions, 0 deletions
diff --git a/src/calcurse.h b/src/calcurse.h
index cefc850..c2f7b2b 100644
--- a/src/calcurse.h
+++ b/src/calcurse.h
@@ -723,6 +723,7 @@ void interact_day_item_pipe(void);
void interact_day_item_repeat(void);
void interact_day_item_cut_free();
void interact_day_item_cut(unsigned *, unsigned *);
+void interact_day_item_copy(unsigned *, unsigned *);
void interact_day_item_paste(unsigned *, unsigned *);
void interact_todo_add(void);
void interact_todo_delete(void);
diff --git a/src/interaction.c b/src/interaction.c
index d3f2cef..abe261d 100644
--- a/src/interaction.c
+++ b/src/interaction.c
@@ -926,6 +926,18 @@ void interact_day_item_cut(unsigned *nb_events, unsigned *nb_apoints)
apoint_hilt_set(0);
}
+/* Copy an item, so that it can be pasted somewhere else later. */
+void interact_day_item_copy(unsigned *nb_events, unsigned *nb_apoints)
+{
+ const int NBITEMS = *nb_apoints + *nb_events;
+
+ if (NBITEMS == 0)
+ return;
+
+ interact_day_item_cut_free();
+ day_item_fork(day_get_item(apoint_hilt()), &day_cut);
+}
+
/* Paste a previously cut item. */
void interact_day_item_paste(unsigned *nb_events, unsigned *nb_apoints)
{