From 0d5385ad2b7873746b91526e4b19c783584359c2 Mon Sep 17 00:00:00 2001
From: Juan RP <xtraeme@voidlinux.eu>
Date: Mon, 27 Jul 2015 09:44:25 +0200
Subject: [PATCH] xbps-checkvers: fixed an endless loop with "reverts"
 containing extra alphanumeric chars.

---
 NEWS                                   |  4 ++++
 bin/xbps-checkvers/main.c              |  2 +-
 tests/xbps/xbps-checkvers/checkvers.sh | 31 +++++++++++++++++++++++++++++++
 3 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/bin/xbps-checkvers/main.c b/bin/xbps-checkvers/main.c
index d74a157..896053c 100644
--- bin/xbps-checkvers/main.c
+++ bin/xbps-checkvers/main.c
@@ -533,7 +533,7 @@ check_reverts(const char *repover, const map_item_t reverts)
 		 * Check if it's the first character or the previous character is a
 		 * whitespace.
 		 */
-		if (p > sreverts && !isspace(p[-1]))
+		if (p > sreverts && !isalpha(p[-1]) && !isspace(p[-1]))
 			continue;
 		p += strlen(repover);
 		/*
diff --git a/tests/xbps/xbps-checkvers/checkvers.sh b/tests/xbps/xbps-checkvers/checkvers.sh
index 4b834e3..b6d3be2 100755
--- tests/xbps/xbps-checkvers/checkvers.sh
+++ tests/xbps/xbps-checkvers/checkvers.sh
@@ -301,6 +301,36 @@ EOF
 	atf_check_equal "$out" "pkgname: A repover: 1.1_1 srcpkgver: 1.0_1"
 }
 
+atf_test_case reverts_alpha
+
+reverts_alpha_head() {
+	atf_set "descr" "xbps-checkvers(8): test with reverts containing an alphanumeric character"
+}
+
+reverts_alpha_body() {
+	mkdir -p some_repo pkg_A void-packages/srcpkgs/fs-utils
+	touch pkg_A/file00
+	cat > void-packages/srcpkgs/fs-utils/template <<EOF
+pkgname=fs-utils
+reverts=v1.10_1
+version=1.10
+revision=1
+do_install() {
+	:
+}
+EOF
+	cd some_repo
+	xbps-create -A noarch -n fs-utils-1.10_1 -s "A pkg" ../pkg_A
+	atf_check_equal $? 0
+	xbps-rindex -d -a $PWD/*.xbps
+	atf_check_equal $? 0
+	cd ..
+	xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages
+	out=`xbps-checkvers -R $PWD/some_repo -D $PWD/void-packages`
+	atf_check_equal $? 0
+	atf_check_equal "$out" "pkgname: fs-utils repover: 1.10_1 srcpkgver: 1.10_1"
+}
+
 atf_init_test_cases() {
 	atf_add_test_case srcpkg_newer
 	atf_add_test_case srcpkg_newer_with_refs
@@ -313,4 +343,5 @@ atf_init_test_cases() {
 	atf_add_test_case srcpkg_missing_pkgver
 	atf_add_test_case srcpkg_missing_pkgverrev
 	atf_add_test_case reverts
+	atf_add_test_case reverts_alpha
 }
-- 
2.4.6

