Commit Graph

241 Commits

Author SHA1 Message Date
jdolecek 74c6c9c204 Standard location of readline headers is /usr/include/readline/, so install
them there.
readline.h of libedit had to move to subdirectory 'readline', due to the way
BSD makefiles work; this is better than potentially fragile Makefile hacks
2001-01-05 21:15:49 +00:00
christos 2f3389ce5e consistently check for allocation failures and return -1, if we could not
get more memory.
2001-01-04 15:56:31 +00:00
christos ab7e5eaeb3 fix lint problems. 2001-01-04 15:55:53 +00:00
christos ed19c5fdb0 fix dumb typo in signal setup [from OpenBSD]
return -1 if alloc fails.
2001-01-04 15:55:03 +00:00
jdolecek a8b4a741c5 bump libedit minor - addition of rl_special_prefixes and rl_completion_append_character 2001-01-01 15:54:07 +00:00
jdolecek a85f9ca211 Add support for rl_completion_append_character and rl_special_prefixes.
This addresses lib/10513 by Giles Lean. Tested with PostgreSQL 7.0.2 psql.
2001-01-01 15:52:25 +00:00
jdolecek 939ac12578 history_tokenize(): fix one off-by-one bug
rl_complete_internal(): only replace the completed string with common part
	of possible matches if there is a possible completion
2001-01-01 11:03:16 +00:00
jdolecek 26ffe99b32 rl_display_match_list():
* pad entries shorter than 'max' by spaces correctly
	* fix off-by-one error which caused extra newline to be printed
	  if the list fit exactly to a screen
	* fix typo in _rl_qsort_string_compare, which caused the list to not
	  be sorted after all
2000-12-31 09:50:32 +00:00
jdolecek c860130fa0 term_beep(): if terminal supports both visual and ordinary bell, 'ring' both 2000-12-30 22:46:05 +00:00
jdolecek 2c10cd6472 bump libedit minor - added some public stuff for readline emulation 2000-12-23 22:07:16 +00:00
jdolecek 4acffb6417 completion_matches(): fix a off-by-one bug, fix variable name typo
implement displaying of possible completions, add hook to display the list
	on second rl_complete() invocation in row (typically, double <TAB>)

This addresses the completion part of lib/11581 by Richard Earnshaw.
2000-12-23 22:02:20 +00:00
jmc 50b6095c16 Alloc the keys structure with A_K_NKEYS as the multiplier rather than a
hardcoded value of 4.

