From: JD Smith <jdsmith@as.arizona.edu>
Subject: Re: xml-parse-file and text properties
Date: Mon, 24 Jul 2006 09:44:51 -0700 [thread overview]
Message-ID: <pan.2006.07.24.16.44.51.188959@as.arizona.edu> (raw)
In-Reply-To: u1wsegfux.fsf@gnu.org
On Sat, 22 Jul 2006 12:15:34 +0300, Eli Zaretskii wrote:
>> From: JD Smith <jdsmith@as.arizona.edu>
>> Date: Fri, 21 Jul 2006 14:45:27 -0700
>>
>> This is similar to the improved method Richard proposed yesterday
>> (insert-file-contents using a temporary buffer). Remarkably enough
>> (and highly surprising to me), even inserting the XML file contents in
>> a temporary buffer is enough to get '(fontified nil) text properties
>> added all over
>
> I don't see anything surprising here, since font-lock is now ON by
> default.
>
> You should be able to overcome this if you turn off font-lock-mode in
> the temporary buffer, before inserting the file's contents.
This was my mistake. In fact, with Richard's formulation:
(with-temp-buffer
(insert-file-contents file)
(xml-parse-region (point-min)
(point-max)
(current-buffer)
parse-dtd parse-ns))))
no font-lock text properties ever get added to the temporary buffer,
despite global-font-lock being on. It turns out I was pre-loading the
file into a buffer to prevent warnings about its read-only status, so
this code path was not being taken.
With the patch below, xml-parse-file only returns unwanted text
properties when a file is already loaded into a buffer. Should we
install it? This doesn't address the larger issue of whether
xml-parse-file should ever return text-properties, but it is simple and
sensible.
JD
*** xml.el 06 Feb 2006 07:33:36 -0700 1.53
--- xml.el 24 Jul 2006 09:40:07 -0700
***************
*** 161,187 ****
;;;###autoload
(defun xml-parse-file (file &optional parse-dtd parse-ns)
"Parse the well-formed XML file FILE.
! 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)))
!
(defvar xml-name-re)
(defvar xml-entity-value-re)
--- 161,182 ----
;;;###autoload
(defun xml-parse-file (file &optional parse-dtd parse-ns)
"Parse the well-formed XML file FILE.
! 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."
! (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)
(defvar xml-entity-value-re)
next prev parent reply other threads:[~2006-07-24 16:44 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-18 21:35 xml-parse-file and text properties JD Smith
2006-07-20 21:46 ` Richard Stallman
2006-07-20 22:11 ` JD Smith
2006-07-21 4:46 ` Richard Stallman
2006-07-21 6:35 ` Kenichi Handa
2006-07-21 7:24 ` Eli Zaretskii
2006-07-21 8:14 ` Kenichi Handa
2006-07-22 4:39 ` Richard Stallman
2006-07-21 16:13 ` Kevin Rodgers
2006-07-21 23:33 ` Kevin Rodgers
2006-07-20 21:46 ` Richard Stallman
2006-07-20 22:40 ` JD Smith
2006-07-21 12:55 ` Stefan Monnier
2006-07-21 17:34 ` JD Smith
2006-07-21 20:22 ` Stefan Monnier
2006-07-21 21:50 ` JD Smith
2006-07-22 15:49 ` Richard Stallman
2006-07-24 1:51 ` Kenichi Handa
2006-07-24 3:17 ` Stefan Monnier
2006-07-24 4:36 ` Kenichi Handa
2006-07-24 18:22 ` Richard Stallman
2006-07-24 20:38 ` Stuart D. Herring
2006-07-25 3:09 ` Richard Stallman
2006-07-25 14:00 ` Stefan Monnier
2006-07-25 22:15 ` Richard Stallman
2006-07-24 20:51 ` Stefan Monnier
2006-07-25 3:09 ` Richard Stallman
2006-07-21 20:52 ` Thien-Thi Nguyen
2006-07-21 21:45 ` JD Smith
2006-07-22 9:15 ` Eli Zaretskii
2006-07-24 16:44 ` JD Smith [this message]
2006-07-25 16:05 ` JD Smith
2006-07-25 16:27 ` Stefan Monnier
2006-07-25 19:16 ` JD Smith
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=pan.2006.07.24.16.44.51.188959@as.arizona.edu \
--to=jdsmith@as.arizona.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.