diff options
author | sabetts <sabetts> | 2001-09-05 07:48:49 +0000 |
---|---|---|
committer | sabetts <sabetts> | 2001-09-05 07:48:49 +0000 |
commit | 3c255ea736cdb1e3d0bf77f1160b6d495cb090db (patch) | |
tree | 1d797050a54eaa6c73ab77e77e0e4f39ce33573c /src | |
parent | f58ed0a036775c9090df75f3db7afc59058b4cff (diff) | |
download | ratpoison-3c255ea736cdb1e3d0bf77f1160b6d495cb090db.zip |
* src/messages.h (MESSAGE_WELCOME): The help keystroke is not
hardcoded.
* src/main.c (show_welcome_message): new function
(main): call show_welcome_message to show the welcome message.
* src/actions.h (find_keybinding_by_action): new prototype
* src/actions.c (key_actions): change to a static variable.
(key_actions_last): likewise
(key_actions_table_size): likewise
(find_keybinding_by_action): new function
Diffstat (limited to 'src')
-rw-r--r-- | src/actions.c | 22 | ||||
-rw-r--r-- | src/actions.h | 1 | ||||
-rw-r--r-- | src/main.c | 33 | ||||
-rw-r--r-- | src/messages.h | 2 |
4 files changed, 52 insertions, 6 deletions
diff --git a/src/actions.c b/src/actions.c index c68ae5e..74196d5 100644 --- a/src/actions.c +++ b/src/actions.c @@ -26,9 +26,25 @@ #include "ratpoison.h" -rp_action *key_actions; -int key_actions_last; -int key_actions_table_size; +static rp_action *key_actions; +static int key_actions_last; +static int key_actions_table_size; + +rp_action* +find_keybinding_by_action (char *action) +{ + int i; + + for (i=0; i<key_actions_last; i++) + { + if (!strcmp (key_actions[i].data, action)) + { + return &key_actions[i]; + } + } + + return NULL; +} rp_action* find_keybinding (KeySym keysym, int state) diff --git a/src/actions.h b/src/actions.h index 5410d5a..4c0f777 100644 --- a/src/actions.h +++ b/src/actions.h @@ -80,5 +80,6 @@ char * cmd_unbind (int interactive, void *data); void initialize_default_keybindings (void); rp_action* find_keybinding (KeySym keysym, int state); +rp_action* find_keybinding_by_action (char *action); #endif /* ! _RATPOISON_ACTIONS_H */ @@ -308,6 +308,35 @@ read_startup_files () } } +static void +show_welcome_message () +{ + rp_action *help_action; + char *prefix, *help; + + prefix = keysym_to_string (prefix_key.sym, prefix_key.state); + + /* Find the help key binding. */ + help_action = find_keybinding_by_action ("help"); + if (help_action) + help = keysym_to_string (help_action->key, help_action->state); + else + help = NULL; + + + if (help) + { + marked_message_printf (0, 0, MESSAGE_WELCOME, prefix, help); + free (help); + } + else + { + marked_message_printf (0, 0, MESSAGE_WELCOME, prefix, ":help"); + } + + free (prefix); +} + int main (int argc, char *argv[]) { @@ -429,8 +458,8 @@ main (int argc, char *argv[]) read_startup_files (); - /* Indicate to the user that ratpoison has booted */ - message (MESSAGE_WELCOME); + /* Indicate to the user that ratpoison has booted. */ + show_welcome_message(); handle_events (); diff --git a/src/messages.h b/src/messages.h index 4fea3b2..1d8a94b 100644 --- a/src/messages.h +++ b/src/messages.h @@ -42,6 +42,6 @@ #define MESSAGE_PROMPT_SWITCH_WM " Switch to wm: " #define MESSAGE_PROMPT_XTERM_COMMAND MESSAGE_PROMPT_SHELL_COMMAND TERM_PROG " -e " -#define MESSAGE_WELCOME " Welcome to ratpoison! Hit C-t ? for help. " +#define MESSAGE_WELCOME " Welcome to ratpoison! Hit `%s %s' for help. " #endif /* ! _RATPOISON_MESSAGES_H */ |