Commit Graph

383 Commits

Author SHA1 Message Date
James McCoy
564e9dc17f vim-patch:7.4.2101
Problem:    Looping over windows, buffers and tab pages is inconsistant.
Solution:   Use FOR_ALL_ macros everywhere. (Yegappan Lakshmanan)

2932359000
2017-03-11 20:32:09 -05:00
ZyX
095e6cc2e0 *: Fix linter errors 2017-02-15 03:15:47 +03:00
ZyX
efa2682e3b *: Partial string handling refactoring
Main points:

- Replace `char_u` with `char` in some cases.
- Remove `str[len] = NUL` hack in some cases when `str` may be considered
  `const`.
2017-02-15 02:48:33 +03:00
Marco Hinz
b0cf071d43 Fix clint issues 2017-02-04 17:55:46 -05:00
Marco Hinz
c05e7f0fdd vim-patch:7.4.2024
Problem:  More buf_valid() calls can be optimized.
Solution: Use bufref_valid() instead.

NOTE: Some changes related to channels and the Python and Netbeans interfaces
were obviously left out.

7c0a2f367f
2017-02-04 17:55:46 -05:00
Justin M. Keyes
d97d66e173 coverity/155512: Pass correct length to strncat()
References 8bc2bffda9
2017-01-23 15:49:37 +01:00
ZyX
8bc2bffda9 coverity/155512: Pass correct length to strncat() 2017-01-23 02:03:48 +03:00
Justin M. Keyes
c86caf7e41 readfile(): Fix read-after-free.
References https://github.com/neovim/neovim/pull/5956#pullrequestreview-17812620

Helped-by: oni-link <knil.ino@gmail.com>
2017-01-21 21:57:44 +01:00
Marco Hinz
340f79b4b8 Merge #5928 'New event: DirChanged' 2017-01-16 13:36:16 +01:00
Michael Schupikov
95a4244587 readfile(): Avoid file message when reading from stdin. #5956
Closes #5921
2017-01-16 01:23:48 +01:00
Justin M. Keyes
3ba5e43d2e Merge #5918 'vim-patch: 7.4.2006, 7.4.2075, 7.4.2077, 7.4.2117, 7.4.2300, 7.4.2313, 7.4.2314'. 2017-01-16 00:59:50 +01:00
Marco Hinz
30f775f8a6 Don't expand filenames during autocmd 2017-01-13 15:29:04 +01:00
Justin M. Keyes
b5e8e2f20d lint 2017-01-13 01:17:11 +01:00
Justin M. Keyes
42c922b32c open_buffer(): Do BufEnter for directories.
Abuse NOTDONE to give some nuance to the return value of readfile(), so
that open_buffer() can distinguish between "failed, lol" and "failed
because the path is a directory".

Before this change, Vim *already* creates a new buffer when a directory
is edited. So there is no reason it should not raise BufEnter, that was
an implementation detail of ye olde readfile().

Most of the changes in this commit merely preserve the old semantics.
The "implicit" change that we actually are interested in, is this line
in `open_buffer()`, where `retval` being non-FAIL allows EVENT_BUFENTER
to be applied:

    apply_autocmds_retval(EVENT_BUFENTER, NULL, NULL, FALSE, curbuf, &retval);

References https://github.com/vim/vim/issues/1353
2017-01-12 23:10:38 +01:00
James McCoy
b260004d65 Merge pull request #5860 from jamessan/vim-7.4.1889
vim-patch:7.4.1889
2017-01-09 20:20:03 -05:00
lonerover
a584375e9f vim-patch:7.4.2314
Problem:    No error when deleting an augroup while it's the current one.
Solution:   Disallow deleting an augroup when it's the current one.

de653f0880
2017-01-09 12:23:25 +08:00
lonerover
f8f04350bd vim-patch:7.4.2313
Problem:    Crash when deleting an augroup and listing an autocommand.
            (Dominique Pelle)
Solution:   Make sure deleted_augroup is valid.

b62cc36a60
2017-01-09 12:12:42 +08:00
lonerover
6f285226a9 vim-patch:7.4.2300
Problem:    Get warning for deleting autocommand group when the autocommand
            using the group is scheduled for deletion. (Pavol Juhas)
