From mboxrd@z Thu Jan 1 00:00:00 1970 From: mailings at hupie.com (Ferry Huberts) Date: Tue, 21 Feb 2012 14:47:51 +0100 Subject: [PATCH v2 3/3] highlight: fix syntax highlighting for program versions > 2 In-Reply-To: <20120221132717.GC12346@blizzard> References: <1329826411-6301-1-git-send-email-mailings@hupie.com> <1329826411-6301-3-git-send-email-mailings@hupie.com> <20120221132717.GC12346@blizzard> Message-ID: <4F43A087.8090903@hupie.com> On 21-02-12 14:27, Lukas Fleischer wrote: > On Tue, Feb 21, 2012 at 01:13:31PM +0100, Ferry Huberts wrote: >> From: Ferry Huberts >> >> Signed-off-by: Ferry Huberts >> --- >> filters/syntax-highlighting.sh | 22 ++++++++++++++++++++-- >> 1 files changed, 20 insertions(+), 2 deletions(-) >> >> diff --git a/filters/syntax-highlighting.sh b/filters/syntax-highlighting.sh >> index 0f97fea..387960d 100755 >> --- a/filters/syntax-highlighting.sh >> +++ b/filters/syntax-highlighting.sh >> @@ -42,5 +42,23 @@ declare EXTENSION="${BASENAME##*.}" >> # map Makefile and Makefile.* to .mk >> [ "${BASENAME%%.*}" == "Makefile" ]&& EXTENSION=mk >> >> -# the sed with  is a workaround for empty lines getting filtered out >> -exec highlight --force -f -I -X -S $EXTENSION 2>/dev/null | sed -r 's/^[[:space:]]*$/\ /' >> +# get highlight version >> +declare regex='^[[:space:]]*highlight[[:space:]]+version[[:space:]]+([[:digit:]]+).*' >> +declare -i highlightVersion=$(highlight --version | grep -E "${regex}" | sed -r "s/${regex}/\1/") >> + >> +if [[ ${highlightVersion} -le 2 ]]; then >> + # for highlight<= 2.x >> + >> + # the sed with  is a workaround for empty lines getting filtered out >> + exec highlight --force -f -I -X -S $EXTENSION 2>/dev/null | sed -r 's/^[[:space:]]*$/\ /' >> +else >> + # for other highlight versions >> + >> + # workaround for --force bug: >> + # set to plain text when highlight doesn't know the format >> + echo "test" | highlight -f -I -O xhtml -S $EXTENSION&>/dev/null >> + [ ${?} -ne 0 ]&& EXTENSION="txt" >> + >> + # the sed with  is a workaround for empty lines getting filtered out >> + exec highlight -f -I -O xhtml -S $EXTENSION 2>/dev/null | sed -r 's/^[[:space:]]*$/\ /' >> +fi > > Good to know that this is broken, but your solution seems like a hack > without any explanation... Could you elaborate why this is needed and > why this is the proper way to fix this regression, please? > ok, thought it was clear. On CentOS 6.2 (use highlight from EPEL), when highlight doesn't know about an EXTENSION, it outputs a lua error and _no_ text, even when the --force option is used. see https://bugzilla.redhat.com/show_bug.cgi?id=795567 -- Ferry Huberts