<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/src/nvim/lib, branch v0.4.3</title>
<subtitle>Neovim fork with Rahm's personal hacks.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/'/>
<entry>
<title>kvec.h: kv_destroy: reinitialize after free</title>
<updated>2019-05-25T08:29:56+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2019-05-25T08:29:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=c4f56c4134d806c40fc841ca1af2c0020b447140'/>
<id>c4f56c4134d806c40fc841ca1af2c0020b447140</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: introduce XFREE_CLEAR()</title>
<updated>2019-05-25T08:01:17+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2019-05-21T22:10:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=a9d7ec4587d8eb20f12ebecc427ad818fb0e4971'/>
<id>a9d7ec4587d8eb20f12ebecc427ad818fb0e4971</id>
<content type='text'>
Unfortunately we cannot indiscriminately replace xfree() with
XFREE_CLEAR(), because comparing pointers after freeing them is a common
pattern. Example in `tv_list_remove_items()`:

    xfree(li);
    if (li == item2) {
      break;
    }

Instead we can do it selectively/explicitly.

ref #1375
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Unfortunately we cannot indiscriminately replace xfree() with
XFREE_CLEAR(), because comparing pointers after freeing them is a common
pattern. Example in `tv_list_remove_items()`:

    xfree(li);
    if (li == item2) {
      break;
    }

Instead we can do it selectively/explicitly.

ref #1375
</pre>
</div>
</content>
</entry>
<entry>
<title>kbtree.h: assert valid range #10022</title>
<updated>2019-05-18T14:21:33+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2019-05-18T14:21:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e8beea204bf428df3e417a67c151b3a32768befc'/>
<id>e8beea204bf428df3e417a67c151b3a32768befc</id>
<content type='text'>
ref #10012</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ref #10012</pre>
</div>
</content>
</entry>
<entry>
<title>kbtree: pointer UB and unitialized value fixes</title>
<updated>2019-05-18T11:37:57+00:00</updated>
<author>
<name>Björn Linse</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2019-05-18T11:37:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=b247c6fd225566bdae2f31ad85d3a822cf3f1254'/>
<id>b247c6fd225566bdae2f31ad85d3a822cf3f1254</id>
<content type='text'>
- don't underflow itr-&gt;p pointer (C standard only allows one past the end, not
  one before the beginning)
- make sure itr-&gt;p-&gt;i is always initialized (even when not used)
- don't rely on `NULL &lt; &amp;object` (likely UB)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- don't underflow itr-&gt;p pointer (C standard only allows one past the end, not
  one before the beginning)
- make sure itr-&gt;p-&gt;i is always initialized (even when not used)
- don't rely on `NULL &lt; &amp;object` (likely UB)
</pre>
</div>
</content>
</entry>
<entry>
<title>os/env: use libuv v1.12 getenv/setenv API</title>
<updated>2019-02-27T22:29:07+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2019-02-24T19:09:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=89515304e4eb81ff9eb65f3a582136fc658de139'/>
<id>89515304e4eb81ff9eb65f3a582136fc658de139</id>
<content type='text'>
- Minimum required libuv is now v1.12
- Because `uv_os_getenv` requires allocating, we must manage a map
  (`envmap` in `env.c`) to maintain the old behavior of `os_getenv` .
- free() map-items after removal. khash.h does not make copies of
  anything, so even its keys must be memory-managed by the caller.

closes #8398
closes #9267
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Minimum required libuv is now v1.12
- Because `uv_os_getenv` requires allocating, we must manage a map
  (`envmap` in `env.c`) to maintain the old behavior of `os_getenv` .
- free() map-items after removal. khash.h does not make copies of
  anything, so even its keys must be memory-managed by the caller.

closes #8398
closes #9267
</pre>
</div>
</content>
</entry>
<entry>
<title>ui: use line-based rather than char-based updates in screen.c</title>
<updated>2018-07-21T11:21:58+00:00</updated>
<author>
<name>Björn Linse</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2018-07-06T12:39:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=1adb01c120d04bdbf25cd4ea6151ecd5f2de3a72'/>
<id>1adb01c120d04bdbf25cd4ea6151ecd5f2de3a72</id>
<content type='text'>
Add ext_newgrid and ext_hlstate extensions. These use predefined
highlights and line-segment based updates, for efficiency and
simplicity.. The ext_hlstate extension in addition allows semantic
identification of builtin and syntax highlights.

