GNU bug report logs - #7538
[PATCH / wishlist] rect.el: (rectangle-number-lines) New user command C-x r N

Previous Next

Package: emacs;

Reported by: Jari Aalto <jari.aalto <at> cante.net>

Date: Fri, 3 Dec 2010 09:45:03 UTC

Severity: wishlist

Tags: patch

Merged with 4382

Found in version 23.2+1-5.1

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 7538 in the body.
You can then email your comments to 7538 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to owner <at> debbugs.gnu.org, gse <at> antisleep.com, bug-gnu-emacs <at> gnu.org:
bug#7538; Package emacs. (Fri, 03 Dec 2010 09:45:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jari Aalto <jari.aalto <at> cante.net>:
New bug report received and forwarded. Copy sent to gse <at> antisleep.com, bug-gnu-emacs <at> gnu.org. (Fri, 03 Dec 2010 09:45:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Jari Aalto <jari.aalto <at> cante.net>
To: submit <at> debbugs.gnu.org
Subject: [PATCH / wishlist] rect.el: (rectangle-number-lines) New user command
	C-x r N
Date: Fri, 03 Dec 2010 11:49:50 +0200
[Message part 1 (text/plain, inline)]
Package: emacs
Version: 23.2+1-5.1
Severity: wishlist
X-debbugs-cc: Scott Evans <gse <at> antisleep.com>

The following patch is based on Scott Evans' work (2006):

    http://www.antisleep.com/download/elisp/gse-number-rect.el

from where the relevant functionatily has been lifted.

- Used by permission of Scott (Email exchange, GPL).
- If my memory serves right, Scott applied 2009 for disclaimer papers.
  Please verify the paper archives.

2010-12-03  Jari Aalto  <jari.aalto <at> cante.net>

        * rect.el (number-rectangle): New user function.
        (rectangle-number-line-callback): New function.
        (rectangle-number-line-format-history): New variable.
        (rectangle-number-line-counter): New variable.
        (define-key ctl-x-r-map "N" 'number-rectangle): New
        user key binding. The basis of the rectangle numbering code was
        lifted from gse-number-rect.el, orignally developed by Scott
        Evans <gse <at> antisleep.com>. Used by permission (GPL).

[0001-etc-NEWS-Changes-in-Specialized-Modes-number-rectang.patch (text/x-diff, inline)]
From 70387b605961ac9ea35750195763738dc9d50d77 Mon Sep 17 00:00:00 2001
From: Jari Aalto <jari.aalto <at> cante.net>
Date: Fri, 3 Dec 2010 11:32:15 +0200
Subject: [PATCH] etc/NEWS: (Changes in Specialized Modes): number-rectangle
Organization: Private
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit


Signed-off-by: Jari Aalto <jari.aalto <at> cante.net>
---
 etc/NEWS |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index 5e16f45..f5afbf2 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -309,8 +309,11 @@ set `x-select-enable-clipboard' to nil.
 ** shell-mode can track your cwd by reading it from your prompt.
 Just set shell-dir-cookie-re to an appropriate regexp.
 
-** Modula-2 mode provides auto-indentation.
+** New command `rectangle-number-lines' bound globally to `C-x r N'
+can number selected lines in region. The optional zero padding, if the
+line count is bigger than 9, is controlled by a prefix argument.
 
+** Modula-2 mode provides auto-indentation.
 ** latex-electric-env-pair-mode keeps \begin..\end matched on the fly.
 
 ** FIXME: xdg-open for browse-url and reportbug, 2010/08.
-- 
1.7.2.3

[0001-lisp-rect.el-number-rectangle-New-user-key-binding-C.patch (text/x-diff, inline)]
From 7fe34999c0926bf9a988cdd1a0913de3f41ab18d Mon Sep 17 00:00:00 2001
From: Jari Aalto <jari.aalto <at> cante.net>
Date: Fri, 3 Dec 2010 11:20:38 +0200
Subject: [PATCH] lisp/rect.el: (number-rectangle): New user key binding C-x r N
Organization: Private
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit

Signed-off-by: Jari Aalto <jari.aalto <at> cante.net>
---
 lisp/rect.el |   40 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/lisp/rect.el b/lisp/rect.el
index 6658408..f05af8d 100644
--- a/lisp/rect.el
+++ b/lisp/rect.el
@@ -40,6 +40,7 @@
 ;;;###autoload (define-key ctl-x-r-map "y" 'yank-rectangle)
 ;;;###autoload (define-key ctl-x-r-map "o" 'open-rectangle)
 ;;;###autoload (define-key ctl-x-r-map "t" 'string-rectangle)
+;;;###autoload (define-key ctl-x-r-map "N" 'rectangle-number-lines)
 
 ;;; Code:
 
@@ -396,6 +397,45 @@ rectangle which were empty."
 	(delete-region pt (point))
 	(indent-to endcol)))))
 
