Patch 8.2.3957
Problem:    Error messages are spread out.
Solution:   Move more errors to errors.h.
Files:      src/errors.h, src/globals.h, src/arglist.c, src/bufwrite.c,
            src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c src/ex_eval.c,
            src/help.c, src/scriptfile.c, src/usercmd.c, src/userfunc.c,
            src/vim9cmds.c, src/vim9compile.c


*** ../vim-8.2.3956/src/errors.h        2021-12-31 15:09:23.334140877 +0000
--- src/errors.h        2021-12-31 17:22:05.248678533 +0000
***************
*** 266,272 ****
        INIT(= N_("E121: Undefined variable: %s"));
  EXTERN char e_undefined_variable_char_str[]
        INIT(= N_("E121: Undefined variable: %c:%s"));
! EXTERN char e_function_str_already_exists_add_excl_to_replace[]
        INIT(= N_("E122: Function %s already exists, add ! to replace it"));
  EXTERN char e_undefined_function_str[]
        INIT(= N_("E123: Undefined function: %s"));
--- 266,272 ----
        INIT(= N_("E121: Undefined variable: %s"));
  EXTERN char e_undefined_variable_char_str[]
        INIT(= N_("E121: Undefined variable: %c:%s"));
! EXTERN char e_function_str_already_exists_add_bang_to_replace[]
        INIT(= N_("E122: Function %s already exists, add ! to replace it"));
  EXTERN char e_undefined_function_str[]
        INIT(= N_("E123: Undefined function: %s"));
***************
*** 328,334 ****
        INIT(= N_("E150: Not a directory: %s"));
  EXTERN char e_no_match_str[]
        INIT(= N_("E151: No match: %s"));
! EXTERN char e_cannot_open_str_for_writing[]
        INIT(= N_("E152: Cannot open %s for writing"));
  EXTERN char e_unable_to_open_str_for_reading[]
        INIT(= N_("E153: Unable to open %s for reading"));
--- 328,334 ----
        INIT(= N_("E150: Not a directory: %s"));
  EXTERN char e_no_match_str[]
        INIT(= N_("E151: No match: %s"));
! EXTERN char e_cannot_open_str_for_writing_1[]
        INIT(= N_("E152: Cannot open %s for writing"));
  EXTERN char e_unable_to_open_str_for_reading[]
        INIT(= N_("E153: Unable to open %s for reading"));
***************
*** 350,358 ****
  EXTERN char e_breakpoint_not_found_str[]
        INIT(= N_("E161: Breakpoint not found: %s"));
  #endif
! 
  EXTERN char e_no_such_user_defined_command_str[]
        INIT(= N_("E184: No such user-defined command: %s"));
  #ifndef FEAT_DIGRAPHS
  EXTERN char e_no_digraphs_version[]
        INIT(= N_("E196: No digraphs in this version"));
--- 350,419 ----
  EXTERN char e_breakpoint_not_found_str[]
        INIT(= N_("E161: Breakpoint not found: %s"));
  #endif
