From 90d0b5eead05174cea371788cc4766bc7739e982 Mon Sep 17 00:00:00 2001
From: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Date: Sun, 12 Jan 2020 08:22:28 +0100
Subject: Add a start anchor parameter to sqfs_dir_reader_find_by_path

It optionally allows code that does tree traversal to start at an
inode that it obtained previously and makes it easier to keep state
externally.

Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
 include/sqfs/dir_reader.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

(limited to 'include/sqfs')

diff --git a/include/sqfs/dir_reader.h b/include/sqfs/dir_reader.h
index 8071ef4..82121ed 100644
--- a/include/sqfs/dir_reader.h
+++ b/include/sqfs/dir_reader.h
@@ -269,11 +269,14 @@ SQFS_API int sqfs_dir_reader_get_root_inode(sqfs_dir_reader_t *rd,
 					    sqfs_inode_generic_t **inode);
 
 /**
- * @brief Find an inode through path traversal from the root node downwards.
+ * @brief Find an inode through path traversal starting from the root or a
+ *        given node downwards.
  *
  * @memberof sqfs_dir_reader_t
  *
  * @param rd A pointer to a directory reader.
+ * @param start If not NULL, path traversal starts at this node downwards. If
+ *              set to NULL, start at the root node.
  * @param path A path to resolve into an inode. Forward or backward slashes can
  *             be used to separate path components. Resolving '.' or '..' is
  *             not supported.
@@ -283,6 +286,7 @@ SQFS_API int sqfs_dir_reader_get_root_inode(sqfs_dir_reader_t *rd,
  * @return Zero on success, an @ref E_SQFS_ERROR value on failure.
  */
 SQFS_API int sqfs_dir_reader_find_by_path(sqfs_dir_reader_t *rd,
+					  const sqfs_inode_generic_t *start,
 					  const char *path,
 					  sqfs_inode_generic_t **out);
 
-- 
cgit v1.2.3