Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ugrep for openSUSE:Factory checked 
in at 2026-04-30 20:32:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ugrep (Old)
 and      /work/SRC/openSUSE:Factory/.ugrep.new.30200 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ugrep"

Thu Apr 30 20:32:32 2026 rev:90 rq:1350292 version:7.8.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/ugrep/ugrep.changes      2026-04-22 
17:02:40.143608606 +0200
+++ /work/SRC/openSUSE:Factory/.ugrep.new.30200/ugrep.changes   2026-04-30 
20:33:42.206927973 +0200
@@ -1,0 +2,15 @@
+Thu Apr 30 17:35:40 UTC 2026 - Andreas Stieger <[email protected]>
+
+- Update to version 7.8.0:
+  * improve TUI custom-command option --view to wait for key press
+    after viewing, by specifying + in --view=+COMMAND, such as
+    --view=+file to display file type info in the TUI with CTRL-Y
+    (overrides viewing the file contents)
+  * update TUI to block ANSI OSC escape codes, such as
+    ESC ] P n rr gg bb that may hang the terminal
+  * update the ug+ and ugrep+ scripts to end options in filter
+    commands with --, in case a filename starts with a - (dash)
+  * improve config parsing to ignore some options that do not make
+    sense to set in a (local) config file
+
+-------------------------------------------------------------------

Old:
----
  ugrep-7.7.0.obscpio

New:
----
  ugrep-7.8.0.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ugrep.spec ++++++
--- /var/tmp/diff_new_pack.CN4qjx/_old  2026-04-30 20:33:43.394976851 +0200
+++ /var/tmp/diff_new_pack.CN4qjx/_new  2026-04-30 20:33:43.398977016 +0200
@@ -23,7 +23,7 @@
 %bcond_without fish
 %endif
 Name:           ugrep
-Version:        7.7.0
+Version:        7.8.0
 Release:        0
 Summary:        Universal grep: a feature-rich grep implementation with focus 
on speed
 License:        BSD-3-Clause

++++++ _service ++++++
--- /var/tmp/diff_new_pack.CN4qjx/_old  2026-04-30 20:33:43.490980801 +0200
+++ /var/tmp/diff_new_pack.CN4qjx/_new  2026-04-30 20:33:43.514981788 +0200
@@ -5,7 +5,7 @@
     <param name="changesgenerate">enable</param>
     <param name="filename">ugrep</param>
     <param name="versionformat">@PARENT_TAG@</param>
-    <param name="revision">v7.7.0</param>
+    <param name="revision">v7.8.0</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="versionrewrite-replacement">\1</param>
   </service>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.CN4qjx/_old  2026-04-30 20:33:43.598985245 +0200
+++ /var/tmp/diff_new_pack.CN4qjx/_new  2026-04-30 20:33:43.622986232 +0200
@@ -1,7 +1,7 @@
 <servicedata>
   <service name="tar_scm">
       <param name="url">https://github.com/Genivia/ugrep.git</param>
-      <param 
name="changesrevision">5bfa7623a98e71c4ec1f2bd3046cb084a09ff82b</param>
+      <param 
name="changesrevision">5f6f5bd4f77df74faf01076f7d2407a603464868</param>
   </service>
 </servicedata>
 (No newline at EOF)

++++++ ugrep-7.7.0.obscpio -> ugrep-7.8.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/bin/ug+ new/ugrep-7.8.0/bin/ug+
--- old/ugrep-7.7.0/bin/ug+     2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/bin/ug+     2026-04-29 16:27:56.000000000 +0200
@@ -1,16 +1,16 @@
 #!/bin/sh
 filters=
 if [ -x "$(command -v pdftotext)" ] && pdftotext --help 2>&1 | ugrep -qw 
Poppler ; then
-  filters="${filters}${filters:+,}pdf:pdftotext % -"
+  filters="${filters}${filters:+,}pdf:pdftotext -- % -"
 fi
 if [ -x "$(command -v antiword)" ] && antiword 2>&1 | ugrep -qw Adri ; then
-  filters="${filters}${filters:+,}doc:antiword %"
+  filters="${filters}${filters:+,}doc:antiword -- %"
 fi
 if [ -x "$(command -v pandoc)" ] && pandoc --version 2>&1 | ugrep -qw 
pandoc.org ; then
-  filters="${filters}${filters:+,}odt,docx,epub,rtf:pandoc --wrap=preserve -t 
plain % -o -"
+  filters="${filters}${filters:+,}odt,docx,epub,rtf:pandoc --wrap=preserve -t 
plain -o - -- %"
 fi
 if [ -x "$(command -v exiftool)" ] ; then
-  filters="${filters}${filters:+,}gif,jpg,jpeg,mpg,mpeg,png,tiff:exiftool %"
+  filters="${filters}${filters:+,}gif,jpg,jpeg,mpg,mpeg,png,tiff:exiftool -- %"
 fi
 if [ -n "$filters" ]; then
   ug --filter="${filters}" "$@"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/bin/ugrep+ new/ugrep-7.8.0/bin/ugrep+
