Commit Graph

43 Commits

Author SHA1 Message Date
Thiago de Arruda
bf6bb27e79 ui: Remove redundant ui.h includes
Also move read_error_exit to os/input.c
2014-11-27 15:00:30 -03:00
Thiago de Arruda
1865b8c1c1 ui: Remove ui_delay, ui_breakcheck and ui_set_shellsize
These functions only used to call another os_* function, so remove them and
replace all occurences in the project.
2014-11-27 14:27:18 -03:00
Eliseo Martínez
2aa8c7c41f Fix warnings: spell.c: spell_edit_score(): Garbage value: MI.
Problem    : Assigned value is garbage or undefined @ 12526.
Diagnostic : Multithreading issue.
Rationale  : Error only occurs if global has_mbyte is modified while
             function is executing.
Resolution : Use local copy of global.
2014-11-15 12:49:18 +01:00
Eliseo Martínez
1adfb558f5 Fix warnings: spell.c: getroom(): Np dereference: FP/RI.
Problem    : Dereference of null pointer @ 6089.
Diagnostic : False positive / Real issue.
Rationale  : From the code, it seems the intent is that len parameter
             should never exceed SBLOCKSIZE. But the code checking for
             that does in fact cause a null pointer dereference just
             immediately after.
Resolution : State precondition in doc and assert it at entry.
2014-11-15 12:49:18 +01:00
Eliseo Martínez
5f9cacbf32 Fix warnings: spell.c: store_aff_word(): Garbage value: RI.
Problem    : Result of operation is garbage or undefined @ 5809.
Diagnostic : Real issue.
Rationale  : When copying flags, first access to
             `use_pfxlist[use_pfxlen]` was garbage if
             `spin->si_compflags` was null.
Resolution : Make sure `use_pfxlist[use_pfxlen]` always has a value (NUL
             if `spin->si_compflags` is NULL).
2014-11-15 12:48:30 +01:00
Eliseo Martínez
a09b7f2e2e Fix warnings: spell.c: spell_read_aff(): Uninitialized arg: RI.
Problem    : Uninitialized argument value @ 4469.
Diagnostic : Real issue.
Rationale  : Happens when a line contains a spell info item (NAME, HOME,
             VERSION, AUTHOR, EMAIL, COPYRIGHT), which expect a second
             item, but then the second item is not present.
Resolution : Add guard (item count > 1) to failing branch.
2014-11-15 12:48:29 +01:00
Eliseo Martínez
40cf1a1e74 Fix warnings: spell.c: spell_move_to(): Garbage value: RI.
Problem    : Result of operation is garbage or undefined @ 2238.
Diagnostic : Real issue.
Rationale  : Problem occurs when searching forward starting on an empty
             line. This is, at 2127:
             ```
             p = buf + skip;
             endp = buf + len;
             while (p < endp) {
             ```
             when skip == 0, len == 0, implying p == endp and therefore
             not entering the loop.
             Under those conditions, comparison
             ```
             if (attr == HLF_COUNT)
             ```
             at line 2242 is really using a garbage value for `attr`.
             Most of the time the error doesn't produce visible problems
             as it only affects when dealing with wrapped words.
Resolution : Initialize `attr` at declaration to `HLF_COUNT`, which is
             used in the code when no bad word found yet.
2014-11-15 12:48:29 +01:00
Eliseo Martínez
faa000edcb Fix warnings: spell.c: spell_move_to(): Null arg: FP.
Problem    : Argument with 'nonnull' attribute passed null @ 2118.
Diagnostic : False positive.
Rationale  : Error happens when `if (buflen < len + MAXWLEN + 2) {` is
             not entered on the first iteration, which cannot happen
             because buflen is 0 on the first iteration, so the
             condition should always hold.
Resolution : Assert existence of buffer with appropiate length after
             conditional (which prevents previous error path).
2014-11-15 12:48:29 +01:00
Eliseo Martínez
7d3aac2d71 Fix warnings: spell.c: find_word(): Dead assignment: HI.
Problem    : Dead assignment @ 1602.
Diagnostic : Harmless issue.
Rationale  : Code using this assignment (line 1666) was disabled. Vim's
             tip at Wed Nov 12 13:07:54 2014 +0100 (changeset
             6352:2f7bf5f90f57) hasn't changed this yet.
