Mercurial > vim
changeset 9911:74e345d2878c v7.4.2229
commit https://github.com/vim/vim/commit/f04507d132fbcb63999167ec006fc6e700b5af4f
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Aug 20 15:05:39 2016 +0200
patch 7.4.2229
Problem: Startup test fails on Solaris.
Solution: Recognize a character device. (Danek Duvall)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 20 Aug 2016 15:15:06 +0200 |
parents | 48fbbc83e702 |
children | 4c5014d76564 |
files | src/buffer.c src/fileio.c src/proto/fileio.pro src/version.c src/vim.h |
diffstat | 5 files changed, 12 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/buffer.c +++ b/src/buffer.c @@ -220,6 +220,9 @@ open_buffer( # ifdef S_ISSOCK || S_ISSOCK(perm) # endif +# ifdef OPEN_CHR_FILES + || (S_ISCHR(perm) && is_dev_fd_file(curbuf->b_ffname)) +# endif )) read_fifo = TRUE; if (read_fifo)
--- a/src/fileio.c +++ b/src/fileio.c @@ -27,10 +27,6 @@ /* Is there any system that doesn't have access()? */ #define USE_MCH_ACCESS -#if (defined(sun) || defined(__FreeBSD__)) && defined(S_ISCHR) -# define OPEN_CHR_FILES -static int is_dev_fd_file(char_u *fname); -#endif #ifdef FEAT_MBYTE static char_u *next_fenc(char_u **pp); # ifdef FEAT_EVAL @@ -2718,14 +2714,14 @@ failed: return OK; } -#ifdef OPEN_CHR_FILES +#if defined(OPEN_CHR_FILES) || defined(PROTO) /* * Returns TRUE if the file name argument is of the form "/dev/fd/\d\+", * which is the name of files used for process substitution output by * some shells on some operating systems, e.g., bash on SunOS. * Do not accept "/dev/fd/[012]", opening these may hang Vim. */ - static int + int is_dev_fd_file(char_u *fname) { return (STRNCMP(fname, "/dev/fd/", 8) == 0
--- a/src/proto/fileio.pro +++ b/src/proto/fileio.pro @@ -1,6 +1,7 @@ /* fileio.c */ void filemess(buf_T *buf, char_u *name, char_u *s, int attr); int readfile(char_u *fname, char_u *sfname, linenr_T from, linenr_T lines_to_skip, linenr_T lines_to_read, exarg_T *eap, int flags); +int is_dev_fd_file(char_u *fname); int prep_exarg(exarg_T *eap, buf_T *buf); void set_file_options(int set_options, exarg_T *eap); void set_forced_fenc(exarg_T *eap);
--- a/src/version.c +++ b/src/version.c @@ -764,6 +764,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2229, +/**/ 2228, /**/ 2227,
--- a/src/vim.h +++ b/src/vim.h @@ -2485,4 +2485,8 @@ typedef enum #define FNE_INCL_BR 1 /* include [] in name */ #define FNE_CHECK_START 2 /* check name starts with valid character */ +#if (defined(sun) || defined(__FreeBSD__)) && defined(S_ISCHR) +# define OPEN_CHR_FILES +#endif + #endif /* VIM__H */