--- old/ugrep-7.7.0/bin/ugrep+  2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/bin/ugrep+  2026-04-29 16:27:56.000000000 +0200
@@ -1,16 +1,16 @@
 #!/bin/sh
 filters=
 if [ -x "$(command -v pdftotext)" ] && pdftotext --help 2>&1 | ugrep -qw 
Poppler ; then
-  filters="${filters}${filters:+,}pdf:pdftotext % -"
+  filters="${filters}${filters:+,}pdf:pdftotext -- % -"
 fi
 if [ -x "$(command -v antiword)" ] && antiword 2>&1 | ugrep -qw Adri ; then
-  filters="${filters}${filters:+,}doc:antiword %"
+  filters="${filters}${filters:+,}doc:antiword -- %"
 fi
 if [ -x "$(command -v pandoc)" ] && pandoc --version 2>&1 | ugrep -qw 
pandoc.org ; then
-  filters="${filters}${filters:+,}odt,docx,epub,rtf:pandoc --wrap=preserve -t 
plain % -o -"
+  filters="${filters}${filters:+,}odt,docx,epub,rtf:pandoc --wrap=preserve -t 
plain -o - -- %"
 fi
 if [ -x "$(command -v exiftool)" ] ; then
-  filters="${filters}${filters:+,}gif,jpg,jpeg,mpg,mpeg,png,tiff:exiftool %"
+  filters="${filters}${filters:+,}gif,jpg,jpeg,mpg,mpeg,png,tiff:exiftool -- %"
 fi
 if [ -n "$filters" ]; then
   ug --filter="${filters}" "$@"
Binary files old/ugrep-7.7.0/bin/win32/ug.exe and 
new/ugrep-7.8.0/bin/win32/ug.exe differ
Binary files old/ugrep-7.7.0/bin/win32/ugrep-indexer.exe and 
new/ugrep-7.8.0/bin/win32/ugrep-indexer.exe differ
Binary files old/ugrep-7.7.0/bin/win32/ugrep.exe and 
new/ugrep-7.8.0/bin/win32/ugrep.exe differ
Binary files old/ugrep-7.7.0/bin/win64/ug.exe and 
new/ugrep-7.8.0/bin/win64/ug.exe differ
Binary files old/ugrep-7.7.0/bin/win64/ugrep-indexer.exe and 
new/ugrep-7.8.0/bin/win64/ugrep-indexer.exe differ
Binary files old/ugrep-7.7.0/bin/win64/ugrep.exe and 
new/ugrep-7.8.0/bin/win64/ugrep.exe differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/completions/bash/ug 
new/ugrep-7.8.0/completions/bash/ug
--- old/ugrep-7.7.0/completions/bash/ug 2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/completions/bash/ug 2026-04-29 16:27:56.000000000 +0200
@@ -332,7 +332,7 @@
 -u, --ungroup Do not group multiple pattern matches on the same matched line.
 -V, --version Display version with linked libraries and exit.
 -v, --invert-match Selected lines are those not matching any of the specified 
patterns.
---view[=COMMAND] Use COMMAND to view/edit a file in -Q query TUI by pressing 
CTRL-Y.
+--view[=[+]COMMAND] Use COMMAND to view/edit a file in -Q query TUI by 
pressing CTRL-Y, +COMMAND waits for a key press after COMMAND terminated.
 -W, --with-hex Output binary matches in hexadecimal, leaving text matches 
alone.
 -w, --word-regexp The PATTERN is searched for as a word, such that the 
matching text is preceded by a non-word character and is followed by a non-word 
character.
 --width[=NUM] Truncate the output to NUM visible characters per line.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/completions/fish/ug+.fish 
new/ugrep-7.8.0/completions/fish/ug+.fish
--- old/ugrep-7.7.0/completions/fish/ug+.fish   2026-04-21 19:29:26.000000000 
+0200
+++ new/ugrep-7.8.0/completions/fish/ug+.fish   2026-04-29 16:27:56.000000000 
+0200
@@ -110,7 +110,7 @@
 complete -c ug+ -s u -l ungroup -d 'Do not group multiple pattern matches on 
the same matched line'
 complete -c ug+ -s V -l version -d 'Display version with linked libraries and 
exit'
 complete -c ug+ -s v -l invert-match -d 'Selected lines are those not matching 
any of the specified patterns'
-complete -c ug+ -l view -d 'Use COMMAND to view/edit a file in -Q query TUI by 
pressing CTRL-Y'
+complete -c ug+ -l view -d 'Use COMMAND to view/edit a file in -Q query TUI by 
pressing CTRL-Y, +COMMAND waits for a key press after COMMAND terminated'
 complete -c ug+ -s W -l with-hex -d 'Output binary matches in hexadecimal, 
leaving text matches alone'
 complete -c ug+ -s w -l word-regexp -d 'The PATTERN is searched for as a word, 
such that the matching text is preceded by a non-word character and is followed 
by a non-word character'
 complete -c ug+ -l width -d 'Truncate the output to NUM visible characters per 
