From: Demonstrandum Date: Thu, 6 Aug 2020 00:55:22 +0000 (+0100) Subject: Added syntax highlighting. X-Git-Url: https://git.armaanb.net/?p=stagit.git;a=commitdiff_plain;h=20ebc7fde46a38cf6f37bbf150835b5f11bdebe1 Added syntax highlighting. --- diff --git a/highlight b/highlight index cfcc452..8273a3b 100755 --- a/highlight +++ b/highlight @@ -5,7 +5,7 @@ from pygments import highlight from pygments.formatters import HtmlFormatter from pygments.lexers import guess_lexer, guess_lexer_for_filename -from sys import stdin +from sys import stdin, stderr filename = stdin.readline().strip() contents = stdin.read() @@ -25,9 +25,15 @@ if lexer is None: lexer = TextLexer FORMAT = HtmlFormatter( - lineos='table', + style='murphy', + cssclass='highlight', + linenos='table', lineanchors='loc', anchorlinenos=True) print(highlight(contents, lexer, FORMAT)) +print('') +print("Lexer: {}.".format(lexer), file=stderr) diff --git a/stagit.c b/stagit.c index 9a8ccd0..bb64869 100644 --- a/stagit.c +++ b/stagit.c @@ -397,12 +397,14 @@ writefooter(FILE *fp) int syntax_highlight(const char *filename, FILE *fp, const char *s, size_t len) { + // Flush HTML-file + fflush(fp); // Copy STDOUT int stdout_copy = dup(1); // Redirect STDOUT dup2(fileno(fp), 1); - // Ruby script for syntax highlighting. + // Python Pygments script for syntax highlighting. FILE *child = popen("./highlight", "w"); if (child == NULL) { printf("child is null: %s", strerror(errno)); @@ -419,6 +421,7 @@ syntax_highlight(const char *filename, FILE *fp, const char *s, size_t len) } pclose(child); + fflush(stdout); // Give back STDOUT. dup2(stdout_copy, 1); return lc;