aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorBastien2017-07-03 09:06:29 +0200
committerBastien2017-07-03 09:06:29 +0200
commit5ca1888fe670aee7febd4d42665d7372ab2ffebc (patch)
tree1f7f8d8a7580e556fc83cf3a6aaeec567b33a090 /doc
parent20e006ffee41062f1b551a92c24d9edc53cd0f56 (diff)
parent1b4f0a92ff3505ef9a465b9b391756e3a73a6443 (diff)
downloademacs-5ca1888fe670aee7febd4d42665d7372ab2ffebc.tar.gz
emacs-5ca1888fe670aee7febd4d42665d7372ab2ffebc.zip
Merge branch 'master' into scratch/org-mode-merge
Diffstat (limited to 'doc')
-rw-r--r--doc/emacs/dired.texi26
-rw-r--r--doc/emacs/help.texi7
-rw-r--r--doc/emacs/killing.texi4
-rw-r--r--doc/emacs/mule.texi8
-rw-r--r--doc/lispref/display.texi71
-rw-r--r--doc/lispref/elisp.texi2
-rw-r--r--doc/lispref/frames.texi510
-rw-r--r--doc/lispref/modes.texi4
-rw-r--r--doc/lispref/objects.texi35
-rw-r--r--doc/lispref/windows.texi145
-rw-r--r--doc/misc/emacs-mime.texi2
-rw-r--r--doc/misc/tramp.texi42
-rw-r--r--doc/misc/trampver.texi2
13 files changed, 668 insertions, 190 deletions
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 22b0fcd4676..28cb51d88bb 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -875,27 +875,33 @@ treat it specially.
875 875
876@item 876@item
877Otherwise, if the command string contains @samp{?} surrounded by 877Otherwise, if the command string contains @samp{?} surrounded by
878whitespace, Emacs runs the shell command once @emph{for each file}, 878whitespace or @samp{`?`}, Emacs runs the shell command once
879substituting the current file name for @samp{?} each time. You can 879@emph{for each file}, substituting the current file name for @samp{?}
880use @samp{?} more than once in the command; the same file name 880and @samp{`?`} each time. You can use both @samp{?} or @samp{`?`} more
881replaces each occurrence. 881than once in the command; the same file name replaces each occurrence.
882If you mix them with @samp{*} the command signals an error.
882 883
883@item 884@item
884If the command string contains neither @samp{*} nor @samp{?}, Emacs 885If the command string contains neither @samp{*} nor @samp{?} nor @samp{`?`},
885runs the shell command once for each file, adding the file name at the 886Emacs runs the shell command once for each file, adding the file name at the
886end. For example, @kbd{! uudecode @key{RET}} runs @code{uudecode} on 887end. For example, @kbd{! uudecode @key{RET}} runs @code{uudecode} on
887each file. 888each file.
888@end itemize 889@end itemize
889 890
890 To iterate over the file names in a more complicated fashion, use an 891 To iterate over the file names in a more complicated fashion, you might
891explicit shell loop. For example, here is how to uuencode each file, 892prefer to use an explicit shell loop. For example, here is how to uuencode
892making the output file name by appending @samp{.uu} to the input file 893each file, making the output file name by appending @samp{.uu} to the input
893name: 894file name:
894 895
895@example 896@example
896for file in * ; do uuencode "$file" "$file" >"$file".uu; done 897for file in * ; do uuencode "$file" "$file" >"$file".uu; done
897@end example 898@end example
898 899
900The same example with @samp{`?`} notation:
901@example
902uuencode ? ? > `?`.uu
903@end example
904
899 The @kbd{!} and @kbd{&} commands do not attempt to update the Dired 905 The @kbd{!} and @kbd{&} commands do not attempt to update the Dired
900buffer to show new or modified files, because they don't know what 906buffer to show new or modified files, because they don't know what
901files will be changed. Use the @kbd{g} command to update the Dired 907files will be changed. Use the @kbd{g} command to update the Dired
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index 548ca6a1b48..fd6df1c7e53 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -203,9 +203,10 @@ string}, which describes exactly what the command does.
203describes the command corresponding to @var{key}. 203describes the command corresponding to @var{key}.
204 204
205 @kbd{C-h c}, @kbd{C-h k} and @kbd{C-h K} work for any sort of key 205 @kbd{C-h c}, @kbd{C-h k} and @kbd{C-h K} work for any sort of key
206sequences, including function keys, menus, and mouse events. For 206sequences, including function keys, menus, and mouse events (except
207instance, after @kbd{C-h k} you can select a menu item from the menu 207that @kbd{C-h c} ignores mouse movement events). For instance, after
208bar, to view the documentation string of the command it runs. 208@kbd{C-h k} you can select a menu item from the menu bar, to view the
209documentation string of the command it runs.
209 210
210@kindex C-h w 211@kindex C-h w
211@findex where-is 212@findex where-is
diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi
index 47de0531292..0b5efd04a18 100644
--- a/doc/emacs/killing.texi
+++ b/doc/emacs/killing.texi
@@ -519,6 +519,10 @@ when exiting Emacs; if you wish to prevent Emacs from transferring
519data to the clipboard manager, change the variable 519data to the clipboard manager, change the variable
520@code{x-select-enable-clipboard-manager} to @code{nil}. 520@code{x-select-enable-clipboard-manager} to @code{nil}.
521 521
522 Since strings containing NUL bytes are usually truncated when passed
523through the clipboard, Emacs replaces such characters with ``\0''
524before transfering them to the system's clipboard.
525
522@vindex select-enable-primary 526@vindex select-enable-primary
523@findex clipboard-kill-region 527@findex clipboard-kill-region
524@findex clipboard-kill-ring-save 528@findex clipboard-kill-ring-save
diff --git a/doc/emacs/mule.texi b/doc/emacs/mule.texi
index 13407f6f07b..8edf2640cfe 100644
--- a/doc/emacs/mule.texi
+++ b/doc/emacs/mule.texi
@@ -1795,8 +1795,12 @@ of the first character you read precedes that of the next character.
1795Reordering of bidirectional text into the @dfn{visual} order happens 1795Reordering of bidirectional text into the @dfn{visual} order happens
1796at display time. As result, character positions no longer increase 1796at display time. As result, character positions no longer increase
1797monotonically with their positions on display. Emacs implements the 1797monotonically with their positions on display. Emacs implements the
1798Unicode Bidirectional Algorithm described in the Unicode Standard 1798Unicode Bidirectional Algorithm (UBA) described in the Unicode
1799Annex #9, for reordering of bidirectional text for display. 1799Standard Annex #9, for reordering of bidirectional text for display.
1800It deviates from the UBA only in how continuation lines are displayed
1801when text direction is opposite to the base paragraph direction,
1802e.g. when a long line of English text appears in a right-to-left
1803paragraph.
1800 1804
1801@vindex bidi-display-reordering 1805@vindex bidi-display-reordering
1802 The buffer-local variable @code{bidi-display-reordering} controls 1806 The buffer-local variable @code{bidi-display-reordering} controls
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 4de55fd3fb2..2ebe872c362 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -1974,6 +1974,71 @@ line, if present, in the return value. If it is @code{t}, include the
1974height of both, if present, in the return value. 1974height of both, if present, in the return value.
1975@end defun 1975@end defun
1976 1976
1977@code{window-text-pixel-size} treats the text displayed in a window as a
1978whole and does not care about the size of individual lines. The
1979following function does.
1980
1981@defun window-lines-pixel-dimensions &optional window first last body inverse
1982This function calculates the pixel dimensions of each line displayed in
1983the specified @var{window}. It does so by walking @var{window}'s
1984current glyph matrix---a matrix storing the glyph (@pxref{Glyphs}) of
1985each buffer character currently displayed in @var{window}. If
1986successful, it returns a list of cons pairs representing the x- and
1987y-coordinates of the lower right corner of the last character of each
1988line. Coordinates are measured in pixels from an origin (0, 0) at the
1989top-left corner of @var{window}. @var{window} must be a live window and
1990defaults to the selected one.
1991
1992If the optional argument @var{first} is an integer, it denotes the index
1993(starting with 0) of the first line of @var{window}'s glyph matrix to be
1994returned. Note that if @var{window} has a header line, the line with
1995index 0 is that header line. If @var{first} is nil, the first line to
1996be considered is determined by the value of the optional argument
1997@var{body}: If @var{body} is non-@code{nil}, this means to start with
1998the first line of @var{window}'s body, skipping any header line, if
1999present. Otherwise, this function will start with the first line of
2000@var{window}'s glyph matrix, possibly the header line.
2001
2002If the optional argument @var{last} is an integer, it denotes the index
2003of the last line of @var{window}'s glyph matrix that shall be returned.
2004If @var{last} is nil, the last line to be considered is determined by
2005the value of @var{body}: If @var{body} is non-@code{nil}, this means to
2006use the last line of @var{window}'s body, omitting @var{window}'s mode
2007line, if present. Otherwise, this means to use the last line of
2008@var{window} which may be the mode line.
2009
2010The optional argument @var{inverse}, if @code{nil}, means that the
2011y-pixel value returned for any line specifies the distance in pixels
2012from the left edge (body edge if @var{body} is non-@code{nil}) of
2013@var{window} to the right edge of the last glyph of that line.
2014@var{inverse} non-@code{nil} means that the y-pixel value returned for
2015any line specifies the distance in pixels from the right edge of the
2016last glyph of that line to the right edge (body edge if @var{body} is
2017non-@code{nil}) of @var{window}. This is useful for determining the
2018amount of slack space at the end of each line.
2019
2020The optional argument @var{left}, if non-@code{nil} means to return the
2021x- and y-coordinates of the lower left corner of the leftmost character
2022on each line. This is the value that should be used for windows that
2023mostly display text from right to left.
2024
2025If @var{left} is non-@code{nil} and @var{inverse} is @code{nil}, this
2026means that the y-pixel value returned for any line specifies the
2027distance in pixels from the left edge of the last (leftmost) glyph of
2028that line to the right edge (body edge if @var{body} is non-@code{nil})
2029of @var{window}. If @var{left} and @var{inverse} are both
2030non-@code{nil}, the y-pixel value returned for any line specifies the
2031distance in pixels from the left edge (body edge if @var{body} is
2032non-@code{nil}) of @var{window} to the left edge of the last (leftmost)
2033glyph of that line.
2034
2035This function returns @code{nil} if the current glyph matrix of
2036@var{window} is not up-to-date which usually happens when Emacs is busy,
2037for example, when processing a command. The value should be retrievable
2038though when this function is run from an idle timer with a delay of zero
2039seconds.
2040@end defun
2041
1977@defun line-pixel-height 2042@defun line-pixel-height
1978This function returns the height in pixels of the line at point in the 2043This function returns the height in pixels of the line at point in the
1979selected window. The value includes the line spacing of the line 2044selected window. The value includes the line spacing of the line
@@ -7297,7 +7362,11 @@ follows the Unicode Bidirectional Algorithm (a.k.a.@: @acronym{UBA}),
7297which is described in Annex #9 of the Unicode standard 7362which is described in Annex #9 of the Unicode standard
7298(@url{http://www.unicode.org/reports/tr9/}). Emacs provides a ``Full 7363(@url{http://www.unicode.org/reports/tr9/}). Emacs provides a ``Full
7299Bidirectionality'' class implementation of the @acronym{UBA}, 7364Bidirectionality'' class implementation of the @acronym{UBA},
7300consistent with the requirements of the Unicode Standard v8.0. 7365consistent with the requirements of the Unicode Standard v9.0. Note,
7366however, that the way Emacs displays continuation lines when text
7367direction is opposite to the base paragraph direction deviates from
7368the UBA, which requires to perform line wrapping before reordering
7369text for display.
7301 7370
7302@defvar bidi-display-reordering 7371@defvar bidi-display-reordering
7303If the value of this buffer-local variable is non-@code{nil} (the 7372If the value of this buffer-local variable is non-@code{nil} (the
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index 7cc91a8f7e3..4bedea3bdd1 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -1130,6 +1130,8 @@ Window Frame Parameters
1130* Buffer Parameters:: Which buffers have been or should be shown. 1130* Buffer Parameters:: Which buffers have been or should be shown.
1131* Frame Interaction Parameters:: Parameters for interacting with other 1131* Frame Interaction Parameters:: Parameters for interacting with other
1132 frames. 1132 frames.
1133* Mouse Dragging Parameters:: Parameters for resizing and moving
1134 frames with the mouse.
1133* Management Parameters:: Communicating with the window manager. 1135* Management Parameters:: Communicating with the window manager.
1134* Cursor Parameters:: Controlling the cursor appearance. 1136* Cursor Parameters:: Controlling the cursor appearance.
1135* Font and Color Parameters:: Fonts and colors for the frame text. 1137* Font and Color Parameters:: Fonts and colors for the frame text.
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 50467d1dfd5..b430f7c6fad 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -974,14 +974,7 @@ Parameters}). The text size of the initial frame can be also set with
974the help of an X-style geometry specification. @xref{Emacs Invocation,, 974the help of an X-style geometry specification. @xref{Emacs Invocation,,
975Command Line Arguments for Emacs Invocation, emacs, The GNU Emacs 975Command Line Arguments for Emacs Invocation, emacs, The GNU Emacs
976Manual}. Below we list some functions to access and set the size of an 976Manual}. Below we list some functions to access and set the size of an
977existing, visible frame. 977existing, visible frame, by default the selected one.
978
979@defun frame-text-height &optional frame
980@defunx frame-text-width &optional frame
981These functions return the height and width of the text area of
982@var{frame} (@pxref{Frame Layout}), measured in pixels. For a text
983terminal, the results are in characters rather than pixels.
984@end defun
985 978
986@defun frame-height &optional frame 979@defun frame-height &optional frame
987@defunx frame-width &optional frame 980@defunx frame-width &optional frame
@@ -997,11 +990,33 @@ rounded down to the number of characters of the default font that fully
997fit into the text area. 990fit into the text area.
998@end defun 991@end defun
999 992
1000@defun frame-pixel-height &optional frame 993The functions following next return the pixel widths and heights of the
1001@defunx frame-pixel-width &optional frame 994native, outer and inner frame and the text area (@pxref{Frame Layout})
1002These functions return the native width and height, see @ref{Frame 995of a given frame. For a text terminal, the results are in characters
1003Layout}) of @var{frame} in pixels. For a text terminal, the results are 996rather than pixels.
1004in characters rather than pixels. 997
998@defun frame-outer-width &optional frame
999@defunx frame-outer-height &optional frame
1000These functions return the outer width and height of @var{frame} in
1001pixels.
1002@end defun
1003
1004@defun frame-native-height &optional frame
1005@defunx frame-native-width &optional frame
1006These functions return the native width and height of @var{frame} in
1007pixels.
1008@end defun
1009
1010@defun frame-inner-width &optional frame
1011@defunx frame-inner-height &optional frame
1012These functions return the inner width and height of @var{frame} in
1013pixels.
1014@end defun
1015
1016@defun frame-text-width &optional frame
1017@defunx frame-text-height &optional frame
1018These functions return the width and height of the text area of
1019@var{frame} in pixels.
1005@end defun 1020@end defun
1006 1021
1007On window systems that support it, Emacs tries by default to make the 1022On window systems that support it, Emacs tries by default to make the
@@ -1345,6 +1360,8 @@ text terminals.
1345* Buffer Parameters:: Which buffers have been or should be shown. 1360* Buffer Parameters:: Which buffers have been or should be shown.
1346* Frame Interaction Parameters:: Parameters for interacting with other 1361* Frame Interaction Parameters:: Parameters for interacting with other
1347 frames. 1362 frames.
1363* Mouse Dragging Parameters:: Parameters for resizing and moving
1364 frames with the mouse.
1348* Management Parameters:: Communicating with the window manager. 1365* Management Parameters:: Communicating with the window manager.
1349* Cursor Parameters:: Controlling the cursor appearance. 1366* Cursor Parameters:: Controlling the cursor appearance.
1350* Font and Color Parameters:: Fonts and colors for the frame text. 1367* Font and Color Parameters:: Fonts and colors for the frame text.
@@ -1404,18 +1421,19 @@ named, this parameter will be @code{nil}.
1404@cindex frame position 1421@cindex frame position
1405 1422
1406Parameters describing the X- and Y-offsets of a frame are always 1423Parameters describing the X- and Y-offsets of a frame are always
1407measured in pixels. For normal, non-child frames they specify the 1424measured in pixels. For a normal, non-child frame they specify the
1408frame's absolute outer position (@pxref{Frame Geometry}) with respect to 1425frame's outer position (@pxref{Frame Geometry}) relative to its
1409its display's origin. For a child frame (@pxref{Child Frames}) they 1426display's origin. For a child frame (@pxref{Child Frames}) they specify
1410specify the frame's outer position relative to the native position of 1427the frame's outer position relative to the native position of the
1411the frame's parent frame. (Note that none of these parameters is 1428frame's parent frame. (Note that none of these parameters is meaningful
1412meaningful on TTY frames.) 1429on TTY frames.)
1413 1430
1414@table @code 1431@table @code
1415@vindex left, a frame parameter 1432@vindex left, a frame parameter
1416@item left 1433@item left
1417The position, in pixels, of the left outer edge of the frame with 1434The position, in pixels, of the left outer edge of the frame with
1418respect to the left edge of the frame's display or parent frame. 1435respect to the left edge of the frame's display or parent frame. It can
1436be specified in one of the following ways.
1419 1437
1420@table @asis 1438@table @asis
1421@item an integer 1439@item an integer
@@ -1436,6 +1454,30 @@ right edge of the display or parent frame. The integer @var{pos} may be
1436positive or negative; a negative value specifies a position outside the 1454positive or negative; a negative value specifies a position outside the
1437screen or parent frame or on a monitor other than the primary one (for 1455screen or parent frame or on a monitor other than the primary one (for
1438multi-monitor displays). 1456multi-monitor displays).
1457
1458@cindex left position ratio
1459@cindex top position ratio
1460@item a floating-point value
1461A floating-point value in the range 0.0 to 1.0 specifies the left edge's
1462offset via the @dfn{left position ratio} of the frame---the ratio of the
1463left edge of its outer frame to the width of the frame's workarea
1464(@pxref{Multiple Terminals}) or its parent's native frame (@pxref{Child
1465Frames}) minus the width of the outer frame. Thus, a left position
1466ratio of 0.0 flushes a frame to the left, a ratio of 0.5 centers it and
1467a ratio of 1.0 flushes it to the right of its display or parent frame.
1468Similarly, the @dfn{top position ratio} of a frame is the ratio of the
1469frame's top position to the height of its workarea or parent frame minus
1470the height of the frame.
1471
1472Emacs will try to keep the position ratios of a child frame unaltered if
1473that frame has a non-@code{nil} @code{keep-ratio} parameter
1474(@pxref{Frame Interaction Parameters}) and its parent frame is resized.
1475
1476Since the outer size of a frame (@pxref{Frame Geometry}) is usually
1477unavailable before a frame has been made visible, it is generally not
1478advisable to use floating-point values when creating decorated frames.
1479Floating-point values are more suited for ensuring that an (undecorated)
1480child frame is positioned nicely within the area of its parent frame.
1439@end table 1481@end table
1440 1482
1441Some window managers ignore program-specified positions. If you want to 1483Some window managers ignore program-specified positions. If you want to
@@ -1448,17 +1490,19 @@ following example:
1448 nil '((user-position . t) (left . (+ -4)))) 1490 nil '((user-position . t) (left . (+ -4))))
1449@end example 1491@end example
1450 1492
1451In general, it is not a good idea to specify negative offsets to 1493In general, it is not a good idea to position a frame relative to the
1452position a frame relative to the right or bottom edge of its display. 1494right or bottom edge of its display. Positioning the initial or a new
1453Positioning the initial or a new frame is either not accurate (because 1495frame is either not accurate (because the size of the outer frame is not
1454the size of the outer frame is not yet fully known before the frame has 1496yet fully known before the frame has been made visible) or will cause
1455been made visible) or will cause additional flicker (if the frame is 1497additional flicker (if the frame has to be repositioned after becoming
1456repositioned after becoming visible). 1498visible).
1457 1499
1458 Note also, that negative offsets are not stored internally and are not 1500 Note also, that positions specified relative to the right/bottom edge
1459returned by the function @code{frame-parameters}. This means that the 1501of a display, workarea or parent frame as well as floating-point offsets
1460desktop saving routines will restore the frame from the positive offsets 1502are stored internally as integer offsets relative to the left/top edge
1461obtained by that function. 1503of the display, workarea or parent frame edge. They are also returned
1504as such by functions like @code{frame-parameters} and restored as such
1505by the desktop saving routines.
1462 1506
1463@vindex top, a frame parameter 1507@vindex top, a frame parameter
1464@item top 1508@item top
@@ -1523,24 +1567,61 @@ function @code{frame-restack} (@pxref{Raising and Lowering}).
1523@subsubsection Size Parameters 1567@subsubsection Size Parameters
1524@cindex window size on display 1568@cindex window size on display
1525 1569
1526 Frame parameters specify frame sizes in character units. On 1570Frame parameters usually specify frame sizes in character units. On
1527graphical displays, the @code{default} face determines the actual 1571graphical displays, the @code{default} face determines the actual pixel
1528pixel sizes of these character units (@pxref{Face Attributes}). 1572sizes of these character units (@pxref{Face Attributes}).
1529 1573
1530@table @code 1574@table @code
1531@vindex width, a frame parameter 1575@vindex width, a frame parameter
1532@item width 1576@item width
1533The width of the frame's text area (@pxref{Frame Geometry}), in 1577This parameter specifies the width of the frame. It can be specified as
1534characters. The value can be also a cons cell of the symbol 1578in the following ways:
1535@code{text-pixels} and an integer denoting the width of the text area in 1579
1536pixels. 1580@table @asis
1581@item an integer
1582A positive integer specifies the width of the frame's text area
1583(@pxref{Frame Geometry}) in characters.
1584
1585@item a cons cell
1586If this is a cons cell with the symbol @code{text-pixels} in its
1587@sc{car}, the @sc{cdr} of that cell specifies the width of the frame's
1588text area in pixels.
1589
1590@cindex frame width ratio
1591@cindex frame height ratio
1592@item a floating-point value
1593A floating-point number between 0.0 and 1.0 can be used to specify the
1594width of a frame via its @dfn{width ratio}---the ratio of its outer
1595width (@pxref{Frame Geometry}) to the width of the frame's workarea
1596(@pxref{Multiple Terminals}) or its parent frame's (@pxref{Child
1597Frames}) native frame. Thus, a value of 0.5 makes the frame occupy half
1598of the width of its workarea or parent frame, a value of 1.0 the full
1599width. Similarly, the @dfn{height ratio} of a frame is the ratio of its
1600outer height to the height of its workarea or its parent's native frame.
1601
1602Emacs will try to keep the width and height ratio of a child frame
1603unaltered if that frame has a non-@code{nil} @code{keep-ratio} parameter
1604(@pxref{Frame Interaction Parameters}) and its parent frame is resized.
1605
1606Since the outer size of a frame is usually unavailable before a frame
1607has been made visible, it is generally not advisable to use
1608floating-point values when creating decorated frames. Floating-point
1609values are more suited to ensure that a child frame always fits within
1610the area of its parent frame as, for example, when customizing
1611@code{display-buffer-alist} (@pxref{Choosing Window}) via
1612@code{display-buffer-in-child-frame}.
1613@end table
1614
1615Regardless of how this parameter was specified, functions reporting the
1616value of this parameter like @code{frame-parameters} always report the
1617width of the frame's text area in characters as an integer rounded, if
1618necessary, to a multiple of the frame's default character width. That
1619value is also used by the desktop saving routines.
1537 1620
1538@vindex height, a frame parameter 1621@vindex height, a frame parameter
1539@item height 1622@item height
1540The height of the frame's text area (@pxref{Frame Geometry}), in 1623This parameter specifies the height of the frame. It works just like
1541characters. The value can be also a cons cell of the symbol 1624@code{width}, except vertically instead of horizontally.
1542@code{text-pixels} and an integer denoting the height of the text area
1543in pixels.
1544 1625
1545@vindex user-size, a frame parameter 1626@vindex user-size, a frame parameter
1546@item user-size 1627@item user-size
@@ -1551,25 +1632,25 @@ user-position}) does for the position parameters @code{top} and
1551 1632
1552@vindex min-width, a frame parameter 1633@vindex min-width, a frame parameter
1553@item min-width 1634@item min-width
1554This parameter specifies the minimum native width of the frame 1635This parameter specifies the minimum native width (@pxref{Frame
1555(@pxref{Frame Geometry}), in characters. Normally, the functions that 1636Geometry}) of the frame, in characters. Normally, the functions that
1556establish a frame's initial width or resize a frame horizontally make 1637establish a frame's initial width or resize a frame horizontally make
1557sure that all the frame's windows, vertical scroll bars, fringes, 1638sure that all the frame's windows, vertical scroll bars, fringes,
1558margins and vertical dividers can be displayed. This parameter, if 1639margins and vertical dividers can be displayed. This parameter, if
1559non-@code{nil} allows to make a frame narrower than that with the 1640non-@code{nil} allows to make a frame narrower than that with the
1560consequence that any components that do not fit on the frame will be 1641consequence that any components that do not fit will be clipped by the
1561clipped by the window manager. 1642window manager.
1562 1643
1563@vindex min-height, a frame parameter 1644@vindex min-height, a frame parameter
1564@item min-height 1645@item min-height
1565This parameter specifies the minimum height of the native (@pxref{Frame 1646This parameter specifies the minimum native height (@pxref{Frame
1566Geometry}), in characters. Normally, the functions that establish a 1647Geometry}) of the frame, in characters. Normally, the functions that
1567frame's initial size or resize a frame make sure that all the frame's 1648establish a frame's initial size or resize a frame make sure that all
1568windows, horizontal scroll bars and dividers, mode and header lines, the 1649the frame's windows, horizontal scroll bars and dividers, mode and
1569echo area and the internal menu and tool bar can be displayed. This 1650header lines, the echo area and the internal menu and tool bar can be
1570parameter, if non-@code{nil} allows to make a frame smaller than that 1651displayed. This parameter, if non-@code{nil} allows to make a frame
1571with the consequence that any components that do not fit on the frame 1652smaller than that with the consequence that any components that do not
1572will be clipped by the window-system or window manager. 1653fit will be clipped by the window manager.
1573 1654
1574@cindex fullboth frames 1655@cindex fullboth frames
1575@cindex fullheight frames 1656@cindex fullheight frames
@@ -1623,6 +1704,20 @@ file as, for example
1623 1704
1624This will give a new frame full height after typing in it @key{F11} for 1705This will give a new frame full height after typing in it @key{F11} for
1625the first time. 1706the first time.
1707
1708@vindex fit-frame-to-buffer-margins, a frame parameter
1709@item fit-frame-to-buffer-margins
1710This parameter allows to override the value of the option
1711@code{fit-frame-to-buffer-margins} when fitting this frame to the buffer
1712of its root window with @code{fit-frame-to-buffer} (@pxref{Resizing
1713Windows}).
1714
1715@vindex fit-frame-to-buffer-sizes, a frame parameter
1716@item fit-frame-to-buffer-sizes
1717This parameter allows to override the value of the option
1718@code{fit-frame-to-buffer-sizes} when fitting this frame to the buffer
1719of its root window with @code{fit-frame-to-buffer} (@pxref{Resizing
1720Windows}).
1626@end table 1721@end table
1627 1722
1628 1723
@@ -1646,9 +1741,9 @@ Geometry}).
1646 1741
1647@vindex vertical-scroll-bars, a frame parameter 1742@vindex vertical-scroll-bars, a frame parameter
1648@item vertical-scroll-bars 1743@item vertical-scroll-bars
1649Whether the frame has scroll bars for vertical scrolling, and which side 1744Whether the frame has scroll bars (@pxref{Scroll Bars}) for vertical
1650of the frame they should be on. The possible values are @code{left}, 1745scrolling, and which side of the frame they should be on. The possible
1651@code{right}, and @code{nil} for no scroll bars. 1746values are @code{left}, @code{right}, and @code{nil} for no scroll bars.
1652 1747
1653@vindex horizontal-scroll-bars, a frame parameter 1748@vindex horizontal-scroll-bars, a frame parameter
1654@item horizontal-scroll-bars 1749@item horizontal-scroll-bars
@@ -1692,30 +1787,40 @@ to not draw bottom dividers.
1692 1787
1693@vindex menu-bar-lines frame parameter 1788@vindex menu-bar-lines frame parameter
1694@item menu-bar-lines 1789@item menu-bar-lines
1695The number of lines to allocate at the top of the frame for a menu bar. 1790The number of lines to allocate at the top of the frame for a menu bar
1696The default is one if Menu Bar mode is enabled and zero otherwise. 1791(@pxref{Menu Bar}). The default is one if Menu Bar mode is enabled and
1697@xref{Menu Bars,,,emacs, The GNU Emacs Manual}. For an external menu 1792zero otherwise. @xref{Menu Bars,,,emacs, The GNU Emacs Manual}. For an
1698bar, this value remains unchanged even when the menu bar wraps to two or 1793external menu bar (@pxref{Frame Layout}), this value remains unchanged
1699more lines. In that case, the @code{menu-bar-size} value returned by 1794even when the menu bar wraps to two or more lines. In that case, the
1700@code{frame-geometry} (@pxref{Frame Geometry}) allows to derive whether 1795@code{menu-bar-size} value returned by @code{frame-geometry}
1701the menu bar actually occupies one or more lines. 1796(@pxref{Frame Geometry}) allows to derive whether the menu bar actually
1797occupies one or more lines.
1702 1798
1703@vindex tool-bar-lines frame parameter 1799@vindex tool-bar-lines frame parameter
1704@item tool-bar-lines 1800@item tool-bar-lines
1705The number of lines to use for the tool bar. The default is one if Tool 1801The number of lines to use for the tool bar (@pxref{Tool Bar}). The
1706Bar mode is enabled and zero otherwise. @xref{Tool Bars,,,emacs, The 1802default is one if Tool Bar mode is enabled and zero otherwise.
1707GNU Emacs Manual}. This value may change whenever the tool bar wraps. 1803@xref{Tool Bars,,,emacs, The GNU Emacs Manual}. This value may change
1804whenever the tool bar wraps (@pxref{Frame Layout}).
1708 1805
1709@vindex tool-bar-position frame parameter 1806@vindex tool-bar-position frame parameter
1710@item tool-bar-position 1807@item tool-bar-position
1711The position of the tool bar. Currently only for the GTK tool bar. 1808The position of the tool bar when Emacs was built with GTK+. Its value
1712Value can be one of @code{top}, @code{bottom} @code{left}, @code{right}. 1809can be one of @code{top}, @code{bottom} @code{left}, @code{right}. The
1713The default is @code{top}. 1810default is @code{top}.
1714 1811
1715@vindex line-spacing, a frame parameter 1812@vindex line-spacing, a frame parameter
1716@item line-spacing 1813@item line-spacing
1717Additional space to leave below each text line, in pixels (a positive 1814Additional space to leave below each text line, in pixels (a positive
1718integer). @xref{Line Height}, for more information. 1815integer). @xref{Line Height}, for more information.
1816
1817@vindex no-special-glyphs, a frame parameter
1818@item no-special-glyphs
1819If this is non-@code{nil}, it suppresses the display of any truncation
1820and continuation glyphs (@pxref{Truncation}) for all buffers displayed
1821by this frame. This is useful to eliminate such glyphs when fitting a
1822frame to its buffer via @code{fit-frame-to-buffer} (@pxref{Resizing
1823Windows}).
1719@end table 1824@end table
1720 1825
1721 1826
@@ -1781,15 +1886,115 @@ Frames}.
1781@item mouse-wheel-frame 1886@item mouse-wheel-frame
1782If non-@code{nil}, this parameter specifies the frame whose windows will 1887If non-@code{nil}, this parameter specifies the frame whose windows will
1783be scrolled whenever the mouse wheel is scrolled with the mouse pointer 1888be scrolled whenever the mouse wheel is scrolled with the mouse pointer
1784hovering over this frame (@pxref{Mouse Commands,,, emacs, The GNU Emacs 1889hovering over this frame, see @ref{Mouse Commands,,, emacs, The GNU
1785Manual}). 1890Emacs Manual}.
1786 1891
1787@vindex no-other-frame, a frame parameter 1892@vindex no-other-frame, a frame parameter
1788@item no-other-frame 1893@item no-other-frame
1789If this is non-@code{nil}, then this frame is not eligible as candidate 1894If this is non-@code{nil}, then this frame is not eligible as candidate
1790for the functions @code{next-frame}, @code{previous-frame} 1895for the functions @code{next-frame}, @code{previous-frame}
1791(@pxref{Finding All Frames}) and @code{other-frame} (@pxref{Frame 1896(@pxref{Finding All Frames}) and @code{other-frame}, see @ref{Frame
1792Commands,,, emacs, The GNU Emacs Manual}). 1897Commands,,, emacs, The GNU Emacs Manual}.
1898
1899@vindex auto-hide-function, a frame parameter
1900@item auto-hide-function
1901When this parameter specifies a function, that function will be called
1902instead of the function specified by the variable
1903@code{frame-auto-hide-function} when quitting the frame's only window
1904(@pxref{Quitting Windows}) and there are other frames left.
1905
1906@vindex minibuffer-exit, a frame parameter
1907@item minibuffer-exit
1908When this parameter is non-@code{nil}, Emacs will by default make this
1909frame invisible whenever the minibuffer (@pxref{Minibuffers}) is exited.
1910Alternatively, it can specify the functions @code{iconify-frame} and
1911@code{delete-frame}. This parameter is useful to make a child frame
1912disappear automatically (similar to how Emacs deals with a window) when
1913exiting the minibuffer.
1914
1915@vindex keep-ratio, a frame parameter
1916@item keep-ratio
1917This parameter is currently meaningful for child frames (@pxref{Child
1918Frames}) only. If it is non-@code{nil}, then Emacs will try to keep the
1919frame's size (width and height) ratios (@pxref{Size Parameters}) as well
1920as its left and right position ratios (@pxref{Position Parameters})
1921unaltered whenever its parent frame is resized.
1922
1923If the value of this parameter is @code{nil}, the frame's position and
1924size remain unaltered when the parent frame is resized, so the position
1925and size ratios may change. If the value of this parameter is @code{t},
1926Emacs will try to preserve the frame's size and position ratios, hence
1927the frame's size and position relative to its parent frame may change.
1928
1929More individual control is possible by using a cons cell: In that case
1930the frame's width ratio is preserved if the @sc{car} of the cell is
1931either @code{t} or @code{width-only}. The height ratio is preserved if
1932the @sc{car} of the cell is either @code{t} or @code{height-only}. The
1933left position ratio is preserved if the @sc{cdr} of the cell is either
1934@code{t} or @code{left-only}. The top position ratio is preserved if
1935the @sc{cdr} of the cell is either @code{t} or @code{top-only}.
1936@end table
1937
1938
1939@node Mouse Dragging Parameters
1940@subsubsection Mouse Dragging Parameters
1941@cindex mouse dragging parameters
1942@cindex parameters for resizing frames with the mouse
1943@cindex parameters for moving frames with the mouse
1944
1945The parameters described below provide support for resizing a frame by
1946dragging its internal borders with the mouse. They also allow moving a
1947frame with the mouse by dragging the header line of its topmost or the
1948mode line of its bottommost window.
1949
1950These parameters are mostly useful for child frames (@pxref{Child
1951Frames}) that come without window manager decorations. If necessary,
1952they can be used for undecorated top-level frames as well.
1953
1954@table @code
1955@vindex drag-internal-border, a frame parameter
1956@item drag-internal-border
1957If non-@code{nil}, the frame can be resized by dragging its internal
1958borders, if present, with the mouse.
1959
1960@vindex drag-with-header-line, a frame parameter
1961@item drag-with-header-line
1962If non-@code{nil}, the frame can be moved with the mouse by dragging the
1963header line of its topmost window.
1964
1965@vindex drag-with-mode-line, a frame parameter
1966@item drag-with-mode-line
1967If non-@code{nil}, the frame can be moved with the mouse by dragging the
1968mode line of its bottommost window. Note that such a frame is not
1969allowed to have its own minibuffer window.
1970
1971@vindex snap-width, a frame parameter
1972@item snap-width
1973A frame that is moved with the mouse will ``snap'' at the border(s) of
1974the display or its parent frame whenever it is dragged as near to such
1975an edge as the number of pixels specified by this parameter.
1976
1977@vindex top-visible, a frame parameter
1978@item top-visible
1979If this parameter is a number, the top edge of the frame never appears
1980above the top edge of its display or parent frame. Moreover, as many
1981pixels of the frame as specified by that number will remain visible when
1982the frame is moved against any of the remaining edges of its display or
1983parent frame. Setting this parameter is useful to guard against
1984dragging a child frame with a non-@code{nil}
1985@code{drag-with-header-line} parameter completely out of the area
1986of its parent frame.
1987
1988@vindex bottom-visible, a frame parameter
1989@item bottom-visible
1990If this parameter is a number, the bottom edge of the frame never
1991appears below the bottom edge of its display or parent frame. Moreover,
1992as many pixels of the frame as specified by that number will remain
1993visible when the frame is moved against any of the remaining edges of
1994its display or parent frame. Setting this parameter is useful to guard
1995against dragging a child frame with a non-@code{nil}
1996@code{drag-with-mode-line} parameter completely out of the area of
1997its parent frame.
1793@end table 1998@end table
1794 1999
1795 2000
@@ -1797,9 +2002,9 @@ Commands,,, emacs, The GNU Emacs Manual}).
1797@subsubsection Window Management Parameters 2002@subsubsection Window Management Parameters
1798@cindex window manager interaction, and frame parameters 2003@cindex window manager interaction, and frame parameters
1799 2004
1800 The following frame parameters control various aspects of the 2005 The following frame parameters control various aspects of the frame's
1801frame's interaction with the window manager. They have no effect on 2006interaction with the window manager or window system. They have no
1802text terminals. 2007effect on text terminals.
1803 2008
1804@table @code 2009@table @code
1805@vindex visibility, a frame parameter 2010@vindex visibility, a frame parameter
@@ -1908,7 +2113,8 @@ If non-@code{nil}, this means that this is an @dfn{override redirect}
1908frame---a frame not handled by window managers under X. Override 2113frame---a frame not handled by window managers under X. Override
1909redirect frames have no window manager decorations, can be positioned 2114redirect frames have no window manager decorations, can be positioned
1910and resized only via Emacs' positioning and resizing functions and are 2115and resized only via Emacs' positioning and resizing functions and are
1911usually drawn on top of all other frames. 2116usually drawn on top of all other frames. Setting this parameter has
2117no effect on MS-Windows.
1912 2118
1913@ignore 2119@ignore
1914@vindex parent-id, a frame parameter 2120@vindex parent-id, a frame parameter
@@ -2080,6 +2286,9 @@ The @code{alpha} frame parameter can also be a cons cell
2080@code{(@var{active} . @var{inactive})}, where @var{active} is the 2286@code{(@var{active} . @var{inactive})}, where @var{active} is the
2081opacity of the frame when it is selected, and @var{inactive} is the 2287opacity of the frame when it is selected, and @var{inactive} is the
2082opacity when it is not selected. 2288opacity when it is not selected.
2289
2290Some window systems do not support the @code{alpha} parameter for child
2291frames (@pxref{Child Frames}).
2083@end table 2292@end table
2084 2293
2085The following frame parameters are semi-obsolete in that they are 2294The following frame parameters are semi-obsolete in that they are
@@ -2824,57 +3033,78 @@ unwanted frames are iconified instead.
2824@cindex child frames 3033@cindex child frames
2825@cindex parent frames 3034@cindex parent frames
2826 3035
2827On some window-systems the @code{parent-frame} parameter (@pxref{Frame 3036Child frames are objects halfway between windows (@pxref{Windows}) and
2828Interaction Parameters}) can be used to make a frame a child of the 3037``normal'' frames. Like windows, they are attached to an owning frame.
2829frame specified by that parameter. The frame specified by that 3038Unlike windows, they may overlap each other---changing the size or
2830parameter will then be the frame's parent frame as long as the parameter 3039position of one child frame does not change the size or position of any
2831is not changed or reset. Technically, this makes the child frame's 3040of its sibling child frames.
2832window-system window a child window of the parent frame's window-system 3041
2833window. 3042 By design, operations to make or modify child frames are implemented
3043with the help of frame parameters (@pxref{Frame Parameters}) without any
3044specialized functions or customizable variables. Note that child frames
3045are meaningful on graphical terminals only.
3046
3047 To create a new child frame or to convert a normal frame into a child
3048frame, set that frame's @code{parent-frame} parameter (@pxref{Frame
3049Interaction Parameters}) to that of an already existing frame. The
3050frame specified by that parameter will then be the frame's parent frame
3051as long as the parameter is not changed or reset. Technically, this
3052makes the child frame's window-system window a child window of the
3053parent frame's window-system window.
2834 3054
3055@cindex top-level frame
3056@cindex reparent frame
3057@cindex nest frame
2835 The @code{parent-frame} parameter can be changed at any time. Setting 3058 The @code{parent-frame} parameter can be changed at any time. Setting
2836it to another frame ``reparents'' the child frame. Setting it to 3059it to another frame @dfn{reparents} the child frame. Setting it to
2837another child frame makes the frame a ``nested'' child frame. Setting 3060another child frame makes the frame a @dfn{nested} child frame. Setting
2838it to @code{nil} restores the frame's status as a top-level frame---one 3061it to @code{nil} restores the frame's status as a @dfn{top-level
2839whose window-system window is a child of its display's root window. 3062frame}---a frame whose window-system window is a child of its display's
3063root window.
2840 3064
2841 Since child frames can be arbitrarily nested, a frame can be both a 3065 Since child frames can be arbitrarily nested, a frame can be both a
2842child and a parent frame. Also, the relative roles of child and parent 3066child and a parent frame. Also, the relative roles of child and parent
2843frame may be reversed at any time (though it's usually a good idea to 3067frame may be reversed at any time (though it's usually a good idea to
2844keep the size of child frames sufficiently smaller than that of their 3068keep the size of a child frame sufficiently smaller than that of its
2845parent). An error will be signaled for the attempt to make a frame an 3069parent). An error will be signaled for the attempt to make a frame an
2846ancestor of itself. 3070ancestor of itself.
2847 3071
2848 A child frame is clipped at the native edges (@pxref{Frame Geometry}) 3072 Most window-systems clip a child frame at the native edges
2849of its parent frame---everything outside these edges is invisible. Its 3073(@pxref{Frame Geometry}) of its parent frame---everything outside these
2850@code{left} and @code{top} parameters specify positions relative to the 3074edges is usually invisible. A child frame's @code{left} and @code{top}
2851top-left corner of its parent's native frame. When either of the frames 3075parameters specify a position relative to the top-left corner of its
2852is resized, the relative position of the child frame remains unaltered. 3076parent's native frame. When the parent frame is resized, this position
2853Hence, resizing either of these frames can hide or reveal parts of the 3077remains conceptually unaltered.
2854child frame.
2855 3078
2856 NS builds do not clip child frames at the parent frame's edges, 3079 NS builds do not clip child frames at the parent frame's edges,
2857allowing them to be positioned so they do not obscure the parent 3080allowing them to be positioned so they do not obscure the parent frame
2858frame while still being visible themselves. 3081while still being visible themselves.
2859 3082
2860 Usually, moving a parent frame moves along all its child frames and 3083 Usually, moving a parent frame moves along all its child frames and
2861their descendants as well, keeping their relative positions unaltered. 3084their descendants as well, keeping their relative positions unaltered.
2862The hook @code{move-frame-functions} (@pxref{Frame Position}) is run for 3085Note that the hook @code{move-frame-functions} (@pxref{Frame Position})
2863a child frame only when the position of the child frame relative to its 3086is run for a child frame only when the position of the child frame
2864parent frame changes. When a parent frame is resized, the child frame 3087relative to its parent frame changes. It is not run for a child frame
2865retains its position respective to the left and upper native edges of 3088when the position of the parent frame changes.
2866its parent. In this case, the position respective to the lower or right 3089
2867native edge of the parent frame is usually lost. 3090 When a parent frame is resized, its child frames conceptually retain
3091their previous sizes and their positions relative to the left upper
3092corner of the parent. This means that a child frame may become
3093(partially) invisible when its parent frame shrinks. The parameter
3094@code{keep-ratio} (@pxref{Frame Interaction Parameters}) can be used to
3095resize and reposition a child frame proportionally whenever its parent
3096frame is resized. This may avoid obscuring parts of a frame when its
3097parent frame is shrunk.
2868 3098
2869 A visible child frame always appears on top of its parent frame thus 3099 A visible child frame always appears on top of its parent frame thus
2870obscuring parts of it, except on NS builds where it may be positioned 3100obscuring parts of it, except on NS builds where it may be positioned
2871beneath the parent. This is comparable to the window-system window of 3101beneath the parent. This is comparable to the window-system window of a
2872a top-level frame which also always appears on top of its parent 3102top-level frame which also always appears on top of its parent
2873window---the desktop's root window. When a parent frame is iconified 3103window---the desktop's root window. When a parent frame is iconified or
2874or made invisible (@pxref{Visibility of Frames}), its child frames are 3104made invisible (@pxref{Visibility of Frames}), its child frames are made
2875made invisible. When a parent frame is deiconified or made visible, 3105invisible. When a parent frame is deiconified or made visible, its
2876its child frames are made visible. When a parent frame is about to be 3106child frames are made visible. When a parent frame is about to be
2877deleted, (@pxref{Deleting Frames}) its child frames are recursively 3107deleted (@pxref{Deleting Frames}), its child frames are recursively
2878deleted before it. 3108deleted before it.
2879 3109
2880 Whether a child frame can have a menu or tool bar is window-system or 3110 Whether a child frame can have a menu or tool bar is window-system or
@@ -2892,7 +3122,55 @@ outer border can be used. On MS-Windows, specifying a non-zero outer
2892border width will show a one-pixel wide external border. Under all 3122border width will show a one-pixel wide external border. Under all
2893window-systems, the internal border can be used. In either case, it's 3123window-systems, the internal border can be used. In either case, it's
2894advisable to disable a child frame's window manager decorations with the 3124advisable to disable a child frame's window manager decorations with the
2895@code{undecorated} frame parameter @pxref{Management Parameters}). 3125@code{undecorated} frame parameter (@pxref{Management Parameters}).
3126
3127 To resize or move an undecorated child frame with the mouse, special
3128frame parameters (@pxref{Mouse Dragging Parameters}) have to be used.
3129The internal border of a child frame, if present, can be used to resize
3130the frame with the mouse, provided that frame has a non-@code{nil}
3131@code{drag-internal-border} parameter. If set, the @code{snap-width}
3132parameter indicates the number of pixels where the frame @dfn{snaps} at
3133the respective edge or corner of its parent frame.
3134
3135 There are two ways to drag an entire child frame with the mouse: The
3136@code{drag-with-mode-line} parameter, if non-@code{nil}, allows to drag
3137a frame without minibuffer window (@pxref{Minibuffer Windows}) via the
3138mode line area of its bottommost window. The
3139@code{drag-with-header-line} parameter, if non-@code{nil}, allows to
3140drag the frame via the header line area of its topmost window.
3141
3142 In order to give a child frame a draggable header or mode line, the
3143window parameters @code{mode-line-format} and @code{header-line-format}
3144are handy (@pxref{Window Parameters}). These allow to remove an
3145unwanted mode line (when @code{drag-with-header-line} is chosen) and to
3146remove mouse-sensitive areas which might interfere with frame dragging.
3147
3148 To avoid that dragging moves a frame completely out of its parent's
3149native frame, something which might happen when the mouse cursor
3150overshoots and makes the frame difficult to retrieve once the mouse
3151button has been released, it is advisable to set the frame's
3152@code{top-visible} or @code{bottom-visible} parameter correspondingly.
3153
3154 The @code{top-visible} parameter specifies the number of pixels at the
3155top of the frame that always remain visible within the parent's native
3156frame during dragging and should be set when specifying a non-@code{nil}
3157@code{drag-with-header-line} parameter. The @code{bottom-visible}
3158parameter specifies the number of pixels at the bottom of the frame that
3159always remain visible within the parent's native frame during dragging
3160and should be preferred when specifying a non-@code{nil}
3161@code{drag-with-mode-line} parameter.
3162
3163 When a child frame is used for displaying a buffer via
3164@code{display-buffer-in-child-frame} (@pxref{Display Action Functions}),
3165the frame's @code{auto-hide-function} parameter (@pxref{Frame
3166Interaction Parameters}) can be set to a function, in order to
3167appropriately deal with the frame when the window displaying the buffer
3168shall be quit.
3169
3170 When a child frame is used during minibuffer interaction, for example,
3171to display completions in a separate window, the @code{minibuffer-exit}
3172parameter (@pxref{Frame Interaction Parameters}) is useful in order to
3173deal with the frame when the minibuffer is exited.
2896 3174
2897 The behavior of child frames deviates from that of top-level frames in 3175 The behavior of child frames deviates from that of top-level frames in
2898a number of other ways as well. Here we sketch a few of them: 3176a number of other ways as well. Here we sketch a few of them:
@@ -2930,7 +3208,7 @@ work on all window-systems. Some will drop the object on the parent
2930frame or on some ancestor instead. 3208frame or on some ancestor instead.
2931@end itemize 3209@end itemize
2932 3210
2933 The following two functions may be useful when working with child and 3211 The following two functions can be useful when working with child and
2934parent frames: 3212parent frames:
2935 3213
2936@defun frame-parent &optional frame 3214@defun frame-parent &optional frame
@@ -2951,6 +3229,12 @@ of @var{descendant}'s parent frame. Both, @var{ancestor} and
2951frame. 3229frame.
2952@end defun 3230@end defun
2953 3231
3232Note also the function @code{window-largest-empty-rectangle}
3233(@pxref{Coordinates and Windows}) which can be used to inscribe a child
3234frame in the largest empty area of an existing window. This can be
3235useful to avoid that a child frame obscures any text shown in that
3236window.
3237
2954 3238
2955@node Mouse Tracking 3239@node Mouse Tracking
2956@section Mouse Tracking 3240@section Mouse Tracking
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 0e476b47a31..f7013da9433 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -1737,7 +1737,9 @@ holds a @dfn{mode line construct}: a template that controls what is
1737displayed on the buffer's mode line. The value of 1737displayed on the buffer's mode line. The value of
1738@code{header-line-format} specifies the buffer's header line in the same 1738@code{header-line-format} specifies the buffer's header line in the same
1739way. All windows for the same buffer use the same 1739way. All windows for the same buffer use the same
1740@code{mode-line-format} and @code{header-line-format}. 1740@code{mode-line-format} and @code{header-line-format} unless a
1741@code{mode-line-format} or @code{header-line-format} parameter has been
1742specified for that window (@pxref{Window Parameters}).
1741 1743
1742 For efficiency, Emacs does not continuously recompute each window's 1744 For efficiency, Emacs does not continuously recompute each window's
1743mode line and header line. It does so when circumstances appear to call 1745mode line and header line. It does so when circumstances appear to call
diff --git a/doc/lispref/objects.texi b/doc/lispref/objects.texi
index 1f4c378df18..daa397175c3 100644
--- a/doc/lispref/objects.texi
+++ b/doc/lispref/objects.texi
@@ -283,11 +283,11 @@ character @kbd{a}.
283?Q @result{} 81 ?q @result{} 113 283?Q @result{} 81 ?q @result{} 113
284@end example 284@end example
285 285
286 You can use the same syntax for punctuation characters, but it is 286 You can use the same syntax for punctuation characters. However, if
287often a good idea to add a @samp{\} so that the Emacs commands for 287the punctuation character has a special syntactic meaning in Lisp, you
288editing Lisp code don't get confused. For example, @samp{?\(} is the 288must quote it with a @samp{\}. For example, @samp{?\(} is the way to
289way to write the open-paren character. If the character is @samp{\}, 289write the open-paren character. Likewise, if the character is
290you @emph{must} use a second @samp{\} to quote it: @samp{?\\}. 290@samp{\}, you must use a second @samp{\} to quote it: @samp{?\\}.
291 291
292@cindex whitespace 292@cindex whitespace
293@cindex bell character 293@cindex bell character
@@ -336,18 +336,19 @@ escape character; this has nothing to do with the
336character @key{ESC}. @samp{\s} is meant for use in character 336character @key{ESC}. @samp{\s} is meant for use in character
337constants; in string constants, just write the space. 337constants; in string constants, just write the space.
338 338
339 A backslash is allowed, and harmless, preceding any character without 339 A backslash is allowed, and harmless, preceding any character
340a special escape meaning; thus, @samp{?\+} is equivalent to @samp{?+}. 340without a special escape meaning; thus, @samp{?\+} is equivalent to
341There is no reason to add a backslash before most characters. However, 341@samp{?+}. There is no reason to add a backslash before most
342you should add a backslash before any of the characters 342characters. However, you must add a backslash before any of the
343@samp{()\|;'`"#.,} to avoid confusing the Emacs commands for editing 343characters @samp{()[]\;"}, and you should add a backslash before any
344Lisp code. You can also add a backslash before whitespace characters such as 344of the characters @samp{|'`#.,} to avoid confusing the Emacs commands
345space, tab, newline and formfeed. However, it is cleaner to use one of 345for editing Lisp code. You can also add a backslash before whitespace
346the easily readable escape sequences, such as @samp{\t} or @samp{\s}, 346characters such as space, tab, newline and formfeed. However, it is
347instead of an actual whitespace character such as a tab or a space. 347cleaner to use one of the easily readable escape sequences, such as
348(If you do write backslash followed by a space, you should write 348@samp{\t} or @samp{\s}, instead of an actual whitespace character such
349an extra space after the character constant to separate it from the 349as a tab or a space. (If you do write backslash followed by a space,
350following text.) 350you should write an extra space after the character constant to
351separate it from the following text.)
351 352
352@node General Escape Syntax 353@node General Escape Syntax
353@subsubsection General Escape Syntax 354@subsubsection General Escape Syntax
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index d9b4b743a3b..eb5c2fc46be 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -752,6 +752,7 @@ The optional argument @var{pixelwise} non-@code{nil} means to return the
752minimum size of @var{window} counted in pixels. 752minimum size of @var{window} counted in pixels.
753@end defun 753@end defun
754 754
755
755@node Resizing Windows 756@node Resizing Windows
756@section Resizing Windows 757@section Resizing Windows
757@cindex window resizing 758@cindex window resizing
@@ -943,7 +944,8 @@ help of the two options listed next.
943@defopt fit-frame-to-buffer-margins 944@defopt fit-frame-to-buffer-margins
944This option can be used to specify margins around frames to be fit by 945This option can be used to specify margins around frames to be fit by
945@code{fit-frame-to-buffer}. Such margins can be useful to avoid, for 946@code{fit-frame-to-buffer}. Such margins can be useful to avoid, for
946example, that such frames overlap the taskbar. 947example, that the resized frame overlaps the taskbar or parts of its
948parent frame.
947 949
948It specifies the numbers of pixels to be left free on the left, above, 950It specifies the numbers of pixels to be left free on the left, above,
949the right, and below a frame that shall be fit. The default specifies 951the right, and below a frame that shall be fit. The default specifies
@@ -2484,6 +2486,25 @@ the function specified in @code{pop-up-frame-function}
2484is added to the newly created frame's parameters. 2486is added to the newly created frame's parameters.
2485@end defun 2487@end defun
2486 2488
2489@defun display-buffer-in-child-frame buffer alist
2490This function tries to display @var{buffer} in a child frame
2491(@pxref{Child Frames}) of the selected frame, either reusing an existing
2492child frame or by making a new one. If @var{alist} has a non-@code{nil}
2493@code{child-frame-parameters} entry, the corresponding value is an alist
2494of frame parameters to give the new frame. A @code{parent-frame}
2495parameter specifying the selected frame is provided by default. If the
2496child frame should be or become the child of another frame, a
2497corresponding entry must be added to @var{alist}.
2498
2499The appearance of child frames is largely dependent on the parameters
2500provided via @var{alist}. It is advisable to use at least ratios to
2501specify the size (@pxref{Size Parameters}) and the position
2502(@pxref{Position Parameters}) of the child frame and to add the
2503@code{keep-ratio} in order to make sure that the child frame remains
2504visible. For other parameters that should be considered see @ref{Child
2505Frames}.
2506@end defun
2507
2487@defun display-buffer-use-some-frame buffer alist 2508@defun display-buffer-use-some-frame buffer alist
2488This function tries to display @var{buffer} by trying to find a 2509This function tries to display @var{buffer} by trying to find a
2489frame that meets a predicate (by default any frame other than the 2510frame that meets a predicate (by default any frame other than the
@@ -3124,12 +3145,17 @@ killed.
3124The default is to call @code{iconify-frame} (@pxref{Visibility of 3145The default is to call @code{iconify-frame} (@pxref{Visibility of
3125Frames}). Alternatively, you may specify either @code{delete-frame} 3146Frames}). Alternatively, you may specify either @code{delete-frame}
3126(@pxref{Deleting Frames}) to remove the frame from its display, 3147(@pxref{Deleting Frames}) to remove the frame from its display,
3127@code{ignore} to leave the frame unchanged, or any other function that 3148@code{make-frame-invisible} to make the frame invisible, @code{ignore}
3128can take a frame as its sole argument. 3149to leave the frame unchanged, or any other function that can take a
3150frame as its sole argument.
3129 3151
3130Note that the function specified by this option is called only if the 3152Note that the function specified by this option is called only if the
3131specified frame contains just one live window and there is at least one 3153specified frame contains just one live window and there is at least one
3132other frame on the same terminal. 3154other frame on the same terminal.
3155
3156For a particular frame, the value specified here may be overridden by
3157that frame's @code{auto-hide-function} frame parameter (@pxref{Frame
3158Interaction Parameters}).
3133@end defopt 3159@end defopt
3134 3160
3135 3161
@@ -4364,13 +4390,12 @@ is off the screen due to horizontal scrolling:
4364@cindex coordinate, relative to frame 4390@cindex coordinate, relative to frame
4365@cindex window position 4391@cindex window position
4366 4392
4367This section describes functions that report the position of a window. 4393This section describes functions that report positions of and within a
4368Most of these functions report positions relative to an origin at the 4394window. Most of these functions report positions relative to an origin
4369native position of the window's frame (@pxref{Frame Geometry}). Some 4395at the native position of the window's frame (@pxref{Frame Geometry}).
4370functions report positions relative to the origin of the display of the 4396Some functions report positions relative to the origin of the display of
4371window's frame. In any case, the origin has the coordinates (0, 0) and 4397the window's frame. In any case, the origin has the coordinates (0, 0)
4372X and Y coordinates increase rightward and downward 4398and X and Y coordinates increase rightward and downward respectively.
4373respectively.
4374 4399
4375 For the following functions, X and Y coordinates are reported in 4400 For the following functions, X and Y coordinates are reported in
4376integer character units, i.e., numbers of lines and columns 4401integer character units, i.e., numbers of lines and columns
@@ -4608,6 +4633,49 @@ point in the selected window, it's sufficient to write:
4608@end example 4633@end example
4609@end defun 4634@end defun
4610 4635
4636The following function returns the largest rectangle that can be
4637inscribed in a window without covering text displayed in that window.
4638
4639@defun window-largest-empty-rectangle &optional window count min-width min-height positions left
4640This function calculates the dimensions of the largest empty rectangle
4641that can be inscribed in the specified @var{window}'s text area.
4642@var{window} must be a live window and defaults to the selected one.
4643
4644The return value is a triple of the width and the start and end
4645y-coordinates of the largest rectangle that can be inscribed into the
4646empty space (space not displaying any text) of the text area of
4647@var{window}. No x-coordinates are returned by this function---any such
4648rectangle is assumed to end at the right edge of @var{window}'s text
4649area. If no empty space can be found, the return value is @code{nil}.
4650
4651The optional argument @var{count}, if non-@code{nil}, specifies a
4652maximum number of rectangles to return. This means that the return
4653value is a list of triples specifying rectangles with the largest
4654rectangle first. @var{count} can be also a cons cell whose car
4655specifies the number of rectangles to return and whose @sc{cdr}, if
4656non-@code{nil}, states that all rectangles returned must be disjoint.
4657
4658The optional arguments @var{min-width} and @var{min-height}, if
4659non-@code{nil}, specify the minimum width and height of any rectangle
4660returned.
4661
4662The optional argument @var{positions}, if non-@code{nil}, is a cons cell
4663whose @sc{car} specifies the uppermost and whose @sc{cdr} specifies the
4664lowermost pixel position that must be covered by any rectangle returned.
4665These positions measure from the start of the text area of @var{window}.
4666
4667The optional argument @var{left}, if non-@code{nil}, means to return
4668values suitable for buffers displaying right to left text. In that
4669case, any rectangle returned is assumed to start at the left edge of
4670@var{window}'s text area.
4671
4672Note that this function has to retrieve the dimensions of each line of
4673@var{window}'s glyph matrix via @code{window-lines-pixel-dimensions}
4674(@pxref{Size of Displayed Text}). Hence, this function may also return
4675@code{nil} when the current glyph matrix of @var{window} is not
4676up-to-date.
4677@end defun
4678
4611 4679
4612@node Mouse Window Auto-selection 4680@node Mouse Window Auto-selection
4613@section Mouse Window Auto-selection 4681@section Mouse Window Auto-selection
@@ -4911,37 +4979,45 @@ windows when exiting that function.
4911The following parameters are currently used by the window management 4979The following parameters are currently used by the window management
4912code: 4980code:
4913 4981
4914@table @asis 4982@table @code
4915@item @code{delete-window} 4983@item delete-window
4984@vindex delete-window, a window parameter
4916This parameter affects the execution of @code{delete-window} 4985This parameter affects the execution of @code{delete-window}
4917(@pxref{Deleting Windows}). 4986(@pxref{Deleting Windows}).
4918 4987
4919@item @code{delete-other-windows} 4988@item delete-other-windows
4989@vindex delete-other-windows, a window parameter
4920This parameter affects the execution of @code{delete-other-windows} 4990This parameter affects the execution of @code{delete-other-windows}
4921(@pxref{Deleting Windows}). 4991(@pxref{Deleting Windows}).
4922 4992
4923@item @code{no-delete-other-window} 4993@item no-delete-other-window
4994@vindex no-delete-other-window, a window parameter
4924This parameter marks the window as not deletable by 4995This parameter marks the window as not deletable by
4925@code{delete-other-windows} (@pxref{Deleting Windows}). 4996@code{delete-other-windows} (@pxref{Deleting Windows}).
4926 4997
4927@item @code{split-window} 4998@item split-window
4999@vindex split-window, a window parameter
4928This parameter affects the execution of @code{split-window} 5000This parameter affects the execution of @code{split-window}
4929(@pxref{Splitting Windows}). 5001(@pxref{Splitting Windows}).
4930 5002
4931@item @code{other-window} 5003@item other-window
5004@vindex other-window, a window parameter
4932This parameter affects the execution of @code{other-window} 5005This parameter affects the execution of @code{other-window}
4933(@pxref{Cyclic Window Ordering}). 5006(@pxref{Cyclic Window Ordering}).
4934 5007
4935@item @code{no-other-window} 5008@item no-other-window
5009@vindex no-other-window, a window parameter
4936This parameter marks the window as not selectable by @code{other-window} 5010This parameter marks the window as not selectable by @code{other-window}
4937(@pxref{Cyclic Window Ordering}). 5011(@pxref{Cyclic Window Ordering}).
4938 5012
4939@item @code{clone-of} 5013@item clone-of
5014@vindex clone-of, a window parameter
4940This parameter specifies the window that this one has been cloned 5015This parameter specifies the window that this one has been cloned
4941from. It is installed by @code{window-state-get} (@pxref{Window 5016from. It is installed by @code{window-state-get} (@pxref{Window
4942Configurations}). 5017Configurations}).
4943 5018
4944@item @code{preserved-size} 5019@item preserved-size
5020@vindex preserved-size, a window parameter
4945This parameter specifies a buffer, a direction where @code{nil} means 5021This parameter specifies a buffer, a direction where @code{nil} means
4946vertical and @code{t} horizontal, and a size in pixels. If this window 5022vertical and @code{t} horizontal, and a size in pixels. If this window
4947displays the specified buffer and its size in the indicated direction 5023displays the specified buffer and its size in the indicated direction
@@ -4950,7 +5026,8 @@ preserve the size of this window in the indicated direction. This
4950parameter is installed and updated by the function 5026parameter is installed and updated by the function
4951@code{window-preserve-size} (@pxref{Preserving Window Sizes}). 5027@code{window-preserve-size} (@pxref{Preserving Window Sizes}).
4952 5028
4953@item @code{quit-restore} 5029@item quit-restore
5030@vindex quit-restore, a window parameter
4954This parameter is installed by the buffer display functions 5031This parameter is installed by the buffer display functions
4955(@pxref{Choosing Window}) and consulted by @code{quit-restore-window} 5032(@pxref{Choosing Window}) and consulted by @code{quit-restore-window}
4956(@pxref{Quitting Windows}). It contains four elements: 5033(@pxref{Quitting Windows}). It contains four elements:
@@ -4981,15 +5058,37 @@ only if it still shows that buffer.
4981See the description of @code{quit-restore-window} in @ref{Quitting 5058See the description of @code{quit-restore-window} in @ref{Quitting
4982Windows} for details. 5059Windows} for details.
4983 5060
4984@item @code{window-side} @code{window-slot} 5061@item window-side window-slot
5062@vindex window-side, a window parameter
5063@vindex window-slot, a window parameter
4985These parameters are used for implementing side windows (@pxref{Side 5064These parameters are used for implementing side windows (@pxref{Side
4986Windows}). 5065Windows}).
4987 5066
4988@item @code{window-atom} 5067@item window-atom
5068@vindex window-atom, a window parameter
4989This parameter is used for implementing atomic windows, see @ref{Atomic 5069This parameter is used for implementing atomic windows, see @ref{Atomic
4990Windows}. 5070Windows}.
4991 5071
4992@item @code{min-margins} 5072@item mode-line-format
5073@vindex mode-line-format, a window parameter
5074This parameter replaces the value of the buffer-local variable
5075@code{mode-line-format} (@pxref{Mode Line Basics}) of this window's
5076buffer whenever this window is displayed. The symbol @code{none} means
5077to suppress display of a mode line for this window. Display and
5078contents of the mode line on other windows showing this buffer are not
5079affected.
5080
5081@item header-line-format
5082@vindex header-line-format, a window parameter
5083This parameter replaces the value of the buffer-local variable
5084@code{header-line-format} (@pxref{Mode Line Basics}) of this window's
5085buffer whenever this window is displayed. The symbol @code{none} means
5086to suppress display of a header line for this window. Display and
5087contents of the header line on other windows showing this buffer are not
5088affected.
5089
5090@item min-margins
5091@vindex min-margins, a window parameter
4993The value of this parameter is a cons cell whose @sc{car} and @sc{cdr}, 5092The value of this parameter is a cons cell whose @sc{car} and @sc{cdr},
4994if non-@code{nil}, specify the minimum values (in columns) for the left 5093if non-@code{nil}, specify the minimum values (in columns) for the left
4995and right margin of this window. When present, Emacs will use these 5094and right margin of this window. When present, Emacs will use these
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index b0cfbc9d3c0..069d6b3389b 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -405,7 +405,7 @@ variable will cause @samp{text/html} parts to be treated as attachments.
405@item mm-text-html-renderer 405@item mm-text-html-renderer
406@vindex mm-text-html-renderer 406@vindex mm-text-html-renderer
407This selects the function used to render @acronym{HTML}. The predefined 407This selects the function used to render @acronym{HTML}. The predefined
408renderers are selected by the symbols @code{gnus-article-html}, 408renderers are selected by the symbols @code{shr}, @code{gnus-w3m},
409@code{w3m}@footnote{See @uref{http://emacs-w3m.namazu.org/} for more 409@code{w3m}@footnote{See @uref{http://emacs-w3m.namazu.org/} for more
410information about emacs-w3m}, @code{links}, @code{lynx}, 410information about emacs-w3m}, @code{links}, @code{lynx},
411@code{w3m-standalone} or @code{html2text}. If @code{nil} use an 411@code{w3m-standalone} or @code{html2text}. If @code{nil} use an
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index a42dc6ed3c0..6209e02ebc5 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -72,21 +72,21 @@ local and the remote host, whereas @value{tramp} uses a combination of
72@command{ssh}/@command{scp}. 72@command{ssh}/@command{scp}.
73 73
74You can find the latest version of this document on the web at 74You can find the latest version of this document on the web at
75@uref{http://www.gnu.org/software/tramp/}. 75@uref{https://www.gnu.org/software/tramp/}.
76 76
77@ifhtml 77@ifhtml
78The latest release of @value{tramp} is available for 78The latest release of @value{tramp} is available for
79@uref{ftp://ftp.gnu.org/gnu/tramp/, download}, or you may see 79@uref{https://ftp.gnu.org/gnu/tramp/, download}, or you may see
80@ref{Obtaining Tramp} for more details, including the Git server 80@ref{Obtaining Tramp} for more details, including the Git server
81details. 81details.
82 82
83@value{tramp} also has a @uref{http://savannah.gnu.org/projects/tramp/, 83@value{tramp} also has a @uref{https://savannah.gnu.org/projects/tramp/,
84Savannah Project Page}. 84Savannah Project Page}.
85@end ifhtml 85@end ifhtml
86 86
87There is a mailing list for @value{tramp}, available at 87There is a mailing list for @value{tramp}, available at
88@email{tramp-devel@@gnu.org}, and archived at 88@email{tramp-devel@@gnu.org}, and archived at
89@uref{http://lists.gnu.org/archive/html/tramp-devel/, the 89@uref{https://lists.gnu.org/archive/html/tramp-devel/, the
90@value{tramp} Mail Archive}. 90@value{tramp} Mail Archive}.
91 91
92@page 92@page
@@ -321,7 +321,7 @@ behind the scenes when you open a file with @value{tramp}.
321@value{tramp} is included as part of Emacs (since Emacs version 22.1). 321@value{tramp} is included as part of Emacs (since Emacs version 22.1).
322 322
323@value{tramp} is also freely packaged for download on the Internet at 323@value{tramp} is also freely packaged for download on the Internet at
324@uref{ftp://ftp.gnu.org/gnu/tramp/}. 324@uref{https://ftp.gnu.org/gnu/tramp/}.
325 325
326@value{tramp} development versions are available on Git servers. 326@value{tramp} development versions are available on Git servers.
327Development versions contain new and incomplete features. 327Development versions contain new and incomplete features.
@@ -331,7 +331,7 @@ page at the following URL and then clicking on the Git link in the
331navigation bar at the top. 331navigation bar at the top.
332 332
333@noindent 333@noindent
334@uref{http://savannah.gnu.org/projects/tramp/} 334@uref{https://savannah.gnu.org/projects/tramp/}
335 335
336@noindent 336@noindent
337Another way is to follow the terminal session below: 337Another way is to follow the terminal session below:
@@ -349,7 +349,7 @@ From behind a firewall:
349@example 349@example
350@group 350@group
351] @strong{git config --global http.proxy http://user:pwd@@proxy.server.com:8080} 351] @strong{git config --global http.proxy http://user:pwd@@proxy.server.com:8080}
352] @strong{git clone http://git.savannah.gnu.org/r/tramp.git} 352] @strong{git clone https://git.savannah.gnu.org/r/tramp.git}
353@end group 353@end group
354@end example 354@end example
355 355
@@ -917,7 +917,7 @@ numbers are not applicable to Android devices connected through USB@.
917@cindex dbus 917@cindex dbus
918 918
919GVFS is the virtual file system for the Gnome Desktop, 919GVFS is the virtual file system for the Gnome Desktop,
920@uref{http://en.wikipedia.org/wiki/GVFS}. Remote files on GVFS are 920@uref{https://en.wikipedia.org/wiki/GVFS}. Remote files on GVFS are
921mounted locally through FUSE and @value{tramp} uses this locally 921mounted locally through FUSE and @value{tramp} uses this locally
922mounted directory internally. 922mounted directory internally.
923 923
@@ -1896,12 +1896,16 @@ where @samp{192.168.0.1} is the remote host IP address
1896@value{tramp} uses the @option{adb} method to access Android devices. 1896@value{tramp} uses the @option{adb} method to access Android devices.
1897Android devices provide a restricted shell access through an USB 1897Android devices provide a restricted shell access through an USB
1898connection. The local host must have the @command{adb} program 1898connection. The local host must have the @command{adb} program
1899installed. 1899installed. Usually, it is sufficient to open the file
1900@file{@trampfn{adb,,/}}. Then you can navigate in the filesystem via
1901@code{dired}.
1900 1902
1901Applications such as @code{SSHDroid} that run @command{sshd} process 1903Alternatively, applications such as @code{SSHDroid} that run
1902on the Android device can accept any @option{ssh}-based methods 1904@command{sshd} process on the Android device can accept any
1903provided these settings are adjusted: 1905@option{ssh}-based methods provided these settings are adjusted:
1904 1906
1907@itemize
1908@item
1905@command{sh} must be specified for remote shell since Android devices 1909@command{sh} must be specified for remote shell since Android devices
1906do not provide @command{/bin/sh}. @command{sh} will then invoke 1910do not provide @command{/bin/sh}. @command{sh} will then invoke
1907whatever shell is installed on the device with this setting: 1911whatever shell is installed on the device with this setting:
@@ -1917,6 +1921,7 @@ whatever shell is installed on the device with this setting:
1917where @samp{192.168.0.26} is the Android device's IP address. 1921where @samp{192.168.0.26} is the Android device's IP address.
1918(@pxref{Predefined connection information}). 1922(@pxref{Predefined connection information}).
1919 1923
1924@item
1920@value{tramp} requires preserving @env{PATH} environment variable from 1925@value{tramp} requires preserving @env{PATH} environment variable from
1921user settings. Android devices prefer @file{/system/xbin} path over 1926user settings. Android devices prefer @file{/system/xbin} path over
1922@file{/system/bin}. Both of these are set as follows: 1927@file{/system/bin}. Both of these are set as follows:
@@ -1928,7 +1933,7 @@ user settings. Android devices prefer @file{/system/xbin} path over
1928@end group 1933@end group
1929@end lisp 1934@end lisp
1930 1935
1931@noindent 1936@item
1932When the Android device is not @samp{rooted}, specify a writable 1937When the Android device is not @samp{rooted}, specify a writable
1933directory for temporary files: 1938directory for temporary files:
1934 1939
@@ -1936,7 +1941,7 @@ directory for temporary files:
1936(add-to-list 'tramp-remote-process-environment "TMPDIR=$HOME") 1941(add-to-list 'tramp-remote-process-environment "TMPDIR=$HOME")
1937@end lisp 1942@end lisp
1938 1943
1939@noindent 1944@item
1940Open a remote connection with the command @kbd{C-x C-f 1945Open a remote connection with the command @kbd{C-x C-f
1941@trampfn{ssh,192.168.0.26#2222,}}, where @command{sshd} is listening 1946@trampfn{ssh,192.168.0.26#2222,}}, where @command{sshd} is listening
1942on port @samp{2222}. 1947on port @samp{2222}.
@@ -1967,6 +1972,7 @@ the previous example, fix the connection properties as follows:
1967@noindent 1972@noindent
1968Open a remote connection with a more concise command @kbd{C-x C-f 1973Open a remote connection with a more concise command @kbd{C-x C-f
1969@trampfn{ssh,android,}}. 1974@trampfn{ssh,android,}}.
1975@end itemize
1970 1976
1971 1977
1972@node Auto-save and Backup 1978@node Auto-save and Backup
@@ -2083,7 +2089,7 @@ Pseudo-terminal will not be allocated because stdin is not a terminal.
2083 2089
2084Some older versions of Cygwin's @command{ssh} work with the 2090Some older versions of Cygwin's @command{ssh} work with the
2085@option{sshx} access method. Consult Cygwin's FAQ at 2091@option{sshx} access method. Consult Cygwin's FAQ at
2086@uref{http://cygwin.com/faq/} for details. 2092@uref{https://cygwin.com/faq/} for details.
2087 2093
2088@cindex Cygwin and fakecygpty 2094@cindex Cygwin and fakecygpty
2089@cindex fakecygpty and Cygwin 2095@cindex fakecygpty and Cygwin
@@ -2797,7 +2803,7 @@ this address go to all the subscribers. This is @emph{not} the
2797address to send subscription requests to. 2803address to send subscription requests to.
2798 2804
2799To subscribe to the mailing list, visit: 2805To subscribe to the mailing list, visit:
2800@uref{http://lists.gnu.org/mailman/listinfo/tramp-devel/, the 2806@uref{https://lists.gnu.org/mailman/listinfo/tramp-devel/, the
2801@value{tramp} Mail Subscription Page}. 2807@value{tramp} Mail Subscription Page}.
2802 2808
2803@ifset installchapter 2809@ifset installchapter
@@ -2849,13 +2855,13 @@ Where is the latest @value{tramp}?
2849@value{tramp} is available at the GNU URL: 2855@value{tramp} is available at the GNU URL:
2850 2856
2851@noindent 2857@noindent
2852@uref{ftp://ftp.gnu.org/gnu/tramp/} 2858@uref{https://ftp.gnu.org/gnu/tramp/}
2853 2859
2854@noindent 2860@noindent
2855@value{tramp}'s GNU project page is located here: 2861@value{tramp}'s GNU project page is located here:
2856 2862
2857@noindent 2863@noindent
2858@uref{http://savannah.gnu.org/projects/tramp/} 2864@uref{https://savannah.gnu.org/projects/tramp/}
2859 2865
2860 2866
2861@item 2867@item
diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi
index f1cb60b9d25..05b577da005 100644
--- a/doc/misc/trampver.texi
+++ b/doc/misc/trampver.texi
@@ -8,7 +8,7 @@
8@c In the Tramp GIT, the version number is auto-frobbed from 8@c In the Tramp GIT, the version number is auto-frobbed from
9@c configure.ac, so you should edit that file and run 9@c configure.ac, so you should edit that file and run
10@c "autoconf && ./configure" to change the version number. 10@c "autoconf && ./configure" to change the version number.
11@set trampver 2.3.2-pre 11@set trampver 2.3.2
12 12
13@c Other flags from configuration 13@c Other flags from configuration
14@set instprefix /usr/local 14@set instprefix /usr/local