]> gitweb.ps.run Git - ps-cgit/blobdiff - shared.c
Remove unused variable in shared.c
[ps-cgit] / shared.c
index 288cfa22b4888ee8b773188089d2ecc496714f94..6e8f0ce89f5be4c0d53b29a12f200c1c10f7cbc7 100644 (file)
--- a/shared.c
+++ b/shared.c
@@ -10,7 +10,6 @@
 
 struct cgit_repolist cgit_repolist;
 struct cgit_context ctx;
-int cgit_cmd;
 
 int chk_zero(int result, char *msg)
 {
@@ -48,20 +47,25 @@ 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->name = ret->url;
        ret->path = NULL;
        ret->desc = "[no description]";
        ret->owner = NULL;
-       ret->group = ctx.cfg.repo_group;
+       ret->section = ctx.cfg.section;
        ret->defbranch = "master";
        ret->snapshots = ctx.cfg.snapshots;
        ret->enable_log_filecount = ctx.cfg.enable_log_filecount;
        ret->enable_log_linecount = ctx.cfg.enable_log_linecount;
+       ret->enable_remote_branches = ctx.cfg.enable_remote_branches;
        ret->max_stats = ctx.cfg.max_stats;
        ret->module_link = ctx.cfg.module_link;
        ret->readme = NULL;
        ret->mtime = -1;
+       ret->about_filter = ctx.cfg.about_filter;
+       ret->commit_filter = ctx.cfg.commit_filter;
+       ret->source_filter = ctx.cfg.source_filter;
        return ret;
 }
 
@@ -390,3 +394,31 @@ int cgit_close_filter(struct cgit_filter *filter)
                return 0;
        die("Subprocess %s exited abnormally", filter->cmd);
 }
+
+/* Read the content of the specified file into a newly allocated buffer,
+ * zeroterminate the buffer and return 0 on success, errno otherwise.
+ */
+int readfile(const char *path, char **buf, size_t *size)
+{
+       int fd, e;
+       struct stat st;
+
+       fd = open(path, O_RDONLY);
+       if (fd == -1)
+               return errno;
+       if (fstat(fd, &st)) {
+               e = errno;
+               close(fd);
+               return e;
+       }
+       if (!S_ISREG(st.st_mode)) {
+               close(fd);
+               return EISDIR;
+       }
+       *buf = xmalloc(st.st_size + 1);
+       *size = read_in_full(fd, *buf, st.st_size);
+       e = errno;
+       (*buf)[*size] = '\0';
+       close(fd);
+       return (*size == st.st_size ? 0 : e);
+}