tin may ignore ncursesw (tin modifies terminal settings)

clemens fischer <[email protected]> Thu, 01 Apr 2010 21:16:46 +0200
Newsgroups gmane.network.tin.user
Message-ID <[email protected]>
I wrote, also in [1] about the same problem:

> When I use "rtin", all the color settings affect only where "tin" writes
> text, everything else is left at the current default colors.  I always
> thought this to be tin specific, but I am not so sure anymore, because
> after exiting "rtin", the same behaviour persists in "bash" as well!
> I didn't notice until now, because tin runs always in its own
> tmux/screen managed window which closes after "rtin" exits.

I think the tin auto-configuration ignores some, but not all of the
system installed ncursesw if not explicitly requested.  The old version
was configured like this:

  $ ./configure --prefix=/opt/tin/1.9.6-snapshot --disable-nls \
  --disable-etiquette --enable-cancel-locks --with-pcre=/usr \
  --enable-debug --with-gpg=/usr/bin/gpg

I found that the binary links to /lib/libncursesw.so.5.7 (on arch-linux)
but apparently doesn't use all its entry points:

  $ objdump -T /l/bin/tin|egv glibc

  /l/bin/tin:     file format elf32-i386

  DYNAMIC SYMBOL TABLE:
  00000000      DF *UND* 00000000  LIBIDN_1.0  stringprep_check_version
  00000000  w   D  *UND* 00000000              __gmon_start__
  00000000  w   D  *UND* 00000000              _Jv_RegisterClasses
  00000000      DF *UND* 00000000              ubidi_open_4_2
  00000000      DF *UND* 00000000              ubidi_getParaLevel_4_2
  00000000      DF *UND* 00000000  LIBIDN_1.0  idna_to_unicode_lzlz
  00000000      DF *UND* 00000000              tigetnum
  00000000      DF *UND* 00000000              pcre_version
  00000000      DF *UND* 00000000              pcre_exec
  00000000      DF *UND* 00000000              pcre_config
  00000000      DF *UND* 00000000              tigetflag
  00000000      DF *UND* 00000000              setupterm
  00000000      DF *UND* 00000000              u_strlen_4_2
  00000000      DF *UND* 00000000              unorm_normalize_4_2
  00000000      DF *UND* 00000000              tputs
  00000000      DF *UND* 00000000              pcre_compile
  00000000      DF *UND* 00000000              tgoto
  00000000      DF *UND* 00000000              u_strFromUTF8_4_2
  00000000      DF *UND* 00000000              ubidi_writeReordered_4_2
  00000000      DF *UND* 00000000              tigetstr
  00000000      DF *UND* 00000000              ubidi_close_4_2
  00000000      DF *UND* 00000000              ubidi_setPara_4_2
  00000000      DF *UND* 00000000              pcre_study
  00000000      DF *UND* 00000000              u_strToUTF8_4_2
  08140f54 g    D  *ABS* 00000000  Base        _end
  080f6764 g    D  *ABS* 00000000  Base        _edata
  080b4264 g    DO .rodata       00000004  Base        _IO_stdin_used
  080f6764 g    D  *ABS* 00000000  Base        __bss_start
  0804a088 g    DF .init 00000000  Base        _init
  080b422c g    DF .fini 00000000  Base        _fini

The new version, which initializes the terminal correctly and doesn't
mess with default and configured colors was configured like this:

  $ ./configure --disable-nls --with-defaults-dir=/l/etc/tin \
  --disable-etiquette --enable-cancel-locks --with-trace \
  --with-pcre=/usr --with-screen=ncursesw --enable-debug \
  --enable-nntp-only --with-gpg=/usr/bin/gpg --sysconfdir=/l/etc/tin \
  --prefix=/opt/tin/1.9.6-snapshot-tmux