Reimplement the old char-based updates in the remote UI layer, for
compatibility. For the moment, this is still the default. The bulitin
TUI uses the new line-based protocol.

cmdline uses curwin cursor position when ext_cmdline is active.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add ext_newgrid and ext_hlstate extensions. These use predefined
highlights and line-segment based updates, for efficiency and
simplicity.. The ext_hlstate extension in addition allows semantic
identification of builtin and syntax highlights.

Reimplement the old char-based updates in the remote UI layer, for
compatibility. For the moment, this is still the default. The bulitin
TUI uses the new line-based protocol.

cmdline uses curwin cursor position when ext_cmdline is active.
</pre>
</div>
</content>
</entry>
<entry>
<title>kvec: Silence PVS/V512: it is not needed to fill the whole array</title>
<updated>2018-04-15T17:14:55+00:00</updated>
<author>
<name>ZyX</name>
<email>kp-pav@yandex.ru</email>
</author>
<published>2018-04-15T17:14:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=d084628c4b0cf8644424f40ea578a1e705c771df'/>
<id>d084628c4b0cf8644424f40ea578a1e705c771df</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>build/msvc: Fix missing restrict keyword</title>
<updated>2018-03-01T01:37:58+00:00</updated>
<author>
<name>b-r-o-c-k</name>
<email>brockmammen@gmail.com</email>
</author>
<published>2018-03-01T01:14:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=2c414fbbb1a869a4d9d3dd1076d198945ee74a7e'/>
<id>2c414fbbb1a869a4d9d3dd1076d198945ee74a7e</id>
<content type='text'>
MSVC has the __restrict keyword and a marco is defined for it in `win_defs.h`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
MSVC has the __restrict keyword and a marco is defined for it in `win_defs.h`.
</pre>
</div>
</content>
</entry>
<entry>
<title>build/gcc: disable -Warray-bounds entirely #7923</title>
<updated>2018-02-19T21:14:34+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2018-01-27T17:23:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=4b81f627c6c031f286fec404bf42235847713181'/>
<id>4b81f627c6c031f286fec404bf42235847713181</id>
<content type='text'>
We need to disable -Warray-bounds locally for kbtree.h, but we can't
because _Pragma("GCC diagnostic pop") is broken in GCC 5.x+.

So this commit disables -Warray-bounds entirely (for GCC only).

GCC bug:
"_Pragma diagnostic 'ignored' in macro with strict-overflow not
suppressing warning fully with -Werror"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66099

ref https://github.com/neovim/neovim/pull/7083#issuecomment-326323599
closes #7921
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We need to disable -Warray-bounds locally for kbtree.h, but we can't
because _Pragma("GCC diagnostic pop") is broken in GCC 5.x+.

So this commit disables -Warray-bounds entirely (for GCC only).

GCC bug:
"_Pragma diagnostic 'ignored' in macro with strict-overflow not
suppressing warning fully with -Werror"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66099

ref https://github.com/neovim/neovim/pull/7083#issuecomment-326323599
closes #7921
</pre>
</div>
</content>
</entry>
<entry>
<title>klee: Start preparing for klee tests</title>
<updated>2017-10-08T19:25:05+00:00</updated>
<author>
<name>ZyX</name>
<email>kp-pav@yandex.ru</email>
</author>
<published>2017-09-10T22:27:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=7c97f783935ec122fbf0d7d070c00804738abd6a'/>
<id>7c97f783935ec122fbf0d7d070c00804738abd6a</id>
<content type='text'>
First stage: something compiling without klee, but with a buch of dirty
hacks - done.
Second stage: something running under klee, able to emit useful results,
but still using dirty hacks - done.

Third stage: make CMake care about clang argumnets - not done, may be
omitted if proves to be too hard. Not that klee can be run on CI in any
case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
First stage: something compiling without klee, but with a buch of dirty
hacks - done.
Second stage: something running under klee, able to emit useful results,
but still using dirty hacks - done.

Third stage: make CMake care about clang argumnets - not done, may be
omitted if proves to be too hard. Not that klee can be run on CI in any
case.
</pre>
</div>
</content>
</entry>
</feed>
