1 /* Copyright 1992 Simmule Turner and Rich Salz. All rights reserved.
3 * This software is not subject to any license of the American Telephone
4 * and Telegraph Company or of the Regents of the University of California.
6 * Permission is granted to anyone to use this software for any purpose on
7 * any computer system, and to alter it and redistribute it freely, subject
8 * to the following restrictions:
9 * 1. The authors are not responsible for the consequences of use of this
10 * software, no matter how awful, even if they arise from flaws in it.
11 * 2. The origin of this software must not be misrepresented, either by
12 * explicit claim or by omission. Since few users ever read sources,
13 * credits must appear in the documentation.
14 * 3. Altered versions must be plainly marked as such, and must not be
15 * misrepresented as being the original software. Since few users
16 * ever read sources, credits must appear in the documentation.
17 * 4. This notice may not be removed or altered.
21 ** Unix system-dependant routines for editline library.
38 static struct termios old
;
43 rl_erase
= old
.c_cc
[VERASE
];
44 rl_kill
= old
.c_cc
[VKILL
];
45 rl_eof
= old
.c_cc
[VEOF
];
46 rl_intr
= old
.c_cc
[VINTR
];
47 rl_quit
= old
.c_cc
[VQUIT
];
52 new.c_lflag
&= ~(ECHO
| ICANON
);
53 new.c_iflag
&= ~(ISTRIP
| INPCK
);
56 tcsetattr(0, TCSANOW
, &new);
59 tcsetattr(0, TCSANOW
, &old
);
61 #else /* !HAVE_TERMIOS_H */
65 static struct sgttyb old
;
69 ioctl(0, TIOCGETP
, &old
);
70 rl_erase
= old
.sg_erase
;
71 rl_kill
= old
.sg_kill
;
73 new.sg_flags
&= ~(ECHO
| ICANON
);
74 new.sg_flags
&= ~(ISTRIP
| INPCK
);
75 ioctl(0, TIOCSETP
, &new);
77 ioctl(0, TIOCSETP
, &old
);
80 #endif /* HAVE_TERMIOS_H */
83 rl_add_slash(char *path
, char *p
)
87 if (stat(path
, &Sb
) >= 0)
88 strcat(p
, S_ISDIR(Sb
.st_mode
) ? "/" : " ");