patch 7.4.1539
Problem: Too much code in eval.c.
Solution: Move job and channel code to channel.c.
diff --git a/src/proto/channel.pro b/src/proto/channel.pro
index bb7bab3..e6e5446 100644
--- a/src/proto/channel.pro
+++ b/src/proto/channel.pro
@@ -1,13 +1,14 @@
/* channel.c */
-void ch_logfile(FILE *file);
+void ch_logfile(char_u *fname, char_u *opt);
int ch_log_active(void);
void ch_log(channel_T *ch, char *msg);
void ch_logs(channel_T *ch, char *msg, char *name);
channel_T *add_channel(void);
-int channel_may_free(channel_T *channel);
+int channel_unref(channel_T *channel);
void channel_free(channel_T *channel);
void channel_gui_register_all(void);
channel_T *channel_open(char *hostname, int port_in, int waittime, void (*nb_close_cb)(void));
+channel_T *channel_open_func(typval_T *argvars);
void channel_set_pipes(channel_T *channel, sock_T in, sock_T out, sock_T err);
void channel_set_job(channel_T *channel, job_T *job, jobopt_T *options);
void channel_set_options(channel_T *channel, jobopt_T *opt);
@@ -27,9 +28,13 @@
void channel_read(channel_T *channel, int part, char *func);
char_u *channel_read_block(channel_T *channel, int part, int timeout);
int channel_read_json_block(channel_T *channel, int part, int timeout, int id, typval_T **rettv);
+void common_channel_read(typval_T *argvars, typval_T *rettv, int raw);
channel_T *channel_fd2channel(sock_T fd, int *partp);
void channel_handle_events(void);
int channel_send(channel_T *channel, int part, char_u *buf, char *fun);
+channel_T *send_common(typval_T *argvars, char_u *text, int id, int eval, jobopt_T *opt, char *fun, int *part_read);
+void ch_expr_common(typval_T *argvars, typval_T *rettv, int eval);
+void ch_raw_common(typval_T *argvars, typval_T *rettv, int eval);
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);
@@ -40,4 +45,14 @@
int channel_part_read(channel_T *channel);
ch_mode_T channel_get_mode(channel_T *channel, int part);
int channel_get_timeout(channel_T *channel, int part);
+void clear_job_options(jobopt_T *opt);
+int get_job_options(typval_T *tv, jobopt_T *opt, int supported);
+channel_T *get_channel_arg(typval_T *tv, int check_open);
+void job_unref(job_T *job);
+void job_set_options(job_T *job, jobopt_T *opt);
+void job_stop_on_exit(void);
+void job_check_ended(void);
+job_T *job_start(typval_T *argvars);
+char *job_status(job_T *job);
+int job_stop(job_T *job, typval_T *argvars);
/* vim: set ft=c : */
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index a511b81..f5e0d19 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -79,15 +79,13 @@
dictitem_T *dict_find(dict_T *d, char_u *key, int len);
char_u *get_dict_string(dict_T *d, char_u *key, int save);
long get_dict_number(dict_T *d, char_u *key);
-int channel_unref(channel_T *channel);
-void job_stop_on_exit(void);
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);
+buf_T *buflist_find_by_name(char_u *name, int curtab_only);
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 job_check_ended(void);
void mzscheme_call_vim(char_u *name, typval_T *args, typval_T *rettv);
float_T vim_round(float_T f);
long do_searchpair(char_u *spat, char_u *mpat, char_u *epat, int dir, char_u *skip, int flags, pos_T *match_pos, linenr_T lnum_stop, long time_limit);
@@ -107,7 +105,10 @@
typval_T *alloc_tv(void);
void free_tv(typval_T *varp);
void clear_tv(typval_T *varp);
+long get_tv_number(typval_T *varp);
long get_tv_number_chk(typval_T *varp, int *denote);
+char_u *get_tv_string(typval_T *varp);
+char_u *get_tv_string_buf(typval_T *varp, char_u *buf);
char_u *get_tv_string_chk(typval_T *varp);
char_u *get_tv_string_buf_chk(typval_T *varp, char_u *buf);
char_u *get_var_value(char_u *name);