GNU bug report logs -
#7538
[PATCH / wishlist] rect.el: (rectangle-number-lines) New user command C-x r N
Previous Next
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.
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):
[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):
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.