From 0b8358c8d17b984efe3fb2700c0bab563e7e5477 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Sat, 14 Dec 2019 11:04:58 +0800 Subject: net: introduce path formatting function Introduce a function to format the path and query string for a URL, suitable for creating an HTTP request. --- src/net.c | 12 ++++++++++++ src/net.h | 3 +++ 2 files changed, 15 insertions(+) (limited to 'src') diff --git a/src/net.c b/src/net.c index c70774306..2e466b6aa 100644 --- a/src/net.c +++ b/src/net.c @@ -381,6 +381,18 @@ int git_net_url_fmt(git_buf *buf, git_net_url *url) return git_buf_oom(buf) ? -1 : 0; } +int git_net_url_fmt_path(git_buf *buf, git_net_url *url) +{ + git_buf_puts(buf, url->path ? url->path : "/"); + + if (url->query) { + git_buf_putc(buf, '?'); + git_buf_puts(buf, url->query); + } + + return git_buf_oom(buf) ? -1 : 0; +} + void git_net_url_dispose(git_net_url *url) { if (url->username) diff --git a/src/net.h b/src/net.h index c140f9559..7e72db13f 100644 --- a/src/net.h +++ b/src/net.h @@ -48,6 +48,9 @@ extern void git_net_url_swap(git_net_url *a, git_net_url *b); /** Places the URL into the given buffer. */ extern int git_net_url_fmt(git_buf *out, git_net_url *url); +/** Place the path and query string into the given buffer. */ +extern int git_net_url_fmt_path(git_buf *buf, git_net_url *url); + /** Disposes the contents of the structure. */ extern void git_net_url_dispose(git_net_url *url); -- cgit v1.2.1