Subject: bug#18652: closed (Re: bug#18652: 25.0.50; [PATCH] Add fresh-line)

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 08 Oct 2014 22:25:03 +0000

Your bug report

#18652: 25.0.50; [PATCH] Add fresh-line

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
18652: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18652
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#18652: 25.0.50; [PATCH] Add fresh-line
From: Leo Liu <[email-masked]>
To: Stefan Monnier <[email-masked]>
Cc: [email-masked]
Date: Thu, 09 Oct 2014 06:24:42 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 25.1

On 2014-10-08 14:26 -0400, Stefan Monnier wrote:
> That's no excuse for creating a completely separate function which does
> the same as terpri, just slightly differently.
> IOW, please make it an argument to terpri, and if you want you can M-x
> report-emacs-bug about terpri requesting a new name for it.

I am actually fine with terpri now that I have remembered it ;)
Patch committed hopefully satisfying these comments.

Thanks,
Leo

Subject: 25.0.50; [PATCH] Add fresh-line
From: Leo Liu <[email-masked]>
To: [email-masked]
Date: Tue, 07 Oct 2014 21:03:05 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

I often find myself wanting to start printing at a newline and it is a
lot of work to do it properly. I wonder if we can add something along
these lines?

Thanks,
Leo

=== modified file 'src/print.c'
--- src/print.c	2014-09-11 06:21:55 +0000
+++ src/print.c	2014-10-07 13:01:46 +0000
@@ -530,6 +530,30 @@
   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.
+Do nothing and return nil if PRINTCHARFUN is a function.  */)
+  (Lisp_Object printcharfun)
+{
+  PRINTDECLARE;
+  if (NILP (printcharfun))
+    printcharfun = Vstandard_output;
+  PRINTPREPARE;
+
+  if (!FUNCTIONP (printcharfun) && 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 +2358,7 @@
   defsubr (&Sprinc);
   defsubr (&Sprint);
   defsubr (&Sterpri);
+  defsubr (&Sfresh_line);
   defsubr (&Swrite_char);
 #ifdef WITH_REDIRECT_DEBUGGING_OUTPUT
   defsubr (&Sredirect_debugging_output);