commit - b28fe61a139ab486d8098a954625482ba59b7056
commit + df056ada35bdbbcc6e248b7ec0ec8a7d25fd5147
blob - 30aca9d441b8c5cec4e3c2d3e766988bc110ef50
blob + 46b3ebb730cfbdd351180ada209da9dc4db793a5
--- got/got.c
+++ got/got.c
const char *worktree_path, int create_worktree)
{
const struct got_error *err;
- static char err_msg[MAXPATHLEN + 36];
if (create_worktree) {
/* Pre-create work tree path to avoid unveiling its parents. */
errno = 0;
err = NULL;
} else {
- snprintf(err_msg, sizeof(err_msg),
- "%s: directory exists and is not empty",
- worktree_path);
- err = got_error_msg(GOT_ERR_DIR_NOT_EMPTY,
- err_msg);
+ err = got_error_path(worktree_path,
+ GOT_ERR_DIR_NOT_EMPTY);
}
}
blob - 5672559ee3178f5472a06792f3793a49d8630d16
blob + b5b08b3be35c11bb53ff35ff3b1e4a100430c622
--- include/got_error.h
+++ include/got_error.h
/* Return an error based on a uuid(3) status code. */
const struct got_error *got_error_uuid(uint32_t);
+
+/* Return an error with a path prefixed to the error message. */
+const struct got_error *got_error_path(const char *, int);
blob - c3af78d19c9dcfb46c349c76e439e211bbcbe37f
blob + bb7df07d0d94f6bb7c602257d3599b5056251f3b
--- lib/error.c
+++ lib/error.c
return got_error(GOT_ERR_UUID);
}
}
+
+const struct got_error *
+got_error_path(const char *path, int code)
+{
+ static struct got_error err;
+ static char msg[MAXPATHLEN + 128];
+ int i;
+
+ for (i = 0; i < nitems(got_errors); i++) {
+ if (code == got_errors[i].code) {
+ err.code = code;
+ snprintf(msg, sizeof(msg), "%s: %s", path,
+ got_errors[i].msg);
+ err.msg = msg;
+ return &err;
+ }
+ }
+
+ abort();
+}