diff options
| author | Vincent Belaïche | 2016-07-28 18:12:50 +0200 |
|---|---|---|
| committer | Vincent Belaïche | 2016-07-28 18:12:50 +0200 |
| commit | 90ab699c4f281d0c9a9b71f3eb4c8493d00fcf4f (patch) | |
| tree | df3235d89ee8e4d32571b8a8521f75f7576913c2 /doc/misc | |
| parent | 41b28dea8587c13b0bc59c1ec70b65afab3aeeca (diff) | |
| parent | ec359399a47f852b4d022a30245449438e349193 (diff) | |
| download | emacs-90ab699c4f281d0c9a9b71f3eb4c8493d00fcf4f.tar.gz emacs-90ab699c4f281d0c9a9b71f3eb4c8493d00fcf4f.zip | |
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Diffstat (limited to 'doc/misc')
| -rw-r--r-- | doc/misc/cc-mode.texi | 6 | ||||
| -rw-r--r-- | doc/misc/cl.texi | 7 | ||||
| -rw-r--r-- | doc/misc/gnus.texi | 96 | ||||
| -rw-r--r-- | doc/misc/message.texi | 17 | ||||
| -rw-r--r-- | doc/misc/texinfo.tex | 120 | ||||
| -rw-r--r-- | doc/misc/tramp.texi | 45 | ||||
| -rw-r--r-- | doc/misc/trampver.texi | 2 |
7 files changed, 227 insertions, 66 deletions
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 82f8cbc2e33..f311ec8a3a5 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi | |||
| @@ -6727,9 +6727,11 @@ Macros which needn't (or mustn't) be followed by a semicolon when you | |||
| 6727 | invoke them, @dfn{macros with semicolons}, are very common. These can | 6727 | invoke them, @dfn{macros with semicolons}, are very common. These can |
| 6728 | cause @ccmode{} to parse the next line wrongly as a | 6728 | cause @ccmode{} to parse the next line wrongly as a |
| 6729 | @code{statement-cont} (@pxref{Function Symbols}) and thus mis-indent | 6729 | @code{statement-cont} (@pxref{Function Symbols}) and thus mis-indent |
| 6730 | it. | 6730 | it. At the top level, a macro invocation before a defun start can |
| 6731 | cause, for example, @code{c-beginning-of-defun} (@kbd{C-M-a}) not to | ||
| 6732 | find the correct start of the current function. | ||
| 6731 | 6733 | ||
| 6732 | You can prevent this by specifying which macros have semicolons. It | 6734 | You can prevent these by specifying which macros have semicolons. It |
| 6733 | doesn't matter whether or not such a macro has a parameter list: | 6735 | doesn't matter whether or not such a macro has a parameter list: |
| 6734 | 6736 | ||
| 6735 | @defopt c-macro-names-with-semicolon | 6737 | @defopt c-macro-names-with-semicolon |
diff --git a/doc/misc/cl.texi b/doc/misc/cl.texi index 4137a95b3b2..c62fa727c10 100644 --- a/doc/misc/cl.texi +++ b/doc/misc/cl.texi | |||
| @@ -148,6 +148,11 @@ the beginning: | |||
| 148 | You may wish to add such a statement to your init file, if you | 148 | You may wish to add such a statement to your init file, if you |
| 149 | make frequent use of features from this package. | 149 | make frequent use of features from this package. |
| 150 | 150 | ||
| 151 | Code that only uses macros from this package can enclose the above in | ||
| 152 | @code{eval-when-compile}. Internally, this library is divided into | ||
| 153 | several files, @pxref{Organization}. Your code should only ever load | ||
| 154 | the main @file{cl-lib} file, which will load the others as needed. | ||
| 155 | |||
| 151 | @node Organization | 156 | @node Organization |
| 152 | @section Organization | 157 | @section Organization |
| 153 | 158 | ||
| @@ -3364,7 +3369,7 @@ was @code{nil} for all elements. | |||
| 3364 | @defun cl-notevery predicate seq &rest more-seqs | 3369 | @defun cl-notevery predicate seq &rest more-seqs |
| 3365 | This function calls @var{predicate} on each element of the sequence(s) | 3370 | This function calls @var{predicate} on each element of the sequence(s) |
| 3366 | in turn; it returns a non-@code{nil} value as soon as @var{predicate} | 3371 | in turn; it returns a non-@code{nil} value as soon as @var{predicate} |
| 3367 | returns @code{nil} for any element, or @code{t} if the predicate was | 3372 | returns @code{nil} for any element, or @code{nil} if the predicate was |
| 3368 | true for all elements. | 3373 | true for all elements. |
| 3369 | @end defun | 3374 | @end defun |
| 3370 | 3375 | ||
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi index df673fc099f..2473d26cc15 100644 --- a/doc/misc/gnus.texi +++ b/doc/misc/gnus.texi | |||
| @@ -828,6 +828,7 @@ Various | |||
| 828 | * Thwarting Email Spam:: Simple ways to avoid unsolicited commercial email. | 828 | * Thwarting Email Spam:: Simple ways to avoid unsolicited commercial email. |
| 829 | * Spam Package:: A package for filtering and processing spam. | 829 | * Spam Package:: A package for filtering and processing spam. |
| 830 | * The Gnus Registry:: A package for tracking messages by Message-ID. | 830 | * The Gnus Registry:: A package for tracking messages by Message-ID. |
| 831 | * The Gnus Cloud:: A package for synchronizing Gnus marks. | ||
| 831 | * Other modes:: Interaction with other modes. | 832 | * Other modes:: Interaction with other modes. |
| 832 | * Various Various:: Things that are really various. | 833 | * Various Various:: Things that are really various. |
| 833 | 834 | ||
| @@ -22208,6 +22209,7 @@ to you, using @kbd{G b u} and updating the group will usually fix this. | |||
| 22208 | * Thwarting Email Spam:: Simple ways to avoid unsolicited commercial email. | 22209 | * Thwarting Email Spam:: Simple ways to avoid unsolicited commercial email. |
| 22209 | * Spam Package:: A package for filtering and processing spam. | 22210 | * Spam Package:: A package for filtering and processing spam. |
| 22210 | * The Gnus Registry:: A package for tracking messages by Message-ID. | 22211 | * The Gnus Registry:: A package for tracking messages by Message-ID. |
| 22212 | * The Gnus Cloud:: A package for synchronizing Gnus marks. | ||
| 22211 | * Other modes:: Interaction with other modes. | 22213 | * Other modes:: Interaction with other modes. |
| 22212 | * Various Various:: Things that are really various. | 22214 | * Various Various:: Things that are really various. |
| 22213 | @end menu | 22215 | @end menu |
| @@ -26166,6 +26168,100 @@ default this is just @code{(marks)} so the custom registry marks are | |||
| 26166 | precious. | 26168 | precious. |
| 26167 | @end defvar | 26169 | @end defvar |
| 26168 | 26170 | ||
| 26171 | @node The Gnus Cloud | ||
| 26172 | @section The Gnus Cloud | ||
| 26173 | @cindex cloud | ||
| 26174 | @cindex gnus-cloud | ||
| 26175 | @cindex synchronization | ||
| 26176 | @cindex sync | ||
| 26177 | @cindex synch | ||
| 26178 | |||
| 26179 | The Gnus Cloud is a way to synchronize marks and general files and | ||
| 26180 | data across multiple machines. | ||
| 26181 | |||
| 26182 | Very often, you want all your marks (what articles you've read, which | ||
| 26183 | ones were important, and so on) to be synchronized between several | ||
| 26184 | machines. With IMAP, that's built into the protocol, so you can read | ||
| 26185 | nnimap groups from many machines and they are automatically | ||
| 26186 | synchronized. But NNTP, nnrss, and many other backends do not store | ||
| 26187 | marks, so you have to do it locally. | ||
| 26188 | |||
| 26189 | The Gnus Cloud package stores the marks, plus any files you choose, on | ||
| 26190 | an IMAP server in a special folder. It's like a | ||
| 26191 | DropTorrentSyncBoxOakTree(TM). | ||
| 26192 | |||
| 26193 | @menu | ||
| 26194 | * Gnus Cloud Setup:: | ||
| 26195 | * Gnus Cloud Usage:: | ||
| 26196 | @end menu | ||
| 26197 | |||
| 26198 | @node Gnus Cloud Setup | ||
| 26199 | @subsection Gnus Cloud Setup | ||
| 26200 | |||
| 26201 | Setting up the Gnus Cloud takes less than a minute. From the Group | ||
| 26202 | buffer: | ||
| 26203 | |||
| 26204 | Press @kbd{^} to go to the Server buffer. Here you'll see all the | ||
| 26205 | servers that Gnus knows. @xref{Server Buffer}. | ||
| 26206 | |||
| 26207 | Then press @kbd{i} to mark any servers as cloud-synchronized (their marks are synchronized). | ||
| 26208 | |||
| 26209 | Then press @kbd{I} to mark a single server as the cloud host (it must | ||
| 26210 | be an IMAP server, and will host a special IMAP folder with all the | ||
| 26211 | synchronization data). This will set the variable | ||
| 26212 | @code{gnus-cloud-method} (using the Customize facilities), then ask | ||
| 26213 | you to optionally upload your first CloudSynchronizationDataPack(TM). | ||
| 26214 | |||
| 26215 | @node Gnus Cloud Usage | ||
| 26216 | @subsection Gnus Cloud Usage | ||
| 26217 | |||
| 26218 | After setting up, you can use these shortcuts from the Group buffer: | ||
| 26219 | |||
| 26220 | @table @kbd | ||
| 26221 | @item ~ RET | ||
| 26222 | @item ~ d | ||
| 26223 | @findex gnus-cloud-download-all-data | ||
| 26224 | @cindex cloud, download | ||
| 26225 | Download the latest Gnus Cloud data. | ||
| 26226 | |||
| 26227 | @item ~ u | ||
| 26228 | @item ~ ~ | ||
| 26229 | @findex gnus-cloud-upload-all-data | ||
| 26230 | @cindex cloud, download | ||
| 26231 | Upload the local Gnus Cloud data. Creates a new | ||
| 26232 | CloudSynchronizationDataPack(TM). | ||
| 26233 | |||
| 26234 | @end table | ||
| 26235 | |||
| 26236 | But wait, there's more. Of course there's more. So much more. You can | ||
| 26237 | customize all of the following. | ||
| 26238 | |||
| 26239 | @defvar gnus-cloud-synced-files | ||
| 26240 | These are the files that will be part of every | ||
| 26241 | CloudSynchronizationDataPack(TM). They are included in every upload, | ||
| 26242 | so don't synchronize a lot of large files. Files under 100Kb are best. | ||
| 26243 | @end defvar | ||
| 26244 | |||
| 26245 | @defvar gnus-cloud-storage-method | ||
| 26246 | This is a choice from several storage methods. It's highly recommended | ||
| 26247 | to use the EPG facilities. It will be automatic if have GnuPG | ||
| 26248 | installed and EPG loaded. Otherwise, you could use Base64+gzip, | ||
| 26249 | Base64, or no encoding. | ||
| 26250 | @end defvar | ||
| 26251 | |||
| 26252 | @defvar gnus-cloud-interactive | ||
| 26253 | When this is set, and by default it is, the Gnus Cloud package will | ||
| 26254 | ask you for confirmation here and there. Leave it on until you're | ||
| 26255 | comfortable with the package. | ||
| 26256 | @end defvar | ||
| 26257 | |||
| 26258 | |||
| 26259 | @defvar gnus-cloud-method | ||
| 26260 | The name of the IMAP server to store the | ||
| 26261 | CloudSynchronizationDataPack(TM)s. It's easiest to set this from the | ||
| 26262 | Server buffer (@pxref{Gnus Cloud Setup}). | ||
| 26263 | @end defvar | ||
| 26264 | |||
| 26169 | @node Other modes | 26265 | @node Other modes |
| 26170 | @section Interaction with other modes | 26266 | @section Interaction with other modes |
| 26171 | 26267 | ||
diff --git a/doc/misc/message.texi b/doc/misc/message.texi index fa4fa4398b4..048990d53a7 100644 --- a/doc/misc/message.texi +++ b/doc/misc/message.texi | |||
| @@ -67,7 +67,6 @@ Message mode buffers. | |||
| 67 | * Interface:: Setting up message buffers. | 67 | * Interface:: Setting up message buffers. |
| 68 | * Commands:: Commands you can execute in message mode buffers. | 68 | * Commands:: Commands you can execute in message mode buffers. |
| 69 | * Variables:: Customizing the message buffers. | 69 | * Variables:: Customizing the message buffers. |
| 70 | * Compatibility:: Making Message backwards compatible. | ||
| 71 | * Appendices:: More technical things. | 70 | * Appendices:: More technical things. |
| 72 | * GNU Free Documentation License:: The license for this documentation. | 71 | * GNU Free Documentation License:: The license for this documentation. |
| 73 | * Index:: Variable, function and concept index. | 72 | * Index:: Variable, function and concept index. |
| @@ -2587,22 +2586,6 @@ An @dfn{action} can be either: a normal function, or a list where the | |||
| 2587 | a form to be @code{eval}ed. | 2586 | a form to be @code{eval}ed. |
| 2588 | 2587 | ||
| 2589 | 2588 | ||
| 2590 | @node Compatibility | ||
| 2591 | @chapter Compatibility | ||
| 2592 | @cindex compatibility | ||
| 2593 | |||
| 2594 | Message uses virtually only its own variables---older @code{mail-} | ||
| 2595 | variables aren't consulted. To force Message to take those variables | ||
| 2596 | into account, you can put the following in your @file{.emacs} file: | ||
| 2597 | |||
| 2598 | @lisp | ||
| 2599 | (require 'messcompat) | ||
| 2600 | @end lisp | ||
| 2601 | |||
| 2602 | This will initialize many Message variables from the values in the | ||
| 2603 | corresponding mail variables. | ||
| 2604 | |||
| 2605 | |||
| 2606 | @node Appendices | 2589 | @node Appendices |
| 2607 | @chapter Appendices | 2590 | @chapter Appendices |
| 2608 | 2591 | ||
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex index 85846f4da41..daa7055bbbc 100644 --- a/doc/misc/texinfo.tex +++ b/doc/misc/texinfo.tex | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | % Load plain if necessary, i.e., if running under initex. | 3 | % Load plain if necessary, i.e., if running under initex. |
| 4 | \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi | 4 | \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi |
| 5 | % | 5 | % |
| 6 | \def\texinfoversion{2016-05-28.16} | 6 | \def\texinfoversion{2016-06-18.21} |
| 7 | % | 7 | % |
| 8 | % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, | 8 | % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, |
| 9 | % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, | 9 | % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, |
| @@ -1192,6 +1192,7 @@ where each line of input produces a line of output.} | |||
| 1192 | \ifx\pdfescapestring\thisisundefined | 1192 | \ifx\pdfescapestring\thisisundefined |
| 1193 | % No primitive available; should we give a warning or log? | 1193 | % No primitive available; should we give a warning or log? |
| 1194 | % Many times it won't matter. | 1194 | % Many times it won't matter. |
| 1195 | \xdef#1{#1}% | ||
| 1195 | \else | 1196 | \else |
| 1196 | % The expandable \pdfescapestring primitive escapes parentheses, | 1197 | % The expandable \pdfescapestring primitive escapes parentheses, |
| 1197 | % backslashes, and other special chars. | 1198 | % backslashes, and other special chars. |
| @@ -1311,8 +1312,10 @@ output) for that.)} | |||
| 1311 | % We have to set dummies so commands such as @code, and characters | 1312 | % We have to set dummies so commands such as @code, and characters |
| 1312 | % such as \, aren't expanded when present in a section title. | 1313 | % such as \, aren't expanded when present in a section title. |
| 1313 | \indexnofonts | 1314 | \indexnofonts |
| 1314 | \turnoffactive | ||
| 1315 | \makevalueexpandable | 1315 | \makevalueexpandable |
| 1316 | \turnoffactive | ||
| 1317 | % Use ASCII approximations in destination names. | ||
| 1318 | \passthroughcharsfalse | ||
| 1316 | \def\pdfdestname{#1}% | 1319 | \def\pdfdestname{#1}% |
| 1317 | \txiescapepdf\pdfdestname | 1320 | \txiescapepdf\pdfdestname |
| 1318 | \safewhatsit{\pdfdest name{\pdfdestname} xyz}% | 1321 | \safewhatsit{\pdfdest name{\pdfdestname} xyz}% |
| @@ -1357,8 +1360,21 @@ output) for that.)} | |||
| 1357 | \fi | 1360 | \fi |
| 1358 | % | 1361 | % |
| 1359 | % Also escape PDF chars in the display string. | 1362 | % Also escape PDF chars in the display string. |
| 1360 | \edef\pdfoutlinetext{#1}% | 1363 | \bgroup |
| 1361 | \txiescapepdf\pdfoutlinetext | 1364 | \ifx \declaredencoding \latone |
| 1365 | % The PDF format can use an extended form of Latin-1 in bookmark | ||
| 1366 | % strings. See Appendix D of the PDF Reference, Sixth Edition, for | ||
| 1367 | % the "PDFDocEncoding". | ||
| 1368 | \passthroughcharstrue | ||
| 1369 | \fi | ||
| 1370 | \ifx \declaredencoding \utfeight | ||
| 1371 | % TODO: the PDF format can use UTF-16 in bookmark strings, but the | ||
| 1372 | % code for this isn't done yet. | ||
| 1373 | \fi | ||
| 1374 | \globaldefs=1 | ||
| 1375 | \edef\pdfoutlinetext{#1}% | ||
| 1376 | \txiescapepdf\pdfoutlinetext | ||
| 1377 | \egroup | ||
| 1362 | % | 1378 | % |
| 1363 | \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% | 1379 | \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}% |
| 1364 | } | 1380 | } |
| @@ -5948,18 +5964,32 @@ end | |||
| 5948 | \global\advance\dimen@ by 1pt | 5964 | \global\advance\dimen@ by 1pt |
| 5949 | \repeat | 5965 | \repeat |
| 5950 | }% | 5966 | }% |
| 5951 | \multiply\dimen@ii by 4 | 5967 | \ifdim2\ht1>\vsize |
| 5952 | \divide\dimen@ii by 5 | 5968 | % The left column has come out longer than the page itself. (Note |
| 5953 | \ifdim\ht3<\dimen@ii | 5969 | % that we have doubled \vsize for the double columns, so |
| 5954 | % Column heights are too different, so don't make their bottoms | 5970 | % the actual height of the page is 0.5\vsize). Just split the last |
| 5955 | % flush with each other. The glue at the end of the second column | 5971 | % of the double column material roughly in half. |
| 5956 | % allows a second column to stretch, reducing the difference in | 5972 | \setbox2=\box0 |
| 5957 | % height between the two. | 5973 | \setbox0 = \vsplit2 to \dimen@ii |
| 5958 | \setbox0=\vbox to\dimen@{\unvbox1\vfill}% | 5974 | \setbox0=\vbox to\dimen@ii{\unvbox0}% |
| 5959 | \setbox2=\vbox to\dimen@{\unvbox3\vskip 0pt plus 0.3\ht0}% | 5975 | \setbox2=\vbox to\dimen@ii{\unvbox2}% |
| 5960 | \else | 5976 | \else |
| 5961 | \setbox0=\vbox to\dimen@{\unvbox1}% | 5977 | \multiply\dimen@ii by 5 |
| 5962 | \setbox2=\vbox to\dimen@{\unvbox3}% | 5978 | \divide\dimen@ii by 4 |
| 5979 | \global\setbox3 = \copy0 | ||
| 5980 | \global\setbox1 = \vsplit3 to \dimen@ii | ||
| 5981 | \global\setbox\balancedcolumns=\vbox{\pagesofar}% | ||
| 5982 | \ifdim\ht3<\dimen@ii | ||
| 5983 | % Column heights are too different, so don't make their bottoms | ||
| 5984 | % flush with each other. The glue at the end of the second column | ||
| 5985 | % allows a second column to stretch, reducing the difference in | ||
| 5986 | % height between the two. | ||
| 5987 | \setbox0=\vbox to\dimen@{\unvbox1\vfill}% | ||
| 5988 | \setbox2=\vbox to\dimen@{\unvbox3\vskip 0pt plus 0.3\ht0}% | ||
| 5989 | \else | ||
| 5990 | \setbox0=\vbox to\dimen@{\unvbox1}% | ||
| 5991 | \setbox2=\vbox to\dimen@{\unvbox3}% | ||
| 5992 | \fi | ||
| 5963 | \fi | 5993 | \fi |
| 5964 | \fi | 5994 | \fi |
| 5965 | % | 5995 | % |
| @@ -10250,7 +10280,7 @@ directory should work if nowhere else does.} | |||
| 10250 | \countUTFx = "80 | 10280 | \countUTFx = "80 |
| 10251 | \countUTFy = "C2 | 10281 | \countUTFy = "C2 |
| 10252 | \def\UTFviiiTmp{% | 10282 | \def\UTFviiiTmp{% |
| 10253 | \gdef~{ | 10283 | \gdef~{% |
| 10254 | \ifpassthroughchars $\fi}}% | 10284 | \ifpassthroughchars $\fi}}% |
| 10255 | \UTFviiiLoop | 10285 | \UTFviiiLoop |
| 10256 | 10286 | ||
| @@ -10301,6 +10331,15 @@ directory should work if nowhere else does.} | |||
| 10301 | \fi | 10331 | \fi |
| 10302 | } | 10332 | } |
| 10303 | 10333 | ||
| 10334 | % These macros are used here to construct the name of a control | ||
| 10335 | % sequence to be defined. | ||
| 10336 | \def\UTFviiiTwoOctetsName#1#2{% | ||
| 10337 | \csname u8:#1\string #2\endcsname}% | ||
| 10338 | \def\UTFviiiThreeOctetsName#1#2#3{% | ||
| 10339 | \csname u8:#1\string #2\string #3\endcsname}% | ||
| 10340 | \def\UTFviiiFourOctetsName#1#2#3#4{% | ||
| 10341 | \csname u8:#1\string #2\string #3\string #4\endcsname}% | ||
| 10342 | |||
| 10304 | % For UTF-8 byte sequence (TeX, e-TeX and pdfTeX) | 10343 | % For UTF-8 byte sequence (TeX, e-TeX and pdfTeX) |
| 10305 | % Definition macro to replace the Unicode character | 10344 | % Definition macro to replace the Unicode character |
| 10306 | % Definition macro that is used by @U command | 10345 | % Definition macro that is used by @U command |
| @@ -10317,17 +10356,18 @@ directory should work if nowhere else does.} | |||
| 10317 | \countUTFz = "#1\relax | 10356 | \countUTFz = "#1\relax |
| 10318 | \begingroup | 10357 | \begingroup |
| 10319 | \parseXMLCharref | 10358 | \parseXMLCharref |
| 10359 | |||
| 10360 | % Give \u8:... its definition. The sequence of seven \expandafter's | ||
| 10361 | % expands after the \gdef three times, e.g. | ||
| 10362 | % | ||
| 10363 | % 1. \UTFviiTwoOctetsName B1 B2 | ||
| 10364 | % 2. \csname u8:B1 \string B2 \endcsname | ||
| 10365 | % 3. \u8: B1 B2 (a single control sequence token) | ||
| 10320 | % | 10366 | % |
| 10321 | % Access definitions of characters given UTF-8 sequences | 10367 | \expandafter\expandafter |
| 10322 | \def\UTFviiiTwoOctets##1##2{% | 10368 | \expandafter\expandafter |
| 10323 | \csname u8:##1\string ##2\endcsname}% | 10369 | \expandafter\expandafter |
| 10324 | \def\UTFviiiThreeOctets##1##2##3{% | 10370 | \expandafter\gdef \UTFviiiTmp{#2}% |
| 10325 | \csname u8:##1\string ##2\string ##3\endcsname}% | ||
| 10326 | \def\UTFviiiFourOctets##1##2##3##4{% | ||
| 10327 | \csname u8:##1\string ##2\string ##3\string ##4\endcsname}% | ||
| 10328 | \expandafter\expandafter\expandafter\expandafter | ||
| 10329 | \expandafter\expandafter\expandafter | ||
| 10330 | \gdef\UTFviiiTmp{#2}% | ||
| 10331 | % | 10371 | % |
| 10332 | \expandafter\ifx\csname uni:#1\endcsname \relax \else | 10372 | \expandafter\ifx\csname uni:#1\endcsname \relax \else |
| 10333 | \message{Internal error, already defined: #1}% | 10373 | \message{Internal error, already defined: #1}% |
| @@ -10337,37 +10377,53 @@ directory should work if nowhere else does.} | |||
| 10337 | \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp | 10377 | \expandafter\globallet\csname uni:#1\endcsname \UTFviiiTmp |
| 10338 | \endgroup} | 10378 | \endgroup} |
| 10339 | % | 10379 | % |
| 10340 | % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp. | 10380 | % Given the value in \countUTFz as a Unicode code point, set \UTFviiiTmp |
| 10381 | % to the corresponding UTF-8 sequence. | ||
| 10341 | \gdef\parseXMLCharref{% | 10382 | \gdef\parseXMLCharref{% |
| 10342 | \ifnum\countUTFz < "A0\relax | 10383 | \ifnum\countUTFz < "A0\relax |
| 10343 | \errhelp = \EMsimple | 10384 | \errhelp = \EMsimple |
| 10344 | \errmessage{Cannot define Unicode char value < 00A0}% | 10385 | \errmessage{Cannot define Unicode char value < 00A0}% |
| 10345 | \else\ifnum\countUTFz < "800\relax | 10386 | \else\ifnum\countUTFz < "800\relax |
| 10346 | \parseUTFviiiA,% | 10387 | \parseUTFviiiA,% |
| 10347 | \parseUTFviiiB C\UTFviiiTwoOctets.,% | 10388 | \parseUTFviiiB C\UTFviiiTwoOctetsName.,% |
| 10348 | \else\ifnum\countUTFz < "10000\relax | 10389 | \else\ifnum\countUTFz < "10000\relax |
| 10349 | \parseUTFviiiA;% | 10390 | \parseUTFviiiA;% |
| 10350 | \parseUTFviiiA,% | 10391 | \parseUTFviiiA,% |
| 10351 | \parseUTFviiiB E\UTFviiiThreeOctets.{,;}% | 10392 | \parseUTFviiiB E\UTFviiiThreeOctetsName.{,;}% |
| 10352 | \else | 10393 | \else |
| 10353 | \parseUTFviiiA;% | 10394 | \parseUTFviiiA;% |
| 10354 | \parseUTFviiiA,% | 10395 | \parseUTFviiiA,% |
| 10355 | \parseUTFviiiA!% | 10396 | \parseUTFviiiA!% |
| 10356 | \parseUTFviiiB F\UTFviiiFourOctets.{!,;}% | 10397 | \parseUTFviiiB F\UTFviiiFourOctetsName.{!,;}% |
| 10357 | \fi\fi\fi | 10398 | \fi\fi\fi |
| 10358 | } | 10399 | } |
| 10359 | 10400 | ||
| 10401 | % Extract a byte from the end of the UTF-8 representation of \countUTFx. | ||
| 10402 | % It must be a non-initial byte in the sequence. | ||
| 10403 | % Change \uccode of #1 for it to be used in \parseUTFviiiB as one | ||
| 10404 | % of the bytes. | ||
| 10360 | \gdef\parseUTFviiiA#1{% | 10405 | \gdef\parseUTFviiiA#1{% |
| 10361 | \countUTFx = \countUTFz | 10406 | \countUTFx = \countUTFz |
| 10362 | \divide\countUTFz by 64 | 10407 | \divide\countUTFz by 64 |
| 10363 | \countUTFy = \countUTFz | 10408 | \countUTFy = \countUTFz % Save to be the future value of \countUTFz. |
| 10364 | \multiply\countUTFz by 64 | 10409 | \multiply\countUTFz by 64 |
| 10410 | |||
| 10411 | % \countUTFz is now \countUTFx with the last 5 bits cleared. Subtract | ||
| 10412 | % in order to get the last five bits. | ||
| 10365 | \advance\countUTFx by -\countUTFz | 10413 | \advance\countUTFx by -\countUTFz |
| 10414 | |||
| 10415 | % Convert this to the byte in the UTF-8 sequence. | ||
| 10366 | \advance\countUTFx by 128 | 10416 | \advance\countUTFx by 128 |
| 10367 | \uccode `#1\countUTFx | 10417 | \uccode `#1\countUTFx |
| 10368 | \countUTFz = \countUTFy} | 10418 | \countUTFz = \countUTFy} |
| 10369 | 10419 | ||
| 10370 | % Used to set \UTFviiiTmp to a UTF-8 byte sequence | 10420 | % Used to put a UTF-8 byte sequence into \UTFviiiTmp |
| 10421 | % #1 is the increment for \countUTFz to yield a the first byte of the UTF-8 | ||
| 10422 | % sequence. | ||
| 10423 | % #2 is one of the \UTFviii*OctetsName macros. | ||
| 10424 | % #3 is always a full stop (.) | ||
| 10425 | % #4 is a template for the other bytes in the sequence. The values for these | ||
| 10426 | % bytes is substituted in here with \uppercase using the \uccode's. | ||
| 10371 | \gdef\parseUTFviiiB#1#2#3#4{% | 10427 | \gdef\parseUTFviiiB#1#2#3#4{% |
| 10372 | \advance\countUTFz by "#10\relax | 10428 | \advance\countUTFz by "#10\relax |
| 10373 | \uccode `#3\countUTFz | 10429 | \uccode `#3\countUTFz |
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index 894ccbe9c9c..e8c181b2292 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -565,7 +565,7 @@ remote host. | |||
| 565 | @command{ssh} can also take extra parameters as port numbers. For | 565 | @command{ssh} can also take extra parameters as port numbers. For |
| 566 | example, a host on port 42 is specified as @file{host#42} (the real | 566 | example, a host on port 42 is specified as @file{host#42} (the real |
| 567 | host name, a hash sign, then a port number). It is the same as passing | 567 | host name, a hash sign, then a port number). It is the same as passing |
| 568 | @code{-p 42} to the @command{ssh} command. | 568 | @samp{-p 42} to the @command{ssh} command. |
| 569 | 569 | ||
| 570 | @item @option{telnet} | 570 | @item @option{telnet} |
| 571 | @cindex method telnet | 571 | @cindex method telnet |
| @@ -832,7 +832,7 @@ Since SMB shares end in the @code{$} character, @value{tramp} must use | |||
| 832 | substitutions. | 832 | substitutions. |
| 833 | 833 | ||
| 834 | When @value{tramp} is not specific about the share name or uses the | 834 | When @value{tramp} is not specific about the share name or uses the |
| 835 | generic remote directory @code{/}, @command{smbclient} returns all | 835 | generic remote directory @file{/}, @command{smbclient} returns all |
| 836 | available shares. | 836 | available shares. |
| 837 | 837 | ||
| 838 | Since SMB authentication is based on each SMB share, @value{tramp} | 838 | Since SMB authentication is based on each SMB share, @value{tramp} |
| @@ -957,6 +957,22 @@ syntax requires a leading volume (share) name, for example: | |||
| 957 | based on standard protocols, such as HTTP@. @option{davs} does the same | 957 | based on standard protocols, such as HTTP@. @option{davs} does the same |
| 958 | but with SSL encryption. Both methods support the port numbers. | 958 | but with SSL encryption. Both methods support the port numbers. |
| 959 | 959 | ||
| 960 | @item @option{gdrive} | ||
| 961 | @cindex method gdrive | ||
| 962 | @cindex gdrive method | ||
| 963 | @cindex Google Drive | ||
| 964 | |||
| 965 | Via the @option{gdrive} method it is possible to access your Google | ||
| 966 | Drive online storage. User and host name of the remote file name are | ||
| 967 | your email address of the Google Drive credentials, like | ||
| 968 | @file{@trampfn{gdrive,john.doe@@gmail.com,/}}. These credentials must | ||
| 969 | be populated in your @command{Online Accounts} application outside Emacs. | ||
| 970 | |||
| 971 | Since Google Drive uses cryptic blob file names internally, | ||
| 972 | @value{tramp} works with the @code{display-name} of the files. This | ||
| 973 | could produce unexpected behaviour in case two files in the same | ||
| 974 | directory have the same @code{display-name}, such a situation must be avoided. | ||
| 975 | |||
| 960 | @item @option{obex} | 976 | @item @option{obex} |
| 961 | @cindex method obex | 977 | @cindex method obex |
| 962 | @cindex obex method | 978 | @cindex obex method |
| @@ -986,8 +1002,8 @@ requires the SYNCE-GVFS plugin. | |||
| 986 | @vindex tramp-gvfs-methods | 1002 | @vindex tramp-gvfs-methods |
| 987 | This custom option is a list of external methods for GVFS@. By | 1003 | This custom option is a list of external methods for GVFS@. By |
| 988 | default, this list includes @option{afp}, @option{dav}, @option{davs}, | 1004 | default, this list includes @option{afp}, @option{dav}, @option{davs}, |
| 989 | @option{obex}, @option{sftp} and @option{synce}. Other methods to | 1005 | @option{gdrive}, @option{obex}, @option{sftp} and @option{synce}. |
| 990 | include are: @option{ftp} and @option{smb}. | 1006 | Other methods to include are: @option{ftp} and @option{smb}. |
| 991 | @end defopt | 1007 | @end defopt |
| 992 | 1008 | ||
| 993 | 1009 | ||
| @@ -1650,13 +1666,16 @@ shown below for @value{tramp} to use when connecting. | |||
| 1650 | 1666 | ||
| 1651 | Another way to find the remote path is to use the path assigned to the | 1667 | Another way to find the remote path is to use the path assigned to the |
| 1652 | remote user by the remote host. @value{tramp} does not normally retain | 1668 | remote user by the remote host. @value{tramp} does not normally retain |
| 1653 | this remote path after logging. However, @code{tramp-own-remote-path} | 1669 | this remote path after login. However, @code{tramp-own-remote-path} |
| 1654 | preserves the path value, which can be used to update | 1670 | preserves the path value, which can be used to update |
| 1655 | @code{tramp-remote-path}. | 1671 | @code{tramp-remote-path}. |
| 1656 | 1672 | ||
| 1657 | @lisp | 1673 | @lisp |
| 1658 | (add-to-list 'tramp-remote-path 'tramp-own-remote-path) | 1674 | (add-to-list 'tramp-remote-path 'tramp-own-remote-path) |
| 1659 | @end lisp | 1675 | @end lisp |
| 1676 | |||
| 1677 | @strong{Note} that this works only if your remote @command{/bin/sh} | ||
| 1678 | shell supports the login argument @samp{-l}. | ||
| 1660 | @end defopt | 1679 | @end defopt |
| 1661 | 1680 | ||
| 1662 | When remote search paths are changed, local @value{tramp} caches must | 1681 | When remote search paths are changed, local @value{tramp} caches must |
| @@ -1848,7 +1867,7 @@ install and execute a listener as follows (see @code{tramp-methods}): | |||
| 1848 | @end example | 1867 | @end example |
| 1849 | 1868 | ||
| 1850 | The above command-line syntax has changed with @command{busybox} | 1869 | The above command-line syntax has changed with @command{busybox} |
| 1851 | versions. If @command{nc} refuses the @command{-p} parameter, then | 1870 | versions. If @command{nc} refuses the @samp{-p} parameter, then |
| 1852 | overwrite as follows: | 1871 | overwrite as follows: |
| 1853 | 1872 | ||
| 1854 | @lisp | 1873 | @lisp |
| @@ -1876,9 +1895,9 @@ Applications such as @code{SSHDroid} that run @command{sshd} process | |||
| 1876 | on the Android device can accept any @option{ssh}-based methods | 1895 | on the Android device can accept any @option{ssh}-based methods |
| 1877 | provided these settings are adjusted: | 1896 | provided these settings are adjusted: |
| 1878 | 1897 | ||
| 1879 | @code{sh} must be specified for remote shell since Android devices do | 1898 | @command{sh} must be specified for remote shell since Android devices |
| 1880 | not provide @code{/bin/sh}. @code{sh} will then invoke whatever shell is | 1899 | do not provide @command{/bin/sh}. @command{sh} will then invoke |
| 1881 | installed on the device with this setting: | 1900 | whatever shell is installed on the device with this setting: |
| 1882 | 1901 | ||
| 1883 | @lisp | 1902 | @lisp |
| 1884 | (add-to-list 'tramp-connection-properties | 1903 | (add-to-list 'tramp-connection-properties |
| @@ -2854,9 +2873,9 @@ To test if this is the case, open a remote shell and check if the output | |||
| 2854 | of @command{ls} is in color. | 2873 | of @command{ls} is in color. |
| 2855 | 2874 | ||
| 2856 | To disable @acronym{ANSI} escape sequences from the remote hosts, | 2875 | To disable @acronym{ANSI} escape sequences from the remote hosts, |
| 2857 | disable @option{--color=yes} or @option{--color=auto} in the remote | 2876 | disable @samp{--color=yes} or @samp{--color=auto} in the remote host's |
| 2858 | host's @file{.bashrc} or @file{.profile}. Turn this alias on and off | 2877 | @file{.bashrc} or @file{.profile}. Turn this alias on and off to see |
| 2859 | to see if file name completion works. | 2878 | if file name completion works. |
| 2860 | 2879 | ||
| 2861 | @item | 2880 | @item |
| 2862 | File name completion does not work in directories with large number of | 2881 | File name completion does not work in directories with large number of |
| @@ -2869,7 +2888,7 @@ shell's limit on length of command lines and hang. @value{tramp} uses | |||
| 2869 | globbing. | 2888 | globbing. |
| 2870 | 2889 | ||
| 2871 | To test if globbing hangs, open a shell on the remote host and then | 2890 | To test if globbing hangs, open a shell on the remote host and then |
| 2872 | run @samp{ls -d * ..?* > /dev/null}. | 2891 | run @command{ls -d * ..?* > /dev/null}. |
| 2873 | 2892 | ||
| 2874 | When testing, ensure the remote shell is the same shell | 2893 | When testing, ensure the remote shell is the same shell |
| 2875 | (@command{/bin/sh}, @command{ksh} or @command{bash}), that | 2894 | (@command{/bin/sh}, @command{ksh} or @command{bash}), that |
diff --git a/doc/misc/trampver.texi b/doc/misc/trampver.texi index cdd008bc865..3101dc0de82 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.0-pre | 11 | @set trampver 2.3.1-pre |
| 12 | 12 | ||
| 13 | @c Other flags from configuration | 13 | @c Other flags from configuration |
| 14 | @set instprefix /usr/local | 14 | @set instprefix /usr/local |