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

Diff for /src/usr.bin/tmux/cmd-unbind-key.c between version 1.20 and 1.21

version 1.20, 2014/10/20 22:29:25 version 1.21, 2015/04/20 15:34:56
Line 31 
Line 31 
   
 const struct cmd_entry cmd_unbind_key_entry = {  const struct cmd_entry cmd_unbind_key_entry = {
         "unbind-key", "unbind",          "unbind-key", "unbind",
         "acnt:", 0, 1,          "acnt:T:", 0, 1,
         "[-acn] [-t mode-table] key",          "[-acn] [-t mode-table] [-T key-table] key",
         0,          0,
         cmd_unbind_key_exec          cmd_unbind_key_exec
 };  };
Line 40 
Line 40 
 enum cmd_retval  enum cmd_retval
 cmd_unbind_key_exec(struct cmd *self, struct cmd_q *cmdq)  cmd_unbind_key_exec(struct cmd *self, struct cmd_q *cmdq)
 {  {
         struct args             *args = self->args;          struct args     *args = self->args;
         struct key_binding      *bd;          int              key;
         int                      key;          const char      *tablename;
   
         if (!args_has(args, 'a')) {          if (!args_has(args, 'a')) {
                 if (args->argc != 1) {                  if (args->argc != 1) {
Line 66 
Line 66 
                 return (cmd_unbind_key_mode_table(self, cmdq, key));                  return (cmd_unbind_key_mode_table(self, cmdq, key));
   
         if (key == KEYC_NONE) {          if (key == KEYC_NONE) {
                 while (!RB_EMPTY(&key_bindings)) {                  tablename = args_get(args, 'T');
                         bd = RB_ROOT(&key_bindings);                  if (tablename == NULL) {
                         key_bindings_remove(bd->key);                          key_bindings_remove_table("root");
                           key_bindings_remove_table("prefix");
                           return (CMD_RETURN_NORMAL);
                 }                  }
                   if (key_bindings_get_table(tablename, 0) == NULL) {
                           cmdq_error(cmdq, "table %s doesn't exist", tablename);
                           return (CMD_RETURN_ERROR);
                   }
                   key_bindings_remove_table(tablename);
                 return (CMD_RETURN_NORMAL);                  return (CMD_RETURN_NORMAL);
         }          }
   
         if (!args_has(args, 'n'))          if (args_has(args, 'T')) {
                 key |= KEYC_PREFIX;                  tablename = args_get(args, 'T');
         key_bindings_remove(key);                  if (key_bindings_get_table(tablename, 0) == NULL) {
                           cmdq_error(cmdq, "table %s doesn't exist", tablename);
                           return (CMD_RETURN_ERROR);
                   }
           } else if (args_has(args, 'n'))
                   tablename = "root";
           else
                   tablename = "prefix";
           key_bindings_remove(tablename, key);
         return (CMD_RETURN_NORMAL);          return (CMD_RETURN_NORMAL);
 }  }
   

Legend:
Removed from v.1.20  
changed lines
  Added in v.1.21