aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorEli Zaretskii2016-05-07 12:16:27 +0300
committerEli Zaretskii2016-05-07 12:16:27 +0300
commit4ffec91aa1fe668609f460cf6377644597c23306 (patch)
tree4fe9756b816ca269d3fb520b1f3719dad3696673 /doc
parentdc662713e235c9c55c71636168af7e14519f180d (diff)
downloademacs-4ffec91aa1fe668609f460cf6377644597c23306.tar.gz
emacs-4ffec91aa1fe668609f460cf6377644597c23306.zip
Document automatic adjustment of process' logical window dimensions
* doc/lispref/processes.texi (Process Buffers): Document 'set-process-window-size' and 'window-adjust-process-window-size-function'. * etc/NEWS: Mention the new functionality and variable. * src/process.c (Fset_process_window_size): Improve the doc string.
Diffstat (limited to 'doc')
-rw-r--r--doc/lispref/processes.texi52
1 files changed, 52 insertions, 0 deletions
diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi
index f660b159386..03ae1f04349 100644
--- a/doc/lispref/processes.texi
+++ b/doc/lispref/processes.texi
@@ -1381,6 +1381,58 @@ Killing the process's buffer deletes the process, which kills the
1381subprocess with a @code{SIGHUP} signal (@pxref{Signals to Processes}). 1381subprocess with a @code{SIGHUP} signal (@pxref{Signals to Processes}).
1382@end defun 1382@end defun
1383 1383
1384If the process's buffer is displayed in a window, your Lisp program
1385may wish telling the process the dimensions of that window, so that
1386the process could adapt its output to those dimensions, much as it
1387adapts to the screen dimensions. The following functions allow to
1388communicate this kind of information to processes; however, not all
1389systems support the underlying functionality, so it is best to provide
1390fallbacks, e.g., via command-line arguments or environment variables.
1391
1392@defun set-process-window-size process height width
1393Tell @var{process} that its logical window size has dimensions
1394@var{width} by @var{height}, in character units. If this function
1395succeeds in communicating this information to the process, it returns
1396@code{t}; otherwise it returns @code{nil}.
1397@end defun
1398
1399When windows that display buffers associated with process change their
1400dimensions, the affected processes should be told about these changes.
1401By default, when the window configuration changes, Emacs will
1402automatically call @code{set-process-window-size} on behalf of every
1403process whose buffer is displayed in a window, passing it the smallest
1404dimensions of all the windows displaying the process's buffer. This
1405works via @code{window-configuration-change-hook} (@pxref{Window
1406Hooks}), which is told to invoke the function that is the value of
1407the variable @code{window-adjust-process-window-size-function} for
1408each process whose buffer is displayed in at least one window. You
1409can customize this behavior by setting the value of that variable.
1410
1411@defopt window-adjust-process-window-size-function
1412The value of this variable should be a function of two arguments: a
1413process and the list of windows displaying the process's buffer. When
1414the function is called, the process's buffer is the current buffer.
1415The function should return a cons cell @w{@code{(@var{width}
1416. @var{height})}} that describes the dimensions of the logical process
1417window to be passed via a call to @code{set-process-window-size}. The
1418function can also return @code{nil}, in which case Emacs will not call
1419@code{set-process-window-size} for this process.
1420
1421Emacs supplies two predefined values for this variable:
1422@code{window-adjust-process-window-size-smallest}, which returns the
1423smallest of all the dimensions of the windows that display a process's
1424buffer; and @code{window-adjust-process-window-size-largest}, which
1425returns the largest dimensions. For more complex strategies, write
1426your own function.
1427
1428This variable can be buffer-local.
1429@end defopt
1430
1431If the process has the @code{adjust-window-size-function} property
1432(@pxref{Process Information}), its value overrides the global and
1433buffer-local values of
1434@code{window-adjust-process-window-size-function}.
1435
1384@node Filter Functions 1436@node Filter Functions
1385@subsection Process Filter Functions 1437@subsection Process Filter Functions
1386@cindex filter function 1438@cindex filter function