diff --git a/7.2.353 b/7.2.353 new file mode 100644 index 0000000..06f9f17 --- /dev/null +++ b/7.2.353 @@ -0,0 +1,173 @@ +To: vim-dev@vim.org +Subject: Patch 7.2.353 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.2.353 +Problem: No command line completion for ":profile". +Solution: Complete the subcommand and file name. +Files: src/ex_docmd.c, src/ex_cmds2.c, src/ex_getln.c, + src/proto/ex_cmds2.pro, src/vim.h + + +*** ../vim-7.2.352/src/ex_docmd.c 2009-11-03 12:38:50.000000000 +0100 +--- src/ex_docmd.c 2010-02-03 14:40:14.000000000 +0100 +*************** +*** 3804,3809 **** +--- 3804,3814 ---- + xp->xp_context = EXPAND_NOTHING; + break; + #endif ++ #if defined(FEAT_PROFILE) ++ case CMD_profile: ++ set_context_in_profile_cmd(xp, arg); ++ break; ++ #endif + + #endif /* FEAT_CMDL_COMPL */ + +*** ../vim-7.2.352/src/ex_cmds2.c 2010-01-20 21:41:40.000000000 +0100 +--- src/ex_cmds2.c 2010-02-03 14:50:08.000000000 +0100 +*************** +*** 1115,1120 **** +--- 1115,1193 ---- + } + } + ++ /* Command line expansion for :profile. */ ++ static enum ++ { ++ PEXP_SUBCMD, /* expand :profile sub-commands */ ++ PEXP_FUNC, /* expand :profile func {funcname} */ ++ } pexpand_what; ++ ++ static char *pexpand_cmds[] = { ++ "start", ++ #define PROFCMD_START 0 ++ "pause", ++ #define PROFCMD_PAUSE 1 ++ "continue", ++ #define PROFCMD_CONTINUE 2 ++ "func", ++ #define PROFCMD_FUNC 3 ++ "file", ++ #define PROFCMD_FILE 4 ++ NULL ++ #define PROFCMD_LAST 5 ++ }; ++ ++ /* ++ * Function given to ExpandGeneric() to obtain the profile command ++ * specific expansion. ++ */ ++ char_u * ++ get_profile_name(xp, idx) ++ expand_T *xp UNUSED; ++ int idx; ++ { ++ switch (pexpand_what) ++ { ++ case PEXP_SUBCMD: ++ return (char_u *)pexpand_cmds[idx]; ++ /* case PEXP_FUNC: TODO */ ++ default: ++ return NULL; ++ } ++ } ++ ++ /* ++ * Handle command line completion for :profile command. ++ */ ++ void ++ set_context_in_profile_cmd(xp, arg) ++ expand_T *xp; ++ char_u *arg; ++ { ++ char_u *end_subcmd; ++ int len; ++ ++ /* Default: expand subcommands. */ ++ xp->xp_context = EXPAND_PROFILE; ++ pexpand_what = PEXP_SUBCMD; ++ xp->xp_pattern = arg; ++ ++ end_subcmd = skiptowhite(arg); ++ if (*end_subcmd == NUL) ++ return; ++ ++ len = end_subcmd - arg; ++ if (len == 5 && STRNCMP(arg, "start", 5) == 0) ++ { ++ xp->xp_context = EXPAND_FILES; ++ xp->xp_pattern = skipwhite(end_subcmd); ++ return; ++ } ++ ++ /* TODO: expand function names after "func" */ ++ xp->xp_context = EXPAND_NOTHING; ++ } ++ + /* + * Dump the profiling info. + */ +*** ../vim-7.2.352/src/ex_getln.c 2010-01-19 14:59:14.000000000 +0100 +--- src/ex_getln.c 2010-02-03 14:38:43.000000000 +0100 +*************** +*** 4522,4527 **** +--- 4522,4530 ---- + #ifdef FEAT_SIGNS + {EXPAND_SIGN, get_sign_name, TRUE}, + #endif ++ #ifdef FEAT_PROFILE ++ {EXPAND_PROFILE, get_profile_name, TRUE}, ++ #endif + #if (defined(HAVE_LOCALE_H) || defined(X_LOCALE)) \ + && (defined(FEAT_GETTEXT) || defined(FEAT_MBYTE)) + {EXPAND_LANGUAGE, get_lang_arg, TRUE}, +*** ../vim-7.2.352/src/proto/ex_cmds2.pro 2008-01-06 20:07:25.000000000 +0100 +--- src/proto/ex_cmds2.pro 2010-02-03 14:43:12.000000000 +0100 +*************** +*** 24,29 **** +--- 24,31 ---- + int profile_equal __ARGS((proftime_T *tm1, proftime_T *tm2)); + int profile_cmp __ARGS((proftime_T *tm1, proftime_T *tm2)); + void ex_profile __ARGS((exarg_T *eap)); ++ char_u *get_profile_name __ARGS((expand_T *xp, int idx)); ++ void set_context_in_profile_cmd __ARGS((expand_T *xp, char_u *arg)); + void profile_dump __ARGS((void)); + void script_prof_save __ARGS((proftime_T *tm)); + void script_prof_restore __ARGS((proftime_T *tm)); +*** ../vim-7.2.352/src/vim.h 2009-06-16 11:08:13.000000000 +0200 +--- src/vim.h 2010-02-03 14:40:42.000000000 +0100 +*************** +*** 718,723 **** +--- 718,724 ---- + #define EXPAND_SHELLCMD 32 + #define EXPAND_CSCOPE 33 + #define EXPAND_SIGN 34 ++ #define EXPAND_PROFILE 35 + + /* Values for exmode_active (0 is no exmode) */ + #define EXMODE_NORMAL 1 +*** ../vim-7.2.352/src/version.c 2010-02-03 12:23:16.000000000 +0100 +--- src/version.c 2010-02-03 15:07:26.000000000 +0100 +*************** +*** 683,684 **** +--- 683,686 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 353, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +188. You purchase a laptop so you can surf while sitting on the can. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org ///