From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jack Duthen Newsgroups: gmane.emacs.bugs Subject: bug#9681: Broken behaviour of re-search-backward (.+ matching only a single character) Date: Fri, 16 Mar 2012 16:49:37 +0100 Message-ID: References: <8762k21o09.fsf@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: dough.gmane.org 1331914812 2360 80.91.229.3 (16 Mar 2012 16:20:12 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 16 Mar 2012 16:20:12 +0000 (UTC) To: 9681@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Mar 16 17:20:11 2012 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1S8Zsw-00025f-V6 for geb-bug-gnu-emacs@m.gmane.org; Fri, 16 Mar 2012 17:20:11 +0100 Original-Received: from localhost ([::1]:51771 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8Zsw-0000kG-8U for geb-bug-gnu-emacs@m.gmane.org; Fri, 16 Mar 2012 12:20:10 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:41292) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8Zsg-0000a9-5d for bug-gnu-emacs@gnu.org; Fri, 16 Mar 2012 12:19:56 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S8Zsb-0006AU-BA for bug-gnu-emacs@gnu.org; Fri, 16 Mar 2012 12:19:53 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:46848) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8Zsb-0006AI-5z for bug-gnu-emacs@gnu.org; Fri, 16 Mar 2012 12:19:49 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1S8aLq-0005tP-UG for bug-gnu-emacs@gnu.org; Fri, 16 Mar 2012 12:50:02 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: <8762k21o09.fsf@gmail.com> Resent-From: Jack Duthen Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 16 Mar 2012 16:50:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9681 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.133191659122610 (code B ref -1); Fri, 16 Mar 2012 16:50:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 16 Mar 2012 16:49:51 +0000 Original-Received: from localhost ([127.0.0.1]:53676 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1S8aLf-0005sY-4f for submit@debbugs.gnu.org; Fri, 16 Mar 2012 12:49:51 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:53084) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1S8Zti-0005EN-O1 for submit@debbugs.gnu.org; Fri, 16 Mar 2012 12:20:59 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S8ZQO-0000eF-3z for submit@debbugs.gnu.org; Fri, 16 Mar 2012 11:50:44 -0400 Original-Received: from lists.gnu.org ([208.118.235.17]:47375) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8ZQN-0000e8-Ml for submit@debbugs.gnu.org; Fri, 16 Mar 2012 11:50:39 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:50644) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8ZQH-0008Gh-J5 for bug-gnu-emacs@gnu.org; Fri, 16 Mar 2012 11:50:39 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S8ZPr-0000b4-Ib for bug-gnu-emacs@gnu.org; Fri, 16 Mar 2012 11:50:33 -0400 Original-Received: from mail-yx0-f169.google.com ([209.85.213.169]:62325) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S8ZPr-0000ZP-Bu for bug-gnu-emacs@gnu.org; Fri, 16 Mar 2012 11:50:07 -0400 Original-Received: by yenm8 with SMTP id m8so5119137yen.0 for ; Fri, 16 Mar 2012 08:50:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:x-google-sender-auth:message-id :subject:to:content-type; bh=Lm0UpwSb021vULNXlf1+oZ9SLtDuAEIaHKIpVQUJgA8=; b=w06y61RJ9z1GwTjEVLvYzXkpvljVpQNJJ3WC+mihLWoiGXdDOd1XxuhTis+uCKSyb/ ePnv1hZnt0vpKhU6kNp0mlAtzhMEudf+lo+y3nxHmRU+SX0oLFUas53N26mckrJADHNl GHfM/MZlvWz5MHWlufzDCuL6lezvbXW5xrGM8DNfqVRtRjiEBfNp1CJfK+1F8t7eMwop lS/SM+oEb4JKrY+5pFPv080oJTr3NPSz61tXbx/X5YWF1JTuNfWvUBQ4DUnQhx0p8v33 z8T8l+tjuNJqv2fc0Si1820MAeGrHWVz8G3hMRWsxLCdBndVtIvW9qf8g6mgl15PHgCy 82KA== Original-Received: by 10.182.41.6 with SMTP id b6mr3810206obl.10.1331912998187; Fri, 16 Mar 2012 08:49:58 -0700 (PDT) Original-Received: by 10.182.171.97 with HTTP; Fri, 16 Mar 2012 08:49:37 -0700 (PDT) X-Google-Sender-Auth: GFq6eNTA054om_0svXYR6DWrbqk X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Mailman-Approved-At: Fri, 16 Mar 2012 12:49:38 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-Received-From: 140.186.70.43 X-Mailman-Approved-At: Fri, 16 Mar 2012 12:20:08 -0400 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:57825 Archived-At: On Thu, Oct 06, 2011 at 08:57:09AM -0400, Stefan Monnier wrote: > re-search-* stops at the first character position that has a match. > And then it chooses the longest match at that position. Stepan wrote: > So, again: it definitely needs better documentation, > and IMO it also needs fixing. Hi! For my own imenu-prev-index-position-function, I needed a backward regexp search which would match something like ".+" the way one (like Stepan) can expect rather than the way it actually does (as described by Stefan). So, I just wrote a function to do that. The way it handles the COUNT variable is not as good as one could want but, as I almost never use it, I don't care. It's not very efficient but, since I can't notice the time it takes when used in the "*rescan" menu and since I can't imagine a better algorithm, it's ok for me. (defun jd-re-search-backward (regexp &optional bound noerror count) (let ((orig-point (point)) bom) (when (re-search-backward regexp bound noerror count) (setq bom (point)) ; should not be useful (goto-char (point-min)) (while (re-search-forward regexp orig-point 'noerror) ;; remember the last beginning of match (setq bom (match-beginning 0))) (goto-char bom) ;; set match data (erased by the last failing search) and return T (looking-at regexp)))) HTH )jack(