Patch 8.2.1492
Problem:    Build failures.
Solution:   Move typedef out of #ifdef.  Adjust argument types.  Discover
            America.
Files:      src/structs.h, src/ex_docmd.c


*** ../vim-8.2.1491/src/structs.h       2020-08-20 15:02:38.536534973 +0200
--- src/structs.h       2020-08-20 15:15:08.184556430 +0200
***************
*** 1533,1538 ****
--- 1533,1545 ----
  typedef int (*cfunc_T)(int argcount, typval_T *argvars, typval_T *rettv, void 
*state);
  typedef void (*cfunc_free_T)(void *state);
  
+ // type of getline() last argument
+ typedef enum {
+     GETLINE_NONE,         // do not concatenate any lines
+     GETLINE_CONCAT_CONT,    // concatenate continuation lines
+     GETLINE_CONCAT_ALL            // concatenate continuation and Vim9 # 
comment lines
+ } getline_opt_T;
+ 
  #if defined(FEAT_EVAL) || defined(PROTO)
  typedef struct funccall_S funccall_T;
  
***************
*** 1761,1773 ****
  # endif
  } scriptitem_T;
  
- // type of getline() last argument
- typedef enum {
-     GETLINE_NONE,         // do not concatenate any lines
-     GETLINE_CONCAT_CONT,    // concatenate continuation lines
-     GETLINE_CONCAT_ALL            // concatenate continuation and Vim9 # 
comment lines
- } getline_opt_T;
- 
  // Struct passed through eval() functions.
  // See EVALARG_EVALUATE for a fixed value with eval_flags set to 
EVAL_EVALUATE.
  typedef struct {
--- 1768,1773 ----
*** ../vim-8.2.1491/src/ex_docmd.c      2020-08-20 15:02:38.536534973 +0200
--- src/ex_docmd.c      2020-08-20 15:20:30.751178452 +0200
***************
*** 20,28 ****
  #endif
  
  #ifdef FEAT_EVAL
! static char_u *do_one_cmd(char_u **, int, cstack_T *, char_u 
*(*fgetline)(int, void *, int, int), void *cookie);
  #else
! static char_u *do_one_cmd(char_u **, int, char_u *(*fgetline)(int, void *, 
int, int), void *cookie);
  static int    if_level = 0;           // depth in :if
  #endif
  static void   append_command(char_u *cmd);
--- 20,28 ----
  #endif
  
  #ifdef FEAT_EVAL
! static char_u *do_one_cmd(char_u **, int, cstack_T *, char_u 
*(*fgetline)(int, void *, int, getline_opt_T), void *cookie);
  #else
! static char_u *do_one_cmd(char_u **, int, char_u *(*fgetline)(int, void *, 
int, getline_opt_T), void *cookie);
  static int    if_level = 0;           // depth in :if
  #endif
  static void   append_command(char_u *cmd);
***************
*** 403,413 ****
      int               current_line;           // last read line from growarray
      int               repeating;              // TRUE when looping a second 
time
      // When "repeating" is FALSE use "getline" and "cookie" to get lines
!     char_u    *(*getline)(int, void *, int, int);
      void      *cookie;
  };
  
! static char_u *get_loop_line(int c, void *cookie, int indent, int do_concat);
  static int    store_loop_line(garray_T *gap, char_u *line);
  static void   free_cmdlines(garray_T *gap);
  
--- 403,413 ----
      int               current_line;           // last read line from growarray
      int               repeating;              // TRUE when looping a second 
time
      // When "repeating" is FALSE use "getline" and "cookie" to get lines
!     char_u    *(*getline)(int, void *, int, getline_opt_T);
      void      *cookie;
  };
  
! static char_u *get_loop_line(int c, void *cookie, int indent, getline_opt_T 
options);
  static int    store_loop_line(garray_T *gap, char_u *line);
  static void   free_cmdlines(garray_T *gap);
  
***************
*** 1419,1425 ****
   * Obtain a line when inside a ":while" or ":for" loop.
   */
      static char_u *
