delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-apps/2001/01/18/22:32:14

Mailing-List: contact cygwin-apps-help AT sourceware DOT cygnus DOT com; run by ezmlm
Sender: cygwin-apps-owner AT sourceware DOT cygnus DOT com
List-Subscribe: <mailto:cygwin-apps-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-apps/>
List-Post: <mailto:cygwin-apps AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-apps-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/lists.html#faqs>
Delivered-To: mailing list cygwin-apps AT sources DOT redhat DOT com
Message-ID: <3A67B56E.C01AF097@ece.gatech.edu>
Date: Thu, 18 Jan 2001 22:33:02 -0500
From: "Charles S. Wilson" <cwilson AT ece DOT gatech DOT edu>
X-Mailer: Mozilla 4.75 [en] (WinNT; U)
X-Accept-Language: en
MIME-Version: 1.0
To: cygwin-apps AT cygwin DOT com
Subject: Re: libreadline.dll.a missing functions.
References: <3A661B21 DOT AA1A4875 AT yahoo DOT com> <3A662B83 DOT C3906A81 AT ece DOT gatech DOT edu> <3A674EC8 DOT 489392B4 AT ece DOT gatech DOT edu> <3A679E0D DOT EA1C4C27 AT yahoo DOT com>

Earnie Boyd wrote:
> > > > I was testing configurations of bash-2.04 and decided to try the
> > > > cygreadline.dll.  

[snip]

> > rl_set_screen_size() is declared in rlprivate.h.  It is not supposed to
> > be an external entry point; that's why it is not exported in the dll.
> > It is defined in terminal.c but is not marked 'static' there, presumably
> > because other, internal-to-readline functions call it -- but that
> > non-static designation means that is is exposed in the static library
> > and in unix shared librarys.  Just not dll's.  However, I can't find
> > *any* other reference to that function, other than the two I just
> > mentioned.  So, exteranl apps are not supposed to use
> > rl_set_screen_size(), and readline itself never calls the function.  I
> > think rl_set_screen_size() is dead code.
> >
> > What package are you compiling that wants 'rl_set_screen_size()" ?
> >
> 
> See the first sentence. ;)

Doh!  

Well, I poked around in the bash source code, and sure enough -- it
looks like the bash people are calling functions they shouldn't.  From
rlprivate.h:

/* NOTE: Functions and variables prefixed with `_rl_' are
   pseudo-global: they are global so they can be shared
   between files in the readline library, but are not intended
   to be visible to readline callers. */

When I wrote the readline.def file, I deliberately did NOT include (a)
any var or function declared in rlprivate.h (except for
rl_untranslate_keyseq, which is ALSO declared in readline.h), nor (b)
any var or function beginning with _rl_.  

You had mentioned, Earnie, that there were other undefined functions. 
Can you give me the whole list?  I suspect that they also fall into the
categories above, and that they represent a bug in bash.  Either bash
should not call library-internal functions, or readline should export
those functions.

--Chuck

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019