# HG changeset patch # User Stefan Monnier # Date 1178776935 0 # Node ID 8938fa90afdb2458ccf8d847eb30dc3e1da914a4 # Parent 4005ed72ef83725bb8cd53b19440736b8bc13cf0 (sgml-value): Fix handling of attributes which can take any number of values. diff -r 4005ed72ef83 -r 8938fa90afdb lisp/ChangeLog --- a/lisp/ChangeLog Thu May 10 06:00:48 2007 +0000 +++ b/lisp/ChangeLog Thu May 10 06:02:15 2007 +0000 @@ -1,3 +1,8 @@ +2007-05-10 Stefan Monnier + + * textmodes/sgml-mode.el (sgml-value): Fix handling of attributes which + can take any number of values. + 2007-05-09 Stefan Monnier * textmodes/tex-mode.el (tex-font-lock-keywords-2): Add citet and citep diff -r 4005ed72ef83 -r 8938fa90afdb lisp/textmodes/sgml-mode.el --- a/lisp/textmodes/sgml-mode.el Thu May 10 06:00:48 2007 +0000 +++ b/lisp/textmodes/sgml-mode.el Thu May 10 06:02:15 2007 +0000 @@ -45,12 +45,12 @@ :group 'languages) (defcustom sgml-basic-offset 2 - "*Specifies the basic indentation level for `sgml-indent-line'." + "Specifies the basic indentation level for `sgml-indent-line'." :type 'integer :group 'sgml) (defcustom sgml-transformation-function 'identity - "*Default value for `skeleton-transformation-function' in SGML mode." + "Default value for `skeleton-transformation-function' in SGML mode." :type 'function :group 'sgml) @@ -166,7 +166,7 @@ "Syntax table used to parse SGML tags.") (defcustom sgml-name-8bit-mode nil - "*When non-nil, insert non-ASCII characters as named entities." + "When non-nil, insert non-ASCII characters as named entities." :type 'boolean :group 'sgml) @@ -225,7 +225,7 @@ ;; The -s option suppresses output. (defcustom sgml-validate-command "nsgmls -s" ; replaced old `sgmls' - "*The command to validate an SGML document. + "The command to validate an SGML document. The file name of current buffer file name will be appended to this, separated by a space." :type 'string @@ -238,7 +238,7 @@ ;; I doubt that null end tags are used much for large elements, ;; so use a small distance here. (defcustom sgml-slash-distance 1000 - "*If non-nil, is the maximum distance to search for matching `/'." + "If non-nil, is the maximum distance to search for matching `/'." :type '(choice (const nil) integer) :group 'sgml) @@ -318,7 +318,7 @@ ("!doctype") ("!element") ("!entity")) - "*Alist of tag names for completing read and insertion rules. + "Alist of tag names for completing read and insertion rules. This alist is made up as ((\"tag\" . TAGRULE) @@ -348,15 +348,14 @@ ("!doctype" . "Document type (DTD) declaration") ("!element" . "Tag declaration") ("!entity" . "Entity (macro) declaration")) - "*Alist of tag name and short description." + "Alist of tag name and short description." :type '(repeat (cons (string :tag "Tag Name") (string :tag "Description"))) :group 'sgml) (defcustom sgml-xml-mode nil - "*When non-nil, tag insertion functions will be XML-compliant. -If this variable is customized, the custom value is used always. -Otherwise, it is set to be buffer-local when the file has + "When non-nil, tag insertion functions will be XML-compliant. +It is set to be buffer-local when the file has a DOCTYPE or an XML declaration." :type 'boolean :version "22.1" @@ -1010,8 +1009,10 @@ (insert alist ?\") (delete-backward-char 2))) (insert "=\"") - (when alist - (insert (skeleton-read '(completing-read "Value: " alist)))) + (if (cdr alist) + (insert (skeleton-read '(completing-read "Value: " alist))) + (when (null alist) + (insert (skeleton-read '(read-string "Value: "))))) (insert ?\")))) (defun sgml-quote (start end &optional unquotep)