]> git.armaanb.net Git - stagit.git/blobdiff - stagit.c
FileBlob wrapper.
[stagit.git] / stagit.c
index 20f6b659e018528dc580deb8f4fb04ae027ae47f..b3f2e161c71a7630b2c26fa0779483ac6eac7cdb 100644 (file)
--- a/stagit.c
+++ b/stagit.c
@@ -394,17 +394,20 @@ writefooter(FILE *fp)
        fputs("</div>\n</body>\n</html>\n", fp);
 }
 
-void
-syntax_highlight(const char *fpath, FILE *fp, const char *s, size_t len)
+int
+syntax_highlight(const char *filename, FILE *fp, const char *s, size_t len)
 {
        // Ruby script for syntax highlighting.
        FILE *child = popen("./highlight", "w");
        // Give filename:
-       fprintf(child, "%s\n", fpath);
+       fprintf(child, "%s\n", filename);
        // Give code to highlight:
+       int lc;
        size_t i;
-       for (i = 0; *s && i < len; s++, i++)
+       for (i = 0; *s && i < len; s++, i++) {
+               if (*s == '\n') lc++;
                fputc(*s, child);
+       }
 
        // Write returned HTML to the HTML file.
        char c;
@@ -412,24 +415,25 @@ syntax_highlight(const char *fpath, FILE *fp, const char *s, size_t len)
                fputc(c, fp);
 
        pclose(child);
+       return lc;
 }
 
 int
-writeblobhtml(const char *fpath, FILE *fp, const git_blob *blob)
+writeblobhtml(const char *filename, FILE *fp, const git_blob *blob)
 {
-       size_t n = 0, i, prev;
+       int lc = 0;
        const char *s = git_blob_rawcontent(blob);
        git_off_t len = git_blob_rawsize(blob);
 
        fputs("<div id=\"blob\">\n", fp);
 
        if (len > 0) {
-               syntax_highlight(fpath, fp, s, len);
+               lc = syntax_highlight(filename, fp, s, len);
        }
 
        fputs("</div>\n", fp);
 
-       return n;
+       return lc;
 }
 
 void