From 882cb60d1a74b752827f176ef9ec0193fbc8fd29 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Mon, 24 Jul 2006 18:02:10 +0000 Subject: [PATCH] (xml-parse-file): Clean up, and use with-temp-buffer. --- lisp/xml.el | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/lisp/xml.el b/lisp/xml.el index 2ce3ec7b4f9..ca8f5bdc81b 100644 --- a/lisp/xml.el +++ b/lisp/xml.el @@ -165,22 +165,19 @@ If FILE is already visited, use its buffer and don't kill it. Returns the top node with all its children. If PARSE-DTD is non-nil, the DTD is parsed rather than skipped. If PARSE-NS is non-nil, then QNAMES are expanded." - (let ((keep)) - (if (get-file-buffer file) - (progn - (set-buffer (get-file-buffer file)) - (setq keep (point))) - (let (auto-mode-alist) ; no need for xml-mode - (find-file file))) - - (let ((xml (xml-parse-region (point-min) - (point-max) - (current-buffer) - parse-dtd parse-ns))) - (if keep - (goto-char keep) - (kill-buffer (current-buffer))) - xml))) + (if (get-file-buffer file) + (with-current-buffer (get-file-buffer file) + (save-excursion + (xml-parse-region (point-min) + (point-max) + (current-buffer) + parse-dtd parse-ns))) + (with-temp-buffer + (insert-file-contents file) + (xml-parse-region (point-min) + (point-max) + (current-buffer) + parse-dtd parse-ns)))) (defvar xml-name-re) -- 2.39.2