Commit Graph

467 Commits

Author SHA1 Message Date
Michael Reed
d86ebc7afb Macro cleanup: PROTO
Regarding dict_lookup() in eval.c: both definitions are the same, the
only difference being the spacing between the indirection operator and
the indentation level.
2015-01-14 15:07:16 -05:00
Justin M. Keyes
9b4f6fbd33 Merge pull request #1782 from fwalch/small-patches
vim-patch: Multiple small patches
2015-01-13 09:38:19 -05:00
Eliseo Martínez
7f7262e933 Cleanup: Rename getdigits() family functions. 2015-01-11 21:04:08 +01:00
Eliseo Martínez
04c0658024 Cleanup: Refactor getdigits().
Problem  : getdigits() currently returns a long, but at most places,
           return value is casted (unsafely) into an int. Making casts
           safe would introduce a lot of fuss in the form of assertions
           checking for limits.
Note     : We cannot just change return type to int, because, at some
           places, legitimate long values are used. For example, in
           diff.c, for line numbers.
Solution : Introduce new functions:
           - get_digits()      : Gets an intmax_t from a string.
           - get_int_digits()  : Wrapper for ints.
           - get_long_digits() : Wrapper for longs.
           And replace getdigits() invocations by the appropiate
           wrapper invocations.
2015-01-11 17:18:39 +01:00
Florian Walch
a240e3d686 vim-patch:7.4.466
Problem:    CTRL-W } does not open preview window. (Erik Falor)
Solution:   Don't set g_do_tagpreview for CTRL-W }.

https://code.google.com/p/vim/source/detail?r=v7-4-466
2015-01-08 08:27:40 +01:00
Justin M. Keyes
bb1be08bae vim-patch:7.4.487
Problem:    ":sign jump" may use another window even though the file is
	    already edited in the current window.
Solution:   First check if the file is in the current window. (James McCoy)

https://code.google.com/p/vim/source/detail?r=v7-4-487
2014-12-29 23:48:23 -05:00
Florian Walch
05b2f01f6a vim-patch:7.4.518
Problem:    Using status line height in width computations.
Solution:   Use one instead. (Hirohito Higashi)

https://code.google.com/p/vim/source/detail?r=v7-4-518
2014-12-24 00:32:55 +01:00
Eliseo Martínez
5394796fd3 Fix warnings: window.c: win_close_othertab(): Np dereference: FP.
Problem    : Dereference of null pointer @ 1980.
Diagnostic : False positive.
Rationale  : I haven't been able to find the real reason why this is
             signaled. Nonetheless, I've been able to track down the
             introduction of this warning to commit
             77135447e0.
             The change there affecting this function is just a
             transformation maintaining semantics. So, this must be a
             FP, though I can't explain why.
             Analyzer thinks `win->w_buffer` can be null in line 1980,
             following an error path assuming win->w_buffer null at line
             1819. Given that `win_close` function was not modified by
             mentioned commit, I don't understand why this path is
             analyzed after the changes, but not before them. Or if it's
             analyzed, why it's discarded before changes but not after
             them. I don't see anything in changes to
             `close_last_window_tabpage` that should affect to
             being able to deduce `win->w_buffer` is not null.
Resolution : Assert buffer not null in `win_close_othertab`.
             Function comments state that passed window should have a
             buffer that can be hidden, which implies there should be a
             buffer.
             Reverting changes to `close_last_window_tabpage` in
             mentioned commit would be another way to fix this (tried
             and worked).
             But assert is preferred in this case because flat style
             reads better and we have some other way to fix it.
2014-12-17 22:10:53 +01:00
Felipe Oliveira Carvalho
77135447e0 Reduce indentation level by early returning or continuing loop
Replace code like this

```c
func() {
    if (cond) {
	...
	...
	...
    }
    return ret;
}
```

```c
for (...) {
    if (cond) {
	...
	...
	...
    }
}
```

with

```c
func() {
    if (!cond) {
	return ret;
    }
    ...
    ...
    ...
}
```

