patch 8.1.2418: bufnr('$') is wrong after recycling popup buffer
Problem: bufnr('$') is wrong after recycling popup buffer.
Solution: Sort the buffer list by buffer number. (closes #5335)
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index dc22743..5d7f46f 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -3168,4 +3168,21 @@
call delete('XtestPopupSign')
endfunc
+func Test_popupwin_bufnr()
+ let popwin = popup_create(['blah'], #{})
+ let popbuf = winbufnr(popwin)
+ split asdfasdf
+ let newbuf = bufnr()
+ call assert_true(newbuf > popbuf, 'New buffer number is higher')
+ call assert_equal(newbuf, bufnr('$'))
+ call popup_clear()
+ let popwin = popup_create(['blah'], #{})
+ " reuses previous buffer number
+ call assert_equal(popbuf, winbufnr(popwin))
+ call assert_equal(newbuf, bufnr('$'))
+
+ call popup_clear()
+ bwipe!
+endfunc
+
" vim: shiftwidth=2 sts=2