summaryrefslogtreecommitdiff
path: root/subversion/libsvn_subr/log.c
diff options
context:
space:
mode:
Diffstat (limited to 'subversion/libsvn_subr/log.c')
-rw-r--r--subversion/libsvn_subr/log.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/subversion/libsvn_subr/log.c b/subversion/libsvn_subr/log.c
index be6d77a8030ab..8dd4cfbf22ec8 100644
--- a/subversion/libsvn_subr/log.c
+++ b/subversion/libsvn_subr/log.c
@@ -105,7 +105,7 @@ svn_log__get_file(const char *path, svn_revnum_t rev,
const char *
svn_log__get_dir(const char *path, svn_revnum_t rev,
svn_boolean_t want_contents, svn_boolean_t want_props,
- apr_uint64_t dirent_fields,
+ apr_uint32_t dirent_fields,
apr_pool_t *pool)
{
return apr_psprintf(pool, "get-dir %s r%ld%s%s",
@@ -395,3 +395,35 @@ svn_log__get_inherited_props(const char *path,
log_path = "/";
return apr_psprintf(pool, "get-inherited-props %s r%ld", log_path, rev);
}
+
+const char *
+svn_log__list(const char *path, svn_revnum_t revision,
+ apr_array_header_t *patterns, svn_depth_t depth,
+ apr_uint32_t dirent_fields, apr_pool_t *pool)
+{
+ svn_stringbuf_t *pattern_text = svn_stringbuf_create_empty(pool);
+ const char *log_path;
+ int i;
+
+ if (path && path[0] != '\0')
+ log_path = svn_path_uri_encode(path, pool);
+ else
+ log_path = "/";
+
+ if (patterns)
+ {
+ for (i = 0; i < patterns->nelts; ++i)
+ {
+ const char *pattern = APR_ARRAY_IDX(patterns, i, const char *);
+ svn_stringbuf_appendbyte(pattern_text, ' ');
+ svn_stringbuf_appendcstr(pattern_text, pattern);
+ }
+ }
+ else
+ {
+ svn_stringbuf_appendcstr(pattern_text, " <ANY>");
+ }
+
+ return apr_psprintf(pool, "list %s r%ld%s%s", log_path, revision,
+ log_depth(depth, pool), pattern_text->data);
+}