[BACK]Return to key-bindings.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tmux

Diff for /src/usr.bin/tmux/key-bindings.c between version 1.41 and 1.42

version 1.41, 2014/05/14 06:21:19 version 1.42, 2014/10/20 22:29:25
Line 84 
Line 84 
 void  void
 key_bindings_init(void)  key_bindings_init(void)
 {  {
         static const struct {          static const char* defaults[] = {
                 int                      key;                  "bind C-b send-prefix",
                 int                      can_repeat;                  "bind C-o rotate-window",
                 const struct cmd_entry  *entry;                  "bind C-z suspend-client",
         } table[] = {                  "bind Space next-layout",
                 { ' ',                    0, &cmd_next_layout_entry },                  "bind ! break-pane",
                 { '!',                    0, &cmd_break_pane_entry },                  "bind '\"' split-window",
                 { '"',                    0, &cmd_split_window_entry },                  "bind '#' list-buffers",
                 { '#',                    0, &cmd_list_buffers_entry },                  "bind '$' command-prompt -I'#S' \"rename-session '%%'\"",
                 { '$',                    0, &cmd_command_prompt_entry },                  "bind % split-window -h",
                 { '%',                    0, &cmd_split_window_entry },                  "bind & confirm-before -p\"kill-window #W? (y/n)\" kill-window",
                 { '&',                    0, &cmd_confirm_before_entry },                  "bind \"'\" command-prompt -pindex \"select-window -t ':%%'\"",
                 { '(',                    0, &cmd_switch_client_entry },                  "bind ( switch-client -p",
                 { ')',                    0, &cmd_switch_client_entry },                  "bind ) switch-client -n",
                 { ',',                    0, &cmd_command_prompt_entry },                  "bind , command-prompt -I'#W' \"rename-window '%%'\"",
                 { '-',                    0, &cmd_delete_buffer_entry },                  "bind - delete-buffer",
                 { '.',                    0, &cmd_command_prompt_entry },                  "bind . command-prompt \"move-window -t '%%'\"",
                 { '0',                    0, &cmd_select_window_entry },                  "bind 0 select-window -t:0",
                 { '1',                    0, &cmd_select_window_entry },                  "bind 1 select-window -t:1",
                 { '2',                    0, &cmd_select_window_entry },                  "bind 2 select-window -t:2",
                 { '3',                    0, &cmd_select_window_entry },                  "bind 3 select-window -t:3",
                 { '4',                    0, &cmd_select_window_entry },                  "bind 4 select-window -t:4",
                 { '5',                    0, &cmd_select_window_entry },                  "bind 5 select-window -t:5",
                 { '6',                    0, &cmd_select_window_entry },                  "bind 6 select-window -t:6",
                 { '7',                    0, &cmd_select_window_entry },                  "bind 7 select-window -t:7",
                 { '8',                    0, &cmd_select_window_entry },                  "bind 8 select-window -t:8",
                 { '9',                    0, &cmd_select_window_entry },                  "bind 9 select-window -t:9",
                 { ':',                    0, &cmd_command_prompt_entry },                  "bind : command-prompt",
                 { ';',                    0, &cmd_last_pane_entry },                  "bind \\; last-pane",
                 { '=',                    0, &cmd_choose_buffer_entry },                  "bind = choose-buffer",
                 { '?',                    0, &cmd_list_keys_entry },                  "bind ? list-keys",
                 { 'D',                    0, &cmd_choose_client_entry },                  "bind D choose-client",
                 { 'L',                    0, &cmd_switch_client_entry },                  "bind L switch-client -l",
                 { '[',                    0, &cmd_copy_mode_entry },                  "bind [ copy-mode",
                 { '\'',                   0, &cmd_command_prompt_entry },                  "bind ] paste-buffer",
                 { '\002', /* C-b */       0, &cmd_send_prefix_entry },                  "bind c new-window",
                 { '\017', /* C-o */       0, &cmd_rotate_window_entry },                  "bind d detach-client",
                 { '\032', /* C-z */       0, &cmd_suspend_client_entry },                  "bind f command-prompt \"find-window '%%'\"",
                 { ']',                    0, &cmd_paste_buffer_entry },                  "bind i display-message",
                 { 'c',                    0, &cmd_new_window_entry },                  "bind l last-window",
                 { 'd',                    0, &cmd_detach_client_entry },                  "bind n next-window",
                 { 'f',                    0, &cmd_command_prompt_entry },                  "bind o select-pane -t:.+",
                 { 'i',                    0, &cmd_display_message_entry },                  "bind p previous-window",
                 { 'l',                    0, &cmd_last_window_entry },                  "bind q display-panes",
                 { 'n',                    0, &cmd_next_window_entry },                  "bind r refresh-client",
                 { 'o',                    0, &cmd_select_pane_entry },                  "bind s choose-tree",
                 { 'p',                    0, &cmd_previous_window_entry },                  "bind t clock-mode",
                 { 'q',                    0, &cmd_display_panes_entry },                  "bind w choose-window",
                 { 'r',                    0, &cmd_refresh_client_entry },                  "bind x confirm-before -p\"kill-pane #P? (y/n)\" kill-pane",
                 { 's',                    0, &cmd_choose_tree_entry },                  "bind z resize-pane -Z",
                 { 't',                    0, &cmd_clock_mode_entry },                  "bind { swap-pane -U",
                 { 'w',                    0, &cmd_choose_window_entry },                  "bind } swap-pane -D",
                 { 'x',                    0, &cmd_confirm_before_entry },                  "bind '~' show-messages",
                 { 'z',                    0, &cmd_resize_pane_entry },                  "bind PPage copy-mode -u",
                 { '{',                    0, &cmd_swap_pane_entry },                  "bind -r Up select-pane -U",
                 { '}',                    0, &cmd_swap_pane_entry },                  "bind -r Down select-pane -D",
                 { '~',                    0, &cmd_show_messages_entry },                  "bind -r Left select-pane -L",
                 { '1' | KEYC_ESCAPE,      0, &cmd_select_layout_entry },                  "bind -r Right select-pane -R",
                 { '2' | KEYC_ESCAPE,      0, &cmd_select_layout_entry },                  "bind M-1 select-layout even-horizontal",
                 { '3' | KEYC_ESCAPE,      0, &cmd_select_layout_entry },                  "bind M-2 select-layout even-vertical",
                 { '4' | KEYC_ESCAPE,      0, &cmd_select_layout_entry },                  "bind M-3 select-layout main-horizontal",
                 { '5' | KEYC_ESCAPE,      0, &cmd_select_layout_entry },                  "bind M-4 select-layout main-vertical",
                 { KEYC_PPAGE,             0, &cmd_copy_mode_entry },                  "bind M-5 select-layout tiled",
                 { 'n' | KEYC_ESCAPE,      0, &cmd_next_window_entry },                  "bind M-n next-window -a",
                 { 'o' | KEYC_ESCAPE,      0, &cmd_rotate_window_entry },                  "bind M-o rotate-window -D",
                 { 'p' | KEYC_ESCAPE,      0, &cmd_previous_window_entry },                  "bind M-p previous-window -a",
                 { KEYC_UP,                1, &cmd_select_pane_entry },                  "bind -r M-Up resize-pane -U 5",
                 { KEYC_DOWN,              1, &cmd_select_pane_entry },                  "bind -r M-Down resize-pane -D 5",
                 { KEYC_LEFT,              1, &cmd_select_pane_entry },                  "bind -r M-Left resize-pane -L 5",
                 { KEYC_RIGHT,             1, &cmd_select_pane_entry },                  "bind -r M-Right resize-pane -R 5",
                 { KEYC_UP | KEYC_ESCAPE,  1, &cmd_resize_pane_entry },                  "bind -r C-Up resize-pane -U",
                 { KEYC_DOWN | KEYC_ESCAPE,  1, &cmd_resize_pane_entry },                  "bind -r C-Down resize-pane -D",
                 { KEYC_LEFT | KEYC_ESCAPE,  1, &cmd_resize_pane_entry },                  "bind -r C-Left resize-pane -L",
                 { KEYC_RIGHT | KEYC_ESCAPE, 1, &cmd_resize_pane_entry },                  "bind -r C-Right resize-pane -R",
                 { KEYC_UP | KEYC_CTRL,    1, &cmd_resize_pane_entry },  
                 { KEYC_DOWN | KEYC_CTRL,  1, &cmd_resize_pane_entry },  
                 { KEYC_LEFT | KEYC_CTRL,  1, &cmd_resize_pane_entry },  
                 { KEYC_RIGHT | KEYC_CTRL, 1, &cmd_resize_pane_entry },  
         };          };
         u_int            i;          u_int            i;
         struct cmd      *cmd;  
         struct cmd_list *cmdlist;          struct cmd_list *cmdlist;
           char*            cause;
           int              error;
           struct cmd_q    *cmdq;
   
         RB_INIT(&key_bindings);          RB_INIT(&key_bindings);
   
         for (i = 0; i < nitems(table); i++) {          cmdq = cmdq_new (NULL);
                 cmdlist = xcalloc(1, sizeof *cmdlist);          for (i = 0; i < nitems(defaults); i++) {
                 cmdlist->references = 1;                  error = cmd_string_parse(defaults[i], &cmdlist,
                 TAILQ_INIT(&cmdlist->list);                      "<default-keys>", i, &cause);
                   if (error != 0)
                 cmd = xcalloc(1, sizeof *cmd);                          fatalx("bad default key");
                 cmd->entry = table[i].entry;                  cmdq_run (cmdq, cmdlist);
                 if (cmd->entry->key_binding != NULL)                  cmd_list_free (cmdlist);
                         cmd->entry->key_binding(cmd, table[i].key);  
                 else  
                         cmd->args = args_create(0);  
                 TAILQ_INSERT_HEAD(&cmdlist->list, cmd, qentry);  
   
                 key_bindings_add(  
                     table[i].key | KEYC_PREFIX, table[i].can_repeat, cmdlist);  
         }          }
           cmdq_free (cmdq);
 }  }
   
 void  void

Legend:
Removed from v.1.41  
changed lines
  Added in v.1.42