A_K_NKEYS is currently 6 and this mismatch was stomping memory when
initializing the keys. (specifically gdb lost the exec file name if it was
a long path name).
2000-11-28 22:37:51 +00:00
christos ff59a2fadd - add support for home and end keys.
- improve debugging support
2000-11-11 22:18:57 +00:00
lukem cff6006e56 improve description of line syntax 2000-11-08 00:09:38 +00:00
sommerfeld acf589519a format string audit (silence warnings, save space) 2000-10-04 16:21:39 +00:00
lukem 6592086aee - generate ansi prototypes instead of using __P(). noted by christos
- fix a couple of comments
2000-09-04 23:45:18 +00:00
lukem e4b166ade0 convert to new style guide 2000-09-04 23:36:41 +00:00
lukem d30d584a91 convert to new style guide, which includes:
- ansi prototypes & features (such as stdargs)
- 8 space indents
2000-09-04 22:06:28 +00:00
lukem f5e2e0bfea history_def_set has a `const int' as a third arg, not an `int'.
picked up by the ultrix compiler, reported by simonb@ ...
2000-08-29 07:04:32 +00:00
mrg 7f59d8e891 use .tmp temporaries for generated files, to avoid having failed generated
output being used.
2000-08-15 12:01:40 +00:00
chuck c23199d5e1 make xxgdb and a gdb linked with libedit's readline emulation work
properly together.   xxgdb communicates with a gdb running on a pty
that it sets to -echo,-onlcr prior to forking the gdb process.
GNU readline preserves the -echo setting while libedit was undoing it
(setting the tty to a sane state and totally confusing xxgdb's parser).

this diff simply disables libedit if both readline emulation and
"stty -echo" are used/set.   that is enough to make xxgdb work once
again, but (XXX) this is not how GNU readline handles stty -echo (it
does not echo anything, but editing commands like ^A,^K, etc.
still work), so the readline emulation isn't perfect.

change reviewed by christos.
2000-08-02 03:36:39 +00:00
sommerfeld 01d7e8693f Only look in home directory for .editrc. (Discussed with Christos.) 2000-06-28 20:37:44 +00:00
lukem 78dc0c22fa * add -m option to makelist, which generates an mdoc table with the key
bindings and their descriptions
* manually add the output of 'sh ./makelist -m vi.c ed.c common.c' to
  a new section in editrc(5) called `EDITOR COMMANDS'
2000-06-21 03:21:28 +00:00
lukem fd194fea27 use strtol() (instead of atoi()) for sane error detection 2000-06-02 13:37:12 +00:00
christos cd8eacbb27 don't dump core on empty files. 2000-05-15 12:15:38 +00:00
soren 89c5a767f8 Fix doubled 'the's. 2000-03-13 22:55:05 +00:00
jdolecek 371967cec8 Fix _rl_compat_sub() to really honour 'globally' flag instead
of making the substitution always globally - affects
	_history_expand_command() and in turn history_expand()

All praise lint :)
2000-03-10 13:06:43 +00:00
jdolecek 833166a288 readline(): don't dereference NULL pointer if prompt is NULL
history_tokenize(): avoid stepping too far if backslash is last character
	on the passed string
update some comments

This makes gdb \ escaping work reliably and fixes lib/9511 by Assar Westerlund.
2000-03-10 12:55:15 +00:00
jdolecek 1f0ecc5ce4 include <stdlib.h> to get definition of malloc() and free(), so it's
possible to compile this file separately when debugging
2000-03-10 12:25:47 +00:00
chopps fe7be4eb7b el_insertstr takes a "const char *" not "char *" now as it doesn't modify
the argument.
2000-02-28 17:41:04 +00:00
mycroft 05fc321ebf Fix refresh glitches when using auto-margin. 2000-02-19 09:08:16 +00:00
christos 0dded5f65c Add support for automatic and magic margins (from tcsh)
This makes the rightmost column usable on all programs
that use editline.
2000-01-20 22:56:21 +00:00
christos 6c14e6198e PR/9244: Kevin Schoedel: libedit dumps bindings inconsistently 2000-01-19 18:31:10 +00:00
christos b2309a74ae PR/9243: Kevin Schoedel: libedit ignores repeat count 2000-01-19 18:30:19 +00:00
lukem 850279f2b9 missing , 1999-11-26 18:38:27 +00:00
lukem 1f11bc4cc8 instead of using a private coord_t global variable to store the size of the
rprompt, use the previously unused coord_t el->el_rprompt.p_pos
1999-11-13 11:32:12 +00:00
lukem 509864fa8f - implement printing a right-side prompt. code derived from similar work
I wrote for tcsh(1) three years ago.
- implement EL_RPROMPT, which allows a setting/getting of a function which
  returns a string to be used as the right-side prompt.
- improve HISTORY and AUTHORS sections in editline(3).
- bump shlib minor version for EL_RPROMPT.

XXX: due to an implementation issue, the rprompt has a 1 space gap before the
     edge of the logical screen. editline's logical screen is 1 space less
     than the full screen width, so there's a 2 space gap between the rprompt
     and the right end of the physical screen. i'm not concerned about this.
1999-11-12 01:05:07 +00:00
lukem e7d4e16bdf Fix pointer arithmatic (caused problems on LP64, including ftp dumping
core when `edit' was turned off then on).
Problem solved by David Huggins-Daines <dhd@eradicator.org>
1999-10-24 04:04:13 +00:00
jdolecek 7c714abab4 don't assume locales are not working - it may not be the case
re_refresh(): cast the character passed to re_addc() to unsigned char,
        so we don't end up calling isprint() with negative value
        when chars are signed and character value is >= 128
1999-10-15 17:01:19 +00:00
lukem 332ab876a2 update post change to return value of tputs() third argument 1999-10-04 23:24:04 +00:00
lukem 65c98beb1a remove some lint 1999-10-04 23:23:21 +00:00
lukem 9962715a2e apparantly need <unistd.h> for portable way of getting _POSIX_VDISABLE 1999-09-26 14:37:47 +00:00
lukem 8494e0e800 * in el_source():
- don't reopen fp if it was successfully opened in a previous check
	- use strlcpy()/strlcat() instead of snprintf() to build a pathname,
	  since the former are more portable to other systems than the latter
* whitespace fascism
1999-09-21 00:55:55 +00:00
lukem 250f2917a0 fix id header... 1999-09-21 00:07:03 +00:00
lukem 1dbb61e63e more whitespace fascism 1999-09-20 23:43:42 +00:00
sommerfeld 15b8b5a50b minor tweak to previous fix: don't spuriously truncate final newline
under emacs.
1999-08-08 01:25:05 +00:00
sommerfeld 3e32553f0b Fix PR7685 (gdb under emacs prints spurious ^M and messes up terminal)
plus a few bogons noted along the way:
	1) Set EDIT_DISABLED if terminal type is emacs.
	2) fix bug in NO_TTY mode which caused it to not notice CR or LF
	3) implement EDIT_DISABLED within libedit to be somewhat like NO_TTY,
		except that a prompt is printed first.
1999-08-02 01:01:55 +00:00
christos 9453db6b2d Use LIBEDITDIR instead of CURDIR so we can use that Makefile to compile
libedit from another directory.
1999-07-06 14:10:21 +00:00
lukem 87c1844d34 don't try to free() something allocated with alloca() in rl_complete_internal().
(noticed while using completion in gdb and getting inundated with warnings from
the new free())
1999-07-03 11:55:51 +00:00
simonb 1528b77539 More trailing white space. 1999-07-02 15:14:07 +00:00
christos c3f0ff041d Make this compile under linux 1999-06-12 18:58:05 +00:00
garbled 38c96853cf Last of the .Os cleanups. .Os is defined in the tmac.doc-common file,
so we shouldn't override it with versions in the manpages.  Wheee!
1999-03-22 19:44:33 +00:00
mycroft b59b039954 Add missing , in he_errlist[] initializer. Yay lint. 1999-03-06 00:17:25 +00:00
itohy 0abd947255 Add minimal dependency to make "make depend" optional
after cleandir.
1999-03-04 11:45:22 +00:00
abs edc1a24a56 Add a note to update src/distrib/sets/lists/base/shl.*, and add a missing
RCS Id.
1999-02-25 08:02:19 +00:00
christos 468bdc50fc PR/6957: Wolfgang Helbig: libedit swaps CR and LF control chars. 1999-02-07 14:34:05 +00:00
christos 571b899770 delint. 1999-02-05 20:53:49 +00:00
christos 84ee55f13e Encode the history lines using strvis() before saving it. Fixes gdb history
problem with missing newlines.
1999-02-05 20:52:23 +00:00
christos 0d4dea9233 M-X:<enter> core-dumped. 1999-02-05 20:38:01 +00:00
kleink 3ed4fcf61e In userland, pull in <errno.h> instead of <sys/errno.h> for the declaration
of errno.
1999-01-11 22:39:59 +00:00
lukem ddfeeeebfd fix history() prototype. (d@openbsd.org) 1999-01-05 22:46:22 +00:00
kleink 37709da758 Change multiple inclusion protection symbol name to NetBSD convention which
doesn't violate namespace rules.
1998-12-20 17:52:01 +00:00
christos a6d4afba22 delint 1998-12-12 20:08:21 +00:00
christos a0be074d8b many problems; variables hidden by others, size_t <-> confusion 1998-12-12 19:54:16 +00:00
christos 61df62e6a8 - missing error message from array could cause core dump
- delint
1998-12-12 19:52:51 +00:00
cgd 244d803bb3 per e-mail with christos: history_next_event() should return -1, not NULL,
in case of error, just like history_prev_event() does.
1998-12-03 17:51:16 +00:00
christos 5e435627f6 fix core-dump caused by maps not being initialized before tty is called. 1998-09-28 11:00:05 +00:00
christos 622528ad62 Obey incoming tty char settings. 1998-09-27 18:04:12 +00:00
christos 016aaad0ba PR/6081: Wolfgang Helbig: search broken in vi mode. When patbuf was changed
to be dynamically allocated, sizeof was not changed appropriately.
1998-09-02 21:33:50 +00:00
lukem f87d250404 * add more checks for NULL pointers in passed arguments
* implement el_get(EditLine *, int op, void *result), which does the
  inverse of el_set()
