diff --git a/.gitignore b/.gitignore index 75b23d7..f6cddbb 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,9 @@ /less-608.tar.gz /less-633.tar.gz /less-643.tar.gz +/less-661.tar.gz +/less-668.tar.gz +/less-678.tar.gz +/less-679.tar.gz +/less-685.tar.gz +/lesspipe-2.20.tar.gz diff --git a/less-436-help.patch b/less-436-help.patch new file mode 100644 index 0000000..d58498b --- /dev/null +++ b/less-436-help.patch @@ -0,0 +1,24 @@ +diff -up less-661/help.c.help less-661/help.c +--- less-661/help.c.help 2024-08-05 21:40:34.531327397 +0200 ++++ less-661/help.c 2024-08-05 21:40:34.533327418 +0200 +@@ -137,7 +137,7 @@ constant char helpdata[] = { + ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','N','u','m','b','e','r',' ','o','f',' ','b','u','f','f','e','r','s','.','\n', + ' ',' ','-','B',' ',' ','.','.','.','.','.','.','.','.',' ',' ','-','-','a','u','t','o','-','b','u','f','f','e','r','s','\n', + ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','D','o','n','\'','t',' ','a','u','t','o','m','a','t','i','c','a','l','l','y',' ','a','l','l','o','c','a','t','e',' ','b','u','f','f','e','r','s',' ','f','o','r',' ','p','i','p','e','s','.','\n', +-' ',' ','-','c',' ',' ','.','.','.','.','.','.','.','.',' ',' ','-','-','c','l','e','a','r','-','s','c','r','e','e','n','\n', ++' ',' ','-','c',' ',' ','-','C',' ',' ','.','.','.','.',' ',' ','-','-','c','l','e','a','r','-','s','c','r','e','e','n',' ','-','-','C','L','E','A','R','-','S','C','R','E','E','N','\n', + ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','R','e','p','a','i','n','t',' ','b','y',' ','c','l','e','a','r','i','n','g',' ','r','a','t','h','e','r',' ','t','h','a','n',' ','s','c','r','o','l','l','i','n','g','.','\n', + ' ',' ','-','d',' ',' ','.','.','.','.','.','.','.','.',' ',' ','-','-','d','u','m','b','\n', + ' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','D','u','m','b',' ','t','e','r','m','i','n','a','l','.','\n', +diff -up less-661/less.hlp.help less-661/less.hlp +--- less-661/less.hlp.help 2024-08-05 21:40:34.532327408 +0200 ++++ less-661/less.hlp 2024-08-05 21:40:34.533327418 +0200 +@@ -134,7 +134,7 @@ + Number of buffers. + -B ........ --auto-buffers + Don't automatically allocate buffers for pipes. +- -c ........ --clear-screen ++ -c -C .... --clear-screen --CLEAR-SCREEN + Repaint by clearing rather than scrolling. + -d ........ --dumb + Dumb terminal. diff --git a/less-458-less-filters-man.patch b/less-458-less-filters-man.patch index 7de4415..90e7207 100644 --- a/less-458-less-filters-man.patch +++ b/less-458-less-filters-man.patch @@ -20,5 +20,5 @@ diff -up less-466/less.nro.filters-man less-466/less.nro +~/.lessfilter tries to handle the file. + .SH "NATIONAL CHARACTER SETS" - There are three types of characters in the input file: + There are five types of characters in the input file: .IP "normal characters" diff --git a/less-475-fsync.patch b/less-475-fsync.patch index c964b31..7f7a189 100644 --- a/less-475-fsync.patch +++ b/less-475-fsync.patch @@ -1,15 +1,7 @@ -From 5396b6b77d0248678f716038dc747d6898acb0b3 Mon Sep 17 00:00:00 2001 -From: Stephen Gallagher -Date: Fri, 22 Jan 2021 09:49:13 -0500 -Subject: [PATCH] Test for fsync on tty - -Signed-off-by: Stephen Gallagher - -Modified for less 581.2 Filip Januš -diff -ur less-581.2/configure.ac less_fsync/configure.ac ---- less-581.2/configure.ac 2021-04-28 17:00:08.000000000 +0200 -+++ less_fsync/configure.ac 2021-05-06 10:59:07.560062397 +0200 -@@ -221,6 +221,8 @@ +diff -up less-678-build/less-678/configure.ac.fsync less-678-build/less-678/configure.ac +--- less-678-build/less-678/configure.ac.fsync 2025-05-01 22:42:03.000000000 +0200 ++++ less-678-build/less-678/configure.ac 2025-05-22 18:10:23.572796329 +0200 +@@ -210,6 +210,8 @@ AH_TEMPLATE([HAVE_TIME_T], [Define HAVE_TIME_T if your system supports the "time_t" type.]) AH_TEMPLATE([HAVE_STRERROR], [Define HAVE_STRERROR if you have the strerror() function.]) @@ -18,16 +10,16 @@ diff -ur less-581.2/configure.ac less_fsync/configure.ac AH_TEMPLATE([HAVE_FILENO], [Define HAVE_FILENO if you have the fileno() macro.]) AH_TEMPLATE([HAVE_ERRNO], -@@ -274,7 +276,7 @@ +@@ -259,7 +261,7 @@ AC_MSG_CHECKING(for ANSI function protot AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[int f(int a) { return a; }]])],[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_ANSI_PROTOS)],[AC_MSG_RESULT(no)]) # Checks for library functions. -AC_CHECK_FUNCS([fchmod fsync nanosleep poll popen realpath _setjmp sigprocmask sigsetmask snprintf stat strsignal system ttyname usleep]) +AC_CHECK_FUNCS([fchmod nanosleep poll popen realpath _setjmp sigprocmask sigsetmask snprintf stat strsignal system ttyname usleep]) + AC_CHECK_DECL(sigsetjmp, [AC_DEFINE(HAVE_SIGSETJMP)], [], [#include ]) # AC_CHECK_FUNCS may not work for inline functions, so test these separately. - AC_MSG_CHECKING(for memcpy) -@@ -321,6 +323,16 @@ +@@ -302,6 +304,16 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include #endif]], [[static char *x; x = strerror(0);]])],[AC_MSG_RESULT(yes); AC_DEFINE(HAVE_STRERROR)],[AC_MSG_RESULT(no)]) diff --git a/less-590-CVE-2024-32487.patch b/less-590-CVE-2024-32487.patch deleted file mode 100644 index 61bbd0e..0000000 --- a/less-590-CVE-2024-32487.patch +++ /dev/null @@ -1,57 +0,0 @@ -diff -up less-643/filename.c.CVE-2024-32487 less-643/filename.c ---- less-643/filename.c.CVE-2024-32487 2023-07-21 00:43:14.000000000 +0200 -+++ less-643/filename.c 2024-08-21 08:10:28.949475521 +0200 -@@ -134,6 +134,15 @@ static int metachar(char c) - } - - /* -+ * Must use quotes rather than escape char for this metachar? -+ */ -+static int must_quote(char c) -+{ -+ /* {{ Maybe the set of must_quote chars should be configurable? }} */ -+ return (c == '\n'); -+} -+ -+/* - * Insert a backslash before each metacharacter in a string. - */ - public char * shell_quote(char *s) -@@ -164,6 +173,9 @@ public char * shell_quote(char *s) - * doesn't support escape chars. Use quotes. - */ - use_quotes = 1; -+ } else if (must_quote(*p)) -+ { -+ len += 3; /* open quote + char + close quote */ - } else - { - /* -@@ -193,15 +205,22 @@ public char * shell_quote(char *s) - { - while (*s != '\0') - { -- if (metachar(*s)) -+ if (!metachar(*s)) - { -- /* -- * Add the escape char. -- */ -+ *p++ = *s++; -+ } else if (must_quote(*s)) -+ { -+ /* Surround the char with quotes. */ -+ *p++ = openquote; -+ *p++ = *s++; -+ *p++ = closequote; -+ } else -+ { -+ /* Insert an escape char before the char. */ - strcpy(p, esc); - p += esclen; -+ *p++ = *s++; - } -- *p++ = *s++; - } - *p = '\0'; - } diff --git a/less-633-control-char-in-filename-regrfix.patch b/less-633-control-char-in-filename-regrfix.patch deleted file mode 100644 index d0c7fec..0000000 --- a/less-633-control-char-in-filename-regrfix.patch +++ /dev/null @@ -1,73 +0,0 @@ -diff -up less-633/prompt.c.cve2024_32487regrfix less-633/prompt.c ---- less-633/prompt.c.cve2024_32487regrfix 2024-07-27 00:32:28.945249829 +0200 -+++ less-633/prompt.c 2024-07-27 00:34:36.456908956 +0200 -@@ -79,23 +79,44 @@ public void init_prompt(void) - - /* - * Append a string to the end of the message. -- */ --static void ap_str(char *s) --{ -- constant char *es = s + strlen(s); -- while (*s != '\0') -- { -- LWCHAR ch = step_char(&s, +1, es); -- constant char *ps = utf_mode ? prutfchar(ch) : prchar(ch); -- size_t plen = strlen(ps); -- if (mp + plen >= message + PROMPT_SIZE) -- break; -- strcpy(mp, ps); -+ * nprt means the character *may* be nonprintable -+ * and should be converted to printable form. -+ */ -+static void ap_estr(char *s, lbool nprt) -+ { -+ constant char *es = s + strlen(s); -+ while (*s != '\0') -+ { -+ LWCHAR ch = step_char(&s, +1, es); -+ constant char *ps; -+ char ubuf[MAX_UTF_CHAR_LEN+1]; -+ size_t plen; -+ -+ if (nprt) -+ { -+ ps = utf_mode ? prutfchar(ch) : prchar(ch); -+ } else -+ { -+ char *up = ubuf; -+ put_wchar(&up, ch); -+ *up = '\0'; -+ ps = ubuf; -+ } -+ plen = strlen(ps); -+ if (mp + plen >= message + PROMPT_SIZE) -+ break; -+ strcpy(mp, ps); - mp += plen; - } - *mp = '\0'; - } - -+static void ap_str(char *s) -+{ -+ ap_estr(s, FALSE); -+} -+ -+ - /* - * Append a character to the end of the message. - */ -@@ -289,10 +310,10 @@ static void protochar(int c, int where, - break; - #endif - case 'f': /* File name */ -- ap_str(get_filename(curr_ifile)); -+ ap_estr(get_filename(curr_ifile), TRUE); - break; - case 'F': /* Last component of file name */ -- ap_str(last_component(get_filename(curr_ifile))); -+ ap_estr(last_component(get_filename(curr_ifile)), TRUE); - break; - case 'g': /* Shell-escaped file name */ - s = shell_quote(get_filename(curr_ifile)); diff --git a/less-654-control-char-in-filename-prereq.patch b/less-654-control-char-in-filename-prereq.patch deleted file mode 100644 index c0b2a8a..0000000 --- a/less-654-control-char-in-filename-prereq.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff -up less-633/prompt.c.cve_prereq less-633/prompt.c ---- less-633/prompt.c.cve_prereq 2024-07-27 00:44:40.347267609 +0200 -+++ less-633/prompt.c 2024-07-27 00:45:26.575783719 +0200 -@@ -36,6 +36,13 @@ extern char *editor; - extern char *editproto; - #endif - -+typedef enum lbool { LFALSE, LTRUE } lbool; -+ -+#undef TRUE -+#define TRUE LTRUE -+#undef FALSE -+#define FALSE LFALSE -+ - /* - * Prototypes for the three flavors of prompts. - * These strings are expanded by pr_expand(). diff --git a/less-654-control-char-in-filename.patch b/less-654-control-char-in-filename.patch deleted file mode 100644 index b7412ca..0000000 --- a/less-654-control-char-in-filename.patch +++ /dev/null @@ -1,75 +0,0 @@ -diff -up less-633/output.c.cve2024_32487fix less-633/output.c ---- less-633/output.c.cve2024_32487fix 2023-05-03 20:43:01.000000000 +0200 -+++ less-633/output.c 2024-07-27 00:28:05.420820950 +0200 -@@ -31,6 +31,7 @@ extern int so_s_width, so_e_width; - extern int screen_trashed; - extern int is_tty; - extern int oldbot; -+extern int utf_mode; - extern char intr_char; - - #if MSDOS_COMPILER==WIN32C || MSDOS_COMPILER==BORLANDC || MSDOS_COMPILER==DJGPPC -@@ -537,6 +538,7 @@ IPRINT_FUNC(iprint_linenum, LINENUM, lin - public int less_printf(char *fmt, PARG *parg) - { - char *s; -+ constant char *es; - int col; - - col = 0; -@@ -553,11 +555,17 @@ public int less_printf(char *fmt, PARG * - { - case 's': - s = parg->p_string; -+ es = s + strlen(s); - parg++; - while (*s != '\0') - { -- putchr(*s++); -- col++; -+ LWCHAR ch = step_char(&s, +1, es); -+ constant char *ps = utf_mode ? prutfchar(ch) : prchar(ch); -+ while (*ps != '\0') -+ { -+ putchr(*ps++); -+ col++; -+ } - } - break; - case 'd': -diff -up less-633/prompt.c.cve2024_32487fix less-633/prompt.c ---- less-633/prompt.c.cve2024_32487fix 2024-07-27 00:26:13.217361006 +0200 -+++ less-633/prompt.c 2024-07-27 00:31:37.965586499 +0200 -@@ -30,6 +30,7 @@ extern int sc_height; - extern int jump_sline; - extern int less_is_more; - extern int header_lines; -+extern int utf_mode; - extern IFILE curr_ifile; - #if EDITOR - extern char *editor; -@@ -81,13 +82,17 @@ public void init_prompt(void) - */ - static void ap_str(char *s) - { -- int len; -- -- len = (int) strlen(s); -- if (mp + len >= message + PROMPT_SIZE) -- len = (int) (message + PROMPT_SIZE - mp - 1); -- strncpy(mp, s, len); -- mp += len; -+ constant char *es = s + strlen(s); -+ while (*s != '\0') -+ { -+ LWCHAR ch = step_char(&s, +1, es); -+ constant char *ps = utf_mode ? prutfchar(ch) : prchar(ch); -+ size_t plen = strlen(ps); -+ if (mp + plen >= message + PROMPT_SIZE) -+ break; -+ strcpy(mp, ps); -+ mp += plen; -+ } - *mp = '\0'; - } - diff --git a/less.spec b/less.spec index e126b76..51d2494 100644 --- a/less.spec +++ b/less.spec @@ -1,10 +1,11 @@ Summary: A text file browser similar to more, but better Name: less -Version: 643 +Version: 685 Release: 6%{?dist} License: GPL-3.0-only and BSD-2-Clause Source0: https://www.greenwoodsoftware.com/less/%{name}-%{version}.tar.gz -Source1: lesspipe.sh +%global lesspipe_version 2.20 +Source1: https://github.com/wofr06/lesspipe/archive/refs/tags/v%{lesspipe_version}.tar.gz#/lesspipe-%{lesspipe_version}.tar.gz Source2: less.sh Source3: less.csh Patch4: less-394-time.patch @@ -14,19 +15,18 @@ Patch8: less-458-lessecho-usage.patch Patch9: less-458-less-filters-man.patch Patch10: less-458-lesskey-usage.patch Patch11: less-458-old-bot-in-help.patch - -# 3x from upstream, for less < 654, fix for filenames containing control chars -Patch12: less-654-control-char-in-filename-prereq.patch -Patch13: less-654-control-char-in-filename.patch -Patch14: less-633-control-char-in-filename-regrfix.patch - -# from upstream, for less < 654, rhbz#2274980 -Patch15: less-590-CVE-2024-32487.patch - +Patch13: less-436-help.patch URL: https://www.greenwoodsoftware.com/less/ BuildRequires: ncurses-devel BuildRequires: autoconf automake libtool BuildRequires: make +# for lesspipe make test +BuildRequires: perl-Archive-Tar +# for lesspipe +Recommends: (less-color = %{version}-%{release} if perl-interpreter) +Recommends: unzip +Recommends: html2text +Recommends: 7zip %description The less utility is a text file browser that resembles more, but has @@ -38,19 +38,26 @@ example, vi). You should install less because it is a basic utility for viewing text files, and you'll use it frequently. +%package color +Summary: Colorizers for less +Requires: %{name} = %{version}-%{release} +Conflicts: less < 685-5 + +%description color +Syntax highlighting modes for the less pager. + + %prep -%setup -q +%setup -q -a 1 %patch -P 4 -p1 -b .time -%patch -P 5 -p1 -b .fsync +%patch -P 5 -p2 -b .fsync %patch -P 6 -p1 -b .manpage-add-old-bot-option %patch -P 8 -p1 -b .lessecho-usage %patch -P 9 -p1 -b .less-filters-man %patch -P 10 -p1 -b .lesskey-usage %patch -P 11 -p1 -b .old-bot -%patch -P 12 -p1 -b .ctrl-char-fname-prereq -%patch -P 13 -p1 -b .ctrl-char-fname -%patch -P 14 -p1 -b .ctrl-char-fname-regrfix -%patch -P 15 -p1 -b .CVE-2024-32487 +%patch -P 13 -p1 -b .help + %build rm -f ./configure @@ -58,26 +65,89 @@ autoreconf -fiv %configure %make_build CFLAGS="%{optflags} -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" +pushd lesspipe-%{lesspipe_version} +#fix shebangs +sed -i "s|^#!/usr/bin/env bash|^#!/usr/bin/bash|" lesspipe.sh + +./configure --prefix=%{_prefix} +%make_build +popd + %install %make_install mkdir -p $RPM_BUILD_ROOT/etc/profile.d -install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir} install -p -m 644 %{SOURCE2} $RPM_BUILD_ROOT/etc/profile.d install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT/etc/profile.d +pushd lesspipe-%{lesspipe_version} +%make_install +rm -f $RPM_BUILD_ROOT/usr/share/bash-completion/less_completion +popd + +%check +pushd lesspipe-%{lesspipe_version} +# we dont have all required components to pass full test, but it is still +# useful to run for debug purposes +make test ||: +popd + %files %doc README NEWS INSTALL %license LICENSE COPYING /etc/profile.d/* -%{_bindir}/* +%{_bindir}/less +%{_bindir}/lesscomplete +%{_bindir}/lessecho +%{_bindir}/lesskey +%{_bindir}/lesspipe.sh %{_mandir}/man1/* -%changelog -* Wed Aug 21 2024 Michal Hlavinka - 643-6 -- fix CVE-2024-32487 - less with LESSOPEN mishandles \n in paths (#2274981) +%files color +%{_bindir}/archive_color +%{_bindir}/code2color +%{_bindir}/sxw2txt +%{_bindir}/vimcolor -* Sat Jul 27 2024 Michal Hlavinka - 643-5 -- fix incorrect display when filename contains control chars +%changelog +* Mon Nov 24 2025 Michal Hlavinka - 685-6 +- reintroduce use more feature rich lesspipe filter, but separate + perl dependent colorizer into subpackage, credits Yaakov Selkowitz + +* Fri Nov 14 2025 Adam Williamson - 685-5 +- Revert new lesspipe filter due to hard perl dependency + +* Wed Nov 12 2025 Michal Hlavinka - 685-4 +- use more feature rich lesspipe filter (#2308285) + +* Wed Oct 22 2025 Michal Hlavinka - 685-1 +- updated to 685 (#2404089) + +* Tue Sep 02 2025 Michal Hlavinka - 679-4 +- add man page for lesspipe.sh (rhbz#2376159) + +* Thu Jul 24 2025 Fedora Release Engineering - 679-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon Jun 23 2025 Michal Hlavinka - 679-1 +- updated to 679 + +* Thu May 22 2025 Michal Hlavinka - 678-1 +- updated to 678 (#2367012) + +* Fri Jan 17 2025 Fedora Release Engineering - 668-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Oct 18 2024 Michal Hlavinka - 668-1 +- updated to 668 (#2319532) + +* Mon Aug 12 2024 Michal Hlavinka - 661-2 +- fix post-v590 regression causing reading only part of pipe when stdin is null (upstream#558) + +* Fri Jul 26 2024 Michal Hlavinka - 661-1 +- updated to 661(2294840) + +* Thu Jul 18 2024 Fedora Release Engineering - 643-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Tue Feb 06 2024 Matej Mužila - 643-4 - migrated to SPDX license diff --git a/lesspipe.sh b/lesspipe.sh deleted file mode 100755 index f2df6a1..0000000 --- a/lesspipe.sh +++ /dev/null @@ -1,128 +0,0 @@ -#!/bin/sh -# -# To use this filter with less, define LESSOPEN: -# export LESSOPEN="|/usr/bin/lesspipe.sh %s" -# -# The script should return zero if the output was valid and non-zero -# otherwise, so less could detect even a valid empty output -# (for example while uncompressing gzipped empty file). -# For backward-compatibility, this is not required by default. To turn -# this functionality there should be another vertical bar (|) straight -# after the first one in the LESSOPEN environment variable: -# export LESSOPEN="||/usr/bin/lesspipe.sh %s" - -if [ ! -e "$1" ] ; then - exit 1 -fi - -if [ -d "$1" ] ; then - ls -alF -- "$1" - exit $? -fi - -exec 2>/dev/null - -# Allow for user defined filters -if [ -x ~/.lessfilter ]; then - ~/.lessfilter "$1" - if [ $? -eq 0 ]; then - exit 0 - fi -fi - -manfilter () -{ - if test -x /usr/bin/man ; then - # See rhbz#1241543 for more info. Well, actually we firstly - # used 'man -l', then we switched to groff, and then we again - # switched back to 'man -l'. - /usr/bin/man -P /usr/bin/cat -l "$1" - elif test -x /usr/bin/groff; then - # This is from pre-rhbz#1241543-time. - groff -Tascii -mandoc "$1" | cat -s - else - echo "WARNING:" - echo "WARNING: to better show manual pages, install 'man-db' package" - echo "WARNING:" - cat "$1" - fi -} - -export MAN_KEEP_FORMATTING=1 - -case "$1" in -*.[1-9n].bz2|*.[1-9]x.bz2|*.man.bz2|*.[1-9n].[glx]z|*.[1-9]x.[glx]z|*.man.[glx]z|*.[1-9n].lzma|*.[1-9]x.lzma|*.man.lzma|*.[1-9n].zst|*.[1-9]x.zst|*.man.zst|*.[1-9n].br|*.[1-9]x.br|*.man.br) - case "$1" in - *.gz) DECOMPRESSOR="gzip -dc" ;; - *.bz2) DECOMPRESSOR="bzip2 -dc" ;; - *.lz) DECOMPRESSOR="lzip -dc" ;; - *.zst) DECOMPRESSOR="zstd -dcq" ;; - *.br) DECOMPRESSOR="brotli -dc" ;; - *.xz|*.lzma) DECOMPRESSOR="xz -dc" ;; - esac - if [ -n "$DECOMPRESSOR" ] && $DECOMPRESSOR -- "$1" | file - | grep -q troff; then - $DECOMPRESSOR -- "$1" | manfilter - - exit $? - fi ;;& -*.[1-9n]|*.[1-9]x|*.man) - if file "$1" | grep -q troff; then - manfilter "$1" - exit $? - fi ;;& -*.tar) tar tvvf "$1"; exit $? ;; -*.tgz|*.tar.gz|*.tar.[zZ]) tar tzvvf "$1"; exit $? ;; -*.tar.xz) tar Jtvvf "$1"; exit $? ;; -*.xz|*.lzma) xz -dc -- "$1"; exit $? ;; -*.tar.lz) tar --lzip -tvvf "$1"; exit $? ;; -*.lz) lzip -dc -- "$1"; exit $? ;; -*.tar.zst) tar --zstd -tvvf "$1"; exit $? ;; -*.zst) zstd -dcq -- "$1"; exit $? ;; -*.tar.br) brotli -dc -- "$1" | tar tvvf -; exit $? ;; -*.br) brotli -dc -- "$1"; exit $? ;; -*.tar.bz2|*.tbz2) bzip2 -dc -- "$1" | tar tvvf -; exit $? ;; -*.[zZ]|*.gz) gzip -dc -- "$1"; exit $? ;; -*.bz2) bzip2 -dc -- "$1"; exit $? ;; -*.zip|*.jar|*.nbm) zipinfo -- "$1"; exit $? ;; -# --nomanifest -> rhbz#1450277 -*.rpm) rpm -qpivl --changelog --nomanifest -- "$1"; exit $? ;; -*.cpi|*.cpio) cpio -itv < "$1"; exit $? ;; -*.gpg) - if [ -x /usr/bin/gpg2 ]; then - gpg2 -d "$1" - exit $? - elif [ -x /usr/bin/gpg ]; then - gpg -d "$1" - exit $? - else - echo "No GnuPG available." - echo "Install gnupg2 or gnupg to show encrypted files." - exit 1 - fi ;; -*.gif|*.jpeg|*.jpg|*.pcd|*.png|*.tga|*.tiff|*.tif) - if [ -x /usr/bin/identify ]; then - identify "$1" - exit $? - elif [ -x /usr/bin/gm ]; then - gm identify "$1" - exit $? - else - echo "No identify available" - echo "Install ImageMagick or GraphicsMagick to browse images" - exit 1 - fi ;; -*) - if [ -x /usr/bin/file ] && [ -x /usr/bin/iconv ] && [ -x /usr/bin/cut ]; then - case `file -b "$1"` in - *UTF-16*) conv='UTF-16' ;; - *UTF-32*) conv='UTF-32' ;; - esac - if [ -n "$conv" ]; then - env=`echo $LANG | cut -d. -f2` - if [ -n "$env" -a "$conv" != "$env" ]; then - iconv -f $conv -t $env "$1" - exit $? - fi - fi - fi - exit 1 -esac diff --git a/sources b/sources index 28fa119..703a9df 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -SHA512 (less-643.tar.gz) = 6a324ac54e22429ac652dc303bc1fe48933555d1cbf8ad7ecf345940910c014fef9551a3219743cfb7115e356b5841ae97d6ce62e7a1ba1e3300d243efca34d9 +SHA512 (less-685.tar.gz) = aff745f1816e0f996fbdbc33ecae0726cf0d842efc227937ff8c32e734c8b5be4c611ffbb27e5e038b4d95280c95ca60c53af1a47cf419cb06e5fab543c231f3 +SHA512 (lesspipe-2.20.tar.gz) = bfeba1b921959e8cde8ce8bcc75765598cefd2cc705aa5b6417592fdbdb0c43bd3efb0d4379a0514f0da86806988ee95219539974c7af3319595d9b03aac550e