View | Details | Raw Unified
Collapse All | Expand All

(-) slang-1.4.5/src/slsmg.c.acs (-73 / +178 lines)
 Lines 1255-1260    Link Here 
#ifdef UTF8
#ifdef UTF8
typedef int SLsmg_Char_Type;
typedef int SLsmg_Char_Type;
extern SLtt_Char_Type SLcurses_Acs_Map [128];
#define acs_map SLcurses_Acs_Map
#define SLSMG_EXTRACT_CHAR(x) ((x) & 0xFFFFFF)
#define SLSMG_EXTRACT_CHAR(x) ((x) & 0xFFFFFF)
#define SLSMG_EXTRACT_COLOR(x) (((x)>>24)&0xFF)
#define SLSMG_EXTRACT_COLOR(x) (((x)>>24)&0xFF)
#define SLSMG_BUILD_CHAR(ch,color) (((SLsmg_Char_Type)(wchar_t)(ch))|((color)<<24))
#define SLSMG_BUILD_CHAR(ch,color) (((SLsmg_Char_Type)(wchar_t)(ch))|((color)<<24))
 Lines 1396-1402    Link Here 
extern void SLsmg_set_screen_start (int *, int *);
extern void SLsmg_set_screen_start (int *, int *);
extern void SLsmg_draw_hline (unsigned int);
extern void SLsmg_draw_hline (unsigned int);
extern void SLsmg_draw_vline (int);
extern void SLsmg_draw_vline (int);
#ifdef UTF8
extern void SLsmg_draw_object (int, int, SLsmg_Char_Type);
#else
extern void SLsmg_draw_object (int, int, unsigned char);
extern void SLsmg_draw_object (int, int, unsigned char);
#endif
extern void SLsmg_draw_box (int, int, unsigned int, unsigned int);
extern void SLsmg_draw_box (int, int, unsigned int, unsigned int);
extern int SLsmg_get_column(void);
extern int SLsmg_get_column(void);
extern int SLsmg_get_row(void);
extern int SLsmg_get_row(void);
 Lines 1408-1413    Link Here 
extern int SLsmg_Display_Eight_Bit;
extern int SLsmg_Display_Eight_Bit;
extern int SLsmg_Tab_Width;
extern int SLsmg_Tab_Width;
extern int SLsmg_Is_Unicode;
extern int SLsmg_Setlocale;
#define SLSMG_NEWLINE_IGNORED	0      /* default */
#define SLSMG_NEWLINE_IGNORED	0      /* default */
#define SLSMG_NEWLINE_MOVES	1      /* moves to next line, column 0 */
#define SLSMG_NEWLINE_MOVES	1      /* moves to next line, column 0 */
#define SLSMG_NEWLINE_SCROLLS	2      /* moves but scrolls at bottom of screen */
#define SLSMG_NEWLINE_SCROLLS	2      /* moves but scrolls at bottom of screen */
 Lines 1465-1495    Link Here 
