Opened 12 years ago

Closed 9 years ago

#17401 closed defect (fixed)

emacs make-term: eterm-color not found due to new ncurses version

Reported by: vinc17@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.6.0
Keywords: Cc: drkp (Dan Ports)
Port: emacs, ncurses, ncursesw

Description

Since I've upgraded to ncurses and ncursesw 5.7_0, when I type in emacs 22.3.1:

ESC : (make-term "tack" "tack")

I get the following error in buffer *tack*:

Terminal not found: TERM=eterm-color
usage: tack [-itV] [term]

Process tack exited abnormally with code 1

The problem disappears after downgrading to ncurses/ncursesw 5.6.

So, it seems that the new ncurses version broke something.

Change History (6)

comment:1 Changed 12 years ago by vinc17@…

I've found the cause: under Mac OS X, emacs needs the eterm-color entry from ncurses. However ncursesw only provides Eterm-color (with a capital E). With ncursesw 5.6_1, the terminfo data were stored under the pathname /opt/local/share/terminfo/e/Eterm-color, but since HFS+ is case-insensitive, the file was read and the terminfo data for eterm-color came from this file (as a side effect?). Now, with ncursesw 5.7_0, the file is stored under the pathname /opt/local/share/terminfo/45/Eterm-color, i.e. the first letter has been replaced by its ASCII code. And since 'E' and 'e' don't have the same ASCII code, ncurses searches for the file 65/eterm-color and infocmp gives the error:

prunille:~> infocmp eterm-color
infocmp: couldn't open terminfo file /opt/local/share/terminfo/65/eterm-color.

I've tried by adding a file $HOME/.terminfo/65/Eterm-color and this workaround solves the problem:

prunille:~> infocmp eterm-color
#       Reconstructed via infocmp from file: /Users/vinc17/.terminfo/65/eterm-color
Eterm|Eterm-color|Eterm with xterm-style color support (X Window System),
[...]

Note: there's no such problem under Debian though it has a case-sensitive file system, because it solves the problem in another way: emacs defines a $TERMCAP environment variable containing the eterm-color definition.

comment:2 Changed 12 years ago by vinc17@…

As said by Thomas Dickey, Eterm-color (with a capital E) is for another terminal and should not be used with Emacs. With previous ncurses versions, it was used by mistake under Mac OS X. Note that this bug is fixed upstream in patch 20081129 from ftp://invisible-island.net/ncurses/5.7/:

+20081129
[...]
+       + add eterm-color entry (report by Vincent Lefevre) -TD

A temporary workaround is to get these terminfo data and install them in one's home directory with tic.

comment:3 Changed 12 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

comment:4 Changed 11 years ago by jmroot (Joshua Root)

Cc: dports@… added

comment:5 Changed 10 years ago by ryandesign (Ryan Schmidt)

Owner: changed from imajes@… to macports-tickets@…

James Cox (imajes) retires as MacPorts maintainer (see macports-mgr archives)

comment:6 Changed 9 years ago by drkp (Dan Ports)

Resolution: fixed
Status: newclosed

This appears to be fixed in the current ncurses version.

Note: See TracTickets for help on using tickets.