! get_loop_line(int c, void *cookie, int indent, int do_concat)
  {
      struct loop_cookie        *cp = (struct loop_cookie *)cookie;
      wcmd_T            *wp;
--- 1419,1425 ----
   * Obtain a line when inside a ":while" or ":for" loop.
   */
      static char_u *
! get_loop_line(int c, void *cookie, int indent, getline_opt_T options)
  {
      struct loop_cookie        *cp = (struct loop_cookie *)cookie;
      wcmd_T            *wp;
***************
*** 1432,1440 ****
  
        // First time inside the ":while"/":for": get line normally.
        if (cp->getline == NULL)
!           line = getcmdline(c, 0L, indent, do_concat);
        else
!           line = cp->getline(c, cp->cookie, indent, do_concat);
        if (line != NULL && store_loop_line(cp->lines_gap, line) == OK)
            ++cp->current_line;
  
--- 1432,1440 ----
  
        // First time inside the ":while"/":for": get line normally.
        if (cp->getline == NULL)
!           line = getcmdline(c, 0L, indent, options);
        else
!           line = cp->getline(c, cp->cookie, indent, options);
        if (line != NULL && store_loop_line(cp->lines_gap, line) == OK)
            ++cp->current_line;
  
***************
*** 1487,1493 ****
      char_u    *(*func)(int, void *, int, getline_opt_T))
  {
  #ifdef FEAT_EVAL
!     char_u            *(*gp)(int, void *, int, int);
      struct loop_cookie *cp;
  
      // When "fgetline" is "get_loop_line()" use the "cookie" to find the
--- 1487,1493 ----
      char_u    *(*func)(int, void *, int, getline_opt_T))
  {
  #ifdef FEAT_EVAL
!     char_u            *(*gp)(int, void *, int, getline_opt_T);
      struct loop_cookie *cp;
  
      // When "fgetline" is "get_loop_line()" use the "cookie" to find the
***************
*** 1516,1522 ****
      void      *cookie)                // argument for fgetline()
  {
  #ifdef FEAT_EVAL
!     char_u            *(*gp)(int, void *, int, int);
      struct loop_cookie  *cp;
  
      // When "fgetline" is "get_loop_line()" use the "cookie" to find the
--- 1516,1522 ----
      void      *cookie)                // argument for fgetline()
  {
  #ifdef FEAT_EVAL
!     char_u            *(*gp)(int, void *, int, getline_opt_T);
      struct loop_cookie  *cp;
  
      // When "fgetline" is "get_loop_line()" use the "cookie" to find the
***************
*** 1544,1550 ****
      char_u    *(*fgetline)(int, void *, int, getline_opt_T) UNUSED,
      void      *cookie)                // argument for fgetline()
  {
!     char_u            *(*gp)(int, void *, int, int);
      struct loop_cookie  *cp;
      wcmd_T            *wp;
  
--- 1544,1550 ----
      char_u    *(*fgetline)(int, void *, int, getline_opt_T) UNUSED,
      void      *cookie)                // argument for fgetline()
  {
!     char_u            *(*gp)(int, void *, int, getline_opt_T);
      struct loop_cookie  *cp;
      wcmd_T            *wp;
  
***************
*** 1694,1700 ****
  #ifdef FEAT_EVAL
      cstack_T  *cstack,
  #endif
!     char_u    *(*fgetline)(int, void *, int, int),
      void      *cookie)                // argument for fgetline()
  {
      char_u    *p;
--- 1694,1700 ----
  #ifdef FEAT_EVAL
      cstack_T  *cstack,
  #endif
!     char_u    *(*fgetline)(int, void *, int, getline_opt_T),
      void      *cookie)                // argument for fgetline()
  {
      char_u    *p;
*** ../vim-8.2.1491/src/version.c       2020-08-20 15:02:38.540534948 +0200
--- src/version.c       2020-08-20 15:21:32.426924971 +0200
***************
*** 756,757 ****
--- 756,759 ----
  {   /* Add new patch number below this line */
+ /**/
+     1492,
  /**/

-- 
Hear about the guy who played a blank tape at full blast?
The mime next door went nuts.

 /// 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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/202008201325.07KDPX9e202178%40masaka.moolenaar.net.

Raspunde prin e-mail lui