moved utility functions in src/lib/utils

This commit is contained in:
cozis
2022-08-16 21:48:59 +02:00
parent 3209afb513
commit 0e94f644ab
6 changed files with 91 additions and 70 deletions
+2 -27
View File
@@ -36,6 +36,7 @@
#include <errno.h>
#include <stdio.h>
#include "source.h"
#include "path.h"
struct xSource {
char *name;
@@ -82,32 +83,6 @@ const char *Source_GetAbsolutePath(Source *src)
return NULL;
}
const char *makePathAbsolute(const char *path, char *buff, size_t buffsize)
{
if(path[0] == '/')
// It's already absolute.
return path;
if(getcwd(buff, buffsize) == NULL)
return NULL;
size_t written = strlen(buff);
assert(buff[written-1] != '/');
if(written+1 >= buffsize)
return NULL; // No space for the / following the cwd.
buff[written++] = '/';
size_t n = strlen(path);
if(written + n >= buffsize)
return NULL;
memcpy(buff + written, path, n);
buff[written + n] = '\0';
return buff;
}
Source *Source_FromFile(const char *file, Error *error)
{
assert(file != NULL);
@@ -118,7 +93,7 @@ Source *Source_FromFile(const char *file, Error *error)
}
char maybe[1024];
const char *abs_path = makePathAbsolute(file, maybe, sizeof(maybe));
const char *abs_path = Path_MakeAbsolute(file, maybe, sizeof(maybe));
if(abs_path == NULL) {
Error_Report(error, 0, "Internal buffer is too small");
return NULL;