Date: Thu, 19 Nov 2015 03:51:21 +0000 From: raviqqe <raviqqe@gmail.com> To: freebsd-python@freebsd.org Subject: Python curses module does not print any attributed space character on FreeBSD 11-current Message-ID: <564D4739.1090504@gmail.com>
next in thread | raw e-mail | index | archive | help
Hello, TL;DR I encountered a bug-like behavior of a Python built-in module. Could you reproduce it in C? While working with Python and its curses module on FreeBSD 11-current (x86_64), I found a weird behavior of the module. The code below doesn't print any character although it should print a space on the upper-left corner. ``` # test.py import curses window = curses.initscr() window.attrset(curses.A_NORMAL) window.addch(" ") window.getch() curses.endwin() ``` The cause is `window.attrset()` and when I removed the line it works just fine. And, with the visible characters (such as 'A' and '?' except for ' ' and '\t'), it works fine even if window.attrset() is there. I found out Python's _curses.so links with /usr/local/lib/libncurses.so.5 dynamically. When I links it with the new /lib/libncurses.so.8 shipped with FreeBSD 11-current base as follows, the code above (test.py in the command line below) works fine. ``` $ ln -s /lib/libncurses.so.8 /usr/lib/libncurses.so.5 $ LD_LIBRARY_PATH=/usr/lib python3.5 test.py ``` Then, I tried to reproduce it in C with the code below. ``` // test.c #include <curses.h> int main() { WINDOW *win = initscr(); wattrset(win, A_NORMAL); waddch(win, ' '); getch(); endwin(); } ``` Compiled and run it (test.c). ``` $ cc /usr/local/lib/libncurses.so.5 /usr/local/lib/libtinfo.so.5 test.c $ ./a.out ``` It WORKS FINE as printing a space in place. I explored Modules/_cursesmodule.c in Python source tree and found that Python's curses.initscr() calls setupterm() in <term.h> too. And, I checked the TERM environment variable. But, the real problem could not be revealed eventually. Could someone help me to reproduce the bug in C? Am I missing something? Or, do I misunderstand the problem? Thank you, all.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?564D4739.1090504>