From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Alex Branham Newsgroups: gmane.emacs.bugs Subject: bug#35413: [PATCH] Use lexical binding for ediff Date: Wed, 24 Apr 2019 07:55:20 -0500 Message-ID: <875zr3pnpj.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="160193"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: mu4e 1.2.0; emacs 27.0.50 To: 35413@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Apr 24 14:56:32 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.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hJHRv-000fZM-OG for geb-bug-gnu-emacs@m.gmane.org; Wed, 24 Apr 2019 14:56:31 +0200 Original-Received: from localhost ([127.0.0.1]:41293 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJHRu-0002Ec-QS for geb-bug-gnu-emacs@m.gmane.org; Wed, 24 Apr 2019 08:56:30 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:46989) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJHRY-0001qT-DQ for bug-gnu-emacs@gnu.org; Wed, 24 Apr 2019 08:56:10 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJHRV-0004cs-SZ for bug-gnu-emacs@gnu.org; Wed, 24 Apr 2019 08:56:08 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:41737) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJHRS-0004ac-Ho for bug-gnu-emacs@gnu.org; Wed, 24 Apr 2019 08:56:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hJHRS-0001JB-CH for bug-gnu-emacs@gnu.org; Wed, 24 Apr 2019 08:56:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Alex Branham Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 24 Apr 2019 12:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 35413 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.15561105464987 (code B ref -1); Wed, 24 Apr 2019 12:56:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 24 Apr 2019 12:55:46 +0000 Original-Received: from localhost ([127.0.0.1]:55278 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hJHRB-0001IN-IK for submit@debbugs.gnu.org; Wed, 24 Apr 2019 08:55:46 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:60758) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hJHR9-0001I7-Lg for submit@debbugs.gnu.org; Wed, 24 Apr 2019 08:55:44 -0400 Original-Received: from lists.gnu.org ([209.51.188.17]:39661) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hJHR3-0004Dr-Ch for submit@debbugs.gnu.org; Wed, 24 Apr 2019 08:55:37 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:46899) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJHR1-0001kD-EA for bug-gnu-emacs@gnu.org; Wed, 24 Apr 2019 08:55:37 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJHQz-00047q-1Q for bug-gnu-emacs@gnu.org; Wed, 24 Apr 2019 08:55:35 -0400 Original-Received: from mail-oi1-x231.google.com ([2607:f8b0:4864:20::231]:36146) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJHQv-00044x-J9 for bug-gnu-emacs@gnu.org; Wed, 24 Apr 2019 08:55:30 -0400 Original-Received: by mail-oi1-x231.google.com with SMTP id l203so14169320oia.3 for ; Wed, 24 Apr 2019 05:55:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=user-agent:from:to:subject:date:message-id:mime-version; bh=5xSJnIzDiRUkIQZHjlT8e5Lx3/kKLXsoFfrCfP4nmwY=; b=maPmyMVPXAoLwg4w/2k965IqQxOhn0Mewg4X7UTSuccaR1LKATQuOIANMpAjJy5S0u iaL9i+loO5UFtG3OBDdbejhH1jS4397UwxouywdZvCaOpsCrbU82SMx26Fw/DQlZIQTB VdJWQSTWCDMo4CkI1TvuW2KAxZhP2L9cMcPNf2y8iAa4c9ikrOSZg9VAV82LS2X4ND7U JI1M6WPo14OQ7sBlrqv01jV9xMuJyoULrRyeP+1IPUztTEjU3xLRdoduJWlTo22LZZso mKYsLFBmdoic9cakNE4HROaxbcYEGYSLo4dXDG1OjunBa/LrW9d5VE5EGPUnlJKJfyrT ND4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:user-agent:from:to:subject:date:message-id :mime-version; bh=5xSJnIzDiRUkIQZHjlT8e5Lx3/kKLXsoFfrCfP4nmwY=; b=gG8fbeDkEHfikkXkQ4C0DQg1Xn1LxYE1nL6WdqaQ4dLLsXUa4z8r9vYEfiCLKuHa4C m8eV/dBVmzZKSAwL7tig/a74KSwVRVOIRX57cvHZ7DqpIoIYR8bU/302g46gkpEHB+I2 Lmb+C+jpgNi3B49EzZ5LJWNTR9MBGjMBwRpqoYmkXiLCkveVcglzc2t1FV3944HC3NgZ vSsDW6tmEJ0unZ7AaOS/5lxN5u4OnoSbFUfHgFZ6oT8V0Bvpkp0sU+PCj93F2pqHnLOw DiBVjP8BfiMj5+RrTUqmAqXnRa3iTdgpq/KfIyR48UTHeVxCeskt2ocAoI/VR4t08bhM WWYQ== X-Gm-Message-State: APjAAAVnLdYFhsCCehzxd107ebU/rmQH7jbs6kde3EkF2CBEouHQzdDV yfB26GxjHco3WACWFjDKudOxEQEe X-Google-Smtp-Source: APXvYqzUwSwmUbc9tnK2gvwGN/UXd0Dd8bvELyWnrQdUMUq0gyKNCyknwKf7RdGVvjvs90DB7+wL7A== X-Received: by 2002:aca:7215:: with SMTP id p21mr5439425oic.81.1556110526257; Wed, 24 Apr 2019 05:55:26 -0700 (PDT) Original-Received: from mars (cpe-70-114-192-208.austin.res.rr.com. [70.114.192.208]) by smtp.gmail.com with ESMTPSA id y129sm8271485oig.27.2019.04.24.05.55.22 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 24 Apr 2019 05:55:23 -0700 (PDT) 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.x 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:158177 Archived-At: --=-=-= Content-Type: text/plain Hello - I've attached a patch that converts ediff to use lexical-binding. I've been using it locally for a couple of weeks without noticing any issues, though I'm not a super-heavy ediff user. Thanks, Alex --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-Use-lexical-binding-for-ediff.patch >From 32d559ec60813eca85e88f77b89781c3d8b8dc26 Mon Sep 17 00:00:00 2001 From: Alex Branham Date: Wed, 10 Apr 2019 20:37:51 -0500 Subject: [PATCH] Use lexical binding for ediff * lisp/vc/ediff-diff.el: * lisp/vc/ediff-help.el: * lisp/vc/ediff-hook.el: * lisp/vc/ediff-init.el: * lisp/vc/ediff-merg.el: * lisp/vc/ediff-vers.el: * lisp/vc/ediff-wind.el: * lisp/vc/ediff-mult.el: Use lexical binding. (ediff-get-directory-files-under-revision): Remove unused jobname argument. (ediff-prepare-meta-buffer): Remove unused startup-hooks (ediff-mark-session-for-hiding): Reindent, remove unused lexical variable. * lisp/vc/ediff-ptch.el: Use lexical binding. (ediff-multi-patch-internal): Remove unused variable startup-hooks. * lisp/vc/ediff.el: Use lexical binding. (ediff-version): Increase. (ediff-date): Remove. (ediff-directories-internal): (ediff-directory-revisions-internal): Account for changes to function arguments. --- lisp/vc/ediff-diff.el | 2 +- lisp/vc/ediff-help.el | 3 ++- lisp/vc/ediff-hook.el | 2 +- lisp/vc/ediff-init.el | 2 +- lisp/vc/ediff-merg.el | 2 +- lisp/vc/ediff-mult.el | 26 ++++++++++++-------------- lisp/vc/ediff-ptch.el | 5 ++--- lisp/vc/ediff-vers.el | 2 +- lisp/vc/ediff-wind.el | 2 +- lisp/vc/ediff.el | 19 +++++++------------ 10 files changed, 29 insertions(+), 36 deletions(-) diff --git a/lisp/vc/ediff-diff.el b/lisp/vc/ediff-diff.el index a1d27af79d..f6b68bbd7d 100644 --- a/lisp/vc/ediff-diff.el +++ b/lisp/vc/ediff-diff.el @@ -1,4 +1,4 @@ -;;; ediff-diff.el --- diff-related utilities +;;; ediff-diff.el --- diff-related utilities -*- lexical-binding: t; -*- ;; Copyright (C) 1994-2019 Free Software Foundation, Inc. diff --git a/lisp/vc/ediff-help.el b/lisp/vc/ediff-help.el index 11c8b35bca..74a4068a7f 100644 --- a/lisp/vc/ediff-help.el +++ b/lisp/vc/ediff-help.el @@ -1,4 +1,4 @@ -;;; ediff-help.el --- Code related to the contents of Ediff help buffers +;;; ediff-help.el --- Code related to the contents of Ediff help buffers -*- lexical-binding: t; -*- ;; Copyright (C) 1996-2019 Free Software Foundation, Inc. @@ -30,6 +30,7 @@ ;; end pacifier (require 'ediff-init) +(defvar ediff-multiframe) ;; Help messages diff --git a/lisp/vc/ediff-hook.el b/lisp/vc/ediff-hook.el index 84122150ad..6ece7af5e6 100644 --- a/lisp/vc/ediff-hook.el +++ b/lisp/vc/ediff-hook.el @@ -1,4 +1,4 @@ -;;; ediff-hook.el --- setup for Ediff's menus and autoloads +;;; ediff-hook.el --- setup for Ediff's menus and autoloads -*- lexical-binding: t; -*- ;; Copyright (C) 1995-2019 Free Software Foundation, Inc. diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el index a74d6a8b4d..41871d4b7c 100644 --- a/lisp/vc/ediff-init.el +++ b/lisp/vc/ediff-init.el @@ -1,4 +1,4 @@ -;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff +;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff -*- lexical-binding: t; -*- ;; Copyright (C) 1994-2019 Free Software Foundation, Inc. diff --git a/lisp/vc/ediff-merg.el b/lisp/vc/ediff-merg.el index a511f4488f..e08d899bd0 100644 --- a/lisp/vc/ediff-merg.el +++ b/lisp/vc/ediff-merg.el @@ -1,4 +1,4 @@ -;;; ediff-merg.el --- merging utilities +;;; ediff-merg.el --- merging utilities -*- lexical-binding: t; -*- ;; Copyright (C) 1994-2019 Free Software Foundation, Inc. diff --git a/lisp/vc/ediff-mult.el b/lisp/vc/ediff-mult.el index 21f89168b3..39ed275897 100644 --- a/lisp/vc/ediff-mult.el +++ b/lisp/vc/ediff-mult.el @@ -1,4 +1,4 @@ -;;; ediff-mult.el --- support for multi-file/multi-buffer processing in Ediff +;;; ediff-mult.el --- support for multi-file/multi-buffer processing in Ediff -*- lexical-binding: t; -*- ;; Copyright (C) 1995-2019 Free Software Foundation, Inc. @@ -714,9 +714,8 @@ behavior." ;; we may visit them recursively. DIR1 is the directory to inspect. ;; MERGE-AUTOSTORE-DIR is the directory where to auto-store the results of ;; merges. Can be nil. -(defun ediff-get-directory-files-under-revision (jobname - regexp dir1 - &optional merge-autostore-dir) +(defun ediff-get-directory-files-under-revision (regexp dir1 + &optional merge-autostore-dir) (let (lis1 elt common auxdir1) (setq auxdir1 (file-name-as-directory dir1) lis1 (directory-files auxdir1 nil regexp)) @@ -760,7 +759,7 @@ behavior." auxdir1 nil nil merge-autostore-dir nil) (mapcar (lambda (elt) (ediff-make-new-meta-list-element - (expand-file-name (concat auxdir1 elt)) nil nil)) + (expand-file-name (concat auxdir1 elt)) nil nil)) common)) )) @@ -798,8 +797,8 @@ behavior." ;; Prepare meta-buffer in accordance with the argument-function and ;; redraw-function. Must return the created meta-buffer. (defun ediff-prepare-meta-buffer (action-func meta-list - meta-buffer-name redraw-function - jobname &optional startup-hooks) + meta-buffer-name redraw-function + jobname) (let* ((meta-buffer-name (ediff-unique-buffer-name meta-buffer-name "*")) (meta-buffer (get-buffer-create meta-buffer-name))) @@ -869,27 +868,27 @@ behavior." (define-key ediff-meta-buffer-map [menu-bar ediff-meta-mode ediff-hide-marked-sessions] '(menu-item "Hide marked" ediff-hide-marked-sessions - :help "Hide marked sessions. With prefix arg, unhide")) + :help "Hide marked sessions. With prefix arg, unhide")) (define-key ediff-meta-buffer-map [menu-bar ediff-meta-mode ediff-mark-for-hiding-at-pos] '(menu-item "Mark for hiding" ediff-mark-for-hiding-at-pos - :help "Mark session for hiding. With prefix arg, unmark")) + :help "Mark session for hiding. With prefix arg, unmark")) (define-key ediff-meta-buffer-map [menu-bar ediff-meta-mode ediff-mark-for-operation-at-pos] '(menu-item "Mark for group operation" ediff-mark-for-operation-at-pos - :help "Mark session for a group operation. With prefix arg, unmark")) + :help "Mark session for a group operation. With prefix arg, unmark")) (define-key ediff-meta-buffer-map [menu-bar ediff-meta-mode ediff-unmark-all-for-hiding] '(menu-item "Unmark all for hiding" ediff-unmark-all-for-hiding - :help "Unmark all sessions marked for hiding")) + :help "Unmark all sessions marked for hiding")) (define-key ediff-meta-buffer-map [menu-bar ediff-meta-mode ediff-unmark-all-for-operation] '(menu-item "Unmark all for group operation" ediff-unmark-all-for-operation - :help "Unmark all sessions marked for operation")) + :help "Unmark all sessions marked for operation")) (cond ((ediff-collect-diffs-metajob jobname) (define-key ediff-meta-buffer-map @@ -1583,8 +1582,7 @@ Useful commands: ;; Returns whether session was marked or unmarked (defun ediff-mark-session-for-hiding (info unmark) - (let ((session-buf (ediff-get-session-buffer info)) - ignore) + (let (ignore) (cond ((eq unmark 'mark) (setq unmark nil)) ((eq (ediff-get-session-status info) ?H) (setq unmark t)) (unmark ; says unmark, but the marker is different from H diff --git a/lisp/vc/ediff-ptch.el b/lisp/vc/ediff-ptch.el index 4178b5a8c0..21a4d575f4 100644 --- a/lisp/vc/ediff-ptch.el +++ b/lisp/vc/ediff-ptch.el @@ -1,4 +1,4 @@ -;;; ediff-ptch.el --- Ediff's patch support +;;; ediff-ptch.el --- Ediff's patch support -*- lexical-binding: t; -*- ;; Copyright (C) 1996-2019 Free Software Foundation, Inc. @@ -842,8 +842,7 @@ you can still examine the changes via M-x ediff-files" ediff-patch-map)) "*Ediff Session Group Panel" 'ediff-redraw-directory-group-buffer - 'ediff-multifile-patch - startup-hooks)) + 'ediff-multifile-patch)) (ediff-show-meta-buffer meta-buf) )) diff --git a/lisp/vc/ediff-vers.el b/lisp/vc/ediff-vers.el index 664ae5ae94..049fdc880b 100644 --- a/lisp/vc/ediff-vers.el +++ b/lisp/vc/ediff-vers.el @@ -1,4 +1,4 @@ -;;; ediff-vers.el --- version control interface to Ediff +;;; ediff-vers.el --- version control interface to Ediff -*- lexical-binding: t; -*- ;; Copyright (C) 1995-1997, 2001-2019 Free Software Foundation, Inc. diff --git a/lisp/vc/ediff-wind.el b/lisp/vc/ediff-wind.el index 492ddd3417..559a20b023 100644 --- a/lisp/vc/ediff-wind.el +++ b/lisp/vc/ediff-wind.el @@ -1,4 +1,4 @@ -;;; ediff-wind.el --- window manipulation utilities +;;; ediff-wind.el --- window manipulation utilities -*- lexical-binding: t; -*- ;; Copyright (C) 1994-1997, 2000-2019 Free Software Foundation, Inc. diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el index 0dfbe2ea66..bfb09246a1 100644 --- a/lisp/vc/ediff.el +++ b/lisp/vc/ediff.el @@ -1,21 +1,18 @@ -;;; ediff.el --- a comprehensive visual interface to diff & patch +;;; ediff.el --- a comprehensive visual interface to diff & patch -*- lexical-binding: t; -*- ;; Copyright (C) 1994-2019 Free Software Foundation, Inc. ;; Author: Michael Kifer ;; Created: February 2, 1994 ;; Keywords: comparing, merging, patching, vc, tools, unix -;; Version: 2.81.4 +;; Version: 2.81.6 +(defconst ediff-version "2.81.6" "The current version of Ediff") ;; Yoni Rabkin contacted the maintainer of this ;; file on 20/3/2008, and the maintainer agreed that when a bug is ;; filed in the Emacs bug reporting system against this file, a copy ;; of the bug report be sent to the maintainer's email address. -(defconst ediff-version "2.81.5" "The current version of Ediff") -(defconst ediff-date "July 4, 2013" "Date of last update") - - ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify @@ -862,8 +859,7 @@ MERGE-AUTOSTORE-DIR is the directory in which to store merged files." (car dir-diff-struct) "*Ediff Session Group Panel" 'ediff-redraw-directory-group-buffer - jobname - startup-hooks)) + jobname)) (ediff-show-meta-buffer meta-buf) )) @@ -899,7 +895,7 @@ MERGE-AUTOSTORE-DIR is the directory in which to store merged files." (setq file-list (ediff-get-directory-files-under-revision - jobname regexp dir1 merge-autostore-dir)) + regexp dir1 merge-autostore-dir)) (setq startup-hooks ;; this sets various vars in the meta buffer inside ;; ediff-prepare-meta-buffer @@ -912,8 +908,7 @@ MERGE-AUTOSTORE-DIR is the directory in which to store merged files." file-list "*Ediff Session Group Panel" 'ediff-redraw-directory-group-buffer - jobname - startup-hooks)) + jobname)) (ediff-show-meta-buffer meta-buf) )) @@ -1546,7 +1541,7 @@ When called interactively, displays the version." (interactive-p) (called-interactively-p 'interactive)) (message "%s" (ediff-version)) - (format "Ediff %s of %s" ediff-version ediff-date))) + (format "Ediff %s" ediff-version))) ;; info is run first, and will autoload info.el. (declare-function Info-goto-node "info" (nodename &optional fork strict-case)) -- 2.21.0 --=-=-=--