Re: [HACKERS] Should libedit be preferred to libreadline? - Mailing list pgsql-patches
From | Bruce Momjian |
---|---|
Subject | Re: [HACKERS] Should libedit be preferred to libreadline? |
Date | |
Msg-id | 200512031527.jB3FRbX08195@candle.pha.pa.us Whole thread Raw |
In response to | Re: [HACKERS] Should libedit be preferred to libreadline? ("Michael Paesold" <mpaesold@gmx.at>) |
Responses |
Re: [HACKERS] Should libedit be preferred to libreadline?
|
List | pgsql-patches |
Michael Paesold wrote: > Bruce Momjian wrote: > > > I wanted to distinguish libreadline from readline-functionality. Why is > > it Readline? > > "The GNU Readline Library" is usually referred to as "Readline", not > "libreadline". The offical name for "libedit" is really "Libedit". > > See e.g.: > http://sourceforge.net/projects/libedit/ > http://cnswww.cns.cwru.edu/~chet/readline/rltop.html > > IMHO libreadline does not sound good. OK, I call it GNU Readline now: --with-bonjour build with Bonjour support --with-openssl build with OpenSSL support --with-libedit-preferred prefer BSD Libedit over GNU Readline --without-readline do not use GNU Readline / BSD Libedit line editing --without-zlib do not use Zlib -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 Index: configure =================================================================== RCS file: /cvsroot/pgsql/configure,v retrieving revision 1.462 diff -c -c -r1.462 configure *** configure 5 Nov 2005 16:42:00 -0000 1.462 --- configure 3 Dec 2005 15:25:44 -0000 *************** *** 890,896 **** --with-pam build with PAM support --with-bonjour build with Bonjour support --with-openssl build with OpenSSL support ! --without-readline do not use Readline --without-zlib do not use Zlib --with-gnu-ld assume the C compiler uses GNU ld [default=no] --- 890,897 ---- --with-pam build with PAM support --with-bonjour build with Bonjour support --with-openssl build with OpenSSL support ! --with-libedit-preferred prefer BSD Libedit over GNU Readline ! --without-readline do not use GNU Readline / BSD Libedit line editing --without-zlib do not use Zlib --with-gnu-ld assume the C compiler uses GNU ld [default=no] *************** *** 3772,3777 **** --- 3773,3809 ---- # + # Prefer libedit + # + + + + # Check whether --with-libedit-preferred or --without-libedit-preferred was given. + if test "${with_libedit_preferred+set}" = set; then + withval="$with_libedit_preferred" + + case $withval in + yes) + : + ;; + no) + : + ;; + *) + { { echo "$as_me:$LINENO: error: no argument expected for --with-libedit-preferred option" >&5 + echo "$as_me: error: no argument expected for --with-libedit-preferred option" >&2;} + { (exit 1); exit 1; }; } + ;; + esac + + else + with_libedit_preferred=no + + fi; + + + + # # Readline # *************** *** 6490,6504 **** if test "$with_readline" = yes; then - echo "$as_me:$LINENO: checking for readline" >&5 - echo $ECHO_N "checking for readline... $ECHO_C" >&6 if test "${pgac_cv_check_readline+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else pgac_cv_check_readline=no pgac_save_LIBS=$LIBS ! for pgac_rllib in -lreadline -ledit ; do for pgac_lib in "" " -ltermcap" " -lncurses" " -lcurses" ; do LIBS="${pgac_rllib}${pgac_lib} $pgac_save_LIBS" cat >conftest.$ac_ext <<_ACEOF --- 6522,6540 ---- if test "$with_readline" = yes; then if test "${pgac_cv_check_readline+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else pgac_cv_check_readline=no pgac_save_LIBS=$LIBS ! if test x"$with_libedit_preferred" != x"yes" ! then READLINE_ORDER="-lreadline -ledit" ! else READLINE_ORDER="-ledit -lreadline" ! fi ! for pgac_rllib in $READLINE_ORDER ; do ! echo "$as_me:$LINENO: checking for ${pgac_rllib}" >&5 ! echo $ECHO_N "checking for ${pgac_rllib}... $ECHO_C" >&6 for pgac_lib in "" " -ltermcap" " -lncurses" " -lcurses" ; do LIBS="${pgac_rllib}${pgac_lib} $pgac_save_LIBS" cat >conftest.$ac_ext <<_ACEOF *************** *** 6557,6563 **** esac pgac_cv_check_readline="${pgac_rllib}${pgac_lib}" ! break 2 else echo "$as_me: failed program was:" >&5 --- 6593,6599 ---- esac pgac_cv_check_readline="${pgac_rllib}${pgac_lib}" ! break else echo "$as_me: failed program was:" >&5 *************** *** 6567,6590 **** rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done done LIBS=$pgac_save_LIBS fi if test "$pgac_cv_check_readline" != no ; then cat >>confdefs.h <<\_ACEOF #define HAVE_LIBREADLINE 1 _ACEOF - LIBS="$pgac_cv_check_readline $LIBS" - echo "$as_me:$LINENO: result: yes ($pgac_cv_check_readline)" >&5 - echo "${ECHO_T}yes ($pgac_cv_check_readline)" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 - echo "${ECHO_T}no" >&6 fi if test x"$pgac_cv_check_readline" = x"no"; then { { echo "$as_me:$LINENO: error: readline library not found If you have readline already installed, see config.log for details on the --- 6603,6631 ---- rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done + if test "$pgac_cv_check_readline" != no ; then + echo "$as_me:$LINENO: result: yes ($pgac_cv_check_readline)" >&5 + echo "${ECHO_T}yes ($pgac_cv_check_readline)" >&6 + break + else + echo "$as_me:$LINENO: result: no" >&5 + echo "${ECHO_T}no" >&6 + fi done LIBS=$pgac_save_LIBS fi if test "$pgac_cv_check_readline" != no ; then + LIBS="$pgac_cv_check_readline $LIBS" cat >>confdefs.h <<\_ACEOF #define HAVE_LIBREADLINE 1 _ACEOF fi + + if test x"$pgac_cv_check_readline" = x"no"; then { { echo "$as_me:$LINENO: error: readline library not found If you have readline already installed, see config.log for details on the Index: configure.in =================================================================== RCS file: /cvsroot/pgsql/configure.in,v retrieving revision 1.432 diff -c -c -r1.432 configure.in *** configure.in 5 Nov 2005 16:42:01 -0000 1.432 --- configure.in 3 Dec 2005 15:25:45 -0000 *************** *** 468,477 **** # # Readline # PGAC_ARG_BOOL(with, readline, yes, ! [ --without-readline do not use Readline]) # readline on MinGW has problems with backslashes in psql and other bugs. # This is particularly a problem with non-US code pages. # Therefore disable its use until we understand the cause. 2004-07-20 --- 468,484 ---- # + # Prefer libedit + # + PGAC_ARG_BOOL(with, libedit-preferred, no, + [ --with-libedit-preferred prefer BSD Libedit over GNU Readline]) + + + # # Readline # PGAC_ARG_BOOL(with, readline, yes, ! [ --without-readline do not use GNU Readline / BSD Libedit line editing]) # readline on MinGW has problems with backslashes in psql and other bugs. # This is particularly a problem with non-US code pages. # Therefore disable its use until we understand the cause. 2004-07-20 Index: config/programs.m4 =================================================================== RCS file: /cvsroot/pgsql/config/programs.m4,v retrieving revision 1.18 diff -c -c -r1.18 programs.m4 *** config/programs.m4 2 Dec 2004 20:04:19 -0000 1.18 --- config/programs.m4 3 Dec 2005 15:25:47 -0000 *************** *** 78,89 **** AC_DEFUN([PGAC_CHECK_READLINE], [AC_REQUIRE([AC_CANONICAL_HOST]) - AC_MSG_CHECKING([for readline]) AC_CACHE_VAL([pgac_cv_check_readline], [pgac_cv_check_readline=no pgac_save_LIBS=$LIBS ! for pgac_rllib in -lreadline -ledit ; do for pgac_lib in "" " -ltermcap" " -lncurses" " -lcurses" ; do LIBS="${pgac_rllib}${pgac_lib} $pgac_save_LIBS" AC_TRY_LINK_FUNC([readline], [[ --- 78,93 ---- AC_DEFUN([PGAC_CHECK_READLINE], [AC_REQUIRE([AC_CANONICAL_HOST]) AC_CACHE_VAL([pgac_cv_check_readline], [pgac_cv_check_readline=no pgac_save_LIBS=$LIBS ! if test x"$with_libedit_preferred" != x"yes" ! then READLINE_ORDER="-lreadline -ledit" ! else READLINE_ORDER="-ledit -lreadline" ! fi ! for pgac_rllib in $READLINE_ORDER ; do ! AC_MSG_CHECKING([for ${pgac_rllib}]) for pgac_lib in "" " -ltermcap" " -lncurses" " -lcurses" ; do LIBS="${pgac_rllib}${pgac_lib} $pgac_save_LIBS" AC_TRY_LINK_FUNC([readline], [[ *************** *** 98,117 **** esac pgac_cv_check_readline="${pgac_rllib}${pgac_lib}" ! break 2 ]]) done done LIBS=$pgac_save_LIBS ])[]dnl AC_CACHE_VAL if test "$pgac_cv_check_readline" != no ; then - AC_DEFINE(HAVE_LIBREADLINE, 1, [Define if you have a function readline library]) LIBS="$pgac_cv_check_readline $LIBS" ! AC_MSG_RESULT([yes ($pgac_cv_check_readline)]) ! else ! AC_MSG_RESULT(no) ! fi])# PGAC_CHECK_READLINE --- 102,126 ---- esac pgac_cv_check_readline="${pgac_rllib}${pgac_lib}" ! break ]]) done + if test "$pgac_cv_check_readline" != no ; then + AC_MSG_RESULT([yes ($pgac_cv_check_readline)]) + break + else + AC_MSG_RESULT(no) + fi done LIBS=$pgac_save_LIBS ])[]dnl AC_CACHE_VAL if test "$pgac_cv_check_readline" != no ; then LIBS="$pgac_cv_check_readline $LIBS" ! AC_DEFINE(HAVE_LIBREADLINE, 1, [Define if you have a function readline library]) ! fi ! ! ])# PGAC_CHECK_READLINE Index: doc/src/sgml/installation.sgml =================================================================== RCS file: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v retrieving revision 1.249 diff -c -c -r1.249 installation.sgml *** doc/src/sgml/installation.sgml 5 Nov 2005 00:04:04 -0000 1.249 --- doc/src/sgml/installation.sgml 3 Dec 2005 15:25:49 -0000 *************** *** 50,56 **** <para> In general, a modern Unix-compatible platform should be able to run <productname>PostgreSQL</>. ! The platforms that had received specific testing at the time of release are listed in <xref linkend="supported-platforms"> below. In the <filename>doc</> subdirectory of the distribution there are several platform-specific <acronym>FAQ</> documents you --- 50,56 ---- <para> In general, a modern Unix-compatible platform should be able to run <productname>PostgreSQL</>. ! The platforms that had received specific testing at the time of release are listed in <xref linkend="supported-platforms"> below. In the <filename>doc</> subdirectory of the distribution there are several platform-specific <acronym>FAQ</> documents you *************** *** 107,122 **** </indexterm> The <acronym>GNU</> <productname>Readline</> library (for ! comfortable line editing and command history retrieval) will be ! used by default. If you don't want to use it then you must ! specify the <option>--without-readline</option> option for ! <filename>configure</>. (On <productname>NetBSD</productname>, ! the <filename>libedit</filename> library is ! <productname>Readline</productname>-compatible and is used if ! <filename>libreadline</filename> is not found.) If you are using ! a package-based Linux distribution, be aware that you need both ! the <literal>readline</> and <literal>readline-devel</> packages, ! if those are separate in your distribution. </para> </listitem> --- 107,126 ---- </indexterm> The <acronym>GNU</> <productname>Readline</> library (for ! simple line editing and command history retrieval) is ! used by default. If you don't want to use it then you must specify ! the <option>--without-readline</option> option for ! <filename>configure</>. As an alternative, you can often use the ! BSD-licensed <filename>libedit</filename> library, originally ! developed on <productname>NetBSD</productname>. The ! <filename>libedit</filename> library is ! GNU <productname>Readline</productname>-compatible and is used if ! <filename>libreadline</filename> is not found, or if ! <option>--with-libedit-preferred</option> is used as an ! option to <filename>configure</>. If you are using a package-based ! Linux distribution, be aware that you need both the ! <literal>readline</> and <literal>readline-devel</> packages, if ! those are separate in your distribution. </para> </listitem> *************** *** 858,863 **** --- 862,877 ---- </varlistentry> <varlistentry> + <term><option>--with-libedit-preferred</option></term> + <listitem> + <para> + Favors the use of the BSD-licensed <application>libedit</> library + rather than GPL-licensed <application>Readline</>. + </para> + </listitem> + </varlistentry> + + <varlistentry> <term><option>--without-readline</option></term> <listitem> <para>
pgsql-patches by date: