summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2019-10-17 19:11:52 +0100
committerJon Turney <jon.turney@dronecode.org.uk>2019-10-25 18:37:51 +0100
commit608640b87dc47233940664632e3ab8f13972be2b (patch)
tree221ff4d17dfb5805f8cebdbaee76a1e67641e0dd /src
parent13ebb8f32f767c596b1b8bd16b90703a8135f20b (diff)
Fix Win32 build since c4ed2e06 "Add some unit testing utilities"
Provide Win32 replacements for realpath() and err.h
Diffstat (limited to 'src')
-rw-r--r--src/util/realpath.c29
-rw-r--r--src/util/replace.h16
2 files changed, 45 insertions, 0 deletions
diff --git a/src/util/realpath.c b/src/util/realpath.c
new file mode 100644
index 0000000..abeebaa
--- /dev/null
+++ b/src/util/realpath.c
@@ -0,0 +1,29 @@
+/*
+ * Copyright © 2019 Jon Turney.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND TODD C. MILLER DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL TODD C. MILLER BE LIABLE
+ * FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include "src/util/replace.h"
+
+#ifdef WIN32
+char *
+realpath(const char *path, char *resolved_path)
+{
+ return _fullpath(resolved_path, path, _MAX_PATH);
+}
+#endif
diff --git a/src/util/replace.h b/src/util/replace.h
index 1a24820..53a81a2 100644
--- a/src/util/replace.h
+++ b/src/util/replace.h
@@ -57,5 +57,21 @@ extern _X_HIDDEN size_t
strlcat(char *dst, const char *src, size_t siz);
#endif
+#ifndef HAVE_ERR_H
+#define err(eval, ...) do { \
+ fprintf(stderr, __VA_ARGS__); \
+ fprintf(stderr, "\n"); \
+ exit(eval); \
+ } while (0)
+#define vwarn(...) do { \
+ fprintf(stderr, __VA_ARGS__); \
+ fprintf(stderr, "\n"); \
+ } while (0)
+#endif
+
+#ifndef HAVE_REALPATH
+extern _X_HIDDEN char *
+realpath(const char *path, char *resolved_path);
+#endif
#endif /* XFONT_REPLACE_H */