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 -- [email protected] -- 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    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui