Patch 7.4.1235 (after 7.4.1231)
Problem:    Missing change to eval.c.
Solution:   Include that change.
Files:      src/eval.c


*** ../vim-7.4.1234/src/eval.c  2016-01-31 20:24:09.966066885 +0100
--- src/eval.c  2016-02-01 22:24:57.125706344 +0100
***************
*** 814,820 ****
  static int eval_isnamec1(int c);
  static int get_var_tv(char_u *name, int len, typval_T *rettv, dictitem_T 
**dip, int verbose, int no_autoload);
  static int handle_subscript(char_u **arg, typval_T *rettv, int evaluate, int 
verbose);
- static typval_T *alloc_tv(void);
  static typval_T *alloc_string_tv(char_u *string);
  static void init_tv(typval_T *varp);
  static long get_tv_number(typval_T *varp);
--- 814,819 ----
***************
*** 10065,10070 ****
--- 10064,10072 ----
      int               port;
      int               json_mode = FALSE;
  
+     /* default: fail */
+     rettv->vval.v_number = -1;
+ 
      address = get_tv_string(&argvars[0]);
      mode = get_tv_string_buf(&argvars[1], buf1);
      if (argvars[2].v_type != VAR_UNKNOWN)
***************
*** 10366,10372 ****
  
      if (!channel_is_open(ch_idx))
      {
!       EMSGN(_("E999: not an open channel"), ch_idx);
        return -1;
      }
      return ch_idx;
--- 10368,10374 ----
  
      if (!channel_is_open(ch_idx))
      {
!       EMSGN(_("E906: not an open channel"), ch_idx);
        return -1;
      }
      return ch_idx;
***************
*** 14100,14106 ****
      reader.js_buf = get_tv_string(&argvars[0]);
      reader.js_eof = TRUE;
      reader.js_used = 0;
!     json_decode(&reader, rettv);
  }
  
  /*
--- 14102,14109 ----
      reader.js_buf = get_tv_string(&argvars[0]);
      reader.js_eof = TRUE;
      reader.js_used = 0;
!     if (json_decode(&reader, rettv) == FAIL)
!       EMSG(_(e_invarg));
  }
  
  /*
***************
*** 16896,16924 ****
  f_sendexpr(typval_T *argvars, typval_T *rettv)
  {
      char_u    *text;
!     char_u    *resp;
!     typval_T  typetv;
      int               ch_idx;
  
      /* return an empty string by default */
      rettv->v_type = VAR_STRING;
      rettv->vval.v_string = NULL;
  
!     text = json_encode_nr_expr(channel_get_id(), &argvars[1]);
      if (text == NULL)
        return;
  
      ch_idx = send_common(argvars, text, "sendexpr");
      if (ch_idx >= 0)
      {
!       /* TODO: read until the whole JSON message is received */
!       /* TODO: only use the message with the right message ID */
!       /* TODO: check sequence number */
!       resp = channel_read_block(ch_idx);
!       if (resp != NULL)
        {
!           channel_decode_json(resp, &typetv, rettv, NULL);
!           vim_free(resp);
        }
      }
  }
--- 16899,16935 ----
  f_sendexpr(typval_T *argvars, typval_T *rettv)
  {
      char_u    *text;
!     typval_T  *listtv;
      int               ch_idx;
+     int               id;
  
      /* return an empty string by default */
      rettv->v_type = VAR_STRING;
      rettv->vval.v_string = NULL;
  
!     id = channel_get_id();
!     text = json_encode_nr_expr(id, &argvars[1]);
      if (text == NULL)
        return;
  
      ch_idx = send_common(argvars, text, "sendexpr");
      if (ch_idx >= 0)
      {
!       if (channel_read_json_block(ch_idx, id, &listtv) == OK)
        {
!           if (listtv->v_type == VAR_LIST)
!           {
!               list_T *list = listtv->vval.v_list;
! 
!               if (list->lv_len == 2)
!               {
!                   /* Move the item from the list and then change the type to
!                    * avoid the value being freed. */
!                   *rettv = list->lv_last->li_tv;
!                   list->lv_last->li_tv.v_type = VAR_NUMBER;
!               }
!           }
!           clear_tv(listtv);
        }
      }
  }
***************
*** 20923,20929 ****
   * Allocate memory for a variable type-value, and make it empty (0 or NULL
   * value).
   */
!     static typval_T *
  alloc_tv(void)
  {
      return (typval_T *)alloc_clear((unsigned)sizeof(typval_T));
--- 20934,20940 ----
   * Allocate memory for a variable type-value, and make it empty (0 or NULL
   * value).
   */
!     typval_T *
  alloc_tv(void)
  {
      return (typval_T *)alloc_clear((unsigned)sizeof(typval_T));
*** ../vim-7.4.1234/src/version.c       2016-02-01 22:01:06.044672631 +0100
--- src/version.c       2016-02-01 22:39:30.016526652 +0100
***************
*** 744,745 ****
--- 744,747 ----
  {   /* Add new patch number below this line */
+ /**/
+     1235,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
97. Your mother tells you to remember something, and you look for
    a File/Save command.

 /// 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.

Raspunde prin e-mail lui