aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* build: allow installing into the root directory (/)John Szakmeister2014-11-09
| | | | | | | | | | It turns out that CMake always canonicalizes `CMAKE_INSTALL_PREFIX` to an absolute path--if it's a relative path, it canonicalizes it relative to the build directory. As a result, the only thing the DESTDIR and relative directory check prevents is an installation into the root directory since CMake strips the trailing slash, turning "/" into an empty string. Let's just remove the check all together, since it cannot accomplish what we intended.
* Merge pull request #1441 from jszakmeister/remove-redundant-defineJohn Szakmeister2014-11-09
|\ | | | | Remove redundant USE_ICONV define from config.h.in.
| * Remove redundant USE_ICONV define from config.h.in.John Szakmeister2014-11-09
| | | | | | | | This was noticed during a review of #1437.
* | Merge pull request #1403 from fwalch/version-flagsJustin M. Keyes2014-11-09
|\ \ | | | | | | version: Add compilation info.
| * | version: Add compilation info.Florian Walch2014-11-09
| |/
* | Merge pull request #1389 from elmart/clang-analysis-fixesJustin M. Keyes2014-11-09
|\ \ | |/ |/| Fix clang analysis warnings.
| * Fix warnings: edit.c: ins_bs(): Garbage result: MI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | Problem : Result of operation is garbage or undefined @ 7460. Diagnostic : Multithreading issue. Rationale : Problem occurs if any of globals `enc_utf8`, `p_deco is modified while function is executing. Resolution : Use local copy of globals.
| * Fix warnings: edit.c: replace_do_bs(): Garbage value: MI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | Problem : Assigned value is garbage or undefined @ 6359. Diagnostic : Multithreading issue. Rationale : Problem only occurs if global `State` changes while function is executing. Resolution : Use local copy of global in function.
| * Fix warnings: edit.c: mb_replace_pop_ins(): Unitilialized arg: FP.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | Problem : Uninitialized argument value @ 6296. Diagnostic : False positive. Rationale : Error occurs if n <= 1. That's not possible because n >= 1 due to `MB_BYTE2LEN` postcondition and n != 1 because we are in the else branch. Resolution : Assert n > 1.
| * Fix warnings: edit.c: ins_compl_get_exp(): Np dereference (2): FP.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Problems : Dereference of null pointer @ 3615. Dereference of null pointer @ 3764. Diagnostic : False positives. Rationale : `ins_buf` is local static, so maintains value between calls. This function will be called first when `compl_started` is false, and in that case it initializes `ins_buf`. After that, it can be called multiple times with `compl_started` true, where `ins_buf` will be updated but not to null. So, when arriving to both points, `ins_buf` should never be null. Resolution : Assert `ins_buf` at both points.
| * Fix warnings: edit.c: ins_compl_next_buf(): Np dereference: FP.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | Problem : Dereference of null pointer @ 3234. Diagnostic : False positive. Rationale : `wp` is local static, so maintains value between calls. First time function is called for a given flag will have `buf == curbuf`, implying `wp` initialization. Resolution : Assert variable always having been initialized.
| * Fix warnings: regexp.c: match_with_backref(): Nonnull violation: FP.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | | | | | Problem: Argument with 'nonnull' attribute passed null @ 5632. http://neovim.org/doc/reports/clang/report-041a0e.html#EndPath. Diagnostic: False positive. Rationale : `p = reg_getline(clnum)` above should not be null, because `clnum` starts at `start_lnum` and only increments after that. Resolution: Assert p not null.
| * Fix warnings: regexp.c: br_regcomp(): Np dereference: MI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Dereference of null pointer @ 1312. http://neovim.org/doc/reports/clang/report-b1d09a.html#EndPath Diagnostic: Multithreading issue. Rationale : Suggested error path contains two succesive calls to `regnext(scan)`, first of which returning nonnull, the second one returning null. This can only occur if global `reg_toolong` accesed in `regnext()` changes between the calls. Resolution: Use local variable to cache first `regnext(scan)` result. Note that this change alters function semantics, as now function only issues one call instead of two, reusing the result for the second time. This shouldn't be a problem, though, as new semantics should be in fact be better.
| * Fix warnings: regexp.c: skip_regexp: Np dereference: FP.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Derefence of null pointer @ 1208. http://neovim.org/doc/reports/clang/report-24b5ca.html#Path10 Diagnostic: False positive. Rationale : Error is reported to happen if after `if (*newp == NULL) {` body, `*newp` continues being NULL, and false branch of following `if (*newp != NULL)` is taken. Now, `vim_strsave` cannot return NULL, so error cannot happen. Resolution: Remove dead code (leftover since OOM refactors).
| * Fix warnings: ops.c: cursor_pos_info(): Various (2): MI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problems: Result of operation is garbage or undefined @ 5087. http://neovim.org/doc/reports/clang/report-2e3118.html#EndPath Result of operation is garbage or undefined @ 5149. Diagnostic: Multithreading issues. Rationale : All reported problems can only occur if accesed globals change state while executing function, which could only happen in a multithreaded environment. Resolution: Use local variables (copy globals on entry). Note that this change alters function semantics, as now function only depends on global values at entry time. This shouldn't be a problem, though, as new semantics should be in fact better.
| * Fix warnings: ops.c: do_join(): Nonnull violation: FP.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | Problem: Argument with 'nonnull' attribute passed null @ 3540. http://neovim.org/doc/reports/clang/report-fc14e0.html#EndPath. Diagnostic: False potitive. Rationale : `count` should be >= 2 by function precondition. Resolution: Assert precondition.
| * Fix warnings: screen.c: draw_tabline(): Dead assignment: HI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | Problem: Dead assignment @ 7711. http://neovim.org/doc/reports/clang/report-835eb6.html#EndPath Diagnostic: Harmless issue. Rationale : `scol` is only used within `FOR_ALL_TABS` body, which assigns another value to `scol` at the beginning of each iteration. If `FOR_ALL_TABS` body would not execute (no tabs) nothing harmful would happen, as code following `FOR_ALL_TABS` doesn't use `scol`. Resolution: Remove.
| * Fix warnings: screen.c: showmode(): Dead assignment: HI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | Problem: Dead assignment @ 7535. http://neovim.org/doc/reports/clang/report-19a5cd.html#EndPath Diagnostic: Harmless issue. Rationale : `length = msg_col;` is unconditionally executed after this. Resolution: Remove assignment.
| * Fix warnings: screen.c: win_line(): Dead assigment: HI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Dead assigment. http://neovim.org/doc/reports/clang/report-7362ba.html#EndPath Diagnostic: Harmless issue. Rationale : `boguscols` is in fact unread by downstream code. Resolution: Comment out. This is preferred here over just removing the line because involved logic is complex, and future readers of this code could find this extra knowledge useful to understand what the code is doing.
| * Fix warnings: screen.c: win_line(): Dead initialization: HI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Dead initialization @ 3477. http://neovim.org/doc/reports/clang/report-94b736.html#EndPath Diagnostic: Harmless issue. Rationale : `len` is assigned a new value just some lines below. So, this just seems something due to old-style variable declarations. Resolution: We could just remove initialization, but prefer moving declaration down to point of initialization.
| * Fix warnings: screen.c: redraw_asap(): Various (6): MI.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problems: Argument with 'nonnull' attribute passed null @ 277. http://neovim.org/doc/reports/clang/report-9c3614.html#EndPath Result of operation is garbage or undefined @ 281. http://neovim.org/doc/reports/clang/report-45efbf.html#EndPath Argument with 'nonnull' attribute passed null @ 306. http://neovim.org/doc/reports/clang/report-ffb84f.html#EndPath Result of operation is garbage or undefined @ 311. http://neovim.org/doc/reports/clang/report-d04333.html#EndPath Argument with 'nonnull' attribute passed null @ 315. http://neovim.org/doc/reports/clang/report-786819.html#EndPath Uninitialized argument value @ 328. http://neovim.org/doc/reports/clang/report-2a5506.html#EndPath Diagnostic: Multithreading issues. Rationale : All reported problems can only occur if accesed globals change state while executing function, which could only happen in a multithreaded environment. Resolution: Use local variables. Note that this change alters function semantics, as now function only depends on global values at entry time. This shouldn't be a problem, though, as new semantics should be in fact better.
| * Fix warnings: cursor_shape.c: parse_shape_opt(): Garbage value: FP.Eliseo Martínez2014-11-06
| | | | | | | | | | | | | | | | | | | | | | | | Problem: Assigned value is garbage or undefined @ 187. http://neovim.org/doc/reports/clang/report-7b7d61.html#EndPath. Diagnostic: False positive. Rationale : `colonp`, must be `>= modep, or null` by `vim_strchr` postcondition. At this point we also it's not null and it's not equal to `modep`, by previous code. So, it must be `> modep`. Resolution: Assert `colonp > modep`.
* | Merge pull request #1437 from jszakmeister/build-search-fixesJohn Szakmeister2014-11-09
|\ \ | | | | | | A few fixes for some build-related issues.
| * | build: pull iconv detection into its own FindIconv.cmake fileJohn Szakmeister2014-11-08
| | | | | | | | | | | | | | | This will provide better control for those who may want to alter which one gets used.
| * | build: give priority to /sw and /opt/local on Mac OS XJohn Szakmeister2014-11-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unfortunately, we can't force the specific inclusion of a header file. So if anything add /opt/local/include to the include path--such as libintl--then other dependencies might be drawn from /opt/local at compile time, even though we detected them elsewhere at configure time. This, in turn, causes issues with mixed versions, such as the iconv.h header being pulled from /opt/local/include, but linked against the library in /usr/lib--which can be mismatched versions. So, despite CMake's best effort to treat /sw and /opt/local as just another system area, we really need to give them preferential treatment. To do this, we add them to CMAKE_PREFIX_PATH. This fixes an issue discovered while re-enabling iconv in #1370.
| * | build: use the proper libintl include variableJohn Szakmeister2014-11-08
| | | | | | | | | | | | | | | What was there worked, but it wasn't meant to be the variable that you use for inclusion.
* | | Merge pull request #1440 from jszakmeister/fix-og-flag-usageJohn Szakmeister2014-11-09
|\ \ \ | | | | | | | | build: only attempt to use -Og if it's supported
| * | | build: only attempt to use -Og if it's supportedJohn Szakmeister2014-11-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit a1d411f9c991c03488c74c6266eb37cc2bab970e just assumes that gcc will support the `-Og` option, but gcc that comes with Ubuntu 12.04 does not. Let's check to see if the flag is supported, and then decide whether to enable it or not.
* | | | Merge pull request #1428 from xu-cheng/relocate-formulaJohn Szakmeister2014-11-09
|\ \ \ \ | |/ / / |/| | | Homebrew: move formula to neovim/homebrew-neovim
| * | | Homebrew: move formula to neovim/homebrew-neovimXu Cheng2014-11-09
| | | |
* | | | Merge pull request #1400 from jszakmeister/install-helpers-destdirJohn Szakmeister2014-11-09
|\ \ \ \ | | | | | | | | | | build: fix the usage of DESTDIR in InstallHelpers.cmake
| * | | | build: fix the usage of DESTDIR in InstallHelpers.cmakeJohn Szakmeister2014-11-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out that `file(INSTALL ...)` already accounts for `DESTDIR`, so this wasn't creating the directory structure in the correct location. Instead, we need to do our existence check with `DESTDIR`, but leave it off when doing the install step. While we're at it, add a check to make sure `ENV{DESTDIR}` is not being used with a relative path, as that construct doesn't make much sense. This fixes issue #1387 discovered while trying to make helptag generation work correctly in #1381.
* | | | | Merge pull request #1383 from fwalch/nvim-buildtypeJustin M. Keyes2014-11-08
|\ \ \ \ \ | |_|_|/ / |/| | | | CMake: Set custom RelWithDebInfo compile flags.
| * | | | CMake: Set custom RelWithDebInfo compile flags.Florian Walch2014-11-08
| | | | |
* | | | | Merge pull request #1426 from jszakmeister/change-release-opt-defaultJohn Szakmeister2014-11-08
|\ \ \ \ \ | | | | | | | | | | | | build: default to using -O2 for release builds
| * | | | | build: default to using -O2 for release buildsJohn Szakmeister2014-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The -O3 optimization level can often lead to dangerous (and sometimes incorrect) optimizations being performed. So let's use a level that's more stable.
* | | | | | Merge pull request #1434 from xu-cheng/fix-1433John Szakmeister2014-11-08
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | DownloadAndExtractFile.cmake: only skip if directory is not empty.
| * | | | | build: don't download and extract tarball if source is already presentXu Cheng2014-11-08
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building under Homebrew, we want to let Homebrew manage downloading and extracting the tarballs. See PR #1411. Also make sure to skip only if directory is not empty. Fix #1433.
* | | | | Revert "build: don't download and extract tarball if source is already present"John Szakmeister2014-11-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 90658982644b76a9e8e4abfbcd16450df26b0a32. It failed to work correctly on a fresh clone. See #1433.
* | | | | Merge PR #1399 'Better handling for invalid msgpack-rpc'Thiago de Arruda2014-11-07
|\ \ \ \ \
| * | | | | msgpack-rpc: Close channel on invalid msgpack RPCRui Abreu Ferreira2014-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - When an invalid msgpack RPC msg is received from a channel we now close that channel all calls on that channel fail with an error message.
| * | | | | msgpack-rpc: Don't try to write into a closed channelRui Abreu Ferreira2014-11-07
| | | | | |
| * | | | | msgpack-rpc: Fix typo in validation messageRui Abreu Ferreira2014-11-07
| | | | | |
| * | | | | msgpack-rpc: Return from msgpack_rpc_validate on errorRui Abreu Ferreira2014-11-07
|/ / / / / | | | | | | | | | | | | | | | | | | | | - When validating a msgpack msg we need to return on the first error otherwise we can SEGFAULT with invalid checks
* | | | | Merge PR #1255 '[RDY] Set `v:job_data[2]` line-wise and `jobsend(,[list]). ↵Thiago de Arruda2014-11-07
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | (#1243)'
| * | | | job_spec: Fix bad test.Scott Prager2014-11-07
| | | | |
| * | | | job: Let vimL jobsend() accept a list.Scott Prager2014-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use save_tv_as_string(), same as vimL system(). This also makes jobsend() more liberal in what it can accept. For example, `jobsend(j, 123)` is now valid. Closes #1176
| * | | | job: Make v:job_data[2] a list.Scott Prager2014-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Factor out string_to_list() from f_system()'s implementation and use that to set job_data. This has the technical advantage of preserving NULs, and may be more convenient for users. Required for #1176.
| * | | | job: Read job data line-wise.Scott Prager2014-11-07
| | | | | | | | | | | | | | | | | | | | Only read up to the last newline in push_job_event().
| * | | | rstream: Expose rstream_read_ptr and _available.Scott Prager2014-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | Needed for accessing this information without direct access to the rstream_buffer.