commit 027c350e0cde1876f811b845cb10d3faa8f45665 (HEAD, refs/remotes/origin/master) Author: Martin Rudalics Date: Mon Oct 17 09:59:20 2016 +0200 ; * etc/NEWS: Add note on atomic windows. diff --git a/etc/NEWS b/etc/NEWS index 45d4e50..1fd2a00 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -630,6 +630,12 @@ changing and reversing the layout of side windows and returning the main the section "Side Windows" in the Elisp manual. +++ +*** Support for atomic windows - rectangular compositions of windows +treated by `split-window', `delete-window' and `delete-other-windows' +like a single live window - is now official. For details consult the +section "Atomic Windows" in the Elisp manual. + ++++ *** New `display-buffer' alist entry `window-parameters' allows to assign window parameters to the window used for displaying the buffer. commit be0c3814af555f6149ab030be23a32b447d485f4 Author: Eli Zaretskii Date: Mon Oct 17 10:19:34 2016 +0300 Fix time-related data types in 2 editfns.c functions * src/editfns.c (format_time_string, Fcurrent_time_zone): Pass a pointer to 'time_t' value to 'emacs_localtime_rz' and 'gmtime_r', instead of relying on struct timespec's 'tv_sec' member to be of compatible type. diff --git a/src/editfns.c b/src/editfns.c index dcb1d8d..4f61081 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -2085,7 +2085,11 @@ format_time_string (char const *format, ptrdiff_t formatlen, USE_SAFE_ALLOCA; timezone_t tz = tzlookup (zone, false); - tmp = emacs_localtime_rz (tz, &t.tv_sec, tmp); + /* On some systems, like 32-bit MinGW, tv_sec of struct timespec is + a 64-bit type, but time_t is a 32-bit type. emacs_localtime_rz + expects a pointer to time_t value. */ + time_t tsec = t.tv_sec; + tmp = emacs_localtime_rz (tz, &tsec, tmp); if (! tmp) { xtzfree (tz); @@ -2353,7 +2357,10 @@ the data it can't find. */) zone_name = format_time_string ("%Z", sizeof "%Z" - 1, value, zone, &local_tm); - if (HAVE_TM_GMTOFF || gmtime_r (&value.tv_sec, &gmt_tm)) + /* gmtime_r expects a pointer to time_t, but tv_sec of struct + timespec on some systems (MinGW) is a 64-bit field. */ + time_t tsec = value.tv_sec; + if (HAVE_TM_GMTOFF || gmtime_r (&tsec, &gmt_tm)) { long int offset = (HAVE_TM_GMTOFF ? tm_gmtoff (&local_tm) commit 665ee0a56551ad897a9e5092ebc91728c98a2d43 Author: Martin Rudalics Date: Mon Oct 17 08:57:24 2016 +0200 Document atomic windows in Elisp manual (Bug#18170) * lisp/window.el (display-buffer-in-atom-window): If no `side' alist entry was specified, use `below' as the doc tells. * doc/lispref/elisp.texi (Atomic Windows): Add menu entry. * doc/lispref/windows.texi (Atomic Windows): New section. (Window Parameters): Update reference. diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index 1c6e059..4a1e528 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi @@ -1039,6 +1039,7 @@ Windows * Quitting Windows:: How to restore the state prior to displaying a buffer. * Side Windows:: Special windows on a frame's sides. +* Atomic Windows:: Preserving parts of the window layout. * Window Point:: Each window has its own location of point. * Window Start and End:: Buffer positions indicating which text is on-screen in a window. diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index 8140c21..d66a944 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -34,6 +34,7 @@ is displayed in windows. * Quitting Windows:: How to restore the state prior to displaying a buffer. * Side Windows:: Special windows on a frame's sides. +* Atomic Windows:: Preserving parts of the window layout. * Window Point:: Each window has its own location of point. * Window Start and End:: Buffer positions indicating which text is on-screen in a window. @@ -3368,6 +3369,138 @@ and @kbd{M-x dired-default-directory-on-left} should now reproduce the frame layout sketched above. +@node Atomic Windows +@section Atomic Windows +@cindex atomic windows + +Atomic windows are rectangular compositions of at least two live +windows. They have the following distinctive characteristics: + +@itemize @bullet +@item +The function @code{split-window} (@pxref{Splitting Windows}), when +applied to a constituent of an atomic window, will try to create the new +window outside of the atomic window. + +@item +The function @code{delete-window} (@pxref{Deleting Windows}), when +applied to a constituent of an atomic window, will try to delete the +entire atomic window instead. + +@item +The function @code{delete-other-windows} (@pxref{Deleting Windows}), +when applied to a constituent of an atomic window, will try to make the +atomic window fill its frame or main window (@pxref{Side Windows}). +@end itemize + +This means that the basic groups of functions that alter the window +structure treat an atomic window like a live one, thus preserving the +internal structure of the atomic window. + + Atomic windows are useful to construct and preserve window layouts +that are meaningful only when all involved buffers are shown +simultaneously in a specific manner, such as when showing differences +between file revisions, or the same text in different languages or +markups. They can also be used to permanently display information +pertinent to a specific window in bars on that window's sides. + +@cindex root window of atomic window + Atomic windows are implemented with the help of the reserved +@code{window-atom} window parameter (@pxref{Window Parameters}) and an +internal window (@pxref{Basic Windows}) called the root window of the +atomic window. All windows that are part of the same atomic window have +this root window as their common ancestor and are assigned a +non-@code{nil} @code{window-atom} parameter. + + The following function returns the root of the atomic window a +specified window is part of: + +@defun window-atom-root &optional window +This functions returns the root of the atomic window @var{window} is a +part of. The specified @var{window} must be a valid window and defaults +to the selected one. It returns @code{nil} if @var{window} is not part +of an atomic window. +@end defun + +The most simple approach to make a new atomic window is to take an +existing internal window and apply the following function: + +@defun window-make-atom window +This function converts @var{window} into an atomic window. The +specified @var{window} must be an internal window. All this function +does is to set the @code{window-atom} parameter of each descendant of +@var{window} to @code{t}. +@end defun + +To create a new atomic window from an existing live window or to add a +new window to an existing atomic window, the following buffer display +action function (@pxref{Display Action Functions}) can be used: + +@defun display-buffer-in-atom-window buffer alist +This function tries to display @var{buffer} in a new window that will be +combined with an existing window to form an atomic window. If the +existing window is already part of an atomic window, it adds the new +window to that atomic window. + +The specified @var{alist} is an association list of symbols and values. +The following symbols have a special meaning: + +@table @code +@item window +The value of such an element specifies an existing window the new window +shall be combined with. If it specifies an internal window, all +children of that window become part of the atomic window too. If no +window is specified, the new window becomes a sibling of the selected +window. The @code{window-atom} parameter of the existing window is set +to @code{main} provided that window is live and its @code{window-atom} +parameter was not already set. + +@item side +The value of such an element denotes the side of the existing window +where the new window shall be located. Valid values are @code{below}, +@code{right}, @code{above} and @code{left}. The default is +@code{below}. The @code{window-atom} parameter of the new window is set +to this value. +@end table + +The return value is the new window, @code{nil} when creating that window +failed. +@end defun + +Note that the value of the @code{window-atom} parameter does not really +matter as long as it is non-@code{nil}. The values assigned by +@code{display-buffer-in-atom-window} just allow for easy retrieval of +the original and the new window after that function has been applied. +Note also that the @code{window-atom} parameter is the only window +parameter assigned by @code{display-buffer-in-atom-window}. Further +parameters have to be set by the application explicitly via a +@code{window-parameters} entry in @var{alist}. + + The following code snippet, when applied to a single-window frame, +first splits the selected window and makes the selected and the new +window constituents of an atomic window with their parent as root. It +then displays the buffer @file{*Messages*} in a new window at the +frame's bottom and makes that new window part of the atomic window just +created. + +@example +@group +(let ((window (split-window-right))) + (window-make-atom (window-parent window)) + (display-buffer-in-atom-window + (get-buffer-create "*Messages*") + `((window . ,(window-parent window)) (window-height . 5)))) +@end group +@end example + +At this moment typing @w{@kbd{C-x 2}} in any window of that frame +produces a new window at the bottom of the frame. Typing @w{@kbd{C-x +3}} instead will put the new window at the frame's right. In either +case, typing now @w{@kbd{C-x 1}} in any window of the atomic window will +remove the new window only. Typing @w{@kbd{C-x 0}} in any window of the +atomic window will make that new window fill the frame. + + @node Window Point @section Windows and Point @cindex window position @@ -4716,6 +4849,10 @@ only if it still shows that buffer. These parameters are used for implementing side windows (@pxref{Side Windows}). +@item @code{window-atom} +This parameter is used for implementing atomic windows, see @ref{Atomic +Windows}. + @item @code{min-margins} The value of this parameter is a cons cell whose @sc{car} and @sc{cdr}, if non-@code{nil}, specify the minimum values (in columns) for the left diff --git a/lisp/window.el b/lisp/window.el index dea0b25..da3691e 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -651,7 +651,7 @@ failed." (window-combination-limit t) (window-combination-resize 'atom) (window (cdr (assq 'window alist))) - (side (cdr (assq 'side alist))) + (side (or (cdr (assq 'side alist)) 'below)) (atom (when window (window-parameter window 'window-atom))) root new) (setq window (window-normalize-window window)) commit c06a518b5b0706509252abb03875867b10a92fc7 Author: Paul Eggert Date: Sun Oct 16 18:48:19 2016 -0700 New face homoglyph Suggested by Eli Zaretskii, from a feature request by Alan Mackenzie (Bug#24468). * doc/emacs/display.texi (Standard Faces, Text Display): * etc/NEWS: Document this. * etc/themes/dichromacy-theme.el, etc/themes/leuven-theme.el: * etc/themes/light-blue-theme.el, etc/themes/manoj-dark-theme.el: * etc/themes/tango-dark-theme.el, etc/themes/tango-theme.el: * etc/themes/wombat-theme.el: Customize homoglyph to be the same as escape-glyph. * lisp/cus-theme.el (custom-theme--listed-faces): Add homoglyph. * lisp/faces.el (homoglyph): New face. * lisp/startup.el (startup--setup-quote-display): Use it. diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi index 738d72d..492dfc6 100644 --- a/doc/emacs/display.texi +++ b/doc/emacs/display.texi @@ -657,6 +657,10 @@ Whitespace}). @item escape-glyph The face for displaying control characters and escape sequences (@pxref{Text Display}). +@item homoglyph +The face for displaying lookalike characters, i.e., characters that +look like but are not the characters being represented +(@pxref{Text Display}). @item nobreak-space The face for displaying no-break space characters (@pxref{Text Display}). @@ -1520,12 +1524,12 @@ for details. @cindex curly quotes @cindex curved quotes -@cindex escape-glyph face +@cindex homoglyph face If the curved quotes @samp{‘}, @samp{’}, @samp{“}, and @samp{”} are known to look just like @acronym{ASCII} characters, they are shown -with the @code{escape-glyph} face. Curved quotes that cannot be +with the @code{homoglyph} face. Curved quotes that cannot be displayed are shown as their @acronym{ASCII} approximations @samp{`}, -@samp{'}, and @samp{"} with the @code{escape-glyph} face. +@samp{'}, and @samp{"} with the @code{homoglyph} face. @node Cursor Display @section Displaying the Cursor diff --git a/etc/NEWS b/etc/NEWS index 14450a6..45d4e50 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -115,6 +115,10 @@ to control whether to suggest shorter 'M-x' commands or not. ** Non-breaking hyphens are now displayed with the 'nobreak-hyphen' face instead of the 'escape-glyph' face. ++++ +** Approximations to quotes are now displayed with the new 'homoglyph' +face instead of the 'escape-glyph' face. + --- ** 'C-x h' ('mark-whole-buffer') will now avoid marking the prompt part of minibuffers. diff --git a/etc/themes/dichromacy-theme.el b/etc/themes/dichromacy-theme.el index f8fae70..1e7c509 100644 --- a/etc/themes/dichromacy-theme.el +++ b/etc/themes/dichromacy-theme.el @@ -60,6 +60,7 @@ Ansi-Color faces are included.") ;; Escape and prompt faces `(minibuffer-prompt ((,class (:weight bold :foreground ,blue)))) `(escape-glyph ((,class (:foreground ,vermillion)))) + `(homoglyph ((,class (:foreground ,vermillion)))) `(error ((,class (:weight bold :slant italic :foreground ,vermillion)))) `(warning ((,class (:foreground ,orange)))) diff --git a/etc/themes/leuven-theme.el b/etc/themes/leuven-theme.el index 75635eb..19d5561 100644 --- a/etc/themes/leuven-theme.el +++ b/etc/themes/leuven-theme.el @@ -119,6 +119,7 @@ Semantic, and Ansi-Color faces are included -- and much more...") `(minibuffer-prompt ((,class (:weight bold :foreground "black" :background "gold")))) `(minibuffer-noticeable-prompt ((,class (:weight bold :foreground "black" :background "gold")))) `(escape-glyph ((,class (:foreground "#008ED1")))) + `(homoglyph ((,class (:foreground "#008ED1")))) `(error ((,class (:foreground "red")))) `(warning ((,class (:weight bold :foreground "orange")))) `(success ((,class (:foreground "green")))) diff --git a/etc/themes/light-blue-theme.el b/etc/themes/light-blue-theme.el index 8c80a66..a2ed71a 100644 --- a/etc/themes/light-blue-theme.el +++ b/etc/themes/light-blue-theme.el @@ -48,6 +48,7 @@ `(mode-line-inactive ((,class (:inherit mode-line :background "LightGray" :foreground "grey20" :box (:line-width -1 :color "grey75") :weight light)))) ;; Escape and prompt faces `(escape-glyph ((,class (:background "gold" :foreground "blue" :box (:line-width 1 :color "blue" :style released-button))))) + `(homoglyph ((,class (:background "gold" :foreground "blue" :box (:line-width 1 :color "blue" :style released-button))))) ;; Font lock faces `(font-lock-builtin-face ((,class (:foreground "#b35caf")))) `(font-lock-constant-face ((,class (:foreground "#00006DE06DE0")))) diff --git a/etc/themes/manoj-dark-theme.el b/etc/themes/manoj-dark-theme.el index b512020..549d11b 100644 --- a/etc/themes/manoj-dark-theme.el +++ b/etc/themes/manoj-dark-theme.el @@ -482,6 +482,7 @@ jarring angry fruit salad look to reduce eye fatigue.") '(epa-validity-medium ((t (:italic t :foreground "PaleTurquoise" :slant italic)))) '(escape-glyph ((t (:foreground "cyan")))) + '(homoglyph ((t (:foreground "cyan")))) '(eshell-ls-archive-face ((t (:bold t :foreground "IndianRed")))) '(eshell-ls-backup-face ((t (:foreground "Grey")))) diff --git a/etc/themes/tango-dark-theme.el b/etc/themes/tango-dark-theme.el index 9ef0276..407c79b 100644 --- a/etc/themes/tango-dark-theme.el +++ b/etc/themes/tango-dark-theme.el @@ -78,6 +78,7 @@ Semantic, and Ansi-Color faces are included.") ;; Escape and prompt faces `(minibuffer-prompt ((,class (:foreground ,cham-0)))) `(escape-glyph ((,class (:foreground ,butter-3)))) + `(homoglyph ((,class (:foreground ,butter-3)))) `(error ((,class (:foreground ,red-0)))) `(warning ((,class (:foreground ,orange-1)))) `(success ((,class (:foreground ,cham-1)))) diff --git a/etc/themes/tango-theme.el b/etc/themes/tango-theme.el index cda546b..a2d7c84 100644 --- a/etc/themes/tango-theme.el +++ b/etc/themes/tango-theme.el @@ -66,6 +66,7 @@ Semantic, and Ansi-Color faces are included.") ;; Escape and prompt faces `(minibuffer-prompt ((,class (:weight bold :foreground ,blue-3)))) `(escape-glyph ((,class (:foreground ,red-3)))) + `(homoglyph ((,class (:foreground ,red-3)))) `(error ((,class (:foreground ,red-3)))) `(warning ((,class (:foreground ,orange-3)))) `(success ((,class (:foreground ,cham-3)))) diff --git a/etc/themes/wombat-theme.el b/etc/themes/wombat-theme.el index 08ae12f..6768cce 100644 --- a/etc/themes/wombat-theme.el +++ b/etc/themes/wombat-theme.el @@ -46,6 +46,7 @@ are included.") ;; Escape and prompt faces `(minibuffer-prompt ((,class (:foreground "#e5786d")))) `(escape-glyph ((,class (:foreground "#ddaa6f" :weight bold)))) + `(homoglyph ((,class (:foreground "#ddaa6f" :weight bold)))) ;; Font lock faces `(font-lock-builtin-face ((,class (:foreground "#e5786d")))) `(font-lock-comment-face ((,class (:foreground "#99968b")))) diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el index 3160e23..5a20b8e 100644 --- a/lisp/cus-theme.el +++ b/lisp/cus-theme.el @@ -61,7 +61,8 @@ Do not call this mode function yourself. It is meant for internal use." (defvar custom-theme-insert-face-marker nil) (defvar custom-theme--listed-faces '(default cursor fixed-pitch - variable-pitch escape-glyph minibuffer-prompt highlight region + variable-pitch escape-glyph homoglyph + minibuffer-prompt highlight region shadow secondary-selection trailing-whitespace font-lock-builtin-face font-lock-comment-delimiter-face font-lock-comment-face font-lock-constant-face diff --git a/lisp/faces.el b/lisp/faces.el index 15090e1..d6ec98b 100644 --- a/lisp/faces.el +++ b/lisp/faces.el @@ -2470,6 +2470,14 @@ If you set `term-file-prefix' to nil, this function does nothing." :group 'basic-faces :version "22.1") +(defface homoglyph + '((((background dark)) :foreground "cyan") + (((type pc)) :foreground "magenta") + (t :foreground "brown")) + "Face for lookalike characters." + :group 'basic-faces + :version "25.2") + (defface nobreak-space '((((class color) (min-colors 88)) :inherit escape-glyph :underline t) (((class color) (min-colors 8)) :background "magenta") diff --git a/lisp/startup.el b/lisp/startup.el index d5225bd..4a04f9c 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -870,7 +870,7 @@ If STYLE is nil, display appropriately for the terminal." (if repl (aset (or standard-display-table (setq standard-display-table (make-display-table))) - char (vector (make-glyph-code repl 'escape-glyph))) + char (vector (make-glyph-code repl 'homoglyph))) (when standard-display-table (aset standard-display-table char nil))))))) commit 032a299b0ed25f067f4133c547a822b283bc4cb8 Author: Paul Eggert Date: Sun Oct 16 16:25:47 2016 -0700 Port to Ubuntu 16.10, which needs gcc -nopie * configure.ac (emacs_cv_prog_cc_no_pie): Rename from emacs_cv_prog_cc_nopie. All usages changed. Check for -no-pie in preference to -nopie (Bug#24682). diff --git a/configure.ac b/configure.ac index cd11b10..3f06eff 100644 --- a/configure.ac +++ b/configure.ac @@ -5123,25 +5123,29 @@ case "$opsys" in *) LD_SWITCH_SYSTEM_TEMACS= ;; esac -# -nopie fixes a temacs segfault on Gentoo, OpenBSD, and other systems -# with "hardened" GCC configurations for some reason (Bug#18784). -# We don't know why -nopie works, but not segfaulting is better than -# segfaulting. Use ac_c_werror_flag=yes when trying -nopie, otherwise -# clang keeps warning that it does not understand -nopie, and pre-4.6 -# GCC has a similar problem (Bug#20338). -AC_CACHE_CHECK([whether $CC accepts -nopie], - [emacs_cv_prog_cc_nopie], +# -no-pie or -nopie fixes a temacs segfault on Gentoo, OpenBSD, +# Ubuntu, and other systems with "hardened" GCC configurations for +# some reason (Bug#18784). We don't know why this works, but not +# segfaulting is better than segfaulting. Use ac_c_werror_flag=yes +# when trying the option, otherwise clang keeps warning that it does +# not understand it, and pre-4.6 GCC has a similar problem +# (Bug#20338). Prefer -no-pie to -nopie, as -no-pie is the +# spelling used by GCC 6.1.0 and later (Bug#24682). +AC_CACHE_CHECK( + [for $CC option to disable position independent executables], + [emacs_cv_prog_cc_no_pie], [emacs_save_c_werror_flag=$ac_c_werror_flag emacs_save_LDFLAGS=$LDFLAGS ac_c_werror_flag=yes - LDFLAGS="$LDFLAGS -nopie" - AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], - [emacs_cv_prog_cc_nopie=yes], - [emacs_cv_prog_cc_nopie=no]) + for emacs_cv_prog_cc_no_pie in -no-pie -nopie no; do + test $emacs_cv_prog_cc_no_pie = no && break + LDFLAGS="$emacs_save_LDFLAGS $emacs_cv_prog_cc_no_pie" + AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], [break]) + done ac_c_werror_flag=$emacs_save_c_werror_flag LDFLAGS=$emacs_save_LDFLAGS]) -if test "$emacs_cv_prog_cc_nopie" = yes; then - LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS -nopie" +if test "$emacs_cv_prog_cc_no_pie" != no; then + LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS $emacs_cv_prog_cc_no_pie" fi if test x$ac_enable_profiling != x ; then commit 3ed8100f77a25170bf7953217d0f2b919934465b Author: Michael Albinus Date: Sun Oct 16 15:52:26 2016 +0200 Fix bug#24665 in Tramp * doc/misc/tramp.texi (External methods): Do not confuse method names. (Bug#24665) diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 74c4a37..c3b54c6 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi @@ -677,7 +677,7 @@ files smaller than @var{tramp-copy-size-limit} still use inline methods. @table @asis -@item @option{rcp}---@command{rsh} and @command{rcp} +@item @option{rcp} @cindex method rcp @cindex rcp method @cindex rcp (with rcp method) @@ -690,7 +690,7 @@ access method available. The alternative method @option{remcp} uses the @command{remsh} and @command{rcp} commands. -@item @option{scp}---@command{ssh} and @command{scp} +@item @option{scp} @cindex method scp @cindex scp method @cindex scp (with scp method) @@ -707,7 +707,7 @@ port numbers. For example, @file{host#42} passes @samp{-p 42} in the argument list to @command{ssh}, and @samp{-P 42} in the argument list to @command{scp}. -@item @option{rsync}---@command{ssh} and @command{rsync} +@item @option{rsync} @cindex method rsync @cindex rsync method @cindex rsync (with rsync method) @@ -722,7 +722,7 @@ is lost if the file exists only on one side of the connection. This method supports the @samp{-p} argument. -@item @option{scpx}---@command{ssh} and @command{scp} +@item @option{scpx} @cindex method scpx @cindex scpx method @cindex scp (with scpx method) @@ -732,14 +732,14 @@ This method supports the @samp{-p} argument. in performance to @option{scp}. @option{scpx} uses @samp{ssh -t -t @var{host} -l @var{user} /bin/sh} to open a connection. -@option{sshx} is useful for Windows users when @command{ssh} triggers +@option{scpx} is useful for Windows users when @command{ssh} triggers an error about allocating a pseudo tty. This happens due to missing shell prompts that confuses @value{tramp}. This method supports the @samp{-p} argument. -@item @option{pscp}---@command{plink} and @command{pscp} -@item @option{psftp}---@command{plink} and @command{psftp} +@item @option{pscp} +@item @option{psftp} @cindex method pscp @cindex pscp method @cindex pscp (with pscp method) @@ -761,7 +761,7 @@ session. These methods support the @samp{-P} argument. -@item @option{fcp}---@command{fsh} and @command{fcp} +@item @option{fcp} @cindex method fcp @cindex fcp method @cindex fsh (with fcp method) @@ -784,7 +784,7 @@ The command used for this connection is: @samp{fsh @var{host} -l not useful for @value{tramp}. @command{fsh} connects to remote host and @value{tramp} keeps that one connection open. -@item @option{nc}---@command{telnet} and @command{nc} +@item @option{nc} @cindex method nc @cindex nc method @cindex nc (with nc method) @@ -804,7 +804,7 @@ When @value{tramp} uses @option{ftp}, it forwards requests to whatever ftp program is specified by Ange FTP. This external program must be capable of servicing requests from @value{tramp}. -@item @option{smb}---@command{smbclient} +@item @option{smb} @cindex method smb @cindex smb method