GNU bug report logs - #4587
23.1; sort-lines and sort-fields always set buffer modified

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Severity: minor; Reported by: rm369@HIDDEN; merged with #4597; dated Tue, 29 Sep 2009 16:50:04 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
Disconnected #4601 from all other report(s). Request was from Glenn Morris <rgm@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

Message received at 4587@HIDDEN:


Received: (at 4587) by emacsbugs.donarmstrong.com; 25 Oct 2009 15:27:29 +0000
From monnier@HIDDEN Sun Oct 25 08:27:29 2009
X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02
	(2008-06-10) on rzlab.ucr.edu
X-Spam-Level: 
X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available.
	hammytokens:Tokens not available.
X-Spam-Status: No, score=-3.3 required=4.0 tests=AWL,FOURLA,HAS_BUG_NUMBER,
	MURPHY_DRUGS_REL8 autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02
Received: from ironport2-out.pppoe.ca (ironport2-out.teksavvy.com [206.248.154.183])
	by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9PFRSDu020150
	for <4587@HIDDEN>; Sun, 25 Oct 2009 08:27:29 -0700
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AtkEAF8L5EpLd/xb/2dsb2JhbACBT9JuhD8EiDQ
X-IronPort-AV: E=Sophos;i="4.44,621,1249272000"; 
   d="scan'208";a="48131225"
Received: from 75-119-252-91.dsl.teksavvy.com (HELO pastel.home) ([75.119.252.91])
  by ironport2-out.pppoe.ca with ESMTP; 25 Oct 2009 11:27:22 -0400
Received: by pastel.home (Postfix, from userid 20848)
	id D0D468225; Sun, 25 Oct 2009 11:27:21 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
To: Kevin Rodgers <kevin.d.rodgers@HIDDEN>
Cc: 4587 <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN
Subject: Re: bug#4587: Antwort: Re: bug#4587: 23.1; sort-lines and sort-fields always set buffer modified
Message-ID: <jwveiorh5c3.fsf-monnier+emacsbugreports@HIDDEN>
References: <OF2B158154.15C4FD67-ONC1257641.00349840-C1257641.003704BF@HIDDEN>
	<jwvpr984k97.fsf-monnier+emacsbugreports@HIDDEN>
	<ha274l$hr3$1@HIDDEN>
	<jwvocor6w42.fsf-monnier+emacsbugreports@HIDDEN>
	<hc1kiq$m1o$1@HIDDEN>
Date: Sun, 25 Oct 2009 11:27:21 -0400
In-Reply-To: <hc1kiq$m1o$1@HIDDEN> (Kevin Rodgers's message of "Sun, 25
	Oct 2009 07:41:47 -0600")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

>> Maybe we could make it suitable, turn it into a macro and use it around
>> the various candidates.  AFAICT, here are the problems I see with it:
>> - the call to md5 should use as much as possible the internal encoding.
>> I.e. at least pass an `emacs-internal' arg, tho it would be even
>> better to let md5 work directly on the internal representation.
>> - it should only work on the afected region rather than the whole buffer
>> (i.e. it needs start..end arguments).
>> - should it fiddle with the undo list?  or even revert the whole
>> "without-effect" set of changes (the changes may result in the same
>> final text, but they may very well have moved markers and changed
>> text-properties, and it might be desirable to undo those changes, so
>> as to better pretend nothing happened).

> Is this what you have in mind?

That looks almost right.  Here are some nitpicks:

> (defmacro with-maybe-region-modified (beg end &rest body)
>   "Execute BODY, then `restore-buffer-modified-p' if the contents are unchanged.
> BODY should not change the current buffer or modify the contents outside the region
> between BEG and END."

The docstring is wider then our convention.

>   `(let* ((region-beg ,beg)
> 	  (region-end ,end)
> 	  (buffer-was-modified-p (buffer-modified-p))
> 	  (buffer-was-not-modified-md5 (if (not buffer-was-modified-p)
> 					   (md5 (current-buffer) region-beg region-end
> 						'emacs-mule)))

Use `emacs-internal' here (in Emacs-23, the internal encoding is not
emacs-mule any more).

Don't use hardcoded symbols, since `body' might actually refer to
identically-named variables.

Add a FIXME-comment indicating that md5 should be improved to compute
this result without actually performing the encoding.  Or better yet,
provide a patch to `md5' which does just that.

> 	  ;; (orig-buffer-undo-list buffer-undo-list)
> 	  (with-maybe-region-modified-result
> 	   (progn ,@body)))		; save-current-buffer?

Yes, save-current-buffer seems to be necessary here, otherwise the code
will misbehave.

>      (when (and (not buffer-was-modified-p)
> 		(buffer-modified-p)
> 		(not (equal buffer-was-not-modified-md5
> 			    (md5 (current-buffer) region-beg region-end
> 				 'emacs-mule))))
>        (restore-buffer-modified-p buffer-was-modified-p)
>        ;; (setq buffer-undo-list orig-buffer-undo-list)
>        )
>      with-maybe-region-modified-result))

I think region-end should be assisted by a marker so we can detect if
the size of the region has changed and skip the second md5 call in
that case.

More importantly, I think the "(not (equal ...))" should be "(equal ...)".

Also, please add a FIXME-comment about whether we should maybe use
`undo' to revert the "effectless" changes.


        Stefan



Acknowledgement sent to Stefan Monnier <monnier@HIDDEN>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs@HIDDEN>. Full text available.
Information forwarded to bug-submit-list@HIDDEN, Emacs Bugs <bug-gnu-emacs@HIDDEN>:
bug#4587; Package emacs. Full text available.

Message received at submit@HIDDEN:


Received: (at submit) by emacsbugs.donarmstrong.com; 25 Oct 2009 15:27:31 +0000
From monnier@HIDDEN Sun Oct 25 08:27:30 2009
X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02
	(2008-06-10) on rzlab.ucr.edu
X-Spam-Level: 
X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available.
	hammytokens:Tokens not available.
X-Spam-Status: No, score=-3.2 required=4.0 tests=AWL,FOURLA,HAS_BUG_NUMBER,
	MURPHY_DRUGS_REL8 autolearn=unavailable
	version=3.2.5-bugs.debian.org_2005_01_02
Received: from lists.gnu.org (lists.gnu.org [199.232.76.165])
	by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9PFRT8U020153
	for <submit@HIDDEN>; Sun, 25 Oct 2009 08:27:30 -0700
Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43)
	id 1N250C-0007ly-Pr
	for bug-gnu-emacs@HIDDEN; Sun, 25 Oct 2009 11:27:28 -0400
Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43)
	id 1N2507-0007jj-IG
	for bug-gnu-emacs@HIDDEN; Sun, 25 Oct 2009 11:27:28 -0400
Received: from [199.232.76.173] (port=45325 helo=monty-python.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.43)
	id 1N2507-0007jd-9k
	for bug-gnu-emacs@HIDDEN; Sun, 25 Oct 2009 11:27:23 -0400
Received: from ironport2-out.teksavvy.com ([206.248.154.183]:27247 helo=ironport2-out.pppoe.ca)
	by monty-python.gnu.org with esmtp (Exim 4.60)
	(envelope-from <monnier@HIDDEN>)
	id 1N2506-00039l-Vx
	for bug-gnu-emacs@HIDDEN; Sun, 25 Oct 2009 11:27:23 -0400
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AtkEAF8L5EpLd/xb/2dsb2JhbACBT9JuhD8EiDQ
X-IronPort-AV: E=Sophos;i="4.44,621,1249272000"; 
   d="scan'208";a="48131225"
Received: from 75-119-252-91.dsl.teksavvy.com (HELO pastel.home) ([75.119.252.91])
  by ironport2-out.pppoe.ca with ESMTP; 25 Oct 2009 11:27:22 -0400
Received: by pastel.home (Postfix, from userid 20848)
	id D0D468225; Sun, 25 Oct 2009 11:27:21 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
To: Kevin Rodgers <kevin.d.rodgers@HIDDEN>
Cc: 4587 <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN
Subject: Re: bug#4587: Antwort: Re: bug#4587: 23.1; sort-lines and sort-fields always set buffer modified
Message-ID: <jwveiorh5c3.fsf-monnier+emacsbugreports@HIDDEN>
References: <OF2B158154.15C4FD67-ONC1257641.00349840-C1257641.003704BF@HIDDEN>
	<jwvpr984k97.fsf-monnier+emacsbugreports@HIDDEN>
	<ha274l$hr3$1@HIDDEN>
	<jwvocor6w42.fsf-monnier+emacsbugreports@HIDDEN>
	<hc1kiq$m1o$1@HIDDEN>
Date: Sun, 25 Oct 2009 11:27:21 -0400
In-Reply-To: <hc1kiq$m1o$1@HIDDEN> (Kevin Rodgers's message of "Sun, 25
	Oct 2009 07:41:47 -0600")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized.
X-CrossAssassin-Score: 2

>> Maybe we could make it suitable, turn it into a macro and use it around
>> the various candidates.  AFAICT, here are the problems I see with it:
>> - the call to md5 should use as much as possible the internal encoding.
>> I.e. at least pass an `emacs-internal' arg, tho it would be even
>> better to let md5 work directly on the internal representation.
>> - it should only work on the afected region rather than the whole buffer
>> (i.e. it needs start..end arguments).
>> - should it fiddle with the undo list?  or even revert the whole
>> "without-effect" set of changes (the changes may result in the same
>> final text, but they may very well have moved markers and changed
>> text-properties, and it might be desirable to undo those changes, so
>> as to better pretend nothing happened).

> Is this what you have in mind?

That looks almost right.  Here are some nitpicks:

> (defmacro with-maybe-region-modified (beg end &rest body)
>   "Execute BODY, then `restore-buffer-modified-p' if the contents are unchanged.
> BODY should not change the current buffer or modify the contents outside the region
> between BEG and END."

The docstring is wider then our convention.

>   `(let* ((region-beg ,beg)
> 	  (region-end ,end)
> 	  (buffer-was-modified-p (buffer-modified-p))
> 	  (buffer-was-not-modified-md5 (if (not buffer-was-modified-p)
> 					   (md5 (current-buffer) region-beg region-end
> 						'emacs-mule)))

Use `emacs-internal' here (in Emacs-23, the internal encoding is not
emacs-mule any more).

Don't use hardcoded symbols, since `body' might actually refer to
identically-named variables.

Add a FIXME-comment indicating that md5 should be improved to compute
this result without actually performing the encoding.  Or better yet,
provide a patch to `md5' which does just that.

> 	  ;; (orig-buffer-undo-list buffer-undo-list)
> 	  (with-maybe-region-modified-result
> 	   (progn ,@body)))		; save-current-buffer?

Yes, save-current-buffer seems to be necessary here, otherwise the code
will misbehave.

>      (when (and (not buffer-was-modified-p)
> 		(buffer-modified-p)
> 		(not (equal buffer-was-not-modified-md5
> 			    (md5 (current-buffer) region-beg region-end
> 				 'emacs-mule))))
>        (restore-buffer-modified-p buffer-was-modified-p)
>        ;; (setq buffer-undo-list orig-buffer-undo-list)
>        )
>      with-maybe-region-modified-result))

I think region-end should be assisted by a marker so we can detect if
the size of the region has changed and skip the second md5 call in
that case.

More importantly, I think the "(not (equal ...))" should be "(equal ...)".

Also, please add a FIXME-comment about whether we should maybe use
`undo' to revert the "effectless" changes.


        Stefan




Acknowledgement sent to Stefan Monnier <monnier@HIDDEN>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs@HIDDEN>. Full text available.
Information forwarded to bug-submit-list@HIDDEN, Emacs Bugs <bug-gnu-emacs@HIDDEN>:
bug#4587; Package emacs. Full text available.

Message received at submit@HIDDEN:


Received: (at submit) by emacsbugs.donarmstrong.com; 25 Oct 2009 13:42:19 +0000
From geb-bug-gnu-emacs@HIDDEN Sun Oct 25 06:42:19 2009
X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02
	(2008-06-10) on rzlab.ucr.edu
X-Spam-Level: 
X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available.
	hammytokens:Tokens not available.
X-Spam-Status: No, score=-2.8 required=4.0 tests=AWL,FOURLA,HAS_BUG_NUMBER
	autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02
Received: from lists.gnu.org (lists.gnu.org [199.232.76.165])
	by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n9PDgGX9001293
	for <submit@HIDDEN>; Sun, 25 Oct 2009 06:42:19 -0700
Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43)
	id 1N23MO-0000Ve-8P
	for bug-gnu-emacs@HIDDEN; Sun, 25 Oct 2009 09:42:16 -0400
Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43)
	id 1N23MJ-0000Uc-QK
	for bug-gnu-emacs@HIDDEN; Sun, 25 Oct 2009 09:42:15 -0400
Received: from [199.232.76.173] (port=48499 helo=monty-python.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.43)
	id 1N23MJ-0000UZ-K1
	for bug-gnu-emacs@HIDDEN; Sun, 25 Oct 2009 09:42:11 -0400
Received: from lo.gmane.org ([80.91.229.12]:40585)
	by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32)
	(Exim 4.60)
	(envelope-from <geb-bug-gnu-emacs@HIDDEN>)
	id 1N23MJ-0005Nb-6u
	for bug-gnu-emacs@HIDDEN; Sun, 25 Oct 2009 09:42:11 -0400
Received: from list by lo.gmane.org with local (Exim 4.50)
	id 1N23MG-0003Jl-Kr
	for bug-gnu-emacs@HIDDEN; Sun, 25 Oct 2009 14:42:08 +0100
Received: from c-71-237-24-138.hsd1.co.comcast.net ([71.237.24.138])
        by main.gmane.org with esmtp (Gmexim 0.1 (Debian))
        id 1AlnuQ-0007hv-00
        for <bug-gnu-emacs@HIDDEN>; Sun, 25 Oct 2009 14:42:08 +0100
Received: from kevin.d.rodgers by c-71-237-24-138.hsd1.co.comcast.net with local (Gmexim 0.1 (Debian))
        id 1AlnuQ-0007hv-00
        for <bug-gnu-emacs@HIDDEN>; Sun, 25 Oct 2009 14:42:08 +0100
X-Injected-Via-Gmane: http://gmane.org/
To: bug-gnu-emacs@HIDDEN
From: Kevin Rodgers <kevin.d.rodgers@HIDDEN>
Subject: Re: bug#4587: Antwort: Re: bug#4587: 23.1;   sort-lines and sort-fields
 always set buffer modified
Date: Sun, 25 Oct 2009 07:41:47 -0600
Lines: 59
Message-ID: <hc1kiq$m1o$1@HIDDEN>
References: <OF2B158154.15C4FD67-ONC1257641.00349840-C1257641.003704BF@HIDDEN>	<jwvpr984k97.fsf-monnier+emacsbugreports@HIDDEN>	<ha274l$hr3$1@HIDDEN> <jwvocor6w42.fsf-monnier+emacsbugreports@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Complaints-To: usenet@HIDDEN
X-Gmane-NNTP-Posting-Host: c-71-237-24-138.hsd1.co.comcast.net
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
In-Reply-To: <jwvocor6w42.fsf-monnier+emacsbugreports@HIDDEN>
Sender: news <news@HIDDEN>
X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3)

Stefan Monnier wrote:
>>> I'd indeed expect that to implement the feature you request, the code
>>> would have to do something like that.  Most likely not copying the text
>>> itself, but instead storing an md5 or somesuch hash of the text.
> 
>> Not suitable for Emacs, but maybe useful for Roland:
> 
>> (defadvice sort-lines (around restore-buffer-modified-p activate)
>>   (let* ((buffer-was-modified-p (buffer-modified-p))
>> 	 (buffer-was-not-modified-md5 (if (not buffer-was-modified-p)
>> 					  (md5 (current-buffer)))))
>>     ad-do-it
>>     (when (and (not buffer-was-modified-p)
>> 	       (buffer-modified-p)
>> 	       (not (equal buffer-was-not-modified-md5 (md5 (current-buffer)))))
>>       (restore-buffer-modified-p buffer-was-modified-p))))
> 
> Maybe we could make it suitable, turn it into a macro and use it around
> the various candidates.  AFAICT, here are the problems I see with it:
> - the call to md5 should use as much as possible the internal encoding.
>   I.e. at least pass an `emacs-internal' arg, tho it would be even
>   better to let md5 work directly on the internal representation.
> - it should only work on the afected region rather than the whole buffer
>   (i.e. it needs start..end arguments).
> - should it fiddle with the undo list?  or even revert the whole
>   "without-effect" set of changes (the changes may result in the same
>   final text, but they may very well have moved markers and changed
>   text-properties, and it might be desirable to undo those changes, so
>   as to better pretend nothing happened).

Is this what you have in mind?

(defmacro with-maybe-region-modified (beg end &rest body)
   "Execute BODY, then `restore-buffer-modified-p' if the contents are unchanged.
