diff options
| author | Ben Straub <bstraub@github.com> | 2012-07-17 08:08:34 -0700 |
|---|---|---|
| committer | Ben Straub <bstraub@github.com> | 2012-07-17 08:08:34 -0700 |
| commit | bfc65634050dc52e3ed6b4497ebbb511e39d6e1e (patch) | |
| tree | 32b03847b8a152b69bc3b48b6bb32e7b8621f45e /src/buffer.h | |
| parent | 1d68fcd04b21a2c5665d0ca6a5543e7166c73457 (diff) | |
| parent | ea5d2ce4cfa6cec89e2d844a70d1eb24bb401c7d (diff) | |
| download | libgit2-bfc65634050dc52e3ed6b4497ebbb511e39d6e1e.tar.gz | |
Merge branch 'development' into clone
Diffstat (limited to 'src/buffer.h')
| -rw-r--r-- | src/buffer.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/buffer.h b/src/buffer.h index 50c75f64e..75f3b0e4f 100644 --- a/src/buffer.h +++ b/src/buffer.h @@ -91,6 +91,18 @@ int git_buf_join_n(git_buf *buf, char separator, int nbuf, ...); int git_buf_join(git_buf *buf, char separator, const char *str_a, const char *str_b); /** + * Copy string into buf prefixing every character that is contained in the + * esc_chars string with the esc_with string. + */ +int git_buf_puts_escaped( + git_buf *buf, const char *string, const char *esc_chars, const char *esc_with); + +GIT_INLINE(int) git_buf_puts_escape_regex(git_buf *buf, const char *string) +{ + return git_buf_puts_escaped(buf, string, "^.[]$()|*+?{}\\", "\\"); +} + +/** * Join two strings as paths, inserting a slash between as needed. * @return 0 on success, -1 on failure */ @@ -121,6 +133,13 @@ GIT_INLINE(ssize_t) git_buf_rfind_next(git_buf *buf, char ch) return idx; } +GIT_INLINE(ssize_t) git_buf_rfind(git_buf *buf, char ch) +{ + ssize_t idx = (ssize_t)buf->size - 1; + while (idx >= 0 && buf->ptr[idx] != ch) idx--; + return idx; +} + /* Remove whitespace from the end of the buffer */ void git_buf_rtrim(git_buf *buf); |
