diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/actions.c | 27 | ||||
-rw-r--r-- | src/actions.h | 1 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/actions.c b/src/actions.c index acda13e..e9b6704 100644 --- a/src/actions.c +++ b/src/actions.c @@ -134,6 +134,7 @@ static user_command user_commands[] = {"undo", cmd_undo, arg_STRING}, {"putsel", cmd_putsel, arg_STRING}, {"getsel", cmd_getsel, arg_STRING}, + {"appendsel", cmd_appendsel, arg_STRING}, /*@end (tag required for genrpbindings) */ /* Commands to help debug ratpoison. */ @@ -4992,3 +4993,29 @@ cmd_getsel (int interactive, char *data) { return get_selection(); } + +char * +cmd_appendsel (int interactive, char *data) +{ + char *sel; + + if (data == NULL) + { + message ("appendsel: One argument required"); + return NULL; + } + + sel = get_selection(); + if (sel) + { + char *new_sel; + new_sel = xsprintf ("%s%s", sel, data); + free (sel); + set_selection (new_sel); + free (new_sel); + } + else + set_selection (data); + + return NULL; +} diff --git a/src/actions.h b/src/actions.h index e046aa9..73ce89b 100644 --- a/src/actions.h +++ b/src/actions.h @@ -143,6 +143,7 @@ char *cmd_sfdump (int interactively, char *data); char *cmd_undo (int interactive, char *data); char *cmd_putsel (int interactive, char *data); char *cmd_getsel (int interactive, char *data); +char *cmd_appendsel (int interactive, char *data); void pop_frame_undo (rp_frame_undo *u); rp_keymap *find_keymap (char *name); |