diff options
| author | Russell Belfer <arrbee@arrbee.com> | 2011-11-30 11:27:15 -0800 |
|---|---|---|
| committer | Russell Belfer <arrbee@arrbee.com> | 2011-12-07 23:08:15 -0800 |
| commit | 97769280ba9938ae27f6e06cbd0d5e8a768a86b9 (patch) | |
| tree | 4fe43e99acb55f904f6b586bd7c5158610f9512f /tests/t18-status.c | |
| parent | a22b14d32dd8d5f06f121aa154d45bac3b10a305 (diff) | |
| download | libgit2-97769280ba9938ae27f6e06cbd0d5e8a768a86b9.tar.gz | |
Use git_buf for path storage instead of stack-based buffers
This converts virtually all of the places that allocate GIT_PATH_MAX
buffers on the stack for manipulating paths to use git_buf objects
instead. The patch is pretty careful not to touch the public API
for libgit2, so there are a few places that still use GIT_PATH_MAX.
This extends and changes some details of the git_buf implementation
to add a couple of extra functions and to make error handling easier.
This includes serious alterations to all the path.c functions, and
several of the fileops.c ones, too. Also, there are a number of new
functions that parallel existing ones except that use a git_buf
instead of a stack-based buffer (such as git_config_find_global_r
that exists alongsize git_config_find_global).
This also modifies the win32 version of p_realpath to allocate whatever
buffer size is needed to accommodate the realpath instead of hardcoding
a GIT_PATH_MAX limit, but that change needs to be tested still.
Diffstat (limited to 'tests/t18-status.c')
| -rw-r--r-- | tests/t18-status.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/tests/t18-status.c b/tests/t18-status.c index 73e328c2c..3799dc2ab 100644 --- a/tests/t18-status.c +++ b/tests/t18-status.c @@ -392,15 +392,15 @@ END_TEST BEGIN_TEST(singlestatus3, "test retrieving status for a new file in an empty repository") git_repository *repo; unsigned int status_flags; - char file_path[GIT_PATH_MAX]; + git_buf file_path = GIT_BUF_INIT; char filename[] = "new_file"; int fd; must_pass(copydir_recurs(EMPTY_REPOSITORY_FOLDER, TEST_STD_REPO_FOLDER)); must_pass(remove_placeholders(TEST_STD_REPO_FOLDER, "dummy-marker.txt")); - git_path_join(file_path, TEMP_REPO_FOLDER, filename); - fd = p_creat(file_path, 0666); + must_pass(git_buf_joinpath(&file_path, TEMP_REPO_FOLDER, filename)); + fd = p_creat(file_path.ptr, 0666); must_pass(fd); must_pass(p_write(fd, "new_file\n", 9)); must_pass(p_close(fd)); @@ -411,6 +411,7 @@ BEGIN_TEST(singlestatus3, "test retrieving status for a new file in an empty rep must_be_true(status_flags == GIT_STATUS_WT_NEW); git_repository_free(repo); + git_buf_free(&file_path); git_futils_rmdir_r(TEMP_REPO_FOLDER, 1); END_TEST |
