~ruther/CTU-FEE-B0B35APO-Semestral-project

ref: b5b9794a1780a2aaf0d87374d0cb631dc0b82452 CTU-FEE-B0B35APO-Semestral-project/file-browser/src/path.c -rw-r--r-- 689 bytes
b5b9794a — František Boháček fix: dialog fill unused space 3 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "path.h"
#include <stdlib.h>
#include <string.h>

size_t path_join_memory_size(char *base, char *relative) {
  return strlen(base) + strlen(relative) + 1;
}

bool path_join(char *base, char *relative, char *out) {
  size_t base_len = strlen(base);
  size_t relative_len = strlen(relative);

  while (base[base_len - 1] == '/' && base_len > 0) {
    base_len--;
  }

  while (relative[0] == '/' && relative_len > 0) {
    relative_len--;
    relative++;
  }

  size_t new_len = base_len + relative_len + 1; // length of the string
  out[new_len] = '\0';
  out[base_len] = '/';

  memcpy(out, base, base_len);
  memcpy(out + base_len + 1, relative, relative_len);

  return true;
}
Do not follow this link