aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/memory.c
diff options
context:
space:
mode:
authorThiago de Arruda <tpadilha84@gmail.com>2014-11-07 13:35:31 -0300
committerThiago de Arruda <tpadilha84@gmail.com>2014-11-07 13:35:49 -0300
commit05ae9781b5d1dbff7bf82051e9ba6f8e3a68953b (patch)
treed6d72199053903f3aafe0a6752c1bbb75a99a0c9 /src/nvim/memory.c
parent07775c07c0c269fe70effa0489f65fb98143c12c (diff)
parentea3296ad856fcf6124fbac9c05888745caa5bbab (diff)
downloadrneovim-05ae9781b5d1dbff7bf82051e9ba6f8e3a68953b.tar.gz
rneovim-05ae9781b5d1dbff7bf82051e9ba6f8e3a68953b.tar.bz2
rneovim-05ae9781b5d1dbff7bf82051e9ba6f8e3a68953b.zip
Merge PR #1255 '[RDY] Set `v:job_data[2]` line-wise and `jobsend(,[list]). (#1243)'
Diffstat (limited to 'src/nvim/memory.c')
-rw-r--r--src/nvim/memory.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/nvim/memory.c b/src/nvim/memory.c
index 59edefec4a..4b24213ecd 100644
--- a/src/nvim/memory.c
+++ b/src/nvim/memory.c
@@ -389,6 +389,25 @@ char *xstrdup(const char *str)
return ret;
}
+/// A version of memchr that starts the search at `src + len`.
+///
+/// Based on glibc's memrchr.
+///
+/// @param src The source memory object.
+/// @param c The byte to search for.
+/// @param len The length of the memory object.
+/// @returns a pointer to the found byte in src[len], or NULL.
+void *xmemrchr(void *src, uint8_t c, size_t len)
+ FUNC_ATTR_NONNULL_ALL FUNC_ATTR_PURE
+{
+ while (len--) {
+ if (((uint8_t *)src)[len] == c) {
+ return (uint8_t *) src + len;
+ }
+ }
+ return NULL;
+}
+
/// strndup() wrapper
///
/// @see {xmalloc}