summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Kukunas <james.t.kukunas@linux.intel.com>2016-01-23 23:32:49 -0800
committerCyrill Gorcunov <gorcunov@gmail.com>2016-01-24 14:12:56 +0300
commitc9b3b8af41210528b449e94623ddf4a3bae3c2f2 (patch)
tree74fa1e9f4c98f820d2a98bdd938d48d74c7a6917
parent7faf605ca5e42ecdbc2e1921fa269abccb63feb4 (diff)
downloadnasm-c9b3b8af41210528b449e94623ddf4a3bae3c2f2.tar.gz
nasmlib: Add nasm_realpath()
Converts a relative pathname to an absolute pathname. Signed-off-by: Jim Kukunas <james.t.kukunas@linux.intel.com> Acked-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
-rw-r--r--nasmlib.c12
-rw-r--r--nasmlib.h7
2 files changed, 19 insertions, 0 deletions
diff --git a/nasmlib.c b/nasmlib.c
index ecd6d8df..9d57adbc 100644
--- a/nasmlib.c
+++ b/nasmlib.c
@@ -696,6 +696,18 @@ char *nasm_opt_val(char *p, char **val, char **next)
return p;
}
+#ifdef _WIN32
+char *nasm_realpath(const char *rel_path)
+{
+ return _fullpath(NULL, rel_path, 0);
+}
+#else
+char *nasm_realpath(const char *rel_path)
+{
+ return realpath(rel_path, NULL);
+}
+#endif
+
/*
* initialized data bytes length from opcode
*/
diff --git a/nasmlib.h b/nasmlib.h
index a3a8c12a..9cd417f1 100644
--- a/nasmlib.h
+++ b/nasmlib.h
@@ -400,6 +400,13 @@ char *nasm_trim_spaces(char *p);
char *nasm_get_word(char *p, char **tail);
char *nasm_opt_val(char *p, char **opt, char **val);
+/*
+ * Converts a relative pathname rel_path into an absolute path name.
+ *
+ * The buffer returned must be freed by the caller
+ */
+char *nasm_realpath(const char *rel_path);
+
const char *prefix_name(int);
#define ZERO_BUF_SIZE 4096