Hello community,

here is the log from the commit of package mksh for openSUSE:Factory checked in 
at 2014-09-06 12:18:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mksh (Old)
 and      /work/SRC/openSUSE:Factory/.mksh.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mksh"

Changes:
--------
--- /work/SRC/openSUSE:Factory/mksh/mksh.changes        2014-08-25 
11:04:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.mksh.new/mksh.changes   2014-09-06 
16:59:29.000000000 +0200
@@ -1,0 +2,23 @@
+Thu Sep  4 16:06:24 UTC 2014 - g...@opensuse.org
+
+- update to version 50b
+  - [Ypnose] Fix operator description in the manpage
+  - [tg] Change all mention of “eglibc” to “glibc”, it is merged
+    back
+  - [Colona] Fix rare infinite loop with invalid UTF-8 in the edit
+    buffer
+  - [tg] Make more clear when a shell is interactive in the manpage
+  - [tg] Document that % is a symmetric remainder operation, and
+    how to get a mathematical modulus from it, in the manpage
+  - [tg, Christopher Ferris, Elliott Hughes] Make the cat(1)
+    builtin also interruptible in the write loop, not just in the
+    read loop, and avoid it getting SIGPIPE in the smores function
+    in dot.mkshrc by terminating cat upon user quit
+  - [tg] Make some comments match the code, after jaredy from obsd
+    changed IFS split handling
+  - [tg] Fix some IFS-related mistakes in the manual page
+  - [tg] Document another issue as known-to-fail test IFS-subst-3
+  - [tg] Improve check.pl output in some cases
+  - [tg, Jb_boin] Relax overzealous nameref RHS checks
+
+-------------------------------------------------------------------

Old:
----
  mksh-R50.tgz

New:
----
  mksh-R50b.tgz

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

Other differences:
------------------
++++++ mksh.spec ++++++
--- /var/tmp/diff_new_pack.Vkz6vc/_old  2014-09-06 16:59:30.000000000 +0200
+++ /var/tmp/diff_new_pack.Vkz6vc/_new  2014-09-06 16:59:30.000000000 +0200
@@ -21,7 +21,7 @@
 # Please see OBS home:mirabile/mksh for a package for other distributions.
 
 Name:           mksh
-Version:        50
+Version:        50b
 Release:        0
 Summary:        MirBSD Korn Shell
 License:        MirOS and ISC

++++++ mksh-R50.tgz -> mksh-R50b.tgz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksh/Build.sh new/mksh/Build.sh
--- old/mksh/Build.sh   2014-06-29 12:56:33.000000000 +0200
+++ new/mksh/Build.sh   2014-09-03 21:23:13.000000000 +0200
@@ -1,5 +1,5 @@
 #!/bin/sh
-srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.662 2014/06/29 10:56:08 tg Exp $'
+srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.664 2014/09/03 19:22:48 tg Exp $'
 #-
 # Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 #              2011, 2012, 2013, 2014
@@ -1784,7 +1784,7 @@
                #define EXTERN
                #define MKSH_INCLUDES_ONLY
                #include "sh.h"
-               __RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.662 2014/06/29 
10:56:08 tg Exp $");
+               __RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.664 2014/09/03 
19:22:48 tg Exp $");
                int main(void) { printf("Hello, World!\n"); return (isatty(0)); 
}
 EOF
        case $cm in
@@ -2310,7 +2310,7 @@
 addsrcs USE_PRINTF_BUILTIN printf.c
 test 1 = "$USE_PRINTF_BUILTIN" && add_cppflags -DMKSH_PRINTF_BUILTIN
 test 1 = "$HAVE_CAN_VERB" && CFLAGS="$CFLAGS -verbose"
-add_cppflags -DMKSH_BUILD_R=501
+add_cppflags -DMKSH_BUILD_R=502
 
 $e $bi$me: Finished configuration testing, now producing output.$ao
 
