unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: storm@cua.dk (Kim F. Storm)
Cc: rms@gnu.org, emacs-devel@gnu.org
Subject: Re: Tiny change to find-tag-default.
Date: Fri, 28 Jul 2006 02:09:31 +0200	[thread overview]
Message-ID: <m3fygmoais.fsf@kfs-l.imdomain.dk> (raw)
In-Reply-To: <44C21773.20709@gmx.at> (martin rudalics's message of "Sat, 22 Jul 2006 14:17:55 +0200")

martin rudalics <rudalics@gmx.at> writes:

> Wouldn't it make sense to rewrite the rest of `find-tag-default' too?
> In its current version it unnecessarily clobbers `match-data', requires
> a `condition-case' to handle errors in `forward-sexp', and has other
> tedious things like repeated forward-charing and re-searching.
>
> I'm using the attached version for approximately half a year and didn't
> encounter any problems so far.

Your code works fine for me too.

But I'm puzzled by the use of (forward-sexp -1) in the old code.  What
subtle effect did the author intend by using that?  Maybe to get to
the function name in a function call?  ... if that was the intention,
it doesn't seem to work.



>
> *** subr.el	Tue Jun  6 19:20:26 2006
> --- subr.el	Mon Jul 10 11:42:40 2006
> ***************
> *** 1949,1973 ****
>     "Determine default tag to search for, based on text at point.
>   If there is no plausible default, return nil."
>     (save-excursion
> !     (while (looking-at "\\sw\\|\\s_")
> !       (forward-char 1))
> !     (if (or (re-search-backward "\\sw\\|\\s_"
> ! 				(save-excursion (beginning-of-line) (point))
> ! 				t)
> ! 	    (re-search-forward "\\(\\sw\\|\\s_\\)+"
> ! 			       (save-excursion (end-of-line) (point))
> ! 			       t))
> ! 	(progn
> ! 	  (goto-char (match-end 0))
> ! 	  (condition-case nil
> ! 	      (buffer-substring-no-properties
> ! 	       (point)
> ! 	       (progn (forward-sexp -1)
> ! 		      (while (looking-at "\\s'")
> ! 			(forward-char 1))
> ! 		      (point)))
> ! 	    (error nil)))
> !       nil)))
>
>   (defun play-sound (sound)
>     "SOUND is a list of the form `(sound KEYWORD VALUE...)'.
> --- 1949,1973 ----
>     "Determine default tag to search for, based on text at point.
>   If there is no plausible default, return nil."
>     (save-excursion
> !     (let (from to bound)
> !       (when (or (and (save-excursion
> ! 		       (skip-syntax-backward "w_") (setq from (point)))
> ! 		     (save-excursion
> ! 		       (skip-syntax-forward "w_") (setq to (point)))
> ! 		     (> to from))
> ! 		;; Look between `line-beginning-position' and `point'.
> ! 		(and (setq bound (line-beginning-position))
> ! 		     (skip-syntax-backward "^w_" bound)
> ! 		     (> (setq to (point)) bound)
> ! 		     (skip-syntax-backward "w_")
> ! 		     (setq from (point)))
> ! 		;; Look between `point' and `line-end-position'.
> ! 		(and (setq bound (line-end-position))
> ! 		     (skip-syntax-forward "^w_" bound)
> ! 		     (< (setq from (point)) bound)
> ! 		     (skip-syntax-forward "w_")
> ! 		     (setq to (point))))
> !         (buffer-substring-no-properties from to)))))
>
>   (defun play-sound (sound)
>     "SOUND is a list of the form `(sound KEYWORD VALUE...)'.

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

  parent reply	other threads:[~2006-07-28  0:09 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-21  9:53 Tiny change to find-tag-default Kim F. Storm
2006-07-21 14:18 ` Drew Adams
2006-07-21 22:21   ` Kim F. Storm
2006-07-21 23:15     ` Drew Adams
2006-07-22  4:39 ` Richard Stallman
2006-07-22 12:17   ` martin rudalics
2006-07-23 17:34     ` Richard Stallman
2006-07-28 23:06       ` Kim F. Storm
2006-07-28  0:09     ` Kim F. Storm [this message]
2006-07-28  9:12       ` martin rudalics
2006-07-28 23:04 ` Kim F. Storm

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

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m3fygmoais.fsf@kfs-l.imdomain.dk \
    --to=storm@cua.dk \
    --cc=emacs-devel@gnu.org \
    --cc=rms@gnu.org \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).