]> git.eshelyaron.com Git - emacs.git/commitdiff
Set sgml-validate-command based on validator existence
authorSam Steingold <sds@gnu.org>
Mon, 11 Aug 2014 20:15:59 +0000 (16:15 -0400)
committerSam Steingold <sds@gnu.org>
Mon, 11 Aug 2014 20:15:59 +0000 (16:15 -0400)
* lisp/textmodes/sgml-mode.el (sgml-validate-command): Set depending on
the presence of known validators (tidy, (o)nsgmls).

lisp/ChangeLog
lisp/textmodes/sgml-mode.el

index 2d7597e197193c764e5b44667f8a214c931a1dcb..8e214ec1d66abeb50abfaaa57cc5f32c1e3cfec6 100644 (file)
@@ -1,3 +1,8 @@
+2014-08-11  Sam Steingold  <sds@gnu.org>
+
+       * textmodes/sgml-mode.el (sgml-validate-command): Set depending on
+       the presence of known validators (tidy, (o)nsgmls).
+
 2014-08-11  Ulf Jasper  <ulf.jasper@web.de>
 
        Newsticker: introduce `newsticker-treeview-date-format'. (Bug#17227)
index d2f1307b6c930a043eb231daf224e7f6783cbceb..39ac0621733afecebcd06882bd610857163d3095 100644 (file)
@@ -240,12 +240,21 @@ This takes effect when first loading the `sgml-mode' library.")
   "A table for mapping non-ASCII characters into SGML entity names.
 Currently, only Latin-1 characters are supported.")
 
-;; nsgmls is a free SGML parser in the SP suite available from
-;; ftp.jclark.com and otherwise packaged for GNU systems.
-;; Its error messages can be parsed by next-error.
-;; The -s option suppresses output.
-
-(defcustom sgml-validate-command "nsgmls -s" ; replaced old `sgmls'
+(defcustom sgml-validate-command
+  ;; prefer tidy because (o)nsgmls is often built without --enable-http
+  ;; which makes it next to useless
+  (cond ((executable-find "tidy")
+         ;; tidy is available from http://tidy.sourceforge.net/
+         "tidy --gnu-emacs yes -e -q")
+        ((executable-find "nsgmls")
+         ;; nsgmls is a free SGML parser in the SP suite available from
+         ;; ftp.jclark.com, replaced old `sgmls'.
+         "nsgmls -s")
+        ((executable-find "onsgmls")
+         ;; onsgmls is the community version of `nsgmls'
+         ;; hosted on http://openjade.sourceforge.net/
+         "onsgmls -s")
+        (t "Install (o)nsgmls, tidy, or some other SGML validator, and set `sgml-validate-command'"))
   "The command to validate an SGML document.
 The file name of current buffer file name will be appended to this,
 separated by a space."