Subject: bug#27963: [PATCH] Remove custom version parsing in epg-config.el

From: [email-masked]
Date: Fri, 04 Aug 2017 22:45:07 -0400

Severity: wishlist
Tags: patch

>From 9415fb046b260cfdb1f87aa396f652d916abd71e Mon Sep 17 00:00:00 2001
From: Noam Postavsky <[email-masked]>
Date: Sat, 22 Jul 2017 23:54:34 -0400
Subject: [PATCH] Remove custom version parsing functions from epg-config.el

* lisp/epg-config.el (epg-config--compare-version)
(epg-config--parse-version): Remove.
(epg-check-configuration): Use `version<=' instead.
---
 lisp/epg-config.el | 32 +++++++-------------------------
 1 file changed, 7 insertions(+), 25 deletions(-)

diff --git a/lisp/epg-config.el b/lisp/epg-config.el
index 7b963add88..6aed354ca4 100644
--- a/lisp/epg-config.el
+++ b/lisp/epg-config.el
@@ -210,34 +210,16 @@ (defun epg-configuration ()
   (declare (obsolete epg-find-configuration "25.1"))
   (epg-config--make-gpg-configuration epg-gpg-program))
 
-(defun epg-config--parse-version (string)
-  (let ((index 0)
-	version)
-    (while (eq index (string-match "\\([0-9]+\\)\\.?" string index))
-      (setq version (cons (string-to-number (match-string 1 string))
-			  version)
-	    index (match-end 0)))
-    (nreverse version)))
-
-(defun epg-config--compare-version (v1 v2)
-  (while (and v1 v2 (= (car v1) (car v2)))
-    (setq v1 (cdr v1) v2 (cdr v2)))
-  (- (or (car v1) 0) (or (car v2) 0)))
-
 ;;;###autoload
 (defun epg-check-configuration (config &optional minimum-version)
   "Verify that a sufficient version of GnuPG is installed."
-  (let ((entry (assq 'version config))
-	version)
-    (unless (and entry
-		 (stringp (cdr entry)))
-      (error "Undetermined version: %S" entry))
-    (setq version (epg-config--parse-version (cdr entry))
-	  minimum-version (epg-config--parse-version
-			   (or minimum-version
-			       epg-gpg-minimum-version)))
-    (unless (>= (epg-config--compare-version version minimum-version) 0)
-      (error "Unsupported version: %s" (cdr entry)))))
+  (let ((version (alist-get 'version config)))
+    (unless (stringp version)
+      (error "Undetermined version: %S" version))
+    (unless (version<= (or minimum-version
+                           epg-gpg-minimum-version)
+                       version)
+      (error "Unsupported version: %s" version))))
 
 ;;;###autoload
 (defun epg-expand-group (config group)
-- 
2.11.1