Patch 7.4.1499
Problem: No error message when :packadd does not find anything.
Solution: Add an error message. (Hirohito Higashi)
Files: runtime/doc/repeat.txt, src/ex_cmds.h, src/ex_cmds2.c,
src/globals.h, src/testdir/test_packadd.vim
*** ../vim-7.4.1498/runtime/doc/repeat.txt 2016-03-04 22:12:07.448524475
+0100
--- runtime/doc/repeat.txt 2016-03-06 14:21:48.216846045 +0100
***************
*** 206,212 ****
about each searched file.
{not in Vi}
! *:pa* *:packadd*
:pa[ckadd][!] {name} Search for an optional plugin directory in 'packpath'
and source any plugin files found. The directory must
match:
--- 213,219 ----
about each searched file.
{not in Vi}
! *:pa* *:packadd* *E919*
:pa[ckadd][!] {name} Search for an optional plugin directory in 'packpath'
and source any plugin files found. The directory must
match:
*** ../vim-7.4.1498/src/ex_cmds.h 2016-03-04 22:12:07.448524475 +0100
--- src/ex_cmds.h 2016-03-06 14:26:28.773872754 +0100
***************
*** 1012,1018 ****
RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK,
ADDR_LINES),
EX(CMD_packadd, "packadd", ex_packadd,
! BANG|FILE1|TRLBAR|SBOXOK|CMDWIN,
ADDR_LINES),
EX(CMD_pclose, "pclose", ex_pclose,
BANG|TRLBAR,
--- 1012,1018 ----
RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK,
ADDR_LINES),
EX(CMD_packadd, "packadd", ex_packadd,
! BANG|FILE1|NEEDARG|TRLBAR|SBOXOK|CMDWIN,
ADDR_LINES),
EX(CMD_pclose, "pclose", ex_pclose,
BANG|TRLBAR,
*** ../vim-7.4.1498/src/ex_cmds2.c 2016-03-04 22:12:07.448524475 +0100
--- src/ex_cmds2.c 2016-03-06 14:40:11.961179403 +0100
***************
*** 2918,2925 ****
/*
* Source the file "name" from all directories in 'runtimepath'.
* "name" can contain wildcards.
! * When "flags" has DIP_ALL: source all files, otherwise only the first one.
! * When "flags" has DIP_DIR: find directories instead of files.
*
* return FAIL when no file could be sourced, OK otherwise.
*/
--- 2918,2924 ----
/*
* Source the file "name" from all directories in 'runtimepath'.
* "name" can contain wildcards.
! * When "all" is TRUE: source all files, otherwise only the first one.
*
* return FAIL when no file could be sourced, OK otherwise.
*/
***************
*** 2931,2937 ****
--- 2930,2947 ----
#define DIP_ALL 1 /* all matches, not just the first one */
#define DIP_DIR 2 /* find directories instead of files. */
+ #define DIP_ERR 4 /* give an error message when none found. */
+ /*
+ * Find the file "name" in all directories in "path" and invoke
+ * "callback(fname, cookie)".
+ * "name" can contain wildcards.
+ * When "flags" has DIP_ALL: source all files, otherwise only the first one.
+ * When "flags" has DIP_DIR: find directories instead of files.
+ * When "flags" has DIP_ERR: give an error message if there is no match.
+ *
+ * return FAIL when no file could be sourced, OK otherwise.
+ */
static int
do_in_path(
char_u *path,
***************
*** 3022,3032 ****
}
vim_free(buf);
vim_free(rtp_copy);
! if (p_verbose > 0 && !did_one && name != NULL)
{
! verbose_enter();
! smsg((char_u *)_("not found in 'runtimepath': \"%s\""), name);
! verbose_leave();
}
#ifdef AMIGA
--- 3032,3049 ----
}
vim_free(buf);
vim_free(rtp_copy);
! if (!did_one && name != NULL)
{
! char *basepath = path == p_rtp ? "runtimepath" : "packpath";
!
! if (flags & DIP_ERR)
! EMSG3(_(e_dirnotf), basepath, name);
! else if (p_verbose > 0)
! {
! verbose_enter();
! smsg((char_u *)_("not found in '%s': \"%s\""), basepath, name);
! verbose_leave();
! }
}
#ifdef AMIGA
***************
*** 3178,3185 ****
void
source_packages()
{
! do_in_path(p_pp, (char_u *)"pack/*/ever/*",
! DIP_ALL + DIP_DIR, add_pack_plugin, p_pp);
}
/*
--- 3195,3202 ----
void
source_packages()
{
! do_in_path(p_pp, (char_u *)"pack/*/ever/*", DIP_ALL + DIP_DIR,
! add_pack_plugin, p_pp);
}
/*
***************
*** 3197,3204 ****
if (pat == NULL)
return;
vim_snprintf(pat, len, plugpat, eap->arg);
! do_in_path(p_pp, (char_u *)pat, DIP_ALL + DIP_DIR, add_pack_plugin,
! eap->forceit ? NULL : p_pp);
vim_free(pat);
}
--- 3214,3221 ----
if (pat == NULL)
return;
vim_snprintf(pat, len, plugpat, eap->arg);
! do_in_path(p_pp, (char_u *)pat, DIP_ALL + DIP_DIR + DIP_ERR,
! add_pack_plugin, eap->forceit ? NULL : p_pp);
vim_free(pat);
}
*** ../vim-7.4.1498/src/globals.h 2016-02-23 14:52:31.881232212 +0100
--- src/globals.h 2016-03-06 14:21:48.220846002 +0100
***************
*** 1577,1582 ****
--- 1577,1583 ----
#ifndef FEAT_CLIPBOARD
EXTERN char_u e_invalidreg[] INIT(= N_("E850: Invalid register name"));
#endif
+ EXTERN char_u e_dirnotf[] INIT(= N_("E919: Directory not found in '%s':
\"%s\""));
#ifdef MACOS_X_UNIX
EXTERN short disallow_gui INIT(= FALSE);
*** ../vim-7.4.1498/src/testdir/test_packadd.vim 2016-03-05
17:41:43.113188948 +0100
--- src/testdir/test_packadd.vim 2016-03-06 14:31:11.190888469 +0100
***************
*** 31,36 ****
--- 31,40 ----
call assert_equal(17, g:ftdetect_works)
call assert_true(len(&rtp) > len(rtp))
call assert_true(&rtp =~ 'testdir/Xdir/pack/mine/opt/mytest\($\|,\)')
+
+ " Check exception
+ call assert_fails("packadd directorynotfound", 'E919:')
+ call assert_fails("packadd", 'E471:')
endfunc
func Test_packadd_noload()
*** ../vim-7.4.1498/src/version.c 2016-03-05 23:22:57.781396509 +0100
--- src/version.c 2016-03-06 14:23:02.000063830 +0100
***************
*** 745,746 ****
--- 745,748 ----
{ /* Add new patch number below this line */
+ /**/
+ 1499,
/**/
--
An alien life briefly visits earth. Just before departing it leaves a
message in the dust on the back of a white van. The world is shocked
and wants to know what it means. After months of studies the worlds
best linguistic scientists are able to decipher the message: "Wash me!".
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.