@@ -2620,7 +2620,7 @@
 MKSH_DONT_EMIT_IDSTRING                omit RCS IDs from binary
 MKSH_MIDNIGHTBSD01ASH_COMPAT   set -o sh: additional compatibility quirk
 MKSH_NOPROSPECTOFWORK          disable jobs, co-processes, etc. (do not use)
-MKSH_NOPWNAM                   skip PAM calls, for -static on eglibc, Solaris
+MKSH_NOPWNAM                   skip PAM calls, for -static on glibc or Solaris
 MKSH_NO_CMDLINE_EDITING                disable command line editing code 
entirely
 MKSH_NO_DEPRECATED_WARNING     omit warning when deprecated stuff is run
 MKSH_NO_EXTERNAL_CAT           omit hack to skip cat builtin when flags passed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksh/check.pl new/mksh/check.pl
--- old/mksh/check.pl   2014-06-09 15:26:15.000000000 +0200
+++ new/mksh/check.pl   2014-08-19 09:43:57.000000000 +0200
@@ -1,4 +1,4 @@
-# $MirOS: src/bin/mksh/check.pl,v 1.36 2014/06/09 13:25:50 tg Exp $
+# $MirOS: src/bin/mksh/check.pl,v 1.37 2014/08/19 07:43:32 tg Exp $
 # $OpenBSD: th,v 1.1 2013/12/02 20:39:44 millert Exp $
 #-
 # Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2011,
@@ -348,6 +348,7 @@
     print " ($nifailed ignored)" if $nifailed;
     print " ($nxfailed unexpected)" if $nxfailed;
     print " (as expected)" if $nfailed && !$nxfailed && !$nifailed;
+    print " ($nfailed expected)" if $nfailed && ($nxfailed || $nifailed);
     print "\nTotal passed: $tot_passed";
     print " ($nxpassed unexpected)" if $nxpassed;
     print "\n";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksh/check.t new/mksh/check.t
--- old/mksh/check.t    2014-06-29 13:28:51.000000000 +0200
+++ new/mksh/check.t    2014-09-03 21:23:14.000000000 +0200
@@ -1,4 +1,4 @@
-# $MirOS: src/bin/mksh/check.t,v 1.654 2014/06/29 11:28:26 tg Exp $
+# $MirOS: src/bin/mksh/check.t,v 1.658 2014/09/03 19:22:49 tg Exp $
 # OpenBSD src/regress/bin/ksh updated: 2013/12/02 20:39:44
 #-
 # Copyright © 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
@@ -27,7 +27,7 @@
 # 
http://www.freebsd.org/cgi/cvsweb.cgi/src/tools/regression/bin/test/regress.sh?rev=HEAD
 
 expected-stdout:
