patch 7.4.1191
Problem:    The channel feature isn't working yet.
Solution:   Add the connect(), disconnect(), sendexpr() and sendraw()
            functions.  Add initial documentation.  Add a demo server.
diff --git a/src/proto/channel.pro b/src/proto/channel.pro
index 1cdef5e..110bb1d 100644
--- a/src/proto/channel.pro
+++ b/src/proto/channel.pro
@@ -1,6 +1,11 @@
 /* channel.c */
 void channel_gui_register_all(void);
 int channel_open(char *hostname, int port_in, void (*close_cb)(void));
+void channel_set_json_mode(int idx, int json_mode);
+void channel_set_callback(int idx, char_u *callback);
+void channel_set_req_callback(int idx, char_u *callback);
+void channel_will_block(int idx);
+int channel_decode_json(char_u *msg, typval_T *tv);
 int channel_is_open(int idx);
 void channel_close(int idx);
 void channel_save(int idx, char_u *buf, int len);
@@ -8,9 +13,11 @@
 char_u *channel_get(int idx);
 int channel_collapse(int idx);
 void channel_clear(int idx);
+int channel_get_id(void);
 void channel_read(int idx);
+char_u *channel_read_block(int idx);
 int channel_socket2idx(sock_T fd);
-void channel_send(int idx, char_u *buf, char *fun);
+int channel_send(int idx, char_u *buf, char *fun);
 int channel_poll_setup(int nfd_in, void *fds_in);
 int channel_poll_check(int ret_in, void *fds_in);
 int channel_select_setup(int maxfd_in, void *rfds_in);
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index f6ad4b4..ea2096a 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -82,6 +82,7 @@
 int string2float(char_u *text, float_T *value);
 char_u *get_function_name(expand_T *xp, int idx);
 char_u *get_expr_name(expand_T *xp, int idx);
+int call_func(char_u *funcname, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict);
 int func_call(char_u *name, typval_T *args, dict_T *selfdict, typval_T *rettv);
 void dict_extend(dict_T *d1, dict_T *d2, char_u *action);
 void mzscheme_call_vim(char_u *name, typval_T *args, typval_T *rettv);