+ off_t i = 0;
+ size_t n = 1;
+ char *nfmt = "<a href=\"#l%d\" id=\"l%d\">%d</a>\n";
+ const char *s = git_blob_rawcontent(blob);
+ git_off_t len = git_blob_rawsize(blob);
+
+ fputs("<table id=\"blob\"><tr><td class=\"num\"><pre>\n", fp);
+
+ if (len) {
+ fprintf(fp, nfmt, n, n, n);
+ while (i < len - 1) {
+ if (s[i] == '\n') {
+ n++;
+ fprintf(fp, nfmt, n, n, n);
+ }
+ i++;
+ }
+ }
+
+ fputs("</pre></td><td><pre>\n", fp);
+ xmlencode(fp, s, (size_t)len);
+ fputs("</pre></td></tr></table>\n", fp);