Patch 8.1.0846
Problem:    Not easy to recognize the system Vim runs on.
Solution:   Add more items to the features list. (Ozaki Kiichi, closes #3855)
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_channel.vim, src/testdir/test_functions.vim,
            src/testdir/test_terminal.vim, src/testdir/test_writefile.vim


*** ../vim-8.1.0845/runtime/doc/eval.txt        2019-01-24 21:57:11.578719824 
+0100
--- runtime/doc/eval.txt        2019-01-29 22:49:20.265156161 +0100
***************
*** 10110,10115 ****
--- 10170,10176 ----
  browse                        Compiled with |:browse| support, and browse() 
will
                        work.
  browsefilter          Compiled with support for |browsefilter|.
+ bsd                   Compiled on an OS in the BSD family (excluding macOS).
  builtin_terms         Compiled with some builtin terminals.
  byte_offset           Compiled with support for 'o' in 'statusline'
  cindent                       Compiled with 'cindent' support.
***************
*** 10162,10167 ****
--- 10224,10230 ----
  gui_win32             Compiled with MS Windows Win32 GUI.
  gui_win32s            idem, and Win32s system being used (Windows 3.1)
  hangul_input          Compiled with Hangul input support. |hangul|
+ hpux                  HP-UX version of Vim.
  iconv                 Can use iconv() for conversion.
  insert_expand         Compiled with support for CTRL-X expansion commands in
                        Insert mode.
***************
*** 10172,10177 ****
--- 10235,10241 ----
  libcall                       Compiled with |libcall()| support.
  linebreak             Compiled with 'linebreak', 'breakat', 'showbreak' and
                        'breakindent' support.
+ linux                 Linux version of Vim.
  lispindent            Compiled with support for lisp indenting.
  listcmds              Compiled with commands for the buffer list |:files|
                        and the argument list |arglist|.
***************
*** 10230,10236 ****
  startuptime           Compiled with |--startuptime| support.
  statusline            Compiled with support for 'statusline', 'rulerformat'
                        and special formats of 'titlestring' and 'iconstring'.
! sun_workshop          Compiled with support for Sun |workshop|.
  syntax                        Compiled with syntax highlighting support 
|syntax|.
  syntax_items          There are active syntax highlighting items for the
                        current buffer.
--- 10294,10301 ----
  startuptime           Compiled with |--startuptime| support.
  statusline            Compiled with support for 'statusline', 'rulerformat'
                        and special formats of 'titlestring' and 'iconstring'.
! sun                   SunOS version of Vim.
! sun_workshop          Support for Sun |workshop| has been removed.
  syntax                        Compiled with syntax highlighting support 
|syntax|.
  syntax_items          There are active syntax highlighting items for the
                        current buffer.
*** ../vim-8.1.0845/src/evalfunc.c      2019-01-26 17:28:22.224599141 +0100
--- src/evalfunc.c      2019-01-29 22:53:05.411401755 +0100
***************
*** 6118,6123 ****
--- 6118,6132 ----
  #ifdef __BEOS__
        "beos",
  #endif
+ #if defined(BSD) && !defined(MACOS_X)
+       "bsd",
+ #endif
+ #ifdef hpux
+       "hpux",
+ #endif
+ #ifdef __linux__
+       "linux",
+ #endif
  #ifdef MACOS_X
        "mac",          /* Mac OS X (and, once, Mac OS Classic) */
        "osx",          /* Mac OS X */
***************
*** 6129,6134 ****
--- 6138,6148 ----
  #ifdef __QNX__
        "qnx",
  #endif
+ #ifdef SUN_SYSTEM
+       "sun",
+ #else
+       "moon",
+ #endif
  #ifdef UNIX
        "unix",
  #endif
***************
*** 6158,6164 ****
  #endif
        "autocmd",
  #ifdef FEAT_AUTOCHDIR
!        "autochdir",
  #endif
  #ifdef FEAT_AUTOSERVERNAME
        "autoservername",
--- 6172,6178 ----
  #endif
        "autocmd",
  #ifdef FEAT_AUTOCHDIR
!       "autochdir",
  #endif
  #ifdef FEAT_AUTOSERVERNAME
        "autoservername",
*** ../vim-8.1.0845/src/testdir/test_channel.vim        2019-01-25 
21:01:13.240877414 +0100
--- src/testdir/test_channel.vim        2019-01-29 22:46:18.030612829 +0100
***************
*** 29,35 ****
  func s:get_resources()
    let pid = getpid()
  
!   if has('mac')
      return systemlist('lsof -p ' . pid . ' | awk 
''$4~/^[0-9]*[rwu]$/&&$5=="REG"{print$NF}''')
    elseif isdirectory('/proc/' . pid . '/fd/')
      return systemlist('readlink /proc/' . pid . '/fd/* | grep -v ''^/dev/''')
--- 29,35 ----
  func s:get_resources()
    let pid = getpid()
  
!   if executable('lsof')
      return systemlist('lsof -p ' . pid . ' | awk 
''$4~/^[0-9]*[rwu]$/&&$5=="REG"{print$NF}''')
    elseif isdirectory('/proc/' . pid . '/fd/')
      return systemlist('readlink /proc/' . pid . '/fd/* | grep -v ''^/dev/''')
*** ../vim-8.1.0845/src/testdir/test_functions.vim      2019-01-27 
15:00:32.472263438 +0100
--- src/testdir/test_functions.vim      2019-01-29 22:46:18.030612829 +0100
***************
*** 1054,1075 ****
      let libc = 'msvcrt.dll'
    elseif has('mac')
      let libc = 'libSystem.B.dylib'
!   elseif system('uname -s') =~ 'SunOS'
!     " Set the path to libc.so according to the architecture.
!     let test_bits = system('file ' . GetVimProg())
!     let test_arch = system('uname -p')
!     if test_bits =~ '64-bit' && test_arch =~ 'sparc'
!       let libc = '/usr/lib/sparcv9/libc.so'
!     elseif test_bits =~ '64-bit' && test_arch =~ 'i386'
!       let libc = '/usr/lib/amd64/libc.so'
      else
!       let libc = '/usr/lib/libc.so'
      endif
-   else
-     " On Unix, libc.so can be in various places.
-     " Interestingly, using an empty string for the 1st argument of libcall
-     " allows to call functions from libc which is not documented.
-     let libc = ''
    endif
  
    if has('win32')
--- 1054,1084 ----
      let libc = 'msvcrt.dll'
    elseif has('mac')
      let libc = 'libSystem.B.dylib'
!   elseif executable('ldd')
!     let libc = matchstr(split(system('ldd ' . GetVimProg())), '/libc\.so\>')
!   endif
!   if get(l:, 'libc', '') ==# ''
!     " On Unix, libc.so can be in various places.
!     if has('linux')
!       " There is not documented but regarding the 1st argument of glibc's
!       " dlopen an empty string and nullptr are equivalent, so using an empty
!       " string for the 1st argument of libcall allows to call functions.
!       let libc = ''
!     elseif has('sun')
!       " Set the path to libc.so according to the architecture.
!       let test_bits = system('file ' . GetVimProg())
!       let test_arch = system('uname -p')
!       if test_bits =~ '64-bit' && test_arch =~ 'sparc'
!         let libc = '/usr/lib/sparcv9/libc.so'
!       elseif test_bits =~ '64-bit' && test_arch =~ 'i386'
!         let libc = '/usr/lib/amd64/libc.so'
!       else
!         let libc = '/usr/lib/libc.so'
!       endif
      else
!       " Unfortunately skip this test until a good way is found.
!       return
      endif
    endif
  
    if has('win32')
***************
*** 1208,1210 ****
--- 1217,1248 ----
    call assert_fails('call confirm("Are you sure?", "&Yes\n&No\n", [])', 
'E745:')
    call assert_fails('call confirm("Are you sure?", "&Yes\n&No\n", 0, [])', 
'E730:')
  endfunc
+ 
+ func Test_platform_name()
+   " The system matches at most only one name.
+   let names = ['amiga', 'beos', 'bsd', 'hpux', 'linux', 'mac', 'qnx', 'sun', 
'vms', 'win32', 'win32unix']
+   call assert_inrange(0, 1, len(filter(copy(names), 'has(v:val)')))
+ 
+   " Is Unix?
+   call assert_equal(has('beos'), has('beos') && has('unix'))
+   call assert_equal(has('bsd'), has('bsd') && has('unix'))
+   call assert_equal(has('hpux'), has('hpux') && has('unix'))
+   call assert_equal(has('linux'), has('linux') && has('unix'))
+   call assert_equal(has('mac'), has('mac') && has('unix'))
+   call assert_equal(has('qnx'), has('qnx') && has('unix'))
+   call assert_equal(has('sun'), has('sun') && has('unix'))
+   call assert_equal(has('win32'), has('win32') && !has('unix'))
+   call assert_equal(has('win32unix'), has('win32unix') && has('unix'))
+ 
+   if has('unix') && executable('uname')
+     let uname = system('uname')
+     call assert_equal(uname =~? 'BeOS', has('beos'))
+     call assert_equal(uname =~? 'BSD\|DragonFly', has('bsd'))
+     call assert_equal(uname =~? 'HP-UX', has('hpux'))
+     call assert_equal(uname =~? 'Linux', has('linux'))
+     call assert_equal(uname =~? 'Darwin', has('mac'))
+     call assert_equal(uname =~? 'QNX', has('qnx'))
+     call assert_equal(uname =~? 'SunOS', has('sun'))
+     call assert_equal(uname =~? 'CYGWIN\|MSYS', has('win32unix'))
+   endif
+ endfunc
*** ../vim-8.1.0845/src/testdir/test_terminal.vim       2019-01-24 
17:59:35.143217444 +0100
--- src/testdir/test_terminal.vim       2019-01-29 22:46:18.030612829 +0100
***************
*** 559,565 ****
  
  func Test_terminal_noblock()
    let buf = term_start(&shell)
!   if has('mac')
      " The shell or something else has a problem dealing with more than 1000
      " characters at the same time.
      let len = 1000
--- 559,565 ----
  
  func Test_terminal_noblock()
    let buf = term_start(&shell)
!   if has('bsd') || has('mac') || has('sun')
      " The shell or something else has a problem dealing with more than 1000
      " characters at the same time.
      let len = 1000
*** ../vim-8.1.0845/src/testdir/test_writefile.vim      2019-01-24 
17:59:35.143217444 +0100
--- src/testdir/test_writefile.vim      2019-01-29 22:46:18.030612829 +0100
***************
*** 33,39 ****
  endfunc
  
  func Test_writefile_fails_conversion()
!   if !has('iconv') || system('uname -s') =~ 'SunOS'
      return
    endif
    set nobackup nowritebackup
--- 33,39 ----
  endfunc
  
  func Test_writefile_fails_conversion()
!   if !has('iconv') || has('sun')
      return
    endif
    set nobackup nowritebackup
*** ../vim-8.1.0845/src/version.c       2019-01-29 22:29:03.550799929 +0100
--- src/version.c       2019-01-29 22:56:21.525901115 +0100
***************
*** 785,786 ****
--- 785,788 ----
  {   /* Add new patch number below this line */
+ /**/
+     846,
  /**/

-- 
    f y cn rd ths thn y cn hv grt jb n cmptr prgrmmng

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            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].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui