Re: psql & readline & win32

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Magnus Hagander <mha(at)sollentuna(dot)net>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: psql & readline & win32
Date: 2006-02-13 04:01:24
Message-ID: 200602130401.k1D41OZ09565@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


Would the easiest solution be to make a patch to readline for Win32, and
only allow Win32 to link to readline if that patch is in readline, and
spit out a compile error if readline doesn't have that patch.

As far as the license, psql spits out a copyright notice as it starts.
It would be a shame to have to mention GPL in there.

Can we get any companies to fund a port of libedit to Win32? What does
readline have that Win32 native editing does not?

---------------------------------------------------------------------------

Magnus Hagander wrote:
> Getting started early this year, I've finally found a way around the
> issues with readline on win32. And it just took a little bit of google
> research and some testing.
>
>
> Recap of the problem: When running psql in a readline enabled mode on
> win32, any character requiring the AltGr key to generate will not work.
> In a lot of non-US locales, this includes the backslash key, which
> makes psql pretty darn unusable. The "fix" for this that went into 8.0
> is to disable readline on win32 pending a fix.
>
> Now, this can be fixed. And it's as simple as specifying an inputrc
> file. For backslash, this file needs to contain: "\M-\\": "\\"
>
> And then similarly for every other character requiring AltGr.
>
> Considering we have a fix, I think we need to re-enable readline on
> win32, and document this. However, there are a couple of things to
> decide on first:
>
> 1) Should it be made default? As it requires you to include this file
> to work, perhaps it should be set to non-default and specifically
> require a --with-readline? Also depends on th eanswers of a couple of
> questions below, I think.
>
> 2) Should we ship a file of standard bindings. We're not going to get
> it complete, but we could get some of the most common ones in europe
> at least (in sweden, this would for example include "\(at)?${[]}~|").
> Which would help people a lot.
>
> 3) How should the inputrc file be loaded. By default, you have to type
> SET INPUTRC="\some\where\inputrc" before you launch psql. But we could
> just as easily add: #if defined(WIN32) && defined(USE_READLINE)
> rl_read_init_file(our_path_to_inputrc); #endif to psql, making that
> step a whole lot easier. Especially for people who launch psql from
> the startmenu, and can't specify program-specific env vars.
>
> If we wanted to, we could even bind the keys using rl_parse_and_bind()
> or similar, but keeping it in a separate file makes it possible to edit
> it without recompiling, which is a definite plus.
>
>
> 4) Can we ship linked with readline in the installer? If not, can we
> ship a readline-linked binary at all, or just the source? Considering
> readline drags along the GPL, and not just the LGPL. (We can link either
> statically (default) or dynamically (separate package) to readline
> without problems, from what I can tell)
>
> I think we ship readline-linked RPMs, but I'm not sure about that?
>
> Now even if we can't ship readline linked binaries in the installer,
> it's still a good thing to provide the ability to build them, of course
> :-)
>
>
>
> //Magnus
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend
>

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message mani 2006-02-13 04:49:29 TODO Item - "Allow INSERT INTO tab (col1, ..) VALUES (val1, ..), (val2, ..)"
Previous Message Bruce Momjian 2006-02-13 03:42:31 Re: Why don't we allow DNS names in pg_hba.conf?