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 -- [EMAIL PROTECTED] -- 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    ///

Reply via email to