#  define SLSMG_BOARD_CHAR	'#'
#  define SLSMG_BOARD_CHAR	'#'
#  define SLSMG_BLOCK_CHAR	'#'
#  define SLSMG_BLOCK_CHAR	'#'
# else
# else
#  define SLSMG_HLINE_CHAR	'q'
#  define SLSMG_HLINE_CHAR	(acs_map['q'])
#  define SLSMG_VLINE_CHAR	'x'
#  define SLSMG_VLINE_CHAR	(acs_map['x'])
#  define SLSMG_ULCORN_CHAR	'l'
#  define SLSMG_ULCORN_CHAR	(acs_map['l'])
#  define SLSMG_URCORN_CHAR	'k'
#  define SLSMG_URCORN_CHAR	(acs_map['k'])
#  define SLSMG_LLCORN_CHAR	'm'
#  define SLSMG_LLCORN_CHAR	(acs_map['m'])
#  define SLSMG_LRCORN_CHAR	'j'
#  define SLSMG_LRCORN_CHAR	(acs_map['j'])
#  define SLSMG_CKBRD_CHAR	'a'
#  define SLSMG_CKBRD_CHAR	(acs_map['a'])
#  define SLSMG_RTEE_CHAR	'u'
#  define SLSMG_RTEE_CHAR	(acs_map['u'])
#  define SLSMG_LTEE_CHAR	't'
#  define SLSMG_LTEE_CHAR	(acs_map['t'])
#  define SLSMG_UTEE_CHAR	'w'
#  define SLSMG_UTEE_CHAR	(acs_map['v'])
#  define SLSMG_DTEE_CHAR	'v'
#  define SLSMG_DTEE_CHAR	(acs_map['w'])
#  define SLSMG_PLUS_CHAR	'n'
#  define SLSMG_PLUS_CHAR	(acs_map['n'])
#  define SLSMG_DIAMOND_CHAR	'`'
#  define SLSMG_DIAMOND_CHAR	(acs_map['`'])
#  define SLSMG_DEGREE_CHAR	'f'
#  define SLSMG_DEGREE_CHAR	(acs_map['f'])
#  define SLSMG_PLMINUS_CHAR	'g'
#  define SLSMG_PLMINUS_CHAR	(acs_map['g'])
#  define SLSMG_BULLET_CHAR	'~'
#  define SLSMG_BULLET_CHAR	(acs_map['~'])
#  define SLSMG_LARROW_CHAR	','
#  define SLSMG_LARROW_CHAR	(acs_map[','])
#  define SLSMG_RARROW_CHAR	'+'
#  define SLSMG_RARROW_CHAR	(acs_map['+'])
#  define SLSMG_DARROW_CHAR	'.'
#  define SLSMG_DARROW_CHAR	(acs_map['.'])
#  define SLSMG_UARROW_CHAR	'-'
#  define SLSMG_UARROW_CHAR	(acs_map['-'])
#  define SLSMG_BOARD_CHAR	'h'
#  define SLSMG_BOARD_CHAR	(acs_map['h'])
#  define SLSMG_BLOCK_CHAR	'0'
#  define SLSMG_BLOCK_CHAR	(acs_map['0'])
#
#  define SLSMG_HLINE_CHAR_TERM	'q'
#  define SLSMG_VLINE_CHAR_TERM	'x'
#  define SLSMG_ULCORN_CHAR_TERM	'l'
#  define SLSMG_URCORN_CHAR_TERM	'k'
#  define SLSMG_LLCORN_CHAR_TERM	'm'
#  define SLSMG_LRCORN_CHAR_TERM	'j'
#  define SLSMG_CKBRD_CHAR_TERM	'a'
#  define SLSMG_RTEE_CHAR_TERM	'u'
#  define SLSMG_LTEE_CHAR_TERM	't'
#  define SLSMG_UTEE_CHAR_TERM	'v'
#  define SLSMG_DTEE_CHAR_TERM	'w'
#  define SLSMG_PLUS_CHAR_TERM	'n'
#  define SLSMG_DIAMOND_CHAR_TERM	'`'
#  define SLSMG_DEGREE_CHAR_TERM	'f'
#  define SLSMG_PLMINUS_CHAR_TERM	'g'
#  define SLSMG_BULLET_CHAR_TERM	'~'
#  define SLSMG_LARROW_CHAR_TERM	','
#  define SLSMG_RARROW_CHAR_TERM	'+'
#  define SLSMG_DARROW_CHAR_TERM	'.'
#  define SLSMG_UARROW_CHAR_TERM	'-'
#  define SLSMG_BOARD_CHAR_TERM	'h'
#  define SLSMG_BLOCK_CHAR_TERM	'0'
# endif				       /* AMIGA */
# endif				       /* AMIGA */
#endif				       /* IBMPC_SYSTEM */
#endif				       /* IBMPC_SYSTEM */
#ifdef UTF8
# define SLSMG_HLINE_CHAR_UNICODE	0x2500
# define SLSMG_VLINE_CHAR_UNICODE	0x2502
# define SLSMG_ULCORN_CHAR_UNICODE	0x250c
# define SLSMG_URCORN_CHAR_UNICODE	0x2510
# define SLSMG_LLCORN_CHAR_UNICODE	0x2514
# define SLSMG_LRCORN_CHAR_UNICODE	0x2518
# define SLSMG_RTEE_CHAR_UNICODE	0x2524
# define SLSMG_LTEE_CHAR_UNICODE	0x251c
# define SLSMG_UTEE_CHAR_UNICODE	0x2534
# define SLSMG_DTEE_CHAR_UNICODE	0x252c
# define SLSMG_PLUS_CHAR_UNICODE	0x253c
# define SLSMG_CKBRD_CHAR_UNICODE	0x2592
# define SLSMG_DIAMOND_CHAR_UNICODE	0x25c6
# define SLSMG_DEGREE_CHAR_UNICODE	0x00b0
# define SLSMG_PLMINUS_CHAR_UNICODE	0x00b1
# define SLSMG_BULLET_CHAR_UNICODE	0x00b7
# define SLSMG_LARROW_CHAR_UNICODE	0x2190
# define SLSMG_RARROW_CHAR_UNICODE	0x2192
# define SLSMG_DARROW_CHAR_UNICODE	0x2193
# define SLSMG_UARROW_CHAR_UNICODE	0x2191
# define SLSMG_BOARD_CHAR_UNICODE	0x2592
# define SLSMG_BLOCK_CHAR_UNICODE	0x25ae
#endif
#ifndef IBMPC_SYSTEM
#ifndef IBMPC_SYSTEM
# define SLSMG_COLOR_BLACK		0x000000
# define SLSMG_COLOR_BLACK		0x000000
# define SLSMG_COLOR_RED		0x000001
# define SLSMG_COLOR_RED		0x000001
 Lines 331-370    Link Here 
   /* SLtt_set_mono (A_BLINK >> 8, NULL, SLTT_BLINK_MASK); */
   /* SLtt_set_mono (A_BLINK >> 8, NULL, SLTT_BLINK_MASK); */
   SLtt_set_mono ((A_BOLD|A_UNDERLINE) >> 8, NULL, SLTT_ULINE_MASK|SLTT_BOLD_MASK);
   SLtt_set_mono ((A_BOLD|A_UNDERLINE) >> 8, NULL, SLTT_ULINE_MASK|SLTT_BOLD_MASK);
   SLtt_set_mono ((A_REVERSE|A_UNDERLINE) >> 8, NULL, SLTT_ULINE_MASK|SLTT_REV_MASK);
   SLtt_set_mono ((A_REVERSE|A_UNDERLINE) >> 8, NULL, SLTT_ULINE_MASK|SLTT_REV_MASK);
   
   SLcurses_init_acs_map();
   return SLcurses_Stdscr;
}
void SLcurses_init_acs_map()
{
   if (SLtt_Has_Alt_Charset)
   if (SLtt_Has_Alt_Charset)
     {
     {
       SLcurses_Acs_Map[SLSMG_ULCORN_CHAR] = SLSMG_ULCORN_CHAR | A_ALTCHARSET;
       if (SLsmg_Is_Unicode)
       SLcurses_Acs_Map[SLSMG_URCORN_CHAR] = SLSMG_URCORN_CHAR | A_ALTCHARSET;
         {
       SLcurses_Acs_Map[SLSMG_LLCORN_CHAR] = SLSMG_LLCORN_CHAR | A_ALTCHARSET;
           SLcurses_Acs_Map['l'] = SLSMG_ULCORN_CHAR_UNICODE;
       SLcurses_Acs_Map[SLSMG_LRCORN_CHAR] = SLSMG_LRCORN_CHAR | A_ALTCHARSET;
           SLcurses_Acs_Map['k'] = SLSMG_URCORN_CHAR_UNICODE;
       SLcurses_Acs_Map[SLSMG_UTEE_CHAR] = SLSMG_UTEE_CHAR | A_ALTCHARSET;
           SLcurses_Acs_Map['m'] = SLSMG_LLCORN_CHAR_UNICODE;
       SLcurses_Acs_Map[SLSMG_DTEE_CHAR] = SLSMG_DTEE_CHAR | A_ALTCHARSET;
           SLcurses_Acs_Map['j'] = SLSMG_LRCORN_CHAR_UNICODE;
       SLcurses_Acs_Map[SLSMG_LTEE_CHAR] = SLSMG_LTEE_CHAR | A_ALTCHARSET;
           SLcurses_Acs_Map['v'] = SLSMG_UTEE_CHAR_UNICODE;
       SLcurses_Acs_Map[SLSMG_RTEE_CHAR] = SLSMG_RTEE_CHAR | A_ALTCHARSET;
           SLcurses_Acs_Map['w'] = SLSMG_DTEE_CHAR_UNICODE;
       SLcurses_Acs_Map[SLSMG_VLINE_CHAR] = SLSMG_VLINE_CHAR | A_ALTCHARSET;
           SLcurses_Acs_Map['t'] = SLSMG_LTEE_CHAR_UNICODE;
       SLcurses_Acs_Map[SLSMG_HLINE_CHAR] = SLSMG_HLINE_CHAR | A_ALTCHARSET;
           SLcurses_Acs_Map['u'] = SLSMG_RTEE_CHAR_UNICODE;
       SLcurses_Acs_Map[SLSMG_PLUS_CHAR] = SLSMG_PLUS_CHAR | A_ALTCHARSET;
           SLcurses_Acs_Map['x'] = SLSMG_VLINE_CHAR_UNICODE;
       SLcurses_Acs_Map[SLSMG_CKBRD_CHAR] = SLSMG_CKBRD_CHAR | A_ALTCHARSET;
           SLcurses_Acs_Map['q'] = SLSMG_HLINE_CHAR_UNICODE;
           SLcurses_Acs_Map['n'] = SLSMG_PLUS_CHAR_UNICODE;
           SLcurses_Acs_Map['a'] = SLSMG_CKBRD_CHAR_UNICODE;
         }
       else
	 {
           SLcurses_Acs_Map['l'] = SLSMG_ULCORN_CHAR_TERM | A_ALTCHARSET;
           SLcurses_Acs_Map['k'] = SLSMG_URCORN_CHAR_TERM | A_ALTCHARSET;
           SLcurses_Acs_Map['m'] = SLSMG_LLCORN_CHAR_TERM | A_ALTCHARSET;
           SLcurses_Acs_Map['j'] = SLSMG_LRCORN_CHAR_TERM | A_ALTCHARSET;
           SLcurses_Acs_Map['v'] = SLSMG_UTEE_CHAR_TERM | A_ALTCHARSET;
           SLcurses_Acs_Map['w'] = SLSMG_DTEE_CHAR_TERM | A_ALTCHARSET;
           SLcurses_Acs_Map['t'] = SLSMG_LTEE_CHAR_TERM | A_ALTCHARSET;
           SLcurses_Acs_Map['u'] = SLSMG_RTEE_CHAR_TERM | A_ALTCHARSET;
           SLcurses_Acs_Map['x'] = SLSMG_VLINE_CHAR_TERM | A_ALTCHARSET;
           SLcurses_Acs_Map['q'] = SLSMG_HLINE_CHAR_TERM | A_ALTCHARSET;
           SLcurses_Acs_Map['n'] = SLSMG_PLUS_CHAR_TERM | A_ALTCHARSET;
           SLcurses_Acs_Map['a'] = SLSMG_CKBRD_CHAR_TERM | A_ALTCHARSET;
         }
     }
     }
   else
   else
     {
     {
       /* ugly defaults to use on terminals which don't support graphics */
       /* ugly defaults to use on terminals which don't support graphics */
       SLcurses_Acs_Map[SLSMG_ULCORN_CHAR] = '+';
       SLcurses_Acs_Map['l'] = '+';
       SLcurses_Acs_Map[SLSMG_URCORN_CHAR] = '+';
       SLcurses_Acs_Map['k'] = '+';
       SLcurses_Acs_Map[SLSMG_LLCORN_CHAR] = '+';
       SLcurses_Acs_Map['m'] = '+';
       SLcurses_Acs_Map[SLSMG_LRCORN_CHAR] = '+';
       SLcurses_Acs_Map['j'] = '+';
       SLcurses_Acs_Map[SLSMG_UTEE_CHAR] = '+';
       SLcurses_Acs_Map['v'] = '+';
       SLcurses_Acs_Map[SLSMG_DTEE_CHAR] = '+';
       SLcurses_Acs_Map['w'] = '+';
       SLcurses_Acs_Map[SLSMG_LTEE_CHAR] = '+';
       SLcurses_Acs_Map['t'] = '+';
       SLcurses_Acs_Map[SLSMG_RTEE_CHAR] = '+';
       SLcurses_Acs_Map['u'] = '+';
       SLcurses_Acs_Map[SLSMG_VLINE_CHAR] = '|';
       SLcurses_Acs_Map['x'] = '|';
       SLcurses_Acs_Map[SLSMG_HLINE_CHAR] = '-';
       SLcurses_Acs_Map['q'] = '-';
       SLcurses_Acs_Map[SLSMG_PLUS_CHAR] = '+';
       SLcurses_Acs_Map['n'] = '+';
       SLcurses_Acs_Map[SLSMG_CKBRD_CHAR] = '#';
       SLcurses_Acs_Map['a'] = '#';
     }
     }
   return SLcurses_Stdscr;
}
}
int SLcurses_wattrset (SLcurses_Window_Type *w, SLtt_Char_Type ch)
int SLcurses_wattrset (SLcurses_Window_Type *w, SLtt_Char_Type ch)
 Lines 141-146    Link Here 
