From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Leo Liu Newsgroups: gmane.emacs.bugs Subject: bug#18652: 25.0.50; [PATCH] Add fresh-line Date: Wed, 08 Oct 2014 09:54:28 +0800 Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1412733333 8261 80.91.229.3 (8 Oct 2014 01:55:33 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 8 Oct 2014 01:55:33 +0000 (UTC) Cc: 18652@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Oct 08 03:55:26 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XbgTM-0001V8-1L for geb-bug-gnu-emacs@m.gmane.org; Wed, 08 Oct 2014 03:55:24 +0200 Original-Received: from localhost ([::1]:33324 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XbgTL-0003s5-DZ for geb-bug-gnu-emacs@m.gmane.org; Tue, 07 Oct 2014 21:55:23 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42804) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XbgTB-0003rh-3S for bug-gnu-emacs@gnu.org; Tue, 07 Oct 2014 21:55:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XbgT1-0003cd-8W for bug-gnu-emacs@gnu.org; Tue, 07 Oct 2014 21:55:13 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:45639) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XbgT1-0003cD-4t for bug-gnu-emacs@gnu.org; Tue, 07 Oct 2014 21:55:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1XbgSz-0003OQ-PS for bug-gnu-emacs@gnu.org; Tue, 07 Oct 2014 21:55:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Leo Liu Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Wed, 08 Oct 2014 01:55:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18652 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 18652-submit@debbugs.gnu.org id=B18652.141273327713007 (code B ref 18652); Wed, 08 Oct 2014 01:55:01 +0000 Original-Received: (at 18652) by debbugs.gnu.org; 8 Oct 2014 01:54:37 +0000 Original-Received: from localhost ([127.0.0.1]:37203 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XbgSa-0003Ni-Ir for submit@debbugs.gnu.org; Tue, 07 Oct 2014 21:54:37 -0400 Original-Received: from mail-pa0-f49.google.com ([209.85.220.49]:37456) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XbgSY-0003Na-Rp for 18652@debbugs.gnu.org; Tue, 07 Oct 2014 21:54:35 -0400 Original-Received: by mail-pa0-f49.google.com with SMTP id hz1so8018615pad.8 for <18652@debbugs.gnu.org>; Tue, 07 Oct 2014 18:54:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:face:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=gBTLIGbNN7UY0QMXELZvx71ndrUqZ0p5wvCNjwwsPA8=; b=mzrQV9s0cXIH+AAbKscDbmphSdeKnXQQdWaGxj6JkrKt6mLMs0DEt7/iGJzNOjbEkT oGHfjU/QnABgrskQ5Ib/R6ZINY+oG4Z7gdde4BvHtW8r/iUu2O5x75gm9VMadcpFKhuY nLRXP6F/Sazv6dCZnUKERmj0dfueGcQQAGAPxL1O66/IVP4vrordNLLjrC5PaCL4dnSC 7MzXMJxD1MCp/MVq8vJuKgaj4TvcaRPFyRl/c+pIW1/ja+OXxISO7EajjWk9h4F8mJg+ aBsRdVA1vmLcGJP3/KvLeDifRqrCDfqHcjMPLHOAzMbgsJNKmi2Q9JYogXTI48lqNNC8 6OCw== X-Received: by 10.68.65.6 with SMTP id t6mr7259666pbs.138.1412733273928; Tue, 07 Oct 2014 18:54:33 -0700 (PDT) Original-Received: from fortuna ([221.222.150.213]) by mx.google.com with ESMTPSA id zf5sm17057798pbc.44.2014.10.07.18.54.31 for (version=TLSv1.1 cipher=RC4-SHA bits=128/128); Tue, 07 Oct 2014 18:54:33 -0700 (PDT) Face: iVBORw0KGgoAAAANSUhEUgAAACgAAAAoBAMAAAB+0KVeAAAAElBMVEUAAAAAAP+LRRP0pGC+ vr7///+7mT1iAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9cBBwMO DhglKe4AAAEsSURBVCjPbZNBboQwDEV/Cd4X9QJRThApmn0XYW+Jyf2v0m+HhqDBgiAe9rcTG7QH w/1Vn2Ar8gBb/ocywSN3qK9T3z4eFDB4eApocBpeBs1RSykoJd8gQcm8pGmHXFso3ajnmsqV0TnY DQkOfXUfN5NwaI7AWTVOyEhcu1aHmdWItHddUVUcUgUBCkitu8V6ditHVOVdqzl2EQ1ZVGTbdK0V 7cqn8vWzoU5Q/bF9Y/Y0cRU1xwkys5dJ+Dt6pBDWifcNQml8Gh2JVmPSoQzo7en0grswkxrUGYJ7 0hSxxAGr7ZMwYcHIzprpi7TENEE1xtiYxixRlCfPBsUUrwHD7uGIwATrbnODJcVrPpVn3hxiGloe m/S+z3CtuzUSMo83N4DPH+F0evwR3P4A2k+75838OKQAAAAASUVORK5CYII= In-Reply-To: (Stefan Monnier's message of "Tue, 07 Oct 2014 16:45:11 -0400") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (CentOS 6.5) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:94270 On 2014-10-07 16:45 -0400, Stefan Monnier wrote: > Oh, I missed this part. Then, maybe it's OK. But in the case where > printcharfun is a function, it should signal an error rather than > silently returning nil. How about something like this? Thanks, Leo. === modified file 'src/print.c' --- src/print.c 2014-09-11 06:21:55 +0000 +++ src/print.c 2014-10-08 01:51:45 +0000 @@ -530,6 +530,33 @@ return Qt; } +DEFUN ("fresh-line", Ffresh_line, Sfresh_line, 0, 1, 0, + doc: /* Output a newline unless already at the beginning of a line. +Value is non-nil if a newline is printed. +Signal an error if PRINTCHARFUN is a function. */) + (Lisp_Object printcharfun) +{ + PRINTDECLARE; + if (NILP (printcharfun)) + printcharfun = Vstandard_output; + PRINTPREPARE; + + if (FUNCTIONP (printcharfun)) + signal_error ("Unsupported function argument", printcharfun); + + if (NILP (Fbolp ())) + { + PRINTCHAR ('\n'); + PRINTFINISH; + return Qt; + } + else + { + PRINTFINISH; + return Qnil; + } +} + DEFUN ("prin1", Fprin1, Sprin1, 1, 2, 0, doc: /* Output the printed representation of OBJECT, any Lisp object. Quoting characters are printed when needed to make output that `read' @@ -2334,6 +2361,7 @@ defsubr (&Sprinc); defsubr (&Sprint); defsubr (&Sterpri); + defsubr (&Sfresh_line); defsubr (&Swrite_char); #ifdef WITH_REDIRECT_DEBUGGING_OUTPUT defsubr (&Sredirect_debugging_output);