]> code.delx.au - gnu-emacs/blobdiff - lisp/register.el
Update AUCTeX
[gnu-emacs] / lisp / register.el
index 3adb84ba8b611d758bf1168ea49126010477eb2f..bab9d01edf2b0a33953b72a1e18191fa065bfcad 100644 (file)
@@ -140,13 +140,13 @@ If NUMBER is nil, a decimal number is read from the buffer starting
 at point, and point moves to the end of that number.
 Interactively, NUMBER is the prefix arg (none means nil)."
   (interactive "P\ncNumber to register: ")
-  (set-register register 
+  (set-register register
                (if number
                    (prefix-numeric-value number)
                  (if (looking-at "\\s-*-?[0-9]+")
                      (progn
                        (goto-char (match-end 0))
-                       (string-to-int (match-string 0)))
+                       (string-to-number (match-string 0)))
                    0))))
 
 (defun increment-register (number register)
@@ -227,16 +227,24 @@ The Lisp value REGISTER is a character."
        (princ (car val))))
 
      ((stringp val)
-      (setq val
-           (remove-list-of-text-properties 0 (length val)
-                                           yank-excluded-properties val))
+      (remove-list-of-text-properties 0 (length val)
+                                      yank-excluded-properties val)
       (if verbose
          (progn
            (princ "the text:\n")
            (princ val))
-       (princ "text starting with\n    ")
-       (string-match "[^ \t\n].\\{,20\\}" val)
-       (princ (match-string 0 val))))
+       (cond
+        ;; Extract first N characters starting with first non-whitespace.
+        ((string-match (format "[^ \t\n].\\{,%d\\}"
+                               ;; Deduct 6 for the spaces inserted below.
+                               (min 20 (max 0 (- (window-width) 6))))
+                       val)
+         (princ "text starting with\n    ")
+         (princ (match-string 0 val)))
+        ((string-match "^[ \t\n]+$" val)
+         (princ "whitespace"))
+        (t
+         (princ "the empty string")))))
      (t
       (princ "Garbage:\n")
       (if verbose (prin1 val))))))
@@ -296,8 +304,10 @@ START and END are buffer positions indicating what to prepend."
 
 (defun copy-rectangle-to-register (register start end &optional delete-flag)
   "Copy rectangular region into register REGISTER.
-With prefix arg, delete as well.
-Called from program, takes four args: REGISTER, START, END and DELETE-FLAG.
+With prefix arg, delete as well.  To insert this register
+in the buffer, use \\[insert-register].
+
+Called from a program, takes four args: REGISTER, START, END and DELETE-FLAG.
 START and END are buffer positions giving two corners of rectangle."
   (interactive "cCopy rectangle to register: \nr\nP")
   (set-register register
@@ -305,4 +315,6 @@ START and END are buffer positions giving two corners of rectangle."
                    (delete-extract-rectangle start end)
                  (extract-rectangle start end))))
 
+(provide 'register)
+;;; arch-tag: ce14dd68-8265-475f-9341-5d4ec5a53035
 ;;; register.el ends here