To: vim-dev@vim.org
Subject: Patch 7.0.039
Fcc: outbox
From: Bram Moolenaar <Bram@moolenaar.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
------------
Patch 7.0.039
Problem: Calling inputdialog() with a third argument in the console doesn't
work.
Solution: Make a separate function for input() and inputdialog(). (Yegappan
Lakshmanan)
Files: src/eval.c
*** ../vim-7.0.038/src/eval.c Wed Jul 12 21:48:56 2006
--- src/eval.c Mon Jul 10 23:03:13 2006
***************
*** 11321,11334 ****
static int inputsecret_flag = 0;
/*
! * "input()" function
! * Also handles inputsecret() when inputsecret is set.
*/
static void
! f_input(argvars, rettv)
typval_T *argvars;
typval_T *rettv;
{
char_u *prompt = get_tv_string_chk(&argvars[0]);
char_u *p = NULL;
--- 11321,11339 ----
static int inputsecret_flag = 0;
+ static void get_user_input __ARGS((typval_T *argvars, typval_T *rettv, int inputdialog));
+
/*
! * This function is used by f_input() and f_inputdialog() functions. The third
! * argument to f_input() specifies the type of completion to use at the
! * prompt. The third argument to f_inputdialog() specifies the value to return
! * when the user cancels the prompt.
*/
static void
! get_user_input(argvars, rettv, inputdialog)
typval_T *argvars;
typval_T *rettv;
+ int inputdialog;
{
char_u *prompt = get_tv_string_chk(&argvars[0]);
char_u *p = NULL;
***************
*** 11378,11384 ****
if (defstr != NULL)
stuffReadbuffSpec(defstr);
! if (argvars[2].v_type != VAR_UNKNOWN)
{
char_u *xp_name;
int xp_namelen;
--- 11383,11389 ----
if (defstr != NULL)
stuffReadbuffSpec(defstr);
! if (!inputdialog && argvars[2].v_type != VAR_UNKNOWN)
{
char_u *xp_name;
int xp_namelen;
***************
*** 11413,11418 ****
--- 11418,11435 ----
}
/*
+ * "input()" function
+ * Also handles inputsecret() when inputsecret is set.
+ */
+ static void
+ f_input(argvars, rettv)
+ typval_T *argvars;
+ typval_T *rettv;
+ {
+ get_user_input(argvars, rettv, FALSE);
+ }
+
+ /*
* "inputdialog()" function
*/
static void
***************
*** 11452,11458 ****
}
else
#endif
! f_input(argvars, rettv);
}
/*
--- 11469,11475 ----
}
else
#endif
! get_user_input(argvars, rettv, TRUE);
}
/*
*** ../vim-7.0.038/src/version.c Wed Jul 12 21:48:56 2006
--- src/version.c Wed Jul 12 21:56:30 2006
***************
*** 668,669 ****
--- 668,671 ----
{ /* Add new patch number below this line */
+ /**/
+ 39,
/**/
--
A consultant is a person who takes your money and annoys your employees while
tirelessly searching for the best way to extend the consulting contract.
(Scott Adams - The Dilbert principle)
/// 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 ///