stagit

Fork of `stagit` for git.knutsen.co.
git clone git://git.knutsen.co/stagit
Log | Files | Refs | README | LICENSE

commit 20ebc7fde46a38cf6f37bbf150835b5f11bdebe1
parent 8c3969e7a6d10326c611faa10224072ce67d3c7a
Author: Demonstrandum <moi@knutsen.co>
Date:   Thu,  6 Aug 2020 01:55:22 +0100

Added syntax highlighting.

Diffstat:
Mhighlight | 10++++++++--
Mstagit.c | 5++++-
2 files changed, 12 insertions(+), 3 deletions(-)

diff --git 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('<style>') +print(FORMAT.get_style_defs('.highlight')) +print('</style>') +print("Lexer: {}.".format(lexer), file=stderr) diff --git 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;