From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Chong Yidong" Newsgroups: gmane.emacs.devel Subject: Re: require-hard-newlines to use newline Date: Tue, 8 Mar 2005 11:39:21 -0500 (EST) Message-ID: <2451.220.255.169.59.1110299961.squirrel@www.stupidchicken.com> References: <1483.220.255.172.231.1109730379.squirrel@www.stupidchicken.com> <200503020302.j2232fR21722@raven.dms.auburn.edu> <2750.220.255.172.231.1109734015.squirrel@www.stupidchicken.com> <1415.220.255.169.59.1109818150.squirrel@www.stupidchicken.com> <1404.220.255.169.59.1109889146.squirrel@www.stupidchicken.com> <200503040033.j240XD022473@raven.dms.auburn.edu> <50554.203.116.59.23.1109897782.squirrel@www.stupidchicken.com> <200503080005.j2805Kg28696@raven.dms.auburn.edu> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: sea.gmane.org 1110300468 26519 80.91.229.2 (8 Mar 2005 16:47:48 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 8 Mar 2005 16:47:48 +0000 (UTC) Cc: miles@gnu.org, snogglethorpe@gmail.com, Luc Teirlinck , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Mar 08 17:47:47 2005 Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1D8hl1-0005yT-Dr for ged-emacs-devel@m.gmane.org; Tue, 08 Mar 2005 17:40:37 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1D8hzW-0001CS-GY for ged-emacs-devel@m.gmane.org; Tue, 08 Mar 2005 11:55:30 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1D8hz9-0001C0-Ku for emacs-devel@gnu.org; Tue, 08 Mar 2005 11:55:07 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1D8hz7-0001Ay-EZ for emacs-devel@gnu.org; Tue, 08 Mar 2005 11:55:06 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1D8hz7-0001Av-9V for emacs-devel@gnu.org; Tue, 08 Mar 2005 11:55:05 -0500 Original-Received: from [64.21.80.18] (helo=shark.dnsvelocity.com) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.34) id 1D8hk3-0002nF-4G; Tue, 08 Mar 2005 11:39:31 -0500 Original-Received: from stupidch by shark.dnsvelocity.com with local (Exim 4.44) id 1D8hjt-0008FM-8o; Tue, 08 Mar 2005 11:39:21 -0500 Original-Received: from 220.255.169.59 ([220.255.169.59]) (SquirrelMail authenticated user cyd@stupidchicken.com) by www.stupidchicken.com with HTTP; Tue, 8 Mar 2005 11:39:21 -0500 (EST) In-Reply-To: Original-To: rms@gnu.org User-Agent: SquirrelMail/1.4.4 X-Priority: 3 (Normal) Importance: Normal X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - shark.dnsvelocity.com X-AntiAbuse: Original Domain - gnu.org X-AntiAbuse: Originator/Caller UID/GID - [32675 33085] / [47 12] X-AntiAbuse: Sender Address Domain - stupidchicken.com X-Source: /usr/local/cpanel/3rdparty/bin/php X-Source-Args: /usr/local/cpanel/3rdparty/bin/php /usr/local/cpanel/base/3rdparty/squirrelmail/src/compose.php X-Source-Dir: :/base/3rdparty/squirrelmail/src X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org X-MailScanner-To: ged-emacs-devel@m.gmane.org Xref: news.gmane.org gmane.emacs.devel:34332 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:34332 > If I understood correctly, we do not like code included with the Emacs > distribution to use `defadvice'. longlines.el uses defadvice for > `newline', `kill-region', `copy-region-as-kill', `yank' and > `yank-pop'. > > Yes,it would be good to think about other mechanisms to use instead > of that. Yidong, would you like to think about what kind of new hook > might make it possible to do the job? What the advice does is mainly encoding and decoding yanked text. When a piece of text is yanked into a longlines buffer, the newlines have to be marked as hard. Conversely, when text is killed from a longlines buffer, the soft newlines have to be removed before it is placed in the kill ring. As I see it, there are two ways to get around using advice: 1. If Longlines is to be merged into Emacs, lines like (if (and (fboundp longlines-mode) longlines-mode) blahblahblah) could be added to kill-region and the other functions. This is what Transient mark mode does, but I doubt that Longlines mode is "important" enough to justify it. 2. Defining two new abnormal hooks, maybe named yank-encode-functions and kill-encode-functions, to be called by kill-region etc (or possibly the lower-level functions like kill-new and kill-append.) Each function would be called with one argument, the yanked or killed string, and return an encoded string to be passed to the next function, or to the buffer/kill ring. For example, kill-region could do something like (mapcar '(lambda (fun) (setq string (funcall fun string))) 'kill-encode-functions)