```c
for (...) {
    if (!cond) {
	continue;
    }
    ...
    ...
    ...
}
```
2014-12-13 23:36:11 -03:00
Thiago de Arruda
14f88b6865 term: Move more mouse functions to mouse.c 2014-12-02 07:21:28 -03:00
Eliseo Martínez
f47d52ea4f Fix warnings: window.c: tabline_height(): Np dereference: FP.
Problem    : Dereference of null pointer @ 4978.
Diagnostic : False positive.
Rationale  : tabline_height() shouldn't be called when a tab doesn't
             exist yet (this is, before initialization).
Resolution : Assert function precondition.
2014-11-18 21:57:48 +01:00
Eliseo Martínez
f544d976fa Fix warnings: window.c: win_drag_vsep_line(): Np dereference: FP.
Problem    : Dereference of null pointer @ 4512.
Diagnostic : False positive.
Rationale  : Suggested error path implies `fr == NULL` after 4504.
             That's not possible, because:
             - curfr and curfr->next must be both nonnull, as we are
               dragging the divider between the two.
             - after conditional, fr is one of those two (the one that
               grows).
Resolution : Assert fr.
2014-11-18 21:57:48 +01:00
Eliseo Martínez
5955f44ade Fix warnings: window.c: winframe_remove(): Np dereference: FP.
Problem    : Dereference of null pointer @ 2196.
Diagnostic : False positive.
Rationale  : Suggested error path implies `frp->child == NULL` while
             being under condition `frp2->fr_layout == frp->fr_layout`,
             which is impossible:
             - If frp2 is frp's parent, then frp2's layout is FR_COL or
               FR_ROW;
             - if frp->child is NULL, the frp's layout is FR_LEAF.
             - Therefore, they can't be equal.
Resolution : Assert frp->child not null.
2014-11-18 21:57:48 +01:00
Eliseo Martínez
c802869e99 Fix warnings: window.c: win_rotate(): Np dereference: FP.
Problem    : Dereference of null pointer @ 1268.
Diagnostic : False positive.
Rationale  : Suggested error path implies current window's frame to be
             the only child of its parent, which is ruled out by
             `if (firstwin == lastwin) {` check at the beginning.
Resolution : Assert another child remains after removing current frame.
             Strictly, assert is only needed in false branch of
             conditional, but we add it the same in the true branch to
             reduce reader surprise.
             Several forms of a single assert after
             `if (firstwin == lastwin) {` were tried, but analyzer
             cannot follow implications that way.
2014-11-18 21:57:47 +01:00
Wayne Rowcliffe
63e2558870 Convert some values from buffer_defs.h to bools 2014-11-12 00:38:34 -06:00
Justin M. Keyes
5e65e3eae0 Merge pull request #1208 from war1025/dev/remove_for_all_windows
Remove FOR_ALL_WINDOWS and replace with FOR_ALL_WINDOWS_IN_TAB(curtab)
2014-10-03 13:44:50 -04:00
Justin M. Keyes
4b0f524915 Merge pull request #1225 from mhinz/p7.4.454
vim-patch:7.4.454
2014-09-26 16:08:48 -04:00
Justin M. Keyes
d97a8e312e Merge pull request #1209 from atwupack/vp-7.4.320
vim-patch:7.4.320
2014-09-26 16:05:49 -04:00
Wayne Rowcliffe
9b6f192693 Replace FOR_ALL_WINDOWS with FOR_ALL_WINDOWS_IN_TAB(curtab) 2014-09-24 19:00:50 -05:00
Marco Hinz
4afd8f92ae vim-patch:7.4.454
Problem:  When using a Visual selection of multiple words and doing
          CTRL-W_] it jumps to the tag matching the word under the
          cursor, not the selected text.  (Patrick hemmer)

