Home | History | Annotate | Download | only in libedit
History log of /src/lib/libedit/chared.h
RevisionDateAuthorComments
 1.30  22-May-2016  christos Stop the read module from poking the el_chared.c_macro data structure
currently belonging to the chared module. The read module does so
from three of its functions, while no other module uses the macro
data, not even the chared module itself. That's quite logical
because macros are a feature of input handling, all of which is
done by the read module, and none by the chared module. So move
the data into the read modules's own opaque data structure, struct
el_read_t.

That simplifies internal interfaces in several respects: The
semi-public chared.h has one fewer struct, one fewer #define, and
one fewer member in struct el_chared_t; all three move to one single
C file, read.c, and are now module-local. And the internal interface
function ch_reset() needs one fewer argument, making the code of many
functions in various modules more readable.

The price is one additional internal interface function, read_end(),
10 lines long including comments, called publicly from exactly one
place: el_end() in el.c. That's hardly an increase in complexity
since most other modules already have their *_end() function, read.c
was the odd one out not having one.

From Ingo Schwarze
 1.29  09-May-2016  christos s/protected/libedit_private/g
 1.28  11-Apr-2016  christos Char -> wchar_t from Ingo Schwarze.
 1.27  16-Feb-2016  christos More header cleanups from Ingo Schwarze.
 1.26  16-Feb-2016  christos more include file cleanup (Ingo Schwarze)
 1.25  16-Feb-2016  christos From Ingo Scharze:
Let "el.h" include everything needed for struct editline,
and don't include that stuff multiple times. That also improves
consistency, also avoids circular inclusions, and also makes it
easier to follow what is going on, even though not quite as nice.
But it seems like the best we can do...
 1.24  16-Feb-2016  christos cleanup inclusion of histedit.h (Ingo Schwarze)
 1.23  14-Feb-2016  christos From Ingo Schwarze:

As we have seen before, "histedit.h" can never get rid of including
the <wchar.h> header because using the data types defined there is
deeply ingrained in the public interfaces of libedit.

Now POSIX unconditionally requires that <wchar.h> defines the type
wint_t. Consequently, it can be used unconditionally, no matter
whether WIDECHAR is active or not. Consequently, the #define Int
is pointless.

Note that removing it is not gratuitious churn. Auditing for
integer signedness problems is already hard when only fundamental
types like "int" and "unsigned" are involved. It gets very hard
when types come into the picture that have platform-dependent
signedness, like "char" and "wint_t". Adding yet another layer
on top, changing both the signedness and the width in a platform-
dependent way, makes auditing yet harder, which IMHO is really
dangerous. Note that while removing the #define, i already found
one bug caused by this excessive complication - in the function
re_putc() in refresh.c. If WIDECHAR was defined, it printed an
Int = wint_t value with %c. Fortunately, that bug only affects
debugging, not production. The fix is contained in the patch.

With WIDECHAR, this doesn't change anything. For the case without
WIDECHAR, i checked that none of the places wants to store values
that might not fit in wint_t.

This only changes internal interfaces; public ones remain unchanged.
 1.22  18-Jun-2014  christos Don't depend on weak aliases to define the vi "alias" expansion function,
provide an API instead to set it.
 1.21  28-Aug-2010  christos branches: 1.21.12; 1.21.22;
setup a callback to be invoked on resize buffers so that readline can
reset rl_line_buffer which unfortunately some applications use it directly.
 1.20  15-Apr-2010  christos From Jess Thrysoee
- Fix wint_t to Int confusion
 1.19  30-Dec-2009  christos Wide character support (UTF-8) from Johny Mattsson; currently disabled.
 1.18  15-Feb-2009  christos pass lint on _LP64.
 1.17  06-Mar-2006  christos branches: 1.17.28;
Print the actual eofc, instead of ^D\b\b.
Change internal character decoding to prevent buffer oveflows.
 1.16  08-Aug-2005  christos Spelling mistakes and comment errors (from FreeBSD via Stefan Farfeleder; many
thanks)
 1.15  01-Aug-2005  christos Don't reset the macro strings each time we enter el_gets(), otherwise
el_push() is unusable programmatically.
 1.14  13-Aug-2004  mycroft Delete-previous-char and delete-next-char without an argument are not supposed
to modify the yank buffer in Emacs. Make it so.
 1.13  18-Oct-2003  christos change allocation policy in el_push to allocate the string itself.
fix issues with strdup.
 1.12  07-Aug-2003  agc Move UCB-licensed code from 4-clause to 3-clause licence.

Patches provided by Joel Baker in PR 22280, verified by myself.
 1.11  20-Nov-2002  christos Fix problem with previous patches that broke vi history.
- c_gets() was usually returning a length, but sometimes
one of the CC_xxx values (which are small +ve integers)!
- fixed c_gets() by putting a ' ' under the cursor.
From David Laight.
 1.10  15-Nov-2002  christos PR/18995: David Laight: libedit fixes for posix conformant sh

The posix 'sh' specification defines vi-mode editing quite tightly.
The netbsd libedit code (used by sh to do this) was missing several
features, there were also minor errors in others.

Compare netbsd sh to the definition available from:
http://www.opengroup.org/onlinepubs/007904975/utilities/sh.html
In particular the following were not supported:
U - undo all changes to line
| - goto column
Y - yank to end of line
y - yank
# - comment out current line
@ - take input from shell alias [1]
G - goto numbered line in history buffer
v - edit history line with vi
_ - append word from last input line
. - redo last command
Other minor changes have also been made.

[1] This needs the shell to define an appropriate routine to
return the text of the alias. There is no requirement that
such a function exist.
 1.9  27-Oct-2002  christos vi mode and memory fixes from david laight.
 1.8  18-Mar-2002  christos - constify; passes all gcc and lint strict checks.
- add config.h [Jason Evans], to create a portable version of libedit that
can be easily compiled on other OS's.
 1.7  03-Feb-2002  christos Fixed an __P remnant
 1.6  10-Jan-2001  jdolecek Enlarge editline buffers as needed to support arbitrary length lines.
This also addresses lib/9712 by Phil Nelson.
 1.5  04-Sep-2000  lukem convert to new style guide, which includes:
- ansi prototypes & features (such as stdargs)
- 8 space indents
 1.4  02-Jul-1999  simonb More trailing white space.
 1.3  12-Dec-1998  christos delint
 1.2  11-Jan-1997  lukem RCSid police
editline first appeared in 4.4BSD not NetBSD1.0
 1.1  06-May-1994  cgd branches: 1.1.1;
Initial revision
 1.1.1.1  06-May-1994  cgd libedit!
 1.17.28.1  13-May-2009  jym Sync with HEAD.

Third (and last) commit. See http://mail-index.netbsd.org/source-changes/2009/05/13/msg221222.html
 1.21.22.1  10-Aug-2014  tls Rebase.
 1.21.12.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.

RSS XML Feed