summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsos <sos@FreeBSD.org>1996-10-15 20:27:07 +0000
committersos <sos@FreeBSD.org>1996-10-15 20:27:07 +0000
commita849187a71a5dfdf69df3baaad35c0cda8a2906f (patch)
treea579e2ef88a0a65ca1e1923ee3e3d12b8b6934fd
parentae5eee5c30605ac5eb567f1e1b3c4e5558716fa5 (diff)
downloadFreeBSD-src-a849187a71a5dfdf69df3baaad35c0cda8a2906f.zip
FreeBSD-src-a849187a71a5dfdf69df3baaad35c0cda8a2906f.tar.gz
Corrected the setting of winsize on open().
Problem pointed out by David Nugent - davidn@blaze.net.au.
-rw-r--r--sys/dev/syscons/syscons.c15
-rw-r--r--sys/i386/isa/syscons.c15
-rw-r--r--sys/isa/syscons.c15
3 files changed, 30 insertions, 15 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index b75bf45..b49d3a4 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.177 1996/10/03 00:42:27 jkh Exp $
+ * $Id: syscons.c,v 1.178 1996/10/09 15:24:21 bde Exp $
*/
#include "sc.h"
@@ -292,7 +292,7 @@ static int
scprobe(struct isa_device *dev)
{
int i, j, retries = 5;
- unsigned char val;
+ u_char val;
/* Enable interrupts and keyboard controller */
kbd_wait();
@@ -488,6 +488,10 @@ scopen(dev_t dev, int flag, int mode, struct proc *p)
if (minor(dev) < MAXCONS && !console[minor(dev)]) {
console[minor(dev)] = alloc_scp();
}
+ if (minor(dev)<MAXCONS && !tp->t_winsize.ws_col && !tp->t_winsize.ws_row) {
+ tp->t_winsize.ws_col = console[minor(dev)]->xsize;
+ tp->t_winsize.ws_row = console[minor(dev)]->ysize;
+ }
return ((*linesw[tp->t_line].l_open)(dev, tp));
}
@@ -603,7 +607,8 @@ scparam(struct tty *tp, struct termios *t)
int
scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
{
- int i, error;
+ int error;
+ u_int i;
struct tty *tp;
struct trapframe *fp;
scr_stat *scp;
@@ -2209,8 +2214,8 @@ scinit(void)
{
u_short volatile *cp;
u_short was;
- unsigned hw_cursor;
- int i;
+ u_int hw_cursor;
+ u_int i;
if (init_done != COLD)
return;
diff --git a/sys/i386/isa/syscons.c b/sys/i386/isa/syscons.c
index b75bf45..b49d3a4 100644
--- a/sys/i386/isa/syscons.c
+++ b/sys/i386/isa/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.177 1996/10/03 00:42:27 jkh Exp $
+ * $Id: syscons.c,v 1.178 1996/10/09 15:24:21 bde Exp $
*/
#include "sc.h"
@@ -292,7 +292,7 @@ static int
scprobe(struct isa_device *dev)
{
int i, j, retries = 5;
- unsigned char val;
+ u_char val;
/* Enable interrupts and keyboard controller */
kbd_wait();
@@ -488,6 +488,10 @@ scopen(dev_t dev, int flag, int mode, struct proc *p)
if (minor(dev) < MAXCONS && !console[minor(dev)]) {
console[minor(dev)] = alloc_scp();
}
+ if (minor(dev)<MAXCONS && !tp->t_winsize.ws_col && !tp->t_winsize.ws_row) {
+ tp->t_winsize.ws_col = console[minor(dev)]->xsize;
+ tp->t_winsize.ws_row = console[minor(dev)]->ysize;
+ }
return ((*linesw[tp->t_line].l_open)(dev, tp));
}
@@ -603,7 +607,8 @@ scparam(struct tty *tp, struct termios *t)
int
scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
{
- int i, error;
+ int error;
+ u_int i;
struct tty *tp;
struct trapframe *fp;
scr_stat *scp;
@@ -2209,8 +2214,8 @@ scinit(void)
{
u_short volatile *cp;
u_short was;
- unsigned hw_cursor;
- int i;
+ u_int hw_cursor;
+ u_int i;
if (init_done != COLD)
return;
diff --git a/sys/isa/syscons.c b/sys/isa/syscons.c
index b75bf45..b49d3a4 100644
--- a/sys/isa/syscons.c
+++ b/sys/isa/syscons.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: syscons.c,v 1.177 1996/10/03 00:42:27 jkh Exp $
+ * $Id: syscons.c,v 1.178 1996/10/09 15:24:21 bde Exp $
*/
#include "sc.h"
@@ -292,7 +292,7 @@ static int
scprobe(struct isa_device *dev)
{
int i, j, retries = 5;
- unsigned char val;
+ u_char val;
/* Enable interrupts and keyboard controller */
kbd_wait();
@@ -488,6 +488,10 @@ scopen(dev_t dev, int flag, int mode, struct proc *p)
if (minor(dev) < MAXCONS && !console[minor(dev)]) {
console[minor(dev)] = alloc_scp();
}
+ if (minor(dev)<MAXCONS && !tp->t_winsize.ws_col && !tp->t_winsize.ws_row) {
+ tp->t_winsize.ws_col = console[minor(dev)]->xsize;
+ tp->t_winsize.ws_row = console[minor(dev)]->ysize;
+ }
return ((*linesw[tp->t_line].l_open)(dev, tp));
}
@@ -603,7 +607,8 @@ scparam(struct tty *tp, struct termios *t)
int
scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p)
{
- int i, error;
+ int error;
+ u_int i;
struct tty *tp;
struct trapframe *fp;
scr_stat *scp;
@@ -2209,8 +2214,8 @@ scinit(void)
{
u_short volatile *cp;
u_short was;
- unsigned hw_cursor;
- int i;
+ u_int hw_cursor;
+ u_int i;
if (init_done != COLD)
return;
OpenPOWER on IntegriCloud