summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsabetts <sabetts>2004-10-05 05:03:54 +0000
committersabetts <sabetts>2004-10-05 05:03:54 +0000
commit9e4afcbbc2a5aa949bd94a65f0bf931513005386 (patch)
treebdb56ea989010acbe6d031691f26ff9d0322b71c /src
parentc3e876b118cb8a0234091180b1d64602da31e563 (diff)
downloadratpoison-9e4afcbbc2a5aa949bd94a65f0bf931513005386.zip
new command, sselect
(cmd_sselect): new function. added prototype.
Diffstat (limited to 'src')
-rw-r--r--src/actions.c35
-rw-r--r--src/actions.h1
2 files changed, 36 insertions, 0 deletions
diff --git a/src/actions.c b/src/actions.c
index 5321ed3..821efa9 100644
--- a/src/actions.c
+++ b/src/actions.c
@@ -100,6 +100,7 @@ static user_command user_commands[] =
{"shrink", cmd_shrink, arg_VOID},
{"source", cmd_source, arg_STRING},
{"split", cmd_v_split, arg_STRING},
+ {"sselect", cmd_sselect, arg_STRING},
{"startup_message", cmd_startup_message, arg_STRING},
{"time", cmd_time, arg_VOID},
{"title", cmd_rename, arg_STRING},
@@ -3031,6 +3032,40 @@ cmd_prevscreen (int interactive, char *data)
}
char *
+cmd_sselect(int interactive, char *data)
+{
+ char *str;
+ char *tmp;
+ int new_screen;
+ if (data == NULL)
+ str = get_input ("Select Screen: ", trivial_completions);
+ else
+ str = xstrdup (data);
+
+ if (str == NULL)
+ return NULL;
+
+ tmp = strtok (str, " ");
+ if (tmp)
+ {
+ new_screen = string_to_window_number (tmp);
+ if (new_screen < 0)
+ {
+ message (" sselect: invalid argument ");
+ free (str);
+ return NULL;
+ }
+ if (new_screen < num_screens)
+ set_active_frame (screen_get_frame (&screens[new_screen], screens[new_screen].current_frame));
+ else
+ message (" sselect: out of range ");
+ }
+
+ free (str);
+ return NULL;
+}
+
+char *
cmd_warp (int interactive, char *data)
{
if (data == NULL && !interactive)
diff --git a/src/actions.h b/src/actions.h
index f027df1..62e5df5 100644
--- a/src/actions.h
+++ b/src/actions.h
@@ -124,6 +124,7 @@ char *cmd_newkmap (int interactive, char *data);
char *cmd_delkmap (int interactive, char *data);
char *cmd_definekey (int interactive, char *data);
char *cmd_set (int interactive, char *data);
+char *cmd_sselect(int interactive, char *data);
rp_keymap *find_keymap (char *name);
void initialize_default_keybindings (void);