Commit Graph

59 Commits

Author SHA1 Message Date
christos 49334834f0 Coverity CID 793 uncovered a bunch of issues:
1. needfree = 0, should have been *needfree = 0
2. this function will not work with sp == NULL, since KEY_NAME dereferences it.
3. the if (0) {
  label:
  }
  code is disgusting.

Remove all the nasty and impossible code and fix 1.
2006-09-27 21:01:18 +00:00
christos 5d1b788b2a Coverity CID 4166: If GET_SPACE_RET can return a NULL pointer if len == 0.
Check for it.
2006-09-27 20:04:25 +00:00
simonb 7f2151a308 Fix previous Coverity "fix" so that it doesn't break vi completely. 2006-05-27 12:03:37 +00:00
jnemeth 243d02dab5 Coverity CID 3135: memory leak 2006-05-27 04:15:42 +00:00
he 136c962ff9 Initialize a local variable to appease -Wuninitialized.
Marked with XXXGCC for dreamcast (found while compiling for it).

Reviewed by lukem.
2005-06-07 13:26:26 +00:00
lukem 8125c19da2 appease gcc -Wuninitialized.
Each is marked with XXXGCC, because in some cases it looks like gcc
isn't correctly detecting that
	for ( ; xxx ; yyy)
		foo = 0;
always sets foo ...
2005-06-02 04:25:16 +00:00
lukem f01455eaa9 Don't attempt to dereference an uninitialized 'ep' pointer if we can't
make a temporary file to mail to the user.
Detected with gcc -Wuninitialized.
2005-06-02 04:03:03 +00:00
mycroft debe1484b9 Set FD_CLOEXEC on the recovery mail file. 2005-01-19 01:20:24 +00:00
dsl b7cb013096 Add (unsigned char) cast to ctype functions 2004-11-05 19:50:12 +00:00
aymeric 59b6c0290c flush the current line cache on every operation on the DB.
We can't keep a reference to data returned by libdb after a subsequent call to
any other libdb function on that DB.

Fixes a bug reported privately by Miho Taniyama (thanks!)... and hopefully
other hard-to-reproduce bugs.
2004-05-02 17:00:31 +00:00
aymeric 14069c4665 Don't fail if asked to recover a file for which there is no recovery file.
Just continue. This matches the man page, the POSIX standard, and even the
comment above that code!
From OpenBSD, via jmc@openbsd, via wiz@netbsd.
POSIX part confirmed by kleink@netbsd
:-)
2004-04-05 07:19:08 +00:00
aymeric 1bc3c9fb86 fix copying and freeing of options, patch from yamt@ in PR bin/25050. Thanks! 2004-04-05 06:59:15 +00:00
dsl 43d69358c2 Use the options.awk script to generate options_def.h (as in nvi distribution).
Modify options.awk to detect an incorrectly sorted options array.
NB: if GTAGS is undefined theses sources will still generate invalid programs.
2003-08-28 16:23:40 +00:00
mrg d47feee1f7 can't print size_t with %d 2003-08-28 01:55:17 +00:00
dsl f25691d97c Increase maximum terminal size from 500x500 to 4000x4000.
Add a 'matchchars' option to set the character pairs that % looks for.
Traditionally this was []{}() but someone added <> to nvi - probably
for editing html, but it is a pain for C. :set matchars=[]{}() will
restore the traditional behaviour.
If the 'open' and 'close' characters are the same (eg "" or '') then % will
alternate forwards and backwards searches.
Use common code to detect options that must have an even number of characters.
2003-08-27 15:15:13 +00:00
dsl 9290245176 Coorectly sort options table (it is searched with a binary chop). 2003-08-27 13:47:51 +00:00
christos b2ee3e403d improve on previous. only adjust the length when it exceed the string length. 2003-04-18 18:46:26 +00:00
christos c0b1f367f4 Recovery of vi files has been broken for a long while. This patch is a
stopgap measure to make vi recovery mostly functional on non-binary files.
The problem is that the db holding the recovery file can become corrupted,
in which case the data size of the line becomes huge. We use heuristics to
correct the size when we load a db in recovery mode. We could use a slightly
better heuristic (looking for ascii chars before correcting the length),
but it is not worth it. Another way would have been to trap the SEGV and
access data[len] and see if that worked, but that seemed exceedingly ugly.
2003-04-18 18:33:41 +00:00
wiz 1035faff1d writable, not writeable. 2003-01-06 20:30:28 +00:00
simonb 767793d996 Use an "int" instead of an "u_char" for a variable that is as a loop
control variable that is checked against against "<= 255".
2002-05-09 02:36:57 +00:00
pooka a68282c497 Fix FreeBSD PR #12801 in such a way that it doesn't create unfortunate
side-effects, like the ones described in bin/15891 and bin/16210.

patch from Sven Verdoolaege (nvi maintainer)
2002-04-15 08:31:42 +00:00
thorpej 7f192498d4 Use __RCSID() and __COPYRIGHT(). 2002-04-09 01:47:30 +00:00
simonb c9f9583821 Back out rev 1.6, per discussion with Aymeric Vincent and Antti Kantee.
Rev 1.6 fixes an obscure core-dump problem, but changes the long time
behaviour of cursor positioning when switching files.

