diff options
| author | Richard M. Stallman | 1994-03-16 18:30:13 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1994-03-16 18:30:13 +0000 |
| commit | 0a9482c502b4b1ddd50fc801099892f48782b67f (patch) | |
| tree | 20419a9ff5d3cf14121de34d34ee8c368e74b3e6 | |
| parent | 7dbba89afa308d5132db412a7b5ae721d189e8f4 (diff) | |
| download | emacs-0a9482c502b4b1ddd50fc801099892f48782b67f.tar.gz emacs-0a9482c502b4b1ddd50fc801099892f48782b67f.zip | |
Initial revision
| -rw-r--r-- | lispref/anti.texi | 582 |
1 files changed, 582 insertions, 0 deletions
diff --git a/lispref/anti.texi b/lispref/anti.texi new file mode 100644 index 00000000000..c42982ce8fb --- /dev/null +++ b/lispref/anti.texi | |||
| @@ -0,0 +1,582 @@ | |||
| 1 | @c -*-texinfo-*- | ||
| 2 | @c This is part of the GNU Emacs Lisp Reference Manual. | ||
| 3 | @c Copyright (C) 1993 Free Software Foundation, Inc. | ||
| 4 | @c See the file elisp.texi for copying conditions. | ||
| 5 | @node Antinews, Index, Standard Hooks, Top | ||
| 6 | @appendix Emacs 18 Antinews | ||
| 7 | |||
| 8 | For those users who live backwards in time, here is information about | ||
| 9 | downgrading to Emacs version 18. We hope you will enjoy the greater | ||
| 10 | simplicity that results from the absence of many Emacs 19 features. | ||
| 11 | |||
| 12 | @section Old Features in the Lisp Language | ||
| 13 | |||
| 14 | The following functions are missing or different in Emacs version 18. | ||
| 15 | |||
| 16 | @itemize @bullet | ||
| 17 | @item | ||
| 18 | The functions @code{delete}, @code{member}, @code{indirect-function}, | ||
| 19 | @code{map-y-or-n-p}, and @code{invocation-name} have been removed. | ||
| 20 | |||
| 21 | @item | ||
| 22 | The function @code{read} now skips a terminator character that | ||
| 23 | terminates a symbol when reading from a buffer. Thus, if you use | ||
| 24 | @code{read} on a buffer containing @samp{foo(bar)} following point, it | ||
| 25 | returns @code{foo} and leaves point after the open-parenthesis. This | ||
| 26 | means there's no way you can properly read the list @samp{(bar)}, but | ||
| 27 | that's the way the cookie crumbles. | ||
| 28 | |||
| 29 | Because of this simplification, it's no longer necessary for an input | ||
| 30 | stream function to accept an optional argument. In Emacs 18, an input | ||
| 31 | stream is always called with no arguments, and should always return | ||
| 32 | the next character of input. | ||
| 33 | |||
| 34 | @item | ||
| 35 | The function @code{documentation} takes just one argument; | ||
| 36 | @code{documentation-property} takes just two. | ||
| 37 | |||
| 38 | @item | ||
| 39 | @code{random} no longer has the optional argument @var{n}. | ||
| 40 | |||
| 41 | @item | ||
| 42 | You can no longer arrange to run a hook if a particular Lisp library is | ||
| 43 | loaded. The variable @code{after-load-alist} and the function | ||
| 44 | @code{eval-after-load} have been removed. | ||
| 45 | |||
| 46 | @item | ||
| 47 | The function @code{autoload} no longer supports autoloading a keymap. | ||
| 48 | |||
| 49 | @item | ||
| 50 | ``Magic'' comments of the form @samp{;;;###autoload} are now just | ||
| 51 | comments. They don't do anything in particular except look pretty. | ||
| 52 | If you want a function to be autoloaded by default, edit @file{loaddefs.h} | ||
| 53 | by hand. What do you think editors are for? | ||
| 54 | |||
| 55 | @item | ||
| 56 | We took out the @samp{%S} from the @code{format} function, and the | ||
| 57 | optional argument @var{noescap} from @code{prin1-to-string}. We removed | ||
| 58 | the @code{print-level} variable. | ||
| 59 | @end itemize | ||
| 60 | |||
| 61 | @section Compilation Features | ||
| 62 | |||
| 63 | @itemize @bullet | ||
| 64 | @item | ||
| 65 | Inline functions are nonexistent in Emacs 18. We find they make the | ||
| 66 | calling function unnecessarily large. (Small size is one of the | ||
| 67 | features of Emacs 18.) | ||
| 68 | |||
| 69 | @item | ||
| 70 | We eliminated the two special forms, @code{eval-when-compile} and | ||
| 71 | @code{eval-and-compile}, as well as the @code{compile-defun} command. | ||
| 72 | |||
| 73 | @item | ||
| 74 | When you load a Lisp file or library, you will no longer receive a | ||
| 75 | warning if the directory contains both a @samp{.elc} file and a new | ||
| 76 | @samp{.el} file that is newer. So be on your toes. | ||
| 77 | |||
| 78 | @item | ||
| 79 | We removed the special data type for byte-code functions. Compiled | ||
| 80 | functions now work by means of an interpreted function which calls | ||
| 81 | the function @code{bytecode}. That function runs the byte code | ||
| 82 | interpreter. | ||
| 83 | @end itemize | ||
| 84 | |||
| 85 | @section Floating Point Numbers | ||
| 86 | |||
| 87 | Emacs 18 doesn't have or need floating point arithmetic built in. | ||
| 88 | It has a handy Lisp program that allows you to emulate floating point. | ||
| 89 | You'll have to write programs specially to use it, though. | ||
| 90 | |||
| 91 | As a result, certain macros, functions, and predicates no longer handle | ||
| 92 | specifications for floating point numbers. | ||
| 93 | |||
| 94 | The function @code{string-to-number}, the predicate @code{floatp}, and | ||
| 95 | the variable @code{float-output-format} have all been eliminated. | ||
| 96 | |||
| 97 | The functions @code{float}, @code{truncate}, @code{floor}, @code{ceil}, | ||
| 98 | @code{round}, and @code{logb} do not exist; neither do the functions | ||
| 99 | @code{abs}, @code{cos}, @code{sin}, @code{tan}, @code{acos}, | ||
| 100 | @code{asin}, @code{atan}, @code{exp}, @code{expt}, @code{log10}, | ||
| 101 | @code{log}, or @code{sqrt}. | ||
| 102 | |||
| 103 | The @code{format} function no longer handles the specifications | ||
| 104 | @samp{%e}, @samp{%f} and @samp{%g} for printing floating point numbers; | ||
| 105 | likewise for @code{message}. | ||
| 106 | |||
| 107 | @section Changes in Basic Editing Functions | ||
| 108 | |||
| 109 | @itemize @bullet | ||
| 110 | @item | ||
| 111 | @code{kill-new} and @code{kill-append}, the primitives for putting text | ||
| 112 | in the kill ring, have been eliminated. | ||
| 113 | @c @code{kill-append} seems to exist as a non-documented (no doc string) | ||
| 114 | @c primitive in emacs 18. but news.texi said it was new for 19. | ||
| 115 | |||
| 116 | @item | ||
| 117 | The variables @code{interprogram-paste-function} and | ||
| 118 | @code{interprogram-cut-function} have been removed in Emacs 18. | ||
| 119 | |||
| 120 | In addition, there's no need for @code{mark-active} and | ||
| 121 | @code{deactivate-mark} because there is no Transient Mark mode. We also | ||
| 122 | removed the hooks @code{activate-mark-hook} and | ||
| 123 | @code{deactivate-mark-hook}. | ||
| 124 | |||
| 125 | @item | ||
| 126 | The @code{kill-region} function can no longer be used in read-only | ||
| 127 | buffers. The @code{compare-buffer-substrings} and @code{current-kill} | ||
| 128 | functions have been removed. | ||
| 129 | |||
| 130 | @item | ||
| 131 | The variable @code{overwrite-mode-binary} has been removed. | ||
| 132 | |||
| 133 | @item | ||
| 134 | The function @code{move-to-column} allows just one argument, | ||
| 135 | @var{column}. | ||
| 136 | |||
| 137 | @item | ||
| 138 | The search functions now just return @code{t} when successful. This | ||
| 139 | affects the functions @code{search-forward}, @code{search-backward}, | ||
| 140 | @code{word-search-forward}, @code{word-search-backward}, | ||
| 141 | @code{re-search-forward}, and @code{re-search-backward}. | ||
| 142 | |||
| 143 | @item | ||
| 144 | When you do regular expression searching or matching, there is a fixed | ||
| 145 | limit of ten @samp{\(@dots{}\)} pairs that you can get information about | ||
| 146 | with @code{match-beginning} and @code{match-end}. Moreover, | ||
| 147 | @code{save-match-data} does not exist; you must use an explicit | ||
| 148 | @code{unwind-protect} to save the match data. | ||
| 149 | |||
| 150 | @item | ||
| 151 | @code{translate-region} is gone. | ||
| 152 | |||
| 153 | @item | ||
| 154 | The variables @code{before-change-function}, | ||
| 155 | @code{after-change-function}, and @code{first-change-hook} have been | ||
| 156 | eliminated. | ||
| 157 | |||
| 158 | @item | ||
| 159 | The second argument to @code{insert-abbrev-table-description} is no | ||
| 160 | longer optional. | ||
| 161 | @end itemize | ||
| 162 | |||
| 163 | @section Text Properties | ||
| 164 | |||
| 165 | We eliminated text properties. | ||
| 166 | |||
| 167 | @section Features for Files | ||
| 168 | |||
| 169 | Many file-related functions have been eliminated or simplified. Here is | ||
| 170 | a basic listing of these functions. | ||
| 171 | |||
| 172 | The functions @code{file-accessible-directory-p}, @code{file-truename}, | ||
| 173 | @code{make-directory}, @code{delete-directory}, | ||
| 174 | @code{set-visited-file-modtime}, @code{directory-abbrev-alist}, | ||
| 175 | @code{abbreviate-file-name}, @code{write-region}, | ||
| 176 | @code{write-contents-hooks}, @code{after-save-hook}, | ||
| 177 | @code{set-default-file-modes}, @code{default-file-modes}, and | ||
| 178 | @code{unix-sync} have been eliminated. | ||
| 179 | |||
| 180 | We got rid of the ``initial file name'' argument to | ||
| 181 | @code{read-file-name}. | ||
| 182 | |||
| 183 | Additionally, we removed the 12th element from the list returned by | ||
| 184 | @code{file-attributes}. | ||
| 185 | |||
| 186 | @code{directory-files} always sorts the list of files. It's not user | ||
| 187 | friendly to process the files in any haphazard order. | ||
| 188 | |||
| 189 | We eliminated the variables @code{write-contents-hooks} and | ||
| 190 | @code{local-write-file-hooks}. | ||
| 191 | |||
| 192 | @section Making Certain File Names ``Magic'' | ||
| 193 | |||
| 194 | There are no more magic filenames. Sorry, but all the mana has been | ||
| 195 | used up. | ||
| 196 | |||
| 197 | @section Frames | ||
| 198 | |||
| 199 | There is only one frame in Emacs 18, so all of the frame functions have | ||
| 200 | been eliminated. | ||
| 201 | |||
| 202 | @section X Window System Features | ||
| 203 | |||
| 204 | We have simplified the way Emacs and X interact by removing a great deal | ||
| 205 | of creeping featurism. | ||
| 206 | |||
| 207 | @itemize @bullet | ||
| 208 | @item | ||
| 209 | The functions @code{mouse-position} and @code{set-mouse-position}, and | ||
| 210 | the special form @code{track-mouse} have been eliminated. | ||
| 211 | |||
| 212 | @item | ||
| 213 | Likewise, the functions @code{x-set-selection}, @code{x-set-cut-buffer}, | ||
| 214 | @code{x-close-current-connection}, and @code{x-open-connection} have all | ||
| 215 | been removed from Emacs Lisp 18. | ||
| 216 | |||
| 217 | @item | ||
| 218 | We removed a series of functions that gave information about the X | ||
| 219 | server and the screen you were using; after all, the whole point of X is | ||
| 220 | that all servers are equivalent. The names of the removed functions | ||
| 221 | are: @code{x-display-screens}, @code{x-server-version}, | ||
| 222 | @code{x-server-vendor}, @code{x-display-pixel-height}, | ||
| 223 | @code{x-display-mm-height}, @code{x-display-pixel-width}, | ||
| 224 | @code{x-display-mm-width}, @code{x-display-backing-store}, | ||
| 225 | @code{x-display-save-under}, @code{x-display-planes}, | ||
| 226 | @code{x-display-visual-class}, @code{x-display-color-p}, and | ||
| 227 | @code{x-display-color-cells}. | ||
| 228 | |||
| 229 | Additionally, we removed the variable @code{x-no-window-manager} and the | ||
| 230 | functions @code{x-synchronize} and @code{x-get-resource}. | ||
| 231 | |||
| 232 | We didn't abolish @code{x-display-color-p}, but we renamed it to | ||
| 233 | @code{x-color-display-p}. We did abolish @code{x-color-defined-p}. | ||
| 234 | |||
| 235 | @item | ||
| 236 | @code{x-popup-menu} no longer accepts a keymap for its first argument. | ||
| 237 | |||
| 238 | @item | ||
| 239 | We removed both the function @code{x-rebind-key} and the related | ||
| 240 | function @code{x-rebind-keys}. | ||
| 241 | |||
| 242 | @item | ||
| 243 | We abolished @code{x-parse-geometry}. | ||
| 244 | @end itemize | ||
| 245 | |||
| 246 | @section Window Actions that Were No Longer Useful | ||
| 247 | |||
| 248 | Various behaviors of windows in Emacs 19 were obsolete by the time Emacs | ||
| 249 | 18 was due to come out. We have removed them. These changes are listed | ||
| 250 | below. | ||
| 251 | |||
| 252 | @itemize @bullet | ||
| 253 | @item | ||
| 254 | We removed the functions @code{window-at}, @code{window-minibuffer-p}, | ||
| 255 | @code{set-window-dedicated-p}, @code{coordinates-in-window-p}, | ||
| 256 | @code{walk-windows}, @code{window-dedicated-p}, and @code{window-end}. | ||
| 257 | |||
| 258 | @item | ||
| 259 | We removed the variables @code{pop-up-frames}, | ||
| 260 | @code{pop-up-frame-function}, @code{display-buffer-function}, and | ||
| 261 | @code{other-window-scroll-buffer}. | ||
| 262 | |||
| 263 | @item | ||
| 264 | The function @code{minibuffer-window} no longer accepts a frame as | ||
| 265 | argument, since frames as objects do not exist in Emacs version 18. It | ||
| 266 | returns the window used for minibuffers. | ||
| 267 | |||
| 268 | @item | ||
| 269 | The functions @code{next-window} and @code{previous-window} no longer | ||
| 270 | accept the @var{all-frames} argument since there is just one frame. | ||
| 271 | |||
| 272 | @item | ||
| 273 | The functions @code{get-lru-window}, @code{get-largest-window}, | ||
| 274 | @code{get-buffer-window}, and @code{get-buffer-window} also no longer | ||
| 275 | take the optional argument @var{all-frames} because there is just one | ||
| 276 | frame to search. | ||
| 277 | @end itemize | ||
| 278 | |||
| 279 | @section Display Features | ||
| 280 | |||
| 281 | @itemize @bullet | ||
| 282 | @item | ||
| 283 | There are no overlays, and no faces. | ||
| 284 | |||
| 285 | @item | ||
| 286 | We eliminated the mode line spec @samp{%l} that in later versions used | ||
| 287 | to display the current line number. We removed the variables | ||
| 288 | @code{line-number-mode} and @code{line-number-display-limit}. | ||
| 289 | |||
| 290 | @item | ||
| 291 | @code{baud-rate} is now a function rather than a variable. | ||
| 292 | |||
| 293 | @item | ||
| 294 | You can no longer call @code{message} with @code{nil} as the only | ||
| 295 | argument; therefore, you can not reliably make the contents of the | ||
| 296 | minibuffer visible. | ||
| 297 | |||
| 298 | @item | ||
| 299 | The variable @code{temp-buffer-show-function} has been renamed | ||
| 300 | @code{temp-buffer-show-hook}. | ||
| 301 | |||
| 302 | @item | ||
| 303 | We removed the function @code{force-mode-line-update}. Use | ||
| 304 | the following idiom instead: | ||
| 305 | |||
| 306 | @example | ||
| 307 | (set-buffer-modified-p (buffer-modified-p)) | ||
| 308 | @end example | ||
| 309 | |||
| 310 | @item | ||
| 311 | Display tables no longer exist. We know what the @sc{ASCII} characters | ||
| 312 | should look like, and we made them look that way. | ||
| 313 | @end itemize | ||
| 314 | |||
| 315 | @section Working with Input Events | ||
| 316 | |||
| 317 | The big news about input events is that we got rid of function key | ||
| 318 | and mouse events. Now the only input events are characters. | ||
| 319 | What's more, these characters now have to be in the range of 0 to 127, | ||
| 320 | optionally with a meta bit. This makes for big simplifications. | ||
| 321 | |||
| 322 | @itemize @bullet | ||
| 323 | @item | ||
| 324 | Functions like @code{define-key}, @code{global-set-key}, | ||
| 325 | @code{read-key-sequence}, and @code{local-set-key} used to accept | ||
| 326 | strings or vectors in Emacs 19; now they only accept strings. | ||
| 327 | |||
| 328 | @item | ||
| 329 | The documentation functions (@code{single-key-description}, | ||
| 330 | @code{key-description}, etc.) also no longer accept vectors, but they do | ||
| 331 | accept strings. | ||
| 332 | |||
| 333 | @item | ||
| 334 | We removed the @code{read-event}, @code{event-start}, | ||
| 335 | @code{posn-window}, @code{posn-point}, @code{posn-col-row}, | ||
| 336 | @code{posn-timestamp}, @code{scroll-bar-scale}, and @code{event-end} | ||
| 337 | functions, since they were only useful for non-character events. | ||
| 338 | |||
| 339 | @item | ||
| 340 | We removed the @code{unread-command-events} and @code{last-event-frame} | ||
| 341 | variables. | ||
| 342 | |||
| 343 | @item | ||
| 344 | The functions @code{this-command-keys} and @code{recent-keys} now always | ||
| 345 | return a string. Likewise, a keyboard macro's definition can only be a | ||
| 346 | string, not a vector. | ||
| 347 | |||
| 348 | @item | ||
| 349 | We eliminated @samp{e} as an interactive specification since it | ||
| 350 | was useful only with non-character events. | ||
| 351 | |||
| 352 | @item | ||
| 353 | In Emacs 18, we represent Meta characters as character objects with the | ||
| 354 | same encoding used in strings: 128 plus the corresponding non-Meta | ||
| 355 | @sc{ASCII} character. | ||
| 356 | @end itemize | ||
| 357 | |||
| 358 | @section Menus | ||
| 359 | |||
| 360 | You can no longer define menus as keymaps; good system design requires | ||
| 361 | crafting a special-purpose interface for each facility, so it can | ||
| 362 | precisely fit the requirements of that facility. We decided that | ||
| 363 | unifying keymaps and menus was simply too much of a strain. | ||
| 364 | |||
| 365 | In Emacs 18, you can only activate menus with the mouse. Using them | ||
| 366 | with a keyboard was too confusing for too many users. | ||
| 367 | |||
| 368 | Emacs 18 has no menu bars. All functions and variables related to the | ||
| 369 | menu bar have been eliminated. | ||
| 370 | |||
| 371 | @section Changes in Minibuffer Features | ||
| 372 | |||
| 373 | The minibuffer history feature has been eliminated. Thus, we removed | ||
| 374 | the optional argument @var{hist} from the minibuffer input functions | ||
| 375 | @code{read-from-minibuffer} and @code{completing-read}. | ||
| 376 | |||
| 377 | The @var{initial} argument to @code{read-from-minibuffer} and other | ||
| 378 | minibuffer input functions can no longer be a cons cell | ||
| 379 | @code{(@var{string} . @var{position})}. | ||
| 380 | |||
| 381 | In the function @code{read-no-blanks-input}, the @var{initial} argument | ||
| 382 | is no longer optional. | ||
| 383 | |||
| 384 | @section New Features for Defining Commands | ||
| 385 | |||
| 386 | @itemize @bullet | ||
| 387 | @item | ||
| 388 | The special meaning of @samp{@@} in an interactive specification has | ||
| 389 | been eliminated. | ||
| 390 | |||
| 391 | @item | ||
| 392 | Emacs 18 does not support use of format-style @samp{%}-sequences in the | ||
| 393 | prompt strings in interactive specifications. | ||
| 394 | |||
| 395 | @item | ||
| 396 | The property @code{enable-recursive-minibuffers} no longer has any | ||
| 397 | special meaning. | ||
| 398 | @end itemize | ||
| 399 | |||
| 400 | @section Removed Features for Reading Input | ||
| 401 | |||
| 402 | We removed the third argument (@var{meta}) from the function | ||
| 403 | @code{set-input-mode}. Consequently, we added the variable | ||
| 404 | @code{meta-flag}; set it to @code{t} to enable use of a Meta key, and | ||
| 405 | to @code{nil} to disable it. (Those are the only two alternatives.) | ||
| 406 | |||
| 407 | We also removed the variable @code{extra-keyboard-modifiers}. | ||
| 408 | |||
| 409 | We removed the function @code{keyboard-translate} and the variables | ||
| 410 | @code{num-input-keys} and @code{function-key-map}. | ||
| 411 | |||
| 412 | @section Removed Syntax Table Features | ||
| 413 | |||
| 414 | @itemize @bullet | ||
| 415 | @item | ||
| 416 | We eliminated the functions @code{skip-syntax-forward}, | ||
| 417 | @code{skip-syntax-backward}, @code{forward-comment}. | ||
| 418 | |||
| 419 | @item | ||
| 420 | We removed the syntax flag for ``prefix syntax'' and the flag for the | ||
| 421 | alternate comment style. Emacs 18 supports only one style of comment | ||
| 422 | in any given syntax table. | ||
| 423 | |||
| 424 | @item | ||
| 425 | We abolished the variable @code{words-include-escapes}. | ||
| 426 | @end itemize | ||
| 427 | |||
| 428 | @section The Case Table | ||
| 429 | |||
| 430 | Case tables do not exist in Emacs 18. Due to this change, we have | ||
| 431 | removed the associated functions @code{set-standard-case-table}, | ||
| 432 | @code{standard-case-table}, @code{current-case-table}, | ||
| 433 | @code{set-case-table}, and @code{set-case-syntax-pair}. | ||
| 434 | |||
| 435 | @section Features for Dealing with Buffers | ||
| 436 | |||
| 437 | @itemize @bullet | ||
| 438 | @item | ||
| 439 | We eliminated several functions for dealing with buffers: | ||
| 440 | @code{buffer-modified-tick} and @code{generate-new-buffer-name}. | ||
| 441 | |||
| 442 | @item | ||
| 443 | We renamed @code{buffer-disable-undo} to @code{buffer-flush-undo}---a | ||
| 444 | more picturesque name, you will agree. | ||
| 445 | |||
| 446 | @item | ||
| 447 | The function @code{other-buffer} takes just one argument in Emacs 18. | ||
| 448 | |||
| 449 | @item | ||
| 450 | The function @code{rename-buffer} now requires you to specify precisely | ||
| 451 | the new name you want. | ||
| 452 | |||
| 453 | @item | ||
| 454 | We removed the local variable @code{list-buffers-directory}. | ||
| 455 | |||
| 456 | @item | ||
| 457 | We got rid of the hook @code{kill-buffer-hook}. | ||
| 458 | @end itemize | ||
| 459 | |||
| 460 | @section Local Variables Features | ||
| 461 | |||
| 462 | @itemize @bullet | ||
| 463 | @item | ||
| 464 | The function @code{kill-all-local-variables} always eliminates all | ||
| 465 | buffer-local variables of the current buffer. No more exceptions. | ||
| 466 | |||
| 467 | @item | ||
| 468 | Making a variable buffer-local when it is void now sets it to | ||
| 469 | @code{nil}. | ||
| 470 | |||
| 471 | @item | ||
| 472 | We eliminated the functions @code{default-boundp}, because it is no | ||
| 473 | longer possible for the default binding of a variable to be void. | ||
| 474 | |||
| 475 | @item | ||
| 476 | The special forms @code{defconst} and @code{defvar} now set the | ||
| 477 | variable's local value rather than its default value when the variable | ||
| 478 | is local in the current buffer. | ||
| 479 | @end itemize | ||
| 480 | |||
| 481 | @section Features for Subprocesses | ||
| 482 | |||
| 483 | @code{call-process} and @code{call-process-region} no longer indicate | ||
| 484 | the termination status of the subprocess. We call on users to have faith | ||
| 485 | that the subprocess executed properly. | ||
| 486 | |||
| 487 | @itemize | ||
| 488 | @item | ||
| 489 | The standard asynchronous subprocess features do not work on VMS; | ||
| 490 | instead, special VMS asynchronous subprocess functions have been added. | ||
| 491 | Since they are only for VMS, we can't be bothered documenting them; | ||
| 492 | sorry. Use the source, Luke! | ||
| 493 | |||
| 494 | @item | ||
| 495 | The function @code{signal-process} has been removed. | ||
| 496 | |||
| 497 | @item | ||
| 498 | We eliminated the transaction queue feature, and the associated | ||
| 499 | functions @code{tq-create}, @code{tq-enqueue}, and @code{tq-close}. | ||
| 500 | @end itemize | ||
| 501 | |||
| 502 | @section Dealing with Times And Time Delays | ||
| 503 | |||
| 504 | @itemize @bullet | ||
| 505 | @item | ||
| 506 | We removed the functions @code{current-time}, @code{current-time-zone}, | ||
| 507 | @code{run-at-time}, and @code{cancel-timer}. | ||
| 508 | |||
| 509 | @item | ||
| 510 | The function @code{current-time-string} no longer accepts any optional | ||
| 511 | arguments. | ||
| 512 | |||
| 513 | @item | ||
| 514 | The functions @code{sit-for} and @code{sleep-for} no longer allow an | ||
| 515 | optional argument to let you specify the time period in milliseconds; | ||
| 516 | just in seconds. Additionally, we took out the optional third argument | ||
| 517 | @var{nodisp} from @code{sit-for}. | ||
| 518 | |||
| 519 | @item | ||
| 520 | We removed the optional second and third arguments from the | ||
| 521 | @code{accept-process-output} function. It accepts just one argument, | ||
| 522 | the process. | ||
| 523 | @end itemize | ||
| 524 | |||
| 525 | @need 3000 | ||
| 526 | |||
| 527 | @section Features not Available for Lisp Debuggers | ||
| 528 | |||
| 529 | @itemize @bullet | ||
| 530 | @item | ||
| 531 | In Emacs 18, you can no longer specify to invoke the Lisp debugger only | ||
| 532 | upon encountering certain types of errors. Any non-@code{nil} value for | ||
| 533 | the variable @code{debug-on-error} says to invoke the debugger for any | ||
| 534 | error whatever. | ||
| 535 | |||
| 536 | @item | ||
| 537 | We removed the variable @code{command-debug-status} and the function | ||
| 538 | @code{backtrace-frame}. | ||
| 539 | @end itemize | ||
| 540 | |||
| 541 | @section Memory Allocation Changes | ||
| 542 | |||
| 543 | We removed the function @code{memory-limit}. | ||
| 544 | |||
| 545 | The list returned by @code{garbage-collect} no longer contains an | ||
| 546 | element to describe floating point numbers, since there aren't any | ||
| 547 | floating point numbers in Emacs 18. | ||
| 548 | |||
| 549 | @section Hook Changes | ||
| 550 | |||
| 551 | @itemize @bullet | ||
| 552 | @item | ||
| 553 | We removed the hooks @code{pre-abbrev-expand-hook}, | ||
| 554 | @code{pre-command-hook}, @code{post-command-hook}, and | ||
| 555 | @code{auto-save-hook}. | ||
| 556 | |||
| 557 | @item | ||
| 558 | We removed the variable | ||
| 559 | @code{revert-buffer-insert-file-contents-function}. | ||
| 560 | |||
| 561 | @item | ||
| 562 | We also removed the new function @code{add-hook}; you will have to set | ||
| 563 | your hooks by hand. If you want to get really into the swing of things, | ||
| 564 | set your hook variables the archaic way: store just one function rather | ||
| 565 | than a list of functions. But that is optional. | ||
| 566 | |||
| 567 | @item | ||
| 568 | The variable @code{lisp-indent-hook} has been renamed to | ||
| 569 | @code{lisp-indent-function}. | ||
| 570 | |||
| 571 | @item | ||
| 572 | The variable @code{auto-fill-function} has been renamed to | ||
| 573 | @code{auto-fill-hook}. | ||
| 574 | |||
| 575 | @item | ||
| 576 | The @code{blink-paren-function} has been renamed to | ||
| 577 | @code{blink-paren-hook}. | ||
| 578 | |||
| 579 | @item | ||
| 580 | The variable @code{temp-buffer-show-function} has been renamed to | ||
| 581 | @code{temp-buffer-show-hook}. | ||
| 582 | @end itemize | ||