diff --git a/7.3.054 b/7.3.054 new file mode 100644 index 0000000..2fd7236 --- /dev/null +++ b/7.3.054 @@ -0,0 +1,112 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.054 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.054 +Problem: Can define a user command for :Print, but it doesn't work. (Aaron + Thoma) +Solution: Let user command :Print overrule the builtin command (Christian + Brabandt) Disallow :X and :Next as a user defined command. +Files: src/ex_docmd.c + + +*** ../vim-7.3.053/src/ex_docmd.c 2010-10-13 17:50:02.000000000 +0200 +--- src/ex_docmd.c 2010-11-10 18:33:18.000000000 +0100 +*************** +*** 2871,2878 **** + } + + #ifdef FEAT_USR_CMDS +! /* Look for a user defined command as a last resort */ +! if (eap->cmdidx == CMD_SIZE && *eap->cmd >= 'A' && *eap->cmd <= 'Z') + { + /* User defined commands may contain digits. */ + while (ASCII_ISALNUM(*p)) +--- 2871,2880 ---- + } + + #ifdef FEAT_USR_CMDS +! /* Look for a user defined command as a last resort. Let ":Print" be +! * overruled by a user defined command. */ +! if ((eap->cmdidx == CMD_SIZE || eap->cmdidx == CMD_Print) +! && *eap->cmd >= 'A' && *eap->cmd <= 'Z') + { + /* User defined commands may contain digits. */ + while (ASCII_ISALNUM(*p)) +*************** +*** 5588,5593 **** +--- 5590,5596 ---- + int compl = EXPAND_NOTHING; + char_u *compl_arg = NULL; + int has_attr = (eap->arg[0] == '-'); ++ int name_len; + + p = eap->arg; + +*************** +*** 5613,5618 **** +--- 5616,5622 ---- + return; + } + end = p; ++ name_len = (int)(end - name); + + /* If there is nothing after the name, and no attributes were specified, + * we are listing commands +*************** +*** 5627,5632 **** +--- 5631,5643 ---- + EMSG(_("E183: User defined commands must start with an uppercase letter")); + return; + } ++ else if ((name_len == 1 && *name == 'X') ++ || (name_len <= 4 ++ && STRNCMP(name, "Next", name_len > 4 ? 4 : name_len) == 0)) ++ { ++ EMSG(_("E841: Reserved name, cannot be used for user defined command")); ++ return; ++ } + else + uc_add_command(name, end - name, p, argt, def, flags, compl, compl_arg, + eap->forceit); +*************** +*** 9394,9400 **** + ex_ptag(eap) + exarg_T *eap; + { +! g_do_tagpreview = p_pvh; + ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1); + } + +--- 9405,9411 ---- + ex_ptag(eap) + exarg_T *eap; + { +! g_do_tagpreview = p_pvh; /* will be reset to 0 in ex_tag_cmd() */ + ex_tag_cmd(eap, cmdnames[eap->cmdidx].cmd_name + 1); + } + +*** ../vim-7.3.053/src/version.c 2010-11-10 17:11:29.000000000 +0100 +--- src/version.c 2010-11-10 18:58:28.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 54, + /**/ + +-- +You can be stopped by the police for biking over 65 miles per hour. +You are not allowed to walk across a street on your hands. + [real standing laws in Connecticut, United States of America] + + /// 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 ///