+(defvar rectangle-number-line-counter nil
+  "Variable holding line numbering information.
+Initial value is set in function `rectangle-number-lines'
+and incremented for each line in `rectangle-number-line-callback'.")
+
+(defvar rectangle-number-line-format-history nil
+  "History variable that records previous format strings.")
+
+(defun rectangle-number-line-callback (start end format-string)
+  (move-to-column start t)
+  (setq rectangle-number-line-counter (+ rectangle-number-line-counter 1))
+  (insert (format format-string rectangle-number-line-counter)))
+
+(defun rectangle-number-lines (beg end start-at format &optional no-zero-padding)
+  "Insert numbers in front of lines in rectangle BEG END.
+
+START-AT specifices the first number to start at.
+FORMAT is format string where %i denotes inserted number.
+
+If prefix arg NO-ZERO-PADDING is non-nil, do not padd numbers
+with leading zeroes."
+  (interactive
+   (list
+    (region-beginning)
+    (region-end)
+    (if (functionp 'read-number)
+        (read-number "First number [1]: " 1)
+      (string-to-int (read-string "First number [1]: " nil nil "1")))
+    (read-string "Format: " "%i " 'rectangle-number-line-format-history)
+    current-prefix-arg))
+  (setq start-at (- start-at 1))
+  (unless no-zero-padding
+    (let* ((max     (+ (count-lines beg end) start-at))
+	   (longest (length (int-to-string (+ 1 max))))
+	   (fmt     (concat "%0" (int-to-string longest) "i")))
+      (setq format (replace-regexp-in-string "%i" fmt format))))
+  (setq rectangle-number-line-counter start-at)
+  (apply-on-rectangle 'rectangle-number-line-callback beg end format))
+
 (provide 'rect)
 
 ;; arch-tag: 178847b3-1f50-4b03-83de-a6e911cc1d16
-- 
1.7.2.3

[Message part 4 (text/plain, inline)]
-- System Information
Debian Release: squeeze/sid
  APT Prefers testing
  APT policy: (990, testing) (500, unstable) (1, experimental)
Architecture: amd64
Kernel: Linux picasso 2.6.32-5-amd64 #1 SMP Fri Sep 17 21:50:19 UTC 2010 x86_64 GNU/Linux
Locale: LANG=en_DK.UTF-8

-- Versions of packages `emacs depends on'.
Depends:
emacs23         23.2+1-5.1      GNU Emacs is the extensible self-documenting 
emacs23-lucid   23.2+1-5.1      GNU Emacs is the extensible self-documenting 
emacs23-nox     23.2+1-5.1      GNU Emacs is the extensible self-documenting 

Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#7538; Package emacs. (Fri, 03 Dec 2010 17:18:02 GMT) Full text and rfc822 format available.

Message #8 received at 7538 <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: 7538 <at> debbugs.gnu.org
Subject: Re: bug#7538: [PATCH / wishlist] rect.el: (rectangle-number-lines)
	New user command C-x r N
Date: Fri, 03 Dec 2010 12:22:50 -0500
merge 4382 7538
stop

This is a duplicate of

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=4382

Same submitter, same typo in the ChangeLog.




Merged 4382 7538. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Fri, 03 Dec 2010 17:18:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to Jari Aalto <jari.aalto <at> cante.net> Request was from Chong Yidong <cyd <at> stupidchicken.com> to control <at> debbugs.gnu.org. (Wed, 15 Dec 2010 02:52:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 12 Jan 2011 12:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 14 years and 241 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.