-       @(#)MIRBSD KSH R50 2014/06/29
+       @(#)MIRBSD KSH R50 2014/09/03
 description:
        Check version of shell.
 stdin:
@@ -36,7 +36,7 @@
 category: shell:legacy-no
 ---
 expected-stdout:
-       @(#)LEGACY KSH R50 2014/06/29
+       @(#)LEGACY KSH R50 2014/09/03
 description:
        Check version of legacy shell.
 stdin:
@@ -3733,6 +3733,17 @@
 expected-stdout:
         <1> <shift> <1> <2>
 ---
+name: IFS-subst-3
+description:
+       Check leading IFS non-whitespace after trim does make a field
+expected-fail: yes
+stdin:
+       showargs() { for i; do echo -n " <$i>"; done; echo; }
+       IFS=:
+       showargs 1 ${-+:foo:bar}
+expected-stdout:
+        <1> <> <foo> <bar>
+---
 name: IFS-arith-1
 description:
        http://austingroupbugs.net/view.php?id=832
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksh/dot.mkshrc new/mksh/dot.mkshrc
--- old/mksh/dot.mkshrc 2014-01-11 19:10:04.000000000 +0100
+++ new/mksh/dot.mkshrc 2014-07-28 23:46:09.000000000 +0200
@@ -1,5 +1,5 @@
 # $Id$
-# $MirOS: src/bin/mksh/dot.mkshrc,v 1.88 2014/01/11 18:09:39 tg Exp $
+# $MirOS: src/bin/mksh/dot.mkshrc,v 1.89 2014/07/28 21:45:44 tg Exp $
 #-
 # Copyright (c) 2002, 2003, 2004, 2006, 2007, 2008, 2009, 2010,
 #              2011, 2012, 2013, 2014
@@ -242,20 +242,23 @@
 
 # pager (not control character safe)
 function smores {
-       local dummy line llen curlin=0
-
-       cat "$@" | while IFS= read -r line; do
-               llen=${%line}
-               (( llen == -1 )) && llen=${#line}
-               (( llen = llen ? (llen + COLUMNS - 1) / COLUMNS : 1 ))
-               if (( (curlin += llen) >= LINES )); then
-                       print -n -- '\033[7m--more--\033[0m'
-                       read -u1 dummy
-                       [[ $dummy = [Qq]* ]] && return 0
-                       curlin=$llen
-               fi
-               print -r -- "$line"
-       done
+       (
+               set +m
+               cat "$@" |&
+               trap "rv=\$?; kill $! >/dev/null 2>&1; exit \$rv" EXIT
+               while IFS= read -pr line; do
+                       llen=${%line}
+                       (( llen == -1 )) && llen=${#line}
+                       (( llen = llen ? (llen + COLUMNS - 1) / COLUMNS : 1 ))
+                       if (( (curlin += llen) >= LINES )); then
+                               print -n -- '\033[7m--more--\033[0m'
+                               read -u1 || exit $?
+                               [[ $REPLY = [Qq]* ]] && exit 0
+                               curlin=$llen
+                       fi
+                       print -r -- "$line"
+               done
+       )
 }
 
 # base64 encoder and decoder, RFC compliant, NUL safe
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksh/edit.c new/mksh/edit.c
--- old/mksh/edit.c     2014-01-05 22:57:49.000000000 +0100
+++ new/mksh/edit.c     2014-07-13 13:34:53.000000000 +0200
@@ -28,7 +28,7 @@
 
 #ifndef MKSH_NO_CMDLINE_EDITING
 
-__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.275 2014/01/05 21:57:24 tg Exp $");
+__RCSID("$MirOS: src/bin/mksh/edit.c,v 1.276 2014/07/13 11:34:28 tg Exp $");
 
 /*
  * in later versions we might use libtermcap for this, but since external
@@ -1628,7 +1628,7 @@
        int adj = x_adj_done;
 
        x_lastcp();
-       while (*str && str < xlp && adj == x_adj_done)
+       while (*str && str < xlp && x_col < xx_cols && adj == x_adj_done)
                x_zotc3(&str);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksh/eval.c new/mksh/eval.c
--- old/mksh/eval.c     2014-06-09 13:16:32.000000000 +0200
+++ new/mksh/eval.c     2014-07-29 18:29:36.000000000 +0200
@@ -23,7 +23,7 @@
 
 #include "sh.h"
 
-__RCSID("$MirOS: src/bin/mksh/eval.c,v 1.150 2014/06/09 11:16:07 tg Exp $");
+__RCSID("$MirOS: src/bin/mksh/eval.c,v 1.151 2014/07/29 16:29:11 tg Exp $");
 
 /*
  * string expansion
@@ -897,14 +897,14 @@
                         *      word            |       ws      nws     0
                         *      -----------------------------------
                         *      IFS_WORD                w/WS    w/NWS   w
-                        *      IFS_WS                  -/WS    w/NWS   -
-                        *      IFS_NWS                 -/NWS   w/NWS   w
+                        *      IFS_WS                  -/WS    -/NWS   -
+                        *      IFS_NWS                 -/NWS   w/NWS   -
                         * (w means generate a word)
                         * Note that IFS_NWS/0 generates a word (AT&T ksh
                         * doesn't do this, but POSIX does).
                         */
                        if (word == IFS_WORD ||
-                           (!ctype(c, C_IFSWS) && c && word == IFS_NWS)) {
+                           (word == IFS_NWS && c && !ctype(c, C_IFSWS))) {
  emit_word:
                                *dp++ = '\0';
                                cp = Xclose(ds, dp);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksh/funcs.c new/mksh/funcs.c
--- old/mksh/funcs.c    2014-06-09 15:26:17.000000000 +0200
+++ new/mksh/funcs.c    2014-07-28 23:46:09.000000000 +0200
@@ -38,7 +38,7 @@
 #endif
 #endif
 
-__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.256 2014/06/09 13:25:52 tg Exp $");
+__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.257 2014/07/28 21:45:44 tg Exp $");
 
 #if HAVE_KILLPG
 /*
@@ -3643,12 +3643,14 @@
                                break;
                        while (n) {
                                w = write(STDOUT_FILENO, cp, n);
+                               eno = errno;
+                               /* give the user a chance to ^C out */
+                               intrcheck();
                                if (w == -1) {
-                                       if (errno == EINTR)
+                                       if (eno == EINTR)
                                                /* interrupted, try again */
                                                continue;
                                        /* an error occured during writing */
-                                       eno = errno;
                                        bi_errorf("%s: %s", "<stdout>",
                                            cstrerror(eno));
                                        rv = 1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksh/mksh.1 new/mksh/mksh.1
--- old/mksh/mksh.1     2014-06-24 22:48:09.000000000 +0200
+++ new/mksh/mksh.1     2014-07-29 19:26:49.000000000 +0200
@@ -1,4 +1,4 @@
-.\" $MirOS: src/bin/mksh/mksh.1,v 1.336 2014/06/24 20:47:44 tg Exp $
+.\" $MirOS: src/bin/mksh/mksh.1,v 1.340 2014/07/29 17:26:24 tg Exp $
 .\" $OpenBSD: ksh.1,v 1.152 2014/02/12 16:28:13 schwarze Exp $
 .\"-
 .\" Copyright © 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
@@ -74,7 +74,7 @@
 .\" with -mandoc, it might implement .Mx itself, but we want to
 .\" use our own definition. And .Dd must come *first*, always.
 .\"
-.Dd $Mdocdate: June 24 2014 $
+.Dd $Mdocdate: July 29 2014 $
 .\"
 .\" Check which macro package we use, and do other -mdoc setup.
 .\"
@@ -208,7 +208,7 @@
 .Ar string .
 .It Fl i
 Interactive shell.
-A shell is
+A shell that reads commands from standard input is
 .Dq interactive
 if this
 option is used or if both standard input and standard error are attached
@@ -1232,10 +1232,8 @@
 whitespace octets, delimit a field.
 As a special case, leading and trailing
 .Ev IFS
-whitespace and trailing
-.Ev IFS
-non-whitespace are stripped (i.e. no leading or trailing empty field
-is created by it); leading
+whitespace is stripped (i.e. no leading or trailing empty field
+is created by it); leading or trailing
 .Pf non- Ev IFS
 whitespace does create an empty field.
 .Pp
@@ -2697,7 +2695,7 @@
 Less than; the result is 1 if the left argument is less than the right, 0 if
 not.
 .It \*(Lt= \*(Gt \*(Gt=
-Less than or equal, greater than or equal, greater than.
+Less than or equal, greater than, greater than or equal.
 See
 .Ic \*(Lt .
 .It \*(Lt\*(Lt\*(Lt \*(Gt\*(Gt\*(Gt
@@ -2711,8 +2709,15 @@
 .It + \- * /
 Addition, subtraction, multiplication, and division.
 .It %
-Remainder; the result is the remainder of the division of the left argument by
-the right.
+Remainder; the result is the symmetric remainder of the division of the left
+argument by the right.
+To get the mathematical modulus of
+.Dq a Ic mod No b ,
+use the formula
+.Do
+.Pq a % b + b
+.No % b
+.Dc .
 .It Xo
 .Sm off
 .Aq Ar arg1 ?
@@ -6436,8 +6441,8 @@
 .Pp
 .Nm mksh
 provides a consistent set of 32-bit integer arithmetics, both signed
-and unsigned, with defined wraparound and sign of the result of a modulo
-operation, even (defying POSIX) on 64-bit systems.
+and unsigned, with defined wraparound and sign of the result of a
+remainder operation, even (defying POSIX) on 64-bit systems.
 If you require 64-bit integer arithmetics, use
 .Nm lksh Pq legacy mksh
 instead, but be aware that, in POSIX, it's legal for the OS to make
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksh/sh.h new/mksh/sh.h
--- old/mksh/sh.h       2014-06-29 13:28:53.000000000 +0200
+++ new/mksh/sh.h       2014-09-03 21:23:15.000000000 +0200
@@ -169,9 +169,9 @@
 #endif
 
 #ifdef EXTERN
-__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.691 2014/06/29 11:28:28 tg Exp $");
+__RCSID("$MirOS: src/bin/mksh/sh.h,v 1.694 2014/09/03 19:22:50 tg Exp $");
 #endif
-#define MKSH_VERSION "R50 2014/06/29"
+#define MKSH_VERSION "R50 2014/09/03"
 
 /* arithmetic types: C implementation */
 #if !HAVE_CAN_INTTYPES
@@ -533,7 +533,7 @@
 #define mkssert(e)     do { } while (/* CONSTCOND */ 0)
 #endif
 
-#if (!defined(MKSH_BUILDMAKEFILE4BSD) && !defined(MKSH_BUILDSH)) || 
(MKSH_BUILD_R != 501)
+#if (!defined(MKSH_BUILDMAKEFILE4BSD) && !defined(MKSH_BUILDSH)) || 
(MKSH_BUILD_R != 502)
 #error Must run Build.sh to compile this.
 extern void thiswillneverbedefinedIhope(void);
 int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mksh/var.c new/mksh/var.c
--- old/mksh/var.c      2014-06-26 22:36:27.000000000 +0200
+++ new/mksh/var.c      2014-09-03 21:23:16.000000000 +0200
@@ -28,7 +28,7 @@
 #include <sys/sysctl.h>
 #endif
 
-__RCSID("$MirOS: src/bin/mksh/var.c,v 1.180 2014/06/26 20:36:02 tg Exp $");
+__RCSID("$MirOS: src/bin/mksh/var.c,v 1.181 2014/09/03 19:22:51 tg Exp $");
 
 /*-
  * Variables
@@ -789,8 +789,22 @@
                }
                /* check target value for being a valid variable name */
                ccp = skip_varname(qval, false);
-               if (ccp == qval)
+               if (ccp == qval) {
+                       if (ksh_isdigit(qval[0])) {
+                               int c;
+
+                               if (getn(qval, &c))
+                                       goto nameref_rhs_checked;
+                       } else if (qval[1] == '\0') switch (qval[0]) {
+                       case '$':
+                       case '!':
+                       case '?':
+                       case '#':
+                       case '-':
+                               goto nameref_rhs_checked;
+                       }
                        errorf("%s: %s", var, "empty nameref target");
+               }
                len = (*ccp == '[') ? array_ref_len(ccp) : 0;
                if (ccp[len]) {
                        /*
@@ -801,6 +815,7 @@
                        errorf("%s: %s", qval,
                            "nameref target not a valid parameter name");
                }
+ nameref_rhs_checked:
                /* prevent nameref loops */
                while (qval) {
                        if (!strcmp(qval, tvar))

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to