]> git.eshelyaron.com Git - emacs.git/commitdiff
Add new function `flush-standard-output'.
authorLars Ingebrigtsen <larsi@gnus.org>
Sun, 17 Apr 2022 12:04:34 +0000 (14:04 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sun, 17 Apr 2022 12:06:25 +0000 (14:06 +0200)
* doc/lispref/streams.texi (Output Functions): Document it.
* src/print.c (Fflush_standard_output): New function (bug#15180).

doc/lispref/streams.texi
etc/NEWS
src/print.c

index 8f8562cadc8a30a43b71288d884e24c12cd72799..781a50f5c49769c591cddf7df382760e055d8cbe 100644 (file)
@@ -685,6 +685,15 @@ This function outputs @var{character} to @var{stream}.  It returns
 @var{character}.
 @end defun
 
+@defun flush-standard-output
+If you have Emacs-based batch scripts that send output to the
+terminal, Emacs will automatically display the output whenever you
+write a newline characters to @code{standard-output}.  This function
+allows you to flush to @code{standard-output} without sending a
+newline character first, which enables you to display incomplete
+lines.
+@end defun
+
 @defun prin1-to-string object &optional noescape
 @cindex object to string
 This function returns a string containing the text that @code{prin1}
index 071fdd7aee9bec98bf0bc666265a60477d6897d4..3821dac17989df73ebc85c8f29bc404779951c7d 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1423,6 +1423,11 @@ functions.
 \f
 * Lisp Changes in Emacs 29.1
 
++++
+** New function 'flush-standard-output'.
+This enables you do display incomplete lines from batch-based Emacs
+scripts.
+
 +++
 ** New convenience function 'buttonize-region'.
 This works like 'buttonize', but for a region instead of a string.
index 4a68d15fe0286db9d33542fd74b912fd8cce5f89..baf515047b4a0713612e0a3f9cd620df3705af09 100644 (file)
@@ -768,6 +768,16 @@ is used instead.  */)
   return object;
 }
 
+DEFUN ("flush-standard-output", Fflush_standard_output, Sflush_standard_output,
+       0, 0, 0,
+       doc: /* Flush standard-output.
+This can be useful after using `princ' and the like in scripts.  */)
+  (void)
+{
+  fflush (stdout);
+  return Qnil;
+}
+
 DEFUN ("external-debugging-output", Fexternal_debugging_output, Sexternal_debugging_output, 1, 1, 0,
        doc: /* Write CHARACTER to stderr.
 You can call `print' while debugging emacs, and pass it this function
@@ -2549,4 +2559,6 @@ printed.  If the function returns anything else, the object will not
 be printed.  */);
   Vprint_unreadable_function = Qnil;
   DEFSYM (Qprint_unreadable_function, "print-unreadable-function");
+
+  defsubr (&Sflush_standard_output);
 }