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
|
||||
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
|
||||
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
|
||||
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
|
||||
system.o /z/src/libc/orig_obj/system.o differ: char 6, line 1
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,8 @@ getpass(prompt)
|
|||
char *prompt;
|
||||
{
|
||||
struct sgttyb ttyb;
|
||||
int flags;
|
||||
int flags; /*,flags2,flags3,flags4,flags5;*/
|
||||
struct sgttyb foo;
|
||||
register char *p;
|
||||
register c;
|
||||
FILE *fi;
|
||||
|
|
@ -18,14 +19,14 @@ char *prompt;
|
|||
int (*sig)();
|
||||
|
||||
if ((fi = fopen("/dev/tty", "r")) == NULL)
|
||||
fi = stdin;
|
||||
return(0);
|
||||
else
|
||||
setbuf(fi, (char *)NULL);
|
||||
sig = signal(SIGINT, SIG_IGN);
|
||||
gtty(fileno(fi), &ttyb);
|
||||
ioctl(fileno(fi), 0x5401, &ttyb);
|
||||
flags = ttyb.sg_flags;
|
||||
ttyb.sg_flags &= ~ECHO;
|
||||
stty(fileno(fi), &ttyb);
|
||||
ttyb.sg_flags &= 0xff87;
|
||||
stty(fileno(fi), 0x5404, &ttyb);
|
||||
fprintf(stderr, prompt);
|
||||
for (p=pbuf; (c = getc(fi))!='\n' && c!=EOF;) {
|
||||
if (p < &pbuf[8])
|
||||
|
|
@ -34,7 +35,7 @@ char *prompt;
|
|||
*p = '\0';
|
||||
fprintf(stderr, "\n");
|
||||
ttyb.sg_flags = flags;
|
||||
stty(fileno(fi), &ttyb);
|
||||
stty(fileno(fi), 0x5403, &ttyb);
|
||||
signal(SIGINT, sig);
|
||||
if (fi != stdin)
|
||||
fclose(fi);
|
||||
|
|
|
|||
|
|
@ -10,5 +10,5 @@ register struct _iobuf *iop;
|
|||
i = getc(iop);
|
||||
if (iop->_flag&_IOEOF)
|
||||
return(-1);
|
||||
return(i | (getc(iop)<<8));
|
||||
return(i<<8 | getc(iop));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,6 @@ putw(i, iop)
|
|||
register i;
|
||||
register struct _iobuf *iop;
|
||||
{
|
||||
putc(i, iop);
|
||||
putc(i>>8, iop);
|
||||
putc(i, iop);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,12 +4,30 @@
|
|||
|
||||
system(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;
|
||||
register int (*istat)(), (*qstat)();
|
||||
|
||||
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);
|
||||
}
|
||||
istat = signal(SIGINT, SIG_IGN);
|
||||
|
|
|
|||
Loading…
Reference in New Issue