Warmcat homepage andy@warmcat.com
libwebsockets
{"schema":"libjg2-1", "vpath":"/git/", "avatar":"/git/avatar/", "alang":"", "gen_ut":1745907593, "reponame":"cgit", "desc":"CGI gitweb", "owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://warmcat.com/repo/cgit", "f":3, "items": [ {"schema":"libjg2-1", "cid":"96088888200208f1bb86fe40cb3241dd", "commit": {"type":"commit", "time": 1530589970, "time_ofs": 480, "oid_tree": { "oid": "f2ee5c698e43d8e39510e0e8e4808acf875744ff", "alias": []}, "oid":{ "oid": "00dd78e902ab661534e800938cb474d0620148fa", "alias": []}, "msg": "ui-shared: add helper for generating non-urlencoded links", "sig_commit": { "git_time": { "time": 1530589970, "offset": 480 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" }, "sig_author": { "git_time": { "time": 1530579730, "offset": 480 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" }}, "body": "ui-shared: add helper for generating non-urlencoded links\n\nWe are going to have to produce plain links in the next patch.\nBut depending on config, the links are not simple.\n\nReproduce the logic in repolink() to generate correctly-\nformatted links in a strbuf, without urlencoding, in a reusable\nhelper cgit_repo_create_url().\n\nSigned-off-by: Andy Green \u003candy@warmcat.com\u003e\n" , "diff": "diff --git a/ui-shared.c b/ui-shared.c\nindex df1736b..5a10b54 100644\n--- a/ui-shared.c\n+++ b/ui-shared.c\n@@ -226,6 +226,38 @@ void cgit_index_link(const char *name, const char *title, const char *class,\n \tsite_link(NULL, name, title, class, pattern, sort, ofs, always_root);\n }\n \n+const char *cgit_repo_create_url(struct strbuf *sb, struct strbuf *sb_post,\n+\t\t\t\t const char *page, const char *head,\n+\t\t\t\t const char *path)\n+{\n+\tconst char *delim \u003d \u0022?\u0022;\n+\n+\tif (ctx.cfg.virtual_root) {\n+\t\tstrbuf_addf(sb, \u0022%s%s\u0022, ctx.cfg.virtual_root, ctx.repo-\u003eurl);\n+\t} else {\n+\t\tstrbuf_addstr(sb, ctx.cfg.script_name);\n+\t\tsb \u003d sb_post;\n+\t\tstrbuf_addf(sb, \u0022?url\u003d%s\u0022, ctx.repo-\u003eurl);\n+\t\tdelim \u003d \u0022\u0026\u0022;\n+\t}\n+\n+\tif (ctx.repo-\u003eurl[strlen(ctx.repo-\u003eurl) - 1] !\u003d '/')\n+\t\tstrbuf_addch(sb, '/');\n+\n+\tif (page) {\n+\t\tstrbuf_addf(sb, \u0022%s/\u0022, page);\n+\t\tif (path)\n+\t\t\tstrbuf_addstr(sb, path);\n+\t}\n+\n+\tif (head \u0026\u0026 ctx.repo-\u003edefbranch \u0026\u0026 strcmp(head, ctx.repo-\u003edefbranch)) {\n+\t\tstrbuf_addf(sb_post, \u0022%sh\u003d%s\u0022, delim, head);\n+\t\tdelim \u003d \u0022\u0026\u0022;\n+\t}\n+\n+\treturn delim;\n+}\n+\n static char *repolink(const char *title, const char *class, const char *page,\n \t\t const char *head, const char *path)\n {\ndiff --git a/ui-shared.h b/ui-shared.h\nindex 49c11fc..6257a39 100644\n--- a/ui-shared.h\n+++ b/ui-shared.h\n@@ -56,6 +56,9 @@ extern void cgit_object_link(struct object *obj);\n \n extern void cgit_submodule_link(const char *class, char *path,\n \t\t\t\tconst char *rev);\n+extern const char *cgit_repo_create_url(struct strbuf *sb, struct strbuf *sb_post,\n+\t\t\t\t\t const char *page, const char *head,\n+\t\t\t\t\t const char *path);\n \n extern void cgit_print_layout_start(void);\n extern void cgit_print_layout_end(void);\n","s":{"c":1745907593,"u": 1753}} ],"g": 2708,"chitpc": 0,"ehitpc": 0,"indexed":0 , "ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}