|Subject:||Re: Retrieve a web page into buffer and insert some text into it.|
|Date:||Sat, 31 Jul 2010 00:32:16 +0800|
Thanks, Denny. I got the args working right, so it's basically working.
So now I'm on to another issue: the re-search-forward function. Again,
it's a syntax thing.
As the code suggests, I'm looking for the html opening body tag. That
text could be as simple as "<body>", but could also be:
I thought this would work:
(re-search-forward "<\s*[bB][oO][dD][yY]\s.*>" nil t)
but apparently "\s" is being treated as a literal and not as
representing [whitespace]. Also, it doesn't seem that elisp has a
function for doing a case-insensitive RE search.
On 07/29/2010 10:37 PM filebat Mark wrote:
> Hi Ken
> Yes, the parameter of CBARGS in url-retrieve function is confusing.
> I also tried this, but it complains of "wrong number of arguments".
> Let's wait to see whether others have any comment. I will spend some
> time, when I'm free.
> On Fri, Jul 30, 2010 at 4:01 AM, ken <address@hidden
> <mailto:address@hidden>> wrote:
> On 07/29/2010 11:22 AM filebat Mark wrote:
> > Hi Ken
> Hi, Denny. Thanks for replying
> > Where do you set the value of url in the second function?
> It needs to be passed from the first defun, but I don't know the syntax
> for doing that. The url-retrieve function is a little complex in terms
> of its arguments. I think it's stumped even the experts on this list.
> > One big enhancement shall be setting the coding system of the temp
> > buffer, based on the charset of the html page.
> Thanks for bringing that up. Yeah, I followed that on your thread. I
> might have to deal with that too. If, after I get the main part of my
> code working how I want it, I find it's having that problem, I'll review
> your emails (which I still have) and perhaps get back to you for
> some tips.
> > Regards,
> > Denny
> Back at ya!
> > On Thu, Jul 29, 2010 at 7:46 AM, ken <address@hidden
> > <mailto:address@hidden <mailto:address@hidden>>> wrote:
> > Lennart suggested I use a different defun, url-copy-file. I
> tried that
> > instead, but it didn't work. But then I went back to my
> original code,
> > moved a single parenthesis and... it worked... mostly. Here's
> the code:
> > ------------------------ start ---------------------------
> > load url.el
> > (defun www-edit-web-page (url)
> > "Retrieve web page and load into new buffer for editing.
> > Automatically insert after <body> tag URL, appropriately
> > URL."
> > (interactive "sLoad URL: ")
> > (with-temp-buffer (url-retrieve url 'edit-web-page)))
> > (defun edit-web-page (status)
> > "Switch to the buffer returned by `url-retreive'.
> > The buffer should contain the web page sent by the server."
> > (switch-to-buffer (current-buffer))
> > (goto-char 0)
> > (re-search-forward "<body.*>" nil t) ;go to end of <body
> ...> tag.
> > ;insert URL into page
> > (insert "\n<p>From: <a href="" url "\">" url "</a>\n
> > ------------------------ ende ---------------------------
> > This properly fetches the web page and loads it into a new,
> > buffer (exactly what I want), but the last line in the second
> > doesn't execute. The error messages are telling me that
> > doesn't know the value of "url". So how do I pass this
> variable-- with
> > its assignment from www-edit-web-page to edit-web-page? (I have a
> > guess, but i'm more a C/bash/blah/blah/blah guy, so elisp is a bit
> > mysterious.)
> > --
> > Thanks & Regards
> > Denny Zhang
> Thanks & Regards
> Denny Zhang
|[Prev in Thread]||Current Thread||[Next in Thread]|