more work
This commit is contained in:
parent
3ac8395634
commit
64588c5e40
|
|
@ -4,9 +4,5 @@ fdopen.o /z/src/libc/orig_obj/fdopen.o differ: char 6, line 1
|
||||||
flsbuf.o /z/src/libc/orig_obj/flsbuf.o differ: char 6, line 1
|
flsbuf.o /z/src/libc/orig_obj/flsbuf.o differ: char 6, line 1
|
||||||
getgrent.o /z/src/libc/orig_obj/getgrent.o differ: char 132, line 1
|
getgrent.o /z/src/libc/orig_obj/getgrent.o differ: char 132, line 1
|
||||||
getpass.o /z/src/libc/orig_obj/getpass.o differ: char 6, line 1
|
getpass.o /z/src/libc/orig_obj/getpass.o differ: char 6, line 1
|
||||||
getw.o /z/src/libc/orig_obj/getw.o differ: char 6, line 1
|
|
||||||
printf.o /z/src/libc/orig_obj/printf.o differ: char 5, line 1
|
printf.o /z/src/libc/orig_obj/printf.o differ: char 5, line 1
|
||||||
putw.o /z/src/libc/orig_obj/putw.o differ: char 64, line 1
|
|
||||||
scanf.o /z/src/libc/orig_obj/scanf.o differ: char 6, line 1
|
scanf.o /z/src/libc/orig_obj/scanf.o differ: char 6, line 1
|
||||||
system.o /z/src/libc/orig_obj/system.o differ: char 6, line 1
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,8 @@ getpass(prompt)
|
||||||
char *prompt;
|
char *prompt;
|
||||||
{
|
{
|
||||||
struct sgttyb ttyb;
|
struct sgttyb ttyb;
|
||||||
int flags;
|
int flags; /*,flags2,flags3,flags4,flags5;*/
|
||||||
|
struct sgttyb foo;
|
||||||
register char *p;
|
register char *p;
|
||||||
register c;
|
register c;
|
||||||
FILE *fi;
|
FILE *fi;
|
||||||
|
|
@ -18,14 +19,14 @@ char *prompt;
|
||||||
int (*sig)();
|
int (*sig)();
|
||||||
|
|
||||||
if ((fi = fopen("/dev/tty", "r")) == NULL)
|
if ((fi = fopen("/dev/tty", "r")) == NULL)
|
||||||
fi = stdin;
|
return(0);
|
||||||
else
|
else
|
||||||
setbuf(fi, (char *)NULL);
|
setbuf(fi, (char *)NULL);
|
||||||
sig = signal(SIGINT, SIG_IGN);
|
sig = signal(SIGINT, SIG_IGN);
|
||||||
gtty(fileno(fi), &ttyb);
|
ioctl(fileno(fi), 0x5401, &ttyb);
|
||||||
flags = ttyb.sg_flags;
|
flags = ttyb.sg_flags;
|
||||||
ttyb.sg_flags &= ~ECHO;
|
ttyb.sg_flags &= 0xff87;
|
||||||
stty(fileno(fi), &ttyb);
|
stty(fileno(fi), 0x5404, &ttyb);
|
||||||
fprintf(stderr, prompt);
|
fprintf(stderr, prompt);
|
||||||
for (p=pbuf; (c = getc(fi))!='\n' && c!=EOF;) {
|
for (p=pbuf; (c = getc(fi))!='\n' && c!=EOF;) {
|
||||||
if (p < &pbuf[8])
|
if (p < &pbuf[8])
|
||||||
|
|
@ -34,7 +35,7 @@ char *prompt;
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
ttyb.sg_flags = flags;
|
ttyb.sg_flags = flags;
|
||||||
stty(fileno(fi), &ttyb);
|
stty(fileno(fi), 0x5403, &ttyb);
|
||||||
signal(SIGINT, sig);
|
signal(SIGINT, sig);
|
||||||
if (fi != stdin)
|
if (fi != stdin)
|
||||||
fclose(fi);
|
fclose(fi);
|
||||||
|
|
|
||||||
|
|
@ -10,5 +10,5 @@ register struct _iobuf *iop;
|
||||||
i = getc(iop);
|
i = getc(iop);
|
||||||
if (iop->_flag&_IOEOF)
|
if (iop->_flag&_IOEOF)
|
||||||
return(-1);
|
return(-1);
|
||||||
return(i | (getc(iop)<<8));
|
return(i<<8 | getc(iop));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,6 @@ putw(i, iop)
|
||||||
register i;
|
register i;
|
||||||
register struct _iobuf *iop;
|
register struct _iobuf *iop;
|
||||||
{
|
{
|
||||||
putc(i, iop);
|
|
||||||
putc(i>>8, iop);
|
putc(i>>8, iop);
|
||||||
|
putc(i, iop);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,30 @@
|
||||||
|
|
||||||
system(s)
|
system(s)
|
||||||
char *s;
|
char *s;
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
_system(s,1);
|
||||||
|
}
|
||||||
|
|
||||||
|
csystem(s)
|
||||||
|
char *s;
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
_system(s,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
_system(s,mode)
|
||||||
|
char *s;
|
||||||
|
int mode;
|
||||||
{
|
{
|
||||||
int status, pid, w;
|
int status, pid, w;
|
||||||
register int (*istat)(), (*qstat)();
|
register int (*istat)(), (*qstat)();
|
||||||
|
|
||||||
if ((pid = fork()) == 0) {
|
if ((pid = fork()) == 0) {
|
||||||
execl("/bin/sh", "sh", "-c", s, 0);
|
if(!mode)
|
||||||
|
execl("/bin/csh", "csh", "-c", s, 0);
|
||||||
|
else
|
||||||
|
execl("/bin/sh", "sh", "-c", s, 0);
|
||||||
_exit(127);
|
_exit(127);
|
||||||
}
|
}
|
||||||
istat = signal(SIGINT, SIG_IGN);
|
istat = signal(SIGINT, SIG_IGN);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue