Patch 7.3.819
Problem:    Compiling without +eval and with Python isn't working.
Solution:   Add the eval feature when building with Python.
Files:      src/if_py_both.h, src/feature.h, src/eval.c, src/ex_docmd.c,
            src/normal.c, src/ex_docmd.c, src/gui_gtk_x11.c


*** ../vim-7.3.818/src/if_py_both.h     2012-12-05 16:30:03.000000000 +0100
--- src/if_py_both.h    2013-02-14 19:22:59.000000000 +0100
***************
*** 310,316 ****
      return result;
  }
  
- #ifdef FEAT_EVAL
  /*
   * Function to translate a typval_T into a PyObject; this will recursively
   * translate lists/dictionaries into their Python equivalents.
--- 310,315 ----
***************
*** 425,436 ****
  
      return result;
  }
- #endif
  
      static PyObject *
  VimEval(PyObject *self UNUSED, PyObject *args UNUSED)
  {
- #ifdef FEAT_EVAL
      char      *expr;
      typval_T  *our_tv;
      PyObject  *result;
--- 424,433 ----
***************
*** 466,475 ****
      Py_END_ALLOW_THREADS
  
      return result;
- #else
-     PyErr_SetVim(_("expressions disabled at compile time"));
-     return NULL;
- #endif
  }
  
  static PyObject *ConvertToPyObject(typval_T *);
--- 463,468 ----
***************
*** 477,483 ****
      static PyObject *
  VimEvalPy(PyObject *self UNUSED, PyObject *args UNUSED)
  {
- #ifdef FEAT_EVAL
      char      *expr;
      typval_T  *our_tv;
      PyObject  *result;
--- 470,475 ----
***************
*** 506,515 ****
      Py_END_ALLOW_THREADS
  
      return result;
- #else
-     PyErr_SetVim(_("expressions disabled at compile time"));
-     return NULL;
- #endif
  }
  
      static PyObject *
--- 498,503 ----
***************
*** 946,952 ****
  }
  
      static PyObject *
! DictionaryListKeys(PyObject *self)
  {
      dict_T    *dict = ((DictionaryObject *)(self))->dict;
      long_u    todo = dict->dv_hashtab.ht_used;
--- 934,940 ----
  }
  
      static PyObject *
! DictionaryListKeys(PyObject *self UNUSED)
  {
      dict_T    *dict = ((DictionaryObject *)(self))->dict;
      long_u    todo = dict->dv_hashtab.ht_used;
***************
*** 2549,2555 ****
      return 0;
  }
  
- #ifdef FEAT_EVAL
  typedef int (*pytotvfunc)(PyObject *, typval_T *, PyObject *);
  
      static int
--- 2537,2542 ----
***************
*** 2781,2784 ****
            return NULL;
      }
  }
- #endif
--- 2768,2770 ----
*** ../vim-7.3.818/src/feature.h        2013-01-23 13:40:54.000000000 +0100
--- src/feature.h       2013-02-14 19:25:33.000000000 +0100
***************
*** 392,397 ****
--- 392,404 ----
  #endif
  
  /*
+  * +python and +python3 require FEAT_EVAL.
+  */
+ #if !defined(FEAT_EVAL) && (defined(FEAT_PYTHON3) || defined(FEAT_PYTHON))
+ # define FEAT_EVAL
+ #endif
+ 
+ /*
   * +profile           Profiling for functions and scripts.
   */
  #if defined(FEAT_HUGE) \
*** ../vim-7.3.818/src/eval.c   2013-02-13 17:34:59.000000000 +0100
--- src/eval.c  2013-02-14 19:38:09.000000000 +0100
***************
*** 917,923 ****
--- 917,925 ----
      hash_clear(&compat_hashtab);
  
      free_scriptnames();
+ # if defined(FEAT_CMDL_COMPL)
      free_locales();
+ # endif
  
      /* global variables */
      vars_clear(&globvarht);
***************
*** 1561,1568 ****
  }
  
  
- #if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) \
-       || defined(FEAT_COMPL_FUNC) || defined(PROTO)
  /*
   * Call some vimL function and return the result in "*rettv".
   * Uses argv[argc] for the function arguments.  Only Number and String
--- 1563,1568 ----
***************
*** 1640,1692 ****
      return ret;
  }
  
- # if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) || defined(PROTO)
  /*
!  * Call vimL function "func" and return the result as a string.
!  * Returns NULL when calling the function fails.
   * Uses argv[argc] for the function arguments.
   */
