Commit Graph

185 Commits

Author SHA1 Message Date
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