! EXTERN char e_no_write_since_last_change_for_buffer_str[]
!       INIT(= N_("E162: No write since last change for buffer \"%s\""));
! EXTERN char e_there_is_only_one_file_to_edit[]
!       INIT(= N_("E163: There is only one file to edit"));
! EXTERN char e_cannot_go_before_first_file[]
!       INIT(= N_("E164: Cannot go before first file"));
! EXTERN char e_cannot_go_beyond_last_file[]
!       INIT(= N_("E165: Cannot go beyond last file"));
! EXTERN char e_cant_open_linked_file_for_writing[]
!       INIT(= N_("E166: Can't open linked file for writing"));
! EXTERN char e_scriptencoding_used_outside_of_sourced_file[]
!       INIT(= N_("E167: :scriptencoding used outside of a sourced file"));
! EXTERN char e_finish_used_outside_of_sourced_file[]
!       INIT(= N_("E168: :finish used outside of a sourced file"));
! EXTERN char e_command_too_recursive[]
!       INIT(= N_("E169: Command too recursive"));
! EXTERN char e_missing_endwhile[]
!       INIT(= N_("E170: Missing :endwhile"));
! EXTERN char e_missing_endfor[]
!       INIT(= N_("E170: Missing :endfor"));
! EXTERN char e_missing_endif[]
!       INIT(= N_("E171: Missing :endif"));
! EXTERN char e_missing_marker[]
!       INIT(= N_("E172: Missing marker"));
! EXTERN char e_nr_more_file_to_edit[]
!       INIT(= N_("E173: %d more file to edit"));
! EXTERN char e_nr_more_files_to_edit[]
!       INIT(= N_("E173: %d more files to edit"));
! EXTERN char e_command_already_exists_add_bang_to_replace_it_str[]
!       INIT(= N_("E174: Command already exists: add ! to replace it: %s"));
! EXTERN char e_no_attribute_specified[]
!       INIT(= N_("E175: No attribute specified"));
! EXTERN char e_invalid_number_of_arguments[]
!       INIT(= N_("E176: Invalid number of arguments"));
! EXTERN char e_count_cannot_be_specified_twice[]
!       INIT(= N_("E177: Count cannot be specified twice"));
! EXTERN char e_invalid_default_value_for_count[]
!       INIT(= N_("E178: Invalid default value for count"));
! EXTERN char e_argument_required_for_str[]
!       INIT(= N_("E179: argument required for %s"));
! EXTERN char e_invalid_complete_value_str[]
!       INIT(= N_("E180: Invalid complete value: %s"));
! EXTERN char e_invalid_attribute_str[]
!       INIT(= N_("E181: Invalid attribute: %s"));
! EXTERN char e_invalid_command_name[]
!       INIT(= N_("E182: Invalid command name"));
! EXTERN char e_user_defined_commands_must_start_with_an_uppercase_letter[]
!       INIT(= N_("E183: User defined commands must start with an uppercase 
letter"));
  EXTERN char e_no_such_user_defined_command_str[]
        INIT(= N_("E184: No such user-defined command: %s"));
+ EXTERN char e_cannot_find_color_scheme_str[]
+       INIT(= N_("E185: Cannot find color scheme '%s'"));
+ EXTERN char e_no_previous_directory[]
+       INIT(= N_("E186: No previous directory"));
+ EXTERN char e_directory_unknown[]
+       INIT(= N_("E187: Directory unknown"));
+ EXTERN char e_obtaining_window_position_not_implemented_for_this_platform[]
+       INIT(= N_("E188: Obtaining window position not implemented for this 
platform"));
+ EXTERN char e_str_exists_add_bang_to_override[]
+       INIT(= N_("E189: \"%s\" exists (add ! to override)"));
+ EXTERN char e_cannot_open_str_for_writing_2[]
+       INIT(= N_("E190: Cannot open \"%s\" for writing"));
+ 
+ 
  #ifndef FEAT_DIGRAPHS
  EXTERN char e_no_digraphs_version[]
        INIT(= N_("E196: No digraphs in this version"));
*** ../vim-8.2.3956/src/globals.h       2021-12-31 15:09:23.334140877 +0000
--- src/globals.h       2021-12-31 16:59:16.482821086 +0000
***************
*** 1606,1619 ****
  EXTERN char e_abort[]         INIT(= N_("E470: Command aborted"));
  EXTERN char e_argreq[]                INIT(= N_("E471: Argument required"));
  #ifdef FEAT_EVAL
- EXTERN char e_endif[]         INIT(= N_("E171: Missing :endif"));
  EXTERN char e_catch[]         INIT(= N_("E603: :catch without :try"));
  EXTERN char e_finally[]               INIT(= N_("E606: :finally without 
:try"));
  EXTERN char e_finally_dup[]   INIT(= N_("E607: multiple :finally"));
  EXTERN char e_endtry[]                INIT(= N_("E600: Missing :endtry"));
  EXTERN char e_no_endtry[]     INIT(= N_("E602: :endtry without :try"));
- EXTERN char e_endwhile[]      INIT(= N_("E170: Missing :endwhile"));
- EXTERN char e_endfor[]                INIT(= N_("E170: Missing :endfor"));
  EXTERN char e_while[]         INIT(= N_("E588: :endwhile without :while"));
  EXTERN char e_for[]           INIT(= N_("E588: :endfor without :for"));
  #endif
--- 1606,1616 ----
*** ../vim-8.2.3956/src/arglist.c       2021-12-24 20:27:58.029861532 +0000
--- src/arglist.c       2021-12-31 16:48:24.652130572 +0000
***************
*** 673,683 ****
      if (argn < 0 || argn >= ARGCOUNT)
      {
        if (ARGCOUNT <= 1)
!           emsg(_("E163: There is only one file to edit"));
        else if (argn < 0)
!           emsg(_("E164: Cannot go before first file"));
        else
!           emsg(_("E165: Cannot go beyond last file"));
      }
      else
      {
--- 673,683 ----
      if (argn < 0 || argn >= ARGCOUNT)
      {
        if (ARGCOUNT <= 1)
!           emsg(_(e_there_is_only_one_file_to_edit));
        else if (argn < 0)
!           emsg(_(e_cannot_go_before_first_file));
        else
!           emsg(_(e_cannot_go_beyond_last_file));
      }
      else
      {
*** ../vim-8.2.3956/src/bufwrite.c      2021-12-05 21:46:31.172891155 +0000
--- src/bufwrite.c      2021-12-31 16:49:30.263991776 +0000
***************
*** 1821,1827 ****
                            || (mch_lstat((char *)fname, &st) == 0
                                && (st.st_dev != st_old.st_dev
                                    || st.st_ino != st_old.st_ino)))
!                       errmsg = (char_u *)_("E166: Can't open linked file for 
writing");
                    else
  #endif
                    {
--- 1821,1828 ----
                            || (mch_lstat((char *)fname, &st) == 0
                                && (st.st_dev != st_old.st_dev
                                    || st.st_ino != st_old.st_ino)))
!                       errmsg =
!                             (char_u *)_(e_cant_open_linked_file_for_writing);
                    else
  #endif
                    {
*** ../vim-8.2.3956/src/evalvars.c      2021-12-24 21:36:08.428028943 +0000
--- src/evalvars.c      2021-12-31 17:01:19.126585813 +0000
***************
*** 638,644 ****
            marker = dot;
        else
        {
!           emsg(_("E172: Missing marker"));
            return NULL;
        }
      }
--- 638,644 ----
            marker = dot;
        else
        {
!           emsg(_(e_missing_marker));
            return NULL;
        }
      }
*** ../vim-8.2.3956/src/ex_cmds2.c      2021-11-12 11:25:06.291264320 +0000
--- src/ex_cmds2.c      2021-12-31 16:45:12.648552025 +0000
***************
*** 367,373 ****
                                                                  buf->b_fname)
                    :
  #endif
!               semsg(_("E162: No write since last change for buffer \"%s\""),
                    buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname))
        {
            save = no_wait_return;
--- 367,373 ----
                                                                  buf->b_fname)
                    :
  #endif
!               semsg(_(e_no_write_since_last_change_for_buffer_str),
                    buf_spname(buf) != NULL ? buf_spname(buf) : buf->b_fname))
        {
            save = no_wait_return;
*** ../vim-8.2.3956/src/ex_docmd.c      2021-12-30 13:45:53.678853155 +0000
--- src/ex_docmd.c      2021-12-31 17:20:57.640792804 +0000
***************
*** 677,683 ****
  #endif
            )
      {
!       emsg(_("E169: Command too recursive"));
  #ifdef FEAT_EVAL
        // When converting to an exception, we do not include the command name
        // since this is not an error of the specific command.
--- 677,683 ----
  #endif
            )
      {
!       emsg(_(e_command_too_recursive));
  #ifdef FEAT_EVAL
        // When converting to an exception, we do not include the command name
        // since this is not an error of the specific command.
***************
*** 1214,1224 ****
            if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
                emsg(_(e_endtry));
            else if (cstack.cs_flags[cstack.cs_idx] & CSF_WHILE)
!               emsg(_(e_endwhile));
            else if (cstack.cs_flags[cstack.cs_idx] & CSF_FOR)
!               emsg(_(e_endfor));
            else
!               emsg(_(e_endif));
        }
  
        /*
--- 1214,1224 ----
            if (cstack.cs_flags[cstack.cs_idx] & CSF_TRY)
                emsg(_(e_endtry));
            else if (cstack.cs_flags[cstack.cs_idx] & CSF_WHILE)
!               emsg(_(e_missing_endwhile));
            else if (cstack.cs_flags[cstack.cs_idx] & CSF_FOR)
!               emsg(_(e_missing_endfor));
            else
!               emsg(_(e_missing_endif));
        }
  
        /*
***************
*** 5561,5568 ****
                return FAIL;
            }
  #endif
!           semsg(NGETTEXT("E173: %d more file to edit",
!                       "E173: %d more files to edit", n), n);
            quitmore = 2;           // next try to quit is allowed
        }
        return FAIL;
--- 5561,5568 ----
                return FAIL;
            }
  #endif
!           semsg(NGETTEXT(e_nr_more_file_to_edit,
!                          e_nr_more_files_to_edit , n), n);
            quitmore = 2;           // next try to quit is allowed
        }
        return FAIL;
***************
*** 5609,5615 ****
  #endif
      }
      else if (load_colors(eap->arg) == FAIL)
!       semsg(_("E185: Cannot find color scheme '%s'"), eap->arg);
  
  #ifdef FEAT_VTP
      else if (has_vtp_working())
--- 5609,5615 ----
  #endif
      }
      else if (load_colors(eap->arg) == FAIL)
!       semsg(_(e_cannot_find_color_scheme_str), eap->arg);
  
  #ifdef FEAT_VTP
      else if (has_vtp_working())
***************
*** 7377,7383 ****
        pdir = get_prevdir(scope);
        if (pdir == NULL)
        {
!           emsg(_("E186: No previous directory"));
            return FALSE;
        }
        new_dir = pdir;
--- 7377,7383 ----
        pdir = get_prevdir(scope);
        if (pdir == NULL)
        {
!           emsg(_(e_no_previous_directory));
            return FALSE;
        }
        new_dir = pdir;
***************
*** 7510,7516 ****
            msg((char *)NameBuff);
      }
      else
!       emsg(_("E187: Unknown"));
  }
  
  /*
--- 7510,7516 ----
            msg((char *)NameBuff);
      }
      else
!       emsg(_(e_directory_unknown));
  }
  
  /*
***************
*** 7716,7722 ****
        }
        else
  # endif
!           emsg(_("E188: Obtaining window position not implemented for this 
platform"));
      }
      else
      {
--- 7716,7722 ----
        }
        else
  # endif
!           
emsg(_(e_obtaining_window_position_not_implemented_for_this_platform));
      }
      else
      {
***************
*** 8303,8314 ****
  #endif
      if (!forceit && *mode != 'a' && vim_fexists(fname))
      {
!       semsg(_("E189: \"%s\" exists (add ! to override)"), fname);
        return NULL;
      }
  
      if ((fd = mch_fopen((char *)fname, mode)) == NULL)
!       semsg(_("E190: Cannot open \"%s\" for writing"), fname);
  
      return fd;
  }
--- 8303,8314 ----
  #endif
      if (!forceit && *mode != 'a' && vim_fexists(fname))
      {
!       semsg(_(e_str_exists_add_bang_to_override), fname);
        return NULL;
      }
  
      if ((fd = mch_fopen((char *)fname, mode)) == NULL)
!       semsg(_(e_cannot_open_str_for_writing_2), fname);
  
      return fd;
  }
*** ../vim-8.2.3956/src/ex_eval.c       2021-11-23 14:52:03.029446451 +0000
--- src/ex_eval.c       2021-12-31 16:59:50.446755715 +0000
***************
*** 1413,1419 ****
        if (!(fl & (CSF_WHILE | CSF_FOR)))
        {
            if (!(fl & CSF_TRY))
!               eap->errmsg = _(e_endif);
            else if (fl & CSF_FINALLY)
                eap->errmsg = _(e_endtry);
            // Try to find the matching ":while" and report what's missing.
--- 1413,1419 ----
        if (!(fl & (CSF_WHILE | CSF_FOR)))
        {
            if (!(fl & CSF_TRY))
!               eap->errmsg = _(e_missing_endif);
            else if (fl & CSF_FINALLY)
                eap->errmsg = _(e_endtry);
            // Try to find the matching ":while" and report what's missing.
***************
*** 2484,2493 ****
  get_end_emsg(cstack_T *cstack)
  {
      if (cstack->cs_flags[cstack->cs_idx] & CSF_WHILE)
!       return _(e_endwhile);
      if (cstack->cs_flags[cstack->cs_idx] & CSF_FOR)
!       return _(e_endfor);
!     return _(e_endif);
  }
  
  
--- 2484,2493 ----
  get_end_emsg(cstack_T *cstack)
  {
      if (cstack->cs_flags[cstack->cs_idx] & CSF_WHILE)
!       return _(e_missing_endwhile);
      if (cstack->cs_flags[cstack->cs_idx] & CSF_FOR)
!       return _(e_missing_endfor);
!     return _(e_missing_endif);
  }
  
  
*** ../vim-8.2.3956/src/help.c  2021-12-31 15:09:23.334140877 +0000
--- src/help.c  2021-12-31 17:21:50.476703540 +0000
***************
*** 995,1001 ****
      if (fd_tags == NULL)
      {
        if (!ignore_writeerr)
!           semsg(_(e_cannot_open_str_for_writing), NameBuff);
        FreeWild(filecount, files);
        return;
      }
--- 995,1001 ----
      if (fd_tags == NULL)
      {
        if (!ignore_writeerr)
!           semsg(_(e_cannot_open_str_for_writing_1), NameBuff);
        FreeWild(filecount, files);
        return;
      }
*** ../vim-8.2.3956/src/scriptfile.c    2021-12-27 17:21:38.020449109 +0000
--- src/scriptfile.c    2021-12-31 16:50:48.091829878 +0000
***************
*** 1919,1925 ****
  
      if (!getline_equal(eap->getline, eap->cookie, getsourceline))
      {
!       emsg(_("E167: :scriptencoding used outside of a sourced file"));
        return;
      }
  
--- 1919,1925 ----
  
      if (!getline_equal(eap->getline, eap->cookie, getsourceline))
      {
!       emsg(_(e_scriptencoding_used_outside_of_sourced_file));
        return;
      }
  
***************
*** 1983,1989 ****
      if (getline_equal(eap->getline, eap->cookie, getsourceline))
        do_finish(eap, FALSE);
      else
!       emsg(_("E168: :finish used outside of a sourced file"));
  }
  
  /*
--- 1983,1989 ----
      if (getline_equal(eap->getline, eap->cookie, getsourceline))
        do_finish(eap, FALSE);
      else
!       emsg(_(e_finish_used_outside_of_sourced_file));
  }
  
  /*
*** ../vim-8.2.3956/src/usercmd.c       2021-12-10 21:46:05.035979827 +0000
--- src/usercmd.c       2021-12-31 17:11:27.405716339 +0000
***************
*** 678,684 ****
  
      if (command_complete[i].expand == 0)
      {
!       semsg(_("E180: Invalid complete value: %s"), value);
        return FAIL;
      }
  
--- 678,684 ----
  
      if (command_complete[i].expand == 0)
      {
!       semsg(_(e_invalid_complete_value_str), value);
        return FAIL;
      }
  
***************
*** 726,732 ****
  
      if (len == 0)
      {
!       emsg(_("E175: No attribute specified"));
        return FAIL;
      }
  
--- 726,732 ----
  
      if (len == 0)
      {
!       emsg(_(e_no_attribute_specified));
        return FAIL;
      }
  
***************
*** 781,787 ****
            else
            {
  wrong_nargs:
!               emsg(_("E176: Invalid number of arguments"));
                return FAIL;
            }
        }
--- 781,787 ----
            else
            {
  wrong_nargs:
!               emsg(_(e_invalid_number_of_arguments));
                return FAIL;
            }
        }
***************
*** 796,802 ****
                if (*def >= 0)
                {
  two_count:
!                   emsg(_("E177: Count cannot be specified twice"));
                    return FAIL;
                }
  
--- 796,802 ----
                if (*def >= 0)
                {
  two_count:
!                   emsg(_(e_count_cannot_be_specified_twice));
                    return FAIL;
                }
  
***************
*** 806,812 ****
                if (p != val + vallen || vallen == 0)
                {
  invalid_count:
!                   emsg(_("E178: Invalid default value for count"));
                    return FAIL;
                }
            }
--- 806,812 ----
                if (p != val + vallen || vallen == 0)
                {
  invalid_count:
!                   emsg(_(e_invalid_default_value_for_count));
                    return FAIL;
                }
            }
***************
*** 840,846 ****
        {
            if (val == NULL)
            {
!               emsg(_("E179: argument required for -complete"));
                return FAIL;
            }
  
--- 840,846 ----
        {
            if (val == NULL)
            {
!               semsg(_(e_argument_required_for_str), "-complete");
                return FAIL;
            }
  
***************
*** 853,859 ****
            *argt |= EX_RANGE;
            if (val == NULL)
            {
!               emsg(_("E179: argument required for -addr"));
                return FAIL;
            }
            if (parse_addr_type_arg(val, (int)vallen, addr_type_arg) == FAIL)
--- 853,859 ----
            *argt |= EX_RANGE;
            if (val == NULL)
            {
!               semsg(_(e_argument_required_for_str), "-addr");
                return FAIL;
            }
            if (parse_addr_type_arg(val, (int)vallen, addr_type_arg) == FAIL)
***************
*** 865,871 ****
        {
            char_u ch = attr[len];
            attr[len] = '\0';
!           semsg(_("E181: Invalid attribute: %s"), attr);
            attr[len] = ch;
            return FAIL;
        }
--- 865,871 ----
        {
            char_u ch = attr[len];
            attr[len] = '\0';
!           semsg(_(e_invalid_attribute_str), attr);
            attr[len] = ch;
            return FAIL;
        }
***************
*** 945,951 ****
  #endif
                    )
            {
!               semsg(_("E174: Command already exists: add ! to replace it: 
%s"),
                                                                         name);
                goto fail;
            }
--- 945,951 ----
  #endif
                    )
            {
!               semsg(_(e_command_already_exists_add_bang_to_replace_it_str),
                                                                         name);
                goto fail;
            }
***************
*** 1085,1091 ****
            ++p;
      if (!ends_excmd2(eap->arg, p) && !VIM_ISWHITE(*p))
      {
!       emsg(_("E182: Invalid command name"));
        return;
      }
      end = p;
--- 1085,1091 ----
            ++p;
      if (!ends_excmd2(eap->arg, p) && !VIM_ISWHITE(*p))
      {
!       emsg(_(e_invalid_command_name));
        return;
      }
      end = p;
***************
*** 1097,1103 ****
      if (!has_attr && ends_excmd2(eap->arg, p))
        uc_list(name, end - name);
      else if (!ASCII_ISUPPER(*name))
!       emsg(_("E183: User defined commands must start with an uppercase 
letter"));
      else if ((name_len == 1 && *name == 'X')
          || (name_len <= 4
                  && STRNCMP(name, "Next", name_len > 4 ? 4 : name_len) == 0))
--- 1097,1103 ----
      if (!has_attr && ends_excmd2(eap->arg, p))
        uc_list(name, end - name);
      else if (!ASCII_ISUPPER(*name))
!       emsg(_(e_user_defined_commands_must_start_with_an_uppercase_letter));
      else if ((name_len == 1 && *name == 'X')
          || (name_len <= 4
                  && STRNCMP(name, "Next", name_len > 4 ? 4 : name_len) == 0))
*** ../vim-8.2.3956/src/userfunc.c      2021-12-30 13:28:56.812073798 +0000
--- src/userfunc.c      2021-12-31 17:05:47.366200353 +0000
***************
*** 2360,2366 ****
      if (fp != NULL)
      {
        // TODO: handle ! to overwrite
!       semsg(_(e_function_str_already_exists_add_excl_to_replace), global);
        return FAIL;
      }
  
--- 2360,2366 ----
      if (fp != NULL)
      {
        // TODO: handle ! to overwrite
!       semsg(_(e_function_str_already_exists_add_bang_to_replace), global);
        return FAIL;
      }
  
***************
*** 4380,4386 ****
            if (fudi.fd_dict != NULL && fudi.fd_newkey == NULL)
                emsg(_(e_funcdict));
            else if (name != NULL && find_func(name, is_global, NULL) != NULL)
!               
emsg_funcname(e_function_str_already_exists_add_excl_to_replace, name);
        }
  
        if (!eap->skip && did_emsg)
--- 4380,4386 ----
            if (fudi.fd_dict != NULL && fudi.fd_newkey == NULL)
                emsg(_(e_funcdict));
            else if (name != NULL && find_func(name, is_global, NULL) != NULL)
!               
emsg_funcname(e_function_str_already_exists_add_bang_to_replace, name);
        }
  
        if (!eap->skip && did_emsg)
***************
*** 4438,4444 ****
                if (vim9script)
                    emsg_funcname(e_name_already_defined_str, name);
                else
!                   
emsg_funcname(e_function_str_already_exists_add_excl_to_replace, name);
                goto erret;
            }
            if (fp->uf_calls > 0)
--- 4438,4444 ----
                if (vim9script)
                    emsg_funcname(e_name_already_defined_str, name);
                else
!                   
emsg_funcname(e_function_str_already_exists_add_bang_to_replace, name);
                goto erret;
            }
            if (fp->uf_calls > 0)
*** ../vim-8.2.3956/src/vim9cmds.c      2021-12-27 17:21:38.024449102 +0000
--- src/vim9cmds.c      2021-12-31 16:59:53.674749498 +0000
***************
*** 1520,1530 ****
        if (scope == NULL)
            emsg(_(e_no_endtry));
        else if (scope->se_type == WHILE_SCOPE)
!           emsg(_(e_endwhile));
        else if (scope->se_type == FOR_SCOPE)
!           emsg(_(e_endfor));
        else
!           emsg(_(e_endif));
        return NULL;
      }
  
--- 1520,1530 ----
        if (scope == NULL)
            emsg(_(e_no_endtry));
        else if (scope->se_type == WHILE_SCOPE)
!           emsg(_(e_missing_endwhile));
        else if (scope->se_type == FOR_SCOPE)
!           emsg(_(e_missing_endfor));
        else
!           emsg(_(e_missing_endif));
        return NULL;
      }
  
*** ../vim-8.2.3956/src/vim9compile.c   2021-12-31 14:06:41.409853997 +0000
--- src/vim9compile.c   2021-12-31 16:59:57.054743021 +0000
***************
*** 3109,3119 ****
      if (cctx.ctx_scope != NULL)
      {
        if (cctx.ctx_scope->se_type == IF_SCOPE)
!           emsg(_(e_endif));
        else if (cctx.ctx_scope->se_type == WHILE_SCOPE)
!           emsg(_(e_endwhile));
        else if (cctx.ctx_scope->se_type == FOR_SCOPE)
!           emsg(_(e_endfor));
        else
            emsg(_(e_missing_rcurly));
        goto erret;
--- 3109,3119 ----
      if (cctx.ctx_scope != NULL)
      {
        if (cctx.ctx_scope->se_type == IF_SCOPE)
!           emsg(_(e_missing_endif));
        else if (cctx.ctx_scope->se_type == WHILE_SCOPE)
!           emsg(_(e_missing_endwhile));
        else if (cctx.ctx_scope->se_type == FOR_SCOPE)
!           emsg(_(e_missing_endfor));
        else
            emsg(_(e_missing_rcurly));
        goto erret;
*** ../vim-8.2.3956/src/version.c       2021-12-31 15:21:49.661260891 +0000
--- src/version.c       2021-12-31 17:24:50.848396127 +0000
***************
*** 751,752 ****
--- 751,754 ----
  {   /* Add new patch number below this line */
+ /**/
+     3957,
  /**/

-- 
Apathy Error: Don't bother striking any key.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            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/20211231172920.453401C0A5B%40moolenaar.net.

Raspunde prin e-mail lui