/* -*-C-*-
$Id: nttty.c,v 1.8 1999/01/02 06:11:34 cph Exp $
Copyright (c) 1992-1999 Massachusetts Institute of Technology
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "nt.h"
#include "ostty.h"
#include "osenv.h"
#include "ntio.h"
#include "ntterm.h"
#include "ntscreen.h"
/* Standard Input and Output */
static Tchannel input_channel;
static Tchannel output_channel;
HANDLE master_tty_window = 0;
int tty_x_size;
int tty_y_size;
/* 1-based values */
static char * tty_command_beep;
static char * tty_command_clear;
Tchannel
OS_tty_input_channel (void)
{
return (input_channel);
}
Tchannel
OS_tty_output_channel (void)
{
return (output_channel);
}
unsigned int
OS_tty_x_size (void)
{
Screen_GetSize (master_tty_window, (&tty_y_size), (&tty_x_size));
return (tty_x_size);
}
unsigned int
OS_tty_y_size (void)
{
Screen_GetSize (master_tty_window, (&tty_y_size), (&tty_x_size));
return (tty_y_size);
}
CONST char *
OS_tty_command_beep (void)
{
return (tty_command_beep);
}
CONST char *
OS_tty_command_clear (void)
{
return (tty_command_clear);
}
void
NT_initialize_tty (void)
{
input_channel = (NT_open_handle (master_tty_window));
(CHANNEL_INTERNAL (input_channel)) = 1;
output_channel = input_channel;
Screen_GetSize (master_tty_window, (&tty_y_size), (&tty_x_size));
tty_command_beep = ALERT_STRING;
tty_command_clear = "\014";
}
/* Fake TERMCAP capability */
short ospeed;
char PC;
int
tputs (string, nlines, outfun)
register char * string;
int nlines;
register int (*outfun) ();
{
register int padcount = 0;
if (string == (char *) 0)
return (0);
while (*string >= '0' && *string <= '9')
{
padcount += *string++ - '0';
padcount *= 10;
}
if (*string == '.')
{
string++;
padcount += *string++ - '0';
}
if (*string == '*')
{
string++;
padcount *= nlines;
}
while (*string)
(*outfun) (*string++);
return (0);
}
syntax highlighted by Code2HTML, v. 0.9.1