¿Qué es una función vimrc para determinar si se ha modificado un búfer?

Tengo una función de tabulación que robé / modifiqué desde algún lugar, pero me gustaría que el nombre de archivo tenga un asterisco antes si se ha modificado desde la última vez que se escribió en el disco (es decir, si: up realizaría una acción) .

Por ejemplo, esta es mi tabulación cuando abro el archivo vim -p * .txt

file1.txt file2.txt file3.txt

Luego, después de cambiar file1.txt y no guardarlo:

*file1.txt file2.txt file3.txt

Mi función de tabla:

if exists("+showtabline")
   function MyTabLine()
      let s = ''
      let t = tabpagenr()
      let i = 1
      while i <= tabpagenr('$')
         let buflist = tabpagebuflist(i)
         let winnr = tabpagewinnr(i)
         let s .= ' %*'
         let s .= (i == t ? '%#TabLineSel#' : '%#TabLine#')
         let file = bufname(buflist[winnr - 1])
         let file = fnamemodify(file, ':p:t')
         if file == ''
            let file = '[No Name]'
         endif
         let s .= file
         let i = i + 1
      endwhile
      let s .= '%T%#TabLineFill#%='
      let s .= (tabpagenr('$') > 1 ? '%999XX' : 'X')
      return s
   endfunction
   set stal=2
   set tabline=%!MyTabLine()
endif