Patch 8.1.0748
Problem:    Using sprintf() instead of semsg().
Solution:   Use semsg().  Fix bug with E888. (Ozaki Kiichi, closes #3801)
Files:      src/regexp.c


*** ../vim-8.1.0747/src/regexp.c        2019-01-13 23:38:33.407773189 +0100
--- src/regexp.c        2019-01-14 22:39:42.656618226 +0100
***************
*** 338,343 ****
--- 338,344 ----
  #define IEMSG_RET_NULL(m) return (iemsg((m)), rc_did_emsg = TRUE, (void 
*)NULL)
  #define EMSG_RET_FAIL(m) return (emsg((m)), rc_did_emsg = TRUE, FAIL)
  #define EMSG2_RET_NULL(m, c) return (semsg((const char *)(m), (c) ? "" : 
"\\"), rc_did_emsg = TRUE, (void *)NULL)
+ #define EMSG3_RET_NULL(m, c, a) return (semsg((const char *)(m), (c) ? "" : 
"\\", (a)), rc_did_emsg = TRUE, (void *)NULL)
  #define EMSG2_RET_FAIL(m, c) return (semsg((const char *)(m), (c) ? "" : 
"\\"), rc_did_emsg = TRUE, FAIL)
  #define EMSG_ONE_RET_NULL EMSG2_RET_NULL(_("E369: invalid item in %s%%[]"), 
reg_magic == MAGIC_ALL)
  
***************
*** 1895,1908 ****
      }
      if (re_multi_type(peekchr()) != NOT_MULTI)
      {
!       /* Can't have a multi follow a multi. */
        if (peekchr() == Magic('*'))
!           sprintf((char *)IObuff, _("E61: Nested %s*"),
!                                           reg_magic >= MAGIC_ON ? "" : "\\");
!       else
!           sprintf((char *)IObuff, _("E62: Nested %s%c"),
!               reg_magic == MAGIC_ALL ? "" : "\\", no_Magic(peekchr()));
!       EMSG_RET_NULL((char *)IObuff);
      }
  
      return ret;
--- 1896,1906 ----
      }
      if (re_multi_type(peekchr()) != NOT_MULTI)
      {
!       // Can't have a multi follow a multi.
        if (peekchr() == Magic('*'))
!           EMSG2_RET_NULL(_("E61: Nested %s*"), reg_magic >= MAGIC_ON);
!       EMSG3_RET_NULL(_("E62: Nested %s%c"), reg_magic == MAGIC_ALL,
!                                                         no_Magic(peekchr()));
      }
  
      return ret;
***************
*** 2075,2084 ****
        case Magic('{'):
        case Magic('*'):
        c = no_Magic(c);
!       sprintf((char *)IObuff, _("E64: %s%c follows nothing"),
!               (c == '*' ? reg_magic >= MAGIC_ON : reg_magic == MAGIC_ALL)
!               ? "" : "\\", c);
!       EMSG_RET_NULL((char *)IObuff);
        /* NOTREACHED */
  
        case Magic('~'):                /* previous substitute pattern */
--- 2073,2080 ----
        case Magic('{'):
        case Magic('*'):
        c = no_Magic(c);
!       EMSG3_RET_NULL(_("E64: %s%c follows nothing"),
!               (c == '*' ? reg_magic >= MAGIC_ON : reg_magic == MAGIC_ALL), c);
        /* NOTREACHED */
  
        case Magic('~'):                /* previous substitute pattern */
***************
*** 3403,3413 ****
      if (*regparse == '\\')
        regparse++;     /* Allow either \{...} or \{...\} */
      if (*regparse != '}')
!     {
!       sprintf((char *)IObuff, _("E554: Syntax error in %s{...}"),
!                                         reg_magic == MAGIC_ALL ? "" : "\\");
!       EMSG_RET_FAIL((char *)IObuff);
!     }
  
      /*
       * Reverse the range if there was a '-', or make sure it is in the right
--- 3399,3406 ----
      if (*regparse == '\\')
        regparse++;     /* Allow either \{...} or \{...\} */
      if (*regparse != '}')
!       EMSG2_RET_FAIL(_("E554: Syntax error in %s{...}"),
!                                                      reg_magic == MAGIC_ALL);
  
      /*
       * Reverse the range if there was a '-', or make sure it is in the right
***************
*** 6998,7004 ****
  re_mult_next(char *what)
  {
      if (re_multi_type(peekchr()) == MULTI_MULT)
!       EMSG2_RET_FAIL(_("E888: (NFA regexp) cannot repeat %s"), what);
      return OK;
  }
  
--- 6991,7001 ----
  re_mult_next(char *what)
  {
      if (re_multi_type(peekchr()) == MULTI_MULT)
!     {
!        semsg(_("E888: (NFA regexp) cannot repeat %s"), what);
!        rc_did_emsg = TRUE;
!        return FAIL;
!     }
      return OK;
  }
  
*** ../vim-8.1.0747/src/version.c       2019-01-14 22:22:25.584624342 +0100
--- src/version.c       2019-01-14 22:45:14.998094549 +0100
***************
*** 797,798 ****
--- 797,800 ----
  {   /* Add new patch number below this line */
+ /**/
+     748,
  /**/

-- 
$ echo pizza > /dev/oven

 /// 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