From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Wolfgang Scherer Newsgroups: gmane.emacs.bugs Subject: bug#37185: *** GMX Spamverdacht *** Re: bug#37185: 24.5.1: vc--add-line, vc--remove-regexp are sub-optimal Date: Tue, 27 Aug 2019 00:52:47 +0200 Message-ID: <12aa168d-54d2-93d9-ab7b-f35a5acaea13@gmx.de> References: <8d3275a0-149c-6f6a-ff22-c6ef27395188@gmx.de> <8336hoh1dx.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------5F332E83CEE151DE0480CC7B" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="45094"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 Cc: 37185@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Aug 27 00:57:23 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i2NvN-000Bb8-ME for geb-bug-gnu-emacs@m.gmane.org; Tue, 27 Aug 2019 00:57:22 +0200 Original-Received: from localhost ([::1]:58212 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i2NvJ-0001wQ-SY for geb-bug-gnu-emacs@m.gmane.org; Mon, 26 Aug 2019 18:57:18 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:53205) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i2NsB-0001OE-Li for bug-gnu-emacs@gnu.org; Mon, 26 Aug 2019 18:54:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i2NsA-0002Wi-Ha for bug-gnu-emacs@gnu.org; Mon, 26 Aug 2019 18:54:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:38473) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i2NsA-0002WZ-Ei for bug-gnu-emacs@gnu.org; Mon, 26 Aug 2019 18:54:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1i2NsA-0007VZ-Bb for bug-gnu-emacs@gnu.org; Mon, 26 Aug 2019 18:54:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Wolfgang Scherer Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 26 Aug 2019 22:54:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 37185 X-GNU-PR-Package: emacs Original-Received: via spool by 37185-submit@debbugs.gnu.org id=B37185.156685998728788 (code B ref 37185); Mon, 26 Aug 2019 22:54:02 +0000 Original-Received: (at 37185) by debbugs.gnu.org; 26 Aug 2019 22:53:07 +0000 Original-Received: from localhost ([127.0.0.1]:47294 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i2NrG-0007UG-Kf for submit@debbugs.gnu.org; Mon, 26 Aug 2019 18:53:06 -0400 Original-Received: from mout.gmx.net ([212.227.17.22]:59221) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i2NrC-0007Tg-OE for 37185@debbugs.gnu.org; Mon, 26 Aug 2019 18:53:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1566859971; bh=LnBGXo4Y49DHmnJY1WyiS/9EyrF4jKftWs2D/NSP6zc=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=S0LGmkJab4mIICXv4KN88j9nh3yZ2o/r7xOe4gsZ3c2xPKFsbhjtX4TWBzmTMoVpM IoP1SvJH2OT07lbn4nWNkF18iRyFWWV33jNgadvW78XybUeeUs2ZBXkKGsZm/5NSIy Z3/Z9NcGO1AHSF/hm3LJDJAFjqZM80tR7HhCUPLU= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from sheckley.simul.de ([91.11.54.160]) by mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LdKs1-1iTA262zqb-00iQqE; Tue, 27 Aug 2019 00:52:51 +0200 Original-Received: from [127.0.0.1] (sheckley.simul.de [127.0.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by sheckley.simul.de (Postfix) with ESMTPSA id 4D7251940B96; Tue, 27 Aug 2019 00:52:47 +0200 (CEST) Openpgp: preference=signencrypt Autocrypt: addr=Wolfgang.Scherer@gmx.de; prefer-encrypt=mutual; keydata= xsDiBEb46IgRBACMHOAb1KNo1Ylk+ebri+4R+bG4tyKlqBlrpv8D9/ZwRdXSGt+0DyCHoaAd 7KW7noHapLe87DunABOjKG4nqTGv+dRiWuUBlp3I4aYRFDVa3Da+XnIYkMHKqhK59VEHQCdp Km42nuLS7TS+n99at9YwzTG6VBdOlBKTlRFngOjVLwCg1RGXJ6X3EjS1FKCQeXziURVpWlkD /2zY6Ayhxi62TS84VjikXrrmjXykAAaAmMVEyKKYb9L5pGlqiZz9g/K9xw1EUoZTYuaufquD v4rAGR58K/3V4CYfJLEeshMWiaXHvMmlxMznlG16/um4MvmR8B3r+cx0nOPK1JBdD2qrkNnF Mw8FB+zouLFB4Gt2IUC5IlOmZ8OQA/4qdU53CItzWsCr9Nux4L0qUlRweSmCnV8xGQ2wP5XI MawIQxxREvSrsYDG8cNnYETMg4iQFfIktwAoxCJvuFAwIB6ZxHGF4FcEZm64CXc2u7CmFLqt rVhXhIfMz9oEYC+HhGczGamn9ofbGTFd2hJEtPcQgWNR4f7+aKknmi2+OM0fV29sZmdhbmcg U2NoZXJlciA8d3NAc3ctYW10LndzPsJhBBMRAgAhBQJYmz3YAhsjBQsJCAcCBhUICQoLAgQW AgMBAh4BAheAAAoJEIUCr3Gr112VZZoAoLTBSTp1qGuNhLdXY04iaWCMYmHCAJ4kHPtQ6nTw kEq9qCHgVgXDaY7wjs7ATQRG+OiIEAQAhi0wjcxvA4tychg2NQuwBIf9LX/46l+74+QbewCn a4a+mw/9s5KY In-Reply-To: <8336hoh1dx.fsf@gnu.org> Content-Language: de-DE X-Provags-ID: V03:K1:TjEqXQLz79fdY6AarU1nLT7ef9QylypDpMQTU/bqze6k5vKUS0j fBwDMzrtxWg6DHkhHqnDSjNuNODNxytAal4UEFbWzhk5p94VEcFosua9UbcAAFQ9bA563CJ jU7eAhFXu5cltQVvkMIn7hBV4ZEb1R3aDqEMB86v6x4WZqgJrVfrfL2SOJqtmQ0JARmoyEH O9+lokiwxXokoVYIsmdSg== X-UI-Out-Filterresults: notjunk:1;V03:K0:nhEv9IkRPbw=:IoMQ9ht0uRR3ZztzphQ1YW S/iCMg/n2pNv/cTTxl/Vw2k0XNfILNcfQ4Ry21Gg2GxXdJQlgalM2SuenP6SHUTZo55RjqJAI 3IdhmZzxCspUQHz2P0Fmnt6ELyk0RvjhOR2gknPCKZwoBNfxASj2UComFRHA1EouU3bfsJJnc CjjNSZZ7rlGr7vI3sK0tUqPkjxGejrBUSxZXa9RZptIPaP5bte0v2LlxLJDac9EtI93BItW+o n897xUZ77lN686UszftjEzBEcWAsmIIp1qLLDM15fe2250beA80KG/EDsJMMYisNOL5EOc/Qu K7DeiSLFd0l/zF+dz6gH3CCMEFjyu0P57rDCWiUpdhqrr04HS7DWV1LWsmPditODLhBq617qm lgyJhlu5hBISIEJYILxYoCWwEEDR/E37vwnQlYRw1VwDOoGD3UfffD88EdDpJ5/Sp0LXgbgqB o2WOrr9mp3mGvht35S1GEXp+tdx9tiPi/mVRGxCyZiU33L2dHKnQ1CfsUGGkIZxO4hkZr4yih 3ENvIlg8HkADSoz0dJPuPTe3bOTbQaSMGW83sbZH7L+CvFbAm8sljcR8Z/mixQNoR/rIuHn5W YdD5kTJNyZb8rgHD5pdxobx3avoPnBzRBfR8fnOo6wLlnURuGC9d8qhTjfVtvpaGai3lFySJJ yoB4q3B9fWSDrOKoVY7+r6DR/tfYUQFbXUSL7jFUpjWU6qTSHyYN/0u9c6b2xDTTeu+xkDUuc rl4waEhkYZ5R1aehJLKQ1C7x0/TQ+c03W22/m/9Y8qBRblADyzCu3JJjJxO9cptkmgiPDmaz X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 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" Xref: news.gmane.org gmane.emacs.bugs:165924 Archived-At: This is a multi-part message in MIME format. --------------5F332E83CEE151DE0480CC7B Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit > It is best to generate your patches using "git format-patch" and then > send them as an attachment, I think this will solve these problems, OK. I gave it a shot. Patch is attached. Since it is slightly different than the first submission, please use this new version for review. --------------5F332E83CEE151DE0480CC7B Content-Type: text/x-patch; name="0001-vc-add-line-vc-remove-regexp-enhanced.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0001-vc-add-line-vc-remove-regexp-enhanced.patch" =46rom cf4a651a2ae799efd3c11ac2ccb83fbb1f2683b5 Mon Sep 17 00:00:00 2001 From: Wolfgang Scherer Date: Tue, 27 Aug 2019 00:45:48 +0200 Subject: [PATCH] vc--add-line, vc--remove-regexp enhanced * lisp/vc/vc.el (vc--add-line): Create file, if it does not exist. Use existing buffer to avoid discrepancies with filesytem. Make sure, the file ends with a newline. (vc--remove-line): Do not Create file, if it does not exist. Use existing buffer to avoid discrepancies with filesytem. (bug#37185) Copyright-paperwork-exempt: yes =2D-- lisp/vc/vc.el | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index 4cac153..d97e7a2 100644 =2D-- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -1449,20 +1449,22 @@ Argument BACKEND is the backend you are using." ;; Subroutine for `vc-git-ignore' and `vc-hg-ignore'. (defun vc--add-line (string file) "Add STRING as a line to FILE." - (with-temp-buffer - (insert-file-contents file) + (with-current-buffer (find-file-noselect file) + (goto-char (point-min)) (unless (re-search-forward (concat "^" (regexp-quote string) "$") nil= t) (goto-char (point-max)) - (insert (concat "\n" string)) - (write-region (point-min) (point-max) file)))) + (unless (bolp) (insert "\n")) + (insert string "\n") + (save-buffer)))) (defun vc--remove-regexp (regexp file) "Remove all matching for REGEXP in FILE." - (with-temp-buffer - (insert-file-contents file) - (while (re-search-forward regexp nil t) - (replace-match "")) - (write-region (point-min) (point-max) file))) + (if (file-exists-p file) + (with-current-buffer (find-file-noselect file) + (goto-char (point-min)) + (while (re-search-forward regexp nil t) + (replace-match "")) + (save-buffer)))) (defun vc-checkout (file &optional rev) "Retrieve a copy of the revision REV of FILE. =2D- 2.7.4 --------------5F332E83CEE151DE0480CC7B--