Solution:   Check for deleted autocommand.

5c80908ced
2017-01-09 11:06:11 +08:00
lonerover
7486e7586d vim-patch:7.4.2117
Problem:    Deleting an augroup that still has autocmds does not give a
            warning.  The next defined augroup takes its place.
Solution:   Give a warning and prevent the index being used for another group
            name.

f2c4c39119
2017-01-09 10:58:05 +08:00
lonerover
6c69bc9788 fix lint error 2017-01-06 09:25:15 +08:00
lonerover
bef645e5e4 vim-patch:7.4.2103
Problem:    Can't have "augroup END" right after ":au!".
Solution:   Check for the bar character before the command argument.

e99e84497b
2017-01-05 13:33:56 +08:00
James McCoy
bfb5180627 vim-patch:7.4.1889
Problem:    When umask is set to 0177 Vim can't create temp files. (Lcd)
Solution:   Also correct umask when using mkdtemp().

35d88f4e2f
2017-01-02 20:12:47 -05:00
James McCoy
7775fb7dff lint 2016-12-08 10:36:24 -05:00
James McCoy
d1473880bc vim-patch:7.4.1754
Problem:    When 'filetype' was set and reloading a buffer which does not
            cause it to be set, the syntax isn't loaded. (KillTheMule)
Solution:   Remember whether the FileType event was fired and fire it if not.
            (Anton Lindqvist, closes vim/vim#747)

c3691332f7
2016-12-08 10:27:32 -05:00
Justin M. Keyes
0213e99aaf Merge #5561 'inccommand'
Initial work by:
  Robin Elrharbi-Fleury (Robinhola)
  Audrey Rayé (Adrey06)
  Philémon Hullot (DesbyP)
  Aymeric Collange (aym7)
  Clément Guyomard (Clement0)

Major revisions by:
  KillTheMule
  Björn Linse <bjorn.linse@gmail.com>
  Justin M. Keyes <justinkz@gmail.com>
2016-11-09 03:19:22 +01:00
Justin M. Keyes
e4e7b2d239 lint 2016-11-08 21:21:00 +01:00
Justin M. Keyes
c04ffe866d 'inccommand': rework
- Eliminate/isolate static/global variables
- Remove special-case parameter from buflist_new()
- Remove special-case ECMD_RESERVED_BUFNR
- To determine when u_undo_and_forget() should be done, check
  b_changedtick instead of a heuristic.
- use mb_string2cells() instead of strlen() to measure the :sub patterns
- call ml_close() before buf_clear_file(). Avoids leaks caught by ASan.

Original patch by:
  Robin Elrharbi-Fleury (Robinhola)
  Audrey Rayé (Adrey06)
  Philémon Hullot (DesbyP)
  Aymeric Collange (aym7)
  Clément Guyomard (Clement0)
2016-11-08 21:20:08 +01:00
Björn Linse
5072ab9e5b encoding: cleanup mbyte.c given fixed encoding=utf-8
Eliminate mb_init():
Set "enc_utf" and "has_mbyte" early. Eliminate "enc_unicode" and "enc_latin1like".
init_chartab() and screenalloc() are already invoked elsewhere
in the initialization process.
The EncodingChanged autocmd cannot be triggered.
At initialization, there is no spellfiles to reload
2016-11-05 14:49:24 +01:00
KillTheMule
e8c0f90962 Linted 2016-10-30 10:52:05 +01:00
KillTheMule
13841a56b4 Incsubsitution feature
Originally implemented by

* Clement0
* DesbyP
* aym7
* Adrey06
* Robinhola

in #4811. Major reworkings and bug
fixes by

* bfredl

Most tests suggested by ZyX-l, suggestions for improvements by oni-link.
2016-10-30 10:21:18 +01:00
Justin M. Keyes
ca93b4a299 read_string: Use char if you mean char. 2016-09-13 16:20:09 +02:00
Justin M. Keyes
df072c3b2b refactor: eliminate misc2.c
move `call_shell` to misc1.c
Move some fns to state.c
Move some fns to option.c
Move some fns to memline.c
Move `vim_chdir*` fns to file_search.c
Move some fns to new module, bytes.c
Move some fns to fileio.c
2016-09-13 16:20:09 +02:00
Jurica Bradarić
73b8424fad vim-patch:7.4.1913 (#5260)
Problem:    When ":doautocmd" is used modelines are used even when no
            autocommands were executed. (Daniel Hahler)
Solution:   Skip processing modelines. (closes vim/vim#854)

1610d05241
2016-09-04 23:43:41 +02:00
Justin M. Keyes
8625c1d104 win32: readfile(): Directories should not show "[Permission Denied]".
77135447e0 introduced:

    if (!newfile) {
      return FAIL;
    }

which changed the semantics of the un-braced `else` in the
`#ifndef UNIX` block immediately above it.

This commit restores the semantics of Vim. Until now it mostly worked by
accident, but on Windows it would mean that opening a directory would
show "[Permission Denied]".
2016-08-07 20:39:37 -04:00
Justin M. Keyes
8d09301090 readfile(): Ensure perm for non-Unix.
In the (!read_buffer && !read_stdin) case, always set `perm` for all
platforms. This also means we no longer need to set `perm` in the case
of (fd < 0) for non-Unix.
2016-08-07 19:07:42 -04:00
Justin M. Keyes
a8d1b5f721 readfile(): readonly: Also check "not writable". 2016-08-04 19:02:33 -04:00
Shougo Matsushita
b8c27a83b3 readfile(): Less-destructive readonly check.
Fixes #4162
Fixes #4200
Closes #4944

Regression by 4a138137f7. That commit mentions
a "possible race condition" but the cost isn't worth the (unexplained) gain.
2016-08-04 19:01:52 -04:00
Daniel Xu
5f1a153831 os/fs: Rename os_file_exists to os_path_exists (#4973)
Because the old name did not indicate that the function
would return true on directories as well.
2016-07-06 01:40:25 -04:00
Michael Ennen
cf29b4025d vim-patch:7.4.1276
Problem:    Warning for not using return value of fcntl().
Solution:   Explicitly ignore the return value.

fbc4b4db3a
2016-05-17 11:24:25 -07:00
KillTheMule
691e3bbc99 Linting. 2016-05-08 20:24:02 +02:00
Rui Abreu Ferreira
24dac220d3 vim-patch:7.4.896
Problem:    Editing a URL, which netrw should handle, doesn't work.
Solution:   Avoid changing slashes to backslashes. (Yasuhiro Matsumoto)

b4f6a46b01

Cherry-picked from https://github.com/neovim/neovim/pull/810, rebased.
2016-05-08 20:24:02 +02:00
ZyX
cf4e1fb0f4 *: Fix new linter errors
Originally there were 128 new errors, so I thought this is a good idea to fix 
all of them. Of course, this commit also fixes many suppressed errors.
2016-05-01 20:35:51 +03:00
Justin M. Keyes
7db4a15e95 os_nodetype: impl with libuv 2016-04-29 00:22:43 -04:00
Rui Abreu Ferreira
136374ec6f Remove old UNIX ifdef from buf_write()
When backupcopy=auto buf_write assumes backupcopy=yes when the file is a
hard/symbolic link. However this check was guarded by a UNIX ifdef. The
check itself is portable and the guard can be removed.

Added a couple tests to check the behaviour of bkc=auto and bkc=no
with a symbolic link.

Reported in #4525
2016-04-28 23:58:21 +01:00
Jurica Bradaric
9e1cacecbe Fix another linter error. 2016-04-20 10:00:07 +02:00
Jurica Bradaric
2dfc8de1cf Merge tempfile.c back into fileio.c 2016-04-20 08:25:51 +02:00
ZyX
28275fe5c3 *: Fix preincrement lint errors 2016-04-18 02:48:20 +03:00
ZyX
494b1c9bee *: Make set_vim_var_\* functions have proper argument types 2016-04-18 02:48:20 +03:00
Justin M. Keyes
b9701c2a2b Merge #4152 'vim-patch:7.4.{798,800,805,810,811,814,815,816,817,820,825}'. 2016-02-09 01:58:54 -05:00
watiko
f104ce2d15 vim-patch:7.4.643
Problem:    Using the default file format for Mac files. (Issue 77)
Solution:   Reset the try_mac counter in the right place. (Oswald)

c6b7217ff5
2016-02-03 06:38:38 +09:00