Resolution : Disable assignment. Directive processors are used for that
             in order to match the way the other code was disabled.
2014-11-15 12:48:29 +01:00
Wayne Rowcliffe
9b6f192693 Replace FOR_ALL_WINDOWS with FOR_ALL_WINDOWS_IN_TAB(curtab) 2014-09-24 19:00:50 -05:00
Wayne Rowcliffe
ac0b9714ed Additional FOR_ALL_WINDOWS usage 2014-09-08 17:27:41 -05: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
Wayne Rowcliffe
888a31ba45 FOR_ALL_BUFFERS use locally declared buffer pointer 2014-08-17 11:13:42 -05:00
Florian Walch
141b74bcd4 clang-analyzer: Reduce scope in spell.c. 2014-08-07 14:29:42 +02:00
Wayne Rowcliffe
8cf45786b1 Add FOR_ALL_BUFFERS helper 2014-08-02 20:19:33 -05:00
Pavel Platto
e1dd98512f Remove EBCDIC: Clean up comments 2014-08-02 09:16:59 +03:00
Pavel Platto
286ce271e7 Extract tempfile module from fileio
Though this module is relatively small it has very clear boundaries.
The last argument for extracting `tempfile` was the errors which I got
when I was writing unittests for it: `cimport './src/nvim/fileio.h'`
does not work for some reason.
2014-07-14 21:14:40 +02:00
Pavel Platto
29e0cd1571 Refactor vim_tempname
- temp_count is uint32_t now instead of long because it supposed to be
  at most 999999999 (comment on line 5227) temporary files. The most
  probably it was a long for compatibility with systems where int is
  16-bit.
- Use "nvim" as prefix for temp folder name instead of "v"
- Remove unused parameter from vim_tempname
2014-07-14 21:14:40 +02: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
Shane Iler
d61829dd06 Enable and fix misc2.c -Wconversion warnings #907 2014-07-11 18:11:20 -04:00
Brandon Coleman
0fff487690 move errno.h include out of vim.h 2014-07-09 00:18:20 +02:00
Brandon Coleman
8cc8164e52 move wctype.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
Klemen Košir
a568e8b644 Replaced most TRUE/FALSE macros in arabic, mbyte and spell. #645 2014-07-08 17:34:08 +00:00
Felipe Oliveira Carvalho
5ed74cfb7c Introduce ga_append_via_ptr() and GA_APPEND_VIA_PTR()
Similar to GA_APPEND(). Replaces this pattern:

    ga_grow(&ga, 1);
    item_type *p = ((item_type *)ga.ga_data) + ga.ga_len;
    p->field1 = v1;
    p->field2 = v2;
    ga.ga_len++;
2014-06-30 03:57:50 -04:00
Felipe Oliveira Carvalho
45e7814e6a Introduce GA_APPEND()
This macro is used to append an element to a growable array. It replaces this
common idiom:

   ga_grow(&ga, 1);
   ((item_type *)ga.ga_data)[ga.ga_len] = item;
   ++ga.ga_len;
2014-06-30 03:57:50 -04:00
Felipe Oliveira Carvalho
81ca5ff126 No OOM in enc_canonize()
Fix a `return FAIL` that should be `return NULL` in `enc_locale()`
2014-06-16 01:36:31 -03:00
Douglas Schneider
fe4a7fc7e7 Replace vim_strncpy calls: spell.c 2014-06-13 18:08:21 -04:00
Felipe Oliveira Carvalho
f39fd5b4c4 Declare garray iterators in the for() scope where possible #819 2014-06-10 14:15:21 -04:00
oni-link
8638578bf3 vim-patch:7.4.288 #751
Problem:    When 'spellfile' is set the screen is not redrawn.
Solution:   Redraw when updating the spelling info. (Christian Brabandt)

https://code.google.com/p/vim/source/detail?r=7965cb6a435ae1ea331c7c2f8740d3d4c3625f3b
2014-06-05 18:40:02 -04:00
ZyX
70929f7e16 Add automatic generation of headers
- The 'stripdecls.py' script replaces declarations in all headers by includes to
  generated headers.
  `ag '#\s*if(?!ndef NEOVIM_).*((?!#\s*endif).*\n)*#ifdef INCLUDE_GENERATED'`
  was used for this.
