[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Minor problems

From: philippe blain
Subject: Minor problems
Date: Sun, 23 Sep 2001 06:28:58 +0200

>From Philippe Blain, Bordeaux, FRANCE
My old computer : P133 - 8,4Go - 32 Mo       Red Hat Linux 7.0

To the maintainers of 'ncurses'. (and to Mr Dickey)
Subject : Corrections for ncurses-5.2-20010915+

Here are some problems I found :

File : ncurses/base/lib_freeall.c

Function : _nc_freeall()

    #elif HAVE_PURIFY
        purify_all_in use();

Verify also 'malloc_dump()'

File : ncurses/curses.priv.h

Boolean 'IGNORE_COLOR_OFF' is not used elsewhere except in 'toggle_attr_off'.
Refer to color pair n°255. Why ??? Don't know.
Suggesting to suppress what cannot be explained in that macro :

#define toggle_attr_off(S,at) {\
    if (PAIR_NUMBER(at) > 0x00) /* turn off color */\
        (S) &= ~(at|A_COLOR);\
    else /* leave color alone */\
        (S) &= ~(at);\
    TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}

File : many

Pb about windows background in case of WIDE CHARS :

It should be defined simply something like      NCURSES_CH_T _bkgrnd;
Instead, there is spagheti code :
1) Substitution of @NCURSES_bkgd_field@ in "curses.h.in" by configure
    plus another definition when WIDE_CHAR.
2) Double definition of '_nc_background()', 'wgetbkgrnd(win,wch)'
    which should normaly return both the current background char (or struct).
3) _nc_background() not correct for wide chars :

    lib_addch.c:    _nc_background(WINDOW *win)
    lib_addstr.c:   line->text[x - 1] = _nc_background(win);
    lib_addstr.c:   line->text[x - 1] = _nc_background(win);
    lib_addstr.c:   line->text[x] = _nc_background(win);
    lib_clrbot.c:   NCURSES_CH_T blank = _nc_background(win);
    lib_clreol.c:   blank = _nc_background(win);
    lib_delch.c:    NCURSES_CH_T blank = _nc_background(win);
    lib_erase.c:    blank = _nc_background(win);
    lib_insdel.c:   _nc_background(win));
    lib_scroll.c:   _nc_scroll_window(win, n, win->_regtop, win->_regbottom,
    wresize.c:      blank = _nc_background(win);

Should have only ONE macro or function to do that.
------ Philippe.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]