To: vim-dev@vim.org Subject: Patch 7.0.039 Fcc: outbox From: Bram Moolenaar 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 ///