X-Loop: help-debbugs@HIDDEN Subject: bug#31601: Dired/Wdired: Play nicely with recursive list of files and directories. Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 26 May 2018 04:38:02 +0000 Resent-Message-ID: <handler.31601.B.15273094262434 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 31601 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 31601 <at> debbugs.gnu.org X-Debbugs-Original-To: Emacs Bug Reports <bug-gnu-emacs@HIDDEN> Received: via spool by submit <at> debbugs.gnu.org id=B.15273094262434 (code B ref -1); Sat, 26 May 2018 04:38:02 +0000 Received: (at submit) by debbugs.gnu.org; 26 May 2018 04:37:06 +0000 Received: from localhost ([127.0.0.1]:48917 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1fMQwz-0000dC-VQ for submit <at> debbugs.gnu.org; Sat, 26 May 2018 00:37:06 -0400 Received: from eggs.gnu.org ([208.118.235.92]:38152) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <esq@HIDDEN>) id 1fMQwx-0000ce-Cy for submit <at> debbugs.gnu.org; Sat, 26 May 2018 00:37:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <esq@HIDDEN>) id 1fMQwq-0007vu-DT for submit <at> debbugs.gnu.org; Sat, 26 May 2018 00:36:57 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:55837) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <esq@HIDDEN>) id 1fMQwq-0007vm-9W for submit <at> debbugs.gnu.org; Sat, 26 May 2018 00:36:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57344) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from <esq@HIDDEN>) id 1fMQwo-0006GG-Oe for bug-gnu-emacs@HIDDEN; Sat, 26 May 2018 00:36:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from <esq@HIDDEN>) id 1fMQwl-0007mb-I8 for bug-gnu-emacs@HIDDEN; Sat, 26 May 2018 00:36:54 -0400 Received: from gateway30.websitewelcome.com ([192.185.198.26]:45033) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from <esq@HIDDEN>) id 1fMQwl-0007Y1-8F for bug-gnu-emacs@HIDDEN; Sat, 26 May 2018 00:36:51 -0400 Received: from cm10.websitewelcome.com (cm10.websitewelcome.com [100.42.49.4]) by gateway30.websitewelcome.com (Postfix) with ESMTP id E274ACEA for <bug-gnu-emacs@HIDDEN>; Fri, 25 May 2018 23:36:38 -0500 (CDT) Received: from gator3053.hostgator.com ([50.87.144.69]) by cmsmtp with SMTP id MQwYfkqJhBcCXMQwYfeVum; Fri, 25 May 2018 23:36:38 -0500 X-Authority-Reason: nr=8 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com ; s=default; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:To :From:Message-ID:Date:Sender:Reply-To:Cc:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=QKQhYJDH6sfSQiJ91xYDY8u8rbSM3kCslFxXiNUkFOs=; b=DaluByGt3lmfKsxj341OPQSEfa tZPjqam9RRAT25R80GbpXKlFAuW0gSI5GqVuAi6FE0QMLkTXQQYUApgO2ufUhApsZNgyngFgDjVRN EavAcsd7XWGpOD2gWCZCkpsvOE047fhdQExaBE7Lg9ZoKUO8dHcaQlUwKkEaZYfZfpX1pJ0xdajcN D4WxMyzL8xMa0wxCcbL7TYlNf34CBJ2HdbAgytwV3QtUAoXRIi0MisKP2uSJUYdjVB5A3ssyjuayB JJtxQkyq5gjOlxKlEQGffHEHK7VBu0DnUzWe/DPRaOssUfJXM3u8iIs2qXSKttY6l+L4edFOhbylj l+3ffaOQ==; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:49903 helo=server.local) by gator3053.hostgator.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.89_1) (envelope-from <esq@HIDDEN>) id 1fMQwY-002tAV-0W; Fri, 25 May 2018 23:36:38 -0500 Date: Fri, 25 May 2018 21:36:37 -0700 Message-ID: <m21sdzghii.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator3053.hostgator.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-BWhitelist: no X-Source-IP: 45.48.239.195 X-Source-L: No X-Exim-ID: 1fMQwY-002tAV-0W X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: cpe-45-48-239-195.socal.res.rr.com (server.local) [45.48.239.195]:49903 X-Source-Auth: lawlist X-Email-Count: 2 X-Source-Cap: bGF3bGlzdDtsYXdsaXN0O2dhdG9yMzA1My5ob3N0Z2F0b3IuY29t X-Local-Domain: yes Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -6.0 (------) I occasionally have the need to rename files and directories that are rec= ursively located. I create a dired-mode buffer as follows: (dired (directory-files-recursively "/path/to/directory" "" 'include-= directories)) Wdired: The first problem is that `wdired-get-filename' needs to be modi= fied so that it handles absolute paths differently than relative filename= s. Here is an example that works -- using `file-name-absolute-p`: (defun wdired-get-filename (&optional no-dir old) "Return the filename at line. Similar to `dired-get-filename' but it doesn't rely on regexps. It relies on WDired buffer's properties. Optional arg NO-DIR with value non-nil means don't include directory. Optional arg OLD with value non-nil means return old filename." ;; FIXME: Use dired-get-filename's new properties. (let (beg end file) (save-excursion (setq end (line-end-position)) (beginning-of-line) (setq beg (next-single-property-change (point) 'old-name nil end)) (unless (eq beg end) (if old (setq file (get-text-property beg 'old-name)) ;; In the following form changed `(1+ beg)' to `beg' so that ;; the filename end is found even when the filename is empty. ;; Fixes error and spurious newlines when marking files for ;; deletion. (if (=3D (point-at-eol) (point-max)) (setq end (point-max)) ;; fix for @lawlist eliminating final new li= ne at eob. (setq end (next-single-property-change beg 'end-name))) (setq file (buffer-substring-no-properties (1+ beg) end))) (and file (setq file (wdired-normalize-filename file)))) (if (or no-dir old) file (cond ;;; When FILE is relative, concatenate default-directory to beg= inning. ((and file (> (length file) 0) (not (file-name-absolute-p file)) (concat (dired-current-directory) file))) ;;; When FILE is absolute, no need to concatenate the default-d= irectory. ((and file (> (length file) 0) (file-name-absolute-p file) file))))))) Dired: The second problem is a dired-mode problem in that the `dired-dir= ectory' variable is not updated when renaming a file. I haven't tested d= eleting a file, but that probably suffers the same problem. Absent updat= ing the `dired-directory` with the renamed filename, the `revert-buffer` = will encounter errors because `ls` or `gls` will try to find files that n= o longer exist, and that errors will be inserted into the dired- buffer. = A quick solution for renaming the file is to modify `dired-rename-file` = as follows: ;;; (setq mylist '("apple" "pear" "peach" "nectarine" "watermelon")) ;;; (ar-replace--in-list "apple" "cherry" mylist) ;;; Written by @Andreas R=C3=B6hler: https://emacs.stackexchange.com/a/4= 1631/2287 (defun ar-replace--in-list (elem replacement list) "Expects a LIST of strings. ELEM: element to replace by arg REPLACEMENT" (let (newlist) (dolist (ele list) (if (string=3D ele elem) (push replacement newlist) (push ele newlist))) (nreverse newlist))) (defun dired-rename-file (file newname ok-if-already-exists) (dired-handle-overwrite newname) (rename-file file newname ok-if-already-exists) ; error is caught in -c= reate-files ;;; Update the `dired-directory' (when (and (listp dired-directory) (member file dired-directory)) (setq dired-directory (ar-replace--in-list file newname dired-directory))) ;; Silently rename the visited file of any buffer visiting this file. (and (get-file-buffer file) (with-current-buffer (get-file-buffer file) (set-visited-file-name newname nil t))) (dired-remove-file file) ;; See if it's an inserted subdir, and rename that, too. (dired-rename-subdir file newname)) However, this is understandably slow if there are a lot of files. Perhap= s a hash-table system would be better suited to keep track of files and d= irectories instead of just a plain old list with file/directory names. I haven't yet figured out the best approach to modify a wdired-mode buffe= r that has a combination of directories and files. Presumably some porti= on of the absolute filename/directory-name will need read-only attributes= .... But, that is as far as my thinking has gone on this issue. There may be many other situations that I haven't thought of because I've= never used all of the features of dired-mode and/or wdired-mode. Thanks, Keith
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Keith David Bershatsky <esq@HIDDEN> Subject: bug#31601: Acknowledgement (Dired/Wdired: Play nicely with recursive list of files and directories.) Message-ID: <handler.31601.B.15273094262434.ack <at> debbugs.gnu.org> References: <m21sdzghii.wl%esq@HIDDEN> X-Gnu-PR-Message: ack 31601 X-Gnu-PR-Package: emacs Reply-To: 31601 <at> debbugs.gnu.org Date: Sat, 26 May 2018 04:38:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 31601 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 31601: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D31601 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#31601: Dired/Wdired: Play nicely with recursive list of files and directories. Resent-From: Tino Calancha <tino.calancha@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 26 May 2018 09:03:01 +0000 Resent-Message-ID: <handler.31601.B31601.15273253631518 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 31601 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Keith David Bershatsky <esq@HIDDEN> Cc: 31601 <at> debbugs.gnu.org, tino.calancha@HIDDEN Received: via spool by 31601-submit <at> debbugs.gnu.org id=B31601.15273253631518 (code B ref 31601); Sat, 26 May 2018 09:03:01 +0000 Received: (at 31601) by debbugs.gnu.org; 26 May 2018 09:02:43 +0000 Received: from localhost ([127.0.0.1]:49017 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1fMV63-0000OQ-AS for submit <at> debbugs.gnu.org; Sat, 26 May 2018 05:02:43 -0400 Received: from mail-pl0-f46.google.com ([209.85.160.46]:41922) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <tino.calancha@HIDDEN>) id 1fMV60-0000O8-M4 for 31601 <at> debbugs.gnu.org; Sat, 26 May 2018 05:02:41 -0400 Received: by mail-pl0-f46.google.com with SMTP id az12-v6so4467198plb.8 for <31601 <at> debbugs.gnu.org>; Sat, 26 May 2018 02:02:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=vhJQzPTl3/l/pfr/ZAfVLz2hxwuL4DTTyS44aXLWVQo=; b=ipGsxuhQJml2P4jfcMHmbFcGfOfhkrjgtR9YbxwJkd2b90924cx5eTSSZaB5Kfdf+g nW7pI12363B/kryBrt/k9zyNCM6gOxmwYNSehc5zRx4nXA2dL7wa64Fl366Fl+QGCB+G rIKRiG97kHz23VicDO9tuSUkhY21CVli2IGcHSDqXWjdlAUMmXTt9FV8kqi+OZ/kIe82 2E0ej7R870ktCKo3cQsCluXVWLfMN9v5XSS4W3BN1pLciChIuXq+hLElxiSYZw3DvtAg AQ5SjbVevkmeA+aOOSXtn7neZDaWNrfU1XisDcC1HEETDDuH4Zlr9+88HKy6Oy4wySuV y6FQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=vhJQzPTl3/l/pfr/ZAfVLz2hxwuL4DTTyS44aXLWVQo=; b=XD/M0YSwf+yrSGX1KaskkiZ6wi0O75loN3lp7or4E7rWFDXU4cpSnUWJu98s8adAsm sXxTnccGcCSa5SMYAEKs2FNtC28Tg2ti6HACs7lMU8IOPo1rNeCt/VYW2BiViNlNNXXI TKSYvrPFCUCXGlgBb6hP+N4Fn4dbo6NnbEK3kf0y5GIn4tQYE/qzkrW7uGG7uivR3RJ/ Ma74QECy7FXVUld+CHqOYPaSxhv/DASdq4KI/4zIBMeANgXKtWPnCwSDVvOvB2n2+Cf8 marhYP2IfjJbqK6qNUQertlFd+3ryP0JQuVK8RQsKIt4M4jkswH61OZq2ato0A7zyykm a0+g== X-Gm-Message-State: ALKqPwd4K4FF53oayI0laVmofrPr2R83Giw/b9GulRMp8A7/t9v7huav o+3RLnwfxYcpqMAz6XyFHMo= X-Google-Smtp-Source: AB8JxZqEDq1qQ6LKcDYtxr9Qffjm2+Y0DY4x4gg/jM5yQ4W7wR9j5UQeZYuFwVSOZk10UHxPgDG5Ng== X-Received: by 2002:a17:902:6b04:: with SMTP id o4-v6mr5843721plk.101.1527325354666; Sat, 26 May 2018 02:02:34 -0700 (PDT) Received: from calancha-pc ([240f:6e:ee9a:1:adc4:139f:709c:10b]) by smtp.gmail.com with ESMTPSA id x2-v6sm35894756pgc.53.2018.05.26.02.02.32 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 26 May 2018 02:02:33 -0700 (PDT) From: Tino Calancha <tino.calancha@HIDDEN> References: <m21sdzghii.wl%esq@HIDDEN> Date: Sat, 26 May 2018 18:02:26 +0900 In-Reply-To: <m21sdzghii.wl%esq@HIDDEN> (Keith David Bershatsky's message of "Fri, 25 May 2018 21:36:37 -0700") Message-ID: <87zi0m6b8d.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Keith David Bershatsky <esq@HIDDEN> writes: > I occasionally have the need to rename files and directories that are recursively located. I create a dired-mode buffer as follows: > > (dired (directory-files-recursively "/path/to/directory" "" 'include-directories)) > > Wdired: The first problem is that `wdired-get-filename' needs to be modified so that it handles absolute paths differently than relative filenames. > Dired: The second problem is a dired-mode problem in that the `dired-directory' variable is not updated when renaming a file Thank you for your report Keith! You are right, it looks annoying. Though I haven't arrived with an ideal solution, following are two ways how I would try to perform a similar task. I) If you are lucky and "sh" points to a shell that supports globstar (zsh, fish), or if you are using dired via `em-ls', then you can do: M-x dired /path/to/directory/**/* RET ;; Now both, wdired and `dired-do-rename' works fine. [If you are using bash or ksh, that support globstar but disable it by default, then you might be interestd in my proposal in Bug#31495: it gives the chance to enable such feature on dired via an user option.] II) Another way could be to use a command of the `find-dired' family: M-x find-name-dired /path/to/directory/ RET * RET ;; I just noticed that wdired resets `revert-buffer-function' also for ;; these dired buffers. IMO it shouldn't, so I would propose ;; something like this: --8<-----------------------------cut here---------------start------------->8--- commit 58842a20f570d32f5d3f90aced8f0e8c1b1535a7 Author: Tino Calancha <tino.calancha@HIDDEN> Date: Sat May 26 17:39:29 2018 +0900 Preserve revert-buffer-function on find-dired buffers * lisp/wdired.el (wdired-find-dired-buffer-p): New predicate. (wdired-change-to-wdired-mode, wdired-change-to-dired-mode): Preserve `revert-buffer-function' on dired buffers created with `find-dired' commands. diff --git a/lisp/wdired.el b/lisp/wdired.el index bb60e77776..de5b327d75 100644 --- a/lisp/wdired.el +++ b/lisp/wdired.el @@ -228,6 +228,12 @@ wdired-mode (error "This mode can be enabled only by `wdired-change-to-wdired-mode'")) (put 'wdired-mode 'mode-class 'special) +(defun wdired-find-dired-buffer-p () + "Return non-nil if the dired buffer comes from a `find-dired' command." + (save-excursion + (goto-char (point-min)) + (forward-line 1) + (re-search-forward (format "^\\s-*%s " find-program) nil t))) ;;;###autoload (defun wdired-change-to-wdired-mode () @@ -257,7 +263,8 @@ wdired-change-to-wdired-mode (add-hook 'kill-buffer-hook 'wdired-check-kill-buffer nil t) (setq major-mode 'wdired-mode) (setq mode-name "Editable Dired") - (setq revert-buffer-function 'wdired-revert) + (unless (wdired-find-dired-buffer-p) + (setq revert-buffer-function 'wdired-revert)) ;; I temp disable undo for performance: since I'm going to clear the ;; undo list, it can save more than a 9% of time with big ;; directories because setting properties modify the undo-list. @@ -363,7 +370,8 @@ wdired-change-to-dired-mode (setq mode-name "Dired") (dired-advertise) (remove-hook 'kill-buffer-hook 'wdired-check-kill-buffer t) - (set (make-local-variable 'revert-buffer-function) 'dired-revert)) + (unless (wdired-find-dired-buffer-p) + (set (make-local-variable 'revert-buffer-function) 'dired-revert))) (defun wdired-abort-changes () --8<-----------------------------cut here---------------end--------------->8--- In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.11) of 2018-05-26 built on calancha-pc Repository revision: 66c9ab90d5f8b566467549bf1d48c936bc6d296b
X-Loop: help-debbugs@HIDDEN Subject: bug#31601: Dired/Wdired: Play nicely with recursive list of files and directories. References: <m21sdzghii.wl%esq@HIDDEN> In-Reply-To: <m21sdzghii.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sat, 26 May 2018 18:52:02 +0000 Resent-Message-ID: <handler.31601.B31601.15273607006341 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 31601 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tino Calancha <tino.calancha@HIDDEN> Cc: 31601 <at> debbugs.gnu.org Received: via spool by 31601-submit <at> debbugs.gnu.org id=B31601.15273607006341 (code B ref 31601); Sat, 26 May 2018 18:52:02 +0000 Received: (at 31601) by debbugs.gnu.org; 26 May 2018 18:51:40 +0000 Received: from localhost ([127.0.0.1]:49898 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1fMeHz-0001eC-PW for submit <at> debbugs.gnu.org; Sat, 26 May 2018 14:51:39 -0400 Received: from gateway36.websitewelcome.com ([192.185.193.12]:34114) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <esq@HIDDEN>) id 1fMeHx-0001e4-Ny for 31601 <at> debbugs.gnu.org; Sat, 26 May 2018 14:51:38 -0400 Received: from cm15.websitewelcome.com (cm15.websitewelcome.com [100.42.49.9]) by gateway36.websitewelcome.com (Postfix) with ESMTP id B8892400E9F63 for <31601 <at> debbugs.gnu.org>; Sat, 26 May 2018 13:51:36 -0500 (CDT) Received: from gator3053.hostgator.com ([50.87.144.69]) by cmsmtp with SMTP id MeHwfB2f5bXuJMeHwfS48h; Sat, 26 May 2018 13:51:36 -0500 X-Authority-Reason: nr=8 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com ; s=default; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Cc :To:From:Message-ID:Date:Sender:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=dfxYY8qM5/sTv6+4FllPxlLLJEe1d0uduvFktrVD0Ts=; b=kdGF9MtBy62no0Cyc4uPJxHadL DrSiVDSVeSVpjOVX5Divpj1XNvsqNg4ilJWrQOsiOCiARiiB0v/A/3g0zIBfm8eOgPMguSH7RDn/3 64NcNZPOSvtEOCOyTAysUJfbUYcM8bJNK7Ixlp71kBmGyMgc5Hb3hdJb74wNZXFPTtCioHvZi/lE6 ORnnqs7N0hsq2+W4ycp3hNATZW/X0X8kgLE7trCHRgUCPXNgNU7oCbzfIeA0DbJWj97JsODvbnGe3 UKyx3S6uX12qgUpWXw8JxqT0uHG2upwQ6W1iTj44Xdq9x4Wsl0MLczrgOdwo6HKW7iiMrxOIzULPO p4N2Qpmw==; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:51193 helo=server.local) by gator3053.hostgator.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.89_1) (envelope-from <esq@HIDDEN>) id 1fMeHv-003Zfe-TX; Sat, 26 May 2018 13:51:35 -0500 Date: Sat, 26 May 2018 11:51:35 -0700 Message-ID: <m2k1rqp7wo.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator3053.hostgator.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-BWhitelist: no X-Source-IP: 45.48.239.195 X-Source-L: No X-Exim-ID: 1fMeHv-003Zfe-TX X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: cpe-45-48-239-195.socal.res.rr.com (server.local) [45.48.239.195]:51193 X-Source-Auth: lawlist X-Email-Count: 1 X-Source-Cap: bGF3bGlzdDtsYXdsaXN0O2dhdG9yMzA1My5ob3N0Z2F0b3IuY29t X-Local-Domain: yes X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Thank you for the alternative approaches. I applied the new diff and was able to successfully use the second option with `find-dired`. As to the first option, however, I would need to spend time learning about zsh, fish and em-ls. So, that exploration would need to wait for a rainy day. Oh, by the way, please consider adding a `nil` to the end of `(defvar wdired-old-marks)` so that the user does not experience this: funcall-interactively: Symbol’s value as variable is void: wdired-old-marks In my spare time, I will most likely continue implementing functionality for wdired playing nice with: (dired (directory-files-recursively "/path/to/directory" "" 'include-directories)) That will entail: (1) placing read-only text properties over areas that cannot be changed; (2) when I modify a directory, I will need to propagate that change throughout the applicable entries of `dired-directory'; (3) I will consider implementing a hash-table approach with `dired-directory` entries for increased speed. Keith ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; DATE: [05-26-2018 02:02:26] <26 May 2018 18:02:26 +0900> FROM: Tino Calancha <tino.calancha@HIDDEN> > > * * * > I) > If you are lucky and "sh" points to a shell that > supports globstar (zsh, fish), or if you are using dired > via `em-ls', then you can do: > M-x dired /path/to/directory/**/* RET > ;; Now both, wdired and `dired-do-rename' works fine. > > [If you are using bash or ksh, that support globstar but > disable it by default, then you might be interestd in my > proposal in Bug#31495: it gives the chance to enable such > feature on dired via an user option.] > > II) > Another way could be to use a command of the `find-dired' family: > M-x find-name-dired /path/to/directory/ RET * RET * * *
X-Loop: help-debbugs@HIDDEN Subject: bug#31601: Dired/Wdired: Play nicely with recursive list of files and directories. References: <m21sdzghii.wl%esq@HIDDEN> In-Reply-To: <m21sdzghii.wl%esq@HIDDEN> Resent-From: Keith David Bershatsky <esq@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Mon, 28 May 2018 23:12:02 +0000 Resent-Message-ID: <handler.31601.B31601.15275491047940 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 31601 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Tino Calancha <tino.calancha@HIDDEN> Cc: 31601 <at> debbugs.gnu.org Received: via spool by 31601-submit <at> debbugs.gnu.org id=B31601.15275491047940 (code B ref 31601); Mon, 28 May 2018 23:12:02 +0000 Received: (at 31601) by debbugs.gnu.org; 28 May 2018 23:11:44 +0000 Received: from localhost ([127.0.0.1]:52901 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1fNRIm-000240-Bd for submit <at> debbugs.gnu.org; Mon, 28 May 2018 19:11:44 -0400 Received: from gateway31.websitewelcome.com ([192.185.143.52]:12458) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <esq@HIDDEN>) id 1fNRIj-00023p-0I for 31601 <at> debbugs.gnu.org; Mon, 28 May 2018 19:11:42 -0400 Received: from cm11.websitewelcome.com (cm11.websitewelcome.com [100.42.49.5]) by gateway31.websitewelcome.com (Postfix) with ESMTP id 552D5FCE2 for <31601 <at> debbugs.gnu.org>; Mon, 28 May 2018 18:11:40 -0500 (CDT) Received: from gator3053.hostgator.com ([50.87.144.69]) by cmsmtp with SMTP id NRIhfGFHQRPojNRIifxXid; Mon, 28 May 2018 18:11:40 -0500 X-Authority-Reason: nr=8 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lawlist.com ; s=default; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Cc :To:From:Message-ID:Date:Sender:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: In-Reply-To:References:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=3xI9YFan3hXVVEPg/DQbmA05uvahihdJ9VUvkL0OEo8=; b=KnF4ciS6VvXv9aHEYX++vgg7Iv 9qt54UVyt3+NaC6IcZh3+jYeO9TDr5s1gzPnkq3js0eqKzglUt6n7n0eO28R73UEVDhJ5Qi4ZQM2M 8U5HOgF5SOj2NmvA3j6thWvzu+OB/CUxenD6hHPGzykSt9n3TMF6cJhmUJ42om0fVV3j4oYcI4MEC gGMpWLSTNN1aNQZVfWy6lLHAOwIZIk/N6daiSQO2BWMsAQ8HVAoQIrHDjnhGorubm4x6TIzGaOkdh bnTYwZcGXV9eGysmE8pYkzQcbq/x+TAWcAB/OVVn8euslZj39aEcK9Um7L/2i0B4G9n2nPDJaoXPV aaKS2dsg==; Received: from cpe-45-48-239-195.socal.res.rr.com ([45.48.239.195]:53964 helo=server.local) by gator3053.hostgator.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.89_1) (envelope-from <esq@HIDDEN>) id 1fNRIh-002zJX-7l; Mon, 28 May 2018 18:11:39 -0500 Date: Mon, 28 May 2018 16:11:38 -0700 Message-ID: <m2h8mr2x5h.wl%esq@HIDDEN> From: Keith David Bershatsky <esq@HIDDEN> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart_Mon_May_28_16:11:38_2018-1" Content-Transfer-Encoding: 8bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator3053.hostgator.com X-AntiAbuse: Original Domain - debbugs.gnu.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - lawlist.com X-BWhitelist: no X-Source-IP: 45.48.239.195 X-Source-L: No X-Exim-ID: 1fNRIh-002zJX-7l X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: cpe-45-48-239-195.socal.res.rr.com (server.local) [45.48.239.195]:53964 X-Source-Auth: lawlist X-Email-Count: 1 X-Source-Cap: bGF3bGlzdDtsYXdsaXN0O2dhdG9yMzA1My5ob3N0Z2F0b3IuY29t X-Local-Domain: yes X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) --Multipart_Mon_May_28_16:11:38_2018-1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Attached is a draft/proof-concept patch.diff of my ideas regarding how to make dired/wdired play nicely with an arbitrary list of files and folders, including a recursive list. I asked for some help on emacs.stackexchange.com to implement these new approaches, and used the answers by @Drew, @Tobias and @Andreas Röhler. Citations to their answers are included in the draft/proof-concept patch. I would need some help regarding how to update the dired-directory variable when deleting a file in a regular dired-mode buffer, and I have added a FIXME notation in the likely spot of `dired.el` -- the approach would be similar to renaming a file (already implemented in the attached draft patch), but is a bit more complicated due to potential recursive deletions. The file-name-nondirectory components in wdired-mode now have read-only attributes so that a user no longer erroneously believes that he/she can modify them, and only latter see an error message when trying to commit the changes: file-error Renaming No such file or directory .... I have only done some basic renaming of files and directories in wdired mode using both `find-name-dired` and `dired-list-files-folders' to populate the dired- buffer. I did not spend any time implementing hash-tables to speed up the modification of the dired-directory variable, as that would likely involve modifying a few or more aspects of dired-mode. Thanks, Keith --Multipart_Mon_May_28_16:11:38_2018-1 Content-Type: application/diff; type=patch Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpc3AvZGlyZWQtYXV4LmVsIGIvbGlzcC9kaXJlZC1hdXguZWwKaW5kZXgg ODIxYjdkNy4uYjk4YzAwOCAxMDA2NDQKLS0tIGEvbGlzcC9kaXJlZC1hdXguZWwKKysrIGIvbGlz cC9kaXJlZC1hdXguZWwKQEAgLTE1OTAsMTEgKzE1OTAsNjggQEAgSWYgYGFzaycsIGFzayBmb3Ig dXNlciBjb25maXJtYXRpb24uIgogCSAgICAgICBkaXJlZC1jcmVhdGUtZmlsZXMtZmFpbHVyZXMp CiAJIChkaXJlZC1sb2cgIkNhbid0IHNldCBkYXRlIG9uICVzOlxuJXNcbiIgZnJvbSBlcnIpKSkp KSkKIAorOzs7IChzZXRxIG15bGlzdCAnKCJhcHBsZSIgInBlYXIiICJwZWFjaCIgIm5lY3Rhcmlu ZSIgIndhdGVybWVsb24iKSkKKzs7OyAoYXItcmVwbGFjZS0taW4tbGlzdCAiYXBwbGUiICJjaGVy cnkiIG15bGlzdCkKKzs7OyBXcml0dGVuIGJ5IEBBbmRyZWFzIFLDtmhsZXI6ICBodHRwczovL2Vt YWNzLnN0YWNrZXhjaGFuZ2UuY29tL2EvNDE2MzEvMjI4NworKGRlZnVuIGFyLXJlcGxhY2UtLWlu LWxpc3QgKGVsZW0gcmVwbGFjZW1lbnQgbGlzdCkKKyAgIkV4cGVjdHMgYSBMSVNUIG9mIHN0cmlu Z3MuCitFTEVNOiBlbGVtZW50IHRvIHJlcGxhY2UgYnkgYXJnIFJFUExBQ0VNRU5UIgorICAobGV0 IChuZXdsaXN0KQorICAgIChkb2xpc3QgKGVsZSBsaXN0KQorICAgICAgKGlmIChzdHJpbmc9IGVs ZSBlbGVtKQorICAgICAgICAocHVzaCByZXBsYWNlbWVudCBuZXdsaXN0KQorICAgICAgICAocHVz aCBlbGUgbmV3bGlzdCkpKQorICAgIChucmV2ZXJzZSBuZXdsaXN0KSkpCisKKyhkZWZ1biByZXBs YWNlLWRpcmVjdG9yeS1uYW1lLWluLWZpbGVzIChvbGQgbmV3IGxpc3QpCisiUmVwbGFjZSBpbiBm aWxlLW5hbWVzL2RpcmVjdG9yeS1uYW1lcyBhbGwgb2NjdXJyZW5jZXMgb2YgT0xEIGRpcmVjdG9y eSBuYW1lCit3aXRoIE5FVyBkaXJlY3RvcnkgbmFtZSBpbiB0aGUgTElTVC4iCisgIChsZXQgKChy ZWdleHAtb2xkIChjb25jYXQgIl4iIChyZWdleHAtcXVvdGUgb2xkKSkpCisgICAgICAgIG5ld2xp c3QpCisgICAgKGRvbGlzdCAoZmlsZSBsaXN0KQorICAgICAgOzs7IGBkaXJlZC1ub3NlbGVjdCcg bWF5IHNldCB0aGUgZmlyc3QgZWxlbWVudCBvZiBgZGlyZWQtZGlyZWN0b3J5JyB3aXRoIGEgbGVh ZGluZyB+CisgICAgICA7OzsgICAoYWJicmV2aWF0ZS1maWxlLW5hbWUgKGV4cGFuZC1maWxlLW5h bWUgKGRpcmVjdG9yeS1maWxlLW5hbWUgIi9Vc2Vycy9Ib21lL2ZvbyIpKSkgPT4gIn4vZm9vIgor ICAgICAgOzs7CisgICAgICA7OzsgV2UgdXNlIE5FVyB0byB0ZXN0IGZvciBgZmlsZS1kaXJlY3Rv cnktcCcgYmVjYXVzZSB0aGUgZGlyZWN0b3J5CisgICAgICA7OzsgaGFzIGFscmVhZHkgYmVlbiBy ZW5hbWVkIGJ5IHRoZSB0aW1lIHdlIGdldCBoZXJlLiAgQWx0ZXJuYXRpdmVseSwKKyAgICAgIDs7 OyB3ZSBjb3VsZCB0ZXN0IHRoZSBPTEQgZmlsZW5hbWUgdG8gc2VlIGlmIGl0IGlzIGEgZGlyZWN0 b3J5IGF0IHRoZQorICAgICAgOzs7IHRoZSBvdXRzZXQgb2YgYGRpcmVkLXJlbmFtZS1maWxlJyBh bmQgc2F2ZSB0aGUgcmVzdWx0LgorICAgICAgOzs7CisgICAgICA7OzsgRklYTUU6ICBXZSBuZWVk IGFuIGFkZGl0aW9uYWwgdGVzdCBhbmQgdGhlbiBkZWFsIHdpdGggYSBob21lIGRpcmVjdG9yeSB+ LgorICAgICAgOzs7IFRoZSBjb2RlIGRvZXMgbm90IHByZXNlbnRseSBkZWFsIHdpdGggYSAifi9m b28vYmFyIiBmaWxlIHdoZW4gdGhlCisgICAgICA7OzsgZGlyZWN0b3J5IGBmb29gIGlzIHJlbmFt ZWQuICBgcmVuYW1lLWZpbGUnIHdpbGwgZXJyb3IuCisgICAgICAoaWYgKGFuZCAoZmlsZS1kaXJl Y3RvcnktcCBuZXcpCisgICAgICAgICAgICAgICAoc3RyaW5nLW1hdGNoIHJlZ2V4cC1vbGQgZmls ZSkKKyAgICAgICAgICAgICAgIDs7OyBCZWNhdXNlIHdlIGhhdmUgYWxyZWFkeSBwcm9jZXNzZWQg YGFyLXJlcGxhY2UtLWluLWxpc3QnLAorICAgICAgICAgICAgICAgOzs7IHRoZSBORVcgbmFtZSBp cyBhbHJlYWR5IGluIGBkaXJlZC1kaXJlY3RvcnknLgorICAgICAgICAgICAgICAgKG5vdCAoZXF1 YWwgbmV3IGZpbGUpKSkKKyAgICAgICAgIChwdXNoIChyZXBsYWNlLXJlZ2V4cC1pbi1zdHJpbmcg cmVnZXhwLW9sZCBuZXcgZmlsZSkgbmV3bGlzdCkKKyAgICAgICAgIChwdXNoIGZpbGUgbmV3bGlz dCkpKQorICAgIChucmV2ZXJzZSBuZXdsaXN0KSkpCisKIDs7OyMjI2F1dG9sb2FkCiAoZGVmdW4g ZGlyZWQtcmVuYW1lLWZpbGUgKGZpbGUgbmV3bmFtZSBvay1pZi1hbHJlYWR5LWV4aXN0cykKICAg KGRpcmVkLWhhbmRsZS1vdmVyd3JpdGUgbmV3bmFtZSkKICAgKGRpcmVkLW1heWJlLWNyZWF0ZS1k aXJzIChmaWxlLW5hbWUtZGlyZWN0b3J5IG5ld25hbWUpKQogICAocmVuYW1lLWZpbGUgZmlsZSBu ZXduYW1lIG9rLWlmLWFscmVhZHktZXhpc3RzKSA7IGVycm9yIGlzIGNhdWdodCBpbiAtY3JlYXRl LWZpbGVzCisgIDs7OyBJbiB0aGUgY29udGV4dCBvZiBgd2RpcmVkLWZpbmlzaC1lZGl0JywgaXQg Y2FsbHMgYHdkaXJlZC1kby1yZW5hbWVzJyBhbmQKKyAgOzs7IHRoYXQgZnVuY3Rpb24gY29udGFp bnMgYSBgY29uZGl0aW9uLWNhc2UnIHNlY3Rpb24gdGhhdCBjb3VudHMgdGhlIG51bWJlciBvZiBl cnJvcnMuCisgIDs7OyBGb3IgcHVycG9zZXMgb2YgYGRpcmVkLXJlbmFtZS1maWxlJywgdGhlIGZ1 bmN0aW9uIGV4aXN0cyBhcyBzb29uIGFzIGByZW5hbWUtZmlsZScKKyAgOzs7IHRocm93cyBhbiBl cnJvciwgc28gd2UgbmV2ZXIgZ2V0IHRvIHRoZSByZXN0IG9mIHRoaXMgZnVuY3Rpb24gYmVsb3cg d2hlbiBhIHJlbmFtaW5nIGVycm9yIG9jY3Vycy4KKyAgOzs7CisgIDs7OyBVcGRhdGUgdGhlIGBk aXJlZC1kaXJlY3RvcnknIGJ5IHJlcGxhY2luZyBGSUxFIHdpdGggTkVXTkFNRS4KKyAgKHdoZW4g KGFuZCAobGlzdHAgZGlyZWQtZGlyZWN0b3J5KQorICAgICAgICAgICAgIChtZW1iZXIgZmlsZSBk aXJlZC1kaXJlY3RvcnkpKQorICAgIChzZXRxIGRpcmVkLWRpcmVjdG9yeQorICAgICAgKGFyLXJl cGxhY2UtLWluLWxpc3QgZmlsZSBuZXduYW1lIGRpcmVkLWRpcmVjdG9yeSkpKQorICA7OzsgSWYg RklMRSBpcyBhIGRpcmVjdG9yeSwgdGhlbiB1cGRhdGUgdGhlIGBkaXJlZC1kaXJlY3RvcnknIGJ5 CisgIDs7OyByZXBsYWNpbmcgYWxsIG9jY3VycmVuY2VzIG9mIHRoYXQgZGlyZWN0b3J5IG5hbWUg d2l0aGluIGFueSBmaWxlbmFtZXMuCisgICh3aGVuIChhbmQgKGxpc3RwIGRpcmVkLWRpcmVjdG9y eSkKKyAgICAgICAgICAgICAgIDs7OyBCZWNhdXNlIHdlIGhhdmUgYWxyZWFkeSBwcm9jZXNzZWQg YGFyLXJlcGxhY2UtLWluLWxpc3QnLAorICAgICAgICAgICAgICAgOzs7IHRoZSBORVdOQU1FIGlz IGFscmVhZHkgaW4gYGRpcmVkLWRpcmVjdG9yeScuCisgICAgICAgICAgICAgKG1lbWJlciBuZXdu YW1lIGRpcmVkLWRpcmVjdG9yeSkpCisgICAgKHNldHEgZGlyZWQtZGlyZWN0b3J5CisgICAgICAg ICAgIChyZXBsYWNlLWRpcmVjdG9yeS1uYW1lLWluLWZpbGVzIGZpbGUgbmV3bmFtZSBkaXJlZC1k aXJlY3RvcnkpKSkKICAgOzsgU2lsZW50bHkgcmVuYW1lIHRoZSB2aXNpdGVkIGZpbGUgb2YgYW55 IGJ1ZmZlciB2aXNpdGluZyB0aGlzIGZpbGUuCiAgIChhbmQgKGdldC1maWxlLWJ1ZmZlciBmaWxl KQogICAgICAgICh3aXRoLWN1cnJlbnQtYnVmZmVyIChnZXQtZmlsZS1idWZmZXIgZmlsZSkKZGlm ZiAtLWdpdCBhL2xpc3AvZGlyZWQuZWwgYi9saXNwL2RpcmVkLmVsCmluZGV4IDEzNDhkZjYuLjVj NDU3NjQgMTAwNjQ0Ci0tLSBhL2xpc3AvZGlyZWQuZWwKKysrIGIvbGlzcC9kaXJlZC5lbApAQCAt MzExOSw2ICszMTE5LDExIEBAIG5vbi1lbXB0eSBkaXJlY3RvcmllcyBpcyBhbGxvd2VkLiIKIAkg ICAgICAobGV0ICgoaW5oaWJpdC1yZWFkLW9ubHkgdCkpCiAJCShjb25kaXRpb24tY2FzZSBlcnIK IAkJICAgIChsZXQgKChmbiAoY2FyIChjYXIgbCkpKSkKKwkJICAgICAgOzs7IGh0dHA6Ly9kZWJi dWdzLmdudS5vcmcvY2dpL2J1Z3JlcG9ydC5jZ2k/YnVnPTMxNjAxCisJCSAgICAgIDs7OyBGSVhN RTogIEBsYXdsaXN0IGNvdWxkIHVzZSBzb21lIGhlbHAgZmlndXJpbmcgb3V0IGhvdy93aGVuIHRv CisJCSAgICAgIDs7OyB1cGRhdGUgdGhlIGBsYXdsaXN0LWRpcmVkLWRpcmVjdG9yeScgd2hlbiBp dCBpcyBhIGxpc3QuICBUaGVyZSBhcmUKKwkJICAgICAgOzs7IGEgZmV3IGRpZmZlcmVudCBvcHRp b25zIHRoYXQgQGxhd2xpc3QgZG9lcyBub3QgZnVsbHkgdW5kZXJzdGFuZAorCQkgICAgICA7Ozsg c3VjaCBhcyBSRUNVUlNJVkUgZGVsZXRpb25zLgogCQkgICAgICAoZGlyZWQtZGVsZXRlLWZpbGUg Zm4gZGlyZWQtcmVjdXJzaXZlLWRlbGV0ZXMgdHJhc2gpCiAJCSAgICAgIDs7IGlmIHdlIGdldCBo ZXJlLCByZW1vdmluZyB3b3JrZWQKIAkJICAgICAgKHNldHEgc3VjYyAoMSsgc3VjYykpCmRpZmYg LS1naXQgYS9saXNwL3dkaXJlZC5lbCBiL2xpc3Avd2RpcmVkLmVsCmluZGV4IGJiNjBlNzcuLmVk NzVhOGYgMTAwNjQ0Ci0tLSBhL2xpc3Avd2RpcmVkLmVsCisrKyBiL2xpc3Avd2RpcmVkLmVsCkBA IC03Niw2ICs3Niw2NyBAQAogKHJlcXVpcmUgJ2RpcmVkKQogKGF1dG9sb2FkICdkaXJlZC1kby1j cmVhdGUtZmlsZXMtcmVnZXhwICJkaXJlZC1hdXgiKQogCis7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 OzsKKzs7OyBodHRwOi8vZGViYnVncy5nbnUub3JnL2NnaS9idWdyZXBvcnQuY2dpP2J1Zz0zMTYw MQorCis7OzsgV3JpdHRlbiBieSBUaW5vIENhbGFuY2hhCis7OzsgaHR0cHM6Ly9kZWJidWdzLmdu dS5vcmcvY2dpL2J1Z3JlcG9ydC5jZ2k/YnVnPTMxNjAxIzgKKyhkZWZ1biB3ZGlyZWQtZmluZC1k aXJlZC1idWZmZXItcCAoKQorICAiUmV0dXJuIG5vbi1uaWwgaWYgdGhlIGRpcmVkIGJ1ZmZlciBj b21lcyBmcm9tIGEgYGZpbmQtZGlyZWQnIGNvbW1hbmQuIgorICAoc2F2ZS1leGN1cnNpb24KKyAg ICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgIChmb3J3YXJkLWxpbmUgMSkKKyAgICA7Ozsg VGhlIGxpbmUgd2UgYXJlIGxvb2tpbmcgZm9yIGlzOiAgICAvdXNyL2Jpbi9maW5kIC4gXCggLWlu YW1lIFwqIFwpIC1scworICAgIChyZS1zZWFyY2gtZm9yd2FyZCAoZm9ybWF0ICJeXFxzLSolcyAi IGZpbmQtcHJvZ3JhbSkgbmlsIHQpKSkKKworKGRlZnVuIGRpcmVkLWxpc3QtZmlsZXMtZm9sZGVy cyAoKQorIlByb2R1Y2UgYSBkaXJlZC1tb2RlIGJ1ZmZlciBvZiBhbGwgZmlsZXMvZm9sZGVycyBy ZWN1cnNpdmVseS4iCisoaW50ZXJhY3RpdmUpCisgIChsZXQqICgocGF0aCAocmVhZC1kaXJlY3Rv cnktbmFtZSAiRGlyZWN0b3J5OiAgIikpCisgICAgICAgICAoZGlyZWN0b3J5IChmaWxlLW5hbWUt YXMtZGlyZWN0b3J5IHBhdGgpKSkKKyAgICAodW5sZXNzIChmaWxlLWRpcmVjdG9yeS1wIHBhdGgp CisgICAgICAobGV0ICgoZGVidWctb24tcXVpdCBuaWwpCisgICAgICAgICAgICAobXNnIChmb3Jt YXQgIk5vdCBhIGRpcmVjdG9yeTogJXMiIHBhdGgpKSkKKyAgICAgICAgKHNpZ25hbCAncXVpdCBg KCxtc2cpKSkpCisgICAgKGxldCogKChkZWZhdWx0LWRpcmVjdG9yeSBkaXJlY3RvcnkpCisgICAg ICAgICAgIChpbmNsdWRlLWRpcmVjdG9yaWVzICh3aGVuICh5LW9yLW4tcCAiSW5jbHVkZSBkaXJl Y3Rvcmllcz8iKSB0KSkKKyAgICAgICAgICAgKGxzdCAoZGlyZWN0b3J5LWZpbGVzLXJlY3Vyc2l2 ZWx5IGRlZmF1bHQtZGlyZWN0b3J5ICIiIGluY2x1ZGUtZGlyZWN0b3JpZXMpKSkKKyAgICAgIDs7 OyBUaGUgZmlyc3QgZWxlbWVudCBpcyB0YWtlbiBhcyB0aGUgZGlyZWN0b3J5IG5hbWUuCisgICAg ICAocHVzaCBkZWZhdWx0LWRpcmVjdG9yeSBsc3QpCisgICAgICAoZGlyZWQgbHN0KSkpKQorCis7 OzsgV3JpdHRlbiBieSBEcmV3IEFkYW1zIGZyb20gaGlzIGRpcmVkKyBsaWJyYXJ5OyBzZWUgYWxz byB0aGUgZXhhbXBsZSBwb3N0ZWQgdG8KKzs7OyBodHRwczovL2VtYWNzLnN0YWNrZXhjaGFuZ2Uu Y29tL2EvNDE2NjkvMjI4NworKGRlZnVuIGRpcmVkcC1yb290LWRpcmVjdG9yeS1wIChmaWxlKQor ICAiUmV0dXJuIG5vbi1uaWwgaWYgRklMRSBpcyBhIHJvb3QgZGlyZWN0b3J5LiIKKyAgKGlmIChm Ym91bmRwICdhbmdlLWZ0cC1yb290LWRpci1wKQorICAgICAgKGFuZ2UtZnRwLXJvb3QtZGlyLXAg KGZpbGUtbmFtZS1hcy1kaXJlY3RvcnkgZmlsZSkpCisgICAgOzsgVGhpcyBpcyBlc3NlbnRpYWxs eSBgYW5nZS1mdHAtcm9vdC1kaXItcCcgYXBwbGllZCB0byBgZmlsZS1uYW1lLWFzLWRpcmVjdG9y eScuCisgICAgOzsgSWYgYGFuZ2UtZnRwLXJvb3QtZGlyLXAnIGNoYW5nZXMsIHVwZGF0ZSB0aGlz IGNvZGUuCisgICAgKG9yIChhbmQgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50KQorICAgICAg ICAgICAgIChzdHJpbmctbWF0Y2gtcCAiXFxgW2EtekEtWl06Wy9cXF1cXCciIChmaWxlLW5hbWUt YXMtZGlyZWN0b3J5IGZpbGUpKSkKKyAgICAgICAgKHN0cmluZz0gIi8iIGZpbGUpKSkpCisKKzs7 OyBXcml0dGVuIGJ5IERyZXcgQWRhbXMgZnJvbSBoaXMgZGlyZWQrIGxpYnJhcnk7IHNlZSBhbHNv IHRoZSBleGFtcGxlIHBvc3RlZCB0bworOzs7IGh0dHBzOi8vZW1hY3Muc3RhY2tleGNoYW5nZS5j b20vYS80MTY2OS8yMjg3CisoZGVmdW4gZGlyZWRwLXBhcmVudC1kaXIgKGZpbGUgJm9wdGlvbmFs IHJlbGF0aXZlcCkKKyAgIlJldHVybiB0aGUgcGFyZW50IGRpcmVjdG9yeSBvZiBGSUxFLCBvciBu aWwgaWYgbm9uZS4KK09wdGlvbmFsIGFyZyBSRUxBVElWRVAgbm9uLW5pbCBtZWFucyByZXR1cm4g YSByZWxhdGl2ZSBuYW1lLCB0aGF0IGlzLAoranVzdCB0aGUgcGFyZW50IGNvbXBvbmVudC4iCisg IChsZXQgKChwYXJlbnQgIChmaWxlLW5hbWUtZGlyZWN0b3J5IChkaXJlY3RvcnktZmlsZS1uYW1l IChleHBhbmQtZmlsZS1uYW1lIGZpbGUpKSkpCisgICAgICAgIHJlbHBhcmVudCkKKyAgICAod2hl biByZWxhdGl2ZXAKKyAgICAgIChzZXRxIHJlbHBhcmVudCAgKGZpbGUtbmFtZS1ub25kaXJlY3Rv cnkgKGRpcmVjdG9yeS1maWxlLW5hbWUgcGFyZW50KSkpKQorICAgIChhbmQgKG5vdCAoZXF1YWwg cGFyZW50IGZpbGUpKSAgKG9yIHJlbHBhcmVudCAgcGFyZW50KSkpKQorCisoZGVmaW5lLWtleSBk aXJlZC1tb2RlLW1hcCAiciIgJ3dkaXJlZC1jaGFuZ2UtdG8td2RpcmVkLW1vZGUpCisKKyhkZWZp bmUta2V5IGN0bC14LW1hcCAiZiIgJ2RpcmVkLWxpc3QtZmlsZXMtZm9sZGVycykKKworKGRlZmlu ZS1rZXkgY3RsLXgtbWFwICJGIiAnZmluZC1uYW1lLWRpcmVkKQorCis7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7OzsKKwogKGRlZmdyb3VwIHdkaXJlZCBuaWwKICAgIk1vZGUgdG8gcmVuYW1lIGZpbGVz IGJ5IGVkaXRpbmcgdGhlaXIgbmFtZXMgaW4gZGlyZWQgYnVmZmVycy4iCiAgIDpncm91cCAnZGly ZWQpCkBAIC0yMDMsNyArMjY0LDcgQEAgbm9uZXhpc3RlbnQgZGlyZWN0b3J5IHdpbGwgZmFpbC4i CiAoZGVmdmFyIHdkaXJlZC1jb2wtcGVybSkgOzsgQ29sdW1uIHdoZXJlIHRoZSBwZXJtaXNzaW9u IGJpdHMgc3RhcnQKIChkZWZ2YXIgd2RpcmVkLW9sZC1jb250ZW50KQogKGRlZnZhciB3ZGlyZWQt b2xkLXBvaW50KQotKGRlZnZhciB3ZGlyZWQtb2xkLW1hcmtzKQorKGRlZnZhciB3ZGlyZWQtb2xk LW1hcmtzIG5pbCkKIAogKGRlZnVuIHdkaXJlZC1tb2RlICgpCiAgICJXcml0YWJsZSBEaXJlZCAo V0RpcmVkKSBtb2RlLgpAQCAtMjU3LDcgKzMxOCw4IEBAIFNlZSBgd2RpcmVkLW1vZGUnLiIKICAg KGFkZC1ob29rICdraWxsLWJ1ZmZlci1ob29rICd3ZGlyZWQtY2hlY2sta2lsbC1idWZmZXIgbmls IHQpCiAgIChzZXRxIG1ham9yLW1vZGUgJ3dkaXJlZC1tb2RlKQogICAoc2V0cSBtb2RlLW5hbWUg IkVkaXRhYmxlIERpcmVkIikKLSAgKHNldHEgcmV2ZXJ0LWJ1ZmZlci1mdW5jdGlvbiAnd2RpcmVk LXJldmVydCkKKyAgKHVubGVzcyAod2RpcmVkLWZpbmQtZGlyZWQtYnVmZmVyLXApCisgICAgKHNl dHEgcmV2ZXJ0LWJ1ZmZlci1mdW5jdGlvbiAnd2RpcmVkLXJldmVydCkpCiAgIDs7IEkgdGVtcCBk aXNhYmxlIHVuZG8gZm9yIHBlcmZvcm1hbmNlOiBzaW5jZSBJJ20gZ29pbmcgdG8gY2xlYXIgdGhl CiAgIDs7IHVuZG8gbGlzdCwgaXQgY2FuIHNhdmUgbW9yZSB0aGFuIGEgOSUgb2YgdGltZSB3aXRo IGJpZwogICA7OyBkaXJlY3RvcmllcyBiZWNhdXNlIHNldHRpbmcgcHJvcGVydGllcyBtb2RpZnkg dGhlIHVuZG8tbGlzdC4KQEAgLTI4NywxOSArMzQ5LDc5IEBAIG9yIFxcW3dkaXJlZC1hYm9ydC1j aGFuZ2VzXSB0byBhYm9ydCBjaGFuZ2VzIikpKQogICAoc2F2ZS1leGN1cnNpb24KICAgICAoZ290 by1jaGFyIChwb2ludC1taW4pKQogICAgIChsZXQgKChiLXByb3RlY3Rpb24gKHBvaW50KSkKLQkg IGZpbGVuYW1lKQorICAgICAgICAgIGZpbGVuYW1lIHAxIHAyIHAzIGZpbGUgYWJzb2x1dGUtcCkK ICAgICAgICh3aGlsZSAobm90IChlb2JwKSkKIAkoc2V0cSBmaWxlbmFtZSAoZGlyZWQtZ2V0LWZp bGVuYW1lIG5pbCB0KSkKICAgICAgICAgKHdoZW4gKGFuZCBmaWxlbmFtZQotCQkgICAobm90ICht ZW1iZXIgKGZpbGUtbmFtZS1ub25kaXJlY3RvcnkgZmlsZW5hbWUpICcoIi4iICIuLiIpKSkpCi0J ICAoZGlyZWQtbW92ZS10by1maWxlbmFtZSkKLQkgIDs7IFRoZSByZWFyLW5vbnN0aWNreSBwcm9w ZXJ0eSBiZWxvdyBzaGFsbCBlbnN1cmUgdGhhdCB0ZXh0IHByZWNlZGluZwotCSAgOzsgdGhlIGZp bGVuYW1lIGNhbid0IGJlIG1vZGlmaWVkLgotCSAgKGFkZC10ZXh0LXByb3BlcnRpZXMKLQkgICAo MS0gKHBvaW50KSkgKHBvaW50KSBgKG9sZC1uYW1lICxmaWxlbmFtZSByZWFyLW5vbnN0aWNreSAo cmVhZC1vbmx5KSkpCi0JICAocHV0LXRleHQtcHJvcGVydHkgYi1wcm90ZWN0aW9uIChwb2ludCkg J3JlYWQtb25seSB0KQotCSAgKHNldHEgYi1wcm90ZWN0aW9uIChkaXJlZC1tb3ZlLXRvLWVuZC1v Zi1maWxlbmFtZSB0KSkKLQkgIChwdXQtdGV4dC1wcm9wZXJ0eSAocG9pbnQpICgxKyAocG9pbnQp KSAnZW5kLW5hbWUgdCkpCisgICAgICAgICAgICAgICAgICAgKG5vdCAobWVtYmVyIChmaWxlLW5h bWUtbm9uZGlyZWN0b3J5IGZpbGVuYW1lKSAnKCIuIiAiLi4iKSkpKQorICAgICAgICAgIChzZXRx IHAxIChkaXJlZC1tb3ZlLXRvLWZpbGVuYW1lKQorICAgICAgICAgICAgICAgIHAzIChkaXJlZC1t b3ZlLXRvLWVuZC1vZi1maWxlbmFtZSAnbm8tZXJyb3IpCisgICAgICAgICAgICAgICAgZmlsZSAo YnVmZmVyLXN1YnN0cmluZyBwMSBwMykpCisgICAgICAgICAgOzs7IEJFR0lOIGNvZGUgYm9ycm93 ZWQgZnJvbSBgZGlyZWQtZ2V0LWZpbGVuYW1lJy4KKyAgICAgICAgICA7OyBVbnF1b3RlIG5hbWVz IHF1b3RlZCBieSBscyBvciBieSBkaXJlZC1pbnNlcnQtZGlyZWN0b3J5LgorICAgICAgICAgIDs7 IFRoaXMgY29kZSB3YXMgd3JpdHRlbiB1c2luZyBgcmVhZCcgdG8gdW5xdW90ZSwgYmVjYXVzZQor ICAgICAgICAgIDs7IGl0J3MgZmFzdGVyIHRoYW4gc3Vic3RpdHV0aW5nIFwwMDcgKDQgY2hhcnMp IC0+IF5HICgxCisgICAgICAgICAgOzsgY2hhcikgZXRjLiBpbiBhIGxpc3AgbG9vcC4gIFVuZm9y dHVuYXRlbHksIHRoaXMgZGVjaXNpb24KKyAgICAgICAgICA7OyBoYXMgbmVjZXNzaXRhdGVkIGhh Y2tzIHN1Y2ggYXMgZGVhbGluZyB3aXRoIGZpbGVuYW1lcworICAgICAgICAgIDs7IHdpdGggcXVv dGF0aW9uIG1hcmtzIGluIHRoZWlyIG5hbWVzLgorICAgICAgICAgICh3aGlsZSAoc3RyaW5nLW1h dGNoICJcXCg/OlteXFxdXFx8XFxgXFwpXFwoXCJcXCkiIGZpbGUpCisgICAgICAgICAgICAoc2V0 cSBmaWxlIChyZXBsYWNlLW1hdGNoICJcXFwiIiBuaWwgdCBmaWxlIDEpKSkKKyAgICAgICAgICA7 OyBVbmVzY2FwZSBhbnkgc3BhY2VzIGVzY2FwZWQgYnkgbHMgLWIgKGJ1ZyMxMDQ2OSkuCisgICAg ICAgICAgOzsgT3RoZXIgLWIgcXVvdGVzLCBlZyBcdCwgXG4sIHdvcmsgdHJhbnNwYXJlbnRseS4K KyAgICAgICAgICAoaWYgKGRpcmVkLXN3aXRjaGVzLWVzY2FwZS1wIGRpcmVkLWFjdHVhbC1zd2l0 Y2hlcykKKyAgICAgICAgICAgIChsZXQgKChzdGFydCAwKQorICAgICAgICAgICAgICAgICAgKHJl cCAiIikKKyAgICAgICAgICAgICAgICAgIChzaGlmdCAtMSkpCisgICAgICAgICAgICAgIDs7IChp ZiAoZXEgbG9jYWxwICd2ZXJiYXRpbSkKKyAgICAgICAgICAgICAgOzsgICAgIChzZXRxIHJlcCAi XFxcXCIKKyAgICAgICAgICAgICAgOzsgICAgICAgICAgIHNoaWZ0ICsxKSkKKyAgICAgICAgICAg ICAgKHdoaWxlIChzdHJpbmctbWF0Y2ggIlxcKFxcXFxcXCkgIiBmaWxlIHN0YXJ0KQorICAgICAg ICAgICAgICAgIChzZXRxIGZpbGUgKHJlcGxhY2UtbWF0Y2ggcmVwIG5pbCB0IGZpbGUgMSkKKyAg ICAgICAgICAgICAgICAgICAgICBzdGFydCAoKyBzaGlmdCAobWF0Y2gtZW5kIDApKSkpKSkKKyAg ICAgICAgICAod2hlbiAoZXEgc3lzdGVtLXR5cGUgJ3dpbmRvd3MtbnQpCisgICAgICAgICAgICAo c2F2ZS1tYXRjaC1kYXRhCisgICAgICAgICAgICAgIChsZXQgKChzdGFydCAwKSkKKyAgICAgICAg ICAgICAgICAod2hpbGUgKHN0cmluZy1tYXRjaCAiXFxcXCIgZmlsZSBzdGFydCkKKyAgICAgICAg ICAgICAgICAgIChhc2V0IGZpbGUgKG1hdGNoLWJlZ2lubmluZyAwKSA/LykKKyAgICAgICAgICAg ICAgICAgIChzZXRxIHN0YXJ0IChtYXRjaC1lbmQgMCkpKSkpKQorICAgICAgICAgIDs7IEhlbmNl IHdlIGRvbid0IG5lZWQgdG8gd29ycnkgYWJvdXQgY29udmVydGluZyBgXFwnIGJhY2sgdG8gYFwn LgorICAgICAgICAgIChzZXRxIGZpbGUgKHJlYWQgKGNvbmNhdCAiXCIiIGZpbGUgIlwiIikpKQor ICAgICAgICAgIDs7IFRoZSBhYm92ZSBgcmVhZCcgd2lsbCByZXR1cm4gYSB1bmlieXRlIHN0cmlu ZyBpZiBGSUxFCisgICAgICAgICAgOzsgY29udGFpbnMgZWlnaHQtYml0LWNvbnRyb2wvZ3JhcGhp YyBjaGFyYWN0ZXJzLgorICAgICAgICAgIChpZiAoYW5kIGVuYWJsZS1tdWx0aWJ5dGUtY2hhcmFj dGVycworICAgICAgICAgICAgICAgICAgIChub3QgKG11bHRpYnl0ZS1zdHJpbmctcCBmaWxlKSkp CisgICAgICAgICAgICAoc2V0cSBmaWxlIChzdHJpbmctdG8tbXVsdGlieXRlIGZpbGUpKSkKKyAg ICAgICAgICAoYW5kIGZpbGUKKyAgICAgICAgICAgICAgIChmaWxlLW5hbWUtYWJzb2x1dGUtcCBm aWxlKQorICAgICAgICAgICAgICAgOzsgQSByZWxhdGl2ZSBmaWxlIG5hbWUgY2FuIHN0YXJ0IHdp dGggfi4KKyAgICAgICAgICAgICAgIDs7IERvbid0IHRyZWF0IGl0IGFzIGFic29sdXRlIGluIHRo aXMgY29udGV4dC4KKyAgICAgICAgICAgICAgIChub3QgKGVxIChhcmVmIGZpbGUgMCkgP34pKQor ICAgICAgICAgICAgICAgKHNldHEgYWJzb2x1dGUtcCB0KSkKKyAgICAgICAgICA7OzsgRU5EIGNv ZGUgYm9ycm93ZWQgZnJvbSBgZGlyZWQtZ2V0LWZpbGVuYW1lJy4KKyAgICAgICAgICAoaWYgKGFu ZCBhYnNvbHV0ZS1wCisgICAgICAgICAgICAgICAgICAgOzsgVGVzdCB3aGV0aGVyIGFic29sdXRl IGZpbGUvZGlyZWN0b3J5IGlzIGluIHRoZSByb290IG9mIHRoZSBoYXJkIGRyaXZlLgorICAgICAg ICAgICAgICAgICAgIChub3QgKGRpcmVkcC1yb290LWRpcmVjdG9yeS1wIChkaXJlZHAtcGFyZW50 LWRpciBmaWxlKSkpKQorICAgICAgICAgICAgKHNldHEgcDIgKC0gcDMgKGxlbmd0aCAoZmlsZS1u YW1lLW5vbmRpcmVjdG9yeSBmaWxlKSkpKQorICAgICAgICAgICAgOzs7IEZJWE1FOiAgRmlyc3Qg YXR0ZW1wdCBhdCBkZWFsaW5nIHdpdGggcmVsYXRpdmUgcGF0aHMKKyAgICAgICAgICAgIDs7OyBX aWxsIHRoaXMgYWx3YXlzIGJlIHRoZSBzYW1lIGFzIHdoZW4gZGVhbGluZyB3aXRoIGFuIGFic29s dXRlIHBhdGggKGFib3ZlKT8KKyAgICAgICAgICAgIChzZXRxIHAyICgtIHAzIChsZW5ndGggKGZp bGUtbmFtZS1ub25kaXJlY3RvcnkgZmlsZSkpKSkpCisgICAgICAgICAgOzs7IGB3ZGlyZWQtZ2V0 LWZpbGVuYW1lJyByZWxpZXMgdXBvbiB0aGUgb3JpZ2luYWwgbG9jYXRpb24gb2YgdGhlCisgICAg ICAgICAgOzs7IG9mIHRoZSBPTEQtTkFNRSBhbmQgRklMRU5BTUUgdGV4dCBwcm9wZXJ0aWVzLgor ICAgICAgICAgIChhZGQtdGV4dC1wcm9wZXJ0aWVzICgxLSBwMSkgcDEgYChvbGQtbmFtZSAsZmls ZW5hbWUpKQorICAgICAgICAgIDs7OyBNYWtlIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGBmaWxlLW5h bWUtbm9uZGlyZWN0b3J5JyB0aGUgcmVhZC1vbmx5IGJvdW5kYXJ5LgorICAgICAgICAgIDs7IFRo ZSByZWFyLW5vbnN0aWNreSBwcm9wZXJ0eSBiZWxvdyBzaGFsbCBlbnN1cmUgdGhhdCB0ZXh0IHBy ZWNlZGluZworICAgICAgICAgIDs7IHRoZSBmaWxlbmFtZSBjYW4ndCBiZSBtb2RpZmllZC4KKyAg ICAgICAgICAoYWRkLXRleHQtcHJvcGVydGllcyAoMS0gcDIpIHAyIGAocmVhci1ub25zdGlja3kg KHJlYWQtb25seSkpKQorICAgICAgICAgIDs7OyBFeGNlcHQgZm9yIHRoZSBpbml0aWFsIGxvb3Ag d2hlcmUgQi1QUk9URUNUSU9OIGlzIHNldCB0byBgcG9pbnQtbWluJywKKyAgICAgICAgICA7Ozsg Qi1QUk9URUNUSU9OIGlzIHRoZSBlbmQgb2YgdGhlIHByZWNlZGluZyBmaWxlbmFtZSBmcm9tIHRo ZSBwcmV2aW91cyBsb29wLgorICAgICAgICAgIChwdXQtdGV4dC1wcm9wZXJ0eSBiLXByb3RlY3Rp b24gcDIgJ3JlYWQtb25seSB0KQorICAgICAgICAgIChpZiAoPSAocG9pbnQpIChwb2ludC1tYXgp KQorICAgICAgICAgICAgKHB1dC10ZXh0LXByb3BlcnR5ICgxLSBwMykgcDMgJ2VuZC1uYW1lIHQp CisgICAgICAgICAgICAocHV0LXRleHQtcHJvcGVydHkgcDMgKDErIHAzKSAnZW5kLW5hbWUgdCkp KQorICAgICAgICA7OzsgRXhjZXB0IGZvciB0aGUgaW5pdGlhbCBsb29wIHdoZXJlIEItUFJPVEVD VElPTiBpcyBzZXQgdG8gYHBvaW50LW1pbicsCisgICAgICAgIDs7OyBCLVBST1RFQ1RJT04gaXMg dGhlIGVuZCBvZiB0aGUgcHJlY2VkaW5nIGZpbGVuYW1lIGZyb20gdGhlIHByZXZpb3VzIGxvb3Au CisgICAgICAgICh3aGVuIHAzCisgICAgICAgICAgKHNldHEgYi1wcm90ZWN0aW9uIHAzKSkKICAg ICAgICAgKGZvcndhcmQtbGluZSkpCiAgICAgICAocHV0LXRleHQtcHJvcGVydHkgYi1wcm90ZWN0 aW9uIChwb2ludC1tYXgpICdyZWFkLW9ubHkgdCkpKSkKIApAQCAtMzQ0LDkgKzQ2NiwxNyBAQCBu b24tbmlsIG1lYW5zIHJldHVybiBvbGQgZmlsZW5hbWUuIgogICAgICAgICAoYW5kIGZpbGUgKHNl dHEgZmlsZSAod2RpcmVkLW5vcm1hbGl6ZS1maWxlbmFtZSBmaWxlIChub3Qgb2xkKSkpKSkKICAg ICAgIChpZiAob3Igbm8tZGlyIG9sZCkKIAkgIGZpbGUKLQkoYW5kIGZpbGUgKD4gKGxlbmd0aCBm aWxlKSAwKQotICAgICAgICAgICAgIChjb25jYXQgKGRpcmVkLWN1cnJlbnQtZGlyZWN0b3J5KSBm aWxlKSkpKSkpCi0KKyAgICAgICAgKGNvbmQKKyAgICAgICAgICA7OzsgV2hlbiBGSUxFIGlzIHJl bGF0aXZlLCBjb25jYXRlbmF0ZSBkZWZhdWx0LWRpcmVjdG9yeSB0byBiZWdpbm5pbmcuCisgICAg ICAgICAgKChhbmQgZmlsZQorICAgICAgICAgICAgICAgICg+IChsZW5ndGggZmlsZSkgMCkKKyAg ICAgICAgICAgICAgICAobm90IChmaWxlLW5hbWUtYWJzb2x1dGUtcCBmaWxlKSkKKyAgICAgICAg ICAgICAgICAoY29uY2F0IChkaXJlZC1jdXJyZW50LWRpcmVjdG9yeSkgZmlsZSkpKQorICAgICAg ICAgIDs7OyBXaGVuIEZJTEUgaXMgYWJzb2x1dGUsIG5vIG5lZWQgdG8gY29uY2F0ZW5hdGUgdGhl IGRlZmF1bHQtZGlyZWN0b3J5LgorICAgICAgICAgICgoYW5kIGZpbGUKKyAgICAgICAgICAgICAg ICAoPiAobGVuZ3RoIGZpbGUpIDApCisgICAgICAgICAgICAgICAgKGZpbGUtbmFtZS1hYnNvbHV0 ZS1wIGZpbGUpCisgICAgICAgICAgICAgICAgZmlsZSkpKSkpKSkKIAogKGRlZnVuIHdkaXJlZC1j aGFuZ2UtdG8tZGlyZWQtbW9kZSAoKQogICAiQ2hhbmdlIHRoZSBtb2RlIGJhY2sgdG8gZGlyZWQu IgpAQCAtMzYzLDcgKzQ5Myw4IEBAIG5vbi1uaWwgbWVhbnMgcmV0dXJuIG9sZCBmaWxlbmFtZS4i CiAgIChzZXRxIG1vZGUtbmFtZSAiRGlyZWQiKQogICAoZGlyZWQtYWR2ZXJ0aXNlKQogICAocmVt b3ZlLWhvb2sgJ2tpbGwtYnVmZmVyLWhvb2sgJ3dkaXJlZC1jaGVjay1raWxsLWJ1ZmZlciB0KQot ICAoc2V0IChtYWtlLWxvY2FsLXZhcmlhYmxlICdyZXZlcnQtYnVmZmVyLWZ1bmN0aW9uKSAnZGly ZWQtcmV2ZXJ0KSkKKyAgKHVubGVzcyAod2RpcmVkLWZpbmQtZGlyZWQtYnVmZmVyLXApCisgICAg KHNldCAobWFrZS1sb2NhbC12YXJpYWJsZSAncmV2ZXJ0LWJ1ZmZlci1mdW5jdGlvbikgJ2RpcmVk LXJldmVydCkpKQogCiAKIChkZWZ1biB3ZGlyZWQtYWJvcnQtY2hhbmdlcyAoKQpAQCAtNDU3LDYg KzU4OCwxNiBAQCBub24tbmlsIG1lYW5zIHJldHVybiBvbGQgZmlsZW5hbWUuIgogICAgICAgICAo cHJvZ3Jlc3MgbmlsKQogICAgICAgICAoZXJyb3JzIDApCiAgICAgICAgIChvdmVyd3JpdGUgKG9y IChub3Qgd2RpcmVkLWNvbmZpcm0tb3ZlcndyaXRlKSAxKSkpCisgICAgOzs7IFdlIG11c3QgcHJv Y2VzcyB0aGUgZGVlcGVzdCBkaXJlY3RvcmllcyBmaXJzdCBpbiB0aW1lLCBhbmQgZ3JhZHVhbGx5 CisgICAgOzs7IHdvcmsgb3VyIHdheSBiYWNrd2FyZHMuICBTZWU6ICBodHRwczovL2VtYWNzLnN0 YWNrZXhjaGFuZ2UuY29tL2EvNDE2ODIvMjI4NworICAgIDs7OyBTb3J0aW5nIGZ1bmN0aW9uIHdy aXR0ZW4gYnkgQFRvYmlhcyBvbiBlbWFjcy5zdGFja2V4Y2hhbmdlLmNvbSAoc3VwcmEpCisgICAg Ozs7IFJFTkFNRVMgYXJlIGluIHRoZSBmb3JtYXQgb2YgKGNvbnMgZmlsZS1vbGQgKHN1YnN0aXR1 dGUtaW4tZmlsZS1uYW1lIGZpbGUtbmV3KSkKKyAgICA7OzsgRmlsZXMvZGlyZWN0b3JpZXMgd2l0 aCB0aGUgZ3JlYXRlc3QgZGVwdGggYXJlIHNvcnRlZCBmaXJzdCBpbiB0aW1lLgorICAgIDs7OyBU aGUgZnVuY3Rpb24gYHBvcCcgKHVzZWQgaGVyZWluYmVsb3cpIHVzZXMgdGhlIGZpcnN0IGVsZW1l bnQgb2YgdGhlIGxpc3QuCisgICAgKHJlcXVpcmUgJ2NsLXNlcSkKKyAgICAoc2V0cSByZW5hbWVz IChjbC1zdGFibGUtc29ydCByZW5hbWVzIChsYW1iZGEgKHBhdGgxIHBhdGgyKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKD4gKGNsLWNvdW50ID8vIChjYXIg cGF0aDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNsLWNvdW50ID8vIChjYXIgcGF0aDIpKSkpKSkKICAgICAod2hpbGUgKG9yIHJlbmFtZXMKICAg ICAgICAgICAgICAgIDs7IFdlJ3ZlIGRvbmUgb25lIHJvdW5kIHRocm91Z2ggdGhlIHJlbmFtZXMs IHdlIGhhdmUgZm91bmQKICAgICAgICAgICAgICAgIDs7IHNvbWUgcmVzaWR1ZSwgYnV0IHdlIGFs c28gbWFkZSBzb21lIHByb2dyZXNzLCBzbyBtYXliZQo= --Multipart_Mon_May_28_16:11:38_2018-1--
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.