Accepting request 199721 from shells

- Make vmbalance awk script more clear for small vm page sizes

- Extend patch ksh93-fdstatus.dif to solve bnc#835885
- Modify patch ksh93-builtin.dif to reduce timeouts of pty utility

OBS-URL: https://build.opensuse.org/request/show/199721
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ksh?expand=0&rev=95
This commit is contained in:
Stephan Kulow 2013-09-23 07:37:26 +00:00 committed by Git OBS Bridge
commit 9a366d155e
6 changed files with 1952 additions and 28 deletions

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Thu Sep 19 08:43:37 UTC 2013 - werner@suse.de
- Make vmbalance awk script more clear for small vm page sizes
-------------------------------------------------------------------
Wed Sep 18 11:09:34 UTC 2013 - werner@suse.de
- Extend patch ksh93-fdstatus.dif to solve bnc#835885
- Modify patch ksh93-builtin.dif to reduce timeouts of pty utility
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Aug 13 09:59:45 UTC 2013 - dmueller@suse.com Tue Aug 13 09:59:45 UTC 2013 - dmueller@suse.com

View File

@ -245,6 +245,9 @@ fi
test -s $fd -a ! -c $fd && break || true test -s $fd -a ! -c $fd && break || true
done done
set -- $(readlink $fd) set -- $(readlink $fd)
grep pts /proc/mounts
ls -ld /dev/ptmx
ls -ld /dev/pts
exec ./sigexec $SHELL ${1+"$@"} exec ./sigexec $SHELL ${1+"$@"}
fi fi
IGNORED=0x$(ps --no-headers -o ignored $$) IGNORED=0x$(ps --no-headers -o ignored $$)
@ -530,7 +533,7 @@ fi
typeset -i failed=0 typeset -i failed=0
ln -sf ${root}/lib ${test}/../ ln -sf ${root}/lib ${test}/../
sed -ri '/^L[[:blank:]]/a \t 8000' pty.sh sed -ri '/^L[[:blank:]]/a \t 8000' pty.sh
sed -ri 's/(SECONDS[[:blank:]]*>[[:blank:]]*)([[:digit:]]+)/\18/p' signal.sh sed -ri 's/(SECONDS[[:blank:]]*>[[:blank:]]*)([[:digit:]]+)/\18/' signal.sh
unset ${!LESS*} unset ${!LESS*}
${SHELL} shtests ${SHELL} shtests
exec 3> ${TMPDIR:-/tmp}/log exec 3> ${TMPDIR:-/tmp}/log
@ -662,7 +665,7 @@ fi
ln -sf ../man1/ksh93.1ast.gz %{buildroot}/%{_mandir}/man1/ksh.1ast.gz ln -sf ../man1/ksh93.1ast.gz %{buildroot}/%{_mandir}/man1/ksh.1ast.gz
ln -sf ../man1/ksh93.1ast.gz %{buildroot}/%{_mandir}/man1/rksh.1ast.gz ln -sf ../man1/ksh93.1ast.gz %{buildroot}/%{_mandir}/man1/rksh.1ast.gz
%else %else
install -m 0644 man/man1/sh.1ast %{buildroot}%{_mandir}/man1/ksh.1ast install -m 0644 man/man1/sh.1 %{buildroot}%{_mandir}/man1/ksh.1ast
ln -sf ../man1/ksh.1ast.gz %{buildroot}/%{_mandir}/man1/rksh.1ast.gz ln -sf ../man1/ksh.1ast.gz %{buildroot}/%{_mandir}/man1/rksh.1ast.gz
%endif %endif
install -m 0644 man/man1/shcomp.1ast %{buildroot}%{_mandir}/man1/shcomp.1ast install -m 0644 man/man1/shcomp.1ast %{buildroot}%{_mandir}/man1/shcomp.1ast

View File

