(File): Add SMTP and SES.
[bpt/emacs.git] / lisp / register.el
index 3adb84b..0ba6a9a 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,5 @@ START and END are buffer positions giving two corners of rectangle."
                    (delete-extract-rectangle start end)
                  (extract-rectangle start end))))
 
+;;; arch-tag: ce14dd68-8265-475f-9341-5d4ec5a53035
 ;;; register.el ends here