!     void *
! call_func_retstr(func, argc, argv, safe)
      char_u      *func;
      int               argc;
      char_u      **argv;
      int               safe;           /* use the sandbox */
  {
      typval_T  rettv;
!     char_u    *retval;
  
      /* All arguments are passed as strings, no conversion to number. */
      if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
!       return NULL;
  
!     retval = vim_strsave(get_tv_string(&rettv));
      clear_tv(&rettv);
      return retval;
  }
- # endif
  
! # if defined(FEAT_COMPL_FUNC) || defined(PROTO)
  /*
!  * Call vimL function "func" and return the result as a number.
!  * Returns -1 when calling the function fails.
   * Uses argv[argc] for the function arguments.
   */
!     long
! call_func_retnr(func, argc, argv, safe)
      char_u      *func;
      int               argc;
      char_u      **argv;
      int               safe;           /* use the sandbox */
  {
      typval_T  rettv;
!     long      retval;
  
      /* All arguments are passed as strings, no conversion to number. */
      if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
!       return -1;
  
!     retval = get_tv_number_chk(&rettv, NULL);
      clear_tv(&rettv);
      return retval;
  }
--- 1640,1693 ----
      return ret;
  }
  
  /*
!  * Call vimL function "func" and return the result as a number.
!  * Returns -1 when calling the function fails.
   * Uses argv[argc] for the function arguments.
   */
!     long
! call_func_retnr(func, argc, argv, safe)
      char_u      *func;
      int               argc;
      char_u      **argv;
      int               safe;           /* use the sandbox */
  {
      typval_T  rettv;
!     long      retval;
  
      /* All arguments are passed as strings, no conversion to number. */
      if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
!       return -1;
  
!     retval = get_tv_number_chk(&rettv, NULL);
      clear_tv(&rettv);
      return retval;
  }
  
! #if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) \
!       || defined(FEAT_COMPL_FUNC) || defined(PROTO)
! 
! # if (defined(FEAT_USR_CMDS) && defined(FEAT_CMDL_COMPL)) || defined(PROTO)
  /*
!  * Call vimL function "func" and return the result as a string.
!  * Returns NULL when calling the function fails.
   * Uses argv[argc] for the function arguments.
   */
!     void *
! call_func_retstr(func, argc, argv, safe)
      char_u      *func;
      int               argc;
      char_u      **argv;
      int               safe;           /* use the sandbox */
  {
      typval_T  rettv;
!     char_u    *retval;
  
      /* All arguments are passed as strings, no conversion to number. */
      if (call_vim_function(func, argc, argv, safe, TRUE, &rettv) == FAIL)
!       return NULL;
  
!     retval = vim_strsave(get_tv_string(&rettv));
      clear_tv(&rettv);
      return retval;
  }
***************
*** 1720,1726 ****
  }
  #endif
  
- 
  /*
   * Save the current function call pointer, and set it to NULL.
   * Used when executing autocommands and for ":source".
--- 1721,1726 ----
***************
*** 9330,9336 ****
   */
      static void
  f_cindent(argvars, rettv)
