Patch 8.2.3006
Problem:    Crash when echoing a value very early. (Naruhiko Nishino)
Solution:   Do not use a NUL to truncate the message, make a copy.
            (closes #8388)
Files:      src/message.c, src/testdir/test_startup.vim


*** ../vim-8.2.3005/src/message.c       2021-04-10 14:03:40.312675756 +0200
--- src/message.c       2021-06-15 22:38:23.738140926 +0200
***************
*** 2751,2769 ****
  
      if (*p != NUL && !(silent_mode && p_verbose == 0))
      {
!       int c = -1;
  
        if (maxlen > 0 && STRLEN(p) > (size_t)maxlen)
        {
!           c = p[maxlen];
!           p[maxlen] = 0;
        }
-       if (info_message)
-           mch_msg((char *)p);
-       else
-           mch_errmsg((char *)p);
-       if (c != -1)
-           p[maxlen] = c;
      }
  
      msg_didout = TRUE;            // assume that line is not empty
--- 2751,2771 ----
  
      if (*p != NUL && !(silent_mode && p_verbose == 0))
      {
!       char_u *tofree = NULL;
  
        if (maxlen > 0 && STRLEN(p) > (size_t)maxlen)
        {
!           tofree = vim_strnsave(p, (size_t)maxlen);
!           p = tofree;
!       }
!       if (p != NULL)
!       {
!           if (info_message)
!               mch_msg((char *)p);
!           else
!               mch_errmsg((char *)p);
!           vim_free(tofree);
        }
      }
  
      msg_didout = TRUE;            // assume that line is not empty
*** ../vim-8.2.3005/src/testdir/test_startup.vim        2021-06-02 
16:49:27.754997419 +0200
--- src/testdir/test_startup.vim        2021-06-15 22:37:57.962207170 +0200
***************
*** 1301,1304 ****
--- 1301,1318 ----
    call delete('Xvimrc')
  endfunc
  
+ func Test_echo_true_in_cmd()
+   let lines =<< trim END
+       echo v:true
+       call writefile(['done'], 'Xresult')
+   END
+   call writefile(lines, 'Xscript')
+   if RunVim([], [], '--cmd "source Xscript" --c q')
+     call assert_equal(['done'], readfile('Xresult'))
+   endif
+   call delete('Xscript')
+   call delete('Xresult')
+ 
+ endfunc
+ 
  " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.3005/src/version.c       2021-06-15 22:13:23.829621578 +0200
--- src/version.c       2021-06-15 22:26:11.299968415 +0200
***************
*** 752,753 ****
--- 752,755 ----
  {   /* Add new patch number below this line */
+ /**/
+     3006,
  /**/

-- 
The fastest way to get an engineer to solve a problem is to declare that the
problem is unsolvable.  No engineer can walk away from an unsolvable problem
until it's solved.
                                (Scott Adams - The Dilbert principle)

 /// 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/202106152039.15FKdqvo1196798%40masaka.moolenaar.net.

Raspunde prin e-mail lui