Now more symbols belonging to ncursesw are referenced:

  $ objdump -T /l/bin/tin|egv glibc

  /l/bin/tin:     file format elf32-i386

  DYNAMIC SYMBOL TABLE:
  00000000      DF *UND* 00000000              scrollok
  00000000      DF *UND* 00000000              wclrtobot
  00000000      DF *UND* 00000000              waddch
  00000000      DF *UND* 00000000              wmove
  00000000      DF *UND* 00000000              reset_shell_mode
  00000000      DF *UND* 00000000              keypad
  00000000      DF *UND* 00000000  LIBIDN_1.0  stringprep_check_version
  00000000  w   D  *UND* 00000000              __gmon_start__
  00000000  w   D  *UND* 00000000              _Jv_RegisterClasses
  00000000      DF *UND* 00000000              endwin
  00000000      DF *UND* 00000000              ubidi_open_4_2
  00000000      DF *UND* 00000000              use_default_colors
  00000000      DF *UND* 00000000              nodelay
  00000000      DF *UND* 00000000              resizeterm
  00000000      DF *UND* 00000000              ubidi_getParaLevel_4_2
  00000000      DF *UND* 00000000  LIBIDN_1.0  idna_to_unicode_lzlz
  00000000      DF *UND* 00000000              reset_prog_mode
  00000000      DF *UND* 00000000              werase
  00000000      DF *UND* 00000000              initscr
  00000000      DF *UND* 00000000              pcre_version
  00000000      DF *UND* 00000000              wclrtoeol
  00000000      DF *UND* 00000000              pcre_exec
  00000000      DF *UND* 00000000              wdelch
  00000000      DF *UND* 00000000              beep
  00000000      DF *UND* 00000000              pcre_config
  00000000      DF *UND* 00000000              getmouse
  00000000      DF *UND* 00000000              mousemask
  00000000      DF *UND* 00000000              wrefresh
  00000000      DF *UND* 00000000              init_pair
  00000000      DF *UND* 00000000              u_strlen_4_2
  00000000      DF *UND* 00000000              cbreak
  00000000      DF *UND* 00000000              unorm_normalize_4_2
  00000000      DF *UND* 00000000              ungetch
  00000000      DF *UND* 00000000              start_color
  00000000      DF *UND* 00000000              pcre_compile
  00000000      DF *UND* 00000000              wgetch
  00000000      DF *UND* 00000000              vwprintw
  00000000      DF *UND* 00000000              has_colors
  00000000      DF *UND* 00000000              waddnstr
  00000000      DF *UND* 00000000              wgetnstr
  00000000      DF *UND* 00000000              winnstr
  00000000      DF *UND* 00000000              u_strFromUTF8_4_2
  00000000      DF *UND* 00000000              ubidi_writeReordered_4_2
  00000000      DF *UND* 00000000              wattr_off
  00000000      DF *UND* 00000000              curs_set
  00000000      DF *UND* 00000000              wsetscrreg
  00000000      DF *UND* 00000000              ubidi_close_4_2
  00000000      DF *UND* 00000000              wscrl
  00000000      DF *UND* 00000000              ubidi_setPara_4_2
  00000000      DF *UND* 00000000              noecho
  00000000      DF *UND* 00000000              wbkgdset
  00000000      DF *UND* 00000000              pcre_study
  00000000      DF *UND* 00000000              u_strToUTF8_4_2
  00000000      DF *UND* 00000000              wattr_on
  080b49fc g    DF .fini 00000000  Base        _fini
  080f6c84 g    DO .bss  00000004              stdscr
  0804a710 g    DF .init 00000000  Base        _init
  080f6cc0 g    DO .bss  00000004              LINES
  080f6c64 g    D  *ABS* 00000000  Base        __bss_start
  080b4a24 g    DO .rodata       00000004  Base        _IO_stdin_used
  0813ef78 g    D  *ABS* 00000000  Base        _end
  080f6c80 g    DO .bss  00000004              COLORS
  080f6ce8 g    DO .bss  00000004              COLOR_PAIRS
  080f6c90 g    DO .bss  00000004              curscr
  080f6c64 g    D  *ABS* 00000000  Base        _edata
  080f6cc4 g    DO .bss  00000004              COLS

[1] Archived-At: <http://permalink.gmane.org/gmane.network.tin.user/383>


clemens