unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Strange behaviour of M-h with negative arguments
@ 2014-10-23  5:40 H. Dieter Wilhelm
  0 siblings, 0 replies; only message in thread
From: H. Dieter Wilhelm @ 2014-10-23  5:40 UTC (permalink / raw)
  To: emacs-devel

Hello (),

please try from Emacs-24.4 to:

    M-- M-h M-h M-h.

This is not in line with the other marking commands like M-@...

Would somebody please have a look at the following?

diff -c /usr/local/src/emacs-24.4/lisp/textmodes/paragraphs.el /usr/local/src/emacs/lisp/textmodes/paragraphs.el
*** /usr/local/src/emacs-24.4/lisp/textmodes/paragraphs.el	2014-03-21 06:34:40.000000000 +0100
--- /usr/local/src/emacs/lisp/textmodes/paragraphs.el	2014-10-22 18:48:01.603492155 +0200
***************
*** 370,400 ****
    (forward-paragraph (- arg)))
  
  (defun mark-paragraph (&optional arg allow-extend)
!   "Put point at beginning of this paragraph, mark at end.
! The paragraph marked is the one that contains point or follows point.
  
! With argument ARG, puts mark at end of a following paragraph, so that
! the number of paragraphs marked equals ARG.
  
! If ARG is negative, point is put at end of this paragraph, mark is put
! at beginning of this or a previous paragraph.
  
! Interactively (or if ALLOW-EXTEND is non-nil), if this command is
! repeated or (in Transient Mark mode) if the mark is active,
! it marks the next ARG paragraphs after the ones already marked."
!   (interactive "p\np")
!   (unless arg (setq arg 1))
!   (when (zerop arg)
!     (error "Cannot mark zero paragraphs"))
!   (cond ((and allow-extend
! 	      (or (and (eq last-command this-command) (mark t))
  		  (and transient-mark-mode mark-active)))
  	 (set-mark
  	  (save-excursion
! 	    (goto-char (mark))
  	    (forward-paragraph arg)
  	    (point))))
! 	(t
  	 (forward-paragraph arg)
  	 (push-mark nil t t)
  	 (backward-paragraph arg))))
--- 370,411 ----
    (forward-paragraph (- arg)))
  
  (defun mark-paragraph (&optional arg allow-extend)
!   "Put mark at beginning of this paragraph,  point at end.
! The paragraph marked is the one that contains point or follows
! point. 
  
! With argument ARG, puts mark at the end of a following paragraph,
! so that the number of paragraphs marked equals ARG.
  
! If ARG is negative, point is put at the beginning of this
! paragraph, mark is put at the end of this or a previous
! paragraph.
  
! Interactively, if this command is repeated or (in Transient Mark
! mode) if the mark is active, it marks the next ARG paragraphs
! after the ones already marked.  This means when activating the
! mark before using this command, the current paragraph is only
! marked from point."
!   (interactive "P\np")
!   (cond ((zerop (prefix-numeric-value arg)) ;argument is zero
! 	 (message "Will not mark zero paragraphs.")) ;currently ERROR
! 	((and allow-extend	      ;we already called this function
! 	      (or (and (eq last-command this-command) (mark t) mark-active)
  		  (and transient-mark-mode mark-active)))
+ 	 (if arg
+ 	     (setq arg (prefix-numeric-value arg))
+ 	   (if (< (mark) (point))
+ 	       (setq arg -1)
+ 	     (setq arg 1)))
  	 (set-mark
  	  (save-excursion
! 	    (if mark-active (goto-char (mark)))
  	    (forward-paragraph arg)
  	    (point))))
! 	(t				;we are in an empty line or a paragraph
! 	 (if arg
! 	     (setq arg (prefix-numeric-value arg))
! 	   (setq arg 1))
  	 (forward-paragraph arg)
  	 (push-mark nil t t)
  	 (backward-paragraph arg))))

Diff finished.  Thu Oct 23 07:28:33 2014

Thanks
        Dieter
-- 
Best wishes
H. Dieter Wilhelm
Darmstadt, Germany




^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-10-23  5:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-23  5:40 Strange behaviour of M-h with negative arguments H. Dieter Wilhelm

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).