From c9b3b8af41210528b449e94623ddf4a3bae3c2f2 Mon Sep 17 00:00:00 2001 From: Jim Kukunas Date: Sat, 23 Jan 2016 23:32:49 -0800 Subject: [PATCH] nasmlib: Add nasm_realpath() Converts a relative pathname to an absolute pathname. Signed-off-by: Jim Kukunas Acked-by: H. Peter Anvin Signed-off-by: Cyrill Gorcunov --- nasmlib.c | 12 ++++++++++++ nasmlib.h | 7 +++++++ 2 files changed, 19 insertions(+) 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 -- 2.11.4.GIT