Steps to reproduce:
  :" 1
  :echo ch_open("noserver")

  :" 2
  :let c = ch_open("noserver")
  :let d = c


There is no NULL check for fail channel.
And two typos in message.

diff --git a/src/channel.c b/src/channel.c
index d5d7ffb..003c933 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -634,7 +634,7 @@ channel_open(char *hostname, int port_in, int waittime,
void (*close_cb)(void))
      {
   /* Get here when the server can't be found. */
   ch_error(NULL, "Cannot connect to port after retry\n");
-  PERROR(_("E899: Cannot connect to port after retry2"));
+  PERROR(_("E899: Cannot connect to port after retry"));
   sock_close(sd);
   channel_free(channel);
   return NULL;
@@ -1220,7 +1220,7 @@ channel_status(channel_T *channel)
     void
 channel_close(channel_T *channel)
 {
-    ch_log(channel, "Closing channel");
+    ch_log(channel, "Closing channel\n");

 #ifdef FEAT_GUI
     channel_gui_unregister(channel);
diff --git a/src/eval.c b/src/eval.c
index a90dd0b..e071085 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -21828,7 +21828,10 @@ get_tv_string_buf_chk(typval_T *varp, char_u *buf)
   channel_T *channel = varp->vval.v_channel;
   char      *status = channel_status(channel);

-  vim_snprintf((char *)buf, NUMBUFLEN,
+  if (channel == NULL)
+      vim_snprintf((char *)buf, NUMBUFLEN, "channel %s", status);
+  else
+      vim_snprintf((char *)buf, NUMBUFLEN,
          "channel %d %s", channel->ch_id, status);
   return buf;
      }
@@ -22466,8 +22469,13 @@ copy_tv(typval_T *from, typval_T *to)
 #endif
  case VAR_CHANNEL:
 #ifdef FEAT_CHANNEL
-     to->vval.v_channel = from->vval.v_channel;
-     ++to->vval.v_channel->ch_refcount;
+     if (from->vval.v_channel == NULL)
+  to->vval.v_channel = NULL;
+     else
+     {
+  to->vval.v_channel = from->vval.v_channel;
+  ++to->vval.v_channel->ch_refcount;
+     }
      break;
 #endif
  case VAR_STRING:


-- 
Yukihiro Nakadaira - yukihiro.nakada...@gmail.com

-- 
-- 
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 vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui