To: vim_dev@googlegroups.com Subject: Patch 7.4.1537 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.1537 Problem: Too many feature flags for pipes, jobs and channels. Solution: Only use FEAT_JOB_CHANNEL. Files: src/structs.h, src/feature.h, src/configure.in, src/auto/configure, src/config.h.in, src/channel.c, src/eval.c, src/gui.c, src/main.c, src/memline.c, src/misc2.c, src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/ui.c, src/version.c, src/macros.h, src/proto.h, src/vim.h, src/Make_cyg_ming.mak, src/Make_bc5.mak, src/Make_mvc.mak *** ../vim-7.4.1536/src/structs.h 2016-03-11 22:19:39.930894079 +0100 --- src/structs.h 2016-03-11 22:40:22.261797055 +0100 *************** *** 1147,1156 **** char_u *v_string; /* string value (can be NULL!) */ list_T *v_list; /* list value (can be NULL!) */ dict_T *v_dict; /* dict value (can be NULL!) */ ! #ifdef FEAT_JOB job_T *v_job; /* job value (can be NULL!) */ - #endif - #ifdef FEAT_CHANNEL channel_T *v_channel; /* channel value (can be NULL!) */ #endif } vval; --- 1147,1154 ---- char_u *v_string; /* string value (can be NULL!) */ list_T *v_list; /* list value (can be NULL!) */ dict_T *v_dict; /* dict value (can be NULL!) */ ! #ifdef FEAT_JOB_CHANNEL job_T *v_job; /* job value (can be NULL!) */ channel_T *v_channel; /* channel value (can be NULL!) */ #endif } vval; *************** *** 1312,1319 **** #define PART_SOCK 0 #define CH_SOCK_FD ch_part[PART_SOCK].ch_fd ! #if defined(UNIX) || defined(WIN32) ! # define CHANNEL_PIPES # define INVALID_FD (-1) # define PART_OUT 1 --- 1310,1316 ---- #define PART_SOCK 0 #define CH_SOCK_FD ch_part[PART_SOCK].ch_fd ! #ifdef FEAT_JOB_CHANNEL # define INVALID_FD (-1) # define PART_OUT 1 *************** *** 2057,2063 **** int b_netbeans_file; /* TRUE when buffer is owned by NetBeans */ int b_was_netbeans_file;/* TRUE if b_netbeans_file was once set */ #endif ! #ifdef FEAT_CHANNEL int b_write_to_channel; /* TRUE when appended lines are written to * a channel. */ #endif --- 2054,2060 ---- int b_netbeans_file; /* TRUE when buffer is owned by NetBeans */ int b_was_netbeans_file;/* TRUE if b_netbeans_file was once set */ #endif ! #ifdef FEAT_JOB_CHANNEL int b_write_to_channel; /* TRUE when appended lines are written to * a channel. */ #endif *** ../vim-7.4.1536/src/feature.h 2016-02-27 18:13:05.240593068 +0100 --- src/feature.h 2016-03-11 22:26:29.118577872 +0100 *************** *** 1250,1264 **** /* * The +channel feature requires +eval. */ ! #if !defined(FEAT_EVAL) && defined(FEAT_CHANNEL) ! # undef FEAT_CHANNEL ! #endif ! ! /* ! * The +job feature requires +eval and Unix or MS-Windows. ! */ ! #if (defined(UNIX) || defined(WIN32)) && defined(FEAT_EVAL) ! # define FEAT_JOB #endif /* --- 1250,1257 ---- /* * The +channel feature requires +eval. */ ! #if !defined(FEAT_EVAL) && defined(FEAT_JOB_CHANNEL) ! # undef FEAT_JOB_CHANNEL #endif /* *** ../vim-7.4.1536/src/configure.in 2016-02-29 21:38:22.198751869 +0100 --- src/configure.in 2016-03-11 22:25:33.103168372 +0100 *************** *** 2014,2020 **** AC_SUBST(NETBEANS_OBJ) fi if test "$enable_channel" = "yes"; then ! AC_DEFINE(FEAT_CHANNEL) CHANNEL_SRC="channel.c" AC_SUBST(CHANNEL_SRC) CHANNEL_OBJ="objects/channel.o" --- 2014,2020 ---- AC_SUBST(NETBEANS_OBJ) fi if test "$enable_channel" = "yes"; then ! AC_DEFINE(FEAT_JOB_CHANNEL) CHANNEL_SRC="channel.c" AC_SUBST(CHANNEL_SRC) CHANNEL_OBJ="objects/channel.o" *** ../vim-7.4.1536/src/auto/configure 2016-02-29 21:38:22.206751785 +0100 --- src/auto/configure 2016-03-11 22:26:01.622867724 +0100 *************** *** 7427,7433 **** fi if test "$enable_channel" = "yes"; then ! $as_echo "#define FEAT_CHANNEL 1" >>confdefs.h CHANNEL_SRC="channel.c" --- 7427,7433 ---- fi if test "$enable_channel" = "yes"; then ! $as_echo "#define FEAT_JOB_CHANNEL 1" >>confdefs.h CHANNEL_SRC="channel.c" *** ../vim-7.4.1536/src/config.h.in 2016-02-27 20:14:09.920546700 +0100 --- src/config.h.in 2016-03-11 22:25:46.923022686 +0100 *************** *** 432,438 **** #undef FEAT_NETBEANS_INTG /* Define if you want to include process communication. */ ! #undef FEAT_CHANNEL /* Define default global runtime path */ #undef RUNTIME_GLOBAL --- 432,438 ---- #undef FEAT_NETBEANS_INTG /* Define if you want to include process communication. */ ! #undef FEAT_JOB_CHANNEL /* Define default global runtime path */ #undef RUNTIME_GLOBAL *** ../vim-7.4.1536/src/channel.c 2016-03-11 22:19:39.926894121 +0100 --- src/channel.c 2016-03-11 22:34:32.513482753 +0100 *************** *** 12,18 **** #include "vim.h" ! #if defined(FEAT_CHANNEL) || defined(PROTO) /* TRUE when netbeans is running with a GUI. */ #ifdef FEAT_GUI --- 12,18 ---- #include "vim.h" ! #if defined(FEAT_JOB_CHANNEL) || defined(PROTO) /* TRUE when netbeans is running with a GUI. */ #ifdef FEAT_GUI *************** *** 294,304 **** channel->ch_id = next_ch_id++; ch_log(channel, "Created channel"); - #ifdef CHANNEL_PIPES for (part = PART_SOCK; part <= PART_IN; ++part) - #else - part = PART_SOCK; - #endif { channel->ch_part[part].ch_fd = INVALID_FD; #ifdef FEAT_GUI_X11 --- 294,300 ---- *************** *** 330,339 **** channel_still_useful(channel_T *channel) { int has_sock_msg; - #ifdef CHANNEL_PIPES int has_out_msg; int has_err_msg; - #endif /* If the job was killed the channel is not expected to work anymore. */ if (channel->ch_job_killed && channel->ch_job == NULL) --- 326,333 ---- *************** *** 348,371 **** has_sock_msg = channel->ch_part[PART_SOCK].ch_fd != INVALID_FD || channel->ch_part[PART_SOCK].ch_head.rq_next != NULL || channel->ch_part[PART_SOCK].ch_json_head.jq_next != NULL; - #ifdef CHANNEL_PIPES has_out_msg = channel->ch_part[PART_OUT].ch_fd != INVALID_FD || channel->ch_part[PART_OUT].ch_head.rq_next != NULL || channel->ch_part[PART_OUT].ch_json_head.jq_next != NULL; has_err_msg = channel->ch_part[PART_ERR].ch_fd != INVALID_FD || channel->ch_part[PART_ERR].ch_head.rq_next != NULL || channel->ch_part[PART_ERR].ch_json_head.jq_next != NULL; - #endif return (channel->ch_callback != NULL && (has_sock_msg ! #ifdef CHANNEL_PIPES ! || has_out_msg || has_err_msg ! #endif ! )) ! #ifdef CHANNEL_PIPES || (channel->ch_part[PART_OUT].ch_callback != NULL && has_out_msg) ! || (channel->ch_part[PART_ERR].ch_callback != NULL && has_err_msg) ! #endif ! ; } /* --- 342,357 ---- has_sock_msg = channel->ch_part[PART_SOCK].ch_fd != INVALID_FD || channel->ch_part[PART_SOCK].ch_head.rq_next != NULL || channel->ch_part[PART_SOCK].ch_json_head.jq_next != NULL; has_out_msg = channel->ch_part[PART_OUT].ch_fd != INVALID_FD || channel->ch_part[PART_OUT].ch_head.rq_next != NULL || channel->ch_part[PART_OUT].ch_json_head.jq_next != NULL; has_err_msg = channel->ch_part[PART_ERR].ch_fd != INVALID_FD || channel->ch_part[PART_ERR].ch_head.rq_next != NULL || channel->ch_part[PART_ERR].ch_json_head.jq_next != NULL; return (channel->ch_callback != NULL && (has_sock_msg ! || has_out_msg || has_err_msg)) || (channel->ch_part[PART_OUT].ch_callback != NULL && has_out_msg) ! || (channel->ch_part[PART_ERR].ch_callback != NULL && has_err_msg); } /* *************** *** 507,518 **** { if (channel->CH_SOCK_FD != INVALID_FD) channel_gui_register_one(channel, PART_SOCK); - # ifdef CHANNEL_PIPES if (channel->CH_OUT_FD != INVALID_FD) channel_gui_register_one(channel, PART_OUT); if (channel->CH_ERR_FD != INVALID_FD) channel_gui_register_one(channel, PART_ERR); - # endif } /* --- 493,502 ---- *************** *** 557,570 **** { int part; - #ifdef CHANNEL_PIPES for (part = PART_SOCK; part < PART_IN; ++part) - #else - part = PART_SOCK; - #endif - { channel_gui_unregister_one(channel, part); - } } #endif --- 541,548 ---- *************** *** 842,848 **** return channel; } - #if defined(CHANNEL_PIPES) || defined(PROTO) static void may_close_part(sock_T *fd) { --- 820,825 ---- *************** *** 884,890 **** # endif } } - #endif /* * Sets the job the channel is associated with and associated options. --- 861,866 ---- *************** *** 1897,1906 **** channel_can_write_to(channel_T *channel) { return channel != NULL && (channel->CH_SOCK_FD != INVALID_FD ! #ifdef CHANNEL_PIPES ! || channel->CH_IN_FD != INVALID_FD ! #endif ! ); } /* --- 1873,1879 ---- channel_can_write_to(channel_T *channel) { return channel != NULL && (channel->CH_SOCK_FD != INVALID_FD ! || channel->CH_IN_FD != INVALID_FD); } /* *************** *** 1911,1922 **** channel_is_open(channel_T *channel) { return channel != NULL && (channel->CH_SOCK_FD != INVALID_FD - #ifdef CHANNEL_PIPES || channel->CH_IN_FD != INVALID_FD || channel->CH_OUT_FD != INVALID_FD ! || channel->CH_ERR_FD != INVALID_FD ! #endif ! ); } /* --- 1884,1892 ---- channel_is_open(channel_T *channel) { return channel != NULL && (channel->CH_SOCK_FD != INVALID_FD || channel->CH_IN_FD != INVALID_FD || channel->CH_OUT_FD != INVALID_FD ! || channel->CH_ERR_FD != INVALID_FD); } /* *************** *** 1951,1961 **** sock_close(channel->CH_SOCK_FD); channel->CH_SOCK_FD = INVALID_FD; } - #if defined(CHANNEL_PIPES) may_close_part(&channel->CH_IN_FD); may_close_part(&channel->CH_OUT_FD); may_close_part(&channel->CH_ERR_FD); - #endif if (invoke_close_cb && channel->ch_close_cb != NULL) { --- 1921,1929 ---- *************** *** 2036,2045 **** { ch_log(channel, "Clearing channel"); channel_clear_one(channel, PART_SOCK); - #ifdef CHANNEL_PIPES channel_clear_one(channel, PART_OUT); channel_clear_one(channel, PART_ERR); - #endif vim_free(channel->ch_callback); channel->ch_callback = NULL; vim_free(channel->ch_close_cb); --- 2004,2011 ---- *************** *** 2357,2367 **** for (channel = first_channel; channel != NULL; channel = channel->ch_next) { - # ifdef CHANNEL_PIPES for (part = PART_SOCK; part < PART_IN; ++part) - # else - part = PART_SOCK; - # endif if (channel->ch_part[part].ch_fd == fd) { *partp = part; --- 2323,2329 ---- *************** *** 2386,2398 **** for (channel = first_channel; channel != NULL; channel = channel->ch_next) { - # ifdef CHANNEL_PIPES /* check the socket and pipes */ for (part = PART_SOCK; part <= PART_ERR; ++part) - # else - /* only check the socket */ - part = PART_SOCK; - # endif { fd = channel->ch_part[part].ch_fd; if (fd != INVALID_FD && channel_wait(channel, fd, 0) == OK) --- 2348,2355 ---- *************** *** 2471,2481 **** for (channel = first_channel; channel != NULL; channel = channel->ch_next) { - # ifdef CHANNEL_PIPES for (part = PART_SOCK; part < PART_IN; ++part) - # else - part = PART_SOCK; - # endif { if (channel->ch_part[part].ch_fd != INVALID_FD) { --- 2428,2434 ---- *************** *** 2505,2515 **** for (channel = first_channel; channel != NULL; channel = channel->ch_next) { - # ifdef CHANNEL_PIPES for (part = PART_SOCK; part < PART_IN; ++part) - # else - part = PART_SOCK; - # endif { int idx = channel->ch_part[part].ch_poll_idx; --- 2458,2464 ---- *************** *** 2539,2549 **** for (channel = first_channel; channel != NULL; channel = channel->ch_next) { - # ifdef CHANNEL_PIPES for (part = PART_SOCK; part < PART_IN; ++part) - # else - part = PART_SOCK; - # endif { sock_T fd = channel->ch_part[part].ch_fd; --- 2488,2494 ---- *************** *** 2572,2582 **** for (channel = first_channel; channel != NULL; channel = channel->ch_next) { - # ifdef CHANNEL_PIPES for (part = PART_SOCK; part < PART_IN; ++part) - # else - part = PART_SOCK; - # endif { sock_T fd = channel->ch_part[part].ch_fd; --- 2517,2523 ---- *************** *** 2657,2667 **** continue; } } - #ifdef CHANNEL_PIPES if (part < PART_ERR) ++part; else - #endif { channel = channel->ch_next; part = PART_SOCK; --- 2598,2606 ---- *************** *** 2692,2702 **** for (channel = first_channel; channel != NULL; channel = channel->ch_next) { - #ifdef CHANNEL_PIPES for (part = PART_SOCK; part < PART_IN; ++part) - #else - part = PART_SOCK; - #endif { jsonq_T *head = &channel->ch_part[part].ch_json_head; jsonq_T *item = head->jq_next; --- 2631,2637 ---- *************** *** 2723,2732 **** int channel_part_send(channel_T *channel) { - #ifdef CHANNEL_PIPES if (channel->CH_SOCK_FD == INVALID_FD) return PART_IN; - #endif return PART_SOCK; } --- 2658,2665 ---- *************** *** 2736,2745 **** int channel_part_read(channel_T *channel) { - #ifdef CHANNEL_PIPES if (channel->CH_SOCK_FD == INVALID_FD) return PART_OUT; - #endif return PART_SOCK; } --- 2669,2676 ---- *************** *** 2764,2767 **** return channel->ch_part[part].ch_timeout; } ! #endif /* FEAT_CHANNEL */ --- 2695,2698 ---- return channel->ch_part[part].ch_timeout; } ! #endif /* FEAT_JOB_CHANNEL */ *** ../vim-7.4.1536/src/eval.c 2016-03-11 22:19:39.930894079 +0100 --- src/eval.c 2016-03-11 22:36:33.704205560 +0100 *************** *** 496,509 **** #ifdef FEAT_FLOAT static void f_ceil(typval_T *argvars, typval_T *rettv); #endif ! #ifdef FEAT_CHANNEL static void f_ch_close(typval_T *argvars, typval_T *rettv); static void f_ch_evalexpr(typval_T *argvars, typval_T *rettv); static void f_ch_evalraw(typval_T *argvars, typval_T *rettv); static void f_ch_getbufnr(typval_T *argvars, typval_T *rettv); - # ifdef FEAT_JOB static void f_ch_getjob(typval_T *argvars, typval_T *rettv); - # endif static void f_ch_log(typval_T *argvars, typval_T *rettv); static void f_ch_logfile(typval_T *argvars, typval_T *rettv); static void f_ch_open(typval_T *argvars, typval_T *rettv); --- 496,507 ---- #ifdef FEAT_FLOAT static void f_ceil(typval_T *argvars, typval_T *rettv); #endif ! #ifdef FEAT_JOB_CHANNEL static void f_ch_close(typval_T *argvars, typval_T *rettv); static void f_ch_evalexpr(typval_T *argvars, typval_T *rettv); static void f_ch_evalraw(typval_T *argvars, typval_T *rettv); static void f_ch_getbufnr(typval_T *argvars, typval_T *rettv); static void f_ch_getjob(typval_T *argvars, typval_T *rettv); static void f_ch_log(typval_T *argvars, typval_T *rettv); static void f_ch_logfile(typval_T *argvars, typval_T *rettv); static void f_ch_open(typval_T *argvars, typval_T *rettv); *************** *** 632,641 **** static void f_isnan(typval_T *argvars, typval_T *rettv); #endif static void f_items(typval_T *argvars, typval_T *rettv); ! #ifdef FEAT_JOB ! # ifdef FEAT_CHANNEL static void f_job_getchannel(typval_T *argvars, typval_T *rettv); - # endif static void f_job_setoptions(typval_T *argvars, typval_T *rettv); static void f_job_start(typval_T *argvars, typval_T *rettv); static void f_job_stop(typval_T *argvars, typval_T *rettv); --- 630,637 ---- static void f_isnan(typval_T *argvars, typval_T *rettv); #endif static void f_items(typval_T *argvars, typval_T *rettv); ! #ifdef FEAT_JOB_CHANNEL static void f_job_getchannel(typval_T *argvars, typval_T *rettv); static void f_job_setoptions(typval_T *argvars, typval_T *rettv); static void f_job_start(typval_T *argvars, typval_T *rettv); static void f_job_stop(typval_T *argvars, typval_T *rettv); *************** *** 6236,6246 **** return tv1->vval.v_float == tv2->vval.v_float; #endif case VAR_JOB: ! #ifdef FEAT_JOB return tv1->vval.v_job == tv2->vval.v_job; #endif case VAR_CHANNEL: ! #ifdef FEAT_CHANNEL return tv1->vval.v_channel == tv2->vval.v_channel; #endif case VAR_UNKNOWN: --- 6232,6242 ---- return tv1->vval.v_float == tv2->vval.v_float; #endif case VAR_JOB: ! #ifdef FEAT_JOB_CHANNEL return tv1->vval.v_job == tv2->vval.v_job; #endif case VAR_CHANNEL: ! #ifdef FEAT_JOB_CHANNEL return tv1->vval.v_channel == tv2->vval.v_channel; #endif case VAR_UNKNOWN: *************** *** 6926,6932 **** abort = abort || set_ref_in_python3(copyID); #endif ! #ifdef FEAT_CHANNEL abort = abort || set_ref_in_channel(copyID); #endif --- 6922,6928 ---- abort = abort || set_ref_in_python3(copyID); #endif ! #ifdef FEAT_JOB_CHANNEL abort = abort || set_ref_in_channel(copyID); #endif *************** *** 7738,7744 **** return OK; } ! #if defined(FEAT_CHANNEL) || defined(PROTO) /* * Decrement the reference count on "channel" and maybe free it when it goes * down to zero. Don't free it if there is a pending action. --- 7734,7740 ---- return OK; } ! #if defined(FEAT_JOB_CHANNEL) || defined(PROTO) /* * Decrement the reference count on "channel" and maybe free it when it goes * down to zero. Don't free it if there is a pending action. *************** *** 7751,7765 **** return channel_may_free(channel); return FALSE; } - #endif - #if defined(FEAT_JOB) || defined(PROTO) static job_T *first_job = NULL; static void job_free(job_T *job) { - # ifdef FEAT_CHANNEL ch_log(job->jv_channel, "Freeing job"); if (job->jv_channel != NULL) { --- 7747,7758 ---- *************** *** 7771,7777 **** job->jv_channel->ch_job = NULL; channel_unref(job->jv_channel); } - # endif mch_clear_job(job); if (job->jv_next != NULL) --- 7764,7769 ---- *************** *** 7798,7804 **** { job_free(job); } - # ifdef FEAT_CHANNEL else if (job->jv_channel != NULL) { /* Do remove the link to the channel, otherwise it hangs --- 7790,7795 ---- *************** *** 7807,7813 **** channel_unref(job->jv_channel); job->jv_channel = NULL; } - # endif } } --- 7798,7803 ---- *************** *** 8204,8217 **** #ifdef FEAT_FLOAT {"ceil", 1, 1, f_ceil}, #endif ! #ifdef FEAT_CHANNEL {"ch_close", 1, 1, f_ch_close}, {"ch_evalexpr", 2, 3, f_ch_evalexpr}, {"ch_evalraw", 2, 3, f_ch_evalraw}, {"ch_getbufnr", 2, 2, f_ch_getbufnr}, - # ifdef FEAT_JOB {"ch_getjob", 1, 1, f_ch_getjob}, - # endif {"ch_log", 1, 2, f_ch_log}, {"ch_logfile", 1, 2, f_ch_logfile}, {"ch_open", 1, 2, f_ch_open}, --- 8194,8205 ---- #ifdef FEAT_FLOAT {"ceil", 1, 1, f_ceil}, #endif ! #ifdef FEAT_JOB_CHANNEL {"ch_close", 1, 1, f_ch_close}, {"ch_evalexpr", 2, 3, f_ch_evalexpr}, {"ch_evalraw", 2, 3, f_ch_evalraw}, {"ch_getbufnr", 2, 2, f_ch_getbufnr}, {"ch_getjob", 1, 1, f_ch_getjob}, {"ch_log", 1, 2, f_ch_log}, {"ch_logfile", 1, 2, f_ch_logfile}, {"ch_open", 1, 2, f_ch_open}, *************** *** 8344,8353 **** {"isnan", 1, 1, f_isnan}, #endif {"items", 1, 1, f_items}, ! #ifdef FEAT_JOB ! # ifdef FEAT_CHANNEL {"job_getchannel", 1, 1, f_job_getchannel}, - # endif {"job_setoptions", 2, 2, f_job_setoptions}, {"job_start", 1, 2, f_job_start}, {"job_status", 1, 1, f_job_status}, --- 8332,8339 ---- {"isnan", 1, 1, f_isnan}, #endif {"items", 1, 1, f_items}, ! #ifdef FEAT_JOB_CHANNEL {"job_getchannel", 1, 1, f_job_getchannel}, {"job_setoptions", 2, 2, f_job_setoptions}, {"job_start", 1, 2, f_job_start}, {"job_status", 1, 1, f_job_status}, *************** *** 9955,9961 **** } #endif ! #if defined(FEAT_CHANNEL) || defined(FEAT_JOB) /* * Get a callback from "arg". It can be a Funcref or a function name. * When "arg" is zero return an empty string. --- 9941,9947 ---- } #endif ! #if defined(FEAT_JOB_CHANNEL) /* * Get a callback from "arg". It can be a Funcref or a function name. * When "arg" is zero return an empty string. *************** *** 10312,10318 **** } #endif ! #ifdef FEAT_CHANNEL /* * Get the channel from the argument. * Returns NULL if the handle is invalid. --- 10298,10304 ---- } #endif ! #ifdef FEAT_JOB_CHANNEL /* * Get the channel from the argument. * Returns NULL if the handle is invalid. *************** *** 10387,10393 **** } } - # ifdef FEAT_JOB /* * "ch_getjob()" function */ --- 10373,10378 ---- *************** *** 10404,10410 **** ++channel->ch_job->jv_refcount; } } - # endif /* * "ch_log()" function --- 10389,10394 ---- *************** *** 11427,11439 **** break; case VAR_JOB: ! #ifdef FEAT_JOB n = argvars[0].vval.v_job == NULL || argvars[0].vval.v_job->jv_status != JOB_STARTED; break; #endif case VAR_CHANNEL: ! #ifdef FEAT_CHANNEL n = argvars[0].vval.v_channel == NULL || !channel_is_open(argvars[0].vval.v_channel); break; --- 11411,11423 ---- break; case VAR_JOB: ! #ifdef FEAT_JOB_CHANNEL n = argvars[0].vval.v_job == NULL || argvars[0].vval.v_job->jv_status != JOB_STARTED; break; #endif case VAR_CHANNEL: ! #ifdef FEAT_JOB_CHANNEL n = argvars[0].vval.v_channel == NULL || !channel_is_open(argvars[0].vval.v_channel); break; *************** *** 13815,13821 **** #ifdef FEAT_BYTEOFF "byte_offset", #endif ! #ifdef FEAT_CHANNEL "channel", #endif #ifdef FEAT_CINDENT --- 13799,13805 ---- #ifdef FEAT_BYTEOFF "byte_offset", #endif ! #ifdef FEAT_JOB_CHANNEL "channel", #endif #ifdef FEAT_CINDENT *************** *** 13951,13957 **** #ifdef FEAT_INS_EXPAND "insert_expand", #endif ! #ifdef FEAT_JOB "job", #endif #ifdef FEAT_JUMPLIST --- 13935,13941 ---- #ifdef FEAT_INS_EXPAND "insert_expand", #endif ! #ifdef FEAT_JOB_CHANNEL "job", #endif #ifdef FEAT_JUMPLIST *************** *** 15092,15098 **** dict_list(argvars, rettv, 2); } ! #if defined(FEAT_JOB) || defined(PROTO) /* * Get the job from the argument. * Returns NULL if the job is invalid. --- 15076,15082 ---- dict_list(argvars, rettv, 2); } ! #if defined(FEAT_JOB_CHANNEL) || defined(PROTO) /* * Get the job from the argument. * Returns NULL if the job is invalid. *************** *** 15114,15120 **** return job; } - # ifdef FEAT_CHANNEL /* * "job_getchannel()" function */ --- 15098,15103 ---- *************** *** 15131,15137 **** ++job->jv_channel->ch_refcount; } } - # endif /* * "job_setoptions()" function --- 15114,15119 ---- *************** *** 15298,15304 **** } #ifdef USE_ARGV - # ifdef FEAT_CHANNEL if (ch_log_active()) { garray_T ga; --- 15280,15285 ---- *************** *** 15314,15333 **** ch_logs(NULL, "Starting job: %s", (char *)ga.ga_data); ga_clear(&ga); } - # endif mch_start_job(argv, job, &opt); #else - # ifdef FEAT_CHANNEL ch_logs(NULL, "Starting job: %s", (char *)cmd); - # endif mch_start_job((char *)cmd, job, &opt); #endif - #ifdef FEAT_CHANNEL /* If the channel is reading from a buffer, write lines now. */ if (job->jv_channel != NULL) channel_write_in(job->jv_channel); - #endif theend: #ifdef USE_ARGV --- 15295,15309 ---- *************** *** 15354,15363 **** else { result = mch_job_status(job); - # ifdef FEAT_CHANNEL if (job->jv_status == JOB_ENDED) ch_log(job->jv_channel, "Job ended"); - # endif if (job->jv_status == JOB_ENDED && job->jv_exit_cb != NULL) { typval_T argv[3]; --- 15330,15337 ---- *************** *** 15450,15458 **** return; } } - # ifdef FEAT_CHANNEL ch_logs(job->jv_channel, "Stopping job with '%s'", (char *)arg); - # endif if (mch_stop_job(job, arg) == FAIL) rettv->vval.v_number = 0; else --- 15424,15430 ---- *************** *** 22414,22425 **** dict_unref(varp->vval.v_dict); break; case VAR_JOB: ! #ifdef FEAT_JOB job_unref(varp->vval.v_job); break; #endif case VAR_CHANNEL: ! #ifdef FEAT_CHANNEL channel_unref(varp->vval.v_channel); break; #endif --- 22386,22397 ---- dict_unref(varp->vval.v_dict); break; case VAR_JOB: ! #ifdef FEAT_JOB_CHANNEL job_unref(varp->vval.v_job); break; #endif case VAR_CHANNEL: ! #ifdef FEAT_JOB_CHANNEL channel_unref(varp->vval.v_channel); break; #endif *************** *** 22468,22480 **** break; #endif case VAR_JOB: ! #ifdef FEAT_JOB job_unref(varp->vval.v_job); varp->vval.v_job = NULL; #endif break; case VAR_CHANNEL: ! #ifdef FEAT_CHANNEL channel_unref(varp->vval.v_channel); varp->vval.v_channel = NULL; #endif --- 22440,22452 ---- break; #endif case VAR_JOB: ! #ifdef FEAT_JOB_CHANNEL job_unref(varp->vval.v_job); varp->vval.v_job = NULL; #endif break; case VAR_CHANNEL: ! #ifdef FEAT_JOB_CHANNEL channel_unref(varp->vval.v_channel); varp->vval.v_channel = NULL; #endif *************** *** 22543,22554 **** return varp->vval.v_number == VVAL_TRUE ? 1 : 0; break; case VAR_JOB: ! #ifdef FEAT_JOB EMSG(_("E910: Using a Job as a Number")); break; #endif case VAR_CHANNEL: ! #ifdef FEAT_CHANNEL EMSG(_("E913: Using a Channel as a Number")); break; #endif --- 22515,22526 ---- return varp->vval.v_number == VVAL_TRUE ? 1 : 0; break; case VAR_JOB: ! #ifdef FEAT_JOB_CHANNEL EMSG(_("E910: Using a Job as a Number")); break; #endif case VAR_CHANNEL: ! #ifdef FEAT_JOB_CHANNEL EMSG(_("E913: Using a Channel as a Number")); break; #endif *************** *** 22589,22600 **** EMSG(_("E907: Using a special value as a Float")); break; case VAR_JOB: ! # ifdef FEAT_JOB EMSG(_("E911: Using a Job as a Float")); break; # endif case VAR_CHANNEL: ! # ifdef FEAT_CHANNEL EMSG(_("E914: Using a Channel as a Float")); break; # endif --- 22561,22572 ---- EMSG(_("E907: Using a special value as a Float")); break; case VAR_JOB: ! # ifdef FEAT_JOB_CHANNEL EMSG(_("E911: Using a Job as a Float")); break; # endif case VAR_CHANNEL: ! # ifdef FEAT_JOB_CHANNEL EMSG(_("E914: Using a Channel as a Float")); break; # endif *************** *** 22711,22717 **** STRCPY(buf, get_var_special_name(varp->vval.v_number)); return buf; case VAR_JOB: ! #ifdef FEAT_JOB { job_T *job = varp->vval.v_job; char *status; --- 22683,22689 ---- STRCPY(buf, get_var_special_name(varp->vval.v_number)); return buf; case VAR_JOB: ! #ifdef FEAT_JOB_CHANNEL { job_T *job = varp->vval.v_job; char *status; *************** *** 22738,22744 **** #endif break; case VAR_CHANNEL: ! #ifdef FEAT_CHANNEL { channel_T *channel = varp->vval.v_channel; char *status = channel_status(channel); --- 22710,22716 ---- #endif break; case VAR_CHANNEL: ! #ifdef FEAT_JOB_CHANNEL { channel_T *channel = varp->vval.v_channel; char *status = channel_status(channel); *************** *** 23377,23390 **** break; #endif case VAR_JOB: ! #ifdef FEAT_JOB to->vval.v_job = from->vval.v_job; if (to->vval.v_job != NULL) ++to->vval.v_job->jv_refcount; break; #endif case VAR_CHANNEL: ! #ifdef FEAT_CHANNEL to->vval.v_channel = from->vval.v_channel; if (to->vval.v_channel != NULL) ++to->vval.v_channel->ch_refcount; --- 23349,23362 ---- break; #endif case VAR_JOB: ! #ifdef FEAT_JOB_CHANNEL to->vval.v_job = from->vval.v_job; if (to->vval.v_job != NULL) ++to->vval.v_job->jv_refcount; break; #endif case VAR_CHANNEL: ! #ifdef FEAT_JOB_CHANNEL to->vval.v_channel = from->vval.v_channel; if (to->vval.v_channel != NULL) ++to->vval.v_channel->ch_refcount; *** ../vim-7.4.1536/src/gui.c 2016-02-20 13:54:39.141147074 +0100 --- src/gui.c 2016-03-11 22:36:41.332125173 +0100 *************** *** 4949,4955 **** * of the argument ending up after the shell prompt. */ msg_clr_eos_force(); gui_start(); ! #ifdef FEAT_CHANNEL channel_gui_register_all(); #endif } --- 4949,4955 ---- * of the argument ending up after the shell prompt. */ msg_clr_eos_force(); gui_start(); ! #ifdef FEAT_JOB_CHANNEL channel_gui_register_all(); #endif } *** ../vim-7.4.1536/src/main.c 2016-03-02 21:51:52.147805190 +0100 --- src/main.c 2016-03-11 22:30:03.196321275 +0100 *************** *** 1488,1494 **** windgoto((int)Rows - 1, 0); #endif ! #ifdef FEAT_JOB job_stop_on_exit(); #endif #ifdef FEAT_LUA --- 1488,1494 ---- windgoto((int)Rows - 1, 0); #endif ! #ifdef FEAT_JOB_CHANNEL job_stop_on_exit(); #endif #ifdef FEAT_LUA *** ../vim-7.4.1536/src/memline.c 2016-03-06 20:22:20.356165934 +0100 --- src/memline.c 2016-03-11 22:37:02.639900626 +0100 *************** *** 3059,3065 **** (char_u *)"\n", 1); } #endif ! #ifdef FEAT_CHANNEL if (buf->b_write_to_channel) channel_write_new_lines(buf); #endif --- 3059,3065 ---- (char_u *)"\n", 1); } #endif ! #ifdef FEAT_JOB_CHANNEL if (buf->b_write_to_channel) channel_write_new_lines(buf); #endif *** ../vim-7.4.1536/src/misc2.c 2016-02-29 21:20:43.114003842 +0100 --- src/misc2.c 2016-03-11 22:37:46.983433327 +0100 *************** *** 1127,1133 **** # ifdef FEAT_DIFF diff_clear(curtab); # endif ! # ifdef FEAT_CHANNEL channel_free_all(); # endif clear_sb_text(); /* free any scrollback text */ --- 1127,1133 ---- # ifdef FEAT_DIFF diff_clear(curtab); # endif ! # ifdef FEAT_JOB_CHANNEL channel_free_all(); # endif clear_sb_text(); /* free any scrollback text */ *************** *** 6221,6227 **** parse_queued_messages(void) { /* For Win32 mch_breakcheck() does not check for input, do it here. */ ! # if defined(WIN32) && defined(FEAT_CHANNEL) channel_handle_events(); # endif --- 6221,6227 ---- parse_queued_messages(void) { /* For Win32 mch_breakcheck() does not check for input, do it here. */ ! # if defined(WIN32) && defined(FEAT_JOB_CHANNEL) channel_handle_events(); # endif *************** *** 6229,6235 **** /* Process the queued netbeans messages. */ netbeans_parse_messages(); # endif ! # ifdef FEAT_CHANNEL /* Process the messages queued on channels. */ channel_parse_messages(); # endif --- 6229,6235 ---- /* Process the queued netbeans messages. */ netbeans_parse_messages(); # endif ! # ifdef FEAT_JOB_CHANNEL /* Process the messages queued on channels. */ channel_parse_messages(); # endif *************** *** 6237,6243 **** /* Process the queued clientserver messages. */ server_parse_messages(); # endif ! # ifdef FEAT_JOB /* Check if any jobs have ended. */ job_check_ended(); # endif --- 6237,6243 ---- /* Process the queued clientserver messages. */ server_parse_messages(); # endif ! # ifdef FEAT_JOB_CHANNEL /* Check if any jobs have ended. */ job_check_ended(); # endif *** ../vim-7.4.1536/src/os_mswin.c 2016-02-20 13:54:39.145147032 +0100 --- src/os_mswin.c 2016-03-11 22:38:20.223083050 +0100 *************** *** 144,150 **** static HWND s_hwnd = 0; /* console window handle, set by GetConsoleHwnd() */ #endif ! #ifdef FEAT_CHANNEL int WSInitialized = FALSE; /* WinSock is initialized */ #endif --- 144,150 ---- static HWND s_hwnd = 0; /* console window handle, set by GetConsoleHwnd() */ #endif ! #ifdef FEAT_JOB_CHANNEL int WSInitialized = FALSE; /* WinSock is initialized */ #endif *************** *** 216,222 **** # ifdef FEAT_OLE UninitOLE(); # endif ! # ifdef FEAT_CHANNEL if (WSInitialized) { WSInitialized = FALSE; --- 216,222 ---- # ifdef FEAT_OLE UninitOLE(); # endif ! # ifdef FEAT_JOB_CHANNEL if (WSInitialized) { WSInitialized = FALSE; *************** *** 3018,3024 **** #endif /* defined(FEAT_GUI) || defined(FEAT_PRINTER) */ ! #if defined(FEAT_CHANNEL) || defined(PROTO) /* * Initialize the Winsock dll. */ --- 3018,3024 ---- #endif /* defined(FEAT_GUI) || defined(FEAT_PRINTER) */ ! #if defined(FEAT_JOB_CHANNEL) || defined(PROTO) /* * Initialize the Winsock dll. */ *** ../vim-7.4.1536/src/os_unix.c 2016-03-11 22:19:39.934894037 +0100 --- src/os_unix.c 2016-03-11 22:38:39.758877184 +0100 *************** *** 3919,3925 **** return wait_pid; } ! #if defined(FEAT_JOB) || !defined(USE_SYSTEM) || defined(PROTO) /* * Parse "cmd" and put the white-separated parts in "argv". * "argv" is an allocated array with "argc" entries. --- 3919,3925 ---- return wait_pid; } ! #if defined(FEAT_JOB_CHANNEL) || !defined(USE_SYSTEM) || defined(PROTO) /* * Parse "cmd" and put the white-separated parts in "argv". * "argv" is an allocated array with "argc" entries. *************** *** 3984,3990 **** } #endif ! #if !defined(USE_SYSTEM) || defined(FEAT_JOB) static void set_child_environment(void) { --- 3984,3990 ---- } #endif ! #if !defined(USE_SYSTEM) || defined(FEAT_JOB_CHANNEL) static void set_child_environment(void) { *************** *** 5035,5046 **** #endif /* USE_SYSTEM */ } ! #if defined(FEAT_JOB) || defined(PROTO) void mch_start_job(char **argv, job_T *job, jobopt_T *options UNUSED) { pid_t pid; - # ifdef FEAT_CHANNEL int fd_in[2]; /* for stdin */ int fd_out[2]; /* for stdout */ int fd_err[2]; /* for stderr */ --- 5035,5045 ---- #endif /* USE_SYSTEM */ } ! #if defined(FEAT_JOB_CHANNEL) || defined(PROTO) void mch_start_job(char **argv, job_T *job, jobopt_T *options UNUSED) { pid_t pid; int fd_in[2]; /* for stdin */ int fd_out[2]; /* for stdout */ int fd_err[2]; /* for stderr */ *************** *** 5122,5128 **** if (channel == NULL) goto failed; } - # endif pid = fork(); /* maybe we should use vfork() */ if (pid == -1) --- 5121,5126 ---- *************** *** 5133,5141 **** if (pid == 0) { - # ifdef FEAT_CHANNEL int null_fd = -1; - # endif /* child */ reset_signals(); /* handle signals normally */ --- 5131,5137 ---- *************** *** 5149,5156 **** set_child_environment(); - /* TODO: re-enable this when pipes connect without a channel */ - # ifdef FEAT_CHANNEL if (use_null_for_in || use_null_for_out || use_null_for_err) null_fd = open("/dev/null", O_RDWR | O_EXTRA, 0); --- 5145,5150 ---- *************** *** 5205,5211 **** } if (null_fd >= 0) close(null_fd); - # endif /* See above for type of argv. */ execvp(argv[0], argv); --- 5199,5204 ---- *************** *** 5217,5227 **** /* parent */ job->jv_pid = pid; job->jv_status = JOB_STARTED; - # ifdef FEAT_CHANNEL job->jv_channel = channel; /* ch_refcount was set above */ - # endif - # ifdef FEAT_CHANNEL /* child stdin, stdout and stderr */ if (!use_file_for_in) close(fd_in[0]); --- 5210,5217 ---- *************** *** 5240,5252 **** ? INVALID_FD : fd_err[0]); channel_set_job(channel, job, options); } - # endif /* success! */ return; ! failed: ; ! # ifdef FEAT_CHANNEL channel_unref(channel); if (fd_in[0] >= 0) close(fd_in[0]); --- 5230,5240 ---- ? INVALID_FD : fd_err[0]); channel_set_job(channel, job, options); } /* success! */ return; ! failed: channel_unref(channel); if (fd_in[0] >= 0) close(fd_in[0]); *************** *** 5260,5266 **** close(fd_err[0]); if (fd_err[1] >= 0) close(fd_err[1]); - # endif } char * --- 5248,5253 ---- *************** *** 5560,5566 **** nfd++; } # endif ! #ifdef FEAT_CHANNEL nfd = channel_poll_setup(nfd, &fds); #endif --- 5547,5553 ---- nfd++; } # endif ! #ifdef FEAT_JOB_CHANNEL nfd = channel_poll_setup(nfd, &fds); #endif *************** *** 5608,5614 **** finished = FALSE; /* Try again */ } # endif ! #ifdef FEAT_CHANNEL if (ret > 0) ret = channel_poll_check(ret, &fds); #endif --- 5595,5601 ---- finished = FALSE; /* Try again */ } # endif ! #ifdef FEAT_JOB_CHANNEL if (ret > 0) ret = channel_poll_check(ret, &fds); #endif *************** *** 5690,5696 **** maxfd = xsmp_icefd; } # endif ! # ifdef FEAT_CHANNEL maxfd = channel_select_setup(maxfd, &rfds); # endif --- 5677,5683 ---- maxfd = xsmp_icefd; } # endif ! # ifdef FEAT_JOB_CHANNEL maxfd = channel_select_setup(maxfd, &rfds); # endif *************** *** 5772,5778 **** } } # endif ! #ifdef FEAT_CHANNEL if (ret > 0) ret = channel_select_check(ret, &rfds); #endif --- 5759,5765 ---- } } # endif ! #ifdef FEAT_JOB_CHANNEL if (ret > 0) ret = channel_select_check(ret, &rfds); #endif *** ../vim-7.4.1536/src/os_win32.c 2016-03-11 22:19:39.934894037 +0100 --- src/os_win32.c 2016-03-11 22:38:50.494764053 +0100 *************** *** 1492,1498 **** { DWORD dwWaitTime = dwEndTime - dwNow; ! #ifdef FEAT_CHANNEL /* Check channel while waiting input. */ if (dwWaitTime > 100) dwWaitTime = 100; --- 1492,1498 ---- { DWORD dwWaitTime = dwEndTime - dwNow; ! #ifdef FEAT_JOB_CHANNEL /* Check channel while waiting input. */ if (dwWaitTime > 100) dwWaitTime = 100; *************** *** 4991,4997 **** return x; } ! #if defined(FEAT_JOB) || defined(PROTO) static HANDLE job_io_file_open( char_u *fname, --- 4991,4997 ---- return x; } ! #if defined(FEAT_JOB_CHANNEL) || defined(PROTO) static HANDLE job_io_file_open( char_u *fname, *************** *** 5033,5039 **** STARTUPINFO si; PROCESS_INFORMATION pi; HANDLE jo; - # ifdef FEAT_CHANNEL SECURITY_ATTRIBUTES saAttr; channel_T *channel = NULL; HANDLE ifd[2]; --- 5033,5038 ---- *************** *** 5057,5063 **** ofd[1] = INVALID_HANDLE_VALUE; efd[0] = INVALID_HANDLE_VALUE; efd[1] = INVALID_HANDLE_VALUE; - # endif jo = CreateJobObject(NULL, NULL); if (jo == NULL) --- 5056,5061 ---- *************** *** 5072,5078 **** si.dwFlags |= STARTF_USESHOWWINDOW; si.wShowWindow = SW_HIDE; - # ifdef FEAT_CHANNEL saAttr.nLength = sizeof(SECURITY_ATTRIBUTES); saAttr.bInheritHandle = TRUE; saAttr.lpSecurityDescriptor = NULL; --- 5070,5075 ---- *************** *** 5149,5155 **** if (channel == NULL) goto failed; } - # endif if (!vim_create_process(cmd, TRUE, CREATE_SUSPENDED | --- 5146,5151 ---- *************** *** 5176,5182 **** job->jv_job_object = jo; job->jv_status = JOB_STARTED; - # ifdef FEAT_CHANNEL if (!use_file_for_in) CloseHandle(ifd[0]); if (!use_file_for_out) --- 5172,5177 ---- *************** *** 5196,5206 **** ? INVALID_FD : (sock_T)efd[0]); channel_set_job(channel, job, options); } - # endif return; failed: - # ifdef FEAT_CHANNEL CloseHandle(ifd[0]); CloseHandle(ofd[0]); CloseHandle(efd[0]); --- 5191,5199 ---- *************** *** 5208,5216 **** CloseHandle(ofd[1]); CloseHandle(efd[1]); channel_unref(channel); - # else - ; /* make compiler happy */ - # endif } char * --- 5201,5206 ---- *** ../vim-7.4.1536/src/ui.c 2016-03-04 22:52:28.878894053 +0100 --- src/ui.c 2016-03-11 22:38:58.238682449 +0100 *************** *** 1531,1537 **** * descriptions which would otherwise overflow. The buffer is considered full * when only this extra space (or part of it) remains. */ ! #if defined(FEAT_SUN_WORKSHOP) || defined(FEAT_CHANNEL) \ || defined(FEAT_CLIENTSERVER) /* * Sun WorkShop and NetBeans stuff debugger commands into the input buffer. --- 1531,1537 ---- * descriptions which would otherwise overflow. The buffer is considered full * when only this extra space (or part of it) remains. */ ! #if defined(FEAT_SUN_WORKSHOP) || defined(FEAT_JOB_CHANNEL) \ || defined(FEAT_CLIENTSERVER) /* * Sun WorkShop and NetBeans stuff debugger commands into the input buffer. *** ../vim-7.4.1536/src/version.c 2016-03-11 22:19:39.934894037 +0100 --- src/version.c 2016-03-11 22:46:40.177815165 +0100 *************** *** 106,112 **** #else "-byte_offset", #endif ! #ifdef FEAT_CHANNEL "+channel", #else "-channel", --- 106,112 ---- #else "-byte_offset", #endif ! #ifdef FEAT_JOB_CHANNEL "+channel", #else "-channel", *************** *** 289,295 **** #else "-insert_expand", #endif ! #ifdef FEAT_JOB "+job", #else "-job", --- 289,295 ---- #else "-insert_expand", #endif ! #ifdef FEAT_JOB_CHANNEL "+job", #else "-job", *** ../vim-7.4.1536/src/macros.h 2016-03-04 22:57:16.215855088 +0100 --- src/macros.h 2016-03-11 22:32:53.450526803 +0100 *************** *** 317,323 **** # define PLINES_NOFILL(x) plines(x) #endif ! #if defined(FEAT_CHANNEL) || defined(FEAT_JOB) || defined(FEAT_CLIENTSERVER) # define MESSAGE_QUEUE #endif --- 317,323 ---- # define PLINES_NOFILL(x) plines(x) #endif ! #if defined(FEAT_JOB_CHANNEL) || defined(FEAT_CLIENTSERVER) # define MESSAGE_QUEUE #endif *** ../vim-7.4.1536/src/proto.h 2016-02-23 14:52:31.893232088 +0100 --- src/proto.h 2016-03-11 22:39:57.582057115 +0100 *************** *** 193,199 **** # ifdef FEAT_NETBEANS_INTG # include "netbeans.pro" # endif ! # ifdef FEAT_CHANNEL # include "channel.pro" # endif --- 193,199 ---- # ifdef FEAT_NETBEANS_INTG # include "netbeans.pro" # endif ! # ifdef FEAT_JOB_CHANNEL # include "channel.pro" # endif *** ../vim-7.4.1536/src/vim.h 2016-03-05 17:41:43.113188948 +0100 --- src/vim.h 2016-03-11 22:40:32.845685531 +0100 *************** *** 2273,2279 **** # define SET_NO_HLSEARCH(flag) no_hlsearch = (flag) #endif ! #ifdef FEAT_CHANNEL # define MAX_OPEN_CHANNELS 10 #else # define MAX_OPEN_CHANNELS 0 --- 2273,2279 ---- # define SET_NO_HLSEARCH(flag) no_hlsearch = (flag) #endif ! #ifdef FEAT_JOB_CHANNEL # define MAX_OPEN_CHANNELS 10 #else # define MAX_OPEN_CHANNELS 0 *** ../vim-7.4.1536/src/Make_cyg_ming.mak 2016-02-20 13:54:39.137147115 +0100 --- src/Make_cyg_ming.mak 2016-03-11 22:34:00.881816121 +0100 *************** *** 529,535 **** endif ifeq ($(CHANNEL),yes) ! DEFINES += -DFEAT_CHANNEL endif # DirectWrite (DirectX) --- 529,535 ---- endif ifeq ($(CHANNEL),yes) ! DEFINES += -DFEAT_JOB_CHANNEL endif # DirectWrite (DirectX) *** ../vim-7.4.1536/src/Make_bc5.mak 2016-02-23 14:52:31.865232378 +0100 --- src/Make_bc5.mak 2016-03-11 22:39:30.574341708 +0100 *************** *** 464,470 **** !endif !if ("$(CHANNEL)"=="yes") ! DEFINES = $(DEFINES) -DFEAT_CHANNEL !endif !ifdef XPM --- 464,470 ---- !endif !if ("$(CHANNEL)"=="yes") ! DEFINES = $(DEFINES) -DFEAT_JOB_CHANNEL !endif !ifdef XPM *** ../vim-7.4.1536/src/Make_mvc.mak 2016-02-27 18:13:05.244593026 +0100 --- src/Make_mvc.mak 2016-03-11 22:39:36.438279916 +0100 *************** *** 332,338 **** !if "$(CHANNEL)" == "yes" CHANNEL_PRO = proto/channel.pro CHANNEL_OBJ = $(OBJDIR)/channel.obj ! CHANNEL_DEFS = -DFEAT_CHANNEL NETBEANS_LIB = WSock32.lib !endif --- 332,338 ---- !if "$(CHANNEL)" == "yes" CHANNEL_PRO = proto/channel.pro CHANNEL_OBJ = $(OBJDIR)/channel.obj ! CHANNEL_DEFS = -DFEAT_JOB_CHANNEL NETBEANS_LIB = WSock32.lib !endif *** ../vim-7.4.1536/src/version.c 2016-03-11 22:19:39.934894037 +0100 --- src/version.c 2016-03-11 22:46:40.177815165 +0100 *************** *** 745,746 **** --- 745,748 ---- { /* Add new patch number below this line */ + /**/ + 1537, /**/ -- How To Keep A Healthy Level Of Insanity: 12. Sing along at the opera. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///