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-05-18 17:47:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ugrep (Old) and /work/SRC/openSUSE:Factory/.ugrep.new.1966 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ugrep" Mon May 18 17:47:27 2026 rev:92 rq:1353666 version:7.8.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ugrep/ugrep.changes 2026-05-04 12:57:27.587215754 +0200 +++ /work/SRC/openSUSE:Factory/.ugrep.new.1966/ugrep.changes 2026-05-18 17:48:02.324357124 +0200 @@ -1,0 +2,6 @@ +Mon May 18 05:27:20 UTC 2026 - Andreas Stieger <[email protected]> + +- Update to version 7.8.2: + * update TUI logic for selections and improve maintainability + +------------------------------------------------------------------- Old: ---- ugrep-7.8.1.obscpio New: ---- ugrep-7.8.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ugrep.spec ++++++ --- /var/tmp/diff_new_pack.qz80Op/_old 2026-05-18 17:48:03.704414151 +0200 +++ /var/tmp/diff_new_pack.qz80Op/_new 2026-05-18 17:48:03.712414482 +0200 @@ -23,7 +23,7 @@ %bcond_without fish %endif Name: ugrep -Version: 7.8.1 +Version: 7.8.2 Release: 0 Summary: Universal grep: a feature-rich grep implementation with focus on speed License: BSD-3-Clause ++++++ _service ++++++ --- /var/tmp/diff_new_pack.qz80Op/_old 2026-05-18 17:48:03.800418118 +0200 +++ /var/tmp/diff_new_pack.qz80Op/_new 2026-05-18 17:48:03.816418779 +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.8.1</param> + <param name="revision">v7.8.2</param> <param name="versionrewrite-pattern">v(.*)</param> <param name="versionrewrite-replacement">\1</param> </service> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.qz80Op/_old 2026-05-18 17:48:03.896422085 +0200 +++ /var/tmp/diff_new_pack.qz80Op/_new 2026-05-18 17:48:03.908422581 +0200 @@ -1,7 +1,7 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/Genivia/ugrep.git</param> - <param name="changesrevision">0ecc0aa45ad7b327a857cd90d5ec77501edae4b6</param> + <param name="changesrevision">d71b793556d5bf29f9e67b0e28ce4b23d90ba5e7</param> </service> </servicedata> (No newline at EOF) ++++++ ugrep-7.8.1.obscpio -> ugrep-7.8.2.obscpio ++++++ ++++ 10516 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/ar-lib new/ugrep-7.8.2/ar-lib --- old/ugrep-7.8.1/ar-lib 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/ar-lib 2026-05-17 21:30:54.000000000 +0200 @@ -2,9 +2,9 @@ # Wrapper for Microsoft lib.exe me=ar-lib -scriptversion=2019-07-04.01; # UTC +scriptversion=2025-02-03.05; # UTC -# Copyright (C) 2010-2021 Free Software Foundation, Inc. +# Copyright (C) 2010-2025 Free Software Foundation, Inc. # Written by Peter Rosin <[email protected]>. # # This program is free software; you can redistribute it and/or modify @@ -51,9 +51,20 @@ # lazily determine how to convert abs files case `uname -s` in MINGW*) - file_conv=mingw + if test -n "$MSYSTEM" && (cygpath --version) >/dev/null 2>&1; then + # MSYS2 environment. + file_conv=cygwin + else + # Original MinGW environment. + file_conv=mingw + fi ;; - CYGWIN* | MSYS*) + MSYS*) + # Old MSYS environment, or MSYS2 with 32-bit MSYS2 shell. + file_conv=cygwin + ;; + CYGWIN*) + # Cygwin environment. file_conv=cygwin ;; *) @@ -65,8 +76,8 @@ mingw) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin | msys) - file=`cygpath -m "$file" || echo "$file"` + cygwin) + file=`cygpath -w "$file" || echo "$file"` ;; wine) file=`winepath -w "$file" || echo "$file"` @@ -105,11 +116,15 @@ Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...] Members may be specified in a file named with @FILE. + +Report bugs to <[email protected]>. +GNU Automake home page: <https://www.gnu.org/software/automake/>. +General help using GNU software: <https://www.gnu.org/gethelp/>. EOF exit $? ;; -v | --v*) - echo "$me, version $scriptversion" + echo "$me (GNU Automake) $scriptversion" exit $? ;; esac @@ -135,6 +150,10 @@ AR="$AR $1" shift ;; + -nologo | -NOLOGO) + # We always invoke AR with -nologo, so don't need to add it again. + shift + ;; *) action=$1 shift Binary files old/ugrep-7.8.1/bin/win32/ug.exe and new/ugrep-7.8.2/bin/win32/ug.exe differ Binary files old/ugrep-7.8.1/bin/win32/ugrep-indexer.exe and new/ugrep-7.8.2/bin/win32/ugrep-indexer.exe differ Binary files old/ugrep-7.8.1/bin/win32/ugrep.exe and new/ugrep-7.8.2/bin/win32/ugrep.exe differ Binary files old/ugrep-7.8.1/bin/win64/ug.exe and new/ugrep-7.8.2/bin/win64/ug.exe differ Binary files old/ugrep-7.8.1/bin/win64/ugrep-indexer.exe and new/ugrep-7.8.2/bin/win64/ugrep-indexer.exe differ Binary files old/ugrep-7.8.1/bin/win64/ugrep.exe and new/ugrep-7.8.2/bin/win64/ugrep.exe differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/compile new/ugrep-7.8.2/compile --- old/ugrep-7.8.1/compile 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/compile 2026-05-17 21:30:54.000000000 +0200 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2018-03-07.03; # UTC +scriptversion=2025-06-18.21; # UTC -# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Copyright (C) 1999-2025 Free Software Foundation, Inc. # Written by Tom Tromey <[email protected]>. # # This program is free software; you can redistribute it and/or modify @@ -37,11 +37,11 @@ file_conv= -# func_file_conv build_file lazy +# func_file_conv build_file unneeded_conversions # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion -# type is listed in (the comma separated) LAZY, no conversion will -# take place. +# type is listed in (the comma separated) UNNEEDED_CONVERSIONS, no +# conversion will take place. func_file_conv () { file=$1 @@ -51,9 +51,20 @@ # lazily determine how to convert abs files case `uname -s` in MINGW*) - file_conv=mingw + if test -n "$MSYSTEM" && (cygpath --version) >/dev/null 2>&1; then + # MSYS2 environment. + file_conv=cygwin + else + # Original MinGW environment. + file_conv=mingw + fi ;; - CYGWIN* | MSYS*) + MSYS*) + # Old MSYS environment, or MSYS2 with 32-bit MSYS2 shell. + file_conv=cygwin + ;; + CYGWIN*) + # Cygwin environment. file_conv=cygwin ;; *) @@ -63,12 +74,14 @@ fi case $file_conv/,$2, in *,$file_conv,*) + # This is the optimization mentioned above: + # If UNNEEDED_CONVERSIONS contains $file_conv, don't convert. ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/* | msys/*) - file=`cygpath -m "$file" || echo "$file"` + cygwin/*) + file=`cygpath -w "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` @@ -143,7 +156,7 @@ # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in - *.o | *.[oO][bB][jJ]) + *.o | *.lo | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift @@ -248,14 +261,17 @@ right script to run: please start by reading the file 'INSTALL'. Report bugs to <[email protected]>. +GNU Automake home page: <https://www.gnu.org/software/automake/>. +General help using GNU software: <https://www.gnu.org/gethelp/>. EOF exit $? ;; -v | --v*) - echo "compile $scriptversion" + echo "compile (GNU Automake) $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; @@ -340,9 +356,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp nil t) # time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-format: "%Y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/configure.ac new/ugrep-7.8.2/configure.ac --- old/ugrep-7.8.1/configure.ac 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/configure.ac 2026-05-17 21:30:54.000000000 +0200 @@ -1,4 +1,4 @@ -AC_INIT([ugrep],[7.8.1],[https://github.com/Genivia/ugrep/issues],[ugrep],[https://ugrep.com]) +AC_INIT([ugrep],[7.8.2],[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' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/include/reflex/absmatcher.h new/ugrep-7.8.2/include/reflex/absmatcher.h --- old/ugrep-7.8.1/include/reflex/absmatcher.h 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/include/reflex/absmatcher.h 2026-05-17 21:30:54.000000000 +0200 @@ -635,7 +635,7 @@ { return txt_ + len_; } - /// Returns 0-terminated pattern match as a char pointer, does not include matched \0s, this is a constant-time operation. + /// Returns 0-terminated pattern match as a char pointer, does not include matched `\0`s, this is a constant-time operation. inline const char *text() /// @returns 0-terminated const char* string with text matched { @@ -647,34 +647,34 @@ return txt_; } #if __cplusplus >= 201703L - /// Returns the pattern match as a string_view (zero copy), does not include a terminating \0, this is a constant-time operation. + /// Returns the pattern match as a string_view (zero copy), does not include a terminating `\0`, this is a constant-time operation. inline const std::string_view strview() const /// @returns string_view with text matched { return std::string_view(txt_, len_); } #endif - /// Returns the text matched as a string, a copy of text(), may include pattern-matched \0s. + /// Returns the text matched as a string, a copy of text(), including pattern-matched `\0`s. inline std::string str() const /// @returns string with text matched { return std::string(txt_, len_); } - /// Returns the pattern match as a wide string, converted from UTF-8 text(), may include pattern-matched \0s. + /// Returns the pattern match as a wide string, converted from UTF-8 text(), including pattern-matched `\0`s. inline std::wstring wstr() const /// @returns wide string with text matched { return wcs(txt_, len_); } - /// Returns the length of the matched text in number of bytes, including pattern-matched \0s, a constant-time operation. + /// Returns the length of the matched text in number of bytes, including pattern-matched `\0`s, a constant-time operation. inline size_t size() const /// @returns match size in bytes { return len_; } - /// Returns the length of the matched text in number of wide characters. + /// Returns the length of the matched text in number of Unicode wide characters. inline size_t wsize() const - /// @returns the length of the match in number of wide (multibyte UTF-8) characters + /// @returns the length of the match in number of Unicode wide characters { size_t n = 0; const char *e = txt_ + len_; @@ -682,18 +682,55 @@ n += (*s & 0xc0) != 0x80; return n; } - /// Returns the first 8-bit character of the text matched. + /// True if match was empty, same as (size() == 0), only possible with matcher init option "N" for Const::FIND, Const::SPLIT, Const::MATCH. + inline bool empty() const + { + return size() == 0; + } + /// Returns the first 8-bit character of the text matched, same as text()[0], undefined when size() == 0. inline int chr() const /// @returns 8-bit char { return *txt_; } - /// Returns the first wide character of the text matched. + /// Returns the first Unicode wide character code point U+0000 to U+10FFFF of the text matched, undefined when size() == 0. inline int wchr() const - /// @returns wide char (UTF-8 converted to Unicode) + /// @returns Unicode wide character code point U+0000 to U+10FFFF { return utf8(txt_); } + /// Returns the last 8-bit character of the text matched or 0 when empty. + inline int chr_last() const + /// @returns 8-bit char + { + return len_ > 0 ? txt_[len_ - 1] : '\0'; + } + /// Returns the last Unicode wide character code point U+0000 to U+10FFFF of the text matched or 0 when empty. + inline int wchr_last() const + /// @returns code point wide character code point U+0000 to U+10FFFF + { + if (len_ == 0) + return L'\0'; + const char *s = txt_ + len_; + while (s > txt_ && (*--s & 0xc0) == 0x80) + continue; + return utf8(s); + } + /// Returns the 8-bit character that comes next in the input after of the text match, or EOF when the input ends. + inline int chr_next() + /// @returns 8-bit char + { + return at_end() ? EOF : chr_ != '\0' ? chr_ : txt_[len_]; + } + /// Returns the Unicode wide character code point U+0000 to U+10FFFF that comes next in the input after the text match, or EOF when the input ends. + inline int wchr_next() + /// @returns wide character code point U+0000 to U+10FFFF + { + reset_text(); + if (pos_ + 6 > end_ && !eof_) + (void)grow(); + return at_end() ? EOF : utf8(txt_ + len_); + } #if WITH_SPAN /// Set or reset mode to count matching lines only and skip all other (e.g. for speed). inline void lineno_skip(bool f = false) @@ -807,7 +844,7 @@ #endif cno_ = n; } - /// Updates and returns the starting column number of the matched text, taking tab spacing into account and counting wide characters as one character each + /// Updates and returns the starting column number of the matched text, taking tab spacing into account and counting Unicode wide characters as one character each inline size_t columno() /// @returns column number { @@ -830,7 +867,7 @@ #endif return cno_; } - /// Returns the number of columns of the matched text, taking tab spacing into account and counting wide characters as one character each. + /// Returns the number of columns of the matched text, taking tab spacing into account and counting Unicode wide characters as one character each. inline size_t columns() /// @returns number of columns { @@ -877,7 +914,7 @@ #endif } #if WITH_SPAN - /// Returns the inclusive ending column number of the matched text on the ending matching line, taking tab spacing into account and counting wide characters as one character each + /// Returns the inclusive ending column number of the matched text on the ending matching line, taking tab spacing into account and counting Unicode wide characters as one character each inline size_t columno_end() /// @returns column number { @@ -1009,9 +1046,9 @@ cur_ = pos_; return got_; } - /// Returns the next wide character (unsigned 0..U+10FFFF or EOF) from the input character sequence, while preserving the current text() match (but pointer returned by text() may change; warning: does not preserve the yytext string pointer when options --flex and --bison are used). + /// Returns the next Unicode character code point U+0000 to U+10FFFF or EOF from the input character sequence, while preserving the current text() match (but pointer returned by text() may change; warning: does not preserve the yytext string pointer when options --flex and --bison are used). int winput() - /// @returns the next wide character (unsigned 0..U+10FFFF) or EOF (-1) + /// @returns the next Unicode character code point U+00000 to U+10FFFF or EOF (-1) { DBGLOG("AbstractMatcher::winput()"); char tmp[8] = { 0 }, *s = tmp; @@ -1026,7 +1063,7 @@ } return utf8(tmp); } - /// Put back one character (8-bit) on the input character sequence for matching, DANGER: invalidates the previous text() pointer and match info, unput is not honored when matching in-place using buffer(base, size) and nothing has been read yet. + /// Put back one character (8-bit) on the input character sequence for matching, DANGER: invalidates the previous text() pointer and match info, unput is not honored when matching in-place using buffer(base, size) when nothing has been read yet. void unput(char c) ///< 8-bit character to put back { DBGLOG("AbstractMatcher::unput()"); @@ -1043,14 +1080,20 @@ (void)grow(); std::memmove(buf_ + 1, buf_, end_); ++end_; +#if WITH_SPAN + ++bol_; + ++cpb_; +#endif + ++lpb_; } buf_[pos_] = c; cur_ = pos_; } - /// Put back one (wide) character on the input character sequence for matching, DANGER: invalidates the previous text() pointer and match info, unput is not honored when matching in-place using buffer(base, size) and nothing has been read yet. + /// Put back one (wide) character on the input character sequence for matching, DANGER: invalidates the previous text() pointer and match info, unput is not honored when matching in-place using buffer(base, size) when nothing has been read yet. void wunput(int c) ///< character to put back { DBGLOG("AbstractMatcher::wunput()"); + reset_text(); char tmp[8]; size_t n = utf8(c, tmp); if (pos_ >= n) @@ -1059,12 +1102,19 @@ } else if (own_) { + n -= pos_; + pos_ = 0; txt_ = buf_; len_ = 0; if (end_ + n >= max_) (void)grow(); std::memmove(buf_ + n, buf_, end_); end_ += n; +#if WITH_SPAN + bol_ += n; + cpb_ += n; +#endif + lpb_ += n; } std::memcpy(&buf_[pos_], tmp, n); cur_ = pos_; @@ -1102,7 +1152,7 @@ return bol_; } /// Returns pointer to the end of the line (last char + 1) in the buffer containing the matched text, DANGER: invalidates previous bol() and text() pointers, use eol() before bol(), text(), begin(), and end() when those are used. - inline const char *eol(bool inclusive = false) ///< true if inclusive, i.e. point after \n instead of at \n + inline const char *eol(bool inclusive = false) ///< true if inclusive, i.e. point after `\n` instead of at `\n` /// @returns pointer to the end of line { if (chr_ == '\n' || (txt_ + len_ < buf_ + end_ && txt_[len_] == '\n')) @@ -1143,7 +1193,7 @@ { return txt_ >= buf_ + len ? txt_ - len : buf_; } - /// Return number of bytes available after the match position given len bytes to fetch ahead, limited by input size and buffer size, DANGER: invalidates previous bol() and text() pointers, use fetch() before bol(), text(), begin(), and end() when those are used. + /// Return number of bytes available after the match position given len bytes to fetch ahead after the match, limited by input size and buffer size, DANGER: invalidates previous bol() and text() pointers, use fetch() before bol(), text(), begin(), and end() when those are used. inline size_t fetch(size_t len) /// @returns number of bytes available after fetching after the match position. { @@ -1190,7 +1240,7 @@ { return txt_ - bol(); } - /// Enlarge the match to span the entire line of input (excluding \n), return text(). + /// Enlarge the match to span the entire line of input (excluding `\n`), return text(). inline const char *span() /// @returns const char* span of text for the entire line { @@ -1206,7 +1256,7 @@ len_ = e - bol_; return text(); } - /// Returns the line of input (excluding \n) as a string containing the matched text as a substring. + /// Returns the line of input (excluding `\n`) as a string containing the matched text as a substring. inline std::string line() /// @returns matching line as a string { @@ -1216,7 +1266,7 @@ const char *b = bol(); return std::string(b, e - b); } - /// Returns the line of input (excluding \n) as a wide string containing the matched text as a substring. + /// Returns the line of input (excluding `\n`) as a wide string containing the matched text as a substring. inline std::wstring wline() /// @returns matching line as a wide string { @@ -1332,7 +1382,7 @@ } /// Cast this matcher to positive integer indicating the nonzero capture index of the matched text in the pattern, same as AbstractMatcher::accept. inline operator size_t() const - /// @returns nonzero capture index of a match, which may be matcher dependent, or zero for a mismatch + /// @returns nonzero capture index of a match, which is matcher dependent, or zero for a mismatch { return accept(); } @@ -1594,7 +1644,7 @@ } #endif } - /// Reset the matched text by removing the terminating \0 when applicable, which is needed to search for a new match. + /// Reset the matched text by removing the terminating `\0` when applicable, which is needed to search for a new match. inline void reset_text() { if (chr_ != '\0') @@ -1690,10 +1740,10 @@ size_t cno_; ///< column number count (cached) size_t num_; ///< number of bytes shifted out so far, when buffer shifted size_t res_; ///< reserve bytes to keep in the buffer before bol_ when shifting - bool own_; ///< true if AbstractMatcher::buf_ was allocated and should be deleted - bool eof_; ///< input has reached EOF - bool mat_; ///< true if AbstractMatcher::matches() was successful - bool cml_; ///< true when counting matching lines instead of line numbers + bool own_; ///< true when AbstractMatcher::buf_ allocation is owned and should be deleted + bool eof_; ///< true when input has reached EOF + bool mat_; ///< true when AbstractMatcher::matches() was successful + bool cml_; ///< true when counting matching lines instead of line numbers, enabled by lineno_skip() }; /// The pattern matcher class template extends abstract matcher base class. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/makemake.sh new/ugrep-7.8.2/makemake.sh --- old/ugrep-7.8.1/makemake.sh 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/makemake.sh 2026-05-17 21:30:54.000000000 +0200 @@ -38,6 +38,15 @@ # this may be needed to reconfigure for glibtoolize for example # autoreconf -fvi +# run autoconf and automake stuff with maintainer mode disabled +aclocal +autoheader +rm -f config.guess config.sub ar-lib compile depcomp install-sh missing +automake --add-missing --foreign +autoconf +automake +touch config.h.in + ./build.sh --with-bzip3 || exit 1 ./man.sh $1 pushd completions/bash ; ./compgen.sh > /dev/null ; popd || exit 1 @@ -46,11 +55,6 @@ sed "s/^\(AC_INIT(\[ugrep\],\[\)[0-9.]*/\1$1/" configure.ac > configure.tmp && mv -f configure.tmp configure.ac || exit 1 -# run autoconf and automake stuff with maintainer mode disabled -aclocal -autoheader -rm -f config.guess config.sub ar-lib compile depcomp install-sh missing -automake --add-missing --foreign autoconf automake touch config.h.in @@ -61,7 +65,7 @@ else -echo "Usage: ./makemake.sh 5.v.v" +echo "Usage: ./makemake.sh 7.v.v" exit 1 fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/man/ug.1 new/ugrep-7.8.2/man/ug.1 --- old/ugrep-7.8.1/man/ug.1 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/man/ug.1 2026-05-17 21:30:54.000000000 +0200 @@ -1,4 +1,4 @@ -.TH UGREP "1" "May 03, 2026" "ugrep 7.8.1" "User Commands" +.TH UGREP "1" "May 17, 2026" "ugrep 7.8.2" "User Commands" .SH NAME \fBugrep\fR, \fBug\fR -- file pattern searcher .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/man/ugrep-indexer.1 new/ugrep-7.8.2/man/ugrep-indexer.1 --- old/ugrep-7.8.1/man/ugrep-indexer.1 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/man/ugrep-indexer.1 2026-05-17 21:30:54.000000000 +0200 @@ -1,4 +1,4 @@ -.TH UGREP-INDEXER "1" "May 03, 2026" "ugrep-indexer 7.8.1" "User Commands" +.TH UGREP-INDEXER "1" "May 17, 2026" "ugrep-indexer 7.8.2" "User Commands" .SH NAME \fBugrep-indexer\fR -- file indexer to accelerate recursive searching .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/man/ugrep.1 new/ugrep-7.8.2/man/ugrep.1 --- old/ugrep-7.8.1/man/ugrep.1 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/man/ugrep.1 2026-05-17 21:30:54.000000000 +0200 @@ -1,4 +1,4 @@ -.TH UGREP "1" "May 03, 2026" "ugrep 7.8.1" "User Commands" +.TH UGREP "1" "May 17, 2026" "ugrep 7.8.2" "User Commands" .SH NAME \fBugrep\fR, \fBug\fR -- file pattern searcher .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/missing new/ugrep-7.8.2/missing --- old/ugrep-7.8.1/missing 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/missing 2026-05-17 21:30:54.000000000 +0200 @@ -1,9 +1,11 @@ #! /bin/sh -# Common wrapper for a few potentially missing GNU programs. +# Common wrapper for a few potentially missing GNU and other programs. -scriptversion=2018-03-07.03; # UTC +scriptversion=2025-06-18.21; # UTC -# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# shellcheck disable=SC2006,SC2268 # we must support pre-POSIX shells + +# Copyright (C) 1996-2025 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <[email protected]>, 1996. # This program is free software; you can redistribute it and/or modify @@ -54,18 +56,20 @@ -v, --version output version information and exit Supported PROGRAM values: - aclocal autoconf autoheader autom4te automake makeinfo - bison yacc flex lex help2man +aclocal autoconf autogen autoheader autom4te automake autoreconf +bison flex help2man lex makeinfo perl yacc Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. -Send bug reports to <[email protected]>." +Report bugs to <[email protected]>. +GNU Automake home page: <https://www.gnu.org/software/automake/>. +General help using GNU software: <https://www.gnu.org/gethelp/>." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" + echo "missing (GNU Automake) $scriptversion" exit $? ;; @@ -108,7 +112,7 @@ program_details () { case $1 in - aclocal|automake) + aclocal|automake|autoreconf) echo "The '$1' program is part of the GNU Automake package:" echo "<$gnu_software_URL/automake>" echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" @@ -123,6 +127,9 @@ echo "<$gnu_software_URL/m4/>" echo "<$perl_URL>" ;; + *) + : + ;; esac } @@ -137,48 +144,55 @@ printf '%s\n' "'$1' is $msg." configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + autoheader_deps="'acconfig.h'" + automake_deps="'Makefile.am'" + aclocal_deps="'acinclude.m4'" case $normalized_program in + aclocal*) + echo "You should only need it if you modified $aclocal_deps or" + echo "$configure_deps." + ;; autoconf*) - echo "You should only need it if you modified 'configure.ac'," - echo "or m4 files included by it." - program_details 'autoconf' + echo "You should only need it if you modified $configure_deps." + ;; + autogen*) + echo "You should only need it if you modified a '.def' or '.tpl' file." + echo "You may want to install the GNU AutoGen package:" + echo "<$gnu_software_URL/autogen/>" ;; autoheader*) - echo "You should only need it if you modified 'acconfig.h' or" + echo "You should only need it if you modified $autoheader_deps or" echo "$configure_deps." - program_details 'autoheader' ;; automake*) - echo "You should only need it if you modified 'Makefile.am' or" - echo "$configure_deps." - program_details 'automake' - ;; - aclocal*) - echo "You should only need it if you modified 'acinclude.m4' or" + echo "You should only need it if you modified $automake_deps or" echo "$configure_deps." - program_details 'aclocal' ;; - autom4te*) + autom4te*) echo "You might have modified some maintainer files that require" echo "the 'autom4te' program to be rebuilt." - program_details 'autom4te' + ;; + autoreconf*) + echo "You should only need it if you modified $aclocal_deps or" + echo "$automake_deps or $autoheader_deps or $automake_deps or" + echo "$configure_deps." ;; bison*|yacc*) echo "You should only need it if you modified a '.y' file." echo "You may want to install the GNU Bison package:" echo "<$gnu_software_URL/bison/>" ;; - lex*|flex*) - echo "You should only need it if you modified a '.l' file." - echo "You may want to install the Fast Lexical Analyzer package:" - echo "<$flex_URL>" - ;; help2man*) echo "You should only need it if you modified a dependency" \ "of a man page." echo "You may want to install the GNU Help2man package:" echo "<$gnu_software_URL/help2man/>" ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; makeinfo*) echo "You should only need it if you modified a '.texi' file, or" echo "any other file indirectly affecting the aspect of the manual." @@ -189,6 +203,12 @@ echo "want to install GNU make:" echo "<$gnu_software_URL/make/>" ;; + perl*) + echo "You should only need it to run GNU Autoconf, GNU Automake, " + echo " assorted other tools, or if you modified a Perl source file." + echo "You may want to install the Perl 5 language interpreter:" + echo "<$perl_URL>" + ;; *) echo "You might have modified some files without having the proper" echo "tools for further handling them. Check the 'README' file, it" @@ -197,6 +217,7 @@ echo "case some other package contains this missing '$1' program." ;; esac + program_details "$normalized_program" } give_advice "$1" | sed -e '1s/^/WARNING: /' \ @@ -207,9 +228,9 @@ exit $st # Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp nil t) # time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-format: "%Y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/src/query.cpp new/ugrep-7.8.2/src/query.cpp --- old/ugrep-7.8.1/src/query.cpp 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/src/query.cpp 2026-05-17 21:30:54.000000000 +0200 @@ -887,6 +887,9 @@ VKey::cleanup(); Screen::cleanup(); + // print the selected output + print(); + // close the search pipe to terminate the search threads, if still open if (!eof_) { @@ -909,13 +912,6 @@ stdin_stop = true; if (stdin_thread_.joinable()) stdin_thread_.join(); - - // check TTY a final time for color support to print results, if any, this time without --query - flag_query = false; - terminal(); - - // print the selected output - print(); } // run the query UI diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/src/ugrep-indexer.cpp new/ugrep-7.8.2/src/ugrep-indexer.cpp --- old/ugrep-7.8.1/src/ugrep-indexer.cpp 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/src/ugrep-indexer.cpp 2026-05-17 21:30:54.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.8.1" +#define UGREP_VERSION "7.8.2" // 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' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/ugrep-7.8.1/src/ugrep.hpp new/ugrep-7.8.2/src/ugrep.hpp --- old/ugrep-7.8.1/src/ugrep.hpp 2026-05-03 14:44:56.000000000 +0200 +++ new/ugrep-7.8.2/src/ugrep.hpp 2026-05-17 21:30:54.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.8.1" +#define UGREP_VERSION "7.8.2" // 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.qz80Op/_old 2026-05-18 17:48:06.352523576 +0200 +++ /var/tmp/diff_new_pack.qz80Op/_new 2026-05-18 17:48:06.376524568 +0200 @@ -1,5 +1,5 @@ name: ugrep -version: 7.8.1 -mtime: 1777812296 -commit: 0ecc0aa45ad7b327a857cd90d5ec77501edae4b6 +version: 7.8.2 +mtime: 1779046254 +commit: d71b793556d5bf29f9e67b0e28ce4b23d90ba5e7
