diff options
context:
space:
mode:
authorBryce Kwon <bryce@brycekwon.com>
committerBryce Kwon <bryce@brycekwon.com>
commit
parent
tree
download
Settle the names, types and layout of the sources
Diffstat (limited to 'source/shared.c')
-rw-r--r--source/shared.c70
1 file changed, 36 insertions, 34 deletions
diff --git a/source/shared.c b/source/shared.c
index 058d938..259802a 100644
--- a/source/shared.c
+++ b/source/shared.c
@@ -10,24 +10,31 @@
#include "cgit.h"
+/* Longest result cgit_expand_macros can return. */
+#define MACRO_EXPANSION_BUFSIZE (1024 * 8)
+
+/* Partial line carried between xdiff callbacks, see filediff_cb. */
+static char *diffbuf;
+static int diffbuf_len;
+
struct cgit_repolist cgit_repolist;
struct cgit_context ctx;
-int chk_zero(int result, char *msg)
+int cgit_die_unless_zero(int result, const char *msg)
{
if (result != 0)
die_errno("%s", msg);
return result;
}
-int chk_positive(int result, char *msg)
+int cgit_die_unless_positive(int result, const char *msg)
{
if (result <= 0)
die_errno("%s", msg);
return result;
}
-int chk_non_negative(int result, char *msg)
+int cgit_die_unless_non_negative(int result, const char *msg)
{
if (result < 0)
die_errno("%s", msg);
@@ -51,7 +58,7 @@ struct cgit_repo *cgit_add_repo(const char *url)
ret = &cgit_repolist.repos[cgit_repolist.count-1];
memset(ret, 0, sizeof(struct cgit_repo));
- ret->url = trim_end(url, '/');
+ ret->url = cgit_trim_end(url, '/');
if (ret->url)
*strchrnul(ret->url, '\n') = '\0';
ret->name = ret->url;
@@ -114,7 +121,7 @@ void cgit_free_commitinfo(struct commitinfo *info)
free(info);
}
-char *trim_end(const char *str, char c)
+char *cgit_trim_end(const char *str, char c)
{
int len;
@@ -128,7 +135,7 @@ char *trim_end(const char *str, char c)
return xstrndup(str, len);
}
-char *ensure_end(const char *str, char c)
+char *cgit_ensure_end(const char *str, char c)
{
size_t len = strlen(str);
char *result;
@@ -265,9 +272,6 @@ static int load_mmfile(mmfile_t *file, const struct object_id *oid)
* ripped from git and modified to use globals instead of
* a special callback-struct.
*/
-static char *diffbuf = NULL;
-static int buflen = 0;
-
static int filediff_cb(void *priv, mmbuffer_t *mb, int nbuf)
{
int i;
@@ -275,9 +279,9 @@ static int filediff_cb(void *priv, mmbuffer_t *mb, int nbuf)
for (i = 0; i < nbuf; i++) {
if (mb[i].ptr[mb[i].size-1] != '\n') {
/* Incomplete line */
- diffbuf = xrealloc(diffbuf, buflen + mb[i].size);
- memcpy(diffbuf + buflen, mb[i].ptr, mb[i].size);
- buflen += mb[i].size;
+ diffbuf = xrealloc(diffbuf, diffbuf_len + mb[i].size);
+ memcpy(diffbuf + diffbuf_len, mb[i].ptr, mb[i].size);
+ diffbuf_len += mb[i].size;
continue;
}
@@ -286,18 +290,18 @@ static int filediff_cb(void *priv, mmbuffer_t *mb, int nbuf)
((linediff_fn)priv)(mb[i].ptr, mb[i].size);
continue;
}
- diffbuf = xrealloc(diffbuf, buflen + mb[i].size);
- memcpy(diffbuf + buflen, mb[i].ptr, mb[i].size);
- ((linediff_fn)priv)(diffbuf, buflen + mb[i].size);
+ diffbuf = xrealloc(diffbuf, diffbuf_len + mb[i].size);
+ memcpy(diffbuf + diffbuf_len, mb[i].ptr, mb[i].size);
+ ((linediff_fn)priv)(diffbuf, diffbuf_len + mb[i].size);
free(diffbuf);
diffbuf = NULL;
- buflen = 0;
+ diffbuf_len = 0;
}
if (diffbuf) {
- ((linediff_fn)priv)(diffbuf, buflen);
+ ((linediff_fn)priv)(diffbuf, diffbuf_len);
free(diffbuf);
diffbuf = NULL;
- buflen = 0;
+ diffbuf_len = 0;
}
return 0;
}
@@ -473,8 +477,8 @@ void cgit_parse_date_format(const char *format, struct date_mode *mode)
}
typedef struct {
- char * name;
- char * value;
+ const char *name;
+ const char *value;
} cgit_env_var;
void cgit_prepare_repo_env(struct cgit_repo * repo)
@@ -490,7 +494,7 @@ void cgit_prepare_repo_env(struct cgit_repo * repo)
};
int env_var_count = ARRAY_SIZE(env_vars);
cgit_env_var *p, *q;
- static char *warn = "cgit warning: failed to set env: %s=%s\n";
+ static const char *warn = "cgit warning: failed to set env: %s=%s\n";
p = env_vars;
q = p + env_var_count;
@@ -503,7 +507,7 @@ void cgit_prepare_repo_env(struct cgit_repo * repo)
* zeroterminate the buffer, truncate at a new line, and return 0 on success,
* errno otherwise.
*/
-int read_first_line(const char *path, char **buf, size_t *size)
+int cgit_read_first_line(const char *path, char **buf, size_t *size)
{
int fd, e;
ssize_t got;
@@ -538,7 +542,7 @@ int read_first_line(const char *path, char **buf, size_t *size)
return (*size == (size_t)st.st_size ? 0 : e);
}
-char *strdup_first_line(const char *txt)
+char *cgit_strdup_first_line(const char *txt)
{
char *t = xstrdup(txt);
*strchrnul(t, '\n') = '\0';
@@ -552,7 +556,7 @@ static int is_token_char(char c)
/* Replace name with getenv(name), return pointer to zero-terminating char
*/
-static char *expand_macro(char *name, int maxlength)
+static char *expand_macro(char *name, size_t maxlength)
{
char *value;
size_t len;
@@ -569,28 +573,26 @@ static char *expand_macro(char *name, int maxlength)
return name + len;
}
-#define EXPBUFSIZE (1024 * 8)
-
/* Replace all tokens prefixed by '$' in the specified text with the
* value of the named environment variable.
* NB: the return value is a static buffer, i.e. it must be strdup'd
* by the caller.
*/
-char *expand_macros(const char *txt)
+char *cgit_expand_macros(const char *txt)
{
- static char result[EXPBUFSIZE];
+ static char result[MACRO_EXPANSION_BUFSIZE];
char *p, *start;
- int len;
+ size_t len;
p = result;
start = NULL;
- while (p < result + EXPBUFSIZE - 1 && txt && *txt) {
+ while (p < result + MACRO_EXPANSION_BUFSIZE - 1 && txt && *txt) {
*p = *txt;
if (start) {
if (!is_token_char(*txt)) {
if (p - start > 0) {
*p = '\0';
- len = result + EXPBUFSIZE - start - 1;
+ len = result + MACRO_EXPANSION_BUFSIZE - start - 1;
p = expand_macro(start, len) - 1;
}
start = NULL;
@@ -610,19 +612,19 @@ char *expand_macros(const char *txt)
}
*p = '\0';
if (start && p - start > 0) {
- len = result + EXPBUFSIZE - start - 1;
+ len = result + MACRO_EXPANSION_BUFSIZE - start - 1;
p = expand_macro(start, len);
*p = '\0';
}
return result;
}
-char *get_mimetype_for_filename(const char *filename)
+char *cgit_get_mimetype_for_filename(const char *filename)
{
const char *ext;
char *mimetype, line[1024];
struct string_list list = STRING_LIST_INIT_NODUP;
- int i;
+ size_t i;
FILE *file;
struct string_list_item *mime;