Solution: Do not reset Visual mode. (idea by Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=0cdff7c268559f8f34eae073a013ece71b62b9e3
2014-09-23 23:13:09 +02:00
André Twupack
57d497c51b vim-patch:7.4.386
Problem:    When splitting a window the changelist position is wrong.
Solution:   Copy the changelist position. (Jacob Niehus)

https://code.google.com/p/vim/source/detail?r=v7-4-386
2014-09-22 20:46:28 +02:00
Wayne Rowcliffe
683bc797a0 FOR_ALL_WINDOWS_IN_TAB and local variables in FOR_ALL_TAB_WINDOWS 2014-09-22 09:31:09 -05:00
Wayne Rowcliffe
b4ec6c1a4b FOR_ALL_TABS helper 2014-09-22 09:26:40 -05:00
André Twupack
2b937fe00d vim-patch:7.4.320
Problem:    Possible crash when an BufLeave autocommand deletes the buffer.
Solution:   Check for the window pointer being valid.  Postpone freeing the
            window until autocommands are done. (Yasuhiro Matsumoto)

https://code.google.com/p/vim/source/detail?r=v7-4-320
2014-09-21 10:42:27 +02:00
André Twupack
f379b44747 vim-patch:7.4.377
Problem:    When 'equalalways' is set a split may report "no room" even though
            there is plenty of room.
Solution:   Compute the available room properly. (Yukihiro Nakadaira)

https://code.google.com/p/vim/source/detail?r=v7-4-377
2014-09-18 22:34:55 +02:00
André Twupack
ab4feeac82 vim-patch:7.4.373
Problem:    Compiler warning for unused argument and unused variable.
Solution:   Add UNUSED.  Move variable inside #ifdef.

https://code.google.com/p/vim/source/detail?r=v7-4-373
2014-09-18 22:31:01 +02:00
André Twupack
781d129445 vim-patch:7.4.372
Problem:    When 'winminheight' is zero there might not be one line for the
            current window.
Solution:   Change the size computations. (Yukihiro Nakadaira)

https://code.google.com/p/vim/source/detail?r=v7-4-372
2014-09-18 22:31:01 +02:00
André Twupack
16fb7fa960 vim-patch:7.4.365
Problem:    Crash when using ":botright split" when there isn't much space.
Solution:   Add a check for the minimum width/height. (Yukihiro Nakadaira)

https://code.google.com/p/vim/source/detail?r=v7-4-365
2014-09-18 22:31:01 +02:00
Shougo Matsushita
aa66f2487e vim-patch:7.4.369
Problem:    Using freed memory when exiting while compiled with EXITFREE.
Solution:   Set curwin to NULL and check for that. (Dominique Pelle)

https://code.google.com/p/vim/source/detail?r=v7-4-369
2014-09-17 07:01:01 +09:00
Shougo Matsushita
f5320f645b vim-patch:7.4.368
Problem:    Restoring the window sizes after closing the command line window
            doesn't work properly if there are nested splits.
Solution:   Restore the sizes twice. (Hirohito Higashi)

https://code.google.com/p/vim/source/detail?r=v7-4-368
2014-09-16 22:51:16 +09:00
André Twupack
12ca4f582e vim-patch:7.4.349
Problem:    When there are matches to highlight the whole window is redrawn,
            which is slow.
Solution:   Only redraw everything when lines were inserted or deleted.
            Reset b_mod_xlines when needed.  (Alexey Radkov)

https://code.google.com/p/vim/source/detail?r=v7-4-349
2014-09-11 20:46:10 +02:00
Wayne Rowcliffe
ac0b9714ed Additional FOR_ALL_WINDOWS usage 2014-09-08 17:27:41 -05:00
Wayne Rowcliffe
fe99930c46 Convert FOR_ALL_WINDOWS to use a locally declared pointer 2014-09-08 17:27:41 -05:00
Felipe Morales
d860ba45e2 vim-patch: 7.4.344
Problem:    Unnecessary initializations and other things related to
	    matchaddpos().
Solution:   Code cleanup. (Alexey Radkov)

https://code.google.com/p/vim/source/detail?r=ce284c205558d103326a4c3f22f181774690b3eb
2014-09-04 00:18:25 -04:00
Felipe Morales
15d86890d4 vim-patch: 7.4.343
Problem:    matchdelete() does not always update the right lines.
Solution:   Fix off-by-one error.  (Ozaki Kiichi)

https://code.google.com/p/vim/source/detail?r=539ce56d8f35fe2deb5c4f57335e1adf97ae4e74
2014-09-04 00:18:25 -04:00
Felipe Morales
a8124602f0 vim-patch: 7.4.334
Problem:    Unitialized variables, causing some problems.
Solution:   Initialize the variables. (Dominique Pelle)

https://code.google.com/p/vim/source/detail?r=03d260a8ea0c0c67f424c387dbe2af5754e5e589
2014-09-04 00:18:24 -04:00
Felipe Morales
bf3d945798 vim-patch: 7.4.330
Problem:    Using a regexp pattern to highlight a specific position can
be slow.
Solution:   Add matchaddpos() to highlight specific positions
efficiently.
(Alexey Radkov.)

https://code.google.com/p/vim/source/detail?r=f9fa2e506b9f07549cd91074835c5c553db7b3a7
2014-09-04 00:18:24 -04:00
Justin M. Keyes
95efb3624b vim-patch:7.4.317 #1076
Problem:    Crash when starting gvim.  Issue 230.
Solution:   Check for a pointer to be NULL. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=8ffcb546d782
2014-08-20 00:09:21 -04:00
Justin M. Keyes
e1c330a486 Merge pull request #1024 from war1025/dev/for_all_buffers
Add FOR_ALL_BUFFERS helper
2014-08-19 23:49:25 -04:00
Justin M. Keyes
a40a7cf24f vim-patch:7.4.329 #1079
Problem:    When moving the cursor and then switching to another window the
            previous window isn't scrolled. (Yukihiro Nakadaira)
Solution:   Call update_topline() before leaving the window. (Christian
            Brabandt)

https://code.google.com/p/vim/source/detail?r=018df65085f8
2014-08-19 01:40:40 -04:00
Justin M. Keyes
8ae492bb5a vim-patch:7.4.325 #1078
Problem:    When starting the gui and changing the window size the status line
            may not be drawn correctly.
Solution:   Catch new_win_height() being called recursively. (Christian
            Brabandt)

https://code.google.com/p/vim/source/detail?r=1f288d247548
2014-08-19 01:38:15 -04:00
Wayne Rowcliffe
888a31ba45 FOR_ALL_BUFFERS use locally declared buffer pointer 2014-08-17 11:13:42 -05:00
Florian Walch
c683858a6a clang-analyzer: Fix dead stores in window.c. 2014-08-07 10:53:33 +02:00
Wayne Rowcliffe
8cf45786b1 Add FOR_ALL_BUFFERS helper 2014-08-02 20:19:33 -05:00
Will Stamper
dafd72f5b2 vim-patch:7.4.309 #843
Problem:    When increasing the size of the lower window, the upper
            window jumps back to the top. (Ron Aaron)
Solution:   Change setting the topline. (Nobuhiro Takasaki)

https://code.google.com/p/vim/source/detail?r=88a6e9f33822d33b6c32db578750c6c178c63f50
2014-07-31 15:12:14 -04:00
Pavel Platto
0868818d3e Include stdbool.h in some files which use it
Done by manual inspection of the output of this script:
grep -r -l -w "bool\|true\|false" * | grep 'c$\|h$' > has_bool
grep -r -l "stdbool.h" * | grep 'c$\|h$' > has_include
grep -F -x -v -f has_include has_bool
2014-07-11 18:33:07 -04:00
Brandon Coleman
0fff487690 move errno.h include out of vim.h 2014-07-09 00:18:20 +02:00
Brandon Coleman
e69cfa6c15 move assert.h include out of vim.h 2014-07-09 00:18:19 +02:00
Brandon Coleman
bf219e1442 move <inttypes.h> include out of vim.h 2014-07-09 00:18:19 +02:00
Brandon Coleman
82b71a3056 move ascii.h include out of vim.h 2014-07-09 00:18:18 +02:00