!     typval_T  *argvars;
      typval_T  *rettv;
  {
  #ifdef FEAT_CINDENT
--- 9330,9336 ----
   */
      static void
  f_cindent(argvars, rettv)
!     typval_T  *argvars UNUSED;
      typval_T  *rettv;
  {
  #ifdef FEAT_CINDENT
***************
*** 10379,10387 ****
  
      static void
  findfilendir(argvars, rettv, find_what)
!     typval_T  *argvars;
      typval_T  *rettv;
!     int               find_what;
  {
  #ifdef FEAT_SEARCHPATH
      char_u    *fname;
--- 10379,10387 ----
  
      static void
  findfilendir(argvars, rettv, find_what)
!     typval_T  *argvars UNUSED;
      typval_T  *rettv;
!     int               find_what UNUSED;
  {
  #ifdef FEAT_SEARCHPATH
      char_u    *fname;
***************
*** 10751,10759 ****
   */
      static void
  foldclosed_both(argvars, rettv, end)
!     typval_T  *argvars;
      typval_T  *rettv;
!     int               end;
  {
  #ifdef FEAT_FOLDING
      linenr_T  lnum;
--- 10751,10759 ----
   */
      static void
  foldclosed_both(argvars, rettv, end)
!     typval_T  *argvars UNUSED;
      typval_T  *rettv;
!     int               end UNUSED;
  {
  #ifdef FEAT_FOLDING
      linenr_T  lnum;
***************
*** 10802,10809 ****
   */
      static void
  f_foldlevel(argvars, rettv)
!     typval_T  *argvars;
!     typval_T  *rettv;
  {
  #ifdef FEAT_FOLDING
      linenr_T  lnum;
--- 10802,10809 ----
   */
      static void
  f_foldlevel(argvars, rettv)
!     typval_T  *argvars UNUSED;
!     typval_T  *rettv UNUSED;
  {
  #ifdef FEAT_FOLDING
      linenr_T  lnum;
***************
*** 11583,11589 ****
      static void
  f_getmatches(argvars, rettv)
      typval_T  *argvars UNUSED;
!     typval_T  *rettv;
  {
  #ifdef FEAT_SEARCH_EXTRA
      dict_T    *dict;
--- 11583,11589 ----
      static void
  f_getmatches(argvars, rettv)
      typval_T  *argvars UNUSED;
!     typval_T  *rettv UNUSED;
  {
  #ifdef FEAT_SEARCH_EXTRA
      dict_T    *dict;
***************
*** 13589,13595 ****
   */
      static void
  f_lispindent(argvars, rettv)
!     typval_T  *argvars;
      typval_T  *rettv;
  {
  #ifdef FEAT_LISP
--- 13589,13595 ----
   */
      static void
  f_lispindent(argvars, rettv)
!     typval_T  *argvars UNUSED;
      typval_T  *rettv;
  {
  #ifdef FEAT_LISP
***************
*** 13983,13990 ****
   */
      static void
  f_matchadd(argvars, rettv)
!     typval_T  *argvars;
!     typval_T  *rettv;
  {
  #ifdef FEAT_SEARCH_EXTRA
      char_u    buf[NUMBUFLEN];
--- 13983,13990 ----
   */
      static void
  f_matchadd(argvars, rettv)
!     typval_T  *argvars UNUSED;
!     typval_T  *rettv UNUSED;
  {
  #ifdef FEAT_SEARCH_EXTRA
      char_u    buf[NUMBUFLEN];
***************
*** 14021,14027 ****
   */
      static void
  f_matcharg(argvars, rettv)
!     typval_T  *argvars;
      typval_T  *rettv;
  {
      if (rettv_list_alloc(rettv) == OK)
--- 14021,14027 ----
   */
      static void
  f_matcharg(argvars, rettv)
!     typval_T  *argvars UNUSED;
      typval_T  *rettv;
  {
      if (rettv_list_alloc(rettv) == OK)
***************
*** 14053,14060 ****
   */
      static void
  f_matchdelete(argvars, rettv)
!     typval_T  *argvars;
!     typval_T  *rettv;
  {
  #ifdef FEAT_SEARCH_EXTRA
      rettv->vval.v_number = match_delete(curwin,
--- 14053,14060 ----
   */
      static void
  f_matchdelete(argvars, rettv)
!     typval_T  *argvars UNUSED;
!     typval_T  *rettv UNUSED;
  {
  #ifdef FEAT_SEARCH_EXTRA
      rettv->vval.v_number = match_delete(curwin,
***************
*** 14871,14878 ****
   */
      static void
  f_reltime(argvars, rettv)
!     typval_T  *argvars;
!     typval_T  *rettv;
  {
  #ifdef FEAT_RELTIME
      proftime_T        res;
--- 14871,14878 ----
   */
      static void
  f_reltime(argvars, rettv)
!     typval_T  *argvars UNUSED;
!     typval_T  *rettv UNUSED;
  {
  #ifdef FEAT_RELTIME
      proftime_T        res;
***************
*** 14920,14926 ****
   */
      static void
  f_reltimestr(argvars, rettv)
!     typval_T  *argvars;
      typval_T  *rettv;
  {
  #ifdef FEAT_RELTIME
--- 14920,14926 ----
   */
      static void
  f_reltimestr(argvars, rettv)
!     typval_T  *argvars UNUSED;
      typval_T  *rettv;
  {
  #ifdef FEAT_RELTIME
***************
*** 15965,15971 ****
      int               flags;      /* SP_SETPCMARK and other SP_ values */
      pos_T     *match_pos;
      linenr_T  lnum_stop;  /* stop at this line if not zero */
!     long      time_limit; /* stop after this many msec */
  {
      char_u    *save_cpo;
      char_u    *pat, *pat2 = NULL, *pat3 = NULL;
--- 15965,15971 ----
      int               flags;      /* SP_SETPCMARK and other SP_ values */
      pos_T     *match_pos;
      linenr_T  lnum_stop;  /* stop at this line if not zero */
!     long      time_limit UNUSED; /* stop after this many msec */
  {
      char_u    *save_cpo;
      char_u    *pat, *pat2 = NULL, *pat3 = NULL;
***************
*** 16390,16397 ****
   */
      static void
  f_setmatches(argvars, rettv)
!     typval_T  *argvars;
!     typval_T  *rettv;
  {
  #ifdef FEAT_SEARCH_EXTRA
      list_T    *l;
--- 16390,16397 ----
   */
      static void
  f_setmatches(argvars, rettv)
!     typval_T  *argvars UNUSED;
!     typval_T  *rettv UNUSED;
  {
  #ifdef FEAT_SEARCH_EXTRA
      list_T    *l;
***************
*** 18463,18469 ****
   */
      static void
  f_undofile(argvars, rettv)
!     typval_T  *argvars;
      typval_T  *rettv;
  {
      rettv->v_type = VAR_STRING;
--- 18463,18469 ----
   */
      static void
  f_undofile(argvars, rettv)
!     typval_T  *argvars UNUSED;
      typval_T  *rettv;
  {
      rettv->v_type = VAR_STRING;
*** ../vim-7.3.818/src/ex_docmd.c       2012-12-05 19:13:11.000000000 +0100
--- src/ex_docmd.c      2013-02-14 20:50:56.000000000 +0100
***************
*** 1734,1739 ****
--- 1734,1741 ----
  #ifdef FEAT_EVAL
            /* avoid that a function call in 'statusline' does this */
            && !getline_equal(fgetline, cookie, get_func_line)
+ #endif
+ #ifdef FEAT_AUTOCMD
            /* avoid that an autocommand, e.g. QuitPre, does this */
            && !getline_equal(fgetline, cookie, getnextac)
  #endif
***************
*** 5375,5381 ****
--- 5377,5385 ----
  #endif
      return FAIL;
  }
+ #endif
  
+ #if defined(FEAT_USR_CMDS) || defined(FEAT_EVAL) || defined(PROTO)
  /*
   * List of names for completion for ":command" with the EXPAND_ flag.
   * Must be alphabetical for completion.
***************
*** 5430,5436 ****
--- 5434,5442 ----
      {EXPAND_USER_VARS, "var"},
      {0, NULL}
  };
+ #endif
  
+ #if defined(FEAT_USR_CMDS) || defined(PROTO)
      static void
  uc_list(name, name_len)
      char_u    *name;
***************
*** 6375,6384 ****
      int               vallen;
      int               *complp;
      long      *argt;
!     char_u    **compl_arg;
  {
      char_u    *arg = NULL;
      size_t    arglen = 0;
      int               i;
      int               valend = vallen;
  
--- 6381,6392 ----
      int               vallen;
      int               *complp;
      long      *argt;
!     char_u    **compl_arg UNUSED;
  {
      char_u    *arg = NULL;
+ # if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
      size_t    arglen = 0;
+ # endif
      int               i;
      int               valend = vallen;
  
***************
*** 6388,6394 ****
--- 6396,6404 ----
        if (value[i] == ',')
        {
            arg = &value[i + 1];
+ # if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
            arglen = vallen - i - 1;
+ # endif
            valend = i;
            break;
        }
*** ../vim-7.3.818/src/normal.c 2013-01-24 21:00:15.000000000 +0100
--- src/normal.c        2013-02-14 19:33:36.000000000 +0100
***************
*** 2292,2298 ****
--- 2292,2300 ----
  {
  #ifdef FEAT_EVAL
      char_u    *(argv[1]);
+ # ifdef FEAT_VIRTUALEDIT
      int               save_virtual_op = virtual_op;
+ # endif
  
      if (*p_opfunc == NUL)
        EMSG(_("E774: 'operatorfunc' is empty"));
***************
*** 2312,2324 ****
--- 2314,2330 ----
        else
            argv[0] = (char_u *)"char";
  
+ # ifdef FEAT_VIRTUALEDIT
        /* Reset virtual_op so that 'virtualedit' can be changed in the
         * function. */
        virtual_op = MAYBE;
+ # endif
  
        (void)call_func_retnr(p_opfunc, 1, argv, FALSE);
  
+ # ifdef FEAT_VIRTUALEDIT
        virtual_op = save_virtual_op;
+ # endif
      }
  #else
      EMSG(_("E775: Eval feature not available"));
*** ../vim-7.3.818/src/ex_docmd.c       2012-12-05 19:13:11.000000000 +0100
--- src/ex_docmd.c      2013-02-14 20:50:56.000000000 +0100
***************
*** 1734,1739 ****
--- 1734,1741 ----
  #ifdef FEAT_EVAL
            /* avoid that a function call in 'statusline' does this */
            && !getline_equal(fgetline, cookie, get_func_line)
+ #endif
+ #ifdef FEAT_AUTOCMD
            /* avoid that an autocommand, e.g. QuitPre, does this */
            && !getline_equal(fgetline, cookie, getnextac)
  #endif
***************
*** 5375,5381 ****
--- 5377,5385 ----
  #endif
      return FAIL;
  }
+ #endif
  
+ #if defined(FEAT_USR_CMDS) || defined(FEAT_EVAL) || defined(PROTO)
  /*
   * List of names for completion for ":command" with the EXPAND_ flag.
   * Must be alphabetical for completion.
***************
*** 5430,5436 ****
--- 5434,5442 ----
      {EXPAND_USER_VARS, "var"},
      {0, NULL}
  };
+ #endif
  
+ #if defined(FEAT_USR_CMDS) || defined(PROTO)
      static void
  uc_list(name, name_len)
      char_u    *name;
***************
*** 6375,6384 ****
      int               vallen;
      int               *complp;
      long      *argt;
!     char_u    **compl_arg;
  {
      char_u    *arg = NULL;
      size_t    arglen = 0;
      int               i;
      int               valend = vallen;
  
--- 6381,6392 ----
      int               vallen;
      int               *complp;
      long      *argt;
!     char_u    **compl_arg UNUSED;
  {
      char_u    *arg = NULL;
+ # if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
      size_t    arglen = 0;
+ # endif
      int               i;
      int               valend = vallen;
  
***************
*** 6388,6394 ****
--- 6396,6404 ----
        if (value[i] == ',')
        {
            arg = &value[i + 1];
+ # if defined(FEAT_EVAL) && defined(FEAT_CMDL_COMPL)
            arglen = vallen - i - 1;
+ # endif
            valend = i;
            break;
        }
*** ../vim-7.3.818/src/gui_gtk_x11.c    2013-01-23 16:00:05.000000000 +0100
--- src/gui_gtk_x11.c   2013-02-14 19:38:42.000000000 +0100
***************
*** 5164,5171 ****
      return FAIL;
  }
  
! #if defined(FEAT_TITLE) \
!       || defined(PROTO)
  /*
   * Return the text window-id and display.  Only required for X-based GUI's
   */
--- 5164,5170 ----
      return FAIL;
  }
  
! #if defined(FEAT_TITLE) || defined(FEAT_EVAL) || defined(PROTO)
  /*
   * Return the text window-id and display.  Only required for X-based GUI's
   */
*** ../vim-7.3.818/src/version.c        2013-02-14 20:58:30.000000000 +0100
--- src/version.c       2013-02-14 22:09:41.000000000 +0100
***************
*** 727,728 ****
--- 727,730 ----
  {   /* Add new patch number below this line */
+ /**/
+     819,
  /**/

-- 
(letter from Mark to Mike, about the film's probable certificate)
      For an 'A' we would have to: Lose as many shits as possible; Take Jesus
      Christ out, if possible; Loose "I fart in your general direction"; Lose
      "the oral sex"; Lose "oh, fuck off"; Lose "We make castanets out of your
      testicles"
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// 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/groups/opt_out.


Raspunde prin e-mail lui