5f8bc82be821519c5e8e171749918d99c617b1c8
galt
  Wed Sep 20 17:15:25 2023 -0700
hgc - Making links work better to support http or https. refs #32257

diff --git src/hg/hgc/wikiTrack.c src/hg/hgc/wikiTrack.c
index 0c78eca..5f23375 100644
--- src/hg/hgc/wikiTrack.c
+++ src/hg/hgc/wikiTrack.c
@@ -35,59 +35,59 @@
 hPrintf("<OPTION value = \"#0000ff\" style=\"background-color:#0000ff;\" >blue</OPTION>\n");
 hPrintf("<OPTION VALUE = \"#9600c8\" style=\"background-color:#9600c8;\" >purple</OPTION>\n");
 hPrintf("<OPTION VALUE = \"#ff0000\" style=\"background-color:#ff0000;\" >red</OPTION>\n");
 hPrintf("<OPTION VALUE = \"#e67800\" style=\"background-color:#e67800;\" >orange</OPTION>\n");
 hPrintf("<OPTION VALUE = \"#dcdc00\" style=\"background-color:#dcdc00;\" >yellow</OPTION>\n");
 hPrintf("<OPTION VALUE = \"#00b400\" style=\"background-color:#00b400;\" >green</OPTION>\n");
 hPrintf("<OPTION VALUE = \"#8c8c8c\" style=\"background-color:#8c8c8c;\" >gray</OPTION>\n");
 hPrintf("</SELECT>\n");
 }
 
 static char *encodedHgcReturnUrl(int id, char *table)
 /* Return a CGI-encoded hgc URL with hgsid and given id.  Free when done. */
 {
 char retBuf[1024];
 int o = cartUsualInt(cart, "o", winStart);
-safef(retBuf, sizeof(retBuf), "http://%s/cgi-bin/hgc?%s&g=%s&c=%s&o=%d&l=%d&r=%d&db=%s&i=%d",
-    cgiServerNamePort(), cartSidUrlString(cart), table, seqName,
+safef(retBuf, sizeof(retBuf), "http%s://%s/cgi-bin/hgc?%s&g=%s&c=%s&o=%d&l=%d&r=%d&db=%s&i=%d",
+    cgiAppendSForHttps(), cgiServerNamePort(), cartSidUrlString(cart), table, seqName,
 	o, winStart, winEnd, database, id);
 return cgiEncode(retBuf);
 }   
 
 static char *wikiTrackUserLoginUrl(int id, char *table)
 /* Return the URL for the wiki user login page. */
 {
 char *retEnc = encodedHgcReturnUrl(id, table);
 char buf[2048];
 if (! wikiLinkEnabled())
     errAbort("wikiLinkUserLoginUrl called when wiki is not enabled (specified "
              "in hg.conf).");
 safef(buf, sizeof(buf),
       "%s/index.php?title=Special:UserloginUCSC&returnto=%s",
       cfgOptionDefault(CFG_WIKI_URL, NULL), retEnc);
 freez(&retEnc);
 return(cloneString(buf));
 }
 
 void offerLogin(int id, char *loginType, char *table)
 /* display login prompts to the wiki when user isn't already logged in */
 {
 char *wikiHost = wikiLinkHost();
 char *loginUrl = wikiTrackUserLoginUrl(id, table);
 printf("<P>Please login to %s the annotation track.</P>\n", loginType);
 printf("<P>The login page is handled by our "
-       "<A HREF=\"http://%s/\" TARGET=_BLANK>wiki system</A>:\n", wikiHost);
+       "<A HREF=\"http%s://%s/\" TARGET=_BLANK>wiki system</A>:\n", cgiAppendSForHttps(), wikiHost);
 printf("<A HREF=\"%s\"><B>click here to login.</B></A><BR>\n", loginUrl);
 printf("The wiki also serves as a forum for users "
        "to share knowledge and ideas.\n</P>\n");
 freeMem(loginUrl);
 freeMem(wikiHost);
 webIncludeHelpFile("wikiTrackAddCommentHelp", TRUE);
 webIncludeHelpFile("wikiTrack", TRUE);
 }
 
 static void startForm(char *name, char *actionType)
 {
 hPrintf("<FORM ID=\"%s\" NAME=\"%s\" ACTION=\"%s\">\n\n", name, name, hgcName());
 cartSaveSession(cart);
 cgiMakeHiddenVar("g", actionType);
 cgiContinueHiddenVar("c");