"Fixes" PR bin/15891.
2002-03-25 00:13:56 +00:00
pooka bbd559bc7a Exit the file_init "recursion" only if we are actually already trying for
a second time. Checking for the plain temp filename was not enough,
as it may be set even though we are calling the function for the
first time.

fixes bin/15474 by Chuck Cranor
2002-02-09 19:33:53 +00:00
aymeric 9000224da7 Fix FreeBSD PR #12801, the way nvi 1.81.5 does it.
(vi dumped core when editing a new file after having edited another one)
2002-01-13 11:57:38 +00:00
yamt 1856278572 backout my miscommit.
pointed by Aymeric Vincent.
2001-10-20 22:30:31 +00:00
aymeric be5a16fc47 Fix a cut_line() caller not using the right value for (former) ENTIRE_LINE,
by defining the (newer) CUT_LINE_TO_EOL define in common/cut.h and using it
where due.

Bug reported on current-users by Masanori Kanaoka <kanaoka@ann.hi-ho.ne.jp>
diagnosed by Bang Jun-Young <bjy@mogua.org>,
quick-fixed by Robert Elz <kre@munnari.OZ.AU>.
2001-10-20 10:04:49 +00:00
yamt f8835551fd fix format string bugs.
pointed by Tomoaki IMAMURA in PR/14271.
2001-10-17 07:38:48 +00:00
aymeric 7ac97260c6 Fix a test condition for EOF. Together with previous commit in cut.c (1.4),
this fixes correctly PR #10367.
2001-09-09 11:03:02 +00:00
aymeric b88939bbba Define ENTIRE_LINE to be -1 instead of 0 since we may want to copy 0 characters.
(and use ENTIRE_LINE instead of 0 where appropriate)

This fixes a bug in the dw command with for example:

<cursor>
a b c

~
~
if you hit dw there, only the empty line would be killed but both the empty
line and the subsequent one would be pasted when asked for with P for example.
2001-09-09 11:01:09 +00:00
aymeric ca334636ac Prevent nvi from looping infinitely when it can't create a temporary file
because of a weird umask for example.
Make it exit instead.
This differs from the OpenBSD behaviour and is believed to be more correct.

Reported by Thomas Klausner in private e-mail, followed by a small discussion in
tech-userlevel a while ago.
2001-08-17 21:33:46 +00:00
aymeric 48c52c6884 ERR -> SYSERR when recdir does not exist.
This results in a more useful message for the user.
2001-05-13 12:03:00 +00:00
aymeric 52117b75a3 shutup most (non-intrusive) gcc warnings 2001-05-01 16:46:11 +00:00
aymeric 414f14c52d merge changes after import of nvi 1.79 2001-03-31 11:37:44 +00:00
lukem c2b84904ae use %ll_ instead of the less standard %q_ 2001-01-04 23:05:54 +00:00
is 135600f947 More format string cleanup by sommerfeld. 2000-10-11 14:46:00 +00:00
aymeric a803656ec6 Correct behavior of options octal, print and noprint
This fixes PR #6800
2000-06-19 20:09:37 +00:00
jdc 4a3a422fde Handle xterm's alternate screen when entering or leaving ex mode, e.g.
":!ls", so that the screen is not changed before the "Press any key"
message.  Taken from v1.79.
2000-05-31 19:49:23 +00:00
christos aab07b7582 Don't depend on BSD regexec extensions (REG_STARTEND)
Emulate it if it is not defined.
2000-03-17 02:23:17 +00:00
hubertf 56f2d188fc RCS ID police 1999-02-15 04:54:34 +00:00
abs 27134b4a8f Add Gtags support from shigio@wafu.netgate.net (PR 5978). Gtags are produced
by global (http://wafu.netgate.net/tama/unix/global.html)
1999-01-08 06:16:54 +00:00
mycroft af26acbc65 const poisoning. 1998-07-26 23:14:40 +00:00
mrg 32f519716b - use an array MAXHOSTNAMELEN+1 size to hold hostnames
- ensure hostname from gethostname() is nul-terminated in all cases
- minor KNF
- use MAXHOSTNAMELEN over various other values/defines
- be safe will buffers that hold hostnames
1998-07-06 06:56:06 +00:00
perry 3fe138c146 RCS Id Police. 1998-01-09 08:03:16 +00:00
lukem 3e8e744696 getopt returns -1 not EOF 1997-11-01 06:49:14 +00:00
mrg 050b6cd211 pull in core-dump fix from bostic (part of nvi 1.67) 1996-06-10 12:39:47 +00:00
mrg 19b430625c fix bug in wrapsearch/command line args. from bostic. 1996-06-10 12:28:53 +00:00
mrg 89b7050608 oops, forgot to remove this. 1996-06-02 04:41:52 +00:00
mrg 095b103c63 these files are either deleted (in nvi) or not necessary 1996-05-20 09:02:48 +00:00
mrg 12cc64d022 merge in nvi 1.66 1996-05-20 03:47:00 +00:00