aboutsummaryrefslogtreecommitdiff
path: root/src/name_from_url.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/name_from_url.c')
-rw-r--r--src/name_from_url.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/name_from_url.c b/src/name_from_url.c
new file mode 100644
index 0000000..121fddd
--- /dev/null
+++ b/src/name_from_url.c
@@ -0,0 +1,22 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include "name_from_url.h"
+
+char* name_from_url(const char *url) {
+ size_t len = strlen(url);
+ const char *end = url + len;
+ while (end > url && *(end-1) == '/') {
+ end--;
+ }
+ const char *last_slash = end;
+ while (last_slash > url && *(last_slash-1) != '/') {
+ last_slash--;
+ }
+ if (last_slash < end) {
+ return strndup(last_slash, end - last_slash);
+ } else {
+ return strndup(url, end - url);
+ }
+}