line'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/completions/fish/ug.fish 
new/ugrep-7.8.0/completions/fish/ug.fish
--- old/ugrep-7.7.0/completions/fish/ug.fish    2026-04-21 19:29:26.000000000 
+0200
+++ new/ugrep-7.8.0/completions/fish/ug.fish    2026-04-29 16:27:56.000000000 
+0200
@@ -110,7 +110,7 @@
 complete -c ug -s u -l ungroup -d 'Do not group multiple pattern matches on 
the same matched line'
 complete -c ug -s V -l version -d 'Display version with linked libraries and 
exit'
 complete -c ug -s v -l invert-match -d 'Selected lines are those not matching 
any of the specified patterns'
-complete -c ug -l view -d 'Use COMMAND to view/edit a file in -Q query TUI by 
pressing CTRL-Y'
+complete -c ug -l view -d 'Use COMMAND to view/edit a file in -Q query TUI by 
pressing CTRL-Y, +COMMAND waits for a key press after COMMAND terminated'
 complete -c ug -s W -l with-hex -d 'Output binary matches in hexadecimal, 
leaving text matches alone'
 complete -c ug -s w -l word-regexp -d 'The PATTERN is searched for as a word, 
such that the matching text is preceded by a non-word character and is followed 
by a non-word character'
 complete -c ug -l width -d 'Truncate the output to NUM visible characters per 
line'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/completions/fish/ugrep+.fish 
new/ugrep-7.8.0/completions/fish/ugrep+.fish
--- old/ugrep-7.7.0/completions/fish/ugrep+.fish        2026-04-21 
19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/completions/fish/ugrep+.fish        2026-04-29 
16:27:56.000000000 +0200
@@ -110,7 +110,7 @@
 complete -c ugrep+ -s u -l ungroup -d 'Do not group multiple pattern matches 
on the same matched line'
 complete -c ugrep+ -s V -l version -d 'Display version with linked libraries 
and exit'
 complete -c ugrep+ -s v -l invert-match -d 'Selected lines are those not 
matching any of the specified patterns'
-complete -c ugrep+ -l view -d 'Use COMMAND to view/edit a file in -Q query TUI 
by pressing CTRL-Y'
+complete -c ugrep+ -l view -d 'Use COMMAND to view/edit a file in -Q query TUI 
by pressing CTRL-Y, +COMMAND waits for a key press after COMMAND terminated'
 complete -c ugrep+ -s W -l with-hex -d 'Output binary matches in hexadecimal, 
leaving text matches alone'
 complete -c ugrep+ -s w -l word-regexp -d 'The PATTERN is searched for as a 
word, such that the matching text is preceded by a non-word character and is 
followed by a non-word character'
 complete -c ugrep+ -l width -d 'Truncate the output to NUM visible characters 
per line'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/completions/fish/ugrep.fish 
new/ugrep-7.8.0/completions/fish/ugrep.fish
--- old/ugrep-7.7.0/completions/fish/ugrep.fish 2026-04-21 19:29:26.000000000 
+0200
+++ new/ugrep-7.8.0/completions/fish/ugrep.fish 2026-04-29 16:27:56.000000000 
+0200
@@ -110,7 +110,7 @@
 complete -c ugrep -s u -l ungroup -d 'Do not group multiple pattern matches on 
the same matched line'
 complete -c ugrep -s V -l version -d 'Display version with linked libraries 
and exit'
 complete -c ugrep -s v -l invert-match -d 'Selected lines are those not 
matching any of the specified patterns'
-complete -c ugrep -l view -d 'Use COMMAND to view/edit a file in -Q query TUI 
by pressing CTRL-Y'
+complete -c ugrep -l view -d 'Use COMMAND to view/edit a file in -Q query TUI 
by pressing CTRL-Y, +COMMAND waits for a key press after COMMAND terminated'
 complete -c ugrep -s W -l with-hex -d 'Output binary matches in hexadecimal, 
leaving text matches alone'
 complete -c ugrep -s w -l word-regexp -d 'The PATTERN is searched for as a 
word, such that the matching text is preceded by a non-word character and is 
followed by a non-word character'
 complete -c ugrep -l width -d 'Truncate the output to NUM visible characters 
per line'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/completions/zsh/_ug 
new/ugrep-7.8.0/completions/zsh/_ug
--- old/ugrep-7.7.0/completions/zsh/_ug 2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/completions/zsh/_ug 2026-04-29 16:27:56.000000000 +0200
@@ -117,7 +117,7 @@
 {-u,--ungroup}'[Do not group multiple pattern matches on the same matched 
line]'
 {-V,--version}'[Display version with linked libraries and exit]'
 {-v,--invert-match}'[Selected lines are those not matching any of the 
specified patterns]'
---view'[Use COMMAND to view/edit a file in -Q query TUI by pressing CTRL-Y]'
+--view'[Use COMMAND to view/edit a file in -Q query TUI by pressing CTRL-Y, 
+COMMAND waits for a key press after COMMAND terminated]'
 {-W,--with-hex}'[Output binary matches in hexadecimal, leaving text matches 
