Mercurial > vim
diff src/ex_docmd.c @ 2097:8f72e3512b43 v7.2.381
updated for version 7.2.381
Problem: No completion for :behave.
Solution: Add :behave completion. Minor related fixes. (Dominique Pelle)
author | Bram Moolenaar <bram@zimbu.org> |
---|---|
date | Tue, 02 Mar 2010 15:56:05 +0100 |
parents | 98a2a6e6b966 |
children | c60d231453cf |
line wrap: on
line diff
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -26,10 +26,12 @@ typedef struct ucmd long_u uc_argt; /* The argument type */ char_u *uc_rep; /* The command's replacement string */ long uc_def; /* The default value for a range/count */ + int uc_compl; /* completion type */ +# ifdef FEAT_EVAL scid_T uc_scriptID; /* SID where the command was defined */ - int uc_compl; /* completion type */ -# if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL) +# ifdef FEAT_CMDL_COMPL char_u *uc_compl_arg; /* completion argument if any */ +# endif # endif } ucmd_T; @@ -3156,17 +3158,15 @@ set_one_cmd_context(xp, buff) return NULL; } for (ea.cmdidx = (cmdidx_T)0; (int)ea.cmdidx < (int)CMD_SIZE; - ea.cmdidx = (cmdidx_T)((int)ea.cmdidx + 1)) - if (STRNCMP(cmdnames[(int)ea.cmdidx].cmd_name, cmd, (size_t)len) == 0) + ea.cmdidx = (cmdidx_T)((int)ea.cmdidx + 1)) + if (STRNCMP(cmdnames[(int)ea.cmdidx].cmd_name, cmd, + (size_t)len) == 0) break; #ifdef FEAT_USR_CMDS if (cmd[0] >= 'A' && cmd[0] <= 'Z') - { while (ASCII_ISALNUM(*p) || *p == '*') /* Allow * wild card */ ++p; - len = (int)(p - cmd); - } #endif } @@ -3809,6 +3809,9 @@ set_one_cmd_context(xp, buff) set_context_in_profile_cmd(xp, arg); break; #endif + case CMD_behave: + xp->xp_context = EXPAND_BEHAVE; + break; #endif /* FEAT_CMDL_COMPL */ @@ -10847,6 +10850,24 @@ ex_behave(eap) EMSG2(_(e_invarg2), eap->arg); } +#if defined(FEAT_CMDL_COMPL) || defined(PROTO) +/* + * Function given to ExpandGeneric() to obtain the possible arguments of the + * ":behave {mswin,xterm}" command. + */ + char_u * +get_behave_arg(xp, idx) + expand_T *xp UNUSED; + int idx; +{ + if (idx == 0) + return (char_u *)"mswin"; + if (idx == 1) + return (char_u *)"xterm"; + return NULL; +} +#endif + #ifdef FEAT_AUTOCMD static int filetype_detect = FALSE; static int filetype_plugin = FALSE;