* add EL_EDITMODE operation to el_set and el_get; if non zero editing
  is enabled (the default).
* add "edit  on | off" editrc command, which modifies EL_EDITMODE.
  users can now add '*:edit off' in ~/.editrc as an advisory to
  disable editing.

NOTE: at this time EL_EDITMODE is just an indication of the
state of the 'edit' command. It's up to the application to check
this after el_source() or el_parse() to determine if editing is still
required.
1998-07-29 02:26:00 +00:00
lukem a7d411eb83 documentation is always probably incomplete; don't make an issue of it 1998-06-08 10:56:43 +00:00
lukem fe1a16ac05 * implement CC_REFRESH_BEEP; as per CC_REFRESH but beep as well. this
is useful in completion when a partial completion is found
* remove entry in BUGS about el_parse(); that was fixed a while ago
1998-06-01 14:31:26 +00:00
christos 9f2cd5c8ff Show the simpler way. 1998-05-20 01:38:53 +00:00
christos eac8b13603 Add H_APPEND to simplify the interface. 1998-05-20 01:37:54 +00:00
christos 116d3cb1aa Fix for api changes. 1998-05-20 01:12:25 +00:00
christos e44dec2e4b Adjust for changes. 1998-05-20 01:05:27 +00:00
christos 34f34f3dd5 change M_* constants to MD_* to avoid clashes with <stream.h> 1998-05-20 01:04:56 +00:00
christos aa6425fdd4 remove term_beep hack. 1998-05-20 01:04:17 +00:00
christos a6c5308263 Bump! 1998-05-20 01:03:51 +00:00
christos 32cdebd7ac cast is*() arg to unsigned char 1998-05-20 01:03:30 +00:00
christos 96c915840c Adjust to the libedit api changes. 1998-05-20 01:03:06 +00:00
christos ccac6ba81c Add a function to be able to set the cursor to a given event number. 1998-05-20 01:02:38 +00:00
christos 4b8b8611ee - add extra argument to el_init
- fix history functions
- add el_beep()
1998-05-20 01:02:09 +00:00
christos 46573afdb6 cast is*() arg to unsigned char 1998-05-20 01:01:28 +00:00
christos ff2402b524 el_init takes a third stream argument and add el_beep. 1998-05-20 01:01:00 +00:00
christos 84c5ecc419 Don't print to stderr, but to the editline error stream. 1998-05-20 01:00:33 +00:00
mrg 53b970783b use int rather than char as an array index. 1998-03-30 01:30:14 +00:00
perry 312aca536f add LIBRARY section to man page 1998-02-05 18:45:17 +00:00
perry 0b7831a37b remove obsolete register declarations 1998-02-03 19:12:13 +00:00
perry 58a555d4a2 update to lite-2 (just an sccsid change) 1998-01-30 02:27:34 +00:00
lukem 63177b84ae in el_parse(), use a temporary buffer to store the program name when
comparing, preventing trashing of argv[0]. remove note in man page
warning of former behaviour.
1998-01-21 11:12:34 +00:00
lukem 78b73237b4 fix compile errors if FIONREAD is defined. noted by
David Holland <dholland@bordeaux.eecs.harvard.edu> in [bin/4012].
1998-01-21 10:12:22 +00:00
perry 93db5caa95 RCSID Police. 1998-01-05 07:41:06 +00:00
christos c49189ae41 Small optimization. Don't call isatty() on every invocation of el_gets, but
remember if the tty setup failed... Also trim the input line of trailing \r's.
1997-12-20 19:15:50 +00:00
thorpej c8160e6ecd Un-"protect" term_beep() and rename it to __term_beep() to keep it out
of the user's namespace.  We need to do this because the readline
emulation functions call term_beep(), but readline isn't built using
the same (funky) namespace-protection method as the rest of libedit (it's
included like a normal library object).

