add $STAGIT_BASEURL environment variable to make Atom links absolute - stagit - static git page generator
 (HTM) git clone git://git.codemadness.org/stagit
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 7968c0bc9c0172bd654e1f87d8194aef7fb69865
 (DIR) parent d1c528fb5ad81c876f07a69e1b759764f69cb9de
 (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Fri,  5 Mar 2021 11:51:21 +0100
       
       add $STAGIT_BASEURL environment variable to make Atom links absolute
       
       With feedback from adc, thanks!
       
       Diffstat:
         M stagit.1                            |      10 +++++++++-
         M stagit.c                            |       8 ++++++--
       
       2 files changed, 15 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/stagit.1 b/stagit.1
       @@ -1,4 +1,4 @@
       -.Dd July 19, 2020
       +.Dd March 4, 2021
        .Dt STAGIT 1
        .Os
        .Sh NAME
       @@ -103,6 +103,14 @@ favicon image.
        .It style.css
        CSS stylesheet.
        .El
       +.Sh ENVIRONMENT
       +.Bl -tag -width Ds
       +.It Ev STAGIT_BASEURL
       +Base URL to make links in atom.xml absolute.
       +For example: STAGIT_BASE_URL="https://git.codemadness.org/stagit/".
       +.El
       +.Sh EXIT STATUS
       +.Ex -std
        .Sh SEE ALSO
        .Xr stagit-index 1
        .Sh AUTHORS
 (DIR) diff --git a/stagit.c b/stagit.c
       @@ -58,6 +58,7 @@ struct referenceinfo {
        
        static git_repository *repo;
        
       +static const char *baseurl = ""; /* base URL to make absolute RSS/Atom URI */
        static const char *relpath = "";
        static const char *repodir;
        
       @@ -807,8 +808,8 @@ printcommitatom(FILE *fp, struct commitinfo *ci, const char *tag)
                        xmlencode(fp, ci->summary, strlen(ci->summary));
                        fputs("</title>\n", fp);
                }
       -        fprintf(fp, "<link rel=\"alternate\" type=\"text/html\" href=\"commit/%s.html\" />\n",
       -                ci->oid);
       +        fprintf(fp, "<link rel=\"alternate\" type=\"text/html\" href=\"%scommit/%s.html\" />\n",
       +                baseurl, ci->oid);
        
                if (ci->author) {
                        fputs("<author>\n<name>", fp);
       @@ -1184,6 +1185,9 @@ main(int argc, char *argv[])
                }
        #endif
        
       +        if ((p = getenv("STAGIT_BASEURL")))
       +                baseurl = p;
       +
                if (git_repository_open_ext(&repo, repodir,
                        GIT_REPOSITORY_OPEN_NO_SEARCH, NULL) < 0) {
                        fprintf(stderr, "%s: cannot open repository\n", argv[0]);