From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andreas Politz Newsgroups: gmane.emacs.bugs Subject: bug#12795: 24.2.50; ibuffers mark commands are quirky Date: Sun, 04 Nov 2012 01:47:06 +0100 Message-ID: <87a9uy9otx.fsf@fh-trier.de> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1351990091 6723 80.91.229.3 (4 Nov 2012 00:48:11 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 4 Nov 2012 00:48:11 +0000 (UTC) To: 12795@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Nov 04 01:48:20 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 1TUoNv-0007gC-2V for geb-bug-gnu-emacs@m.gmane.org; Sun, 04 Nov 2012 01:48:19 +0100 Original-Received: from localhost ([::1]:49312 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUoNm-0000Ct-0w for geb-bug-gnu-emacs@m.gmane.org; Sat, 03 Nov 2012 20:48:10 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:50020) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUoNi-0000Ch-Nd for bug-gnu-emacs@gnu.org; Sat, 03 Nov 2012 20:48:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TUoNh-0003oX-ID for bug-gnu-emacs@gnu.org; Sat, 03 Nov 2012 20:48:06 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:37523) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUoNh-0003oT-Ez for bug-gnu-emacs@gnu.org; Sat, 03 Nov 2012 20:48:05 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TUoQX-0001xw-Sv for bug-gnu-emacs@gnu.org; Sat, 03 Nov 2012 20:51:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Andreas Politz Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 04 Nov 2012 00:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 12795 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.13519902287508 (code B ref -1); Sun, 04 Nov 2012 00:51:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 4 Nov 2012 00:50:28 +0000 Original-Received: from localhost ([127.0.0.1]:47774 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TUoPy-0001x2-MQ for submit@debbugs.gnu.org; Sat, 03 Nov 2012 20:50:27 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:42994) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TUoPv-0001ws-AG for submit@debbugs.gnu.org; Sat, 03 Nov 2012 20:50:24 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TUoN3-0003kt-7h for submit@debbugs.gnu.org; Sat, 03 Nov 2012 20:47:26 -0400 Original-Received: from lists.gnu.org ([208.118.235.17]:58882) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUoN3-0003kl-49 for submit@debbugs.gnu.org; Sat, 03 Nov 2012 20:47:25 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:49930) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUoN2-00009s-0F for bug-gnu-emacs@gnu.org; Sat, 03 Nov 2012 20:47:25 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TUoN0-0003kM-Mc for bug-gnu-emacs@gnu.org; Sat, 03 Nov 2012 20:47:23 -0400 Original-Received: from gateway-0.fh-trier.de ([143.93.54.122]:52378) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TUoN0-0003k9-9h for bug-gnu-emacs@gnu.org; Sat, 03 Nov 2012 20:47:22 -0400 Original-Received: from gateway-b.fh-trier.de (gateway-b.fh-trier.de [143.93.54.182]) by gateway-0.fh-trier.de (Postfix) with ESMTP id B3BDF1C80F for ; Sun, 4 Nov 2012 01:47:19 +0100 (CET) X-Virus-Scanned: by Amavisd-new + McAfee uvscan + ClamAV [Rechenzentrum FH-Trier (r/ft)] Original-Received: from luca (dslb-088-068-057-243.pools.arcor-ip.net [88.68.57.243]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) (Authenticated sender: politza) by gateway-b.fh-trier.de (Postfix) with ESMTPSA id 520EC17B427 for ; Sun, 4 Nov 2012 01:47:07 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha1; c=simple/simple; d=fh-trier.de; s=default; t=1351990027; bh=MLWt3pGEKgSviPCkIm4zuVzR6IM=; h=From:To:Subject:Date:Message-ID:MIME-Version:Content-Type; b=XwAKk0KgXPUahy+/HMuOVEvEho5zhFdSqId4Mi4s/fkIoj0WDAiNWkH/l1MMciUMU g7AW8cnEKDFRc2p35niqbcfdmatwuw8BkYxf83RACKmCFDUxQ1Ipw7FeGeeW1UWxYT HzmNb2f84KshHbUxLcvx/WunbrN7bIRXFHffOTwQ= Original-Received: from localhost ([127.0.0.1] helo=luca) by luca with esmtp (Exim 4.72) (envelope-from ) id 1TUoMk-00023p-FK for bug-gnu-emacs@gnu.org; Sun, 04 Nov 2012 01:47:06 +0100 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] 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.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.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-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:66416 Archived-At: Hey Emacs guys ! I found some problems with ibuffers movement commands: The mark commands in ibuffer use a "P" interactive spec and error on C-u prefix args. They don't support negative arguments and the backwards unmarking behaviour is non-standard (= dired). The attached patch addresses these points. -ap diff -c -L /usr/share/emacs/24.2.50/lisp/ibuffer.el.gz -L \#\ /tmp/jka-com2962CdI /tmp/buffer-content-2962cxU *** /usr/share/emacs/24.2.50/lisp/ibuffer.el.gz --- # *************** *** 1359,1382 **** (defun ibuffer-mark-forward (arg) "Mark the buffer on this line, and move forward ARG lines. If point is on a group name, this function operates on that group." ! (interactive "P") ! (ibuffer-mark-interactive arg ibuffer-marked-char 1)) (defun ibuffer-unmark-forward (arg) "Unmark the buffer on this line, and move forward ARG lines. If point is on a group name, this function operates on that group." ! (interactive "P") ! (ibuffer-mark-interactive arg ?\s 1)) (defun ibuffer-unmark-backward (arg) "Unmark the buffer on this line, and move backward ARG lines. If point is on a group name, this function operates on that group." ! (interactive "P") ! (ibuffer-mark-interactive arg ?\s -1)) ! (defun ibuffer-mark-interactive (arg mark movement) (ibuffer-assert-ibuffer-mode) (or arg (setq arg 1)) (ibuffer-forward-line 0) (ibuffer-aif (get-text-property (point) 'ibuffer-filter-group-name) (progn --- 1359,1385 ---- (defun ibuffer-mark-forward (arg) "Mark the buffer on this line, and move forward ARG lines. If point is on a group name, this function operates on that group." ! (interactive "p") ! (ibuffer-mark-interactive arg ibuffer-marked-char)) (defun ibuffer-unmark-forward (arg) "Unmark the buffer on this line, and move forward ARG lines. If point is on a group name, this function operates on that group." ! (interactive "p") ! (ibuffer-mark-interactive arg ?\s)) (defun ibuffer-unmark-backward (arg) "Unmark the buffer on this line, and move backward ARG lines. If point is on a group name, this function operates on that group." ! (interactive "p") ! (ibuffer-unmark-forward (- arg))) ! (defun ibuffer-mark-interactive (arg mark &optional movement) (ibuffer-assert-ibuffer-mode) (or arg (setq arg 1)) + ;; deprecated movement argument + (when (and movement (< movement 0)) + (setq arg (- arg))) (ibuffer-forward-line 0) (ibuffer-aif (get-text-property (point) 'ibuffer-filter-group-name) (progn *************** *** 1386,1393 **** (let ((inhibit-read-only t)) (while (> arg 0) (ibuffer-set-mark mark) ! (ibuffer-forward-line movement t) ! (setq arg (1- arg)))))) (defun ibuffer-set-mark (mark) (ibuffer-assert-ibuffer-mode) --- 1389,1400 ---- (let ((inhibit-read-only t)) (while (> arg 0) (ibuffer-set-mark mark) ! (ibuffer-forward-line 1 t) ! (setq arg (1- arg))) ! (while (< arg 0) ! (ibuffer-forward-line -1 t) ! (ibuffer-set-mark mark) ! (setq arg (1+ arg)))))) (defun ibuffer-set-mark (mark) (ibuffer-assert-ibuffer-mode) Diff finished. Sun Nov 4 01:32:54 2012