5cbf3dde70489759e87a7355fc77925fad8ace97 hiram Wed Dec 2 11:22:39 2015 -0800 our standard html doc type HTML 4.01 Transitional should not use " />" closing tags, refs no redmine diff --git src/hg/hgMenubar/hgMenubar.c src/hg/hgMenubar/hgMenubar.c index f6eced9..09efda2 100644 --- src/hg/hgMenubar/hgMenubar.c +++ src/hg/hgMenubar/hgMenubar.c @@ -1,78 +1,78 @@ #include "common.h" #include "dystring.h" #include "filePath.h" #include "linefile.h" #define CGI_NAME "cgi-bin/hgMenubar" struct dyString *navBarFilePath(char *cgiPath, char *docRoot) { struct dyString *navPath = dyStringCreate("%s", docRoot); // Memory leak - replaceChars returns memory that is never freed char *incPath = replaceChars(cgiPath, "/cgi-bin/hgMenubar", "/inc/globalNavBar.inc"); dyStringAppend(navPath, incPath); return navPath; } void printIncludes(char* baseDir) { printf ("\n"); printf ("\n", baseDir); printf ("\n", baseDir); -printf ("\n", baseDir); +printf ("\n", baseDir); } void printMenuBar(char *cgiPath, char *docRoot, char *pagePath) { struct dyString *navBarLoc = navBarFilePath(cgiPath, docRoot); struct lineFile *menuFile = lineFileOpen(dyStringContents(navBarLoc), TRUE); char* oldLine = NULL; int lineSize = 0; char *cgiContainerPath = replaceChars(cgiPath, CGI_NAME, ""); char *newPath = makeRelativePath(pagePath, cgiContainerPath); struct dyString *oldHref = dyStringCreate("href=\"../"); struct dyString *newHref = dyStringCreate("href=\"%s", newPath); printf ("Content: text/html\r\n\r\n"); printIncludes(newPath); while (lineFileNext(menuFile, &oldLine, &lineSize)) { // Not quite as robust as perl search and replace - no variable whitespace handling // Also lots of memory leakage - every line is reallocated and forgotten char *newLine = replaceChars(oldLine, dyStringContents(oldHref), dyStringContents(newHref)); printf("%s\n", newLine); } lineFileClose(&menuFile); } void parseEnvOrDie (char **cgiPath, char** docRoot, char** pagePath) { *cgiPath = getenv("SCRIPT_NAME"); *docRoot = getenv("DOCUMENT_ROOT"); *pagePath = getenv("REDIRECT_URL"); if (*pagePath == NULL) *pagePath = getenv("DOCUMENT_URI"); if ( (*cgiPath == NULL) || (*docRoot == NULL) || (*pagePath == NULL) ) { fprintf (stderr, "Error: bad invocation of menubar\n"); exit (1); } } int main(int argc, char *argv[]) /* Process command line. */ { char *cgiPath, *docRoot, *pagePath; parseEnvOrDie(&cgiPath, &docRoot, &pagePath); printMenuBar(cgiPath, docRoot, pagePath); return 0; }