diff options
| author | Lars Ingebrigtsen | 2018-04-14 17:14:01 +0200 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2018-04-14 17:14:01 +0200 |
| commit | e20d7381ee85611f9e1d1e6bef4fe2d7e2ae7780 (patch) | |
| tree | 9eb74901b854761d09426492e47de54f5e8e5ed4 | |
| parent | db71b3182778b66fad3865825777b06cc20b89a8 (diff) | |
| download | emacs-e20d7381ee85611f9e1d1e6bef4fe2d7e2ae7780.tar.gz emacs-e20d7381ee85611f9e1d1e6bef4fe2d7e2ae7780.zip | |
Make DISCARD-COMMENTS in `libxml-parse-{html,xml}-region' obsolete
* doc/lispref/text.texi (Parsing HTML/XML): Mention that
discard-comments is obsolete.
* lisp/xml.el (xml-remove-comments): New function (bug#27178).
* src/xml.c (Flibxml_parse_html_region): Clarify what
DISCARD-COMMENTS actually does, and say that the parameter is
obsolete.
(Flibxml_parse_xml_region): Ditto.
| -rw-r--r-- | doc/lispref/text.texi | 5 | ||||
| -rw-r--r-- | etc/NEWS | 8 | ||||
| -rw-r--r-- | lisp/xml.el | 13 | ||||
| -rw-r--r-- | src/xml.c | 14 |
4 files changed, 37 insertions, 3 deletions
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 9769043b729..e89bd0b7ef7 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi | |||
| @@ -4724,7 +4724,10 @@ The optional argument @var{base-url}, if non-@code{nil}, should be a | |||
| 4724 | string specifying the base URL for relative URLs occurring in links. | 4724 | string specifying the base URL for relative URLs occurring in links. |
| 4725 | 4725 | ||
| 4726 | If the optional argument @var{discard-comments} is non-@code{nil}, | 4726 | If the optional argument @var{discard-comments} is non-@code{nil}, |
| 4727 | then the parse tree is created without any comments. | 4727 | any top-level comment is discarded. (This argument is obsolete and |
| 4728 | will be removed in future Emacs versions. To remove comments, use the | ||
| 4729 | @code{xml-remove-comments} utility function on the data before you | ||
| 4730 | call the parsing function.) | ||
| 4728 | 4731 | ||
| 4729 | In the parse tree, each HTML node is represented by a list in which | 4732 | In the parse tree, each HTML node is represented by a list in which |
| 4730 | the first element is a symbol representing the node name, the second | 4733 | the first element is a symbol representing the node name, the second |
| @@ -116,6 +116,14 @@ indirectly, e.g., by checking that functions like | |||
| 116 | 'libxml-parse-html-region' return nil. | 116 | 'libxml-parse-html-region' return nil. |
| 117 | 117 | ||
| 118 | +++ | 118 | +++ |
| 119 | ** `libxml-parse-xml-region' and `libxml-parse-html' region take | ||
| 120 | a parameter that's called DISCARD-COMMENTS, but it really only | ||
| 121 | discards the top-level comment. Therefore this parameter is now | ||
| 122 | obsolete, and the new utility function `xml-remove-comments' can be | ||
| 123 | used to remove comments before calling the libxml functions to parse | ||
| 124 | the data. | ||
| 125 | |||
| 126 | +++ | ||
| 119 | ** New function 'fill-polish-nobreak-p', to be used in 'fill-nobreak-predicate'. | 127 | ** New function 'fill-polish-nobreak-p', to be used in 'fill-nobreak-predicate'. |
| 120 | It blocks line breaking after a one-letter word, also in the case when | 128 | It blocks line breaking after a one-letter word, also in the case when |
| 121 | this word is preceded by a non-space, but non-alphanumeric character. | 129 | this word is preceded by a non-space, but non-alphanumeric character. |
diff --git a/lisp/xml.el b/lisp/xml.el index 3bc8c08cb7b..6ce944ccb82 100644 --- a/lisp/xml.el +++ b/lisp/xml.el | |||
| @@ -1073,6 +1073,19 @@ The first line is indented with INDENT-STRING." | |||
| 1073 | (insert ?\n indent-string)) | 1073 | (insert ?\n indent-string)) |
| 1074 | (insert ?< ?/ (symbol-name (xml-node-name xml)) ?>)))) | 1074 | (insert ?< ?/ (symbol-name (xml-node-name xml)) ?>)))) |
| 1075 | 1075 | ||
| 1076 | ;;;###autoload | ||
| 1077 | (defun xml-remove-comments (beg end) | ||
| 1078 | "Remove XML/HTML comments in the region between BEG and END. | ||
| 1079 | All text between the <!-- ... --> markers will be removed." | ||
| 1080 | (save-excursion | ||
| 1081 | (save-restriction | ||
| 1082 | (narrow-to-region beg end) | ||
| 1083 | (goto-char beg) | ||
| 1084 | (while (search-forward "<!--" nil t) | ||
| 1085 | (let ((start (match-beginning 0))) | ||
| 1086 | (when (search-forward "-->" nil t) | ||
| 1087 | (delete-region start (point)))))))) | ||
| 1088 | |||
| 1076 | (provide 'xml) | 1089 | (provide 'xml) |
| 1077 | 1090 | ||
| 1078 | ;;; xml.el ends here | 1091 | ;;; xml.el ends here |
| @@ -271,7 +271,12 @@ DEFUN ("libxml-parse-html-region", Flibxml_parse_html_region, | |||
| 271 | 2, 4, 0, | 271 | 2, 4, 0, |
| 272 | doc: /* Parse the region as an HTML document and return the parse tree. | 272 | doc: /* Parse the region as an HTML document and return the parse tree. |
| 273 | If BASE-URL is non-nil, it is used to expand relative URLs. | 273 | If BASE-URL is non-nil, it is used to expand relative URLs. |
| 274 | If DISCARD-COMMENTS is non-nil, all HTML comments are discarded. */) | 274 | |
| 275 | If DISCARD-COMMENTS is non-nil, the top-level HTML comment is discarded. | ||
| 276 | |||
| 277 | This parameter is obsolete as of 27.1, and you should use the | ||
| 278 | `xml-remove-comments' function to strip comments before calling | ||
| 279 | this function if you don't want comments. */) | ||
| 275 | (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Object discard_comments) | 280 | (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Object discard_comments) |
| 276 | { | 281 | { |
| 277 | if (init_libxml2_functions ()) | 282 | if (init_libxml2_functions ()) |
| @@ -284,7 +289,12 @@ DEFUN ("libxml-parse-xml-region", Flibxml_parse_xml_region, | |||
| 284 | 2, 4, 0, | 289 | 2, 4, 0, |
| 285 | doc: /* Parse the region as an XML document and return the parse tree. | 290 | doc: /* Parse the region as an XML document and return the parse tree. |
| 286 | If BASE-URL is non-nil, it is used to expand relative URLs. | 291 | If BASE-URL is non-nil, it is used to expand relative URLs. |
| 287 | If DISCARD-COMMENTS is non-nil, all HTML comments are discarded. */) | 292 | |
| 293 | If DISCARD-COMMENTS is non-nil, the top-level XML comment is discarded. | ||
| 294 | |||
| 295 | This parameter is obsolete as of 27.1, and you should use the | ||
| 296 | `xml-remove-comments' function to strip comments before calling | ||
| 297 | this function if you don't want comments. */) | ||
| 288 | (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Object discard_comments) | 298 | (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, Lisp_Object discard_comments) |
| 289 | { | 299 | { |
| 290 | if (init_libxml2_functions ()) | 300 | if (init_libxml2_functions ()) |