alone]'
 {-w,--word-regexp}'[The PATTERN is searched for as a word, such that the 
matching text is preceded by a non-word character and is followed by a non-word 
character]'
 --width'[Truncate the output to NUM visible characters per line]'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/completions/zsh/_ug+ 
new/ugrep-7.8.0/completions/zsh/_ug+
--- old/ugrep-7.7.0/completions/zsh/_ug+        2026-04-21 19:29:26.000000000 
+0200
+++ new/ugrep-7.8.0/completions/zsh/_ug+        2026-04-29 16:27:56.000000000 
+0200
@@ -117,7 +117,7 @@
 {-u,--ungroup}'[Do not group multiple pattern matches on the same matched 
line]'
 {-V,--version}'[Display version with linked libraries and exit]'
 {-v,--invert-match}'[Selected lines are those not matching any of the 
specified patterns]'
---view'[Use COMMAND to view/edit a file in -Q query TUI by pressing CTRL-Y]'
+--view'[Use COMMAND to view/edit a file in -Q query TUI by pressing CTRL-Y, 
+COMMAND waits for a key press after COMMAND terminated]'
 {-W,--with-hex}'[Output binary matches in hexadecimal, leaving text matches 
alone]'
 {-w,--word-regexp}'[The PATTERN is searched for as a word, such that the 
matching text is preceded by a non-word character and is followed by a non-word 
character]'
 --width'[Truncate the output to NUM visible characters per line]'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/completions/zsh/_ugrep 
new/ugrep-7.8.0/completions/zsh/_ugrep
--- old/ugrep-7.7.0/completions/zsh/_ugrep      2026-04-21 19:29:26.000000000 
+0200
+++ new/ugrep-7.8.0/completions/zsh/_ugrep      2026-04-29 16:27:56.000000000 
+0200
@@ -117,7 +117,7 @@
 {-u,--ungroup}'[Do not group multiple pattern matches on the same matched 
line]'
 {-V,--version}'[Display version with linked libraries and exit]'
 {-v,--invert-match}'[Selected lines are those not matching any of the 
specified patterns]'
---view'[Use COMMAND to view/edit a file in -Q query TUI by pressing CTRL-Y]'
+--view'[Use COMMAND to view/edit a file in -Q query TUI by pressing CTRL-Y, 
+COMMAND waits for a key press after COMMAND terminated]'
 {-W,--with-hex}'[Output binary matches in hexadecimal, leaving text matches 
alone]'
 {-w,--word-regexp}'[The PATTERN is searched for as a word, such that the 
matching text is preceded by a non-word character and is followed by a non-word 
character]'
 --width'[Truncate the output to NUM visible characters per line]'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/completions/zsh/_ugrep+ 
new/ugrep-7.8.0/completions/zsh/_ugrep+
--- old/ugrep-7.7.0/completions/zsh/_ugrep+     2026-04-21 19:29:26.000000000 
+0200
+++ new/ugrep-7.8.0/completions/zsh/_ugrep+     2026-04-29 16:27:56.000000000 
+0200
@@ -117,7 +117,7 @@
 {-u,--ungroup}'[Do not group multiple pattern matches on the same matched 
line]'
 {-V,--version}'[Display version with linked libraries and exit]'
 {-v,--invert-match}'[Selected lines are those not matching any of the 
specified patterns]'
---view'[Use COMMAND to view/edit a file in -Q query TUI by pressing CTRL-Y]'
+--view'[Use COMMAND to view/edit a file in -Q query TUI by pressing CTRL-Y, 
+COMMAND waits for a key press after COMMAND terminated]'
 {-W,--with-hex}'[Output binary matches in hexadecimal, leaving text matches 
alone]'
 {-w,--word-regexp}'[The PATTERN is searched for as a word, such that the 
matching text is preceded by a non-word character and is followed by a non-word 
character]'
 --width'[Truncate the output to NUM visible characters per line]'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/configure new/ugrep-7.8.0/configure
--- old/ugrep-7.7.0/configure   2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/configure   2026-04-29 16:27:56.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for ugrep 7.7.0.
+# Generated by GNU Autoconf 2.72 for ugrep 7.8.0.
 #
 # Report bugs to <https://github.com/Genivia/ugrep/issues>.
 #
@@ -606,8 +606,8 @@
 # Identity of this package.
 PACKAGE_NAME='ugrep'
 PACKAGE_TARNAME='ugrep'
-PACKAGE_VERSION='7.7.0'
-PACKAGE_STRING='ugrep 7.7.0'
+PACKAGE_VERSION='7.8.0'
+PACKAGE_STRING='ugrep 7.8.0'
 PACKAGE_BUGREPORT='https://github.com/Genivia/ugrep/issues'
 PACKAGE_URL='https://ugrep.com'
 
