/* Sent when the channel is found closed when reading. */
-#define DETACH_MSG "\"DETACH\"\n"
+#define DETACH_MSG_RAW "DETACH\n"
+#define DETACH_MSG_JSON "\"DETACH\"\n"
/* Buffer size for reading incoming messages. */
#define MAXMSGSIZE 4096
int readlen = 0;
sock_T fd;
int use_socket = FALSE;
+ char *msg;
fd = channel->ch_part[part].ch_fd;
if (fd == INVALID_FD)
* -> channel_read()
*/
ch_errors(channel, "%s(): Cannot read", func);
- channel_save(channel, part,
- (char_u *)DETACH_MSG, (int)STRLEN(DETACH_MSG));
+ msg = channel->ch_part[part].ch_mode == MODE_RAW
+ || channel->ch_part[part].ch_mode == MODE_NL
+ ? DETACH_MSG_RAW : DETACH_MSG_JSON;
+ channel_save(channel, part, (char_u *)msg, (int)STRLEN(msg));
/* TODO: When reading from stdout is not possible, should we try to
* keep stdin and stderr open? Probably not, assume the other side