@ -1,6 +1,6 @@
--- src/cmd/builtin/pty.c --- src/cmd/builtin/pty.c
+++ src/cmd/builtin/pty.c 2013-02-01 15:59:52.697952156 +0000 +++ src/cmd/builtin/pty.c 2013-02-01 15:59:52.697952156 +0000
@@ -216,6 +216,12 @@ mkpty(int* master, int* slave) @@ -216,13 +216,19 @@ mkpty(int* master, int* slave)
#if !_lib_openpty #if !_lib_openpty
char* sname; char* sname;
#endif #endif
@ -13,6 +13,24 @@
/* /*
* some systems hang hard during the handshake * some systems hang hard during the handshake
* if you know why then please let us know * if you know why then please let us know
*/
- alarm(4);
- if (tcgetattr(STDERR_FILENO, &tty) >= 0)
+ alarm(6);
+ if (tcgetattr(sffileno(sfstderr), &tty) >= 0)
ttyp = &tty;
else
{
@@ -230,7 +236,7 @@ mkpty(int* master, int* slave)
error(-1, "unable to get standard error terminal attributes");
}
#ifdef TIOCGWINSZ
- if (ioctl(STDERR_FILENO, TIOCGWINSZ, &win) >= 0)
+ if (ioctl(sffileno(sfstderr), TIOCGWINSZ, &win) >= 0)
winp = &win;
else
{
@@ -238,6 +244,12 @@ mkpty(int* master, int* slave) @@ -238,6 +244,12 @@ mkpty(int* master, int* slave)
error(-1, "unable to get standard error window size"); error(-1, "unable to get standard error window size");
} }
@ -36,6 +54,87 @@
alarm(0); alarm(0);
return 0; return 0;
} }
@@ -317,9 +332,13 @@ process(Sfio_t* mp, Sfio_t* lp, int dela
char* s;
Sfio_t* ip;
Sfio_t* sps[2];
+ struct stat dst;
+ struct stat fst;
ip = sfstdin;
- for (;;)
+ if (!fstat(sffileno(ip), &dst) && !stat("/dev/null", &fst) && dst.st_dev == fst.st_dev && dst.st_ino == fst.st_ino)
+ ip = 0;
+ do
{
i = 0;
t = timeout;
@@ -336,39 +355,39 @@ process(Sfio_t* mp, Sfio_t* lp, int dela
{
if (n < 0)
error(ERROR_SYSTEM|2, "poll failed");
- if (t < 0)
- break;
+ break;
}
- else
- for (i = 0; i < n; i++)
+ for (i = t = 0; i < n; i++)
+ {
+ if (!(sfvalue(sps[i]) & SF_READ))
+ /*skip*/;
+ else if (sps[i] == mp)
{
- if (!(sfvalue(sps[i]) & SF_READ))
- /*skip*/;
- else if (sps[i] == mp)
+ t++;
+ if (!(s = (char*)sfreserve(mp, SF_UNBOUND, -1)))
{
- if (!(s = (char*)sfreserve(mp, SF_UNBOUND, -1)))
- {
- sfclose(mp);
- mp = 0;
- }
- else if ((r = sfvalue(mp)) > 0 && (sfwrite(sfstdout, s, r) != r || sfsync(sfstdout)))
- {
- error(ERROR_SYSTEM|2, "output write failed");
- goto done;
- }
+ sfclose(mp);
+ mp = 0;
}
- else
+ else if ((r = sfvalue(mp)) > 0 && (sfwrite(sfstdout, s, r) != r || sfsync(sfstdout)))
{
- if (!(s = sfgetr(ip, '\n', 1)))
- ip = 0;
- else if (sfputr(mp, s, '\r') < 0 || sfsync(mp))
- {
- error(ERROR_SYSTEM|2, "write failed");
- goto done;
- }
+ error(ERROR_SYSTEM|2, "output write failed");
+ goto done;
}
}
- }
+ else
+ {
+ t++;
+ if (!(s = sfgetr(ip, '\n', 1)))
+ ip = 0;
+ else if (sfputr(mp, s, '\r') < 0 || sfsync(mp))
+ {
+ error(ERROR_SYSTEM|2, "write failed");
+ goto done;
+ }
+ }
+ }
+ } while (t);
done:
if (mp)
sfclose(mp);
--- src/cmd/builtin/what.c --- src/cmd/builtin/what.c
+++ src/cmd/builtin/what.c 2012-02-13 11:02:18.645933606 +0000 +++ src/cmd/builtin/what.c 2012-02-13 11:02:18.645933606 +0000
@@ -68,7 +68,7 @@ static struct @@ -68,7 +68,7 @@ static struct

File diff suppressed because it is too large Load Diff

View File

@ -318,6 +318,15 @@
fi fi
") ")
got=$* got=$*
@@ -336,7 +336,7 @@ then LC_ALL=en_US.UTF-8
[[ $(print -r -- "$x") == $'hello\u[20ac]\xee world' ]] || err_exit '%q with unicode and non-unicode not working'
if [[ $(whence od) ]]
then got='68 65 6c 6c 6f e2 82 ac ee 20 77 6f 72 6c 64 0a'
- [[ $(print -r -- "$x" | od -An -tx1) == "$got" ]] || err_exit "incorrect string from printf %q"
+ [[ $(print -r -- "$x" | od -An -tx1) =~ "$got" ]] || err_exit "incorrect string from printf %q"
fi
fi
--- src/cmd/ksh93/tests/options.sh --- src/cmd/ksh93/tests/options.sh
+++ src/cmd/ksh93/tests/options.sh 2012-01-16 16:50:59.000000000 +0000 +++ src/cmd/ksh93/tests/options.sh 2012-01-16 16:50:59.000000000 +0000
@@ -510,7 +510,7 @@ z=$($SHELL 2>&1 -uc 'print ${X2345678901 @@ -510,7 +510,7 @@ z=$($SHELL 2>&1 -uc 'print ${X2345678901

View File

@ -14,6 +14,8 @@ BEGIN {
sum=0 sum=0
allocs=0 allocs=0
frees=0 frees=0
left=0
peak=0
} }
/^execve/ { /^execve/ {
if (FNR == 1) { if (FNR == 1) {
@ -29,6 +31,8 @@ BEGIN {
} else { } else {
sum+=$4 sum+=$4
allocs++ allocs++
if (peak < sum)
peak = sum
} }
} }
/^munmap(2|64)?\(/ { /^munmap(2|64)?\(/ {
@ -38,5 +42,6 @@ BEGIN {
} }
} }
END { END {
print script ": " sum " bytes with " allocs " chunks allocated and " frees " chunks freed" > "/dev/fd/3" left=allocs-frees
print script ": " sum " bytes summed up, " peak " peak value, " left " chunks left over, " allocs " allocated, and " frees " freed" > "/dev/fd/3"
} }