@@ -1383,7 +1383,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-'configure' configures ugrep 7.7.0 to adapt to many kinds of systems.
+'configure' configures ugrep 7.8.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1454,7 +1454,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ugrep 7.7.0:";;
+     short | recursive ) echo "Configuration of ugrep 7.8.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1632,7 +1632,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ugrep configure 7.7.0
+ugrep configure 7.8.0
 generated by GNU Autoconf 2.72
 
 Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2186,7 +2186,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ugrep $as_me 7.7.0, which was
+It was created by ugrep $as_me 7.8.0, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3696,7 +3696,7 @@
 
 # Define the identity of the package.
  PACKAGE='ugrep'
- VERSION='7.7.0'
+ VERSION='7.8.0'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -11875,7 +11875,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ugrep $as_me 7.7.0, which was
+This file was extended by ugrep $as_me 7.8.0, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -11948,7 +11948,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-ugrep config.status 7.7.0
+ugrep config.status 7.8.0
 configured by $0, generated by GNU Autoconf 2.72,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/configure.ac new/ugrep-7.8.0/configure.ac
--- old/ugrep-7.7.0/configure.ac        2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/configure.ac        2026-04-29 16:27:56.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT([ugrep],[7.7.0],[https://github.com/Genivia/ugrep/issues],[ugrep],[https://ugrep.com])
+AC_INIT([ugrep],[7.8.0],[https://github.com/Genivia/ugrep/issues],[ugrep],[https://ugrep.com])
 AM_INIT_AUTOMAKE([foreign subdir-objects dist-xz no-dist-gzip])
 AC_CONFIG_HEADERS([config.h])
 AC_COPYRIGHT([Copyright (C) 2019-2026 Robert van Engelen, Genivia Inc.])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/man/ug.1 new/ugrep-7.8.0/man/ug.1
--- old/ugrep-7.7.0/man/ug.1    2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/man/ug.1    2026-04-29 16:27:56.000000000 +0200
@@ -1,4 +1,4 @@
-.TH UGREP "1" "April 21, 2026" "ugrep 7.7.0" "User Commands"
+.TH UGREP "1" "April 29, 2026" "ugrep 7.8.0" "User Commands"
 .SH NAME
 \fBugrep\fR, \fBug\fR -- file pattern searcher
 .SH SYNOPSIS
@@ -892,8 +892,9 @@
 Selected lines are those not matching any of the specified
 patterns.
 .TP
-\fB\-\-view\fR[=\fICOMMAND\fR]
-Use COMMAND to view/edit a file in \fB\-Q\fR query TUI by pressing CTRL\-Y.
+\fB\-\-view\fR[=[+]COMMAND]
+Use COMMAND to view/edit a file in \fB\-Q\fR query TUI by pressing CTRL\-Y,
++COMMAND waits for a key press after COMMAND terminated.
 .TP
 \fB\-W\fR, \fB\-\-with\-hex\fR
 Output binary matches in hexadecimal, leaving text matches alone.
@@ -970,7 +971,8 @@
 xz (.xz, .txz) and lzma (requires suffix .lzma, .tlz),
 zstd (.zst, .zstd, .tzst),
 lz4 (requires suffix .lz4),
-brotli (requires suffix .br).
+brotli (requires suffix .br),
+bzip3 (requires suffix .bz3).
 .TP
 \fB\-\-zmax\fR=\fINUM\fR
 When used with option \fB\-z\fR or \fB\-\-decompress\fR, searches the contents 
of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/man/ugrep-indexer.1 
new/ugrep-7.8.0/man/ugrep-indexer.1
--- old/ugrep-7.7.0/man/ugrep-indexer.1 2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/man/ugrep-indexer.1 2026-04-29 16:27:56.000000000 +0200
@@ -1,4 +1,4 @@
-.TH UGREP-INDEXER "1" "April 21, 2026" "ugrep-indexer 7.7.0" "User Commands"
+.TH UGREP-INDEXER "1" "April 29, 2026" "ugrep-indexer 7.8.0" "User Commands"
 .SH NAME
 \fBugrep-indexer\fR -- file indexer to accelerate recursive searching
 .SH SYNOPSIS
@@ -147,7 +147,8 @@
 lzma and xz (requires suffix .lzma, .tlz, .xz, .txz),
 lz4 (requires suffix .lz4),
 zstd (requires suffix .zst, .zstd, .tzst),
-brotli (requires suffix .br).
+brotli (requires suffix .br),
+bzip3 (requires suffix .bz3).
 .TP
 \fB\-\-zmax\fR=\fINUM\fR
 When used with option \fB\-z\fR (\fB\-\-decompress\fR), indexes the contents of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/man/ugrep.1 new/ugrep-7.8.0/man/ugrep.1
--- old/ugrep-7.7.0/man/ugrep.1 2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/man/ugrep.1 2026-04-29 16:27:56.000000000 +0200
@@ -1,4 +1,4 @@
-.TH UGREP "1" "April 21, 2026" "ugrep 7.7.0" "User Commands"
+.TH UGREP "1" "April 29, 2026" "ugrep 7.8.0" "User Commands"
 .SH NAME
 \fBugrep\fR, \fBug\fR -- file pattern searcher
 .SH SYNOPSIS
@@ -892,8 +892,9 @@
 Selected lines are those not matching any of the specified
 patterns.
 .TP
-\fB\-\-view\fR[=\fICOMMAND\fR]
-Use COMMAND to view/edit a file in \fB\-Q\fR query TUI by pressing CTRL\-Y.
+\fB\-\-view\fR[=[+]COMMAND]
+Use COMMAND to view/edit a file in \fB\-Q\fR query TUI by pressing CTRL\-Y,
++COMMAND waits for a key press after COMMAND terminated.
 .TP
 \fB\-W\fR, \fB\-\-with\-hex\fR
 Output binary matches in hexadecimal, leaving text matches alone.
@@ -970,7 +971,8 @@
 xz (.xz, .txz) and lzma (requires suffix .lzma, .tlz),
 zstd (.zst, .zstd, .tzst),
 lz4 (requires suffix .lz4),
-brotli (requires suffix .br).
+brotli (requires suffix .br),
+bzip3 (requires suffix .bz3).
 .TP
 \fB\-\-zmax\fR=\fINUM\fR
 When used with option \fB\-z\fR or \fB\-\-decompress\fR, searches the contents 
of
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/src/query.cpp 
new/ugrep-7.8.0/src/query.cpp
--- old/ugrep-7.7.0/src/query.cpp       2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/src/query.cpp       2026-04-29 16:27:56.000000000 +0200
@@ -42,6 +42,7 @@
 #include <iostream>
 #include <fstream>
 #include <thread>
+#include <chrono>
 #include <fcntl.h>
 
 #ifdef OS_WIN
@@ -2370,13 +2371,14 @@
   }
 
   // if no viewer, then give up
-  if (flag_view == NULL || *flag_view == '\0')
+  if (flag_view == NULL || *flag_view == '\0' || (*flag_view == '+' && 
flag_view[1] == '\0'))
   {
     Screen::alert();
     return;
   }
 
-  std::string command(flag_view);
+  bool keypress = (*flag_view == '+');
+  std::string command(flag_view + keypress);
   int ref = select_ >= 0 ? select_ : row_;
   size_t line_number = 0;
 
@@ -2492,6 +2494,35 @@
       std::wstring wcommand;
 #endif
 
+      Screen::clear();
+      Screen::invert();
+      Screen::put(command.c_str());
+      Screen::put(' ');
+      Screen::put(filename.c_str());
+      if (!partname.empty())
+      {
+        Screen::put('{');
+        Screen::put(partname.c_str());
+        Screen::put('}');
+      }
+      Screen::normal();
+      Screen::setpos(1, 0);
+
+#ifndef OS_WIN
+      // normal tty mode
+      VKey::cleanup();
+#endif
+
+      // executing the command is OK, unless checks fail, pipe fails, or 
command fails
+      bool ok = true;
+
+      // file was changed when viewed, e.g. by an editor?
+      bool changed = false;
+
+      // track elapsed time: if the command terminates very quickly within 
100ms, then wait 1s
+      reflex::timer_type et;
+      reflex::timer_start(et);
+
       if (flag_stdin && filename == flag_label)
       {
         // standard input is viewed via a pipe to the pager
@@ -2521,8 +2552,7 @@
           catch (...)
           {
             // this should never happen, but just in case we ignore errors
-            Screen::alert();
-            return;
+            ok = false;
           }
         }
       }
@@ -2532,66 +2562,54 @@
         if (filename.empty() || filename.at(0) == '/' || filename.find('"') != 
std::string::npos)
         {
           // illegal filename in Windows, should never happen, but just in case
-          Screen::alert();
-          return;
+          ok = false;
+        }
+        else
+        {
+          // view file in the pager using Windows _wsystem() call
+          command.append(" \"").append(filename).append("\"");
+          // Windows system() does not support non-ASCII, instead we use a 
wide string with _wsystem()
+          wcommand = utf8_decode(command);
+          // flush before calling _wsystem(), according to the Window's system 
API documentation
+          // _flushall(); removed because this may cause the TUI to freeze
         }
-        // view file in the pager using Windows _wsystem() call
-        command.append(" \"").append(filename).append("\"");
-        // Windows system() does not support non-ASCII, instead we use a wide 
string with _wsystem()
-        wcommand = utf8_decode(command);
-        // flush before calling _wsystem(), according to the Window's system 
API documentation
-        // _flushall(); removed because this may cause the TUI to freeze
 #else
         if (filename.find('\'') != std::string::npos)
         {
           // incorrect filename
-          Screen::alert();
-          return;
+          ok = false;
+        }
+        else
+        {
+          // view file in the pager using system() call, double -- ends options
+          command.append(" -- '").append(filename).append("'");
         }
-        // view file in the pager using system() call, double -- ends options
-        command.append(" -- '").append(filename).append("'");
-#endif
-      }
-
-      Screen::clear();
-      Screen::put("Waiting on ");
-      Screen::put(command.c_str());
-      Screen::put(" to finish");
-      Screen::home();
-
-      // pipe to pager was OK or executing the command is OK
-      bool ok;
-
-      if ((flag_stdin && filename == flag_label) || !partname.empty())
-      {
-        ok = (pager != NULL);
-      }
-      else
-      {
-#ifdef OS_WIN
-        ok = (_wsystem(wcommand.c_str()) == 0);
-#else
-        ok = (system(command.c_str()) == 0);
 #endif
       }
 
       if (ok)
       {
-#ifdef OS_WIN
-        if (strcmp(flag_view, "more") == 0)
+        if ((flag_stdin && filename == flag_label) || !partname.empty())
         {
-          Screen::setpos(Screen::rows - 1, 0);
-          Screen::put("(END) press a key");
-          Screen::alert();
-          VKey::flush();
-          VKey::get();
+          // popen() pipe to pager is OK?
+          ok = (pager != NULL);
+
+          if (ok)
+          {
+            // close the pipe to the pager
+            pclose(pager);
+            pager = NULL;
+          }
         }
+        else
+        {
+          // execute command, check if OK
+#ifdef OS_WIN
+          ok = (_wsystem(wcommand.c_str()) == 0);
+#else
+          ok = (system(command.c_str()) == 0);
 #endif
 
-        bool changed = false;
-
-        if (pager == NULL)
-        {
           // check if file was changed by the pager (when it is an editor)
 #ifdef OS_WIN
           _WIN32_FILE_ATTRIBUTE_DATA attr_after;
@@ -2609,28 +2627,49 @@
 #endif
 #endif
         }
-        else
-        {
-          // close the pipe to the pager
-          pclose(pager);
-          pager = NULL;
-        }
+      }
 
-        if (changed)
-        {
-          // file is changed, update the search results
-          search();
-          jump(ref);
-        }
-        else
-        {
-          redraw();
-        }
+#ifndef OS_WIN
+      // resume RAW tty mode and flush the key buffer
+      VKey::setup(VKey::TTYRAW);
+#else
+      // flush the key buffer
+      VKey::flush();
+#endif
+
+#ifdef OS_WIN
+      if (ok && (keypress || strcmp(flag_view, "more") == 0))
+#else
+      if (ok && keypress)
+#endif
+      {
+        Screen::setpos(Screen::rows - 1, 0);
+        Screen::invert();
+        Screen::put("(END)");
+        Screen::normal();
+        Screen::put(" press a key ");
+        VKey::get();
+      }
+      else if (reflex::timer_elapsed(et) < 100)
+      {
+        // command terminated very quickly within 100ms
+        std::this_thread::sleep_for(std::chrono::seconds(1));
+      }
+
+      if (changed)
+      {
+        // file is changed, update the search results
+        search();
+        jump(ref);
       }
       else
       {
-        Screen::alert();
         redraw();
+      }
+
+      if (!ok)
+      {
+        Screen::alert();
         message(std::string("failed: ").append(command));
       }
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/src/screen.cpp 
new/ugrep-7.8.0/src/screen.cpp
--- old/ugrep-7.7.0/src/screen.cpp      2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/src/screen.cpp      2026-04-29 16:27:56.000000000 +0200
@@ -567,11 +567,11 @@
             break;
 
           default:
-            if (*text == '\033' && text + 1 < end && (text[1] == '[' || 
text[1] == ']'))
+            if (*text == '\033' && text + 2 < end && (text[1] == '[' || 
(text[1] == ']' && text[2] == '8')))
             {
-              if (text + 1 < end && text[1] == '[')
+              if (text[1] == '[')
               {
-                // CSI \e[... sequence
+                // ANSI CSI \e[... sequence
                 next = text;
                 next += 2;
                 while (next < end && (*next < 0x40 || *next > 0x7e))
@@ -586,7 +586,7 @@
               }
               else
               {
-                // OSC \e]...BEL|ST sequence
+                // ANSI OSC \e]8...BEL|ST sequence (hyperlink)
                 next = text;
                 next += 2;
                 while (next < end && *next != '\a' && (*next != '\033' || 
(next + 1 < end && next[1] != '\\')))
@@ -703,11 +703,11 @@
           break;
 
         default:
-          if (*ptr == '\033' && ptr + 1 < end && (ptr[1] == '[' || ptr[1] == 
']'))
+          if (*ptr == '\033' && ptr + 2 < end && (ptr[1] == '[' || (ptr[1] == 
']' && ptr[2] == '8')))
           {
             if (ptr[1] == '[')
             {
-              // CSI \e[... sequence
+              // ANSI CSI \e[... sequence
               if (mono)
                 put(text, ptr - text);
               ptr += 2;
@@ -728,7 +728,7 @@
             }
             else
             {
-              // OSC \e]...BEL|ST sequence
+              // ANSI OSC \e]8...BEL|ST sequence (hyperlink)
               if (mono)
                 put(text, ptr - text);
               ptr += 2;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/src/ugrep-indexer.cpp 
new/ugrep-7.8.0/src/ugrep-indexer.cpp
--- old/ugrep-7.7.0/src/ugrep-indexer.cpp       2026-04-21 19:29:26.000000000 
+0200
+++ new/ugrep-7.8.0/src/ugrep-indexer.cpp       2026-04-29 16:27:56.000000000 
+0200
@@ -35,7 +35,7 @@
 */
 
 // DO NOT ALTER THIS LINE: updated by makemake.sh and we need it physically 
here for MSVC++ build from source
-#define UGREP_VERSION "7.7.0"
+#define UGREP_VERSION "7.8.0"
 
 // use a task-parallel thread to decompress the stream into a pipe to search, 
also handles nested archives
 #define WITH_DECOMPRESSION_THREAD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/src/ugrep.cpp 
new/ugrep-7.8.0/src/ugrep.cpp
--- old/ugrep-7.7.0/src/ugrep.cpp       2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/src/ugrep.cpp       2026-04-29 16:27:56.000000000 +0200
@@ -4803,12 +4803,13 @@
 
   // if config file was parsed before, then only try parsing the home dir 
config file
   bool home = flag_config_files.find(flag_config) != flag_config_files.end();
+  bool wdir = !home;
 
   // open a config file in the working dir or in the home directory
   std::string config_file(flag_config);
   FILE *file = NULL;
 
-  if (!home)
+  if (wdir)
   {
     // try opening a config file in the working directory
     if (fopen_smart(&file, flag_config, "r") == 0)
@@ -4861,6 +4862,8 @@
 
   if (file == NULL)
   {
+    wdir = false;
+
     // if not in the working directory, then check the home directory
     if (Static::home_dir != NULL && *flag_config != '~' && *flag_config != 
PATHSEPCHR)
     {
@@ -4958,6 +4961,17 @@
       ++lineno;
     }
 
+    // clear flags that don't make sense for config, confusing
+    flag_save_config = NULL;
+    flag_query = false;
+    flag_pager = NULL;
+    if (wdir)
+    {
+      flag_view = NULL;
+      flag_filter.clear();
+      flag_filter_magic_label.clear();
+    }
+
     if (ferror(file))
       error("error while reading", config_file.c_str());
 
@@ -5090,12 +5104,6 @@
   else
     fprintf(file, "no-view\n\n");
 
-  fprintf(file, "# Enable a pager for terminal output, default: no-pager\n");
-  if (flag_pager != NULL && *flag_pager != '\0')
-    fprintf(file, "pager=%s\n\n", flag_pager);
-  else
-    fprintf(file, "# pager=less\n\n");
-
   fprintf(file, "# Enable pretty output to the terminal, default: 
pretty\n%s\n\n", flag_pretty != NULL ? "pretty" : "no-pretty");
 
   fprintf(file, "# Enable directory tree output to the terminal for -l 
(--files-with-matches) and -c (--count)\n%s\n\n", flag_tree ? "tree" : 
"no-tree");
@@ -14689,8 +14697,9 @@
     -v, --invert-match\n\
             Selected lines are those not matching any of the specified\n\
             patterns.\n\
-    --view[=COMMAND]\n\
-            Use COMMAND to view/edit a file in -Q query TUI by pressing 
CTRL-Y.\n\
+    --view[=[+]COMMAND]\n\
+            Use COMMAND to view/edit a file in -Q query TUI by pressing 
CTRL-Y,\n\
+            +COMMAND waits for a key press after COMMAND terminated.\n\
     -W, --with-hex\n\
             Output binary matches in hexadecimal, leaving text matches 
alone.\n\
             This option is equivalent to the --binary-files=with-hex option.\n\
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ugrep-7.7.0/src/ugrep.hpp 
new/ugrep-7.8.0/src/ugrep.hpp
--- old/ugrep-7.7.0/src/ugrep.hpp       2026-04-21 19:29:26.000000000 +0200
+++ new/ugrep-7.8.0/src/ugrep.hpp       2026-04-29 16:27:56.000000000 +0200
@@ -38,7 +38,7 @@
 #define UGREP_HPP
 
 // DO NOT ALTER THIS LINE: updated by makemake.sh and we need it physically 
here for MSVC++ build from source
-#define UGREP_VERSION "7.7.0"
+#define UGREP_VERSION "7.8.0"
 
 // disable mmap because mmap is almost always slower than the file reading 
speed improvements since 3.0.0
 #define WITH_NO_MMAP

++++++ ugrep.obsinfo ++++++
--- /var/tmp/diff_new_pack.CN4qjx/_old  2026-04-30 20:33:45.679070823 +0200
+++ /var/tmp/diff_new_pack.CN4qjx/_new  2026-04-30 20:33:45.683070988 +0200
@@ -1,5 +1,5 @@
 name: ugrep
-version: 7.7.0
-mtime: 1776792566
-commit: 5bfa7623a98e71c4ec1f2bd3046cb084a09ff82b
+version: 7.8.0
+mtime: 1777472876
+commit: 5f6f5bd4f77df74faf01076f7d2407a603464868
 

Reply via email to