BODY should not change the current buffer or modify the contents outside the region
between BEG and END."
   `(let* ((region-beg ,beg)
	  (region-end ,end)
	  (buffer-was-modified-p (buffer-modified-p))
	  (buffer-was-not-modified-md5 (if (not buffer-was-modified-p)
					   (md5 (current-buffer) region-beg region-end
						'emacs-mule)))
	  ;; (orig-buffer-undo-list buffer-undo-list)
	  (with-maybe-region-modified-result
	   (progn ,@body)))		; save-current-buffer?
      (when (and (not buffer-was-modified-p)
		(buffer-modified-p)
		(not (equal buffer-was-not-modified-md5
			    (md5 (current-buffer) region-beg region-end
				 'emacs-mule))))
        (restore-buffer-modified-p buffer-was-modified-p)
        ;; (setq buffer-undo-list orig-buffer-undo-list)
        )
      with-maybe-region-modified-result))


-- 
Kevin Rodgers
Denver, Colorado, USA





Acknowledgement sent to Kevin Rodgers <kevin.d.rodgers@HIDDEN>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs@HIDDEN>. Full text available.
Information forwarded to bug-submit-list@HIDDEN, Emacs Bugs <bug-gnu-emacs@HIDDEN>:
bug#4587; Package emacs. Full text available.

Message received at 4587@HIDDEN:


Received: (at 4587) by emacsbugs.donarmstrong.com; 1 Oct 2009 14:19:40 +0000
From monnier@HIDDEN Thu Oct  1 07:19:40 2009
X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02
	(2008-06-10) on rzlab.ucr.edu
X-Spam-Level: 
X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available.
	hammytokens:Tokens not available.
X-Spam-Status: No, score=-3.8 required=4.0 tests=AWL,HAS_BUG_NUMBER
	autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02
Received: from ironport2-out.pppoe.ca (ironport2-out.teksavvy.com [206.248.154.183])
	by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n91EJcwv006825
	for <4587@HIDDEN>; Thu, 1 Oct 2009 07:19:40 -0700
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: ApsEAHlXxEpMCrXH/2dsb2JhbACBUdVLhCkEhxo
X-IronPort-AV: E=Sophos;i="4.44,487,1249272000"; 
   d="scan'208";a="46900671"
Received: from 76-10-181-199.dsl.teksavvy.com (HELO ceviche.home) ([76.10.181.199])
  by ironport2-out.pppoe.ca with ESMTP; 01 Oct 2009 10:19:33 -0400
Received: by ceviche.home (Postfix, from userid 20848)
	id 2535CB4265; Thu,  1 Oct 2009 10:19:32 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
To: Kevin Rodgers <kevin.d.rodgers@HIDDEN>
Cc: 4587 <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN
Subject: Re: bug#4587: Antwort: Re: bug#4587: 23.1; sort-lines and sort-fields always set buffer modified
Message-ID: <jwvocor6w42.fsf-monnier+emacsbugreports@HIDDEN>
References: <OF2B158154.15C4FD67-ONC1257641.00349840-C1257641.003704BF@HIDDEN>
	<jwvpr984k97.fsf-monnier+emacsbugreports@HIDDEN>
	<ha274l$hr3$1@HIDDEN>
Date: Thu, 01 Oct 2009 10:19:32 -0400
In-Reply-To: <ha274l$hr3$1@HIDDEN> (Kevin Rodgers's message of "Thu, 01
	Oct 2009 06:25:59 -0600")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

>> I'd indeed expect that to implement the feature you request, the code
>> would have to do something like that.  Most likely not copying the text
>> itself, but instead storing an md5 or somesuch hash of the text.

> Not suitable for Emacs, but maybe useful for Roland:

> (defadvice sort-lines (around restore-buffer-modified-p activate)
>   (let* ((buffer-was-modified-p (buffer-modified-p))
> 	 (buffer-was-not-modified-md5 (if (not buffer-was-modified-p)
> 					  (md5 (current-buffer)))))
>     ad-do-it
>     (when (and (not buffer-was-modified-p)
> 	       (buffer-modified-p)
> 	       (not (equal buffer-was-not-modified-md5 (md5 (current-buffer)))))
>       (restore-buffer-modified-p buffer-was-modified-p))))

Maybe we could make it suitable, turn it into a macro and use it around
the various candidates.  AFAICT, here are the problems I see with it:
- the call to md5 should use as much as possible the internal encoding.
  I.e. at least pass an `emacs-internal' arg, tho it would be even
  better to let md5 work directly on the internal representation.
- it should only work on the afected region rather than the whole buffer
  (i.e. it needs start..end arguments).
- should it fiddle with the undo list?  or even revert the whole
  "without-effect" set of changes (the changes may result in the same
  final text, but they may very well have moved markers and changed
  text-properties, and it might be desirable to undo those changes, so
  as to better pretend nothing happened).


-- Stefan





Acknowledgement sent to Stefan Monnier <monnier@HIDDEN>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs@HIDDEN>. Full text available.
Information forwarded to bug-submit-list@HIDDEN, Emacs Bugs <bug-gnu-emacs@HIDDEN>:
bug#4587; Package emacs. Full text available.

Message received at submit@HIDDEN:


Received: (at submit) by emacsbugs.donarmstrong.com; 1 Oct 2009 14:19:41 +0000
From monnier@HIDDEN Thu Oct  1 07:19:41 2009
X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02
	(2008-06-10) on rzlab.ucr.edu
X-Spam-Level: 
X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available.
	hammytokens:Tokens not available.
X-Spam-Status: No, score=-3.8 required=4.0 tests=AWL,HAS_BUG_NUMBER
	autolearn=unavailable version=3.2.5-bugs.debian.org_2005_01_02
Received: from lists.gnu.org (lists.gnu.org [199.232.76.165])
	by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n91EJdu8006832
	for <submit@HIDDEN>; Thu, 1 Oct 2009 07:19:41 -0700
Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43)
	id 1MtMVO-0002LP-NQ
	for bug-gnu-emacs@HIDDEN; Thu, 01 Oct 2009 10:19:38 -0400
Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43)
	id 1MtMVK-0002JX-QZ
	for bug-gnu-emacs@HIDDEN; Thu, 01 Oct 2009 10:19:38 -0400
Received: from [199.232.76.173] (port=39918 helo=monty-python.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.43)
	id 1MtMVK-0002JP-Ix
	for bug-gnu-emacs@HIDDEN; Thu, 01 Oct 2009 10:19:34 -0400
Received: from ironport2-out.teksavvy.com ([206.248.154.183]:9995 helo=ironport2-out.pppoe.ca)
	by monty-python.gnu.org with esmtp (Exim 4.60)
	(envelope-from <monnier@HIDDEN>)
	id 1MtMVK-0001xt-2o
	for bug-gnu-emacs@HIDDEN; Thu, 01 Oct 2009 10:19:34 -0400
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: ApsEAHlXxEpMCrXH/2dsb2JhbACBUdVLhCkEhxo
X-IronPort-AV: E=Sophos;i="4.44,487,1249272000"; 
   d="scan'208";a="46900671"
Received: from 76-10-181-199.dsl.teksavvy.com (HELO ceviche.home) ([76.10.181.199])
  by ironport2-out.pppoe.ca with ESMTP; 01 Oct 2009 10:19:33 -0400
Received: by ceviche.home (Postfix, from userid 20848)
	id 2535CB4265; Thu,  1 Oct 2009 10:19:32 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
To: Kevin Rodgers <kevin.d.rodgers@HIDDEN>
Cc: 4587 <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN
Subject: Re: bug#4587: Antwort: Re: bug#4587: 23.1; sort-lines and sort-fields always set buffer modified
Message-ID: <jwvocor6w42.fsf-monnier+emacsbugreports@HIDDEN>
References: <OF2B158154.15C4FD67-ONC1257641.00349840-C1257641.003704BF@HIDDEN>
	<jwvpr984k97.fsf-monnier+emacsbugreports@HIDDEN>
	<ha274l$hr3$1@HIDDEN>
