summaryrefslogtreecommitdiffstats
path: root/XD.c
diff options
context:
space:
mode:
Diffstat (limited to 'XD.c')
-rw-r--r--XD.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/XD.c b/XD.c
index df3d760..0a0274f 100644
--- a/XD.c
+++ b/XD.c
@@ -3,7 +3,10 @@
#include <string.h>
#include <ctype.h>
-#if defined(ERR) || defined(EXPLAIN)
+#ifdef ERR
+#include <errno.h>
+#endif
+#if defined(EXPLAIN) || defined(ERR)
#include <stdarg.h>
#endif
@@ -62,9 +65,12 @@ char
struct stat s;
int i, c;
-
/* find the number of jumps to the root of the fs */
rpath = realpath(path, NULL);
+ if (!rpath) {
+ L("realpath: %s", strerror(errno));
+ return NULL;
+ }
for (i = c = 0; i < strlen(rpath); i++) {
if (rpath[i] == '/') {
c++;
@@ -281,6 +287,9 @@ main(int argc, char *argv[])
if (has_stashes(repo)) {
E("The current git repo has stashed changes.")
P("8"); /* goggle eyes if we have some stashed changes */
+ } else if (git_repository_state(repo) == GIT_REPOSITORY_STATE_MERGE) {
+ E("The current git repo is in the middle of a merge.")
+ P("X"); /* laughing eyes cause the user is fucked */
} else if (git_repository_is_empty(repo)) {
E("This is a new git repo.")
P("B"); /* sunglasses if we're in a new repo with no HEAD */