summaryrefslogtreecommitdiffstats
path: root/02_exercise/prompt_utils.c
diff options
context:
space:
mode:
Diffstat (limited to '02_exercise/prompt_utils.c')
-rw-r--r--02_exercise/prompt_utils.c32
1 files changed, 15 insertions, 17 deletions
diff --git a/02_exercise/prompt_utils.c b/02_exercise/prompt_utils.c
index d43a6b6..168c088 100644
--- a/02_exercise/prompt_utils.c
+++ b/02_exercise/prompt_utils.c
@@ -1,13 +1,10 @@
-#include "prompt_utils.h"
-
-#include "array.h"
-#include <errno.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
-char const *relative_path(char const *const from_dir, char const *const to_dir) {
+#include "array.h"
+#include "prompt_utils.h"
+char const *relative_path(char const *const from_dir, char const *const to_dir) {
// easiest cases first
{
if (strcmp(from_dir, to_dir) == 0) {
@@ -24,9 +21,10 @@ char const *relative_path(char const *const from_dir, char const *const to_dir)
return return_value;
}
}
- // Splitting path into pieces so we can do strcmp on each of them
- size_t const *const from_dir_indeces = get_seperator_indeces(from_dir, '/');
- size_t const *const to_dir_indeces = get_seperator_indeces(to_dir, '/');
+
+ // splitting path into pieces so we can do strcmp on each of them
+ size_t const *const from_dir_indeces = get_separator_indices(from_dir, '/');
+ size_t const *const to_dir_indeces = get_separator_indices(to_dir, '/');
size_t from_dir_len = arrayLen(from_dir_indeces);
size_t to_dir_len = arrayLen(to_dir_indeces);
@@ -50,7 +48,7 @@ char const *relative_path(char const *const from_dir, char const *const to_dir)
size_t levels_up = from_dir_len - i - 1;
char *return_value;
if (levels_up == 0) {
- // Equal dirs for whole length of path and not equal => subdir
+ // equal dirs for whole length of path and not equal => subdir
size_t length = strlen(to_dir + common_position) + strlen("./") + 1;
return_value = malloc(length * sizeof(char));
strcpy(return_value, ".");
@@ -75,18 +73,18 @@ char const *relative_path(char const *const from_dir, char const *const to_dir)
return return_value;
}
-size_t *get_seperator_indeces(char const *const text, char seperator) {
- size_t *indeces;
- arrayInit(indeces);
+size_t *get_separator_indices(char const *const text, char seperator) {
+ size_t *indices;
+ arrayInit(indices);
char const *current = text;
if (strchr(current, seperator) == NULL) {
- arrayRelease(indeces);
+ arrayRelease(indices);
return NULL;
}
while ((current = strchr(current, seperator)) != NULL) {
- arrayPush(indeces) = current - text;
+ arrayPush(indices) = (size_t) (current - text);
++current;
}
- arrayPush(indeces) = strlen(text);
- return indeces;
+ arrayPush(indices) = strlen(text);
+ return indices;
}