From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Lars Ingebrigtsen Newsgroups: gmane.emacs.bugs Subject: bug#46933: Possible bugs in filepos-to-bufferpos / bufferpos-to-filepos Date: Mon, 20 Jun 2022 02:59:52 +0200 Message-ID: <87r13kqhdj.fsf@gnus.org> References: <9cff0f8894f167925251@heytings.org> <87im53ny95.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33542"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) Cc: Eli Zaretskii , gregory@heytings.org, 46933@debbugs.gnu.org To: handa Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jun 20 03:01:12 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o35my-0008Xq-9h for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 20 Jun 2022 03:01:12 +0200 Original-Received: from localhost ([::1]:56808 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o35mx-0005dV-DD for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 19 Jun 2022 21:01:11 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55926) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o35mp-0005d3-04 for bug-gnu-emacs@gnu.org; Sun, 19 Jun 2022 21:01:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:59643) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o35mo-0005So-NH for bug-gnu-emacs@gnu.org; Sun, 19 Jun 2022 21:01:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1o35mo-0003ZY-K2 for bug-gnu-emacs@gnu.org; Sun, 19 Jun 2022 21:01:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Lars Ingebrigtsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 20 Jun 2022 01:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 46933 X-GNU-PR-Package: emacs Original-Received: via spool by 46933-submit@debbugs.gnu.org id=B46933.165568681413648 (code B ref 46933); Mon, 20 Jun 2022 01:01:02 +0000 Original-Received: (at 46933) by debbugs.gnu.org; 20 Jun 2022 01:00:14 +0000 Original-Received: from localhost ([127.0.0.1]:53537 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o35ly-0003Xr-9c for submit@debbugs.gnu.org; Sun, 19 Jun 2022 21:00:13 -0400 Original-Received: from quimby.gnus.org ([95.216.78.240]:56298) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o35lt-0003Vh-8b for 46933@debbugs.gnu.org; Sun, 19 Jun 2022 21:00:09 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnus.org; s=20200322; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date: References:Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=W4CHZmjwayLXKXXm2QXJ/J1WMdGmE+RYPPGKl/GAo4w=; b=S8zTDN+CDasgIVX6H9A24nEr7h hfkiYNoM6I8jwBj4l+NFZUe24p3J6Lf+xMUaYXkU8OikraVisIAGzR0OJwyT4ey1x7jx92JXuRK3U 3RJ/2vHcQix676UcU3aCYmn2/eeH1VcycxJxRgenDwb57h6Xy6S80NFMny54SbOi/w3A=; Original-Received: from [84.212.220.105] (helo=xo) by quimby.gnus.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o35li-0004L1-Ud; Mon, 20 Jun 2022 02:59:57 +0200 In-Reply-To: <87im53ny95.fsf@gnu.org> (handa@gnu.org's message of "Sun, 04 Apr 2021 01:12:06 +0900") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:234833 Archived-At: handa writes: > But it seems that the usage in Info-find-node-2 is: > a byte position in an existing file that may not be created by Emacs > > There's a case that they are different. The method I wrote in the > previous mail works only in the former case. And it seems that the > current implementation of filepos-to-bufferpos is the same because it > tries to get byte sequence by encode-coding-region. > > For the latter case, perhaps something like the following code works. > > ;; Return the buffer position correspoinding to the byte position > ;; FILEPOS in FILE provided that FILE is decoded by CODING-SYSTEM. > (defun temp (file filepos coding-system) > (with-temp-buffer > (set-buffer-multibyte nil) > (insert-file-contents-literally file) > (let ((full (decode-coding-region 1 (point-max) coding-system t)) > partial) > (while (and (setq partial (decode-coding-region 1 (1+ filepos) > coding-system t)) > (not (eq (compare-strings full 0 (length partial) > partial 0 (length partial)) > t))) > (setq filepos (1+ filepos))) > (1+ (length partial))))) > > If it is too slow, there are a few ways to make it faster. (I'm going through old bug reports that unfortunately weren't resolved at the time.) If I understand correctly, the suggestion here is to use this function in Info-find-node-2 instead of `filepos-to-bufferpos'? -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no