diff options
| author | Glenn Morris | 2012-12-02 17:08:31 -0800 |
|---|---|---|
| committer | Glenn Morris | 2012-12-02 17:08:31 -0800 |
| commit | c5bc2d1d0558bbaa29ef04f9bd7bef50146382ab (patch) | |
| tree | beabc46c767d32fe6cda79f0567834d5ea8225ee /doc | |
| parent | 1bf3989cd4ebffdeeebfaaca83c6866416c3908a (diff) | |
| parent | 328dac0d42a2b395a327c0eda0ed4bbcec4f6c55 (diff) | |
| download | emacs-c5bc2d1d0558bbaa29ef04f9bd7bef50146382ab.tar.gz emacs-c5bc2d1d0558bbaa29ef04f9bd7bef50146382ab.zip | |
Merge from emacs-24; up to 2012-11-23T06:23:28Z!cyd@gnu.org
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/emacs/ChangeLog | 4 | ||||
| -rw-r--r-- | doc/emacs/custom.texi | 12 | ||||
| -rw-r--r-- | doc/lispref/ChangeLog | 17 | ||||
| -rw-r--r-- | doc/lispref/commands.texi | 4 | ||||
| -rw-r--r-- | doc/lispref/customize.texi | 4 | ||||
| -rw-r--r-- | doc/lispref/display.texi | 2 | ||||
| -rw-r--r-- | doc/lispref/elisp.texi | 17 | ||||
| -rw-r--r-- | doc/lispref/keymaps.texi | 10 | ||||
| -rw-r--r-- | doc/lispref/lists.texi | 140 | ||||
| -rw-r--r-- | doc/lispref/sequences.texi | 8 | ||||
| -rw-r--r-- | doc/lispref/symbols.texi | 300 | ||||
| -rw-r--r-- | doc/lispref/variables.texi | 1 | ||||
| -rw-r--r-- | doc/misc/ChangeLog | 9 | ||||
| -rw-r--r-- | doc/misc/rcirc.texi | 2 | ||||
| -rw-r--r-- | doc/misc/tramp.texi | 27 |
15 files changed, 359 insertions, 198 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index c90f6d4b712..ce56d3af1b0 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2012-12-03 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * custom.texi (Init Rebinding): kbd is now a function (Bug#13052). | ||
| 4 | |||
| 1 | 2012-12-02 Kevin Ryde <user42@zip.com.au> | 5 | 2012-12-02 Kevin Ryde <user42@zip.com.au> |
| 2 | 6 | ||
| 3 | * maintaining.texi (Tag Syntax): Mention (defvar foo) handling. | 7 | * maintaining.texi (Tag Syntax): Mention (defvar foo) handling. |
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi index a614126dbc0..6ea1ad5535f 100644 --- a/doc/emacs/custom.texi +++ b/doc/emacs/custom.texi | |||
| @@ -1648,7 +1648,7 @@ you can specify them in your initialization file by writing Lisp code. | |||
| 1648 | 1648 | ||
| 1649 | @findex kbd | 1649 | @findex kbd |
| 1650 | There are several ways to write a key binding using Lisp. The | 1650 | There are several ways to write a key binding using Lisp. The |
| 1651 | simplest is to use the @code{kbd} macro, which converts a textual | 1651 | simplest is to use the @code{kbd} function, which converts a textual |
| 1652 | representation of a key sequence---similar to how we have written key | 1652 | representation of a key sequence---similar to how we have written key |
| 1653 | sequences in this manual---into a form that can be passed as an | 1653 | sequences in this manual---into a form that can be passed as an |
| 1654 | argument to @code{global-set-key}. For example, here's how to bind | 1654 | argument to @code{global-set-key}. For example, here's how to bind |
| @@ -1676,11 +1676,11 @@ and mouse events: | |||
| 1676 | (global-set-key (kbd "<mouse-2>") 'mouse-save-then-kill) | 1676 | (global-set-key (kbd "<mouse-2>") 'mouse-save-then-kill) |
| 1677 | @end example | 1677 | @end example |
| 1678 | 1678 | ||
| 1679 | Instead of using the @code{kbd} macro, you can use a Lisp string or | 1679 | Instead of using @code{kbd}, you can use a Lisp string or vector to |
| 1680 | vector to specify the key sequence. Using a string is simpler, but | 1680 | specify the key sequence. Using a string is simpler, but only works |
| 1681 | only works for @acronym{ASCII} characters and Meta-modified | 1681 | for @acronym{ASCII} characters and Meta-modified @acronym{ASCII} |
| 1682 | @acronym{ASCII} characters. For example, here's how to bind @kbd{C-x | 1682 | characters. For example, here's how to bind @kbd{C-x M-l} to |
| 1683 | M-l} to @code{make-symbolic-link} (@pxref{Misc File Ops}): | 1683 | @code{make-symbolic-link} (@pxref{Misc File Ops}): |
| 1684 | 1684 | ||
| 1685 | @example | 1685 | @example |
| 1686 | (global-set-key "\C-x\M-l" 'make-symbolic-link) | 1686 | (global-set-key "\C-x\M-l" 'make-symbolic-link) |
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index a0710723ea2..d15a05fe777 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,20 @@ | |||
| 1 | 2012-12-03 Chong Yidong <cyd@gnu.org> | ||
| 2 | |||
| 3 | * symbols.texi (Symbol Properties): New node. | ||
| 4 | (Symbol Plists): Make it a subsection under Symbol Properties. | ||
| 5 | (Standard Properties): New node. | ||
| 6 | |||
| 7 | * lists.texi (Property Lists): Move here from symbols.texi. | ||
| 8 | (Plist Access): Rename from Other Plists. | ||
| 9 | |||
| 10 | * customize.texi (Variable Definitions): | ||
| 11 | * display.texi (Defining Faces): | ||
| 12 | * sequences.texi (Char-Tables): Fix xref. | ||
| 13 | |||
| 14 | * keymaps.texi (Key Sequences): kbd is now a function. | ||
| 15 | |||
| 16 | * commands.texi (Using Interactive): Fix index entry. | ||
| 17 | |||
| 1 | 2012-11-24 Paul Eggert <eggert@cs.ucla.edu> | 18 | 2012-11-24 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 19 | ||
| 3 | * doclicense.texi: Update to latest version from FSF. | 20 | * doclicense.texi: Update to latest version from FSF. |
diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index c42e4b3b6dc..8806c933bf3 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi | |||
| @@ -141,10 +141,10 @@ A command may be called from Lisp programs like any other function, but | |||
| 141 | then the caller supplies the arguments and @var{arg-descriptor} has no | 141 | then the caller supplies the arguments and @var{arg-descriptor} has no |
| 142 | effect. | 142 | effect. |
| 143 | 143 | ||
| 144 | @cindex @code{interactive-form}, function property | 144 | @cindex @code{interactive-form}, symbol property |
| 145 | The @code{interactive} form must be located at top-level in the | 145 | The @code{interactive} form must be located at top-level in the |
| 146 | function body, or in the function symbol's @code{interactive-form} | 146 | function body, or in the function symbol's @code{interactive-form} |
| 147 | property (@pxref{Symbol Plists}). It has its effect because the | 147 | property (@pxref{Symbol Properties}). It has its effect because the |
| 148 | command loop looks for it before calling the function | 148 | command loop looks for it before calling the function |
| 149 | (@pxref{Interactive Call}). Once the function is called, all its body | 149 | (@pxref{Interactive Call}). Once the function is called, all its body |
| 150 | forms are executed; at this time, if the @code{interactive} form | 150 | forms are executed; at this time, if the @code{interactive} form |
diff --git a/doc/lispref/customize.texi b/doc/lispref/customize.texi index c9d22851ed2..d85361499ba 100644 --- a/doc/lispref/customize.texi +++ b/doc/lispref/customize.texi | |||
| @@ -472,8 +472,8 @@ Internally, @code{defcustom} uses the symbol property | |||
| 472 | @code{saved-value} to record the value saved by the user with the | 472 | @code{saved-value} to record the value saved by the user with the |
| 473 | customization buffer, and @code{customized-value} to record the value | 473 | customization buffer, and @code{customized-value} to record the value |
| 474 | set by the user with the customization buffer, but not saved. | 474 | set by the user with the customization buffer, but not saved. |
| 475 | @xref{Property Lists}. These properties are lists, the car of which | 475 | @xref{Symbol Properties}. These properties are lists, the car of |
| 476 | is an expression that evaluates to the value. | 476 | which is an expression that evaluates to the value. |
| 477 | 477 | ||
| 478 | @defun custom-reevaluate-setting symbol | 478 | @defun custom-reevaluate-setting symbol |
| 479 | This function re-evaluates the standard value of @var{symbol}, which | 479 | This function re-evaluates the standard value of @var{symbol}, which |
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 5148c6ec22e..f1b2074f457 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi | |||
| @@ -2287,7 +2287,7 @@ terminal must match one of the @var{value}s specified for it in | |||
| 2287 | @end example | 2287 | @end example |
| 2288 | 2288 | ||
| 2289 | Internally, Emacs stores the face's default specification in its | 2289 | Internally, Emacs stores the face's default specification in its |
| 2290 | @code{face-defface-spec} symbol property (@pxref{Property Lists}). | 2290 | @code{face-defface-spec} symbol property (@pxref{Symbol Properties}). |
| 2291 | The @code{saved-face} property stores the face specification saved by | 2291 | The @code{saved-face} property stores the face specification saved by |
| 2292 | the user, using the customization buffer; the @code{customized-face} | 2292 | the user, using the customization buffer; the @code{customized-face} |
| 2293 | property stores the face specification customized for the current | 2293 | property stores the face specification customized for the current |
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index 371593f7203..3980f7ac868 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi | |||
| @@ -378,6 +378,7 @@ Lists | |||
| 378 | * Modifying Lists:: Storing new pieces into an existing list. | 378 | * Modifying Lists:: Storing new pieces into an existing list. |
| 379 | * Sets And Lists:: A list can represent a finite mathematical set. | 379 | * Sets And Lists:: A list can represent a finite mathematical set. |
| 380 | * Association Lists:: A list can represent a finite relation or mapping. | 380 | * Association Lists:: A list can represent a finite relation or mapping. |
| 381 | * Property Lists:: A list of paired elements. | ||
| 381 | 382 | ||
| 382 | Modifying Existing List Structure | 383 | Modifying Existing List Structure |
| 383 | 384 | ||
| @@ -386,6 +387,12 @@ Modifying Existing List Structure | |||
| 386 | This can be used to remove or add elements. | 387 | This can be used to remove or add elements. |
| 387 | * Rearrangement:: Reordering the elements in a list; combining lists. | 388 | * Rearrangement:: Reordering the elements in a list; combining lists. |
| 388 | 389 | ||
| 390 | Property Lists | ||
| 391 | |||
| 392 | * Plists and Alists:: Comparison of the advantages of property | ||
| 393 | lists and association lists. | ||
| 394 | * Plist Access:: Accessing property lists stored elsewhere. | ||
| 395 | |||
| 389 | Sequences, Arrays, and Vectors | 396 | Sequences, Arrays, and Vectors |
| 390 | 397 | ||
| 391 | * Sequence Functions:: Functions that accept any kind of sequence. | 398 | * Sequence Functions:: Functions that accept any kind of sequence. |
| @@ -410,15 +417,13 @@ Symbols | |||
| 410 | and property lists. | 417 | and property lists. |
| 411 | * Definitions:: A definition says how a symbol will be used. | 418 | * Definitions:: A definition says how a symbol will be used. |
| 412 | * Creating Symbols:: How symbols are kept unique. | 419 | * Creating Symbols:: How symbols are kept unique. |
| 413 | * Property Lists:: Each symbol has a property list | 420 | * Symbol Properties:: Each symbol has a property list |
| 414 | for recording miscellaneous information. | 421 | for recording miscellaneous information. |
| 415 | 422 | ||
| 416 | Property Lists | 423 | Symbol Properties |
| 417 | 424 | ||
| 418 | * Plists and Alists:: Comparison of the advantages of property | 425 | * Symbol Plists:: Accessing symbol properties. |
| 419 | lists and association lists. | 426 | * Standard Properties:: Standard meanings of symbol properties. |
| 420 | * Symbol Plists:: Functions to access symbols' property lists. | ||
| 421 | * Other Plists:: Accessing property lists stored elsewhere. | ||
| 422 | 427 | ||
| 423 | Evaluation | 428 | Evaluation |
| 424 | 429 | ||
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi index d01ecba4bed..d9eddcee669 100644 --- a/doc/lispref/keymaps.texi +++ b/doc/lispref/keymaps.texi | |||
| @@ -75,8 +75,8 @@ the vector @code{[?\C-x ?l]} represents the key sequence @kbd{C-x l}. | |||
| 75 | For examples of key sequences written in string and vector | 75 | For examples of key sequences written in string and vector |
| 76 | representations, @ref{Init Rebinding,,, emacs, The GNU Emacs Manual}. | 76 | representations, @ref{Init Rebinding,,, emacs, The GNU Emacs Manual}. |
| 77 | 77 | ||
| 78 | @defmac kbd keyseq-text | 78 | @defun kbd keyseq-text |
| 79 | This macro converts the text @var{keyseq-text} (a string constant) | 79 | This function converts the text @var{keyseq-text} (a string constant) |
| 80 | into a key sequence (a string or vector constant). The contents of | 80 | into a key sequence (a string or vector constant). The contents of |
| 81 | @var{keyseq-text} should use the same syntax as in the buffer invoked | 81 | @var{keyseq-text} should use the same syntax as in the buffer invoked |
| 82 | by the @kbd{C-x C-k @key{RET}} (@code{kmacro-edit-macro}) command; in | 82 | by the @kbd{C-x C-k @key{RET}} (@code{kmacro-edit-macro}) command; in |
| @@ -97,7 +97,7 @@ Manual}. | |||
| 97 | 97 | ||
| 98 | This macro is not meant for use with arguments that vary---only | 98 | This macro is not meant for use with arguments that vary---only |
| 99 | with string constants. | 99 | with string constants. |
| 100 | @end defmac | 100 | @end defun |
| 101 | 101 | ||
| 102 | @node Keymap Basics | 102 | @node Keymap Basics |
| 103 | @section Keymap Basics | 103 | @section Keymap Basics |
| @@ -1294,8 +1294,8 @@ numeric codes for the modifier bits don't appear in compiled files. | |||
| 1294 | The functions below signal an error if @var{keymap} is not a keymap, | 1294 | The functions below signal an error if @var{keymap} is not a keymap, |
| 1295 | or if @var{key} is not a string or vector representing a key sequence. | 1295 | or if @var{key} is not a string or vector representing a key sequence. |
| 1296 | You can use event types (symbols) as shorthand for events that are | 1296 | You can use event types (symbols) as shorthand for events that are |
| 1297 | lists. The @code{kbd} macro (@pxref{Key Sequences}) is a convenient | 1297 | lists. The @code{kbd} function (@pxref{Key Sequences}) is a |
| 1298 | way to specify the key sequence. | 1298 | convenient way to specify the key sequence. |
| 1299 | 1299 | ||
| 1300 | @defun define-key keymap key binding | 1300 | @defun define-key keymap key binding |
| 1301 | This function sets the binding for @var{key} in @var{keymap}. (If | 1301 | This function sets the binding for @var{key} in @var{keymap}. (If |
diff --git a/doc/lispref/lists.texi b/doc/lispref/lists.texi index 40e8d08f72c..1a3d85b9b35 100644 --- a/doc/lispref/lists.texi +++ b/doc/lispref/lists.texi | |||
| @@ -22,6 +22,7 @@ the whole list. | |||
| 22 | * Modifying Lists:: Storing new pieces into an existing list. | 22 | * Modifying Lists:: Storing new pieces into an existing list. |
| 23 | * Sets And Lists:: A list can represent a finite mathematical set. | 23 | * Sets And Lists:: A list can represent a finite mathematical set. |
| 24 | * Association Lists:: A list can represent a finite relation or mapping. | 24 | * Association Lists:: A list can represent a finite relation or mapping. |
| 25 | * Property Lists:: A list of paired elements. | ||
| 25 | @end menu | 26 | @end menu |
| 26 | 27 | ||
| 27 | @node Cons Cells | 28 | @node Cons Cells |
| @@ -1821,3 +1822,142 @@ often modifies the original list structure of @var{alist}. | |||
| 1821 | compares the @sc{cdr} of each @var{alist} association instead of the | 1822 | compares the @sc{cdr} of each @var{alist} association instead of the |
| 1822 | @sc{car}. | 1823 | @sc{car}. |
| 1823 | @end defun | 1824 | @end defun |
| 1825 | |||
| 1826 | @node Property Lists | ||
| 1827 | @section Property Lists | ||
| 1828 | @cindex property list | ||
| 1829 | @cindex plist | ||
| 1830 | |||
| 1831 | A @dfn{property list} (@dfn{plist} for short) is a list of paired | ||
| 1832 | elements. Each of the pairs associates a property name (usually a | ||
| 1833 | symbol) with a property or value. Here is an example of a property | ||
| 1834 | list: | ||
| 1835 | |||
| 1836 | @example | ||
| 1837 | (pine cones numbers (1 2 3) color "blue") | ||
| 1838 | @end example | ||
| 1839 | |||
| 1840 | @noindent | ||
| 1841 | This property list associates @code{pine} with @code{cones}, | ||
| 1842 | @code{numbers} with @code{(1 2 3)}, and @code{color} with | ||
| 1843 | @code{"blue"}. The property names and values can be any Lisp objects, | ||
| 1844 | but the names are usually symbols (as they are in this example). | ||
| 1845 | |||
| 1846 | Property lists are used in several contexts. For instance, the | ||
| 1847 | function @code{put-text-property} takes an argument which is a | ||
| 1848 | property list, specifying text properties and associated values which | ||
| 1849 | are to be applied to text in a string or buffer. @xref{Text | ||
| 1850 | Properties}. | ||
| 1851 | |||
| 1852 | Another prominent use of property lists is for storing symbol | ||
| 1853 | properties. Every symbol possesses a list of properties, used to | ||
| 1854 | record miscellaneous information about the symbol; these properties | ||
| 1855 | are stored in the form of a property list. @xref{Symbol Properties}. | ||
| 1856 | |||
| 1857 | @menu | ||
| 1858 | * Plists and Alists:: Comparison of the advantages of property | ||
| 1859 | lists and association lists. | ||
| 1860 | * Plist Access:: Accessing property lists stored elsewhere. | ||
| 1861 | @end menu | ||
| 1862 | |||
| 1863 | @node Plists and Alists | ||
| 1864 | @subsection Property Lists and Association Lists | ||
| 1865 | @cindex plist vs. alist | ||
| 1866 | @cindex alist vs. plist | ||
| 1867 | |||
| 1868 | @cindex property lists vs association lists | ||
| 1869 | Association lists (@pxref{Association Lists}) are very similar to | ||
| 1870 | property lists. In contrast to association lists, the order of the | ||
| 1871 | pairs in the property list is not significant, since the property | ||
| 1872 | names must be distinct. | ||
| 1873 | |||
| 1874 | Property lists are better than association lists for attaching | ||
| 1875 | information to various Lisp function names or variables. If your | ||
| 1876 | program keeps all such information in one association list, it will | ||
| 1877 | typically need to search that entire list each time it checks for an | ||
| 1878 | association for a particular Lisp function name or variable, which | ||
| 1879 | could be slow. By contrast, if you keep the same information in the | ||
| 1880 | property lists of the function names or variables themselves, each | ||
| 1881 | search will scan only the length of one property list, which is | ||
| 1882 | usually short. This is why the documentation for a variable is | ||
| 1883 | recorded in a property named @code{variable-documentation}. The byte | ||
| 1884 | compiler likewise uses properties to record those functions needing | ||
| 1885 | special treatment. | ||
| 1886 | |||
| 1887 | However, association lists have their own advantages. Depending on | ||
| 1888 | your application, it may be faster to add an association to the front of | ||
| 1889 | an association list than to update a property. All properties for a | ||
| 1890 | symbol are stored in the same property list, so there is a possibility | ||
| 1891 | of a conflict between different uses of a property name. (For this | ||
| 1892 | reason, it is a good idea to choose property names that are probably | ||
| 1893 | unique, such as by beginning the property name with the program's usual | ||
| 1894 | name-prefix for variables and functions.) An association list may be | ||
| 1895 | used like a stack where associations are pushed on the front of the list | ||
| 1896 | and later discarded; this is not possible with a property list. | ||
| 1897 | |||
| 1898 | @node Plist Access | ||
| 1899 | @subsection Property Lists Outside Symbols | ||
| 1900 | |||
| 1901 | The following functions can be used to manipulate property lists. | ||
| 1902 | They all compare property names using @code{eq}. | ||
| 1903 | |||
| 1904 | @defun plist-get plist property | ||
| 1905 | This returns the value of the @var{property} property stored in the | ||
| 1906 | property list @var{plist}. It accepts a malformed @var{plist} | ||
| 1907 | argument. If @var{property} is not found in the @var{plist}, it | ||
| 1908 | returns @code{nil}. For example, | ||
| 1909 | |||
| 1910 | @example | ||
| 1911 | (plist-get '(foo 4) 'foo) | ||
| 1912 | @result{} 4 | ||
| 1913 | (plist-get '(foo 4 bad) 'foo) | ||
| 1914 | @result{} 4 | ||
| 1915 | (plist-get '(foo 4 bad) 'bad) | ||
| 1916 | @result{} nil | ||
| 1917 | (plist-get '(foo 4 bad) 'bar) | ||
| 1918 | @result{} nil | ||
| 1919 | @end example | ||
| 1920 | @end defun | ||
| 1921 | |||
| 1922 | @defun plist-put plist property value | ||
| 1923 | This stores @var{value} as the value of the @var{property} property in | ||
| 1924 | the property list @var{plist}. It may modify @var{plist} destructively, | ||
| 1925 | or it may construct a new list structure without altering the old. The | ||
| 1926 | function returns the modified property list, so you can store that back | ||
| 1927 | in the place where you got @var{plist}. For example, | ||
| 1928 | |||
| 1929 | @example | ||
| 1930 | (setq my-plist '(bar t foo 4)) | ||
| 1931 | @result{} (bar t foo 4) | ||
| 1932 | (setq my-plist (plist-put my-plist 'foo 69)) | ||
| 1933 | @result{} (bar t foo 69) | ||
| 1934 | (setq my-plist (plist-put my-plist 'quux '(a))) | ||
| 1935 | @result{} (bar t foo 69 quux (a)) | ||
| 1936 | @end example | ||
| 1937 | @end defun | ||
| 1938 | |||
| 1939 | You could define @code{put} in terms of @code{plist-put} as follows: | ||
| 1940 | |||
| 1941 | @example | ||
| 1942 | (defun put (symbol prop value) | ||
| 1943 | (setplist symbol | ||
| 1944 | (plist-put (symbol-plist symbol) prop value))) | ||
| 1945 | @end example | ||
| 1946 | |||
| 1947 | @defun lax-plist-get plist property | ||
| 1948 | Like @code{plist-get} except that it compares properties | ||
| 1949 | using @code{equal} instead of @code{eq}. | ||
| 1950 | @end defun | ||
| 1951 | |||
| 1952 | @defun lax-plist-put plist property value | ||
| 1953 | Like @code{plist-put} except that it compares properties | ||
| 1954 | using @code{equal} instead of @code{eq}. | ||
| 1955 | @end defun | ||
| 1956 | |||
| 1957 | @defun plist-member plist property | ||
| 1958 | This returns non-@code{nil} if @var{plist} contains the given | ||
| 1959 | @var{property}. Unlike @code{plist-get}, this allows you to distinguish | ||
| 1960 | between a missing property and a property with the value @code{nil}. | ||
| 1961 | The value is actually the tail of @var{plist} whose @code{car} is | ||
| 1962 | @var{property}. | ||
| 1963 | @end defun | ||
diff --git a/doc/lispref/sequences.texi b/doc/lispref/sequences.texi index e66f61d22d3..8bb1e9e5abf 100644 --- a/doc/lispref/sequences.texi +++ b/doc/lispref/sequences.texi | |||
| @@ -542,10 +542,10 @@ the function @code{char-table-subtype}, described below. | |||
| 542 | @item | 542 | @item |
| 543 | The subtype controls the number of @dfn{extra slots} in the | 543 | The subtype controls the number of @dfn{extra slots} in the |
| 544 | char-table. This number is specified by the subtype's | 544 | char-table. This number is specified by the subtype's |
| 545 | @code{char-table-extra-slots} symbol property, which should be an | 545 | @code{char-table-extra-slots} symbol property (@pxref{Symbol |
| 546 | integer between 0 and 10. If the subtype has no such symbol property, | 546 | Properties}), whose value should be an integer between 0 and 10. If |
| 547 | the char-table has no extra slots. @xref{Property Lists}, for | 547 | the subtype has no such symbol property, the char-table has no extra |
| 548 | information about symbol properties. | 548 | slots. |
| 549 | @end itemize | 549 | @end itemize |
| 550 | 550 | ||
| 551 | @cindex parent of char-table | 551 | @cindex parent of char-table |
diff --git a/doc/lispref/symbols.texi b/doc/lispref/symbols.texi index 326c6cd4ab2..d3e5c1f1574 100644 --- a/doc/lispref/symbols.texi +++ b/doc/lispref/symbols.texi | |||
| @@ -13,8 +13,8 @@ as variables and as function names; see @ref{Variables}, and | |||
| 13 | @ref{Functions}. For the precise read syntax for symbols, see | 13 | @ref{Functions}. For the precise read syntax for symbols, see |
| 14 | @ref{Symbol Type}. | 14 | @ref{Symbol Type}. |
| 15 | 15 | ||
| 16 | You can test whether an arbitrary Lisp object is a symbol | 16 | You can test whether an arbitrary Lisp object is a symbol with |
| 17 | with @code{symbolp}: | 17 | @code{symbolp}: |
| 18 | 18 | ||
| 19 | @defun symbolp object | 19 | @defun symbolp object |
| 20 | This function returns @code{t} if @var{object} is a symbol, @code{nil} | 20 | This function returns @code{t} if @var{object} is a symbol, @code{nil} |
| @@ -26,7 +26,7 @@ otherwise. | |||
| 26 | and property lists. | 26 | and property lists. |
| 27 | * Definitions:: A definition says how a symbol will be used. | 27 | * Definitions:: A definition says how a symbol will be used. |
| 28 | * Creating Symbols:: How symbols are kept unique. | 28 | * Creating Symbols:: How symbols are kept unique. |
| 29 | * Property Lists:: Each symbol has a property list | 29 | * Symbol Properties:: Each symbol has a property list |
| 30 | for recording miscellaneous information. | 30 | for recording miscellaneous information. |
| 31 | @end menu | 31 | @end menu |
| 32 | 32 | ||
| @@ -91,7 +91,7 @@ the contents of a symbol's function cell, use the function | |||
| 91 | 91 | ||
| 92 | The property list cell normally should hold a correctly formatted | 92 | The property list cell normally should hold a correctly formatted |
| 93 | property list. To get a symbol's property list, use the function | 93 | property list. To get a symbol's property list, use the function |
| 94 | @code{symbol-plist}. @xref{Property Lists}. | 94 | @code{symbol-plist}. @xref{Symbol Properties}. |
| 95 | 95 | ||
| 96 | The function cell or the value cell may be @dfn{void}, which means | 96 | The function cell or the value cell may be @dfn{void}, which means |
| 97 | that the cell does not reference any object. (This is not the same | 97 | that the cell does not reference any object. (This is not the same |
| @@ -376,109 +376,34 @@ If @code{unintern} does delete a symbol, it returns @code{t}. Otherwise | |||
| 376 | it returns @code{nil}. | 376 | it returns @code{nil}. |
| 377 | @end defun | 377 | @end defun |
| 378 | 378 | ||
| 379 | @node Property Lists | 379 | @node Symbol Properties |
| 380 | @section Property Lists | 380 | @section Symbol Properties |
| 381 | @cindex property list | 381 | @cindex symbol property |
| 382 | @cindex plist | ||
| 383 | 382 | ||
| 384 | A @dfn{property list} (@dfn{plist} for short) is a list of paired | 383 | A symbol may possess any number of @dfn{symbol properties}, which |
| 385 | elements. Each of the pairs associates a property name (usually a | 384 | can be used to record miscellaneous information about the symbol. For |
| 386 | symbol) with a property or value. | 385 | example, when a symbol has a @code{risky-local-variable} property with |
| 386 | a non-@code{nil} value, that means the variable which the symbol names | ||
| 387 | is a risky file-local variable (@pxref{File Local Variables}). | ||
| 387 | 388 | ||
| 388 | Every symbol has a cell that stores a property list (@pxref{Symbol | 389 | Each symbol's properties and property values are stored in the |
| 389 | Components}). This property list is used to record information about | 390 | symbol's property list cell (@pxref{Symbol Components}), in the form |
| 390 | the symbol, such as its variable documentation and the name of the | 391 | of a property list (@pxref{Property Lists}). |
| 391 | file where it was defined. | ||
| 392 | |||
| 393 | Property lists can also be used in other contexts. For instance, | ||
| 394 | you can assign property lists to character positions in a string or | ||
| 395 | buffer. @xref{Text Properties}. | ||
| 396 | |||
| 397 | The property names and values in a property list can be any Lisp | ||
| 398 | objects, but the names are usually symbols. Property list functions | ||
| 399 | compare the property names using @code{eq}. Here is an example of a | ||
| 400 | property list, found on the symbol @code{progn} when the compiler is | ||
| 401 | loaded: | ||
| 402 | |||
| 403 | @example | ||
| 404 | (lisp-indent-function 0 byte-compile byte-compile-progn) | ||
| 405 | @end example | ||
| 406 | |||
| 407 | @noindent | ||
| 408 | Here @code{lisp-indent-function} and @code{byte-compile} are property | ||
| 409 | names, and the other two elements are the corresponding values. | ||
| 410 | 392 | ||
| 411 | @menu | 393 | @menu |
| 412 | * Plists and Alists:: Comparison of the advantages of property | 394 | * Symbol Plists:: Accessing symbol properties. |
| 413 | lists and association lists. | 395 | * Standard Properties:: Standard meanings of symbol properties. |
| 414 | * Symbol Plists:: Functions to access symbols' property lists. | ||
| 415 | * Other Plists:: Accessing property lists stored elsewhere. | ||
| 416 | @end menu | 396 | @end menu |
| 417 | 397 | ||
| 418 | @node Plists and Alists | ||
| 419 | @subsection Property Lists and Association Lists | ||
| 420 | @cindex plist vs. alist | ||
| 421 | @cindex alist vs. plist | ||
| 422 | |||
| 423 | @cindex property lists vs association lists | ||
| 424 | Association lists (@pxref{Association Lists}) are very similar to | ||
| 425 | property lists. In contrast to association lists, the order of the | ||
| 426 | pairs in the property list is not significant since the property names | ||
| 427 | must be distinct. | ||
| 428 | |||
| 429 | Property lists are better than association lists for attaching | ||
| 430 | information to various Lisp function names or variables. If your | ||
| 431 | program keeps all such information in one association list, it will | ||
| 432 | typically need to search that entire list each time it checks for an | ||
| 433 | association for a particular Lisp function name or variable, which | ||
| 434 | could be slow. By contrast, if you keep the same information in the | ||
| 435 | property lists of the function names or variables themselves, each | ||
| 436 | search will scan only the length of one property list, which is | ||
| 437 | usually short. This is why the documentation for a variable is | ||
| 438 | recorded in a property named @code{variable-documentation}. The byte | ||
| 439 | compiler likewise uses properties to record those functions needing | ||
| 440 | special treatment. | ||
| 441 | |||
| 442 | However, association lists have their own advantages. Depending on | ||
| 443 | your application, it may be faster to add an association to the front of | ||
| 444 | an association list than to update a property. All properties for a | ||
| 445 | symbol are stored in the same property list, so there is a possibility | ||
| 446 | of a conflict between different uses of a property name. (For this | ||
| 447 | reason, it is a good idea to choose property names that are probably | ||
| 448 | unique, such as by beginning the property name with the program's usual | ||
| 449 | name-prefix for variables and functions.) An association list may be | ||
| 450 | used like a stack where associations are pushed on the front of the list | ||
| 451 | and later discarded; this is not possible with a property list. | ||
| 452 | |||
| 453 | @node Symbol Plists | 398 | @node Symbol Plists |
| 454 | @subsection Property List Functions for Symbols | 399 | @subsection Accessing Symbol Properties |
| 455 | |||
| 456 | @defun symbol-plist symbol | ||
| 457 | This function returns the property list of @var{symbol}. | ||
| 458 | @end defun | ||
| 459 | |||
| 460 | @defun setplist symbol plist | ||
| 461 | This function sets @var{symbol}'s property list to @var{plist}. | ||
| 462 | Normally, @var{plist} should be a well-formed property list, but this is | ||
| 463 | not enforced. The return value is @var{plist}. | ||
| 464 | 400 | ||
| 465 | @example | 401 | The following functions can be used to access symbol properties. |
| 466 | (setplist 'foo '(a 1 b (2 3) c nil)) | ||
| 467 | @result{} (a 1 b (2 3) c nil) | ||
| 468 | (symbol-plist 'foo) | ||
| 469 | @result{} (a 1 b (2 3) c nil) | ||
| 470 | @end example | ||
| 471 | |||
| 472 | For symbols in special obarrays, which are not used for ordinary | ||
| 473 | purposes, it may make sense to use the property list cell in a | ||
| 474 | nonstandard fashion; in fact, the abbrev mechanism does so | ||
| 475 | (@pxref{Abbrevs}). | ||
| 476 | @end defun | ||
| 477 | 402 | ||
| 478 | @defun get symbol property | 403 | @defun get symbol property |
| 479 | This function finds the value of the property named @var{property} in | 404 | This function returns the value of the property named @var{property} |
| 480 | @var{symbol}'s property list. If there is no such property, @code{nil} | 405 | in @var{symbol}'s property list. If there is no such property, it |
| 481 | is returned. Thus, there is no distinction between a value of | 406 | returns @code{nil}. Thus, there is no distinction between a value of |
| 482 | @code{nil} and the absence of the property. | 407 | @code{nil} and the absence of the property. |
| 483 | 408 | ||
| 484 | The name @var{property} is compared with the existing property names | 409 | The name @var{property} is compared with the existing property names |
| @@ -487,12 +412,6 @@ using @code{eq}, so any object is a legitimate property. | |||
| 487 | See @code{put} for an example. | 412 | See @code{put} for an example. |
| 488 | @end defun | 413 | @end defun |
| 489 | 414 | ||
| 490 | @defun function-get symbol property | ||
| 491 | This function is identical to @code{get}, except that if @var{symbol} | ||
| 492 | is the name of a function alias, it looks in the property list of the | ||
| 493 | symbol naming the actual function. @xref{Defining Functions}. | ||
| 494 | @end defun | ||
| 495 | |||
| 496 | @defun put symbol property value | 415 | @defun put symbol property value |
| 497 | This function puts @var{value} onto @var{symbol}'s property list under | 416 | This function puts @var{value} onto @var{symbol}'s property list under |
| 498 | the property name @var{property}, replacing any previous property value. | 417 | the property name @var{property}, replacing any previous property value. |
| @@ -510,69 +429,132 @@ The @code{put} function returns @var{value}. | |||
| 510 | @end example | 429 | @end example |
| 511 | @end defun | 430 | @end defun |
| 512 | 431 | ||
| 513 | @node Other Plists | 432 | @defun symbol-plist symbol |
| 514 | @subsection Property Lists Outside Symbols | 433 | This function returns the property list of @var{symbol}. |
| 515 | |||
| 516 | These functions are useful for manipulating property lists | ||
| 517 | not stored in symbols: | ||
| 518 | |||
| 519 | @defun plist-get plist property | ||
| 520 | This returns the value of the @var{property} property stored in the | ||
| 521 | property list @var{plist}. It accepts a malformed @var{plist} | ||
| 522 | argument. If @var{property} is not found in the @var{plist}, it | ||
| 523 | returns @code{nil}. For example, | ||
| 524 | |||
| 525 | @example | ||
| 526 | (plist-get '(foo 4) 'foo) | ||
| 527 | @result{} 4 | ||
| 528 | (plist-get '(foo 4 bad) 'foo) | ||
| 529 | @result{} 4 | ||
| 530 | (plist-get '(foo 4 bad) 'bad) | ||
| 531 | @result{} nil | ||
| 532 | (plist-get '(foo 4 bad) 'bar) | ||
| 533 | @result{} nil | ||
| 534 | @end example | ||
| 535 | @end defun | ||
| 536 | |||
| 537 | @defun plist-put plist property value | ||
| 538 | This stores @var{value} as the value of the @var{property} property in | ||
| 539 | the property list @var{plist}. It may modify @var{plist} destructively, | ||
| 540 | or it may construct a new list structure without altering the old. The | ||
| 541 | function returns the modified property list, so you can store that back | ||
| 542 | in the place where you got @var{plist}. For example, | ||
| 543 | |||
| 544 | @example | ||
| 545 | (setq my-plist '(bar t foo 4)) | ||
| 546 | @result{} (bar t foo 4) | ||
| 547 | (setq my-plist (plist-put my-plist 'foo 69)) | ||
| 548 | @result{} (bar t foo 69) | ||
| 549 | (setq my-plist (plist-put my-plist 'quux '(a))) | ||
| 550 | @result{} (bar t foo 69 quux (a)) | ||
| 551 | @end example | ||
| 552 | @end defun | 434 | @end defun |
| 553 | 435 | ||
| 554 | You could define @code{put} in terms of @code{plist-put} as follows: | 436 | @defun setplist symbol plist |
| 437 | This function sets @var{symbol}'s property list to @var{plist}. | ||
| 438 | Normally, @var{plist} should be a well-formed property list, but this is | ||
| 439 | not enforced. The return value is @var{plist}. | ||
| 555 | 440 | ||
| 556 | @example | 441 | @example |
| 557 | (defun put (symbol prop value) | 442 | (setplist 'foo '(a 1 b (2 3) c nil)) |
| 558 | (setplist symbol | 443 | @result{} (a 1 b (2 3) c nil) |
| 559 | (plist-put (symbol-plist symbol) prop value))) | 444 | (symbol-plist 'foo) |
| 445 | @result{} (a 1 b (2 3) c nil) | ||
| 560 | @end example | 446 | @end example |
| 561 | 447 | ||
| 562 | @defun lax-plist-get plist property | 448 | For symbols in special obarrays, which are not used for ordinary |
| 563 | Like @code{plist-get} except that it compares properties | 449 | purposes, it may make sense to use the property list cell in a |
| 564 | using @code{equal} instead of @code{eq}. | 450 | nonstandard fashion; in fact, the abbrev mechanism does so |
| 451 | (@pxref{Abbrevs}). | ||
| 565 | @end defun | 452 | @end defun |
| 566 | 453 | ||
| 567 | @defun lax-plist-put plist property value | 454 | @defun function-get symbol property |
| 568 | Like @code{plist-put} except that it compares properties | 455 | This function is identical to @code{get}, except that if @var{symbol} |
| 569 | using @code{equal} instead of @code{eq}. | 456 | is the name of a function alias, it looks in the property list of the |
| 457 | symbol naming the actual function. @xref{Defining Functions}. | ||
| 570 | @end defun | 458 | @end defun |
| 571 | 459 | ||
| 572 | @defun plist-member plist property | 460 | @node Standard Properties |
| 573 | This returns non-@code{nil} if @var{plist} contains the given | 461 | @subsection Standard Symbol Properties |
| 574 | @var{property}. Unlike @code{plist-get}, this allows you to distinguish | 462 | |
| 575 | between a missing property and a property with the value @code{nil}. | 463 | Here, we list the symbol properties which are used for special |
| 576 | The value is actually the tail of @var{plist} whose @code{car} is | 464 | purposes in Emacs. In the following table, whenever we say ``the |
| 577 | @var{property}. | 465 | named function'', that means the function whose name is the relevant |
| 578 | @end defun | 466 | symbol; similarly for ``the named variable'' etc. |
| 467 | |||
| 468 | @table @code | ||
| 469 | @item :advertised-binding | ||
| 470 | This property value specifies the preferred key binding, when showing | ||
| 471 | documentation, for the named function. @xref{Keys in Documentation}. | ||
| 472 | |||
| 473 | @item char-table-extra-slots | ||
| 474 | The value, if non-@code{nil}, specifies the number of extra slots in | ||
| 475 | the named char-table type. @xref{Char-Tables}. | ||
| 476 | |||
| 477 | @itemx customized-face | ||
| 478 | @item face-defface-spec | ||
| 479 | @itemx saved-face | ||
| 480 | @itemx theme-face | ||
| 481 | These properties are used to record a face's standard, saved, | ||
| 482 | customized, and themed face specs. Do not set them directly; they are | ||
| 483 | managed by @code{defface} and related functions. @xref{Defining | ||
| 484 | Faces}. | ||
| 485 | |||
| 486 | @itemx customized-value | ||
| 487 | @itemx saved-value | ||
| 488 | @item standard-value | ||
| 489 | @itemx theme-value | ||
| 490 | These properties are used to record a customizable variable's standard | ||
| 491 | value, saved value, customized-but-unsaved value, and themed values. | ||
| 492 | Do not set them directly; they are managed by @code{defcustom} and | ||
| 493 | related functions. @xref{Variable Definitions}. | ||
| 494 | |||
| 495 | @item disabled | ||
| 496 | If the value is non-@code{nil}, the named function is disabled as a | ||
| 497 | command. @xref{Disabling Commands}. | ||
| 498 | |||
| 499 | @item face-documentation | ||
| 500 | The value stores the documentation string of the named face. This is | ||
| 501 | normally set automatically by @code{defface}. @xref{Defining Faces}. | ||
| 502 | |||
| 503 | @item history-length | ||
| 504 | The value, if non-@code{nil}, specifies the maximum minibuffer history | ||
| 505 | length for the named history list variable. @xref{Minibuffer | ||
| 506 | History}. | ||
| 507 | |||
| 508 | @item interactive-form | ||
| 509 | The value is an interactive form for the named function. Normally, | ||
| 510 | you should not set this directly; use the @code{interactive} special | ||
| 511 | form instead. @xref{Interactive Call}. | ||
| 512 | |||
| 513 | @item menu-enable | ||
| 514 | The value is an expression for determining whether the named menu item | ||
| 515 | should be enabled in menus. @xref{Simple Menu Items}. | ||
| 516 | |||
| 517 | @item mode-class | ||
| 518 | If the value is @code{special}, the named major mode is ``special''. | ||
| 519 | @xref{Major Mode Conventions}. | ||
| 520 | |||
| 521 | @item permanent-local | ||
| 522 | If the value is non-@code{nil}, the named variable is a buffer-local | ||
| 523 | variable whose value should not be reset when changing major modes. | ||
| 524 | @xref{Creating Buffer-Local}. | ||
| 525 | |||
| 526 | @item permanent-local-hook | ||
| 527 | If the value is non-@code{nil}, the named function should not be | ||
| 528 | deleted from the local value of a hook variable when changing major | ||
| 529 | modes. @xref{Setting Hooks}. | ||
| 530 | |||
| 531 | @item pure | ||
| 532 | This property is used internally to mark certain named functions for | ||
| 533 | byte compiler optimization. Do not set it. | ||
| 534 | |||
| 535 | @item risky-local-variable | ||
| 536 | If the value is non-@code{nil}, the named variable is considered risky | ||
| 537 | as a file-local variable. @xref{File Local Variables}. | ||
| 538 | |||
| 539 | @item safe-function | ||
| 540 | If the value is non-@code{nil}, the named function is considered | ||
| 541 | generally safe for evaluation. @xref{Function Safety}. | ||
| 542 | |||
| 543 | @item safe-local-eval-function | ||
| 544 | If the value is non-@code{nil}, the named function is safe to call in | ||
| 545 | file-local evaluation forms. @xref{File Local Variables}. | ||
| 546 | |||
| 547 | @item safe-local-variable | ||
| 548 | The value specifies a function for determining safe file-local values | ||
| 549 | for the named variable. @xref{File Local Variables}. | ||
| 550 | |||
| 551 | @item side-effect-free | ||
| 552 | A non-@code{nil} value indicates that the named function is free of | ||
| 553 | side-effects, for determining function safety (@pxref{Function | ||
| 554 | Safety}) as well as for byte compiler optimizations. Do not set it. | ||
| 555 | |||
| 556 | @item variable-documentation | ||
| 557 | If non-@code{nil}, this specifies the named vaariable's documentation | ||
| 558 | string. This is normally set automatically by @code{defvar} and | ||
| 559 | related functions. @xref{Defining Faces}. | ||
| 560 | @end table | ||
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi index dfde3c45c04..2168bd5af05 100644 --- a/doc/lispref/variables.texi +++ b/doc/lispref/variables.texi | |||
| @@ -1423,7 +1423,6 @@ disappear after doing its job and will not interfere with the | |||
| 1423 | subsequent major mode. @xref{Hooks}. | 1423 | subsequent major mode. @xref{Hooks}. |
| 1424 | @end defvar | 1424 | @end defvar |
| 1425 | 1425 | ||
| 1426 | @c Emacs 19 feature | ||
| 1427 | @cindex permanent local variable | 1426 | @cindex permanent local variable |
| 1428 | A buffer-local variable is @dfn{permanent} if the variable name (a | 1427 | A buffer-local variable is @dfn{permanent} if the variable name (a |
| 1429 | symbol) has a @code{permanent-local} property that is non-@code{nil}. | 1428 | symbol) has a @code{permanent-local} property that is non-@code{nil}. |
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 8a067b5c100..f5e5007c58d 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | 2012-12-03 Michael Albinus <michael.albinus@gmx.de> | ||
| 2 | |||
| 3 | * tramp.texi (Top, Obtaining Tramp): Replace CVS by Git. | ||
| 4 | (External methods): Fix typo. | ||
| 5 | |||
| 6 | 2012-12-03 Glenn Morris <rgm@gnu.org> | ||
| 7 | |||
| 8 | * rcirc.texi (Notices): Fix typo. | ||
| 9 | |||
| 1 | 2012-11-25 Bill Wohler <wohler@newt.com> | 10 | 2012-11-25 Bill Wohler <wohler@newt.com> |
| 2 | 11 | ||
| 3 | Release MH-E manual version 8.4. | 12 | Release MH-E manual version 8.4. |
diff --git a/doc/misc/rcirc.texi b/doc/misc/rcirc.texi index 0174c3fa87f..ac97db414a4 100644 --- a/doc/misc/rcirc.texi +++ b/doc/misc/rcirc.texi | |||
| @@ -764,7 +764,7 @@ You can control which notices get omitted via the | |||
| 764 | omit away messages: | 764 | omit away messages: |
| 765 | 765 | ||
| 766 | @example | 766 | @example |
| 767 | (setq rcirc-omit-responses '("JOIN" "PART" "QUIT" "NICK" "AWAY)) | 767 | (setq rcirc-omit-responses '("JOIN" "PART" "QUIT" "NICK" "AWAY")) |
| 768 | @end example | 768 | @end example |
| 769 | 769 | ||
| 770 | @vindex rcirc-omit-threshold | 770 | @vindex rcirc-omit-threshold |
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi index a983f76ffd3..020a6e55833 100644 --- a/doc/misc/tramp.texi +++ b/doc/misc/tramp.texi | |||
| @@ -7,7 +7,7 @@ | |||
| 7 | @c This is *so* much nicer :) | 7 | @c This is *so* much nicer :) |
| 8 | @footnotestyle end | 8 | @footnotestyle end |
| 9 | 9 | ||
| 10 | @c In the Tramp CVS, the version number is auto-frobbed from | 10 | @c In the Tramp repository, the version number is auto-frobbed from |
| 11 | @c configure.ac, so you should edit that file and run | 11 | @c configure.ac, so you should edit that file and run |
| 12 | @c "autoconf && ./configure" to change the version number. | 12 | @c "autoconf && ./configure" to change the version number. |
| 13 | 13 | ||
| @@ -106,7 +106,7 @@ If you're using the other Emacs flavor, you should read the | |||
| 106 | @ifhtml | 106 | @ifhtml |
| 107 | The latest release of @value{tramp} is available for | 107 | The latest release of @value{tramp} is available for |
| 108 | @uref{ftp://ftp.gnu.org/gnu/tramp/, download}, or you may see | 108 | @uref{ftp://ftp.gnu.org/gnu/tramp/, download}, or you may see |
| 109 | @ref{Obtaining Tramp} for more details, including the CVS server | 109 | @ref{Obtaining Tramp} for more details, including the Git server |
| 110 | details. | 110 | details. |
| 111 | 111 | ||
| 112 | @value{tramp} also has a @uref{http://savannah.gnu.org/projects/tramp/, | 112 | @value{tramp} also has a @uref{http://savannah.gnu.org/projects/tramp/, |
| @@ -377,13 +377,13 @@ includes @value{tramp} already, and there is a @value{tramp} package | |||
| 377 | for XEmacs, as well. So maybe it is easier to just use those. But if | 377 | for XEmacs, as well. So maybe it is easier to just use those. But if |
| 378 | you want the bleeding edge, read on@dots{...} | 378 | you want the bleeding edge, read on@dots{...} |
| 379 | 379 | ||
| 380 | For the especially brave, @value{tramp} is available from CVS. The CVS | 380 | For the especially brave, @value{tramp} is available from Git. The Git |
| 381 | version is the latest version of the code and may contain incomplete | 381 | version is the latest version of the code and may contain incomplete |
| 382 | features or new issues. Use these versions at your own risk. | 382 | features or new issues. Use these versions at your own risk. |
| 383 | 383 | ||
| 384 | Instructions for obtaining the latest development version of @value{tramp} | 384 | Instructions for obtaining the latest development version of @value{tramp} |
| 385 | from CVS can be found by going to the Savannah project page at the | 385 | from Git can be found by going to the Savannah project page at the |
| 386 | following URL and then clicking on the CVS link in the navigation bar | 386 | following URL and then clicking on the Git link in the navigation bar |
| 387 | at the top. | 387 | at the top. |
| 388 | 388 | ||
| 389 | @noindent | 389 | @noindent |
| @@ -394,8 +394,14 @@ Or follow the example session below: | |||
| 394 | 394 | ||
| 395 | @example | 395 | @example |
| 396 | ] @strong{cd ~/@value{emacsdir}} | 396 | ] @strong{cd ~/@value{emacsdir}} |
| 397 | ] @strong{export CVS_RSH="ssh"} | 397 | ] @strong{git clone git://git.savannah.gnu.org/tramp.git} |
| 398 | ] @strong{cvs -z3 -d:pserver:anonymous@@cvs.savannah.gnu.org:/sources/tramp co tramp} | 398 | @end example |
| 399 | |||
| 400 | @noindent | ||
| 401 | Tramp developers use instead | ||
| 402 | |||
| 403 | @example | ||
| 404 | ] @strong{git clone login@@git.sv.gnu.org:/srv/git/tramp.git} | ||
| 399 | @end example | 405 | @end example |
| 400 | 406 | ||
| 401 | @noindent | 407 | @noindent |
| @@ -405,12 +411,11 @@ updates from the repository by issuing the command: | |||
| 405 | 411 | ||
| 406 | @example | 412 | @example |
| 407 | ] @strong{cd ~/@value{emacsdir}/tramp} | 413 | ] @strong{cd ~/@value{emacsdir}/tramp} |
| 408 | ] @strong{export CVS_RSH="ssh"} | 414 | ] @strong{git pull} |
| 409 | ] @strong{cvs update -d} | ||
| 410 | @end example | 415 | @end example |
| 411 | 416 | ||
| 412 | @noindent | 417 | @noindent |
| 413 | Once you've got updated files from the CVS repository, you need to run | 418 | Once you've got updated files from the Git repository, you need to run |
| 414 | @command{autoconf} in order to get an up-to-date @file{configure} | 419 | @command{autoconf} in order to get an up-to-date @file{configure} |
| 415 | script: | 420 | script: |
| 416 | 421 | ||
| @@ -980,7 +985,7 @@ This works only for unified filenames, see @ref{Issues}. | |||
| 980 | @cindex method smb | 985 | @cindex method smb |
| 981 | @cindex smb method | 986 | @cindex smb method |
| 982 | 987 | ||
| 983 | This is another not natural @value{tramp} method. It uses the | 988 | This is another not native @value{tramp} method. It uses the |
| 984 | @command{smbclient} command on different Unices in order to connect to | 989 | @command{smbclient} command on different Unices in order to connect to |
| 985 | an SMB server. An SMB server might be a Samba (or CIFS) server on | 990 | an SMB server. An SMB server might be a Samba (or CIFS) server on |
| 986 | another UNIX host or, more interesting, a host running MS Windows. So | 991 | another UNIX host or, more interesting, a host running MS Windows. So |