freebsd-nq/contrib/nvi
Alex Richardson 8ef98a8045 Allow building usr.bin/vi with MK_ASAN
We have to namespace the regex functions to avoid duplicate symbol errors.
This also ensures that vi doesn't define the libc reg* functions with
mismatched signatures.

ld: error: duplicate symbol: regcomp
>>> defined at sanitizer_common_interceptors.inc:7519 (/usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:7519)
>>>            asan_interceptors.o:(__interceptor_regcomp) in archive /usr/lib/clang/10.0.1/lib/freebsd/libclang_rt.asan-x86_64.a
>>> defined at regcomp.c
>>>            .../regex/regcomp.c.o:(.text+0x0)

ld: error: duplicate symbol: regerror
>>> defined at sanitizer_common_interceptors.inc:7543 (/usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:7543)
>>>            asan_interceptors.o:(__interceptor_regerror) in archive /usr/lib/clang/10.0.1/lib/freebsd/libclang_rt.asan-x86_64.a
>>> defined at regerror.c
>>>            .../regex/regerror.c.o:(.text+0x0)

ld: error: duplicate symbol: regexec
>>> defined at sanitizer_common_interceptors.inc:7530 (/usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:7530)
>>>            asan_interceptors.o:(__interceptor_regexec) in archive /usr/lib/clang/10.0.1/lib/freebsd/libclang_rt.asan-x86_64.a
>>> defined at regexec.c
>>>            .../regex/regexec.c.o:(.text+0x0)

ld: error: duplicate symbol: regfree
>>> defined at sanitizer_common_interceptors.inc:7553 (/usr/src/contrib/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc:7553)
>>>            asan_interceptors.o:(__interceptor_regfree) in archive /usr/lib/clang/10.0.1/lib/freebsd/libclang_rt.asan-x86_64.a
>>> defined at regfree.c
>>>            .../regex/regfree.c.o:(.text+0x0)

Committed upstream as https://github.com/lichray/nvi2/pull/92

Reviewed By:	bapt
Differential Revision: https://reviews.freebsd.org/D31050
2021-07-19 15:04:19 +01:00
..
catalog
cl
common
ex
files
man
regex
vi
.gitignore
CMakeLists.txt
LICENSE
README

This is version 2.2.0 (2020-08-01) of nex/nvi, a reimplementation of the ex/vi
text editors originally distributed as part of the Fourth Berkeley
Software Distribution (4BSD), by the University of California, Berkeley.

The directory layout is as follows:

    LICENSE ....... Copyright, use and redistribution information.
    README ........ This file.
    catalog ....... Message catalogs; see catalog/README.
    cl ............ Vi interface to the curses(3) library.
    common ........ Code shared by ex and vi.
    ex ............ Ex source code.
    files ......... Template files.
    man ........... Ex/vi documentation.
    regex ......... Modified regex library with wide character support.
    vi ............ Vi source code.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

o Nvi was written by Keith Bostic, and the last version is 1.79.  After that,

	Sven Verdoolaege added the iconv support and the DB3 locking.

	Jun-ichiro itojun Hagino developed the file encoding detection
	techniques in his nvi-m17n.

The following acknowledgments were written by Keith Bostic:

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
o This software is several years old and is the product of many folks' work.

	This software was originally derived from software contributed to
	the University of California, Berkeley by Steve Kirkendall, the
	author of the vi clone elvis.  Without his work, this work would
	have been far more difficult.

	IEEE POSIX 1003.2 style regular expression support is courtesy of
	Henry Spencer, for which I am *very* grateful.

	Elan Amir did the original 4BSD curses work that made it possible
	to support a full-screen editor using curses.

	George Neville-Neil added the Tcl interpreter, and the initial
	interpreter design was his.

	Sven Verdoolaege added the Perl interpreter.

	Rob Mayoff provided the original Cscope support.

o Many, many people suggested enhancements, and provided bug reports and
  testing, far too many to individually thank.

o From the original vi acknowledgements, by William Joy and Mark Horton:

	Bruce Englar encouraged the early development of this display
	editor.  Peter Kessler helped bring sanity to version 2's
	command layout.  Bill Joy wrote versions 1 and 2.0 through 2.7,
	and created the framework that users see in the present editor.
	Mark Horton added macros and other features and made the editor
	work on a large number of terminals and Unix systems.

o And...
	The financial support of UUNET Communications Services is gratefully
	acknowledged.