Date: Thu, 01 Oct 2009 10:19:32 -0400
In-Reply-To: <ha274l$hr3$1@HIDDEN> (Kevin Rodgers's message of "Thu, 01
	Oct 2009 06:25:59 -0600")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-detected-operating-system: by monty-python.gnu.org: Genre and OS details not recognized.
X-CrossAssassin-Score: 2

>> I'd indeed expect that to implement the feature you request, the code
>> would have to do something like that.  Most likely not copying the text
>> itself, but instead storing an md5 or somesuch hash of the text.

> Not suitable for Emacs, but maybe useful for Roland:

> (defadvice sort-lines (around restore-buffer-modified-p activate)
>   (let* ((buffer-was-modified-p (buffer-modified-p))
> 	 (buffer-was-not-modified-md5 (if (not buffer-was-modified-p)
> 					  (md5 (current-buffer)))))
>     ad-do-it
>     (when (and (not buffer-was-modified-p)
> 	       (buffer-modified-p)
> 	       (not (equal buffer-was-not-modified-md5 (md5 (current-buffer)))))
>       (restore-buffer-modified-p buffer-was-modified-p))))

Maybe we could make it suitable, turn it into a macro and use it around
the various candidates.  AFAICT, here are the problems I see with it:
- the call to md5 should use as much as possible the internal encoding.
  I.e. at least pass an `emacs-internal' arg, tho it would be even
  better to let md5 work directly on the internal representation.
- it should only work on the afected region rather than the whole buffer
  (i.e. it needs start..end arguments).
- should it fiddle with the undo list?  or even revert the whole
  "without-effect" set of changes (the changes may result in the same
  final text, but they may very well have moved markers and changed
  text-properties, and it might be desirable to undo those changes, so
  as to better pretend nothing happened).


-- Stefan






Acknowledgement sent to Stefan Monnier <monnier@HIDDEN>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs@HIDDEN>. Full text available.
Information forwarded to bug-submit-list@HIDDEN, Emacs Bugs <bug-gnu-emacs@HIDDEN>:
bug#4587; Package emacs. Full text available.

Message received at submit@HIDDEN:


Received: (at submit) by emacsbugs.donarmstrong.com; 1 Oct 2009 12:30:18 +0000
From geb-bug-gnu-emacs@HIDDEN Thu Oct  1 05:30:18 2009
X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02
	(2008-06-10) on rzlab.ucr.edu
X-Spam-Level: 
X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available.
	hammytokens:Tokens not available.
X-Spam-Status: No, score=-2.9 required=4.0 tests=AWL,HAS_BUG_NUMBER
	autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02
Received: from lists.gnu.org (lists.gnu.org [199.232.76.165])
	by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n91CUGE0023163
	for <submit@HIDDEN>; Thu, 1 Oct 2009 05:30:17 -0700
Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43)
	id 1MtKnX-0003yK-RN
	for bug-gnu-emacs@HIDDEN; Thu, 01 Oct 2009 08:30:15 -0400
Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43)
	id 1MtKnT-0003so-6X
	for bug-gnu-emacs@HIDDEN; Thu, 01 Oct 2009 08:30:15 -0400
Received: from [199.232.76.173] (port=57786 helo=monty-python.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.43)
	id 1MtKnS-0003sR-P7
	for bug-gnu-emacs@HIDDEN; Thu, 01 Oct 2009 08:30:10 -0400
Received: from lo.gmane.org ([80.91.229.12]:53216)
	by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32)
	(Exim 4.60)
	(envelope-from <geb-bug-gnu-emacs@HIDDEN>)
	id 1MtKnS-0003B7-0Z
	for bug-gnu-emacs@HIDDEN; Thu, 01 Oct 2009 08:30:10 -0400
Received: from list by lo.gmane.org with local (Exim 4.50)
	id 1MtKnL-0008Dw-RE
	for bug-gnu-emacs@HIDDEN; Thu, 01 Oct 2009 14:30:03 +0200
Received: from c-71-237-24-138.hsd1.co.comcast.net ([71.237.24.138])
        by main.gmane.org with esmtp (Gmexim 0.1 (Debian))
        id 1AlnuQ-0007hv-00
        for <bug-gnu-emacs@HIDDEN>; Thu, 01 Oct 2009 14:30:03 +0200
Received: from kevin.d.rodgers by c-71-237-24-138.hsd1.co.comcast.net with local (Gmexim 0.1 (Debian))
        id 1AlnuQ-0007hv-00
        for <bug-gnu-emacs@HIDDEN>; Thu, 01 Oct 2009 14:30:03 +0200
X-Injected-Via-Gmane: http://gmane.org/
To: bug-gnu-emacs@HIDDEN
From: Kevin Rodgers <kevin.d.rodgers@HIDDEN>
Subject: Re: bug#4587: Antwort: Re: bug#4587: 23.1;   sort-lines and sort-fields
 always set buffer modified
Date: Thu, 01 Oct 2009 06:25:59 -0600
Lines: 39
Message-ID: <ha274l$hr3$1@HIDDEN>
References: <OF2B158154.15C4FD67-ONC1257641.00349840-C1257641.003704BF@HIDDEN> <jwvpr984k97.fsf-monnier+emacsbugreports@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Complaints-To: usenet@HIDDEN
X-Gmane-NNTP-Posting-Host: c-71-237-24-138.hsd1.co.comcast.net
User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812)
In-Reply-To: <jwvpr984k97.fsf-monnier+emacsbugreports@HIDDEN>
Sender: news <news@HIDDEN>
X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 3)

Stefan Monnier wrote:
>>> Yes, that's generally desirable.  But in the above cases, given the way
>>> the code currently works, it's fairly inconvenient to do (the code does
>>> modify the buffer, it just so happens that the end text is the same as
>>> the original text), so it doesn't seem worth the trouble.
> 
>> Wouldn't it be possible in case of an unmodified buffer to copy the
>> content of the region at the beginning to a temporary buffer, compare it
>> to the result afterwards, and if they match to restore the unmodified
>> status?
> 
> I'd indeed expect that to implement the feature you request, the code
> would have to do something like that.  Most likely not copying the text
> itself, but instead storing an md5 or somesuch hash of the text.

Not suitable for Emacs, but maybe useful for Roland:

(defadvice sort-lines (around restore-buffer-modified-p activate)
   (let* ((buffer-was-modified-p (buffer-modified-p))
	 (buffer-was-not-modified-md5 (if (not buffer-was-modified-p)
					  (md5 (current-buffer)))))
     ad-do-it
     (when (and (not buffer-was-modified-p)
	       (buffer-modified-p)
	       (not (equal buffer-was-not-modified-md5 (md5 (current-buffer)))))
       (restore-buffer-modified-p buffer-was-modified-p))))

>> I sometimes need to check a list (which isn't small enough to be checked
>> at a glance) after editing it if it is still sorted.
>> Now I write he region before and after sorting it to separate files and
>> compare them, but I wonder if a powerful tool like Emacs must keep such an
>> obvious annoyance like this...
> 
> No, it definitely doesn't have to keep such obvious annoyances.
> But it's not very high on the priority list.

-- 
Kevin Rodgers
Denver, Colorado, USA





Acknowledgement sent to Kevin Rodgers <kevin.d.rodgers@HIDDEN>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs@HIDDEN>. Full text available.
Information forwarded to bug-submit-list@HIDDEN, Emacs Bugs <bug-gnu-emacs@HIDDEN>:
bug#4587; Package emacs. Full text available.
Forcibly Merged 4587 4597 4601. Request was from Glenn Morris <rgm@HIDDEN> to control@HIDDEN. Full text available.
Severity set to 'minor' from 'normal' Request was from Glenn Morris <rgm@HIDDEN> to control@HIDDEN. Full text available.

Message received at 4587@HIDDEN:


Received: (at 4587) by emacsbugs.donarmstrong.com; 30 Sep 2009 13:52:01 +0000
From monnier@HIDDEN Wed Sep 30 06:52:01 2009
X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02
	(2008-06-10) on rzlab.ucr.edu
X-Spam-Level: 
X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available.
	hammytokens:Tokens not available.
X-Spam-Status: No, score=-3.6 required=4.0 tests=AWL,HAS_BUG_NUMBER
	autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02
Received: from ironport2-out.pppoe.ca (ironport2-out.teksavvy.com [206.248.154.183])
	by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n8UDpxYM015573
	for <4587@HIDDEN>; Wed, 30 Sep 2009 06:52:00 -0700
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AqIEAOf+wkrO+KOO/2dsb2JhbACBUddFhCcEhw8
X-IronPort-AV: E=Sophos;i="4.44,480,1249272000"; 
   d="scan'208";a="46840175"
Received: from 206-248-163-142.dsl.teksavvy.com (HELO pastel.home) ([206.248.163.142])
  by ironport2-out.pppoe.ca with ESMTP; 30 Sep 2009 09:51:50 -0400
Received: by pastel.home (Postfix, from userid 20848)
	id D6F868109; Wed, 30 Sep 2009 09:51:50 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
To: Roland.Meier@HIDDEN
Cc: 4587 <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN
Subject: Re: Antwort: Re: bug#4587: 23.1; sort-lines and sort-fields always set buffer modified
Message-ID: <jwvpr984k97.fsf-monnier+emacsbugreports@HIDDEN>
References: <OF2B158154.15C4FD67-ONC1257641.00349840-C1257641.003704BF@HIDDEN>
Date: Wed, 30 Sep 2009 09:51:50 -0400
In-Reply-To: <OF2B158154.15C4FD67-ONC1257641.00349840-C1257641.003704BF@HIDDEN>
	(Roland Meier's message of "Wed, 30 Sep 2009 12:00:56 +0200")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

>> Yes, that's generally desirable.  But in the above cases, given the way
>> the code currently works, it's fairly inconvenient to do (the code does
>> modify the buffer, it just so happens that the end text is the same as
>> the original text), so it doesn't seem worth the trouble.

> Wouldn't it be possible in case of an unmodified buffer to copy the
> content of the region at the beginning to a temporary buffer, compare it
> to the result afterwards, and if they match to restore the unmodified
> status?

I'd indeed expect that to implement the feature you request, the code
would have to do something like that.  Most likely not copying the text
itself, but instead storing an md5 or somesuch hash of the text.

> I sometimes need to check a list (which isn't small enough to be checked
> at a glance) after editing it if it is still sorted.
> Now I write he region before and after sorting it to separate files and
> compare them, but I wonder if a powerful tool like Emacs must keep such an
> obvious annoyance like this...

No, it definitely doesn't have to keep such obvious annoyances.
But it's not very high on the priority list.


        Stefan



Acknowledgement sent to Stefan Monnier <monnier@HIDDEN>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs@HIDDEN>. Full text available.
Information forwarded to bug-submit-list@HIDDEN, Emacs Bugs <bug-gnu-emacs@HIDDEN>:
bug#4587; Package emacs. Full text available.

Message received at 4587@HIDDEN:


Received: (at 4587) by emacsbugs.donarmstrong.com; 30 Sep 2009 10:01:19 +0000
From roland.meier@HIDDEN Wed Sep 30 03:01:19 2009
X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02
	(2008-06-10) on rzlab.ucr.edu
X-Spam-Level: 
X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available.
	hammytokens:Tokens not available.
X-Spam-Status: No, score=-0.5 required=4.0 tests=AWL,HAS_BUG_NUMBER,MULTALT
	autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02
Received: from mailout02.rmx.de (mailout02.rmx.de [217.111.120.10])
	by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n8UA1GHf014658
	for <4587@HIDDEN>; Wed, 30 Sep 2009 03:01:18 -0700
Received: from [172.19.21.68] (HELO crypto02.retarus.de)
  by mailout02.rmx.de (CommuniGate Pro SMTP 5.2.13 _community_)
  with ESMTPS id 54259972; Wed, 30 Sep 2009 12:01:10 +0200
Received: (from daemon@localhost)
	by crypto02.retarus.de (8.13.6/8.13.6) id n8UA1Ama016877;
	Wed, 30 Sep 2009 12:01:10 +0200
Received: from 10.64.74.160 (localhost [127.0.0.1])
 	by crypto02.retarus.de (8.13.6/8.13.6) with SMTP id n8U9ulhw014666;
 	Wed, 30 Sep 2009 12:01:09 +0200
Received: from sbas703a.cw01.contiwan.com ([158.92.186.29])
          by frhb102.auto.contiwan.com (Lotus Domino Release 8.0.1)
          with ESMTP id 2009093012010051-398154 ;
          Wed, 30 Sep 2009 12:01:00 +0200 
In-Reply-To: <jwvhbul82pq.fsf-monnier+emacsbugreports@HIDDEN>
To: monnier@HIDDEN
Cc: 4587 <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN
Subject: Antwort: Re: bug#4587: 23.1; sort-lines and sort-fields always set buffer
 modified
MIME-Version: 1.0
X-Mailer: Lotus Notes Release 6.5.6 March 06, 2007
Message-ID: <OF2B158154.15C4FD67-ONC1257641.00349840-C1257641.003704BF@HIDDEN>
From: Roland.Meier@HIDDEN
Date: Wed, 30 Sep 2009 12:00:56 +0200
X-MIMETrack: S/MIME Sign by Notes Client on Roland Meier/usr/cag(Release 6.5.6|March 06, 2007) at
 30.09.2009 12:00:56,
 	Serialize by Notes Client on Roland Meier/usr/cag(Release 6.5.6|March 06, 2007) at
 30.09.2009 12:00:56,
 	Serialize complete at 30.09.2009 12:00:56,
 	S/MIME Sign failed at 30.09.2009 12:00:56: Der Verschl?sselungsschl?ssel
 wurde nicht gefunden,
 	Serialize by Router on vshb001/srvc7/srvc/cag(Release 8.5FP1|June 15, 2009) at
 30.09.2009 12:01:02,
 	Serialize complete at 30.09.2009 12:01:02,
 	Itemize by SMTP Server on frhb102/srvcMX/srvc/cag(Release 8.0.1|February 07, 2008) at
 09/30/2009 12:01:00 PM,
 	Serialize by Router on frhb102/srvcMX/srvc/cag(Release 8.0.1|February 07, 2008) at
 09/30/2009 12:01:02 PM,
 	Serialize complete at 09/30/2009 12:01:02 PM
X-TNEFEvaluated: 1
X-RMX-ID: 20090930-120103-n8UA12Eg012545-0@kdin65
X-RMX-TRACE: 2009-09-30 12:01:03 KdIn@kdin65/mailcc66 [0.5s] 20090930-120103-n8UA12Eg012545-0@kdin65 0:00:00
X-RMX-TRACE: 2009-09-30 12:01:04 RmxMSO@kdin65/mailcc67 [0.1s] 20090930-120103-n8UA12Eg012545-0@kdin65 0:00:01
Content-Type: multipart/alternative; boundary="=_alternative 003704BFC1257641_="

--=_alternative 003704BFC1257641_=
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="ISO-8859-1"

> Yes, that's generally desirable.  But in the above cases, given the way
> the code currently works, it's fairly inconvenient to do (the code does
> modify the buffer, it just so happens that the end text is the same as
> the original text), so it doesn't seem worth the trouble.

Wouldn't it be possible in case of an unmodified buffer to copy the=20
content of the region at the beginning to a temporary buffer, compare it=20
to the result afterwards, and if they match to restore the unmodified=20
status?

I sometimes need to check a list (which isn't small enough to be checked=20
at a glance) after editing it if it is still sorted.
Now I write he region before and after sorting it to separate files and=20
compare them, but I wonder if a powerful tool like emacs must keep such an =

obvious annoyance like this...

Thanks!
--=20
Mit freundlichen Gr=FC=DFen
Roland Meier
     \|||/=20
     (o o)=20
=3D=3DooO=3D=3DU=3D=3DOoo=3D=3D=20

--=_alternative 003704BFC1257641_=
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="ISO-8859-1"


<br><tt><font size=3D2>&gt; Yes, that's generally desirable. &nbsp;But in
the above cases, given the way<br>
&gt; the code currently works, it's fairly inconvenient to do (the code
does<br>
&gt; modify the buffer, it just so happens that the end text is the same
as<br>
&gt; the original text), so it doesn't seem worth the trouble.<br>
</font></tt>
<br><font size=3D2 face=3D"sans-serif">Wouldn't it be possible in case of an
unmodified buffer to copy the content of the region at the beginning to
a temporary buffer, compare it to the result afterwards, and if they match
to restore the unmodified status?</font>
<br>
<br><font size=3D2 face=3D"sans-serif">I sometimes need to check a list (wh=
ich
isn't small enough to be checked at a glance) after editing it if it is
still sorted.</font>
<br><font size=3D2 face=3D"sans-serif">Now I write he region before and aft=
er
sorting it to separate files and compare them, but I wonder if a powerful
tool like emacs must keep such an obvious annoyance like this...</font>
<br>
<br><font size=3D2 face=3D"sans-serif">Thanks!</font>
<br><font size=3D3>-- <br>
Mit freundlichen Gr=FC=DFen<br>
Roland Meier</font><tt><font size=3D3><br>
 &nbsp; &nbsp; \|||/ <br>
 &nbsp; &nbsp; (o o) <br>
=3D=3DooO=3D=3DU=3D=3DOoo=3D=3D </font></tt><font size=3D3><br>
</font>
--=_alternative 003704BFC1257641_=--



Acknowledgement sent to Roland.Meier@HIDDEN:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs@HIDDEN>. Full text available.
Information forwarded to bug-submit-list@HIDDEN, Emacs Bugs <bug-gnu-emacs@HIDDEN>:
bug#4587; Package emacs. Full text available.

Message received at 4587@HIDDEN:


Received: (at 4587) by emacsbugs.donarmstrong.com; 30 Sep 2009 04:44:15 +0000
From monnier@HIDDEN Tue Sep 29 21:44:15 2009
X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02
	(2008-06-10) on rzlab.ucr.edu
X-Spam-Level: 
X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available.
	hammytokens:Tokens not available.
X-Spam-Status: No, score=-3.6 required=4.0 tests=AWL,HAS_BUG_NUMBER
	autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02
Received: from ironport2-out.pppoe.ca (ironport2-out.teksavvy.com [206.248.154.181])
	by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n8U4iDwt001180
	for <4587@HIDDEN>; Tue, 29 Sep 2009 21:44:15 -0700
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AsYEACt/wkrO+KOO/2dsb2JhbACBUNcBhB4Fh34
X-IronPort-AV: E=Sophos;i="4.44,478,1249272000"; 
   d="scan'208";a="46829745"
Received: from 206-248-163-142.dsl.teksavvy.com (HELO ceviche.home) ([206.248.163.142])
  by ironport2-out.pppoe.ca with ESMTP; 30 Sep 2009 00:44:08 -0400
Received: by ceviche.home (Postfix, from userid 20848)
	id 04A8DB4265; Wed, 30 Sep 2009 00:44:07 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
To: rm369@HIDDEN
Cc: 4587 <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN
Subject: Re: bug#4587: 23.1; sort-lines and sort-fields always set buffer modified
Message-ID: <jwvhbul82pq.fsf-monnier+emacsbugreports@HIDDEN>
References: <OF24152BC5.4B27E59E-ONC1257640.005A815D-C1257640.005B7026@HIDDEN>
Date: Wed, 30 Sep 2009 00:44:07 -0400
In-Reply-To: <OF24152BC5.4B27E59E-ONC1257640.005A815D-C1257640.005B7026@HIDDEN>
	(Roland Meier's message of "Tue, 29 Sep 2009 18:38:44 +0200")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

> M-x sort-lines and M-x sort-fields always set the buffer modified
> status ("-" -> "*" in column 5 of the status line), even if the region
> was sorted and the command did not modify anything.

Indeed.  The same holds true for fill-paragraph.

> An unmodified buffer should stay unmodified if nothing was changed.
> Reproduction:

Yes, that's generally desirable.  But in the above cases, given the way
the code currently works, it's fairly inconvenient to do (the code does
modify the buffer, it just so happens that the end text is the same as
the original text), so it doesn't seem worth the trouble.


        Stefan



Acknowledgement sent to Stefan Monnier <monnier@HIDDEN>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs@HIDDEN>. Full text available.
Information forwarded to bug-submit-list@HIDDEN, Emacs Bugs <bug-gnu-emacs@HIDDEN>:
bug#4587; Package emacs. Full text available.

Message received at submit@HIDDEN:


Received: (at submit) by emacsbugs.donarmstrong.com; 30 Sep 2009 04:44:20 +0000
From monnier@HIDDEN Tue Sep 29 21:44:19 2009
X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02
	(2008-06-10) on rzlab.ucr.edu
X-Spam-Level: 
X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available.
	hammytokens:Tokens not available.
X-Spam-Status: No, score=-3.6 required=4.0 tests=AWL,HAS_BUG_NUMBER
	autolearn=ham version=3.2.5-bugs.debian.org_2005_01_02
Received: from lists.gnu.org (lists.gnu.org [199.232.76.165])
	by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n8U4iHI8001185
	for <submit@HIDDEN>; Tue, 29 Sep 2009 21:44:18 -0700
Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43)
	id 1Msr33-00033y-48
	for bug-gnu-emacs@HIDDEN; Wed, 30 Sep 2009 00:44:17 -0400
Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43)
	id 1Msr2w-00030V-Ok
	for bug-gnu-emacs@HIDDEN; Wed, 30 Sep 2009 00:44:15 -0400
Received: from [199.232.76.173] (port=49813 helo=monty-python.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.43)
	id 1Msr2w-000307-GO
	for bug-gnu-emacs@HIDDEN; Wed, 30 Sep 2009 00:44:10 -0400
Received: from mx20.gnu.org ([199.232.41.8]:5173)
	by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32)
	(Exim 4.60)
	(envelope-from <monnier@HIDDEN>)
	id 1Msr2w-0005zn-2o
	for bug-gnu-emacs@HIDDEN; Wed, 30 Sep 2009 00:44:10 -0400
Received: from ironport2-out.teksavvy.com ([206.248.154.181] helo=ironport2-out.pppoe.ca)
	by mx20.gnu.org with esmtp (Exim 4.60)
	(envelope-from <monnier@HIDDEN>)
	id 1Msr2v-0003qr-DJ
	for bug-gnu-emacs@HIDDEN; Wed, 30 Sep 2009 00:44:09 -0400
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AsYEACt/wkrO+KOO/2dsb2JhbACBUNcBhB4Fh34
X-IronPort-AV: E=Sophos;i="4.44,478,1249272000"; 
   d="scan'208";a="46829745"
Received: from 206-248-163-142.dsl.teksavvy.com (HELO ceviche.home) ([206.248.163.142])
  by ironport2-out.pppoe.ca with ESMTP; 30 Sep 2009 00:44:08 -0400
Received: by ceviche.home (Postfix, from userid 20848)
	id 04A8DB4265; Wed, 30 Sep 2009 00:44:07 -0400 (EDT)
From: Stefan Monnier <monnier@HIDDEN>
To: rm369@HIDDEN
Cc: 4587 <at> debbugs.gnu.org, bug-gnu-emacs@HIDDEN
Subject: Re: bug#4587: 23.1; sort-lines and sort-fields always set buffer modified
Message-ID: <jwvhbul82pq.fsf-monnier+emacsbugreports@HIDDEN>
References: <OF24152BC5.4B27E59E-ONC1257640.005A815D-C1257640.005B7026@HIDDEN>
Date: Wed, 30 Sep 2009 00:44:07 -0400
In-Reply-To: <OF24152BC5.4B27E59E-ONC1257640.005A815D-C1257640.005B7026@HIDDEN>
	(Roland Meier's message of "Tue, 29 Sep 2009 18:38:44 +0200")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
X-detected-operating-system: by mx20.gnu.org: Genre and OS details not recognized.
X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4)
X-CrossAssassin-Score: 2

> M-x sort-lines and M-x sort-fields always set the buffer modified
> status ("-" -> "*" in column 5 of the status line), even if the region
> was sorted and the command did not modify anything.

Indeed.  The same holds true for fill-paragraph.

> An unmodified buffer should stay unmodified if nothing was changed.
> Reproduction:

Yes, that's generally desirable.  But in the above cases, given the way
the code currently works, it's fairly inconvenient to do (the code does
modify the buffer, it just so happens that the end text is the same as
the original text), so it doesn't seem worth the trouble.


        Stefan




Acknowledgement sent to Stefan Monnier <monnier@HIDDEN>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs@HIDDEN>. Full text available.
Information forwarded to bug-submit-list@HIDDEN, Emacs Bugs <bug-gnu-emacs@HIDDEN>:
bug#4587; Package emacs. Full text available.

Message received at submit@HIDDEN:


Received: (at submit) by emacsbugs.donarmstrong.com; 29 Sep 2009 16:49:19 +0000
From roland.meier@HIDDEN Tue Sep 29 09:49:19 2009
X-Spam-Checker-Version: SpamAssassin 3.2.5-bugs.debian.org_2005_01_02
	(2008-06-10) on rzlab.ucr.edu
X-Spam-Level: *
X-Spam-Bayes: score:0.5 Bayes not run. spammytokens:Tokens not available.
	hammytokens:Tokens not available.
X-Spam-Status: No, score=1.1 required=4.0 tests=FOURLA,MULTALT autolearn=no
	version=3.2.5-bugs.debian.org_2005_01_02
Received: from lists.gnu.org (lists.gnu.org [199.232.76.165])
	by rzlab.ucr.edu (8.14.3/8.14.3/Debian-5) with ESMTP id n8TGnFWS025082
	for <submit@HIDDEN>; Tue, 29 Sep 2009 09:49:18 -0700
Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43)
	id 1MsfjH-0002Nv-Rj
	for bug-gnu-emacs@HIDDEN; Tue, 29 Sep 2009 12:39:07 -0400
Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43)
	id 1MsfjD-0002IH-S7
	for bug-gnu-emacs@HIDDEN; Tue, 29 Sep 2009 12:39:07 -0400
Received: from [199.232.76.173] (port=51618 helo=monty-python.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.43)
	id 1MsfjD-0002HX-C0
	for bug-gnu-emacs@HIDDEN; Tue, 29 Sep 2009 12:39:03 -0400
Received: from mailout01.rmx.de ([217.111.120.9]:39814)
	by monty-python.gnu.org with esmtp (Exim 4.60)
	(envelope-from <roland.meier@HIDDEN>)
	id 1MsfjC-0005GU-72
	for bug-gnu-emacs@HIDDEN; Tue, 29 Sep 2009 12:39:02 -0400
Received: from [172.19.21.67] (HELO crypto01.retarus.de)
  by mailout01.rmx.de (CommuniGate Pro SMTP 5.2.13 _community_)
  with ESMTPS id 54100287 for bug-gnu-emacs@HIDDEN; Tue, 29 Sep 2009 18:38:57 +0200
Received: (from daemon@localhost)
	by crypto01.retarus.de (8.13.6/8.13.6) id n8TGd2gU026390
	for <bug-gnu-emacs@HIDDEN>; Tue, 29 Sep 2009 18:39:02 +0200
Received: from mailcc09.retarus.de (localhost [127.0.0.1])
 	by crypto01.retarus.de (8.13.6/8.13.6) with SMTP id n8TDK1HW024225
 	for <bug-gnu-emacs@HIDDEN>; Tue, 29 Sep 2009 18:39:02 +0200
Received: from sbas703a.cw01.contiwan.com ([158.92.186.29])
          by frhb102.auto.contiwan.com (Lotus Domino Release 8.0.1)
          with ESMTP id 2009092918384652-334001 ;
          Tue, 29 Sep 2009 18:38:46 +0200 
Reply-To: rm369@HIDDEN
To: bug-gnu-emacs@HIDDEN
Subject: 23.1; sort-lines and sort-fields always set buffer modified
MIME-Version: 1.0
X-KeepSent: 24152BC5:4B27E59E-C1257640:005A815D;
 type=4; flags=0; name=$KeepSent
X-Mailer: Lotus Notes Release 6.5.6 March 06, 2007
Message-ID: <OF24152BC5.4B27E59E-ONC1257640.005A815D-C1257640.005B7026@HIDDEN>
From: Roland.Meier@HIDDEN
Date: Tue, 29 Sep 2009 18:38:44 +0200
X-MIMETrack: S/MIME Sign by Notes Client on Roland Meier/usr/cag(Release 6.5.6|March 06, 2007) at
 29.09.2009 18:38:44,
 	Serialize by Notes Client on Roland Meier/usr/cag(Release 6.5.6|March 06, 2007) at
 29.09.2009 18:38:44,
 	Serialize complete at 29.09.2009 18:38:44,
 	S/MIME Sign failed at 29.09.2009 18:38:44: Der Verschl?sselungsschl?ssel
 wurde nicht gefunden,
 	Serialize by Router on vshb001/srvc7/srvc/cag(Release 8.5FP1|June 15, 2009) at
 29.09.2009 18:38:48,
 	Serialize complete at 29.09.2009 18:38:48,
 	Itemize by SMTP Server on frhb102/srvcMX/srvc/cag(Release 8.0.1|February 07, 2008) at
 09/29/2009 06:38:46 PM,
 	Serialize by Router on frhb102/srvcMX/srvc/cag(Release 8.0.1|February 07, 2008) at
 09/29/2009 06:38:49 PM,
 	Serialize complete at 09/29/2009 06:38:49 PM
X-TNEFEvaluated: 1
X-RMX-ID: 20090929-183850-n8TGcnM0019217-0@kdin02
X-RMX-TRACE: 2009-09-29 18:38:50 KdIn@kdin02/mailcc04 [0.4s] 20090929-183850-n8TGcnM0019217-0@kdin02 0:00:00
X-RMX-TRACE: 2009-09-29 18:38:51 RmxMSO@kdin02/mailcc11 [0.1s] 20090929-183850-n8TGcnM0019217-0@kdin02 0:00:01
Content-Type: multipart/alternative; boundary="=_alternative 005B7025C1257640_="
X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4)

--=_alternative 005B7025C1257640_=
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset="ISO-8859-1"

M-x sort-lines and M-x sort-fields always set the buffer modified
status ("-" -> "*" in column 5 of the status line), even if the region
was sorted and the command did not modify anything.
An unmodified buffer should stay unmodified if nothing was changed.
Reproduction:
C-x C-f a <return> a <return> b <return> c <return> C-x C-s <C-home>=20
M-x s o r t - l <tab> <return>
Status line should start with --\---, it starts with --\**-


In GNU Emacs 23.1.1 (i386-mingw-nt5.1.2600)
 of 2009-07-30 on SOFT-MJASON
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.4)'

Important settings:
  value of $LC=5FALL: nil
  value of $LC=5FCOLLATE: nil
  value of $LC=5FCTYPE: nil
  value of $LC=5FMESSAGES: nil
  value of $LC=5FMONETARY: nil
  value of $LC=5FNUMERIC: nil
  value of $LC=5FTIME: nil
  value of $LANG: DEU
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8
  default-enable-multibyte-characters: t

Major mode: Fundamental

Minor modes in effect:
  show-paren-mode: t
  display-time-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t

Recent input:
C-s C-s C-s C-a <up> <up> <S-down> <S-down> <S-down>=20
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>=20
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>=20
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>=20
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>=20
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>=20
<S-down> <S-down> <S-down> <S-down> <S-down> <S-up>=20
<S-up> <S-up> <S-up> <S-up> <S-up> <S-up> <S-up> <S-up>=20
<S-up> <S-up> <S-up> <S-up> <S-up> <S-up> <S-up> <S-up>=20
<S-up> <S-up> <S-up> <S-up> <S-up> <S-down> <S-down>=20
<S-down> <S-down> <S-down> <S-down> <S-down> <S-down>=20
<S-down> <S-down> <S-delete> <S-up> <S-up> <S-up> <S-down>=20
<S-delete> <delete> C-s C-s C-a <f11> C-s C-s C-s C-s=20
C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-a <down>=20
<down> <down> <down> <down> <down> <down> <down> <down>=20
<down> <down> <down> <down> <down> <down> <down> <down>=20
<down> <down> <down> <down> <down> <down> <down> <down>=20
<down> <down> <down> <down> <down> <down> <down> <down>=20
<down> <down> <down> <down> <down> <down> <down> <up>=20
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>=20
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>=20
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>=20
<up> <up> <up> <up> <up> <up> <C-right> M-. <return>=20
<lwindow> <help-echo> <help-echo> <help-echo> <lwindow>=20
<f1> i <f2> <M-backspace> e t <tab> p r <tab> <return>=20
<C-home> C-s s o r t C-s C-s C-a <C-home> <lwindow>=20
<f3> <return> C-s s o r t C-s C-s C-a <C-home> <down>=20
<down> <down> <down> 2 C-s C-s <down> <up> <return>=20
C-s m o d i f C-s C-s C-s C-s C-a <lwindow> <f9> a=20
<tab> <return> C-g <f2> a <return> a <return> b <return>=20
c <return> <f3> <return> y e s <return> <f2> c : \=20
a <return> a <return> b <return> c <return> <f11> <C-S-home>=20
<C-end> M-x s o r t - l <tab> <return> C-=5F <lwindow>=20
M-x r e p o <tab> r <tab> <return>

Recent messages:
Mark saved where search started
Mark set
Mark saved where search started [2 times]
Quit
(New file) [2 times]
Saving file c:/a...
Wrote c:/a
Mark set [3 times]
Undo!
Making completion list...

--=20
Mit freundlichen Gr=FC=DFen
Roland Meier
     \|||/=20
     (o o)=20
=3D=3DooO=3D=3DU=3D=3DOoo=3D=3D=20
mailto:rm369@HIDDEN

--=_alternative 005B7025C1257640_=
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="ISO-8859-1"


<br><font size=3D2 face=3D"sans-serif">M-x sort-lines and M-x sort-fields a=
lways
set the buffer modified</font>
<br><font size=3D2 face=3D"sans-serif">status (&quot;-&quot; -&gt; &quot;*&=
quot;
in column 5 of the status line), even if the region</font>
<br><font size=3D2 face=3D"sans-serif">was sorted and the command did not m=
odify
anything.</font>
<br><font size=3D2 face=3D"sans-serif">An unmodified buffer should stay unm=
odified
if nothing was changed.</font>
<br><font size=3D2 face=3D"sans-serif">Reproduction:</font>
<br><font size=3D2 face=3D"sans-serif">C-x C-f a &lt;return&gt; a &lt;retur=
n&gt;
b &lt;return&gt; c &lt;return&gt; C-x C-s &lt;C-home&gt; </font>
<br><font size=3D2 face=3D"sans-serif">M-x s o r t - l &lt;tab&gt; &lt;retu=
rn&gt;</font>
<br><font size=3D2 face=3D"sans-serif">Status line should start with --\---,
it starts with --\**-</font>
<br>
<br>
<br><font size=3D2 face=3D"sans-serif">In GNU Emacs 23.1.1 (i386-mingw-nt5.=
1.2600)</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp;of 2009-07-30 on SOFT-MJASON</=
font>
<br><font size=3D2 face=3D"sans-serif">Windowing system distributor `Micros=
oft
Corp.', version 5.1.2600</font>
<br><font size=3D2 face=3D"sans-serif">configured using `configure --with-g=
cc
(4.4)'</font>
<br>
<br><font size=3D2 face=3D"sans-serif">Important settings:</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; value of $LC=5FALL: nil</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; value of $LC=5FCOLLATE: nil</=
font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; value of $LC=5FCTYPE: nil</fo=
nt>
<br><font size=3D2 face=3D"sans-serif">&nbsp; value of $LC=5FMESSAGES: nil<=
/font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; value of $LC=5FMONETARY: nil<=
/font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; value of $LC=5FNUMERIC: nil</=
font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; value of $LC=5FTIME: nil</fon=
t>
<br><font size=3D2 face=3D"sans-serif">&nbsp; value of $LANG: DEU</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; value of $XMODIFIERS: nil</fo=
nt>
<br><font size=3D2 face=3D"sans-serif">&nbsp; locale-coding-system: utf-8</=
font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; default-enable-multibyte-char=
acters:
t</font>
<br>
<br><font size=3D2 face=3D"sans-serif">Major mode: Fundamental</font>
<br>
<br><font size=3D2 face=3D"sans-serif">Minor modes in effect:</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; show-paren-mode: t</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; display-time-mode: t</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; tooltip-mode: t</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; mouse-wheel-mode: t</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; menu-bar-mode: t</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; file-name-shadow-mode: t</fon=
t>
<br><font size=3D2 face=3D"sans-serif">&nbsp; global-font-lock-mode: t</fon=
t>
<br><font size=3D2 face=3D"sans-serif">&nbsp; font-lock-mode: t</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; blink-cursor-mode: t</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; global-auto-composition-mode:
t</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; auto-composition-mode: t</fon=
t>
<br><font size=3D2 face=3D"sans-serif">&nbsp; auto-encryption-mode: t</font>
<br><font size=3D2 face=3D"sans-serif">&nbsp; auto-compression-mode: t</fon=
t>
<br><font size=3D2 face=3D"sans-serif">&nbsp; line-number-mode: t</font>
<br>
<br><font size=3D2 face=3D"sans-serif">Recent input:</font>
<br><font size=3D2 face=3D"sans-serif">C-s C-s C-s C-a &lt;up&gt; &lt;up&gt;
&lt;S-down&gt; &lt;S-down&gt; &lt;S-down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-down&gt; &lt;S-down&gt; &lt;S-=
down&gt;
&lt;S-down&gt; &lt;S-down&gt; &lt;S-down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-down&gt; &lt;S-down&gt; &lt;S-=
down&gt;
&lt;S-down&gt; &lt;S-down&gt; &lt;S-down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-down&gt; &lt;S-down&gt; &lt;S-=
down&gt;
&lt;S-down&gt; &lt;S-down&gt; &lt;S-down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-down&gt; &lt;S-down&gt; &lt;S-=
down&gt;
&lt;S-down&gt; &lt;S-down&gt; &lt;S-down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-down&gt; &lt;S-down&gt; &lt;S-=
down&gt;
&lt;S-down&gt; &lt;S-down&gt; &lt;S-down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-down&gt; &lt;S-down&gt; &lt;S-=
down&gt;
&lt;S-down&gt; &lt;S-down&gt; &lt;S-up&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-up&gt; &lt;S-up&gt; &lt;S-up&g=
t;
&lt;S-up&gt; &lt;S-up&gt; &lt;S-up&gt; &lt;S-up&gt; &lt;S-up&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-up&gt; &lt;S-up&gt; &lt;S-up&g=
t;
&lt;S-up&gt; &lt;S-up&gt; &lt;S-up&gt; &lt;S-up&gt; &lt;S-up&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-up&gt; &lt;S-up&gt; &lt;S-up&g=
t;
&lt;S-up&gt; &lt;S-up&gt; &lt;S-down&gt; &lt;S-down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-down&gt; &lt;S-down&gt; &lt;S-=
down&gt;
&lt;S-down&gt; &lt;S-down&gt; &lt;S-down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-down&gt; &lt;S-down&gt; &lt;S-=
delete&gt;
&lt;S-up&gt; &lt;S-up&gt; &lt;S-up&gt; &lt;S-down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;S-delete&gt; &lt;delete&gt; C-s
C-s C-a &lt;f11&gt; C-s C-s C-s C-s </font>
<br><font size=3D2 face=3D"sans-serif">C-s C-s C-s C-s C-s C-s C-s C-s C-s
C-s C-a &lt;down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;down&gt; &lt;down&gt; &lt;down&g=
t;
&lt;down&gt; &lt;down&gt; &lt;down&gt; &lt;down&gt; &lt;down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;down&gt; &lt;down&gt; &lt;down&g=
t;
&lt;down&gt; &lt;down&gt; &lt;down&gt; &lt;down&gt; &lt;down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;down&gt; &lt;down&gt; &lt;down&g=
t;
&lt;down&gt; &lt;down&gt; &lt;down&gt; &lt;down&gt; &lt;down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;down&gt; &lt;down&gt; &lt;down&g=
t;
&lt;down&gt; &lt;down&gt; &lt;down&gt; &lt;down&gt; &lt;down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;down&gt; &lt;down&gt; &lt;down&g=
t;
&lt;down&gt; &lt;down&gt; &lt;down&gt; &lt;down&gt; &lt;up&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;up&gt; &lt;up&gt; &lt;up&gt; &lt=
;up&gt;
&lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt;
</font>
<br><font size=3D2 face=3D"sans-serif">&lt;up&gt; &lt;up&gt; &lt;up&gt; &lt=
;up&gt;
&lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt;
</font>
<br><font size=3D2 face=3D"sans-serif">&lt;up&gt; &lt;up&gt; &lt;up&gt; &lt=
;up&gt;
&lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt; &lt;up&gt;
</font>
<br><font size=3D2 face=3D"sans-serif">&lt;up&gt; &lt;up&gt; &lt;up&gt; &lt=
;up&gt;
&lt;up&gt; &lt;up&gt; &lt;C-right&gt; M-. &lt;return&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;lwindow&gt; &lt;help-echo&gt; &l=
t;help-echo&gt;
&lt;help-echo&gt; &lt;lwindow&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;f1&gt; i &lt;f2&gt; &lt;M-backsp=
ace&gt;
e t &lt;tab&gt; p r &lt;tab&gt; &lt;return&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;C-home&gt; C-s s o r t C-s C-s C=
-a
&lt;C-home&gt; &lt;lwindow&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;f3&gt; &lt;return&gt; C-s s o r
t C-s C-s C-a &lt;C-home&gt; &lt;down&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;down&gt; &lt;down&gt; &lt;down&g=
t;
2 C-s C-s &lt;down&gt; &lt;up&gt; &lt;return&gt; </font>
<br><font size=3D2 face=3D"sans-serif">C-s m o d i f C-s C-s C-s C-s C-a &l=
t;lwindow&gt;
&lt;f9&gt; a </font>
<br><font size=3D2 face=3D"sans-serif">&lt;tab&gt; &lt;return&gt; C-g &lt;f=
2&gt;
a &lt;return&gt; a &lt;return&gt; b &lt;return&gt; </font>
<br><font size=3D2 face=3D"sans-serif">c &lt;return&gt; &lt;f3&gt; &lt;retu=
rn&gt;
y e s &lt;return&gt; &lt;f2&gt; c : \ </font>
<br><font size=3D2 face=3D"sans-serif">a &lt;return&gt; a &lt;return&gt; b
&lt;return&gt; c &lt;return&gt; &lt;f11&gt; &lt;C-S-home&gt; </font>
<br><font size=3D2 face=3D"sans-serif">&lt;C-end&gt; M-x s o r t - l &lt;ta=
b&gt;
&lt;return&gt; C-=5F &lt;lwindow&gt; </font>
<br><font size=3D2 face=3D"sans-serif">M-x r e p o &lt;tab&gt; r &lt;tab&gt;
&lt;return&gt;</font>
<br>
<br><font size=3D2 face=3D"sans-serif">Recent messages:</font>
<br><font size=3D2 face=3D"sans-serif">Mark saved where search started</fon=
t>
<br><font size=3D2 face=3D"sans-serif">Mark set</font>
<br><font size=3D2 face=3D"sans-serif">Mark saved where search started [2 t=
imes]</font>
<br><font size=3D2 face=3D"sans-serif">Quit</font>
<br><font size=3D2 face=3D"sans-serif">(New file) [2 times]</font>
<br><font size=3D2 face=3D"sans-serif">Saving file c:/a...</font>
<br><font size=3D2 face=3D"sans-serif">Wrote c:/a</font>
<br><font size=3D2 face=3D"sans-serif">Mark set [3 times]</font>
<br><font size=3D2 face=3D"sans-serif">Undo!</font>
<br><font size=3D2 face=3D"sans-serif">Making completion list...</font>
<br><font size=3D2 face=3D"sans-serif"><br>
</font><font size=3D3>-- <br>
Mit freundlichen Gr=FC=DFen<br>
Roland Meier</font><tt><font size=3D3><br>
 &nbsp; &nbsp; \|||/ <br>
 &nbsp; &nbsp; (o o) <br>
=3D=3DooO=3D=3DU=3D=3DOoo=3D=3D </font></tt><font size=3D3><br>
</font><font size=3D2>mailto:rm369@HIDDEN<br>
</font>
--=_alternative 005B7025C1257640_=--




Acknowledgement sent to rm369@HIDDEN:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs@HIDDEN>. Full text available.
Report forwarded to bug-submit-list@HIDDEN, Emacs Bugs <bug-gnu-emacs@HIDDEN>:
bug#4587; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 31 Oct 2014 17:00:04 UTC

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