emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/osm 8661010576: osm-mode: Bail out with an error if req


From: ELPA Syncer
Subject: [elpa] externals/osm 8661010576: osm-mode: Bail out with an error if requirements are missing
Date: Mon, 9 May 2022 07:57:50 -0400 (EDT)

branch: externals/osm
commit 86610105769729eda4c2609b4b724903bcdabb88
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    osm-mode: Bail out with an error if requirements are missing
---
 osm.el | 31 +++++++++++++++++++------------
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/osm.el b/osm.el
index 5daabf0374..299408197c 100644
--- a/osm.el
+++ b/osm.el
@@ -6,7 +6,7 @@
 ;; Maintainer: Daniel Mendler <mail@daniel-mendler.de>
 ;; Created: 2022
 ;; Version: 0.7
-;; Package-Requires: ((emacs "27.1") (compat "28.1"))
+;; Package-Requires: ((emacs "27.1"))
 ;; Homepage: https://github.com/minad/osm
 
 ;; This file is part of GNU Emacs.
@@ -41,7 +41,6 @@
 
 ;;; Code:
 
-(require 'compat)
 (require 'bookmark)
 (require 'dom)
 (eval-when-compile
@@ -747,19 +746,27 @@ Should be at least 7 days according to the server usage 
policies."
                   (* 60 60 24 osm-max-age))
            (delete-file file)))))))
 
+(defun osm--check-libraries ()
+  "Check that Emacs is compiled with the necessary libraries."
+  (let (req)
+    (unless (display-graphic-p)
+      (push "graphical display" req))
+    (dolist (type '(svg jpeg png))
+      (unless (image-type-available-p type)
+        (push (format "%s support" type) req)))
+    (unless (libxml-available-p)
+      (push "libxml" req))
+    ;; json-available-p is not available on Emacs 27
+    (unless (ignore-errors (equal [] (json-parse-string "[]")))
+      (push "libjansson" req))
+    (when req
+      (error "Osm: Please compile Emacs with the required libraries, %s needed 
to proceed"
+             (string-join req ", ")))))
+
 (define-derived-mode osm-mode special-mode "Osm"
   "OpenStreetMap viewer mode."
   :interactive nil
-  (unless (display-graphic-p)
-    (warn "osm: Graphical display is required"))
-  (dolist (type '(svg jpeg png))
-    (unless (image-type-available-p type)
-      (warn "osm: Support for %s images is missing" type)))
-  (unless (libxml-available-p)
-    (warn "osm: libxml is not available"))
-  ;; json-available-p is not available on Emacs 27
-  (unless (ignore-errors (equal [] (json-parse-string "[]")))
-    (warn "osm: libjansson is not available"))
+  (osm--check-libraries)
   (setq-local osm-server osm-server
               line-spacing nil
               cursor-type nil



reply via email to

[Prev in Thread] Current Thread [Next in Thread]