This commit is contained in:
parent
19400db04b
commit
0634d42bec
@ -14,13 +14,13 @@
|
||||
set noglob
|
||||
#
|
||||
set hosts
|
||||
foreach _f ($HOME/.hosts /etc/csh.hosts $HOME/.rhosts /etc/hosts.equiv)
|
||||
foreach _f ("$HOME/.hosts" /etc/csh.hosts "$HOME/.rhosts" /etc/hosts.equiv)
|
||||
if ( -r $_f ) then
|
||||
set hosts=($hosts `grep -E -shv '^#|\+' $_f |awk '{ print $1 }'`)
|
||||
endif
|
||||
end
|
||||
if ( -r $HOME/.netrc ) then
|
||||
set _f=`awk '/machine/ { print $2 }' < $HOME/.netrc` >& /dev/null
|
||||
if ( -r "$HOME/.netrc" ) then
|
||||
set _f=`awk '/machine/ { print $2 }' < "$HOME/.netrc"` >& /dev/null
|
||||
set hosts=($hosts $_f)
|
||||
endif
|
||||
set hosts=(`echo $hosts localhost $HOSTNAME|tr ' ' '\n'|sort -u -t '.'`)
|
||||
@ -37,7 +37,7 @@
|
||||
complete ispell c/-/"(a A b B C d D e ee f L m M p s S T v vv w W)"/ \
|
||||
n/-d/"(english deutsch)"/ \
|
||||
n/-T/"(tex plaintex nroff latin1 ascii atari)"/ \
|
||||
n@-p@'`ls -1 $HOME/.ispell_*`'@ \
|
||||
n@-p@'`ls -1 "$HOME"/.ispell_*`'@ \
|
||||
n/-W/"(1 2 3 4 5)"/ \
|
||||
n/-L/x:'ispell -L <number>'/ \
|
||||
n/-f/t/ n/*/f:^*.{dvi,ps,a,o,gz,z,Z}/
|
||||
@ -191,7 +191,7 @@
|
||||
|
||||
# these should be merged with the MH completion hacks below - jgotts
|
||||
complete {sprev,snext} \
|
||||
c@+@F:$HOME/Mail/@
|
||||
c@+@F:"$HOME/Mail/"@
|
||||
|
||||
# these and interrupt handling from Jaap Vermeulen <jaap@sequent.com>
|
||||
complete {rexec,rxexec,rxterm,rmterm} \
|
||||
@ -239,10 +239,10 @@
|
||||
if ( $?SKIP_MH ) goto skip_mh
|
||||
|
||||
# Do not be fooled by asking MH tools
|
||||
if ( ! -r $HOME/.mh_profile ) goto skip_mh
|
||||
if ( ! -r "$HOME/.mh_profile" ) goto skip_mh
|
||||
|
||||
# Do not be fooled by broken MH profile
|
||||
if ( ! `grep -cE '^Path:' $HOME/.mh_profile` ) goto skip_mh
|
||||
if ( ! `grep -cE '^Path:' "$HOME/.mh_profile"` ) goto skip_mh
|
||||
|
||||
if ( ! $?FOLDERS ) then
|
||||
which folders >& /dev/null
|
||||
@ -557,7 +557,7 @@ skip_mh:
|
||||
kill password ping processlist reload refresh \
|
||||
shutdown status variables version)/'
|
||||
set _muttalias=/dev/null
|
||||
foreach _f ($HOME/.muttrc-alias $HOME/.muttalias)
|
||||
foreach _f ("$HOME/.muttrc-alias" "$HOME/.muttalias")
|
||||
if ( -r $_f ) then
|
||||
set _muttalias=$_f
|
||||
break
|
||||
@ -667,14 +667,14 @@ skip_mh:
|
||||
endif
|
||||
complete unsetenv n/*/e/
|
||||
|
||||
if (-r $HOME/.mailrc) then
|
||||
if (-r "$HOME/.mailrc") then
|
||||
complete mail c/-/"(e i f n s u v)"/ c/*@/\$hosts/ \
|
||||
c@+@F:$HOME/Mail@ C@[./\$~]@f@ n/-s/x:'<subject>'/ \
|
||||
c@+@F:"$HOME/Mail"@ C@[./\$~]@f@ n/-s/x:'<subject>'/ \
|
||||
n@-u@T:$_maildir@ n/-f/f/ \
|
||||
n@*@'`sed -n s/alias//p $HOME/.mailrc | tr -s " " "\t" | cut -f 2`'@
|
||||
n@*@'`sed -n s/alias//p "$HOME/.mailrc" | tr -s " " "\t" | cut -f 2`'@
|
||||
else
|
||||
complete mail c/-/"(e i f n s u v)"/ c/*@/\$hosts/ \
|
||||
c@+@F:$HOME/Mail@ C@[./\$~]@f@ n/-s/x:'<subject>'/ \
|
||||
c@+@F:"$HOME/Mail"@ C@[./\$~]@f@ n/-s/x:'<subject>'/ \
|
||||
n@-u@T:$_maildir@ n/-f/f/ n/*/u/
|
||||
endif
|
||||
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:66129f5c288432741419c2bf6cf7567f7349b453acd25bbfc4bea0fd3d81a165
|
||||
size 727440
|
94
tcsh-6.16.00-grabpgrp.dif
Normal file
94
tcsh-6.16.00-grabpgrp.dif
Normal file
@ -0,0 +1,94 @@
|
||||
--- sh.c
|
||||
+++ sh.c 25 Feb 2009 22:53:47 -0000
|
||||
@@ -1103,17 +1103,7 @@
|
||||
}
|
||||
#endif /* NeXT */
|
||||
#ifdef BSDJOBS /* if we have tty job control */
|
||||
- retry:
|
||||
- if ((tpgrp = tcgetpgrp(f)) != -1) {
|
||||
- if (tpgrp != shpgrp) {
|
||||
- struct sigaction old;
|
||||
-
|
||||
- sigaction(SIGTTIN, NULL, &old);
|
||||
- signal(SIGTTIN, SIG_DFL);
|
||||
- (void) kill(0, SIGTTIN);
|
||||
- sigaction(SIGTTIN, &old, NULL);
|
||||
- goto retry;
|
||||
- }
|
||||
+ if (grabpgrp(f, shpgrp) != -1) {
|
||||
/*
|
||||
* Thanks to Matt Day for the POSIX references, and to
|
||||
* Paul Close for the SGI clarification.
|
||||
@@ -2356,3 +2346,28 @@
|
||||
rechist(NULL, adrof(STRsavehist) != NULL);
|
||||
}
|
||||
}
|
||||
+
|
||||
+/*
|
||||
+ * Grab the tty repeatedly, and give up if we are not in the correct
|
||||
+ * tty process group.
|
||||
+ */
|
||||
+int
|
||||
+grabpgrp(int fd, pid_t desired)
|
||||
+{
|
||||
+ struct sigaction old;
|
||||
+ pid_t pgrp;
|
||||
+ size_t i;
|
||||
+
|
||||
+ for (i = 0; i < 100; i++) {
|
||||
+ if ((pgrp = tcgetpgrp(fd)) == -1)
|
||||
+ return -1;
|
||||
+ if (pgrp == desired)
|
||||
+ return 0;
|
||||
+ (void)sigaction(SIGTTIN, NULL, &old);
|
||||
+ (void)signal(SIGTTIN, SIG_DFL);
|
||||
+ (void)kill(0, SIGTTIN);
|
||||
+ (void)sigaction(SIGTTIN, &old, NULL);
|
||||
+ }
|
||||
+ errno = EPERM;
|
||||
+ return -1;
|
||||
+}
|
||||
--- sh.decls.h
|
||||
+++ sh.decls.h 25 Feb 2009 22:53:47 -0000
|
||||
@@ -52,6 +52,7 @@
|
||||
#else
|
||||
extern void xexit (int);
|
||||
#endif
|
||||
+extern int grabpgrp (int, pid_t);
|
||||
|
||||
/*
|
||||
* sh.dir.c
|
||||
--- sh.func.c
|
||||
+++ sh.func.c 25 Feb 2009 22:53:47 -0000
|
||||
@@ -2272,10 +2272,9 @@
|
||||
dosuspend(Char **v, struct command *c)
|
||||
{
|
||||
#ifdef BSDJOBS
|
||||
- int ctpgrp;
|
||||
struct sigaction old;
|
||||
#endif /* BSDJOBS */
|
||||
-
|
||||
+
|
||||
USE(c);
|
||||
USE(v);
|
||||
|
||||
@@ -2295,17 +2294,8 @@
|
||||
|
||||
#ifdef BSDJOBS
|
||||
if (tpgrp != -1) {
|
||||
-retry:
|
||||
- ctpgrp = tcgetpgrp(FSHTTY);
|
||||
- if (ctpgrp == -1)
|
||||
+ if (grabpgrp(FSHTTY, opgrp) == -1)
|
||||
stderror(ERR_SYSTEM, "tcgetpgrp", strerror(errno));
|
||||
- if (ctpgrp != opgrp) {
|
||||
- sigaction(SIGTTIN, NULL, &old);
|
||||
- signal(SIGTTIN, SIG_DFL);
|
||||
- (void) kill(0, SIGTTIN);
|
||||
- sigaction(SIGTTIN, &old, NULL);
|
||||
- goto retry;
|
||||
- }
|
||||
(void) setpgid(0, shpgrp);
|
||||
(void) tcsetpgrp(FSHTTY, shpgrp);
|
||||
}
|
||||
|
@ -10,7 +10,7 @@
|
||||
void
|
||||
pintr(void)
|
||||
--- sh.err.c
|
||||
+++ sh.err.c 2007-10-15 11:53:17.760845847 +0200
|
||||
+++ sh.err.c 2009-03-25 11:35:16.552001834 +0100
|
||||
@@ -51,6 +51,7 @@ char *seterr = NULL; /* Holds last err
|
||||
#define ERR_NAME 0x10000000
|
||||
#define ERR_SILENT 0x20000000
|
||||
@ -19,17 +19,17 @@
|
||||
|
||||
#define ERR_SYNTAX 0
|
||||
#define ERR_NOTALLOWED 1
|
||||
@@ -600,7 +601,8 @@ stderror(unsigned int id, ...)
|
||||
* else to FSHOUT/FSHDIAG. See flush in sh.print.c.
|
||||
*/
|
||||
flush();/*FIXRESET*/
|
||||
- haderr = 1; /* Now to diagnostic output */
|
||||
+ if (!(flags & ERR_INTERRUPT))
|
||||
+ haderr = 1; /* Now to diagnostic output */
|
||||
|
||||
if (!(flags & ERR_SILENT)) {
|
||||
@@ -609,7 +610,8 @@ stderror(unsigned int id, ...)
|
||||
* sh.print.c.
|
||||
*/
|
||||
flush();/*FIXRESET*/
|
||||
- haderr = 1; /* Now to diagnostic output */
|
||||
+ if (!(flags & ERR_INTERRUPT))
|
||||
+ haderr = 1; /* Now to diagnostic output */
|
||||
if (flags & ERR_NAME)
|
||||
@@ -643,5 +645,6 @@ stderror(unsigned int id, ...)
|
||||
xprintf("%s: ", bname);/*FIXRESET*/
|
||||
if ((flags & ERR_OLD)) {
|
||||
@@ -650,5 +652,6 @@ stderror(unsigned int id, ...)
|
||||
if (tpgrp > 0)
|
||||
(void) tcsetpgrp(FSHTTY, tpgrp);
|
||||
#endif
|
@ -34,14 +34,3 @@
|
||||
f->name = NULL;
|
||||
f->func = 0;
|
||||
f->desc = NULL;
|
||||
--- tw.parse.c
|
||||
+++ tw.parse.c 2007-08-28 12:03:41.288831024 +0200
|
||||
@@ -433,7 +433,7 @@ tenematch(Char *inputline, int num_read,
|
||||
Char *p;
|
||||
int found;
|
||||
|
||||
- found = !cmd_expand(qline.s + wordp, &p);
|
||||
+ found = cmd_expand(qline.s + wordp, &p);
|
||||
|
||||
if (!found) {
|
||||
xfree(p);
|
@ -190,18 +190,18 @@
|
||||
#endif /* _CRAYCOM && !_PATH_TCSHELL */
|
||||
|
||||
--- sh.c
|
||||
+++ sh.c 2006-04-25 14:58:31.000000000 +0200
|
||||
@@ -456,7 +456,8 @@ main(int argc, char **argv)
|
||||
+++ sh.c 2009-03-25 11:45:13.676501240 +0100
|
||||
@@ -454,7 +454,8 @@ main(int argc, char **argv)
|
||||
if (loginsh || (uid == 0)) {
|
||||
if (*cp) {
|
||||
/* only for login shells or root and we must have a tty */
|
||||
- if ((cp2 = Strrchr(cp, (Char) '/')) != NULL) {
|
||||
+ if (((cp2 = Strrchr(cp, (Char) '/')) != NULL) &&
|
||||
+ (Strncmp(cp, STRpts, 3) != 0)) {
|
||||
cp = cp2 + 1;
|
||||
+ (Strncmp(cp, &STRslptssl[1], 3) != 0)) {
|
||||
cp2 = cp2 + 1;
|
||||
}
|
||||
else
|
||||
@@ -717,7 +718,16 @@ main(int argc, char **argv)
|
||||
@@ -715,7 +716,16 @@ main(int argc, char **argv)
|
||||
xfree(tmp2);
|
||||
}
|
||||
#else /* !WINNT_NATIVE */
|
||||
@ -218,7 +218,7 @@
|
||||
#endif /* WINNT_NATIVE */
|
||||
|
||||
/*
|
||||
@@ -741,9 +751,9 @@ main(int argc, char **argv)
|
||||
@@ -739,9 +749,9 @@ main(int argc, char **argv)
|
||||
/* PATCH IDEA FROM Issei.Suzuki VERY THANKS */
|
||||
#if defined(DSPMBYTE)
|
||||
#if defined(NLS) && defined(LC_CTYPE)
|
||||
@ -230,7 +230,7 @@
|
||||
#endif
|
||||
autoset_dspmbyte(str2short(tcp));
|
||||
}
|
||||
@@ -1252,6 +1262,9 @@ main(int argc, char **argv)
|
||||
@@ -1247,6 +1257,9 @@ main(int argc, char **argv)
|
||||
setintr = osetintr;
|
||||
parintr = oparintr;
|
||||
}
|
3
tcsh-6.16.00.tar.bz2
Normal file
3
tcsh-6.16.00.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:79f7f2bb036fadaf0636c254c501f316425cfbaaafce54ddae5c8fd9d2e8392a
|
||||
size 738912
|
@ -1,3 +1,10 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 25 12:23:46 CET 2009 - werner@suse.de
|
||||
|
||||
- Update to tcsh version V6.16.00
|
||||
- Add patch to avoid endless loop due incorrect tty process group
|
||||
(bnc#472866)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jan 21 15:00:49 CET 2009 - werner@suse.de
|
||||
|
||||
|
19
tcsh.spec
19
tcsh.spec
@ -1,5 +1,5 @@
|
||||
#
|
||||
# spec file for package tcsh (Version 6.15.00)
|
||||
# spec file for package tcsh (Version 6.16.00)
|
||||
#
|
||||
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
@ -25,22 +25,23 @@ License: BSD 3-Clause
|
||||
Group: System/Shells
|
||||
Requires: gawk textutils
|
||||
AutoReqProv: on
|
||||
Version: 6.15.00
|
||||
Release: 94
|
||||
Version: 6.16.00
|
||||
Release: 1
|
||||
Summary: The C SHell
|
||||
Source: ftp.astron.com:/pub/tcsh/tcsh-6.15.00.tar.bz2
|
||||
Source: ftp.astron.com:/pub/tcsh/tcsh-6.16.00.tar.bz2
|
||||
Source1: nls-iconv
|
||||
Source2: bindkey.tcsh
|
||||
Source3: complete.tcsh
|
||||
Patch: tcsh-6.15.00.dif
|
||||
Patch: tcsh-6.16.00.dif
|
||||
Patch1: tcsh-6.15.00-spelling.dif
|
||||
Patch2: tcsh-6.15.00-utf8.dif
|
||||
Patch3: tcsh-6.15.00-pipe.dif
|
||||
Patch4: tcsh-6.15.00-longjmp.dif
|
||||
Patch5: tcsh-6.15.00-norm-cmd.dif
|
||||
Patch6: tcsh-6.15.00-history.dif
|
||||
Patch5: tcsh-6.16.00-norm-cmd.dif
|
||||
Patch6: tcsh-6.16.00-history.dif
|
||||
Patch7: tcsh-6.15.00-blanks.dif
|
||||
Patch8: tcsh-6.15.00-fullpath.dif
|
||||
Patch9: tcsh-6.16.00-grabpgrp.dif
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
@ -150,6 +151,10 @@ Authors:
|
||||
%{_datadir}/locale/*/LC_MESSAGES/tcsh
|
||||
|
||||
%changelog
|
||||
* Wed Mar 25 2009 werner@suse.de
|
||||
- Update to tcsh version V6.16.00
|
||||
- Add patch to avoid endless loop due incorrect tty process group
|
||||
(bnc#472866)
|
||||
* Wed Jan 21 2009 werner@suse.de
|
||||
- Reenable Alt-BackSpace for delete word in XTerm in UTF-8 mode
|
||||
* Wed Nov 26 2008 werner@suse.de
|
||||
|
Loading…
Reference in New Issue
Block a user