ncurses 5.6 - patch 20080419
[ncurses.git] / ncurses / tty / tty_display.h
index 1bc0d2d9dc426b4bfdff476d2521483e73a4f658..4c45a08450ed974988e20e973f5d03a97189ad1d 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc.                        *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc.              *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
 #ifndef TTY_DISPLAY_H
 #define TTY_DISPLAY_H 1
 
-extern bool _nc_tty_beep(void);
-extern bool _nc_tty_check_resize(void);
-extern bool _nc_tty_cursor(int);
-extern bool _nc_tty_flash(void);
-extern bool _nc_tty_init_color(int,int,int,int);
-extern bool _nc_tty_init_pair(int,int,int);
-extern bool _nc_tty_slk_hide(bool);
-extern bool _nc_tty_slk_update(int,const char *);
-extern bool _nc_tty_start_color(void);
-extern void _nc_tty_display_resume(void);
-extern void _nc_tty_display_suspend(void);
-extern void _nc_tty_dispose(void);     /* frees SP->_term */
-extern void _nc_tty_switch_to(void);
-extern void _nc_tty_update(void);
+/*
+ * $Id: tty_display.h,v 1.6 2005/01/01 23:41:12 tom Exp $
+ */
+extern NCURSES_EXPORT(bool) _nc_tty_beep (void);
+extern NCURSES_EXPORT(bool) _nc_tty_check_resize (void);
+extern NCURSES_EXPORT(bool) _nc_tty_cursor (int);
+extern NCURSES_EXPORT(bool) _nc_tty_flash (void);
+extern NCURSES_EXPORT(bool) _nc_tty_init_color (int,int,int,int);
+extern NCURSES_EXPORT(bool) _nc_tty_init_pair (int,int,int);
+extern NCURSES_EXPORT(bool) _nc_tty_slk_hide (bool);
+extern NCURSES_EXPORT(bool) _nc_tty_slk_update (int,const char *);
+extern NCURSES_EXPORT(bool) _nc_tty_start_color (void);
+extern NCURSES_EXPORT(void) _nc_tty_display_resume (void);
+extern NCURSES_EXPORT(void) _nc_tty_display_suspend (void);
+extern NCURSES_EXPORT(void) _nc_tty_dispose (void);    /* frees SP->_term */
+extern NCURSES_EXPORT(void) _nc_tty_switch_to (void);
+extern NCURSES_EXPORT(void) _nc_tty_update (void);
 
 struct tty_display_data {
        int             _fifohold;      /* set if breakout marked           */
@@ -111,11 +114,11 @@ struct tty_display_data {
                : ((enter_insert_mode && exit_insert_mode) \
                  ? D->_smir_cost + D->_rmir_cost + (D->_ip_cost * count) \
                  : ((insert_character != 0) \
-                   ? (D->_ich1_cost * count) \
+                   ? ((D->_ich1_cost + D->_ip_cost) * count) \
                    : INFINITY)))
 
 #if USE_XMC_SUPPORT
-#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) { \
+#define UpdateAttrs(c) if (!SameAttrOf(D->_current_attr, AttrOf(c))) { \
                                attr_t chg = D->_current_attr; \
                                vidattr(AttrOf(c)); \
                                if (magic_cookie_glitch > 0 \
@@ -128,19 +131,10 @@ struct tty_display_data {
                                } \
                        }
 #else
-#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) \
+#define UpdateAttrs(c) if (!SameAttrOf(D->_current_attr, AttrOf(c))) \
                                vidattr(AttrOf(c));
 #endif
 
-/*
- * Check whether the given character can be output by clearing commands.  This
- * includes test for being a space and not including any 'bad' attributes, such
- * as A_REVERSE.  All attribute flags which don't affect appearance of a space
- * or can be output by clearing (A_COLOR in case of bce-terminal) are excluded.
- */
-#define can_clear_with(ch) \
-       ((ch & ~(NONBLANK_ATTR|(back_color_erase ? A_COLOR:0))) == BLANK)
-
 #define XMC_CHANGES(c) ((c) & D->_xmc_suppress)
 
 #endif /* TTY_DISPLAY_H */