patch 8.1.0341: :argadd in empty buffer changes the buffer name

Problem:    :argadd in empty buffer changes the buffer name. (Pavol Juhas)
Solution:   Don't re-use the current buffer when not going to edit the file.
            (closes #3397)  Do re-use the current buffer for :next.
diff --git a/src/testdir/test_arglist.vim b/src/testdir/test_arglist.vim
index 87bda70..a6c71c9 100644
--- a/src/testdir/test_arglist.vim
+++ b/src/testdir/test_arglist.vim
@@ -80,6 +80,24 @@
   call assert_equal(0, len(argv()))
 endfunc
 
+func Test_argadd_empty_curbuf()
+  new
+  let curbuf = bufnr('%')
+  call writefile(['test', 'Xargadd'], 'Xargadd')
+  " must not re-use the current buffer.
+  argadd Xargadd
+  call assert_equal(curbuf, bufnr('%'))
+  call assert_equal('', bufname('%'))
+  call assert_equal(1, line('$'))
+  rew
+  call assert_notequal(curbuf, bufnr('%'))
+  call assert_equal('Xargadd', bufname('%'))
+  call assert_equal(2, line('$'))
+
+  %argd
+  bwipe!
+endfunc
+
 func Init_abc()
   args a b c
   next