X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-3.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_73,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: sourceware.org Message-Id: <1243880825.24976.1318228015@webmail.messagingengine.com> From: "Charles Wilson" To: "cygwin AT cygwin DOT com" Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Subject: Re: urxvt-X terminfo and Bash readline Date: Mon, 01 Jun 2009 14:27:05 -0400 Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Dan Moulding wrote: > First, it did not install its own compiled terminfo file in > /usr/share/terminfo/r. I noticed that the source for the terminfo file > was installed to /etc/terminfo, so I compiled it and copied > rxvt-unicode to /usr/share/terminfo/r (from /usr/share/terminfo/72). > This seemed to work for getting programs (such as emacs) to find the > terminfo. But it seems like this should all happen automagically upon > installing urxvt-X (for example, I never had to do this with xterm). Programs compiled against ncurses anytime in the last 2-3 months use the "new" terminfo database, which organizes the entries by the 2-char hex code of the first letter, rather than by the first letter itself. This helps when your filesystem -- as on cygwin/win32 [*] -- is case-preserving but not case-sensitive. Older programs continue to use the "old" terminfo database. Both databases coexist in the /usr/share/terminfo directory. The rxvt-unicode postinstall script will install a copy of the correct entry into both databases, but ONLY if you have the correct program(s) installed: /usr/bin/tic.exe from the ncurses package (most everybody will have this) --> installs into the "new" database under .../72/ /usr/bin/tic0.exe from the 'tic0' package (few people install this) --> installs into the "old" database under .../u/ To get this "right", first install the 'tic0' package, and then (re)install the rxvt-unicode-common package. Note that in most cases (e.g. cygwin installations that were "in service" prior to 2-3 months ago, and had installed rxvt-unicode "back then") already had the "old" database entry installed -- and so only need the "new" one which *does* happen automagically. It's the mix of "I want to use an old program that hasn't been recompiled against the new ncurses, AND I am just now installing rxvt-unicode for the first time, AND I'm using the old program from inside this spiffy new terminal" that causes problems. I guess I could make it automatic even then, by require:ing tic0...but then everybody, even those who don't need it, would install tic0, the "old" terminfo0 database, and all of the (old) ncurses libraries that tic0 needs. Plus, that runs against my attempt to slowly phase out the "old" database... > The other odd thing I noticed is that for some reason in Bash the > readline functionality "horizontal-scroll-mode" defaults to "on" when > running inside urxvt-X. Normally this should default to "off" (as per > the Bash man page). When running Bash in an xterm window, it is set > "off" by default as expected. I had to manually turn it off in > .inputrc when using urxvt-X. I know nothing of this. I didn't do anything "special" so I figure this is the upstream default behavior of rxvt-unicode. I plan to update rxvt-unicode to 8.x once cygwin-1.7 is released, so maybe we can revisit this issue then. -- Chuck rxvt-unicode, ncurses, terminfo maintainer -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/