diff src/channel.c @ 24812:8fdf839af1f4 v8.2.2944

patch 8.2.2944: Vim9: no error when using job or channel as a string Commit: https://github.com/vim/vim/commit/1328bde9d406aa1292e92673fa8a026889424e79 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jun 5 20:51:38 2021 +0200 patch 8.2.2944: Vim9: no error when using job or channel as a string Problem: Vim9: no error when using job or channel as a string. Solution: Be more strict about conversion to string. (closes https://github.com/vim/vim/issues/8312)
author Bram Moolenaar <Bram@vim.org>
date Sat, 05 Jun 2021 21:00:03 +0200
parents 01b274c3f69b
children 8f2262c72178
line wrap: on
line diff
--- a/src/channel.c
+++ b/src/channel.c
@@ -5015,4 +5015,22 @@ f_ch_status(typval_T *argvars, typval_T 
     rettv->vval.v_string = vim_strsave((char_u *)channel_status(channel, part));
 }
 
+/*
+ * Get a string with information about the channel in "varp" in "buf".
+ * "buf" must be at least NUMBUFLEN long.
+ */
+    char_u *
+channel_to_string_buf(typval_T *varp, char_u *buf)
+{
+    channel_T *channel = varp->vval.v_channel;
+    char      *status = channel_status(channel, -1);
+
+    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;
+}
+
 #endif // FEAT_JOB_CHANNEL