Without this (fairly disgusting) hack, any program linked against
libedit will fail to link with an unresolved reference to term_beep()
if using an Elf toolchain (e.g. on the Alpha).

XXX Why this doesn't happen with NetBSD's a.out toolchain is a mystery
XXX to me, and I'm not sure I really want to know (given that a.out
XXX _should_ break the same way as Elf does in this case).
1997-11-13 04:48:48 +00:00
thorpej 285ed31737 Build readline.o into debugging versions of libedit, too. 1997-11-13 04:43:07 +00:00
thorpej 142a4c50c4 el_gets() takes an int *, not a size_t *. 1997-11-12 21:56:05 +00:00
lukem 94c2aad7df move description of history() return value 1997-11-09 00:13:52 +00:00
christos cc6167153e Make el_gets() work when the input is not a tty. 1997-10-26 20:19:48 +00:00
christos 40ea82f3d5 Make a link for history.h -> readline.h 1997-10-26 20:17:48 +00:00
christos bc7956dee1 Const de-poisoning :-( Unfortunately the default gnu readline does not
have full prototypes... With those changes, and a single line change in
gdb/top.c, gdb links with -ledit
1997-10-23 22:51:59 +00:00
christos f7de801d6c PR/4301: Jaromir Dolecek. Add gnu-readline wrapper for editline. 1997-10-23 22:24:09 +00:00
lukem 3431200c6f make this compile with the new libedit history() 1997-10-23 06:35:42 +00:00
lukem f72bbf3895 use CPPFLAGS instead of CFLAGS, fix building of test 1997-10-23 03:26:27 +00:00
scottr 94cf433266 Add support for DTR/CTS flow control, from Bill Studenmund. 1997-10-20 08:07:47 +00:00
christos a7db9a7942 PR/4257: Jaromir Dolecek: history() has no generic error handling and isn't
reentrant. This changes the interface of the history function, so we need
a major number bump.
1997-10-14 15:05:49 +00:00
lukem 55c1036e4f use <termcap.h> instead of "termcap.h" (which was repository copied to libterm) 1997-10-13 16:09:01 +00:00
mrg 9d66e20f61 termcap.h moves to libterm. 1997-10-13 15:46:30 +00:00
christos e603ef8879 PR/4211: Dave Huang: don't lose VSTATUS and VEOL and any other characters that
are VDISABLED by default.
1997-10-09 19:16:04 +00:00
lukem 5542a7ca43 - define WARNS?=1 in the top-level Makefile.inc, and don't define
anywhere else.
- for now, override WARNS=0 in librpcsvc and libwrap, until they're
  cleaned up
- rcsid police

lib is now clean (except for librpcsvc and libwrap) on the i386, and
this should motivate the other ports to fix any other minor problems
that their compilers pick up that the i386 version doesn't.
1997-10-09 14:36:17 +00:00
jtc 990a11b9c6 Fix files using old TNF copyright notice 1997-07-30 23:53:32 +00:00
christos 54fac6850e Fix compiler warnings. 1997-07-06 18:25:21 +00:00
mycroft cc4a1553a1 Eliminate bogus redefinitions of standard targets. 1997-05-09 07:50:03 +00:00
christos 6e4fef04ce editrc -> editline 1997-04-24 20:20:31 +00:00
christos 753977f439 Handle properly the case where the last line in the sourced file does
not have a trailing '\n'. From Jeffrey C Honig.
1997-04-24 18:54:16 +00:00
christos 9593d7acb3 Return -1 if the terminal set operation resulted in dumb terminal settings. 1997-04-11 22:40:06 +00:00
christos 5b7cd46de3 Don't allow CSWTCH to interfere with CSUSP on __SVR4 systems. 1997-04-11 21:38:02 +00:00
christos eb54427340 Portability fixes:
__const		-> const
BADSIG		-> SIG_ERR
int flags	-> u_int flags
#if __STDC__	-> #ifdef __STDC__
1997-04-11 17:52:44 +00:00
christos 8259dd08d6 Makefile cleanups:
use INCS variable to install includes and FILES to install objects.
1997-03-24 22:11:48 +00:00
christos 3ff63340c3 Fix potential stack overflow; from Keith Bostic. 1997-03-20 16:42:32 +00:00
mrg 9cd5492c02 - convert unsafe strcpy(), strcat() and sprintf() to the `n' versions.
- some KNF.
1997-01-23 14:01:45 +00:00
lukem e69e9fbfa5 fix el_source() - a block needed braces around it (the indenting fooled me) 1997-01-17 01:03:33 +00:00
lukem 730be84dfc Implement CC_REDISPLAY, which (unlink CC_REFRESH) redraws the entire input
line (a la ^R). This is useful if the binding outputs information and
mucks up the input line. To be used in ``list-choices'' bindings (refer
to the ^D binding in csh when filec is set)
1997-01-14 04:17:22 +00:00
lukem 5785f63611 * document ^char and \ escape sequences
* when parsing ^char control chars, check the correct char when determining
  validity (previously, ^char was a NOP interpreted as the literal string
  because of this bug)
1997-01-11 09:57:06 +00:00
lukem 2543e3e651 RCSid police
editline first appeared in 4.4BSD not NetBSD1.0
1997-01-11 06:47:47 +00:00
lukem 258ebfd268 * in el_parse(), don't reference argv[0] if argc < 1 (return -1 instead)
* clarify return value of el_parse()
1997-01-11 06:26:30 +00:00
lukem b59d3eaf10 * add a man page for the editline routines
* add a man page describing editrc
* fix bugs in el_parse():
	* didn't execute command when program name matched (test reversed)
	* was checking against empty string instead of program name
	* after checks, command to run also pointed to empty string

[christos - the author of libedit - ok-ed the man pages in general (which I
 wrote from scratch by RTFS) as well as the bugfix]
1997-01-09 13:12:14 +00:00
thorpej 7f9ea0f2ed Use ${INSTALL}. 1996-10-18 05:45:01 +00:00
jtk ab5dfe6dc8 merge bugfix from 1.2 branch: use includes target for include files 1996-06-01 19:59:30 +00:00
christos 95b0e87b48 Added history load and save to file functions. 1995-10-15 19:42:05 +00:00
cgd ac2f3dfca6 be a bit more careful when splitting pathnames 1995-06-07 05:52:12 +00:00
christos 42c2892cc9 Fixed the key mapping code and reverted Charles' changes. 1995-04-29 20:44:00 +00:00
mycroft c1a3077d03 Remove dead code that can't possibly work. 1995-04-27 04:49:26 +00:00
mycroft 4d13217262 Trivial code ordering change. 1995-04-27 03:59:38 +00:00
mycroft e94c4d1ac4 Fix typo. 1994-10-07 11:40:53 +00:00
mycroft 5251d09ee1 Don't even *try* to print out the name of the termcap file; it's hidden
in libtermcap, and it normally uses the DB file anyway.
1994-10-02 04:27:28 +00:00
mycroft 5e53b2b629 Nuke bogus baud rate conversion code. 1994-10-02 04:23:08 +00:00
jtc 68523b5d88 Added code so that POSIX.2 regular expresion functions are used if REGEX
is defined, V8 regular expresion functions are used if REGEXP is defined,
and BSD regular expression functions are used if neither are defined.
And defined REGEX in sys.h so that programs using libedit don't have
to link with libcompat.
1994-10-02 02:10:48 +00:00
cgd b7cc0db103 fix for pr 420, from Christos. 1994-08-30 15:16:44 +00:00
cgd 139cb3d7c5 local 1994-05-06 06:17:44 +00:00
cgd 6dc2f1db52 libedit! 1994-05-06 06:01:42 +00:00