From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: MON KEY Newsgroups: gmane.emacs.bugs Subject: bug#7503: copy-and-insert-previous-line Date: Sun, 28 Nov 2010 16:05:34 -0500 Message-ID: References: <4CF22EA9.3020207@inducks.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: dough.gmane.org 1290978925 5452 80.91.229.12 (28 Nov 2010 21:15:25 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 28 Nov 2010 21:15:25 +0000 (UTC) Cc: mje@inducks.org, schwab@linux-m68k.org, sdl.web@gmail.com To: 7503@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Nov 28 22:15:19 2010 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1PMoac-0004Sa-Hs for geb-bug-gnu-emacs@m.gmane.org; Sun, 28 Nov 2010 22:15:19 +0100 Original-Received: from localhost ([127.0.0.1]:55932 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PMoab-0002Ny-QX for geb-bug-gnu-emacs@m.gmane.org; Sun, 28 Nov 2010 16:15:17 -0500 Original-Received: from [140.186.70.92] (port=53529 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PMoaI-0002Dv-AO for bug-gnu-emacs@gnu.org; Sun, 28 Nov 2010 16:14:59 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PMoaH-0007Os-B7 for bug-gnu-emacs@gnu.org; Sun, 28 Nov 2010 16:14:58 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:35788) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PMoaH-0007Ol-9P for bug-gnu-emacs@gnu.org; Sun, 28 Nov 2010 16:14:57 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1PMoMo-0007ja-IF; Sun, 28 Nov 2010 16:01:02 -0500 X-Loop: help-debbugs@gnu.org In-Reply-To: <4CF22EA9.3020207@inducks.org> Resent-From: MON KEY Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 28 Nov 2010 21:01:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 7503 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 7503-submit@debbugs.gnu.org id=B7503.129097800529664 (code B ref 7503); Sun, 28 Nov 2010 21:01:02 +0000 Original-Received: (at 7503) by debbugs.gnu.org; 28 Nov 2010 21:00:05 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1PMoLt-0007iP-81 for submit@debbugs.gnu.org; Sun, 28 Nov 2010 16:00:05 -0500 Original-Received: from mail-wy0-f172.google.com ([74.125.82.172]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1PMoLr-0007hd-IK for 7503@debbugs.gnu.org; Sun, 28 Nov 2010 16:00:04 -0500 Original-Received: by wyf23 with SMTP id 23so2864478wyf.3 for <7503@debbugs.gnu.org>; Sun, 28 Nov 2010 13:05:35 -0800 (PST) Original-Received: by 10.216.172.149 with SMTP id t21mr2394802wel.43.1290978334875; Sun, 28 Nov 2010 13:05:34 -0800 (PST) Original-Received: by 10.216.70.212 with HTTP; Sun, 28 Nov 2010 13:05:34 -0800 (PST) X-Google-Sender-Auth: m42tUrvKlNlNALa9DnOkXSpnZpk X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sun, 28 Nov 2010 16:01:02 -0500 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) 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: , Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:41985 Archived-At: I think such differences is the reason why such commands are not very good candidates for inclusion in Emacs: there are so many different commands that do something along these lines, that adding them all would not make much sense. FWIW following is my more generalized take on Andreas' and Mads' versions. This one: - Doesn't step on the kill-ring; - Has option to keep/omit text-props; - inserts only when asked to do so: ;;; (defun line-previous-duplicate (&optional keep-props insrtp intrp) "Return content of previous line. When optional arg KEEP-PROPS is non-nil return value is as if by `buffer-substring'. Default is as if by `buffer-substring-no-properties'. When optional arg INSRTP is non-nil or called-interactively, insert return value at point. Does not move point." (interactive "*i\ni\np") (save-excursion (let ((lpd-psns `(,(progn (forward-line -1) (point)) . ,(progn (forward-line 1) (point))))) (set (or (and intrp (quote intrp)) (and insrtp (quote insrtp)) (and (set (quote intrp) (quote insrtp)) (quote insrtp))) (or (and keep-props (buffer-substring (car lpd-psns) (cdr lpd-psns))) (buffer-substring-no-properties (car lpd-psns) (cdr lpd-psns))))) (or (and (not (eq intrp 'insrtp)) (stringp insrtp) (insert insrtp)) (and intrp (stringp intrp) (insert intrp)) insrtp))) -- /s_P\