extern int SLcurses_nodelay (SLcurses_Window_Type *, int);
extern int SLcurses_nodelay (SLcurses_Window_Type *, int);
extern SLcurses_Window_Type *SLcurses_initscr (void);
extern SLcurses_Window_Type *SLcurses_initscr (void);
extern void SLcurses_init_acs_map (void);
#define initscr SLcurses_initscr
#define initscr SLcurses_initscr
extern int SLcurses_cbreak (void);
extern int SLcurses_cbreak (void);
 Lines 222-242    Link Here 
extern SLtt_Char_Type SLcurses_Acs_Map [128];
extern SLtt_Char_Type SLcurses_Acs_Map [128];
#define acs_map SLcurses_Acs_Map
#define acs_map SLcurses_Acs_Map
#define ACS_ULCORNER (acs_map[SLSMG_ULCORN_CHAR])
#define ACS_ULCORNER SLSMG_ULCORN_CHAR
#define ACS_URCORNER (acs_map[SLSMG_URCORN_CHAR])
#define ACS_URCORNER SLSMG_URCORN_CHAR
#define ACS_LRCORNER (acs_map[SLSMG_LRCORN_CHAR])
#define ACS_LRCORNER SLSMG_LRCORN_CHAR
#define ACS_LLCORNER (acs_map[SLSMG_LLCORN_CHAR])
#define ACS_LLCORNER SLSMG_LLCORN_CHAR
#define ACS_TTEE (acs_map[SLSMG_UTEE_CHAR])
#define ACS_TTEE SLSMG_UTEE_CHAR
#define ACS_LTEE (acs_map[SLSMG_LTEE_CHAR])
#define ACS_LTEE SLSMG_LTEE_CHAR
#define ACS_RTEE (acs_map[SLSMG_RTEE_CHAR])
#define ACS_RTEE SLSMG_RTEE_CHAR
#define ACS_BTEE (acs_map[SLSMG_DTEE_CHAR])
#define ACS_BTEE SLSMG_DTEE_CHAR
#define ACS_PLUS (acs_map[SLSMG_PLUS_CHAR])
#define ACS_PLUS SLSMG_PLUS_CHAR
#define ACS_VLINE (acs_map[SLSMG_VLINE_CHAR])
#define ACS_VLINE SLSMG_VLINE_CHAR
#define ACS_HLINE (acs_map[SLSMG_HLINE_CHAR])
#define ACS_HLINE SLSMG_HLINE_CHAR
#define ACS_S1		'-'
#define ACS_S1		'-'
#define ACS_S9		'-'
#define ACS_S9		'-'
#define ACS_DIAMOND		'&'
#define ACS_DIAMOND		'&'
#define ACS_CKBOARD		(acs_map[SLSMG_CKBRD_CHAR])
#define ACS_CKBOARD		SLSMG_CKBRD_CHAR
#define ACS_DEGREE		'o'
#define ACS_DEGREE		'o'
#define ACS_PLMINUS		'+'
#define ACS_PLMINUS		'+'
#define ACS_BULLET		'*'
#define ACS_BULLET		'*'
 Lines 10-15    Link Here 
