Package: less
Version: 551-2
Severity: wishlist

Currently, lesspipe looks for a user-defined filter in the user's home
directory only (~/.lessfilter).

This change allows the user-defined filter to be placed at
$XDG_CONFIG_HOME/lessfilter (or ~/.config/lessfilter if
$XDG_CONFIG_HOME is empty or not defined), falling back to
~/.lessfilter if the filter is not found.
commit ff12f0e26ae7b35d7c04e9fec47718aa289a98b0
Author: Jeffery To <jeffery...@gmail.com>
Date:   Wed Aug 18 01:13:30 2021 +0800

    lesspipe: Look for user-defined filter in $XDG_CONFIG_HOME
    
    Currently, lesspipe looks for a user-defined filter in the user's home
    directory only (~/.lessfilter).
    
    This change allows the user-defined filter to be placed at
    $XDG_CONFIG_HOME/lessfilter (or ~/.config/lessfilter if $XDG_CONFIG_HOME
    is empty or not defined), falling back to ~/.lessfilter if the filter is
    not found.

diff --git a/debian/lesspipe b/debian/lesspipe
index 98224b0..14b33f6 100644
--- a/debian/lesspipe
+++ b/debian/lesspipe
@@ -25,6 +25,7 @@
 #    $2  filename that was created during LESSOPEN
 
 TMPDIR=${TMPDIR:-/tmp}
+CONFIGDIR=${XDG_CONFIG_HOME:-~/.config}
 BASENAME=`basename $0`
 LESSFILE=lessfile
 
@@ -60,9 +61,13 @@ if [ $# -eq 1 ] ; then
 		if [ $BASENAME = $LESSFILE ]; then exec > $TMPFILE; fi
 
 		# Allow for user defined filters
-		#if [ -x ~/.lessfilter -a -O ~/.lessfilter ]; then
-		if [ -x ~/.lessfilter ]; then
-			~/.lessfilter "$1"
+		if [ -x "$CONFIGDIR/lessfilter" ]; then
+			USERFILTER="$CONFIGDIR/lessfilter"
+		elif [ -x ~/.lessfilter ]; then
+			USERFILTER=~/.lessfilter
+		fi
+		if [ -n "$USERFILTER" ]; then
+			"$USERFILTER" "$1"
 			if [ $? -eq 0 ]; then
 				if [ $BASENAME = $LESSFILE ]; then
 					if [ -s $TMPFILE ]; then

Reply via email to