Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gnu_parallel for openSUSE:Factory 
checked in at 2021-06-09 21:52:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnu_parallel (Old)
 and      /work/SRC/openSUSE:Factory/.gnu_parallel.new.32437 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnu_parallel"

Wed Jun  9 21:52:45 2021 rev:67 rq:898490 version:20210522

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnu_parallel/gnu_parallel.changes        
2021-05-11 23:04:47.540789474 +0200
+++ /work/SRC/openSUSE:Factory/.gnu_parallel.new.32437/gnu_parallel.changes     
2021-06-09 21:53:10.630568327 +0200
@@ -1,0 +2,6 @@
+Tue Jun  8 15:44:27 UTC 2021 - Jan Engelhardt <[email protected]>
+
+- Update to release 20210522
+  * --plus includes {%%regexp} and {##regexp}.
+
+-------------------------------------------------------------------

Old:
----
  parallel-20210422.tar.bz2
  parallel-20210422.tar.bz2.sig

New:
----
  parallel-20210522.tar.bz2
  parallel-20210522.tar.bz2.sig

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

Other differences:
------------------
++++++ gnu_parallel.spec ++++++
--- /var/tmp/diff_new_pack.UzdlZh/_old  2021-06-09 21:53:11.890570573 +0200
+++ /var/tmp/diff_new_pack.UzdlZh/_new  2021-06-09 21:53:11.890570573 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           gnu_parallel
-Version:        20210422
+Version:        20210522
 Release:        0
 Summary:        Shell tool for executing jobs in parallel
 License:        GPL-3.0-or-later

++++++ parallel-20210422.tar.bz2 -> parallel-20210522.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/NEWS new/parallel-20210522/NEWS
--- old/parallel-20210422/NEWS  2021-04-22 17:33:36.000000000 +0200
+++ new/parallel-20210522/NEWS  2021-05-22 21:41:42.000000000 +0200
@@ -1,3 +1,32 @@
+20210522
+
+New in this release:
+
+* --plus includes {%%regexp} and {##regexp}.
+
+* Bug fixes and man page updates.
+
+News about GNU Parallel:
+
+* Batch Calculate and Verify MD5 Checksum With GNU Parallel
+  
https://omicx.cc/posts/2021-04-28-calculate-and-verify-md5-checksum-with-gnu-parallel/
+
+* HerrComp Gnu parallel, c++11 threads 2021 04 28
+  https://www.youtube.com/watch?v=wDd9F9nn0qA
+
+* Distributing embarrassingly parallel tasks GNU Parallel
+  https://ulhpc-tutorials.readthedocs.io/en/latest/sequential/gnu-parallel/
+
+* Job Parallelization on Niagara
+  https://www.maryamdaryalal.com/post/job-parallelization-on-niagara
+
+* Use Parallel to split by line
+  https://madflex.de/use-parallel-to-split-by-line/
+
+* m1 multi-core batch convert with gpu parallel + ffmpeg
+  https://www.youtube.com/watch?v=hAuc0YsXv6A
+
+
 20210422
 
 New in this release:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/README new/parallel-20210522/README
--- old/parallel-20210422/README        2021-04-22 17:43:08.000000000 +0200
+++ new/parallel-20210522/README        2021-05-22 22:05:54.000000000 +0200
@@ -57,11 +57,11 @@
 
 Full installation of GNU Parallel is as simple as:
 
-    wget https://ftpmirror.gnu.org/parallel/parallel-20210422.tar.bz2
-    wget https://ftpmirror.gnu.org/parallel/parallel-20210422.tar.bz2.sig
-    gpg parallel-20210422.tar.bz2.sig
-    bzip2 -dc parallel-20210422.tar.bz2 | tar xvf -
-    cd parallel-20210422
+    wget https://ftpmirror.gnu.org/parallel/parallel-20210522.tar.bz2
+    wget https://ftpmirror.gnu.org/parallel/parallel-20210522.tar.bz2.sig
+    gpg parallel-20210522.tar.bz2.sig
+    bzip2 -dc parallel-20210522.tar.bz2 | tar xvf -
+    cd parallel-20210522
     ./configure && make && sudo make install
 
 
@@ -70,11 +70,11 @@
 If you are not root you can add ~/bin to your path and install in
 ~/bin and ~/share:
 
-    wget https://ftpmirror.gnu.org/parallel/parallel-20210422.tar.bz2
-    wget https://ftpmirror.gnu.org/parallel/parallel-20210422.tar.bz2.sig
-    gpg parallel-20210422.tar.bz2.sig
-    bzip2 -dc parallel-20210422.tar.bz2 | tar xvf -
-    cd parallel-20210422
+    wget https://ftpmirror.gnu.org/parallel/parallel-20210522.tar.bz2
+    wget https://ftpmirror.gnu.org/parallel/parallel-20210522.tar.bz2.sig
+    gpg parallel-20210522.tar.bz2.sig
+    bzip2 -dc parallel-20210522.tar.bz2 | tar xvf -
+    cd parallel-20210522
     ./configure --prefix=$HOME && make && make install
 
 Or if your system lacks 'make' you can simply copy src/parallel
@@ -122,8 +122,8 @@
 When using programs that use GNU Parallel to process data for
 publication please cite:
 
-    Tange, O. (2021, April 22). GNU Parallel 20210422 ('Ever Given').
-    Zenodo. https://doi.org/10.5281/zenodo.4710607
+    Tange, O. (2021, May 22). GNU Parallel 20210522 ('Gaza').
+    Zenodo. https://doi.org/10.5281/zenodo.4781603
 
 Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
 2016, 2017, 2018, 2019, 2020, 2021 Ole Tange, http://ole.tange.dk and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/configure 
new/parallel-20210522/configure
--- old/parallel-20210422/configure     2021-04-22 17:44:03.000000000 +0200
+++ new/parallel-20210522/configure     2021-05-22 22:06:43.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for parallel 20210422.
+# Generated by GNU Autoconf 2.69 for parallel 20210522.
 #
 # Report bugs to <[email protected]>.
 #
@@ -579,8 +579,8 @@
 # Identity of this package.
 PACKAGE_NAME='parallel'
 PACKAGE_TARNAME='parallel'
-PACKAGE_VERSION='20210422'
-PACKAGE_STRING='parallel 20210422'
+PACKAGE_VERSION='20210522'
+PACKAGE_STRING='parallel 20210522'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1214,7 +1214,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 parallel 20210422 to adapt to many kinds of systems.
+\`configure' configures parallel 20210522 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1281,7 +1281,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of parallel 20210422:";;
+     short | recursive ) echo "Configuration of parallel 20210522:";;
    esac
   cat <<\_ACEOF
 
@@ -1357,7 +1357,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-parallel configure 20210422
+parallel configure 20210522
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1374,7 +1374,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by parallel $as_me 20210422, which was
+It was created by parallel $as_me 20210522, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2237,7 +2237,7 @@
 
 # Define the identity of the package.
  PACKAGE='parallel'
- VERSION='20210422'
+ VERSION='20210522'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2880,7 +2880,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by parallel $as_me 20210422, which was
+This file was extended by parallel $as_me 20210522, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -2942,7 +2942,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-parallel config.status 20210422
+parallel config.status 20210522
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/configure.ac 
new/parallel-20210522/configure.ac
--- old/parallel-20210422/configure.ac  2021-04-22 17:43:08.000000000 +0200
+++ new/parallel-20210522/configure.ac  2021-05-22 22:05:54.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT([parallel], [20210422], [[email protected]])
+AC_INIT([parallel], [20210522], [[email protected]])
 AM_INIT_AUTOMAKE([-Wall -Werror foreign])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_FILES([
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/env_parallel.1 
new/parallel-20210522/src/env_parallel.1
--- old/parallel-20210422/src/env_parallel.1    2021-04-22 17:43:50.000000000 
+0200
+++ new/parallel-20210522/src/env_parallel.1    2021-05-22 22:06:46.000000000 
+0200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "ENV_PARALLEL 1"
-.TH ENV_PARALLEL 1 "2021-04-22" "20210422" "parallel"
+.TH ENV_PARALLEL 1 "2021-05-22" "20210522" "parallel"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/env_parallel.ash 
new/parallel-20210522/src/env_parallel.ash
--- old/parallel-20210422/src/env_parallel.ash  2021-04-22 17:43:08.000000000 
+0200
+++ new/parallel-20210522/src/env_parallel.ash  2021-05-22 22:05:54.000000000 
+0200
@@ -385,7 +385,7 @@
        return 255
     fi
     if [ "$_parset_NAME" = "--version" ] ; then
-       echo "parset 20210422 (GNU parallel `parallel --minversion 1`)"
+       echo "parset 20210522 (GNU parallel `parallel --minversion 1`)"
        echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free 
Software"
        echo "Foundation, Inc."
        echo "License GPLv3+: GNU GPL version 3 or later 
<https://gnu.org/licenses/gpl.html>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/env_parallel.bash 
new/parallel-20210522/src/env_parallel.bash
--- old/parallel-20210422/src/env_parallel.bash 2021-04-22 17:43:08.000000000 
+0200
+++ new/parallel-20210522/src/env_parallel.bash 2021-05-22 22:05:54.000000000 
+0200
@@ -391,7 +391,7 @@
        return 255
     fi
     if [ "$_parset_NAME" = "--version" ] ; then
-       echo "parset 20210422 (GNU parallel `parallel --minversion 1`)"
+       echo "parset 20210522 (GNU parallel `parallel --minversion 1`)"
        echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free 
Software"
        echo "Foundation, Inc."
        echo "License GPLv3+: GNU GPL version 3 or later 
<https://gnu.org/licenses/gpl.html>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/env_parallel.dash 
new/parallel-20210522/src/env_parallel.dash
--- old/parallel-20210422/src/env_parallel.dash 2021-04-22 17:43:08.000000000 
+0200
+++ new/parallel-20210522/src/env_parallel.dash 2021-05-22 22:05:54.000000000 
+0200
@@ -385,7 +385,7 @@
        return 255
     fi
     if [ "$_parset_NAME" = "--version" ] ; then
-       echo "parset 20210422 (GNU parallel `parallel --minversion 1`)"
+       echo "parset 20210522 (GNU parallel `parallel --minversion 1`)"
        echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free 
Software"
        echo "Foundation, Inc."
        echo "License GPLv3+: GNU GPL version 3 or later 
<https://gnu.org/licenses/gpl.html>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/env_parallel.ksh 
new/parallel-20210522/src/env_parallel.ksh
--- old/parallel-20210422/src/env_parallel.ksh  2021-04-22 17:43:08.000000000 
+0200
+++ new/parallel-20210522/src/env_parallel.ksh  2021-05-22 22:05:54.000000000 
+0200
@@ -368,7 +368,7 @@
        return 255
     fi
     if [ "$_parset_NAME" = "--version" ] ; then
-       echo "parset 20210422 (GNU parallel `parallel --minversion 1`)"
+       echo "parset 20210522 (GNU parallel `parallel --minversion 1`)"
        echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free 
Software"
        echo "Foundation, Inc."
        echo "License GPLv3+: GNU GPL version 3 or later 
<https://gnu.org/licenses/gpl.html>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/env_parallel.mksh 
new/parallel-20210522/src/env_parallel.mksh
--- old/parallel-20210422/src/env_parallel.mksh 2021-04-22 17:43:08.000000000 
+0200
+++ new/parallel-20210522/src/env_parallel.mksh 2021-05-22 22:05:54.000000000 
+0200
@@ -371,7 +371,7 @@
        return 255
     fi
     if [ "$_parset_NAME" = "--version" ] ; then
-       echo "parset 20210422 (GNU parallel `parallel --minversion 1`)"
+       echo "parset 20210522 (GNU parallel `parallel --minversion 1`)"
        echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free 
Software"
        echo "Foundation, Inc."
        echo "License GPLv3+: GNU GPL version 3 or later 
<https://gnu.org/licenses/gpl.html>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/env_parallel.sh 
new/parallel-20210522/src/env_parallel.sh
--- old/parallel-20210422/src/env_parallel.sh   2021-04-22 17:43:08.000000000 
+0200
+++ new/parallel-20210522/src/env_parallel.sh   2021-05-22 22:05:54.000000000 
+0200
@@ -390,7 +390,7 @@
        return 255
     fi
     if [ "$_parset_NAME" = "--version" ] ; then
-       echo "parset 20210422 (GNU parallel `parallel --minversion 1`)"
+       echo "parset 20210522 (GNU parallel `parallel --minversion 1`)"
        echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free 
Software"
        echo "Foundation, Inc."
        echo "License GPLv3+: GNU GPL version 3 or later 
<https://gnu.org/licenses/gpl.html>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/env_parallel.zsh 
new/parallel-20210522/src/env_parallel.zsh
--- old/parallel-20210422/src/env_parallel.zsh  2021-04-22 17:43:08.000000000 
+0200
+++ new/parallel-20210522/src/env_parallel.zsh  2021-05-22 22:05:54.000000000 
+0200
@@ -362,7 +362,7 @@
        return 255
     fi
     if [ "$_parset_NAME" = "--version" ] ; then
-       echo "parset 20210422 (GNU parallel `parallel --minversion 1`)"
+       echo "parset 20210522 (GNU parallel `parallel --minversion 1`)"
        echo "Copyright (C) 2007-2021 Ole Tange, http://ole.tange.dk and Free 
Software"
        echo "Foundation, Inc."
        echo "License GPLv3+: GNU GPL version 3 or later 
<https://gnu.org/licenses/gpl.html>"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/niceload 
new/parallel-20210522/src/niceload
--- old/parallel-20210422/src/niceload  2021-04-22 17:43:08.000000000 +0200
+++ new/parallel-20210522/src/niceload  2021-05-22 22:05:54.000000000 +0200
@@ -26,7 +26,7 @@
 use strict;
 use Getopt::Long;
 $Global::progname="niceload";
-$Global::version = 20210422;
+$Global::version = 20210522;
 Getopt::Long::Configure("bundling","require_order");
 get_options_from_array(\@ARGV) || die_usage();
 if($opt::version) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/parallel 
new/parallel-20210522/src/parallel
--- old/parallel-20210422/src/parallel  2021-04-22 17:43:08.000000000 +0200
+++ new/parallel-20210522/src/parallel  2021-05-22 22:05:54.000000000 +0200
@@ -2187,7 +2187,7 @@
 
 sub init_globals() {
     # Defaults:
-    $Global::version = 20210422;
+    $Global::version = 20210522;
     $Global::progname = 'parallel';
     $::name = "GNU Parallel";
     $Global::infinity = 2**31;
@@ -2242,12 +2242,18 @@
         '{:(\d+?)}' => 'substr($_,0,$$1) = ""',
         # Bash ${a:2:3}
         '{:(\d+?):(\d+?)}' => '$_ = substr($_,$$1,$$2);',
+        # echo {#z.*z.} ::: z.z.z.foo => z.foo
+        # echo {##z.*z.} ::: z.z.z.foo => foo
         # Bash ${a#bc}
-        '{#([^#}][^}]*?)}' => 's/^$$1//;',
+        '{#([^#}][^}]*?)}' =>
+        '$nongreedy=::make_regexp_ungreedy($$1);s/^$nongreedy(.*)/$1/;',
         # Bash ${a##bc}
         '{##([^#}][^}]*?)}' => 's/^$$1//;',
+        # echo {%.z.*z} ::: foo.z.z.z => foo.z
+        # echo {%%.z.*z} ::: foo.z.z.z => foo
         # Bash ${a%def}
-        '{%([^}]+?)}' => 's/$$1$//;',
+        '{%([^}]+?)}' =>
+        '$nongreedy=::make_regexp_ungreedy($$1);s/(.*)$nongreedy$/$1/;',
         # Bash ${a%%def}
         '{%%([^}]+?)}' => 's/$$1$//;',
         # Bash ${a/def/ghi} ${a/def/}
@@ -4986,8 +4992,8 @@
         "If you use programs that use GNU Parallel to process data for an 
article in a",
         "scientific publication, please cite:",
         "",
-         "  Tange, O. (2021, April 22). GNU Parallel 20210422 ('Ever Given').",
-        "  Zenodo. https://doi.org/10.5281/zenodo.4710607";,
+         "  Tange, O. (2021, May 22). GNU Parallel 20210522 ('Gaza').",
+        "  Zenodo. https://doi.org/10.5281/zenodo.4781603";,
         "",
         # Before changing this line,  please read
          # 
https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice
@@ -5017,8 +5023,8 @@
             "If you use programs that use GNU Parallel to process data for an 
article in a",
             "scientific publication, please cite:",
             "",
-            "  Tange, O. (2021, April 22). GNU Parallel 20210422 ('Ever 
Given').",
-            "  Zenodo. https://doi.org/10.5281/zenodo.4710607";,
+            "  Tange, O. (2021, May 22). GNU Parallel 20210522 ('Gaza').",
+            "  Zenodo. https://doi.org/10.5281/zenodo.4781603";,
             "",
             # Before changing this line,  please read
             # 
https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and
@@ -5094,8 +5100,8 @@
 sub die_bug($) {
     my $bugid = shift;
     print STDERR
-       ("$Global::progname: This should not happen. You have found a bug.\n",
-        "Please contact <parallel\@gnu.org> and follow\n",
+       ("$Global::progname: This should not happen. You have found a bug. ",
+        "Please follow\n",
         "https://www.gnu.org/software/parallel/man.html#REPORTING-BUGS\n";,
         "\n",
         "Include this in the report:\n",
@@ -5141,20 +5147,20 @@
        "If you use programs that use GNU Parallel to process data for an 
article in a",
        "scientific publication, please cite:",
        "",
-       "\@software{tange_2021_4710607,",
+       "\@software{tange_2021_4781603,",
        "      author       = {Tange, Ole},",
-       "      title        = {GNU Parallel 20210422 ('Ever Given')},",
-       "      month        = Apr,",
+       "      title        = {GNU Parallel 20210522 ('Gaza')},",
+       "      month        = May,",
        "      year         = 2021,",
        "      note         = {{GNU Parallel is a general parallelizer to run",
         "                       multiple serial command line programs in 
parallel",
        "                       without changing them.}},",
        "      publisher    = {Zenodo},",
-       "      doi          = {10.5281/zenodo.4710607},",
-       "      url          = {https://doi.org/10.5281/zenodo.4710607}";,
+       "      doi          = {10.5281/zenodo.4781603},",
+       "      url          = {https://doi.org/10.5281/zenodo.4781603}";,
        "}",
        "",
-       "(Feel free to use \\nocite{tange_2021_4710607})",
+       "(Feel free to use \\nocite{tange_2021_4781603})",
        "",
        # Before changing this line, please read
        # 
https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and
@@ -5931,6 +5937,37 @@
     select(undef, undef, undef, $ms/1000);
 }
 
+sub make_regexp_ungreedy {
+    my $regexp = shift;
+    
+    my $class_state = 0;
+    my $escape_state = 0;
+    my $found = 0;
+    my $ungreedy = "";
+    my $c;
+
+    for $c (split (//, $regexp)) {
+        if ($found) {
+           if($c ne "?") { $ungreedy .= "?"; }
+            $found = 0;
+        }
+        $ungreedy .= $c;
+
+       if ($escape_state) { $escape_state = 0; next; }
+       if ($c eq "\\") { $escape_state = 1; next; }
+       if ($c eq '[') { $class_state  = 1; next; }
+        if ($class_state) {
+           if($c eq ']') { $class_state = 0; }
+            next;
+        }
+       # Quantifiers: + * {...}
+        if ($c =~ /[*}+]/) { $found = 1; }
+    }
+    if($found) { $ungreedy .= '?'; }
+    return $ungreedy;
+}
+
+
 sub __KILLER_REAPER__() {}
 
 sub reap_usleep() {
@@ -6481,16 +6518,15 @@
                 limit=$1;
                  io_file=$2;
                 # Do the measurement in the background
-                (tmp=$(tempfile);
+                ((tmp=$(tempfile);
                 LANG=C iostat -x 1 2 > $tmp;
-                mv $tmp $io_file) &
+                mv $tmp $io_file) </dev/null >/dev/null & );
                 perl -e '-e $ARGV[0] or exit(1);
                    for(reverse <>) {
                      /Device/ and last;
                      /(\S+)$/ and $max = $max > $1 ? $max : $1; }
-                   exit ($max < '$limit')' $io_file;
+                   exit ('$limit' < $max)' $io_file;
             };
-             export -f io;
              io %s %s
              !,
             "mem" => q!
@@ -6533,6 +6569,7 @@
     local %ENV = %env;
     $ENV{'SSHLOGIN'} = $self->string();
     system($Global::shell,"-c",$self->{'limitscript'});
+    #::qqx($self->{'limitscript'});
     ::debug("limit","limit `".$self->{'limitscript'}."` result ".($?>>8)."\n");
     return $?>>8;
 }
@@ -9520,6 +9557,7 @@
                      replace_placeholders(\@opt::filter,0,0)) {
            $run &&= eval $eval;
        }
+       $self->{'commandline'}{'skip'} ||= not $run;
     }
     return $run;
 }
@@ -13767,3 +13805,4 @@
 }
 
 main();
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/parallel.1 
new/parallel-20210522/src/parallel.1
--- old/parallel-20210422/src/parallel.1        2021-04-19 09:52:59.000000000 
+0200
+++ new/parallel-20210522/src/parallel.1        2021-05-14 16:50:19.000000000 
+0200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "PARALLEL 1"
-.TH PARALLEL 1 "2021-04-10" "20210322" "parallel"
+.TH PARALLEL 1 "2021-05-14" "20210422" "parallel"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
@@ -1685,13 +1685,15 @@
 The following dynamic replacement strings are also activated. They are
 inspired by bash's parameter expansion:
 .Sp
-.Vb 10
+.Vb 12
 \&  {:\-str}       str if the value is empty
 \&  {:num}        remove the first num characters
 \&  {:num1:num2}  characters from num1 to num2
-\&  {#str}        remove prefix str
-\&  {%str}        remove postfix str
-\&  {/str1/str2}  replace str1 with str2
+\&  {#regexp}     remove prefix regexp (non\-greedy)
+\&  {##regexp}    remove prefix regexp (greedy)
+\&  {%regexp}     remove postfix regexp (non\-greedy)
+\&  {%%regexp}    remove postfix regexp (greedy)
+\&  {/regexp/str} replace regexp with str
 \&  {^str}        uppercase str if found at the start
 \&  {^^str}       uppercase str
 \&  {,str}        lowercase str if found at the start
@@ -4488,6 +4490,38 @@
 .Ve
 .PP
 See more \fBssh\fR tricks on 
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts
+.SS "\s-1EXAMPLE:\s0 Use outrun instead of ssh"
+.IX Subsection "EXAMPLE: Use outrun instead of ssh"
+\&\fBoutrun\fR lets you run a command on a remote server. \fBoutrun\fR sets up
+a connection to access files at the source server, and automatically
+transfers files. \fBoutrun\fR must be installed on the remote system.
+.PP
+You can use \fBoutrun\fR in an sshlogin this way:
+.PP
+.Vb 1
+\&  parallel \-S \*(Aqoutrun user@server eval\*(Aq command
+.Ve
+.SS "\s-1EXAMPLE:\s0 Slurm cluster"
+.IX Subsection "EXAMPLE: Slurm cluster"
+The Slurm Workload Manager is used in many clusters.
+.PP
+Here is a simple example of using \s-1GNU\s0 \fBparallel\fR to call \fBsrun\fR:
+.PP
+.Vb 1
+\&  #!/bin/bash
+\&  
+\&  #SBATCH \-\-time 00:02:00
+\&  #SBATCH \-\-ntasks=4
+\&  #SBATCH \-\-job\-name GnuParallelDemo
+\&  #SBATCH \-\-output gnuparallel.out
+\&  
+\&  module purge
+\&  module load gnu_parallel
+\&  
+\&  my_parallel="parallel \-\-delay .2 \-j $SLURM_NTASKS"
+\&  my_srun="srun \-\-export=all \-\-exclusive \-n1 \-\-cpus\-per\-task=1 
\-\-cpu\-bind=cores"
+\&  $my_parallel "$my_srun" echo This is job {} ::: {1..20}
+.Ve
 .SS "\s-1EXAMPLE:\s0 Parallelizing rsync"
 .IX Subsection "EXAMPLE: Parallelizing rsync"
 \&\fBrsync\fR is a great tool, but sometimes it will not fill up the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/parallel.html 
new/parallel-20210522/src/parallel.html
--- old/parallel-20210422/src/parallel.html     2021-04-10 21:49:15.000000000 
+0200
+++ new/parallel-20210522/src/parallel.html     2021-05-14 16:50:20.000000000 
+0200
@@ -88,6 +88,8 @@
           <li><a href="#No-jumphost-no-port-forwards">No jumphost, no port 
forwards</a></li>
         </ul>
       </li>
+      <li><a href="#EXAMPLE:-Use-outrun-instead-of-ssh">EXAMPLE: Use outrun 
instead of ssh</a></li>
+      <li><a href="#EXAMPLE:-Slurm-cluster">EXAMPLE: Slurm cluster</a></li>
       <li><a href="#EXAMPLE:-Parallelizing-rsync">EXAMPLE: Parallelizing 
rsync</a></li>
       <li><a href="#EXAMPLE:-Use-multiple-inputs-in-one-command">EXAMPLE: Use 
multiple inputs in one command</a></li>
       <li><a href="#EXAMPLE:-Use-a-table-as-input">EXAMPLE: Use a table as 
input</a></li>
@@ -1660,9 +1662,11 @@
 <pre><code>  {:-str}       str if the value is empty
   {:num}        remove the first num characters
   {:num1:num2}  characters from num1 to num2
-  {#str}        remove prefix str
-  {%str}        remove postfix str
-  {/str1/str2}  replace str1 with str2
+  {#regexp}     remove prefix regexp (non-greedy)
+  {##regexp}    remove prefix regexp (greedy)
+  {%regexp}     remove postfix regexp (non-greedy)
+  {%%regexp}    remove postfix regexp (greedy)
+  {/regexp/str} replace regexp with str
   {^str}        uppercase str if found at the start
   {^^str}       uppercase str
   {,str}        lowercase str if found at the start
@@ -3942,6 +3946,34 @@
 
 <p>See more <b>ssh</b> tricks on 
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts</p>
 
+<h2 id="EXAMPLE:-Use-outrun-instead-of-ssh">EXAMPLE: Use outrun instead of 
ssh</h2>
+
+<p><b>outrun</b> lets you run a command on a remote server. <b>outrun</b> sets 
up a connection to access files at the source server, and automatically 
transfers files. <b>outrun</b> must be installed on the remote system.</p>
+
+<p>You can use <b>outrun</b> in an sshlogin this way:</p>
+
+<pre><code>  parallel -S &#39;outrun user@server eval&#39; command</code></pre>
+
+<h2 id="EXAMPLE:-Slurm-cluster">EXAMPLE: Slurm cluster</h2>
+
+<p>The Slurm Workload Manager is used in many clusters.</p>
+
+<p>Here is a simple example of using GNU <b>parallel</b> to call 
<b>srun</b>:</p>
+
+<pre><code>  #!/bin/bash
+  
+  #SBATCH --time 00:02:00
+  #SBATCH --ntasks=4
+  #SBATCH --job-name GnuParallelDemo
+  #SBATCH --output gnuparallel.out
+  
+  module purge
+  module load gnu_parallel
+  
+  my_parallel=&quot;parallel --delay .2 -j $SLURM_NTASKS&quot;
+  my_srun=&quot;srun --export=all --exclusive -n1 --cpus-per-task=1 
--cpu-bind=cores&quot;
+  $my_parallel &quot;$my_srun&quot; echo This is job {} ::: 
{1..20}</code></pre>
+
 <h2 id="EXAMPLE:-Parallelizing-rsync">EXAMPLE: Parallelizing rsync</h2>
 
 <p><b>rsync</b> is a great tool, but sometimes it will not fill up the 
available bandwidth. Running multiple <b>rsync</b> in parallel can fix this.</p>
Binary files old/parallel-20210422/src/parallel.pdf and 
new/parallel-20210522/src/parallel.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/parallel.pod 
new/parallel-20210522/src/parallel.pod
--- old/parallel-20210422/src/parallel.pod      2021-04-10 21:49:02.000000000 
+0200
+++ new/parallel-20210522/src/parallel.pod      2021-05-14 16:36:07.000000000 
+0200
@@ -1662,9 +1662,11 @@
   {:-str}       str if the value is empty
   {:num}        remove the first num characters
   {:num1:num2}  characters from num1 to num2
-  {#str}        remove prefix str
-  {%str}        remove postfix str
-  {/str1/str2}  replace str1 with str2
+  {#regexp}     remove prefix regexp (non-greedy)
+  {##regexp}    remove prefix regexp (greedy)
+  {%regexp}     remove postfix regexp (non-greedy)
+  {%%regexp}    remove postfix regexp (greedy)
+  {/regexp/str} replace regexp with str
   {^str}        uppercase str if found at the start
   {^^str}       uppercase str
   {,str}        lowercase str if found at the start
@@ -4284,6 +4286,38 @@
 See more B<ssh> tricks on 
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts
 
 
+=head2 EXAMPLE: Use outrun instead of ssh
+
+B<outrun> lets you run a command on a remote server. B<outrun> sets up
+a connection to access files at the source server, and automatically
+transfers files. B<outrun> must be installed on the remote system.
+
+You can use B<outrun> in an sshlogin this way:
+
+  parallel -S 'outrun user@server eval' command
+
+
+=head2 EXAMPLE: Slurm cluster
+
+The Slurm Workload Manager is used in many clusters.
+
+Here is a simple example of using GNU B<parallel> to call B<srun>:
+
+  #!/bin/bash
+  
+  #SBATCH --time 00:02:00
+  #SBATCH --ntasks=4
+  #SBATCH --job-name GnuParallelDemo
+  #SBATCH --output gnuparallel.out
+  
+  module purge
+  module load gnu_parallel
+  
+  my_parallel="parallel --delay .2 -j $SLURM_NTASKS"
+  my_srun="srun --export=all --exclusive -n1 --cpus-per-task=1 
--cpu-bind=cores"
+  $my_parallel "$my_srun" echo This is job {} ::: {1..20}
+
+
 =head2 EXAMPLE: Parallelizing rsync
 
 B<rsync> is a great tool, but sometimes it will not fill up the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/parallel.rst 
new/parallel-20210522/src/parallel.rst
--- old/parallel-20210422/src/parallel.rst      2021-04-10 21:49:15.000000000 
+0200
+++ new/parallel-20210522/src/parallel.rst      2021-05-14 16:50:24.000000000 
+0200
@@ -2025,9 +2025,11 @@
     {:-str}       str if the value is empty
     {:num}        remove the first num characters
     {:num1:num2}  characters from num1 to num2
-    {#str}        remove prefix str
-    {%str}        remove postfix str
-    {/str1/str2}  replace str1 with str2
+    {#regexp}     remove prefix regexp (non-greedy)
+    {##regexp}    remove prefix regexp (greedy)
+    {%regexp}     remove postfix regexp (non-greedy)
+    {%%regexp}    remove postfix regexp (greedy)
+    {/regexp/str} replace regexp with str
     {^str}        uppercase str if found at the start
     {^^str}       uppercase str
     {,str}        lowercase str if found at the start
@@ -5662,6 +5664,50 @@
 
 
 
+EXAMPLE: Use outrun instead of ssh
+==================================
+
+
+\ **outrun**\  lets you run a command on a remote server. \ **outrun**\  sets 
up
+a connection to access files at the source server, and automatically
+transfers files. \ **outrun**\  must be installed on the remote system.
+
+You can use \ **outrun**\  in an sshlogin this way:
+
+
+.. code-block:: perl
+
+   parallel -S 'outrun user@server eval' command
+
+
+
+EXAMPLE: Slurm cluster
+======================
+
+
+The Slurm Workload Manager is used in many clusters.
+
+Here is a simple example of using GNU \ **parallel**\  to call \ **srun**\ :
+
+
+.. code-block:: perl
+
+   #!/bin/bash
+   
+   #SBATCH --time 00:02:00
+   #SBATCH --ntasks=4
+   #SBATCH --job-name GnuParallelDemo
+   #SBATCH --output gnuparallel.out
+   
+   module purge
+   module load gnu_parallel
+   
+   my_parallel="parallel --delay .2 -j $SLURM_NTASKS"
+   my_srun="srun --export=all --exclusive -n1 --cpus-per-task=1 
--cpu-bind=cores"
+   $my_parallel "$my_srun" echo This is job {} ::: {1..20}
+
+
+
 EXAMPLE: Parallelizing rsync
 ============================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/parallel.texi 
new/parallel-20210522/src/parallel.texi
--- old/parallel-20210422/src/parallel.texi     2021-04-10 21:49:20.000000000 
+0200
+++ new/parallel-20210522/src/parallel.texi     2021-05-14 16:50:24.000000000 
+0200
@@ -1827,9 +1827,11 @@
   {:-str}       str if the value is empty
   {:num}        remove the first num characters
   {:num1:num2}  characters from num1 to num2
-  {#str}        remove prefix str
-  {%str}        remove postfix str
-  {/str1/str2}  replace str1 with str2
+  {#regexp}     remove prefix regexp (non-greedy)
+  {##regexp}    remove prefix regexp (greedy)
+  {%regexp}     remove postfix regexp (non-greedy)
+  {%%regexp}    remove postfix regexp (greedy)
+  {/regexp/str} replace regexp with str
   {^str}        uppercase str if found at the start
   {^^str}       uppercase str
   {,str}        lowercase str if found at the start
@@ -3391,6 +3393,8 @@
 * EXAMPLE@asis{:} Running the same command on remote computers::
 * EXAMPLE@asis{:} Running 'sudo' on remote computers::
 * EXAMPLE@asis{:} Using remote computers behind NAT wall::
+* EXAMPLE@asis{:} Use outrun instead of ssh::
+* EXAMPLE@asis{:} Slurm cluster::
 * EXAMPLE@asis{:} Parallelizing rsync::
 * EXAMPLE@asis{:} Use multiple inputs in one command::
 * EXAMPLE@asis{:} Use a table as input::
@@ -4948,6 +4952,42 @@
 
 See more @strong{ssh} tricks on 
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts
 
+@node EXAMPLE: Use outrun instead of ssh
+@section EXAMPLE: Use outrun instead of ssh
+
+@strong{outrun} lets you run a command on a remote server. @strong{outrun} 
sets up
+a connection to access files at the source server, and automatically
+transfers files. @strong{outrun} must be installed on the remote system.
+
+You can use @strong{outrun} in an sshlogin this way:
+
+@verbatim
+  parallel -S 'outrun user@server eval' command
+@end verbatim
+
+@node EXAMPLE: Slurm cluster
+@section EXAMPLE: Slurm cluster
+
+The Slurm Workload Manager is used in many clusters.
+
+Here is a simple example of using GNU @strong{parallel} to call @strong{srun}:
+
+@verbatim
+  #!/bin/bash
+  
+  #SBATCH --time 00:02:00
+  #SBATCH --ntasks=4
+  #SBATCH --job-name GnuParallelDemo
+  #SBATCH --output gnuparallel.out
+  
+  module purge
+  module load gnu_parallel
+  
+  my_parallel="parallel --delay .2 -j $SLURM_NTASKS"
+  my_srun="srun --export=all --exclusive -n1 --cpus-per-task=1 
--cpu-bind=cores"
+  $my_parallel "$my_srun" echo This is job {} ::: {1..20}
+@end verbatim
+
 @node EXAMPLE: Parallelizing rsync
 @section EXAMPLE: Parallelizing rsync
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/parsort 
new/parallel-20210522/src/parsort
--- old/parallel-20210422/src/parsort   2021-04-22 17:43:08.000000000 +0200
+++ new/parallel-20210522/src/parsort   2021-05-22 22:05:54.000000000 +0200
@@ -121,7 +121,7 @@
     "help" => \$opt::dummy,
     ) || exit(255);
 $Global::progname = ($0 =~ m:(^|/)([^/]+)$:)[1];
-$Global::version = 20210422;
+$Global::version = 20210522;
 if($opt::version) { version(); exit 0; }
 @Global::sortoptions =
     shell_quote(@ARGV_before[0..($#ARGV_before-$#ARGV-1)]);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/parsort.1 
new/parallel-20210522/src/parsort.1
--- old/parallel-20210422/src/parsort.1 2021-04-22 17:43:50.000000000 +0200
+++ new/parallel-20210522/src/parsort.1 2021-05-22 22:06:46.000000000 +0200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "PARSORT 1"
-.TH PARSORT 1 "2021-04-22" "20210422" "parallel"
+.TH PARSORT 1 "2021-05-22" "20210522" "parallel"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/sem 
new/parallel-20210522/src/sem
--- old/parallel-20210422/src/sem       2021-04-22 17:43:08.000000000 +0200
+++ new/parallel-20210522/src/sem       2021-05-22 22:05:54.000000000 +0200
@@ -2187,7 +2187,7 @@
 
 sub init_globals() {
     # Defaults:
-    $Global::version = 20210422;
+    $Global::version = 20210522;
     $Global::progname = 'parallel';
     $::name = "GNU Parallel";
     $Global::infinity = 2**31;
@@ -2242,12 +2242,18 @@
         '{:(\d+?)}' => 'substr($_,0,$$1) = ""',
         # Bash ${a:2:3}
         '{:(\d+?):(\d+?)}' => '$_ = substr($_,$$1,$$2);',
+        # echo {#z.*z.} ::: z.z.z.foo => z.foo
+        # echo {##z.*z.} ::: z.z.z.foo => foo
         # Bash ${a#bc}
-        '{#([^#}][^}]*?)}' => 's/^$$1//;',
+        '{#([^#}][^}]*?)}' =>
+        '$nongreedy=::make_regexp_ungreedy($$1);s/^$nongreedy(.*)/$1/;',
         # Bash ${a##bc}
         '{##([^#}][^}]*?)}' => 's/^$$1//;',
+        # echo {%.z.*z} ::: foo.z.z.z => foo.z
+        # echo {%%.z.*z} ::: foo.z.z.z => foo
         # Bash ${a%def}
-        '{%([^}]+?)}' => 's/$$1$//;',
+        '{%([^}]+?)}' =>
+        '$nongreedy=::make_regexp_ungreedy($$1);s/(.*)$nongreedy$/$1/;',
         # Bash ${a%%def}
         '{%%([^}]+?)}' => 's/$$1$//;',
         # Bash ${a/def/ghi} ${a/def/}
@@ -4986,8 +4992,8 @@
         "If you use programs that use GNU Parallel to process data for an 
article in a",
         "scientific publication, please cite:",
         "",
-         "  Tange, O. (2021, April 22). GNU Parallel 20210422 ('Ever Given').",
-        "  Zenodo. https://doi.org/10.5281/zenodo.4710607";,
+         "  Tange, O. (2021, May 22). GNU Parallel 20210522 ('Gaza').",
+        "  Zenodo. https://doi.org/10.5281/zenodo.4781603";,
         "",
         # Before changing this line,  please read
          # 
https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice
@@ -5017,8 +5023,8 @@
             "If you use programs that use GNU Parallel to process data for an 
article in a",
             "scientific publication, please cite:",
             "",
-            "  Tange, O. (2021, April 22). GNU Parallel 20210422 ('Ever 
Given').",
-            "  Zenodo. https://doi.org/10.5281/zenodo.4710607";,
+            "  Tange, O. (2021, May 22). GNU Parallel 20210522 ('Gaza').",
+            "  Zenodo. https://doi.org/10.5281/zenodo.4781603";,
             "",
             # Before changing this line,  please read
             # 
https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and
@@ -5094,8 +5100,8 @@
 sub die_bug($) {
     my $bugid = shift;
     print STDERR
-       ("$Global::progname: This should not happen. You have found a bug.\n",
-        "Please contact <parallel\@gnu.org> and follow\n",
+       ("$Global::progname: This should not happen. You have found a bug. ",
+        "Please follow\n",
         "https://www.gnu.org/software/parallel/man.html#REPORTING-BUGS\n";,
         "\n",
         "Include this in the report:\n",
@@ -5141,20 +5147,20 @@
        "If you use programs that use GNU Parallel to process data for an 
article in a",
        "scientific publication, please cite:",
        "",
-       "\@software{tange_2021_4710607,",
+       "\@software{tange_2021_4781603,",
        "      author       = {Tange, Ole},",
-       "      title        = {GNU Parallel 20210422 ('Ever Given')},",
-       "      month        = Apr,",
+       "      title        = {GNU Parallel 20210522 ('Gaza')},",
+       "      month        = May,",
        "      year         = 2021,",
        "      note         = {{GNU Parallel is a general parallelizer to run",
         "                       multiple serial command line programs in 
parallel",
        "                       without changing them.}},",
        "      publisher    = {Zenodo},",
-       "      doi          = {10.5281/zenodo.4710607},",
-       "      url          = {https://doi.org/10.5281/zenodo.4710607}";,
+       "      doi          = {10.5281/zenodo.4781603},",
+       "      url          = {https://doi.org/10.5281/zenodo.4781603}";,
        "}",
        "",
-       "(Feel free to use \\nocite{tange_2021_4710607})",
+       "(Feel free to use \\nocite{tange_2021_4781603})",
        "",
        # Before changing this line, please read
        # 
https://www.gnu.org/software/parallel/parallel_design.html#Citation-notice and
@@ -5931,6 +5937,37 @@
     select(undef, undef, undef, $ms/1000);
 }
 
+sub make_regexp_ungreedy {
+    my $regexp = shift;
+    
+    my $class_state = 0;
+    my $escape_state = 0;
+    my $found = 0;
+    my $ungreedy = "";
+    my $c;
+
+    for $c (split (//, $regexp)) {
+        if ($found) {
+           if($c ne "?") { $ungreedy .= "?"; }
+            $found = 0;
+        }
+        $ungreedy .= $c;
+
+       if ($escape_state) { $escape_state = 0; next; }
+       if ($c eq "\\") { $escape_state = 1; next; }
+       if ($c eq '[') { $class_state  = 1; next; }
+        if ($class_state) {
+           if($c eq ']') { $class_state = 0; }
+            next;
+        }
+       # Quantifiers: + * {...}
+        if ($c =~ /[*}+]/) { $found = 1; }
+    }
+    if($found) { $ungreedy .= '?'; }
+    return $ungreedy;
+}
+
+
 sub __KILLER_REAPER__() {}
 
 sub reap_usleep() {
@@ -6481,16 +6518,15 @@
                 limit=$1;
                  io_file=$2;
                 # Do the measurement in the background
-                (tmp=$(tempfile);
+                ((tmp=$(tempfile);
                 LANG=C iostat -x 1 2 > $tmp;
-                mv $tmp $io_file) &
+                mv $tmp $io_file) </dev/null >/dev/null & );
                 perl -e '-e $ARGV[0] or exit(1);
                    for(reverse <>) {
                      /Device/ and last;
                      /(\S+)$/ and $max = $max > $1 ? $max : $1; }
-                   exit ($max < '$limit')' $io_file;
+                   exit ('$limit' < $max)' $io_file;
             };
-             export -f io;
              io %s %s
              !,
             "mem" => q!
@@ -6533,6 +6569,7 @@
     local %ENV = %env;
     $ENV{'SSHLOGIN'} = $self->string();
     system($Global::shell,"-c",$self->{'limitscript'});
+    #::qqx($self->{'limitscript'});
     ::debug("limit","limit `".$self->{'limitscript'}."` result ".($?>>8)."\n");
     return $?>>8;
 }
@@ -9520,6 +9557,7 @@
                      replace_placeholders(\@opt::filter,0,0)) {
            $run &&= eval $eval;
        }
+       $self->{'commandline'}{'skip'} ||= not $run;
     }
     return $run;
 }
@@ -13767,3 +13805,4 @@
 }
 
 main();
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/sql 
new/parallel-20210522/src/sql
--- old/parallel-20210422/src/sql       2021-04-22 17:43:08.000000000 +0200
+++ new/parallel-20210522/src/sql       2021-05-22 22:05:54.000000000 +0200
@@ -600,7 +600,7 @@
 exit ($err);
 
 sub parse_options {
-    $Global::version = 20210422;
+    $Global::version = 20210522;
     $Global::progname = 'sql';
 
     # This must be done first as this may exec myself
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/parallel-20210422/src/sql.1 
new/parallel-20210522/src/sql.1
--- old/parallel-20210422/src/sql.1     2021-04-22 17:43:50.000000000 +0200
+++ new/parallel-20210522/src/sql.1     2021-05-22 22:06:46.000000000 +0200
@@ -133,7 +133,7 @@
 .\" ========================================================================
 .\"
 .IX Title "SQL 1"
-.TH SQL 1 "2021-04-22" "20210422" "parallel"
+.TH SQL 1 "2021-05-22" "20210522" "parallel"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l

++++++ parallel-20210422.tar.bz2.sig -> parallel-20210522.tar.bz2.sig ++++++
--- /work/SRC/openSUSE:Factory/gnu_parallel/parallel-20210422.tar.bz2.sig       
2021-05-11 23:04:47.616789160 +0200
+++ 
/work/SRC/openSUSE:Factory/.gnu_parallel.new.32437/parallel-20210522.tar.bz2.sig
    2021-06-09 21:53:10.890568791 +0200
@@ -2,7 +2,7 @@
 
 # To check the signature run:
 #   echo | gpg
-#   gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve 
parallel-20210422.tar.bz2.sig
+#   gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve 
parallel-20210522.tar.bz2.sig
 
 echo | gpg 2>/dev/null
 gpg --auto-key-locate keyserver --keyserver-options auto-key-retrieve $0
@@ -10,32 +10,32 @@
 
 -----BEGIN PGP SIGNATURE-----
 
-iQUHBAABCgAdFiEEzaAaQgjE90UGEH570atFFoiIiIgFAmCBme4ACgkQ0atFFoiI
-iIjRgCafW48A3BQdv9sX3cPFk0EKsGQT5ZHG8Bto0BFslYlOm3OnoxTIQja7fa/w
-rFTlygtuQeHomlqpQE5qQye6IpWKyryhdHLM32Z4zhv2zEIrT8rrp8YNxGvXGa4r
-U0+JEJTkqKBpNKxRNX8myvLcVImPKxf3r9VqEhpIifTuAcfYuD+uaIzWxeZf8D/6
-ocu3181RlsDezxMuFfTr0UEtH/g3lhO/+eTOGFKW3JOsLKoVCt6TiqhuBwWfImBF
-bY0VHoK5Ke5Zz+oxbYOXw9NsGcb5tzlJ6vlSnSKZggQnUeI3k21eUHyfNTZcvdNA
-QN8Qs8HzHuL8UHCQ3lNOMx2vl7eeFqfUqYq2+k/AHf4JqaT0S+hA6gGuvEefYOuM
-oEltcMt9NpH3BSVdV1BOnNZUpKbjawTXLf21fkYVTGsMzkpEg670frt5Rj/IOYIt
-xJwmayAdl0hnmEyjxG5YoIrvFlyaMH3n1zJ6/5aEyUnUQZnDyasdlOZlmEnbIBaT
-YOxX6VhzKWvxvfbdt/imRu4v/ea6OHdno2hYvSeZxQvYrmLVfn/5tY3RD1TFtlL9
-NOUnowl0mPUoGitvaiNRhWS6YwIugt7oJV4mvuU4ja36DbX8osON4ZhXZybNsY2C
-51QHIsxy0ULbN2umc2A5D8ZYBO+knADkvQMdeDhIqPf18Bly/+ZLEPR1PooYcmOI
-hmh49gF6FVkrBwDY0+EzXUnAu6v/7+DMqb/JWhFn5FeHUzN6Y9RmSOd6IqBrJDN2
-vmeY/BLrVsMeJGqnZn75H4xDQX1wD0jXdFssRFfuDazon5Gvvr8JOQ/da/dSi44B
-kqxkjDO2aety6iPns88U1/sak9Jaqs+S/+QTWpvKOypL3JQLWDK+AxIzMic43Lb0
-8AuCl8d3FrKVDVhZbxMRJKW2HIQcHr6tnAqcmgrvWhuAQEcIrXEsEzi34vfsmcZN
-Pb0Yjr0CwjkyYVRU8e7QfUBE2jyTckVbtOAUfEQE1UjgpdeYFlgtNs+Wpc+xCB0s
-gRXfiRDLyXLhls71gEVe6bDScE60wFnNnsL4bV6CWcfgFubXsqRzn9e9uCFMKtjP
-S4OjBYfUjfQky1e9rDO/2+Fj5w0BLoiS5uDmz9peConoefldaUXwPJiCCI0HM4BG
-ssdEeX1LZnkOsJzG9E4i5g1tjoyF4Gj8GZZEh1QtFIqYpLZE6d0kzjpM8jtsA/OV
-5p+CEYYXmtRQYoarhoQQJyhcJ++kN20GrXhbo0EfcgN6np58/uEJtXDciVGLQLQX
-VVN9jW0ktsrl00+dY+78mIvyqUhNoEqZs7Fg6SJSQA92XISAnUYWhk1gFdCbjF1D
-2h/rGTm0NVTS9uRLT64upHdTVl65vCqPI3tj8tnQNUIlidtLR4uJa4H/KFyZY3Ru
-npdQIMUEFgiw0T6CLiaWnVfjo/WowRZs84PDXQvEysh6QC+YxM0jw9PDEnRW1df5
-2UhPGj1arMwaEWJn1cwYoFyzn71R2XOmXFNR0S7K0FTMHIAX2YsGj3V6+DATlC9s
-yOZGt9MngurrWKVwxqd33VozX1tk6XW/xH5f2VsXfevUC8vFiZ6uv2i03cEGLxEq
-0u6ySYEX05zbi1MniCd1B0RyHLVDk5zk7RV2qo1iUxYPFFlt1MQEp/LH
-=7WKa
+iQUHBAABCgAdFiEEzaAaQgjE90UGEH570atFFoiIiIgFAmCpZLQACgkQ0atFFoiI
+iIgTCyaglbV2f4v8aplcfQ+A0tSbawwldOJA/dyGgyuBeFpVjQF/3spgg/40Zy4D
+gXVlQSOCjX8lBqF8NWlOd8zl86zl7t2/RLtc3vaK3Y5vGbSGxHiAqxC7q33QtkXp
+nSZDK/TH1iY74xk9S+73lXE0tmUCIZ4EYb+52hlJoo/iiGg8puE4NThASbSCu5sE
+QlShur335dn0Y0ZInTmNvWrNMYrM01OReZB8m4lViaVjBGdIt5G26cEmHYIWWBD0
++HO+fzUCUpMAWE9+rSFBu8WWZ0fKfpdp3hXopMlrHmEkHlerFowlfgXXFKLB10/H
+RgFQKv3XFDvYUI5CIumze60aah6hyQlbEbL0v03wc3F7iv7uG+dQrhJJJL/Q78lj
+sTVJZjS/yyBsqmRLEzTXmxyGRdzOQzS7IFmqgQt0RCw4cOMd7MP8B53QTxxDNhnu
+G/7Mp+uZKJlSgylzYRVHqSdCasHlMLAIejBmZQ+BXkUrZBH7XNNbNIfxGVF6HZpy
+kEkw3Y6q7DmqNjZAy19q9keeVehEe9Q6WrkvQXxIpaGzph//x4Xnyeu1Nuot/pLT
+kHHmysRsa1uUUeLwD1EOVwVjgwTijl7sgz6RwO3T/bRpA0uCxvkxKmrEJNd7qeNL
+UY7abnPvtItWHdbkQXaWurYOziuV7+NNrC9Ie5SOVtwYEN9KQ0NmAj35ljcGhMLi
+07mVXgdarDFmdrcsM1qstDqygEXtYoEQ0L2ZhF6ABUDEZexwSkNRS8+OrOrLZgMX
+SG+uOdH3F1Hza1SDWfx4/KjnpGRwbVAvJl5PMX0u3wZpAqnCf875CDQruptGDrm3
+2VwMEncthnyyZBqNG00n5qDogJ9P3F0yFulO+Dj6exPAifWH17FNKT8cCh191Keu
+3yCC5JMzuFY744ztdMuLveEgh3sngnJGx55+JzLjEoVn1ruP3aes/y3/C7WPCjq2
+j5XeV2QsYiy9G2IZ1zPhsJo8P7IPbhPKxAk1X5VLYmmIefYs935DsdYSW3auY/CR
+c0c/KqVCeS2hpn+hOjtxhkElDhVL7Xw4f4JwERlc0QpeSWylS6/RaJgPnSJeAs0V
+Kxb6Vy/+S8KnZb14rh2+kmw+pzv8lz8Klm1lt/a0amZd9z3dI6Aa2g5G70cHYV84
+Xu8o/1HSz+xwg9SD4wFIfL6Ysp4+SPPmT4b1z961ztznbbGqDg3zBrgHTuJlYPXZ
+5b3fq/FBfQPp3iPOuAMFMk20JNOlsABTBvFRNZmve17aDn5YmKjQN2tT+FU5wk42
+YxHWxSR647fcfvrLKrgWhPdrG2ISGxitFpLaLp9JU57FDMul/unRvpx6pIf3NQGO
+lxE6CQSvC/7rIi7EkHdaNrFWY49MR2AlRkcGRMIBzwliLjIUxNlHTpODSYoSKpR4
+gpMQQZqPKf+Nc5ApDif+QM/J81c4PcUUu0m9VaVMwlXwM3aejbgBxsBjbPQERqJW
+4lmz0gUxBWt1+OhchMb8hISfWgptA6wo0tq5mu1FjXPlj5aoXTd1DIRUwupDo4ud
+zNBldN0PJgggy6/BhWyiltsMpmBa4xH5gi/msZDHPZyCJH6k344D74PBjcsI2LaA
+I3Y7EEyRTYSf1x0YAqmjd77T+bIBWJzcVHivZJn/snxBoR0hShnzhI6y
+=yr/1
 -----END PGP SIGNATURE-----

Reply via email to