agetty: fixing FTBFS on !linux (Debian util-linux 2.20.1-1.2)
Handle vc flags missing on FreeBSD Fix tty creation on kFreeBSD taking patch from 2.19 Addresses-Debian-Bug: #650185
This commit is contained in:
parent
e4a382b777
commit
c32270d41f
|
@ -74,6 +74,46 @@ static inline void reset_virtual_console(struct termios *tp, int flags)
|
|||
/* Sane setting, allow eight bit characters, no carriage return delay
|
||||
* the same result as `stty sane cr0 pass8'
|
||||
*/
|
||||
#ifndef IUCLC
|
||||
# define IUCLC 0
|
||||
#endif
|
||||
#ifndef NL0
|
||||
# define NL0 0
|
||||
#endif
|
||||
#ifndef CR0
|
||||
# define CR0 0
|
||||
#endif
|
||||
#ifndef BS0
|
||||
# define BS0 0
|
||||
#endif
|
||||
#ifndef VT0
|
||||
# define VT0 0
|
||||
#endif
|
||||
#ifndef FF0
|
||||
# define FF0 0
|
||||
#endif
|
||||
#ifndef OLCUC
|
||||
# define OLCUC 0
|
||||
#endif
|
||||
#ifndef OFILL
|
||||
# define OFILL 0
|
||||
#endif
|
||||
#ifndef NLDLY
|
||||
# define NLDLY 0
|
||||
#endif
|
||||
#ifndef CRDLY
|
||||
# define CRDLY 0
|
||||
#endif
|
||||
#ifndef BSDLY
|
||||
# define BSDLY 0
|
||||
#endif
|
||||
#ifndef VTDLY
|
||||
# define VTDLY 0
|
||||
#endif
|
||||
#ifndef FFDLY
|
||||
# define FFDLY 0
|
||||
#endif
|
||||
|
||||
tp->c_iflag |= (BRKINT | ICRNL | IMAXBEL);
|
||||
tp->c_iflag &= ~(IGNBRK | INLCR | IGNCR | IXOFF | IUCLC | IXANY | ISTRIP);
|
||||
tp->c_oflag |= (OPOST | ONLCR | NL0 | CR0 | TAB0 | BS0 | VT0 | FF0);
|
||||
|
|
|
@ -23,6 +23,7 @@ sbin_PROGRAMS += agetty
|
|||
dist_man_MANS += term-utils/agetty.8
|
||||
agetty_SOURCES = term-utils/agetty.c
|
||||
agetty_LDADD = $(LDADD) libcommon.la
|
||||
agetty_LDADD += -lutil
|
||||
endif # BUILD_AGETTY
|
||||
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
*
|
||||
* This program is freely distributable.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -44,6 +45,12 @@
|
|||
#include "widechar.h"
|
||||
#include "ttyutils.h"
|
||||
|
||||
#if defined(__FreeBSD_kernel__)
|
||||
#include <pty.h>
|
||||
#include <sys/param.h>
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef __linux__
|
||||
# include <sys/kd.h>
|
||||
# include <sys/param.h>
|
||||
|
@ -76,6 +83,10 @@
|
|||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __FreeBSD_kernel__
|
||||
#define USE_SYSLOG
|
||||
#endif
|
||||
|
||||
/* If USE_SYSLOG is undefined all diagnostics go to /dev/console. */
|
||||
#ifdef USE_SYSLOG
|
||||
# include <syslog.h>
|
||||
|
@ -1110,6 +1121,11 @@ static void open_tty(char *tty, struct termios *tp, struct options *op)
|
|||
op->term = DEFAULT_TTYS1;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(__FreeBSD_kernel__)
|
||||
login_tty (0);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Detect if this is a virtual console or serial/modem line.
|
||||
* In case of a virtual console the ioctl KDGKBMODE succeeds
|
||||
|
|
Loading…
Reference in New Issue