commit - 723c305ce4ed16a470bbf2ced142668b5a633f03
commit + 2af4a0419220dba40c25f0f6af548638b5ae3a1b
blob - 679e74f7c346b55df4b7cf1b781eca4681560e73
blob + 73e05ddc0a8fead0d6cbcccb206f9ff3313248ea
--- got/got.c
+++ got/got.c
goto done;
error = got_repo_open(&repo, got_worktree_get_repo_path(worktree));
- if (error != NULL)
+ if (error)
goto done;
error = apply_unveil(got_repo_get_path(repo), 1,
blob - 3fd5c9691747bbc32bf4cb8757224588b633262a
blob + 604b1544720d90d5e86a3b3cd55f6ab9a7c01ede
--- include/got_error.h
+++ include/got_error.h
/*
* Set errno to the specified error code and return a statically
* allocated error object with code GOT_ERR_ERRNO and an error
- * message obtained from strerror(3).
+ * message obtained from strerror(3), optionally prefixed with a
+ * string.
*/
-const struct got_error *got_error_set_errno(int);
+const struct got_error *got_error_set_errno(int, const char *);
/*
* If ferror(3) indicates an error status for the FILE, obtain an error
blob - 4936ab52ab920adbc7c55b286edd1676c86d9fbe
blob + 1fd38ce6fb96c6f9744cad5dbd47178a40e6b420
--- lib/error.c
+++ lib/error.c
}
const struct got_error *
-got_error_set_errno(int code)
+got_error_set_errno(int code, const char *prefix)
{
errno = code;
- return got_error_prefix_errno("");
+ return got_error_prefix_errno(prefix);
}
const struct got_error *
case uuid_s_invalid_string_uuid:
return got_error(GOT_ERR_UUID_INVALID);
case uuid_s_no_memory:
- return got_error_set_errno(ENOMEM);
+ return got_error_set_errno(ENOMEM, NULL);
default:
return got_error(GOT_ERR_UUID);
}
blob - 1ed6f1e106debb9f768783a0c323bbd1f2052927
blob + 3ce4537de69fcf88a9f3b1085890a750e0cfafb2
--- lib/worktree.c
+++ lib/worktree.c
goto done;
if (got_fileindex_entry_get(fileindex, relpath) != NULL) {
- err = got_error_set_errno(EEXIST);
+ err = got_error_set_errno(EEXIST, relpath);
goto done;
}
if (status != GOT_STATUS_NO_CHANGE) {
if (status == GOT_STATUS_DELETE) {
- err = got_error_set_errno(ENOENT);
+ err = got_error_set_errno(ENOENT, ondisk_path);
goto done;
}
if (status != GOT_STATUS_MODIFY) {
blob - 581cd66614db2ea20eaec0082fa7a5c0188032fb
blob + e0f866bb327f00e152a18a34b9ceade7e5a69655
--- regress/cmdline/rm.sh
+++ regress/cmdline/rm.sh
(cd $testroot/wt && got rm beta > /dev/null)
for fflag in "" "-f"; do
- echo "got: No such file or directory" > $testroot/stderr.expected
(cd $testroot/wt && got rm $fflag beta 2> $testroot/stderr)
ret="$?"
if [ "$ret" == "0" ]; then
test_done "$testroot" 1
fi
- cmp $testroot/stderr.expected $testroot/stderr
+ grep "No such file or directory" $testroot/stderr > \
+ $testroot/stderr.actual
ret="$?"
if [ "$ret" != "0" ]; then
- diff -u $testroot/stderr.expected $testroot/stderr
+ cat $testroot/stderr
test_done "$testroot" "$ret"
fi
done
blob - c6e552d2af90981f18e9f26da22af91f437469ef
blob + 3f82dba73037dd8d4fb3bccffbf2831304355d75
--- tog/tog.c
+++ tog/tog.c
/* Allow threads to make progress while we are waiting for input. */
errcode = pthread_mutex_unlock(&tog_mutex);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode, "pthread_mutex_unlock");
ch = wgetch(view->window);
errcode = pthread_mutex_lock(&tog_mutex);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode, "pthread_mutex_lock");
nodelay(stdscr, TRUE);
if (tog_sigwinch_received) {
errcode = pthread_mutex_lock(&tog_mutex);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode, "pthread_mutex_lock");
TAILQ_INIT(&views);
TAILQ_INSERT_HEAD(&views, view, entry);
errcode = pthread_mutex_unlock(&tog_mutex);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode, "pthread_mutex_unlock");
return err;
}
errcode = pthread_mutex_lock(&tog_mutex);
if (errcode) {
- err = got_error_set_errno(errcode);
+ err = got_error_set_errno(errcode, "pthread_mutex_lock");
break;
}
errcode = pthread_mutex_unlock(&tog_mutex);
if (errcode && err == NULL)
- err = got_error_set_errno(errcode);
+ err = got_error_set_errno(errcode,
+ "pthread_mutex_unlock");
}
return err;
/* Wake the log thread. */
errcode = pthread_cond_signal(need_commits);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode,
+ "pthread_cond_signal");
errcode = pthread_mutex_unlock(&tog_mutex);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode,
+ "pthread_mutex_unlock");
pthread_yield();
errcode = pthread_mutex_lock(&tog_mutex);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode,
+ "pthread_mutex_lock");
if (*commits_needed > 0 && (!load_all || --max_wait <= 0)) {
/*
errcode = pthread_mutex_lock(&tog_mutex);
if (errcode) {
- err = got_error_set_errno(errcode);
+ err = got_error_set_errno(errcode,
+ "pthread_mutex_lock");
break;
} else if (*a->quit)
done = 1;
errcode = pthread_cond_wait(&a->need_commits,
&tog_mutex);
if (errcode)
- err = got_error_set_errno(errcode);
+ err = got_error_set_errno(errcode,
+ "pthread_cond_wait");
}
errcode = pthread_mutex_unlock(&tog_mutex);
if (errcode && err == NULL)
- err = got_error_set_errno(errcode);
+ err = got_error_set_errno(errcode,
+ "pthread_mutex_unlock");
}
a->log_complete = 1;
return (void *)err;
s->quit = 1;
errcode = pthread_cond_signal(&s->thread_args.need_commits);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode,
+ "pthread_cond_signal");
errcode = pthread_mutex_unlock(&tog_mutex);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode,
+ "pthread_mutex_unlock");
errcode = pthread_join(s->thread, (void **)&err);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode, "pthread_join");
errcode = pthread_mutex_lock(&tog_mutex);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode,
+ "pthread_mutex_lock");
s->thread = NULL;
}
errcode = pthread_cond_destroy(&s->thread_args.need_commits);
if (errcode && err == NULL)
- err = got_error_set_errno(errcode);
+ err = got_error_set_errno(errcode, "pthread_cond_destroy");
if (s->thread_args.repo) {
got_repo_close(s->thread_args.repo);
errcode = pthread_cond_init(&s->thread_args.need_commits, NULL);
if (errcode) {
- err = got_error_set_errno(errcode);
+ err = got_error_set_errno(errcode, "pthread_cond_init");
goto done;
}
int errcode = pthread_create(&s->thread, NULL, log_thread,
&s->thread_args);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode, "pthread_create");
}
return draw_commits(view, &s->last_displayed_entry,
errcode = pthread_mutex_lock(&tog_mutex);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode, "pthread_mutex_lock");
if (*a->quit) { /* user has quit the blame view */
err = got_error(GOT_ERR_ITER_COMPLETED);
done:
errcode = pthread_mutex_unlock(&tog_mutex);
if (errcode)
- err = got_error_set_errno(errcode);
+ err = got_error_set_errno(errcode, "pthread_mutex_unlock");
return err;
}
errcode = pthread_mutex_lock(&tog_mutex);
if (errcode)
- return (void *)got_error_set_errno(errcode);
+ return (void *)got_error_set_errno(errcode,
+ "pthread_mutex_lock");
got_repo_close(ta->repo);
ta->repo = NULL;
errcode = pthread_mutex_unlock(&tog_mutex);
if (errcode && err == NULL)
- err = got_error_set_errno(errcode);
+ err = got_error_set_errno(errcode, "pthread_mutex_unlock");
return (void *)err;
}
int errcode;
errcode = pthread_mutex_unlock(&tog_mutex);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode,
+ "pthread_mutex_unlock");
errcode = pthread_join(blame->thread, (void **)&err);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode, "pthread_join");
errcode = pthread_mutex_lock(&tog_mutex);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode,
+ "pthread_mutex_lock");
if (err && err->code == GOT_ERR_ITER_COMPLETED)
err = NULL;
blame->thread = NULL;
errcode = pthread_create(&s->blame.thread, NULL, blame_thread,
&s->blame.thread_args);
if (errcode)
- return got_error_set_errno(errcode);
+ return got_error_set_errno(errcode, "pthread_create");
}
err = draw_blame(view, s->blamed_commit->id, s->blame.f,