- Add and integrate gendeclarations.lua into the build system to generate the
  required includes.
- Add -Wno-unused-function
- Made a bunch of old-style definitions ANSI

This adds a requirement: all type and structure definitions must be present
before INCLUDE_GENERATED_DECLARATIONS-protected include.

Warning: mch_expandpath (path.h.generated.h) was moved manually. So far it is
the only exception.
2014-06-02 11:04:17 -03:00
Pavel Platto
baaa428785 Remove ml_ prefix from cursor.h functions
s/ml_get_curline/get_cursor_line_ptr
s/ml_get_cursor/get_cursor_pos_ptr
2014-05-28 10:42:06 -04:00
Hinidu
e62722922b Extract cursor.h from misc{1,2}.h and memline.h 2014-05-28 10:42:06 -04:00
Justin M. Keyes
e2e47803bd Merge #708 'Remove NULL/non-NULL tests after vim_str(n)save'
- replace alloc with xmalloc
2014-05-22 13:00:51 -04:00
John Schmidt
85338fe1d5 Remove cryptography
As discussed in #694, vim encryption uses old,
obsolete algorithms that are poorly implemented.
Since insecure cryptography is worse than no
cryptgraphy, the community voted in favor of
removing all crypto.

Various alternatives to the old crypto is
being discussed in #701.

Closes #694.
2014-05-20 08:31:06 -03:00
Felipe Oliveira Carvalho
21784aeb00 Replace alloc() with xmalloc() and remove immediate OOM checks 2014-05-19 14:50:23 -03:00
Felipe Oliveira Carvalho
a80d7e86c1 Remove NULL/non-NULL tests after calls to vim_str(n)save() 2014-05-19 14:50:23 -03:00
Felipe Oliveira Carvalho
5209d2271b Replace ga->ga_len == 0 checks with GA_EMPTY(ga)
Used Coccinelle to perform the changes

@@
expression E;
@@

<...
(
// E.ga_len == 0 is isomorphic to !E.ga_len
- E.ga_len == 0
+ GA_EMPTY(&E)
|
- E->ga_len == 0
+ GA_EMPTY(E)
)
...>
2014-05-17 07:02:44 -03:00
Felipe Oliveira Carvalho
b4efff6523 Replace ga->ga_len > 0 checks with !GA_EMPTY(ga)
Used Coccinelle to perform the changes

```diff
@@
expression E;
@@

<...
(
- E.ga_len > 0
+ !GA_EMPTY(&E)
|
- E->ga_len > 0
+ !GA_EMPTY(E)
)
...>
```

`spatch --in-place --sp-file ga_empty.cocci <C_FILE>`
2014-05-17 07:02:44 -03:00
Eliseo Martínez
762a8ad0f3 Introduce nvim namespace: Fix unmasked strings.h issue.
Problem:  Now that nvim/strings.h is correctly namespaced, an issue
          that had been masked until now arises:

          When compiling, we get a lot of errors because of everywhere
          the functions in nvim/strings.h are used, there's no include
          to import them.

          But, how could this compile and work previously, then? It
          turns out that:
          - In every such case, we are also including vim.h, which in
            turn includes os_unix_defs.h.
          - os_unix_defs.h includes <string.h> and also <strings.h> in
            some systems (e.g. OSX).
          - Build had been modified previously to (even when importing
            system headers), prefer equally-named local ones. That was
            in fact done as a previous attempt to solve the same issue
            we are trying to solve another way now.

          So, we were including our "strings.h" as a side-effect of
          including <strings.h> through "vim.h" --> "os_unix_defs.h".

Solution: Correctly include "nvim/strings.h" in every file needing it.
2014-05-15 20:46:02 +02:00
Eliseo Martínez
409cc138f2 Introduce nvim namespace: Fix project-local includes.
Prepend 'nvim/' in all project-local (non-system) includes.
2014-05-15 20:46:01 +02:00
Eliseo Martínez
da51dc9cf2 Introduce nvim namespace: Move files.
Move files from src/ to src/nvim/.
- src/nvim/ becomes the new root dir for nvim executable sources.
- src/libnvim/ is planned to become root dir of the neovim library.
2014-05-15 20:46:01 +02:00