freebsd-ports/editors/nvi2/Makefile
Craig Leres 5ac4f1e502 editors/nvi2: Fix core dump when tags file pattern has a trailing '\'
If you create a tags file of a macro that ends with a '\' and tag
for it, vi dumps core. For example:

    zinc 76 % cat test.h
    #define LATIN2PLAIN(ch) (((u_char)ch) >= 0x80 ? \
       pgm_read_byte_far(pgm_get_far_address(latin2plain) + \
       (((u_char)ch) - 0x80)) : (isprint(ch) ? (ch) : '_'))
    zinc 77 % ctags test.h
    zinc 78 % vi -t LATIN2PLAIN
    Segmentation fault

The problem is that the loop variable is unsigned (size_t) and it
gets decremented twice: 1 -> 0 -> 4294967295

Apply the upstream patch to solve this:

    https://github.com/lichray/nvi2/pull/111
2022-11-02 23:41:34 -07:00

48 lines
1.1 KiB
Makefile

PORTNAME= nvi2
PORTVERSION= 2.2.0
DISTVERSIONPREFIX= v
PORTREVISION= 1
CATEGORIES= editors
MAINTAINER= leres@FreeBSD.org
COMMENT= Updated implementation of the ex/vi text editor
WWW= https://github.com/lichray/nvi2/
LICENSE= BSD3CLAUSE
USES= bdb cmake compiler:c11 ncurses
USE_GITHUB= yes
GH_ACCOUNT= lichray
CONFLICTS_INSTALL= nvi-m17n nvi
OPTIONS_DEFINE= DEBUG WIDECHAR ICONV
OPTIONS_DEFAULT= WIDECHAR ICONV
WIDECHAR_DESC= Enable wide-character support (UTF-8)
ICONV_DESC= Enable iconv support
DEBUG_CMAKE_BOOL= ENABLE_DEBUG
ICONV_CMAKE_BOOL= ENABLE_ICONV
ICONV_USES= iconv
WIDECHAR_CMAKE_BOOL= ENABLE_WIDECHAR
PLIST_FILES= bin/nex \
bin/nvi \
bin/nview \
man/man1/nex.1.gz \
man/man1/nvi.1.gz \
man/man1/nview.1.gz
do-install:
${INSTALL_PROGRAM} ${BUILD_WRKSRC}/nvi ${STAGEDIR}${PREFIX}/bin
${LN} ${STAGEDIR}${PREFIX}/bin/nvi ${STAGEDIR}${PREFIX}/bin/nex
${LN} ${STAGEDIR}${PREFIX}/bin/nvi ${STAGEDIR}${PREFIX}/bin/nview
${INSTALL_MAN} ${WRKSRC}/man/vi.1 \
${STAGEDIR}${MAN1PREFIX}/man/man1/nvi.1
${LN} -sf nvi.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/nex.1
${LN} -sf nvi.1 ${STAGEDIR}${MAN1PREFIX}/man/man1/nview.1
.include <bsd.port.mk>