diff options
| author | Chong Yidong | 2009-12-29 13:06:16 -0500 |
|---|---|---|
| committer | Chong Yidong | 2009-12-29 13:06:16 -0500 |
| commit | 26e533e2d9e4c6bdf010d34e9686ee2e6c84a84a (patch) | |
| tree | ef7f01c7c9cf6c5220e617c1ab3cc490be29aac1 | |
| parent | 659e4408a49d7ced1cbdfff3ca89a10413d642ac (diff) | |
| download | emacs-26e533e2d9e4c6bdf010d34e9686ee2e6c84a84a.tar.gz emacs-26e533e2d9e4c6bdf010d34e9686ee2e6c84a84a.zip | |
* doc/emacs/misc.texi (Shell): Document async-shell-command.
* doc/emacs/building.texi (Grep Searching): Document zrgrep.
* doc/emacs/mini.texi (Completion Options):
* doc/lispref/minibuf.texi (Completion Styles): Document `initials' style.
| -rw-r--r-- | doc/emacs/ChangeLog | 8 | ||||
| -rw-r--r-- | doc/emacs/building.texi | 248 | ||||
| -rw-r--r-- | doc/emacs/mini.texi | 13 | ||||
| -rw-r--r-- | doc/emacs/misc.texi | 8 | ||||
| -rw-r--r-- | doc/lispref/ChangeLog | 4 | ||||
| -rw-r--r-- | doc/lispref/minibuf.texi | 8 | ||||
| -rw-r--r-- | etc/NEWS | 57 |
7 files changed, 265 insertions, 81 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 62000a556c3..f6dfdc91e0f 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2009-12-29 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * misc.texi (Shell): Document async-shell-command. | ||
| 4 | |||
| 5 | * building.texi (Grep Searching): Document zrgrep. | ||
| 6 | |||
| 7 | * mini.texi (Completion Options): Mention `initals' completion style. | ||
| 8 | |||
| 1 | 2009-12-24 Chong Yidong <cyd@stupidchicken.com> | 9 | 2009-12-24 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 10 | ||
| 3 | * emacs.texi (Top): Update node listing. | 11 | * emacs.texi (Top): Update node listing. |
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi index 343eb646a83..619e1b0271d 100644 --- a/doc/emacs/building.texi +++ b/doc/emacs/building.texi | |||
| @@ -356,8 +356,10 @@ listed in the buffer named @samp{*grep*}. | |||
| 356 | @item M-x grep-find | 356 | @item M-x grep-find |
| 357 | @itemx M-x find-grep | 357 | @itemx M-x find-grep |
| 358 | @itemx M-x rgrep | 358 | @itemx M-x rgrep |
| 359 | Run @code{grep} via @code{find}, with user-specified arguments, and | 359 | Run @code{grep} via @code{find}, and collect output in the buffer |
| 360 | collect output in the buffer named @samp{*grep*}. | 360 | named @samp{*grep*}. |
| 361 | @item M-x zrgrep | ||
| 362 | Run @code{zgrep} and collect output in the buffer named @samp{*grep*}. | ||
| 361 | @item M-x kill-grep | 363 | @item M-x kill-grep |
| 362 | Kill the running @code{grep} subprocess. | 364 | Kill the running @code{grep} subprocess. |
| 363 | @end table | 365 | @end table |
| @@ -400,21 +402,22 @@ the @code{find-grep-dired} command, in @ref{Dired and Find}. | |||
| 400 | 402 | ||
| 401 | @findex lgrep | 403 | @findex lgrep |
| 402 | @findex rgrep | 404 | @findex rgrep |
| 405 | @findex zrgrep | ||
| 403 | The commands @kbd{M-x lgrep} (local grep) and @kbd{M-x rgrep} | 406 | The commands @kbd{M-x lgrep} (local grep) and @kbd{M-x rgrep} |
| 404 | (recursive grep) are more user-friendly versions of @code{grep} and | 407 | (recursive grep) are more user-friendly versions of @code{grep} and |
| 405 | @code{grep-find}, which prompt separately for the regular expression | 408 | @code{grep-find}, which prompt separately for the regular expression |
| 406 | to match, the files to search, and the base directory for the search. | 409 | to match, the files to search, and the base directory for the search. |
| 407 | Case sensitivity of the search is controlled by the | 410 | Case sensitivity of the search is controlled by the current value of |
| 408 | current value of @code{case-fold-search}. | 411 | @code{case-fold-search}. The command @kbd{M-x zrgrep} is similar to |
| 412 | @code{rgrep}, but it calls @code{zgrep} instead of @code{grep} to | ||
| 413 | search the contents of gzipped files. | ||
| 409 | 414 | ||
| 410 | These commands build the shell commands based on the variables | 415 | These commands build the shell commands based on the variables |
| 411 | @code{grep-template} (for @code{lgrep}) and @code{grep-find-template} | 416 | @code{grep-template} (for @code{lgrep}) and @code{grep-find-template} |
| 412 | (for @code{rgrep}). | 417 | (for @code{rgrep}). The files to search can use aliases defined in |
| 418 | the variable @code{grep-files-aliases}. | ||
| 413 | 419 | ||
| 414 | The files to search can use aliases defined in the variable | 420 | Subdirectories listed in the variable |
| 415 | @code{grep-files-aliases}. | ||
| 416 | |||
| 417 | Subdirectories listed in the variable | ||
| 418 | @code{grep-find-ignored-directories} such as those typically used by | 421 | @code{grep-find-ignored-directories} such as those typically used by |
| 419 | various version control systems, like CVS and arch, are automatically | 422 | various version control systems, like CVS and arch, are automatically |
| 420 | skipped by @code{rgrep}. | 423 | skipped by @code{rgrep}. |
| @@ -854,11 +857,12 @@ multiple programs within one Emacs session. | |||
| 854 | * Source Buffers:: Use the mouse in the fringe/margin to | 857 | * Source Buffers:: Use the mouse in the fringe/margin to |
| 855 | control your program. | 858 | control your program. |
| 856 | * Breakpoints Buffer:: A breakpoint control panel. | 859 | * Breakpoints Buffer:: A breakpoint control panel. |
| 860 | * Threads Buffer:: Displays your threads. | ||
| 857 | * Stack Buffer:: Select a frame from the call stack. | 861 | * Stack Buffer:: Select a frame from the call stack. |
| 858 | * Other GDB-UI Buffers:: Input/output, locals, registers, | 862 | * Other GDB-UI Buffers:: Input/output, locals, registers, |
| 859 | assembler, threads and memory buffers. | 863 | assembler, threads and memory buffers. |
| 860 | * Watch Expressions:: Monitor variable values in the speedbar. | 864 | * Watch Expressions:: Monitor variable values in the speedbar. |
| 861 | * Reverse Debugging:: Execute and reverse debug your program. | 865 | * Multithreaded Debugging:: Debugging programs with several threads. |
| 862 | @end menu | 866 | @end menu |
| 863 | 867 | ||
| 864 | @node GDB-UI Layout | 868 | @node GDB-UI Layout |
| @@ -883,7 +887,7 @@ displays the following frame layout: | |||
| 883 | |--------------------------------+--------------------------------+ | 887 | |--------------------------------+--------------------------------+ |
| 884 | | Primary Source buffer | I/O buffer for debugged pgm | | 888 | | Primary Source buffer | I/O buffer for debugged pgm | |
| 885 | |--------------------------------+--------------------------------+ | 889 | |--------------------------------+--------------------------------+ |
| 886 | | Stack buffer | Breakpoints/Threads buffer | | 890 | | Stack buffer | Breakpoints/Thread buffer | |
| 887 | +--------------------------------+--------------------------------+ | 891 | +--------------------------------+--------------------------------+ |
| 888 | @end group | 892 | @end group |
| 889 | @end smallexample | 893 | @end smallexample |
| @@ -1011,10 +1015,92 @@ Visit the source line for the current breakpoint | |||
| 1011 | Visit the source line for the breakpoint you click on. | 1015 | Visit the source line for the breakpoint you click on. |
| 1012 | @end table | 1016 | @end table |
| 1013 | 1017 | ||
| 1018 | @vindex gdb-show-threads-by-default | ||
| 1014 | When @code{gdb-many-windows} is non-@code{nil}, the breakpoints buffer | 1019 | When @code{gdb-many-windows} is non-@code{nil}, the breakpoints buffer |
| 1015 | shares its window with the threads buffer. To switch from one to the | 1020 | shares its window with the threads buffer. To switch from one to the |
| 1016 | other click with @kbd{Mouse-1} on the relevant button in the header | 1021 | other click with @kbd{Mouse-1} on the relevant button in the header |
| 1017 | line. | 1022 | line, or press @kbd{TAB} inside that buffer. If |
| 1023 | @code{gdb-show-threads-by-default} is non-@code{nil}, the threads | ||
| 1024 | buffer, rather than the breakpoints buffer, is shown at start up. | ||
| 1025 | |||
| 1026 | @node Threads Buffer | ||
| 1027 | @subsubsection Threads Buffer | ||
| 1028 | |||
| 1029 | @findex gdb-select-thread | ||
| 1030 | The threads buffer displays a summary of all threads currently in your | ||
| 1031 | program (@pxref{Threads, Threads, Debugging programs with multiple | ||
| 1032 | threads, gdb, The GNU debugger}). Move point to any thread in the list | ||
| 1033 | and press @key{RET} to select it (@code{gdb-select-thread}) and | ||
| 1034 | display the associated source in the primary source buffer. | ||
| 1035 | Alternatively, click @kbd{Mouse-2} on a thread to select it. Contents | ||
| 1036 | of all GDB buffers are updated whenever you select a thread. | ||
| 1037 | |||
| 1038 | You can customize variables under @code{gdb-buffers} group to select | ||
| 1039 | fields included in threads buffer. | ||
| 1040 | |||
| 1041 | @table @code | ||
| 1042 | @item gdb-thread-buffer-verbose-names | ||
| 1043 | @vindex gdb-thread-buffer-verbose-names | ||
| 1044 | Show long thread names like @samp{Thread 0x4e2ab70 (LWP 1983)} in | ||
| 1045 | threads buffer. | ||
| 1046 | |||
| 1047 | @item gdb-thread-buffer-arguments | ||
| 1048 | @vindex gdb-thread-buffer-arguments | ||
| 1049 | Show arguments of thread top frames in threads buffer. | ||
| 1050 | |||
| 1051 | @item gdb-thread-buffer-locations | ||
| 1052 | @vindex gdb-thread-buffer-locations | ||
| 1053 | Show file information or library names in threads buffer. | ||
| 1054 | |||
| 1055 | @item gdb-thread-buffer-addresses | ||
| 1056 | @vindex gdb-thread-buffer-addresses | ||
| 1057 | Show addresses for thread frames in threads buffer. | ||
| 1058 | @end table | ||
| 1059 | |||
| 1060 | It’s possible to observe information for several threads | ||
| 1061 | simultaneously (in addition to buffers which show information for | ||
| 1062 | currently selected thread) using the following keys from the threads | ||
| 1063 | buffer. | ||
| 1064 | |||
| 1065 | @table @kbd | ||
| 1066 | @item d | ||
| 1067 | @kindex d @r{(GDB threads buffer)} | ||
| 1068 | @findex gdb-display-disassembly-for-thread | ||
| 1069 | Display disassembly buffer for the thread at current line. | ||
| 1070 | (@code{gdb-display-disassembly-for-thread}) | ||
| 1071 | |||
| 1072 | @item f | ||
| 1073 | @kindex f @r{(GDB threads buffer)} | ||
| 1074 | @findex gdb-display-stack-for-thread | ||
| 1075 | Display stack buffer for the thread at current line. | ||
| 1076 | (@code{gdb-display-stack-for-thread}). | ||
| 1077 | |||
| 1078 | @item l | ||
| 1079 | @kindex l @r{(GDB threads buffer)} | ||
| 1080 | @findex gdb-display-locals-for-thread | ||
| 1081 | Display locals buffer for the thread at current line. | ||
| 1082 | (@code{gdb-display-locals-for-thread}). | ||
| 1083 | |||
| 1084 | @item r | ||
| 1085 | @kindex r @r{(GDB threads buffer)} | ||
| 1086 | @findex gdb-display-registers-for-thread | ||
| 1087 | Display registers buffer for the thread at current line. | ||
| 1088 | (@code{gdb-display-registers-for-thread}). | ||
| 1089 | @end table | ||
| 1090 | |||
| 1091 | Pressing their upper-case counterparts, @kbd{D}, @kbd{F} ,@kbd{L} and | ||
| 1092 | @kbd{R} displays the corresponding buffer in a new frame. | ||
| 1093 | |||
| 1094 | When you create a buffer showing information about some specific | ||
| 1095 | thread, it becomes bound to that thread and keeps showing actual | ||
| 1096 | information while you debug your program. Every GDB buffer contains a | ||
| 1097 | number of thread it shows information for in its mode name. Thread | ||
| 1098 | number is also included in the buffer name of bound buffers to prevent | ||
| 1099 | buffer names clashing. | ||
| 1100 | |||
| 1101 | Further commands are available in the threads buffer which depend on the | ||
| 1102 | mode of GDB that is used for controlling execution of your program. | ||
| 1103 | (@pxref{Multithreaded Debugging, Stopping and Starting Multi-threaded Programs}). | ||
| 1018 | 1104 | ||
| 1019 | @node Stack Buffer | 1105 | @node Stack Buffer |
| 1020 | @subsubsection Stack Buffer | 1106 | @subsubsection Stack Buffer |
| @@ -1051,7 +1137,7 @@ as are the commands to send signals to the debugged program. | |||
| 1051 | @item Locals Buffer | 1137 | @item Locals Buffer |
| 1052 | The locals buffer displays the values of local variables of the | 1138 | The locals buffer displays the values of local variables of the |
| 1053 | current frame for simple data types (@pxref{Frame Info, Frame Info, | 1139 | current frame for simple data types (@pxref{Frame Info, Frame Info, |
| 1054 | Information on a frame, gdb, The GNU debugger}). Press @key{RET} or | 1140 | Information on a frame, gdb, The GNU debugger}). Press @key{RET} or |
| 1055 | click @kbd{Mouse-2} on the value if you want to edit it. | 1141 | click @kbd{Mouse-2} on the value if you want to edit it. |
| 1056 | 1142 | ||
| 1057 | Arrays and structures display their type only. With GDB 6.4 or later, | 1143 | Arrays and structures display their type only. With GDB 6.4 or later, |
| @@ -1070,27 +1156,12 @@ With GDB 6.4 or later, recently changed register values display with | |||
| 1070 | press @key{SPC} to toggle the display of floating point registers | 1156 | press @key{SPC} to toggle the display of floating point registers |
| 1071 | (@code{toggle-gdb-all-registers}). | 1157 | (@code{toggle-gdb-all-registers}). |
| 1072 | 1158 | ||
| 1073 | @item Assembler Buffer | 1159 | @item Disassembly Buffer |
| 1074 | The assembler buffer displays the current frame as machine code. An | 1160 | The disassembly buffer displays the current frame as machine code. An |
| 1075 | arrow points to the current instruction, and you can set and remove | 1161 | arrow points to the current instruction, and you can set and remove |
| 1076 | breakpoints as in a source buffer. Breakpoint icons also appear in | 1162 | breakpoints as in a source buffer. Breakpoint icons also appear in |
| 1077 | the fringe or margin. | 1163 | the fringe or margin. |
| 1078 | 1164 | ||
| 1079 | @item Threads Buffer | ||
| 1080 | @findex gdb-threads-select | ||
| 1081 | The threads buffer displays a summary of all threads currently in your | ||
| 1082 | program (@pxref{Threads, Threads, Debugging programs with multiple | ||
| 1083 | threads, gdb, The GNU debugger}). Move point to any thread in the | ||
| 1084 | list and press @key{RET} to select it (@code{gdb-threads-select}) and | ||
| 1085 | display the associated source in the primary source buffer. | ||
| 1086 | Alternatively, click @kbd{Mouse-2} on a thread to select it. If the | ||
| 1087 | locals buffer is visible, its contents update to display the variables | ||
| 1088 | that are local in the new thread. | ||
| 1089 | |||
| 1090 | When there is more than one main thread and the threads buffer is | ||
| 1091 | present, Emacs displays the selected thread number in the mode line of | ||
| 1092 | many of the GDB-UI Buffers. | ||
| 1093 | |||
| 1094 | @item Memory Buffer | 1165 | @item Memory Buffer |
| 1095 | The memory buffer lets you examine sections of program memory | 1166 | The memory buffer lets you examine sections of program memory |
| 1096 | (@pxref{Memory, Memory, Examining memory, gdb, The GNU debugger}). | 1167 | (@pxref{Memory, Memory, Examining memory, gdb, The GNU debugger}). |
| @@ -1103,8 +1174,9 @@ size for these data items. | |||
| 1103 | 1174 | ||
| 1104 | When @code{gdb-many-windows} is non-@code{nil}, the threads buffer | 1175 | When @code{gdb-many-windows} is non-@code{nil}, the threads buffer |
| 1105 | shares its window with the breakpoints buffer, and the locals buffer | 1176 | shares its window with the breakpoints buffer, and the locals buffer |
| 1106 | with the registers buffer. To switch from one to the other click with | 1177 | with the registers buffer. To switch from one to the other click with |
| 1107 | @kbd{Mouse-1} on the relevant button in the header line. | 1178 | @kbd{Mouse-1} on the relevant button in the header line or press |
| 1179 | @kbd{TAB} inside the buffer. | ||
| 1108 | 1180 | ||
| 1109 | @node Watch Expressions | 1181 | @node Watch Expressions |
| 1110 | @subsubsection Watch Expressions | 1182 | @subsubsection Watch Expressions |
| @@ -1172,26 +1244,96 @@ expressions updates, set @code{gdb-speedbar-auto-raise} to | |||
| 1172 | non-@code{nil}. This can be useful if you are debugging with a full | 1244 | non-@code{nil}. This can be useful if you are debugging with a full |
| 1173 | screen Emacs frame. | 1245 | screen Emacs frame. |
| 1174 | 1246 | ||
| 1175 | @node Reverse Debugging | 1247 | @node Multithreaded Debugging |
| 1176 | @subsubsection Reverse Debugging | 1248 | @subsubsection Stopping and Starting Multi-threaded Programs |
| 1177 | 1249 | @cindex Multithreaded debugging in GDB | |
| 1178 | The GDB tool bar shares many buttons with the other GUD debuggers | 1250 | |
| 1179 | for tasks like stepping and printing expressions. It also has a | 1251 | @subsubheading All-stop Debugging |
| 1180 | further set of buttons that allow reverse debugging (@pxref{Process | 1252 | |
| 1181 | Record and Replay, , ,gdb, The GNU debugger}). This is useful when it | 1253 | In all-stop mode, whenever your program stops, @emph{all} threads of |
| 1182 | takes a long time to reproduce the conditions where your program fails | 1254 | execution stop. Likewise, whenever you restart the program, all |
| 1183 | or for transient problems, like race conditions in multi-threaded | 1255 | threads start executing. @xref{All-Stop Mode, , All-Stop Mode, gdb, |
| 1184 | programs, where a failure might otherwise be hard to reproduce. | 1256 | The GNU debugger}. You can enable this behaviour in Emacs by setting |
| 1185 | 1257 | @code{gdb-non-stop-setting} to @code{nil} before starting a debugging | |
| 1186 | To use reverse debugging, set a breakpoint slightly before the | 1258 | session. |
| 1187 | location of interest and run your program to that point. Enable | 1259 | |
| 1188 | process recording by clicking on the record button. At this point, a | 1260 | @subsubheading Non-stop Debugging |
| 1189 | new set of buttons appear. These buttons allow program execution in | 1261 | @cindex Non-stop debugging in GDB |
| 1190 | the reverse direction. Run your program over the code where the | 1262 | |
| 1191 | problem occurs, and then use the new set of buttons to retrace your | 1263 | For some multi-threaded targets, GDB supports a further mode of |
| 1192 | steps, examine values, and analyze the problem. When analysis is | 1264 | operation in which you can examine stopped program threads in the |
| 1193 | complete, turn off process recording by clicking on the record button | 1265 | debugger while other threads continue to execute freely. |
| 1194 | again. | 1266 | @xref{Non-Stop Mode, , Non-Stop Mode, gdb, The GNU debugger}. |
| 1267 | This is referred to as @dfn{non-stop} mode. | ||
| 1268 | |||
| 1269 | Versions of GDB prior to 7.0 do not support non-stop mode and it does | ||
| 1270 | not work on all targets. In such cases, Emacs uses all-stop mode | ||
| 1271 | regardless of the value of @code{gdb-non-stop-setting}. | ||
| 1272 | |||
| 1273 | @vindex gdb-non-stop-setting | ||
| 1274 | If the variable @code{gdb-non-stop-setting} is non-@code{nil} (the | ||
| 1275 | default value), Emacs tries to start GDB in non-stop mode. Note that | ||
| 1276 | GDB debugging session needs to be restarted for change of this setting | ||
| 1277 | to take effect. | ||
| 1278 | |||
| 1279 | @vindex gdb-switch-when-another-stopped | ||
| 1280 | When a thread stops in non-stop mode, Emacs automatically switches to | ||
| 1281 | that thread. It may be undesirable to allow switching of current | ||
| 1282 | thread when some other stopped thread is already selected. Set | ||
| 1283 | @code{gdb-switch-when-another-stopped} to @code{nil} to prevent this. | ||
| 1284 | |||
| 1285 | @vindex gdb-switch-reasons | ||
| 1286 | Emacs can decide whether or not to switch to the stopped thread | ||
| 1287 | depending on the reason which caused the stop. Customize | ||
| 1288 | @code{gdb-switch-reasons} to select stop reasons which make Emacs | ||
| 1289 | switch thread. | ||
| 1290 | |||
| 1291 | @vindex gdb-stopped-hooks | ||
| 1292 | The variable @code{gdb-stopped-hooks} allows you to execute your | ||
| 1293 | functions whenever some thread stops. | ||
| 1294 | |||
| 1295 | In non-stop mode, you can switch between different modes for GUD | ||
| 1296 | execution control commands. | ||
| 1297 | |||
| 1298 | @vindex gdb-gud-control-all-threads | ||
| 1299 | @table @dfn | ||
| 1300 | @item Non-stop/A | ||
| 1301 | |||
| 1302 | When @code{gdb-gud-control-all-threads} is @code{t} (the default | ||
| 1303 | value), interruption and continuation commands apply to all threads, | ||
| 1304 | so you can halt or continue all your threads with one command using | ||
| 1305 | @code{gud-stop-subjob} and @code{gud-cont}, respectively. The | ||
| 1306 | @samp{Go} button is shown on the toolbar when at least one thread is | ||
| 1307 | stopped, whereas @samp{Stop} button is shown when at least one thread | ||
| 1308 | is running. | ||
| 1309 | |||
| 1310 | @item Non-stop/T | ||
| 1311 | |||
| 1312 | When @code{gdb-gud-control-all-threads} is @code{nil}, only the | ||
| 1313 | current thread is stopped/continued. @samp{Go} and @samp{Stop} | ||
| 1314 | buttons on the GUD toolbar are shown depending on the state of current | ||
| 1315 | thread. | ||
| 1316 | @end table | ||
| 1317 | |||
| 1318 | You can change the current value of @code{gdb-gud-control-all-threads} | ||
| 1319 | from the tool bar or from @samp{GUD->GDB-MI} menu. | ||
| 1320 | |||
| 1321 | Stepping commands always apply to the current thread. | ||
| 1322 | |||
| 1323 | @subsubheading Fine Thread Control | ||
| 1324 | |||
| 1325 | In non-stop mode, you can interrupt/continue your threads without | ||
| 1326 | selecting them. Hitting @kbd{i} in threads buffer interrupts thread | ||
| 1327 | under point, @kbd{c} continues it, @kbd{s} steps through. More such | ||
| 1328 | commands may be added in the future. | ||
| 1329 | |||
| 1330 | Combined with creating bound buffers for any thread, this allows you | ||
| 1331 | to change and track state of many threads in the same time. | ||
| 1332 | |||
| 1333 | Note that when you interrupt a thread, it stops with @samp{signal | ||
| 1334 | received} reason. If that reason is included in your | ||
| 1335 | @code{gdb-switch-reasons} (it is by default), Emacs will switch to | ||
| 1336 | that thread. | ||
| 1195 | 1337 | ||
| 1196 | @node Executing Lisp | 1338 | @node Executing Lisp |
| 1197 | @section Executing Lisp Expressions | 1339 | @section Executing Lisp Expressions |
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi index 37d483d3f9d..0dd01f2b0c0 100644 --- a/doc/emacs/mini.texi +++ b/doc/emacs/mini.texi | |||
| @@ -456,12 +456,13 @@ default value is @code{nil}). | |||
| 456 | using the variable @code{completion-styles}. Its value should be a | 456 | using the variable @code{completion-styles}. Its value should be a |
| 457 | list of symbols, each representing a @dfn{completion style}; valid | 457 | list of symbols, each representing a @dfn{completion style}; valid |
| 458 | style symbols are @code{basic}, @code{partial-completion}, | 458 | style symbols are @code{basic}, @code{partial-completion}, |
| 459 | @code{emacs22}, and @code{emacs21}. When completing, Emacs attempts | 459 | @code{emacs22}, @code{emacs21}, and @code{initials}. When completing, |
| 460 | to use the first completion style in the list; if this does not return | 460 | Emacs attempts to use the first completion style in the list; if this |
| 461 | any completion alternatives, it tries the next completion style in the | 461 | does not return any completion alternatives, it tries the next |
| 462 | list, and so on. The completion rules described in @ref{Completion | 462 | completion style in the list, and so on. The completion rules |
| 463 | Commands} correspond to the default value of @code{completion-styles}, | 463 | described in @ref{Completion Commands} correspond to the default value |
| 464 | which is @code{(basic partial-completion emacs22)}. | 464 | of @code{completion-styles}, which is @code{(basic partial-completion |
| 465 | emacs22)}. | ||
| 465 | 466 | ||
| 466 | @cindex Icomplete mode | 467 | @cindex Icomplete mode |
| 467 | @findex icomplete-mode | 468 | @findex icomplete-mode |
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index 616ed0051d5..112af066fe8 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi | |||
| @@ -485,6 +485,9 @@ Run the shell command line @var{cmd} and display the output | |||
| 485 | Run the shell command line @var{cmd} with region contents as input; | 485 | Run the shell command line @var{cmd} with region contents as input; |
| 486 | optionally replace the region with the output | 486 | optionally replace the region with the output |
| 487 | (@code{shell-command-on-region}). | 487 | (@code{shell-command-on-region}). |
| 488 | @item M-& @var{cmd} @key{RET} | ||
| 489 | Run the shell command line @var{cmd} asynchronously, and display the | ||
| 490 | output (@code{async-shell-command}). | ||
| 488 | @item M-x shell | 491 | @item M-x shell |
| 489 | Run a subshell with input and output through an Emacs buffer. | 492 | Run a subshell with input and output through an Emacs buffer. |
| 490 | You can then give commands interactively. | 493 | You can then give commands interactively. |
| @@ -542,6 +545,11 @@ command's exit status (0 means success), when it is called from a Lisp | |||
| 542 | program. You do not get any status information for an asynchronous | 545 | program. You do not get any status information for an asynchronous |
| 543 | command, since it hasn't finished yet when @code{shell-command} returns. | 546 | command, since it hasn't finished yet when @code{shell-command} returns. |
| 544 | 547 | ||
| 548 | You can also type @kbd{M-&} (@code{async-shell-command}) to execute | ||
| 549 | a shell command asynchronously. This behaves exactly like calling | ||
| 550 | @code{shell-command} with @samp{&}, except that you do not need to add | ||
| 551 | the @samp{&} to the shell command line. | ||
| 552 | |||
| 545 | @kindex M-| | 553 | @kindex M-| |
| 546 | @findex shell-command-on-region | 554 | @findex shell-command-on-region |
| 547 | @kbd{M-|} (@code{shell-command-on-region}) is like @kbd{M-!} but | 555 | @kbd{M-|} (@code{shell-command-on-region}) is like @kbd{M-!} but |
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 36848e395d2..8e88e5026e8 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2009-12-29 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * minibuf.texi (Completion Styles): Document `initials' style. | ||
| 4 | |||
| 1 | 2009-12-25 Chong Yidong <cyd@stupidchicken.com> | 5 | 2009-12-25 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 6 | ||
| 3 | * frames.texi (Resources): Describe inhibit-x-resources. | 7 | * frames.texi (Resources): Describe inhibit-x-resources. |
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi index 28dc9e8ba3d..4ded2749986 100644 --- a/doc/lispref/minibuf.texi +++ b/doc/lispref/minibuf.texi | |||
| @@ -1589,13 +1589,13 @@ procedure is used for listing completions, via the | |||
| 1589 | @var{all-completions} functions. | 1589 | @var{all-completions} functions. |
| 1590 | @end defvar | 1590 | @end defvar |
| 1591 | 1591 | ||
| 1592 | By default, @code{completion-styles-alist} contains four pre-defined | 1592 | By default, @code{completion-styles-alist} contains five pre-defined |
| 1593 | completion styles: @code{basic}, a basic completion style; | 1593 | completion styles: @code{basic}, a basic completion style; |
| 1594 | @code{partial-completion}, which does partial completion (completing | 1594 | @code{partial-completion}, which does partial completion (completing |
| 1595 | each word in the input separately); @code{emacs22}, which performs | 1595 | each word in the input separately); @code{emacs22}, which performs |
| 1596 | completion according to the rules used in Emacs 22; and | 1596 | completion according to the rules used in Emacs 22; @code{emacs21}, |
| 1597 | @code{emacs21}, which performs completion according to the rules used | 1597 | which performs completion according to the rules used in Emacs 21; and |
| 1598 | in Emacs 21. | 1598 | @code{initials}, which completes acronyms and initialisms. |
| 1599 | 1599 | ||
| 1600 | @node Programmed Completion | 1600 | @node Programmed Completion |
| 1601 | @subsection Programmed Completion | 1601 | @subsection Programmed Completion |
| @@ -26,27 +26,27 @@ so we will look at it and add it to the manual. | |||
| 26 | 26 | ||
| 27 | ** New configure options for Emacs developers | 27 | ** New configure options for Emacs developers |
| 28 | These are not new features; only the configure flags are new. | 28 | These are not new features; only the configure flags are new. |
| 29 | 29 | --- | |
| 30 | *** --enable-profiling builds Emacs with profiling enabled. | 30 | *** --enable-profiling builds Emacs with profiling enabled. |
| 31 | This might not work on all platforms. | 31 | This might not work on all platforms. |
| 32 | 32 | --- | |
| 33 | *** --enable-checking[=OPTIONS] builds emacs with extra runtime checks. | 33 | *** --enable-checking[=OPTIONS] builds emacs with extra runtime checks. |
| 34 | 34 | ||
| 35 | --- | 35 | --- |
| 36 | ** `make install' now consistently ignores umask, creating a | 36 | ** `make install' now consistently ignores umask, creating a |
| 37 | world-readable install. | 37 | world-readable install. |
| 38 | 38 | ||
| 39 | ** Emacs compiles with Gconf support by default, if it is detected. | 39 | ** Emacs compiles with Gconf support, if it is detected. |
| 40 | Use the configure option --without-gconf to disable this. | 40 | Use the configure option --without-gconf to disable this. |
| 41 | 41 | ||
| 42 | * Startup Changes in Emacs 23.2 | 42 | * Startup Changes in Emacs 23.2 |
| 43 | 43 | +++ | |
| 44 | ** The command-line option -Q (--quick) also inhibits loading X resources. | 44 | ** The command-line option -Q (--quick) also inhibits loading X resources. |
| 45 | However, if Emacs is compiled with the Lucid or Motif toolkit, X | 45 | However, if Emacs is compiled with the Lucid or Motif toolkit, X |
| 46 | resource settings for the graphical widgets are still applied. | 46 | resource settings for the graphical widgets are still applied. |
| 47 | On Windows, the -Q option causes Emacs to ignore Registry settings, | 47 | On Windows, the -Q option causes Emacs to ignore Registry settings, |
| 48 | but environment variables set on the Registry are still honored. | 48 | but environment variables set on the Registry are still honored. |
| 49 | 49 | +++ | |
| 50 | *** The new variable `inhibit-x-resources' shows whether X resources | 50 | *** The new variable `inhibit-x-resources' shows whether X resources |
| 51 | were loaded. | 51 | were loaded. |
| 52 | 52 | ||
| @@ -55,9 +55,11 @@ were loaded. | |||
| 55 | 55 | ||
| 56 | * Changes in Emacs 23.2 | 56 | * Changes in Emacs 23.2 |
| 57 | 57 | ||
| 58 | +++ | ||
| 58 | ** The maximum size of buffers (and the largest fixnum) is doubled. | 59 | ** The maximum size of buffers (and the largest fixnum) is doubled. |
| 59 | On typical 32bit systems, buffers can now be up to 512MB. | 60 | On typical 32bit systems, buffers can now be up to 512MB. |
| 60 | 61 | ||
| 62 | --- | ||
| 61 | ** The default value of `trash-directory' is now nil. | 63 | ** The default value of `trash-directory' is now nil. |
| 62 | This means that `move-file-to-trash' trashes files according to | 64 | This means that `move-file-to-trash' trashes files according to |
| 63 | freedesktop.org specifications, the same method used by the Gnome, | 65 | freedesktop.org specifications, the same method used by the Gnome, |
| @@ -80,13 +82,14 @@ disable this with the configure option --without-gconf). | |||
| 80 | via the XSETTINGS mechanism. This includes antialias, hinting, | 82 | via the XSETTINGS mechanism. This includes antialias, hinting, |
| 81 | hintstyle, RGBA, DPI and lcdfilter changes. | 83 | hintstyle, RGBA, DPI and lcdfilter changes. |
| 82 | 84 | ||
| 85 | +++ | ||
| 83 | ** Killing a buffer with a running process now asks for confirmation. | 86 | ** Killing a buffer with a running process now asks for confirmation. |
| 84 | To remove this query, remove `process-kill-buffer-query-function' from | 87 | To remove this query, remove `process-kill-buffer-query-function' from |
| 85 | `kill-buffer-query-functions', or set the appropriate process flag | 88 | `kill-buffer-query-functions', or set the appropriate process flag |
| 86 | with `set-process-query-on-exit-flag'. | 89 | with `set-process-query-on-exit-flag'. |
| 87 | 90 | ||
| 88 | ** File-local variable changes | 91 | ** File-local variable changes |
| 89 | 92 | +++ | |
| 90 | *** Specifying a minor mode as a local variables enables that mode, | 93 | *** Specifying a minor mode as a local variables enables that mode, |
| 91 | unconditionally. The previous behavior, toggling the mode, was | 94 | unconditionally. The previous behavior, toggling the mode, was |
| 92 | neither reliable nor generally desirable. | 95 | neither reliable nor generally desirable. |
| @@ -104,17 +107,18 @@ and copying them to and from file-local variable lists: | |||
| 104 | `copy-file-locals-to-dir-locals'. | 107 | `copy-file-locals-to-dir-locals'. |
| 105 | 108 | ||
| 106 | ** Internationalization changes | 109 | ** Internationalization changes |
| 107 | 110 | +++ | |
| 108 | *** Unibyte sessions are now considered obsolete. | 111 | *** Unibyte sessions are now considered obsolete. |
| 109 | This refers to the EMACS_UNIBYTE environment variable as well as the | 112 | This refers to the EMACS_UNIBYTE environment variable as well as the |
| 110 | --unibyte, --multibyte, --no-multibyte, and --no-unibyte command line | 113 | --unibyte, --multibyte, --no-multibyte, and --no-unibyte command line |
| 111 | arguments. Customizing enable-multibyte-characters and setting | 114 | arguments. Customizing enable-multibyte-characters and setting |
| 112 | default-enable-multibyte-characters are also deprecated. | 115 | default-enable-multibyte-characters are also deprecated. |
| 113 | 116 | --- | |
| 114 | *** New coding system `utf-8-hfs'. | 117 | *** New coding system `utf-8-hfs'. |
| 115 | This is suitable for default-file-name-coding-system on Mac OS X; see | 118 | This is suitable for default-file-name-coding-system on Mac OS X; see |
| 116 | international/ucs-normalize.el. | 119 | international/ucs-normalize.el. |
| 117 | 120 | ||
| 121 | --- | ||
| 118 | ** Function arguments in *Help* buffers are now shown in upper-case. | 122 | ** Function arguments in *Help* buffers are now shown in upper-case. |
| 119 | Customize `help-downcase-arguments' to t to show them in lower-case. | 123 | Customize `help-downcase-arguments' to t to show them in lower-case. |
| 120 | 124 | ||
| @@ -127,11 +131,11 @@ Customize `help-downcase-arguments' to t to show them in lower-case. | |||
| 127 | becomes the primary selection (for interaction with other window | 131 | becomes the primary selection (for interaction with other window |
| 128 | applications). If you enable this, you might want to bind | 132 | applications). If you enable this, you might want to bind |
| 129 | `mouse-yank-primary' to Mouse-2. | 133 | `mouse-yank-primary' to Mouse-2. |
| 130 | 134 | +++ | |
| 131 | *** When `save-interprogram-paste-before-kill' is non-nil, the kill | 135 | *** When `save-interprogram-paste-before-kill' is non-nil, the kill |
| 132 | commands save the interprogram-paste selection into the kill ring | 136 | commands save the interprogram-paste selection into the kill ring |
| 133 | before doing anything else. This avoids losing the selection. | 137 | before doing anything else. This avoids losing the selection. |
| 134 | 138 | +++ | |
| 135 | *** When `kill-do-not-save-duplicates' is non-nil, identical | 139 | *** When `kill-do-not-save-duplicates' is non-nil, identical |
| 136 | subsequent kills are not duplicated in the `kill-ring'. | 140 | subsequent kills are not duplicated in the `kill-ring'. |
| 137 | 141 | ||
| @@ -140,7 +144,7 @@ subsequent kills are not duplicated in the `kill-ring'. | |||
| 140 | *** The new command `completion-at-point' provides mode-sensitive completion. | 144 | *** The new command `completion-at-point' provides mode-sensitive completion. |
| 141 | 145 | ||
| 142 | *** tab-always-indent set to `complete' lets TAB do completion as well. | 146 | *** tab-always-indent set to `complete' lets TAB do completion as well. |
| 143 | 147 | +++ | |
| 144 | *** The new completion-style `initials' is available. | 148 | *** The new completion-style `initials' is available. |
| 145 | For instance, this can complete M-x lch to list-command-history. | 149 | For instance, this can complete M-x lch to list-command-history. |
| 146 | 150 | ||
| @@ -151,6 +155,7 @@ are displayed in the *Completions* buffer. If you set it to | |||
| 151 | +++ | 155 | +++ |
| 152 | ** The default value of `blink-matching-paren-distance' is increased. | 156 | ** The default value of `blink-matching-paren-distance' is increased. |
| 153 | 157 | ||
| 158 | --- | ||
| 154 | ** M-n provides more default values in the minibuffer for commands | 159 | ** M-n provides more default values in the minibuffer for commands |
| 155 | that read file names. These include the file name at point (when ffap | 160 | that read file names. These include the file name at point (when ffap |
| 156 | is loaded without ffap-bindings), the file name on the current line | 161 | is loaded without ffap-bindings), the file name on the current line |
| @@ -158,14 +163,20 @@ is loaded without ffap-bindings), the file name on the current line | |||
| 158 | (for Dired commands that operate on several directories, such as copy, | 163 | (for Dired commands that operate on several directories, such as copy, |
| 159 | rename, or diff). | 164 | rename, or diff). |
| 160 | 165 | ||
| 166 | +++ | ||
| 161 | ** M-r is bound to the new `move-to-window-line-top-bottom'. | 167 | ** M-r is bound to the new `move-to-window-line-top-bottom'. |
| 162 | This moves point to the window center, top and bottom on successive | 168 | This moves point to the window center, top and bottom on successive |
| 163 | invocations, in the same spirit as the C-l (recenter-top-bottom) | 169 | invocations, in the same spirit as the C-l (recenter-top-bottom) |
| 164 | command. | 170 | command. |
| 165 | 171 | ||
| 172 | +++ | ||
| 166 | ** The new variable `recenter-positions' determines the default | 173 | ** The new variable `recenter-positions' determines the default |
| 167 | cycling order of C-l (`recenter-top-bottom'). | 174 | cycling order of C-l (`recenter-top-bottom'). |
| 168 | 175 | ||
| 176 | +++ | ||
| 177 | ** The abbrevs file is now a file named abbrev_defs in | ||
| 178 | user-emacs-directory; but the old location, ~/.abbrev_defs, is used if | ||
| 179 | that file exists. | ||
| 169 | 180 | ||
| 170 | * Changes in Specialized Modes and Packages in Emacs 23.2 | 181 | * Changes in Specialized Modes and Packages in Emacs 23.2 |
| 171 | 182 | ||
| @@ -180,11 +191,15 @@ cycling order of C-l (`recenter-top-bottom'). | |||
| 180 | ** pcomplete provides a new command `pcomplete-std-completion' which | 191 | ** pcomplete provides a new command `pcomplete-std-completion' which |
| 181 | is similar to `pcomplete' but using the standard completion UI code. | 192 | is similar to `pcomplete' but using the standard completion UI code. |
| 182 | 193 | ||
| 183 | ** .calc.el and .abbrev_defs obey user-emacs-directory. | 194 | ** Calc |
| 195 | +++ | ||
| 196 | *** The Calc settings file is now a file named calc.el in | ||
| 197 | user-emacs-directory; but the old location, ~/.calc.el, is used if | ||
| 198 | that file exists. | ||
| 184 | 199 | ||
| 185 | ** Calc graphing commands (`g f' etc.) now work on MS-Windows, | 200 | --- |
| 186 | if you have the native Windows port of Gnuplot version 3.8 or later | 201 | *** Graphing commands (`g f' etc.) now work on MS-Windows, if you have |
| 187 | installed. | 202 | the native Windows port of Gnuplot version 3.8 or later installed. |
| 188 | 203 | ||
| 189 | ** Calendar and diary | 204 | ** Calendar and diary |
| 190 | 205 | ||
| @@ -224,8 +239,8 @@ on the page edge advances to the next/previous page. | |||
| 224 | watch expressions. These features require GDB 7.0 or later. | 239 | watch expressions. These features require GDB 7.0 or later. |
| 225 | 240 | ||
| 226 | ** Grep | 241 | ** Grep |
| 227 | 242 | +++ | |
| 228 | A new command `zrgrep' searches recursively in gzipped files. | 243 | *** A new command `zrgrep' searches recursively in gzipped files. |
| 229 | 244 | ||
| 230 | ** Info | 245 | ** Info |
| 231 | 246 | ||
| @@ -366,6 +381,7 @@ and let commands run under that user permissions. It works even when | |||
| 366 | `default-directory' is already remote. Calling the external commands | 381 | `default-directory' is already remote. Calling the external commands |
| 367 | is possible by `*su' or `*sudo', repectively. | 382 | is possible by `*su' or `*sudo', repectively. |
| 368 | 383 | ||
| 384 | --- | ||
| 369 | *** When running in a new enough xterm (newer than version 242), emacs | 385 | *** When running in a new enough xterm (newer than version 242), emacs |
| 370 | asks xterm what the background color is and it sets up faces | 386 | asks xterm what the background color is and it sets up faces |
| 371 | accordingly for a dark background if needed (the current default is to | 387 | accordingly for a dark background if needed (the current default is to |
| @@ -442,8 +458,10 @@ mode from `auto-mode-alist' (or Fundamental mode) and `image-minor-mode'. | |||
| 442 | ** New function `completion-in-region' to use the standard completion | 458 | ** New function `completion-in-region' to use the standard completion |
| 443 | facilities on a particular region of text. | 459 | facilities on a particular region of text. |
| 444 | 460 | ||
| 461 | +++ | ||
| 445 | ** The 4th arg to all-completions (aka hide-spaces) is declared obsolete. | 462 | ** The 4th arg to all-completions (aka hide-spaces) is declared obsolete. |
| 446 | 463 | ||
| 464 | --- | ||
| 447 | ** read-file-name-predicate is obsolete. It was used to pass the predicate | 465 | ** read-file-name-predicate is obsolete. It was used to pass the predicate |
| 448 | to read-file-name-internal because read-file-name-internal abused its `pred' | 466 | to read-file-name-internal because read-file-name-internal abused its `pred' |
| 449 | argument to pass the current directory, but this hack is not needed | 467 | argument to pass the current directory, but this hack is not needed |
| @@ -451,6 +469,7 @@ any more. | |||
| 451 | 469 | ||
| 452 | ** Frame parameter changes | 470 | ** Frame parameter changes |
| 453 | 471 | ||
| 472 | +++ | ||
| 454 | *** You can give the `fullscreen' frame parameter the value `maximized'. | 473 | *** You can give the `fullscreen' frame parameter the value `maximized'. |
| 455 | This maximizes the frame. | 474 | This maximizes the frame. |
| 456 | 475 | ||
| @@ -458,6 +477,7 @@ This maximizes the frame. | |||
| 458 | *** The new frame parameter `sticky' makes Emacs frames sticky in | 477 | *** The new frame parameter `sticky' makes Emacs frames sticky in |
| 459 | virtual desktops. | 478 | virtual desktops. |
| 460 | 479 | ||
| 480 | --- | ||
| 461 | ** completion-base-size is obsoleted by completion-base-position. | 481 | ** completion-base-size is obsoleted by completion-base-position. |
| 462 | This change causes a few backward incompatibilities, mostly with | 482 | This change causes a few backward incompatibilities, mostly with |
| 463 | choose-completion-string-functions where the `mini-p' argument has | 483 | choose-completion-string-functions where the `mini-p' argument has |
| @@ -491,11 +511,12 @@ now only take a single `command' argument. | |||
| 491 | a `process-file' call does not change a remote file. By this, file | 511 | a `process-file' call does not change a remote file. By this, file |
| 492 | name handlers like Tramp can apply optimizations. | 512 | name handlers like Tramp can apply optimizations. |
| 493 | 513 | ||
| 514 | +++ | ||
| 494 | ** Hash tables have a new printed representation that is readable. | 515 | ** Hash tables have a new printed representation that is readable. |
| 495 | The feature `hashtable-print-readable' identifies this new | 516 | The feature `hashtable-print-readable' identifies this new |
| 496 | functionality. | 517 | functionality. |
| 497 | 518 | ||
| 498 | ** Functions performing Unicode normalization are added. They are: | 519 | ** New functions performing Unicode normalization are added: |
| 499 | ucs-normalize-NFD-region, ucs-normalize-NFD-string, | 520 | ucs-normalize-NFD-region, ucs-normalize-NFD-string, |
| 500 | ucs-normalize-NFC-region, ucs-normalize-NFC-string, | 521 | ucs-normalize-NFC-region, ucs-normalize-NFC-string, |
| 501 | ucs-normalize-NFKD-region, ucs-normalize-NFKD-string, | 522 | ucs-normalize-NFKD-region, ucs-normalize-NFKD-string, |