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:
commit
9a366d155e
11
ksh.changes
11
ksh.changes
@ -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
|
||||
|
||||
|
7
ksh.spec
7
ksh.spec
@ -245,6 +245,9 @@ fi
|
||||
test -s $fd -a ! -c $fd && break || true
|
||||
done
|
||||
set -- $(readlink $fd)
|
||||
grep pts /proc/mounts
|
||||
ls -ld /dev/ptmx
|
||||
ls -ld /dev/pts
|
||||
exec ./sigexec $SHELL ${1+"$@"}
|
||||
fi
|
||||
IGNORED=0x$(ps --no-headers -o ignored $$)
|
||||
@ -530,7 +533,7 @@ fi
|
||||
typeset -i failed=0
|
||||
ln -sf ${root}/lib ${test}/../
|
||||
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*}
|
||||
${SHELL} shtests
|
||||
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/rksh.1ast.gz
|
||||
%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
|
||||
%endif
|
||||
install -m 0644 man/man1/shcomp.1ast %{buildroot}%{_mandir}/man1/shcomp.1ast
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- src/cmd/builtin/pty.c
|
||||
+++ 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
|
||||
char* sname;
|
||||
#endif
|
||||
@ -13,6 +13,24 @@
|
||||
/*
|
||||
* some systems hang hard during the handshake
|
||||
* 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)
|
||||
error(-1, "unable to get standard error window size");
|
||||
}
|
||||
@ -36,6 +54,87 @@
|
||||
alarm(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 2012-02-13 11:02:18.645933606 +0000
|
||||
@@ -68,7 +68,7 @@ static struct
|
||||
|
1845
ksh93-fdstatus.dif
1845
ksh93-fdstatus.dif
File diff suppressed because it is too large
Load Diff
@ -318,6 +318,15 @@
|
||||
fi
|
||||
")
|
||||
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 2012-01-16 16:50:59.000000000 +0000
|
||||
@@ -510,7 +510,7 @@ z=$($SHELL 2>&1 -uc 'print ${X2345678901
|
||||
|
@ -14,6 +14,8 @@ BEGIN {
|
||||
sum=0
|
||||
allocs=0
|
||||
frees=0
|
||||
left=0
|
||||
peak=0
|
||||
}
|
||||
/^execve/ {
|
||||
if (FNR == 1) {
|
||||
@ -29,6 +31,8 @@ BEGIN {
|
||||
} else {
|
||||
sum+=$4
|
||||
allocs++
|
||||
if (peak < sum)
|
||||
peak = sum
|
||||
}
|
||||
}
|
||||
/^munmap(2|64)?\(/ {
|
||||
@ -38,5 +42,6 @@ BEGIN {
|
||||
}
|
||||
}
|
||||
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"
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user