#include "slang.h"
#include "slang.h"
#include "_slang.h"
#include "_slang.h"
#include "slcurses.h"
#include <locale.h>
typedef struct Screen_Type
typedef struct Screen_Type
  {
  {
 Lines 44-52    Link Here 
					*/
					*/
#ifndef IBMPC_SYSTEM
#ifndef IBMPC_SYSTEM
#define ALT_CHAR_FLAG 0x80
static int ALT_CHAR_FLAG=0x80;
#else
#else
#define ALT_CHAR_FLAG 0x00
static int ALT_CHAR_FLAG=0x00;
#endif
#endif
#if SLTT_HAS_NON_BCE_SUPPORT && !defined(IBMPC_SYSTEM)
#if SLTT_HAS_NON_BCE_SUPPORT && !defined(IBMPC_SYSTEM)
 Lines 54-59    Link Here 
static int Bce_Color_Offset;
static int Bce_Color_Offset;
#endif
#endif
int SLsmg_Is_Unicode = 0;
int SLsmg_Setlocale = 1;
int SLsmg_Newline_Behavior = 0;
int SLsmg_Newline_Behavior = 0;
int SLsmg_Backspace_Moves = 0;
int SLsmg_Backspace_Moves = 0;
/* Backward compatibility. Not used. */
/* Backward compatibility. Not used. */
 Lines 184-189    Link Here 
     return;/* alt chars not used and the alt bit
     return;/* alt chars not used and the alt bit
	     * is used to indicate a blink.
	     * is used to indicate a blink.
	     */
	     */
   if (SLsmg_Is_Unicode)
       ALT_CHAR_FLAG=0x00;
   if (i) This_Alt_Char = ALT_CHAR_FLAG;
   if (i) This_Alt_Char = ALT_CHAR_FLAG;
   else This_Alt_Char = 0;
   else This_Alt_Char = 0;
 Lines 348-353    Link Here 
#ifndef IBMPC_SYSTEM
#ifndef IBMPC_SYSTEM
   int alt_char_set_flag;
   int alt_char_set_flag;
   if (SLsmg_Is_Unicode)
     ALT_CHAR_FLAG = 0x00;
   alt_char_set_flag = ((This_Color & ALT_CHAR_FLAG)
   alt_char_set_flag = ((This_Color & ALT_CHAR_FLAG)
			&& ((tt_Use_Blink_For_ACS == NULL)
			&& ((tt_Use_Blink_For_ACS == NULL)
			    || (*tt_Use_Blink_For_ACS == 0)));
			    || (*tt_Use_Blink_For_ACS == 0)));
 Lines 1221-1226    Link Here 
   Smg_Inited = 0;
   Smg_Inited = 0;
}
}
static void SLsmg_check_unicode(void)
{
    char *s,*t;
    
    if (SLsmg_Setlocale)
		s = setlocale(LC_ALL, "");
    else
		s = setlocale(LC_ALL, NULL);
    if (s && (strstr(s,"UTF-8") || strstr(s,"utf8"))) {
	    SLsmg_Is_Unicode = 1;
	    return;
    }
    SLsmg_Is_Unicode = 0;
}
static int init_smg (void)
static int init_smg (void)
{
{
 Lines 1242-1247    Link Here 
   This_Col = This_Row = Start_Col = Start_Row = 0;
   This_Col = This_Row = Start_Col = Start_Row = 0;
   This_Alt_Char = 0;
   This_Alt_Char = 0;
   SLsmg_check_unicode ();
   SLcurses_init_acs_map ();
   SLsmg_set_color (0);
   SLsmg_set_color (0);
   Cls_Flag = 1;
   Cls_Flag = 1;
#ifndef IBMPC_SYSTEM
#ifndef IBMPC_SYSTEM
 Lines 1386-1392    Link Here 
     }
     }
}
}
#ifdef UTF8
void SLsmg_draw_object (int r, int c, SLsmg_Char_Type object)
#else
void SLsmg_draw_object (int r, int c, unsigned char object)
void SLsmg_draw_object (int r, int c, unsigned char object)
#endif
{
{
   This_Row = r;  This_Col = c;
   This_Row = r;  This_Col = c;
 Lines 1405-1411    Link Here 
void SLsmg_draw_hline (unsigned int n)
void SLsmg_draw_hline (unsigned int n)
{
{
   static unsigned char hbuf[16];
   SLsmg_Char_Type ch = SLSMG_HLINE_CHAR;
   int count;
   int count;
   int cmin, cmax;
   int cmin, cmax;
   int final_col = This_Col + (int) n;
   int final_col = This_Col + (int) n;
 Lines 1421-1431    Link Here 
	return;
	return;
     }
     }
   if (hbuf[0] == 0)
     {
	SLMEMSET ((char *) hbuf, SLSMG_HLINE_CHAR, 16);
     }
   n = (unsigned int)(cmax - cmin);
   n = (unsigned int)(cmax - cmin);
   count = n / 16;
   count = n / 16;
 Lines 1433-1442    Link Here 
   This_Color |= ALT_CHAR_FLAG;
   This_Color |= ALT_CHAR_FLAG;
   This_Col = cmin;
   This_Col = cmin;
   SLsmg_write_nchars ((char *) hbuf, n % 16);
   SLsmg_draw_object(This_Row, This_Col, ch);
   while (count-- > 0)
   while (n-- > 0)
     {
     {
	SLsmg_write_nchars ((char *) hbuf, 16);
	SLsmg_draw_object(This_Row, This_Col, ch);
     }
     }
   This_Color = save_color;
   This_Color = save_color;
 Lines 1445-1451    Link Here 
void SLsmg_draw_vline (int n)
void SLsmg_draw_vline (int n)
{
{
   unsigned char ch = SLSMG_VLINE_CHAR;
   SLsmg_Char_Type ch = SLSMG_VLINE_CHAR;
   int c = This_Col, rmin, rmax;
   int c = This_Col, rmin, rmax;
   int final_row = This_Row + n;
   int final_row = This_Row + n;
   int save_color;
   int save_color;
 Lines 1466-1472    Link Here 
   for (This_Row = rmin; This_Row < rmax; This_Row++)
   for (This_Row = rmin; This_Row < rmax; This_Row++)
     {
     {
	This_Col = c;
	This_Col = c;
	SLsmg_write_nchars ((char *) &ch, 1);
	SLsmg_draw_object (This_Row, This_Col, ch);
     }
     }
   This_Col = c;  This_Row = final_row;
   This_Col = c;  This_Row = final_row;