mirror of
https://git.proxmox.com/git/libgit2
synced 2025-12-25 09:16:32 +00:00
Fix err msg for ambiguous path in git_status_file
Returning GIT_EAMBIGUOUS from inside the status callback gets overridden with GIT_EUSER. `git_status_file` accounted for this via the callback payload, but was allowing the error message to be cleared. Move the `giterr_set` call outside the callback to where the EUSER case was being dealt with.
This commit is contained in:
parent
4b18103755
commit
5c8bb98ce9
10
src/status.c
10
src/status.c
@ -208,9 +208,8 @@ static int get_one_status(const char *path, unsigned int status, void *data)
|
||||
|
||||
if (sfi->count > 1 ||
|
||||
(strcmp(sfi->expected, path) != 0 &&
|
||||
p_fnmatch(sfi->expected, path, 0) != 0)) {
|
||||
giterr_set(GITERR_INVALID,
|
||||
"Ambiguous path '%s' given to git_status_file", sfi->expected);
|
||||
p_fnmatch(sfi->expected, path, 0) != 0))
|
||||
{
|
||||
sfi->ambiguous = true;
|
||||
return GIT_EAMBIGUOUS;
|
||||
}
|
||||
@ -242,8 +241,11 @@ int git_status_file(
|
||||
|
||||
error = git_status_foreach_ext(repo, &opts, get_one_status, &sfi);
|
||||
|
||||
if (error < 0 && sfi.ambiguous)
|
||||
if (error < 0 && sfi.ambiguous) {
|
||||
giterr_set(GITERR_INVALID,
|
||||
"Ambiguous path '%s' given to git_status_file", sfi.expected);
|
||||
error = GIT_EAMBIGUOUS;
|
||||
}
|
||||
|
||||
if (!error && !sfi.count) {
|
||||
git_buf full = GIT_BUF_INIT;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user