Mercurial > emacs
view lispref/anti.texi @ 51195:3cbf29813eea
(struct frame): Rename members height to text_lines,
width to text_cols, window_height to total_lines, window_width to
total_cols, new_height to new_text_lines, new_width to
new_text_cols. All uses changed.
(struct frame): New members which consolidate common members of
x_output, w32_output, and mac_output structures: left_pos,
top_pos, pixel_height, pixel_width, x_pixels_diff, y_pixels_diff,
win_gravity, size_hint_flags, border_width, internal_border_width,
line_height, fringe_cols, left_fringe_width, right_fringe_width,
want_fullscreen. All uses changed.
(struct frame): New member column_width contaning the canonical
column width, analogue to line_height. All uses changed.
(struct frame): Rename members scroll_bar_pixel_width to
config_scroll_bar_width, and scroll_bar_cols to
config_scroll_bar_cols. All uses changed.
(struct frame): New member scroll_bar_actual_width which
consolidates and renames the vertical_scroll_bar_extra member of
x_output, w32_output, and mac_output structures. All uses changed.
(FRAME_PIXEL_HEIGHT): Renamed from PIXEL_HEIGHT and moved
from x/w32/macterm.h files. All uses changed. Also change code
which referred to f->output_data...->pixel_height.
(FRAME_PIXEL_WIDTH): Renamed from PIXEL_WIDTH and moved
from x/w32/macterm.h files. All uses changed. Also change code
which referred to f->output_data...->pixel_width.
(FRAME_LINES): Renamed from FRAME_HEIGHT. All uses changed.
Also change code which referred to f->height.
(FRAME_COLS): Renamed from FRAME_WIDTH. All uses changed.
Also change code which referred to f->width.
(FRAME_NEW_HEIGHT, FRAME_NEW_WIDTH): Remove macros; change uses
to update new_text_lines and new_text_cols members directly.
(FRAME_CONFIG_SCROLL_BAR_WIDTH): Renamed from
FRAME_SCROLL_BAR_PIXEL_WIDTH. All uses changed.
(FRAME_CONFIG_SCROLL_BAR_COLS): Renamed from
FRAME_SCROLL_BAR_COLS. All uses changed.
(FRAME_LEFT_SCROLL_BAR_COLS, FRAME_RIGHT_SCROLL_BAR_COLS):
Renamed from FRAME_LEFT_SCROLL_BAR_WIDTH and
FRAME_RIGHT_SCROLL_BAR_WIDTH, resp. All uses changed.
(FRAME_SCROLL_BAR_AREA_WIDTH, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH)
(FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH): New macros.
(FRAME_TOTAL_COLS): Renamed from FRAME_WINDOW_WIDTH.
(SET_FRAME_COLS): Renamed from SET_FRAME_WIDTH.
(FRAME_TOTAL_COLS_ARG): Renamed from FRAME_WINDOW_WIDTH_ARG.
(WINDOW_VERTICAL_SCROLL_BAR_COLUMN): Remove unused macro.
(WINDOW_VERTICAL_SCROLL_BAR_HEIGHT): Remove unused macro.
(FRAME_LINE_HEIGHT): Renamed from CANON_Y_UNIT. Unconditionally
return line_height member (it now has proper value also for
non-window frames).
(FRAME_COLUMN_WIDTH): Renamed from CANON_X_UNIT. Unconditionally
return new column_width member (rather than the default font width).
(FRAME_FRINGE_COLS, FRAME_LEFT_FRINGE_WIDTH)
(FRAME_RIGHT_FRINGE_WIDTH): Renamed from FRAME_X_... and moved
from x/w32/macterm.h files. Unconditionally return corresponding
member of frame structure (they now have proper values also for
non-window frames).
(FRAME_TOTAL_FRINGE_WIDTH): Renamed from FRAME_FRINGE_WIDTH.
Calculate return value from left and right widths.
(FRAME_INTERNAL_BORDER_WIDTH): Unconditionally return
internal_border_width member (has proper value for non-window frame).
(FRAME_PIXEL_X_FROM_CANON_X): Renamed from PIXEL_X_FROM_CANON_X.
(FRAME_PIXEL_Y_FROM_CANON_Y): Renamed from PIXEL_Y_FROM_CANON_Y.
(FRAME_CANON_X_FROM_PIXEL_X): Renamed from CANON_X_FROM_PIXEL_X.
(FRAME_CANON_Y_FROM_PIXEL_Y): Renamed from CANON_Y_FROM_PIXEL_Y.
(FRAME_LINE_TO_PIXEL_Y): Renamed from CHAR_TO_PIXEL_ROW,
consolidated from xterm.h, macterm.h, and w32term.h.
(FRAME_COL_TO_PIXEL_X): Renamed from CHAR_TO_PIXEL_COL,
consolidated from xterm.h, macterm.h, and w32term.h.
(FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Renamed from
CHAR_TO_PIXEL_WIDTH consolidated from x/mac/w32term.h.
(FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Renamed from
CHAR_TO_PIXEL_HEIGHT consolidated from x/mac/w32term.h.
(FRAME_PIXEL_Y_TO_LINE): Renamed from PIXEL_TO_CHAR_ROW
consolidated from x/mac/w32term.h.
(FRAME_PIXEL_X_TO_COL): Renamed from PIXEL_TO_CHAR_COL
consolidated from x/mac/w32term.h.
(FRAME_PIXEL_WIDTH_TO_TEXT_COLS): Renamed from
PIXEL_TO_CHAR_WIDTH consolidated from x/mac/w32term.h.
(FRAME_PIXEL_HEIGHT_TO_TEXT_LINES): Renamed from
PIXEL_TO_CHAR_HEIGHT consolidated from x/mac/w32term.h.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Sat, 24 May 2003 21:58:07 +0000 |
parents | 23a1cea22d13 |
children | 695cf19ef79e d7ddb3e565de |
line wrap: on
line source
@c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1999 Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @c This node must have no pointers. @node Antinews, GNU Free Documentation License, System Interface, Top @appendix Emacs 20 Antinews For those users who live backwards in time, here is information about downgrading to Emacs version 20.4. We hope you will enjoy the greater simplicity that results from the absence of many Emacs 21 features. In the following section, we carry this information back to Emacs 20.3, for which the previous printed edition of this manual was made. @section Old Lisp Features in Emacs 20 @itemize @bullet @item The @code{push} and @code{pop} macros are not defined. Neither are @code{dolist} and @code{dotimes}. @item You can't display images in buffers. (Emacs is meant for editing text.) With no images, there are no display margins, and no tool bars. @item The @code{display} text property has no special meaning; you can use it freely in Lisp programs, with no effects except what you implement for yourself. With no images, who needs the @code{display} text property? @item The @code{field} text property has no special meaning; buffers are no longer subdivided into fields. (The division of information into fields is always rather arbitrary.) @item Faces have fewer attributes. The attributes @code{:family}, @code{:height}, @code{:width}, @code{:weight}, and @code{:slant}, have been replaced with a font name, a ``bold'' flag, and an ``italic'' flag. The attributes @code{:overline}, @code{:strike-through} and @code{:box} have been eliminated too. Underlining now always has the same color as the text---using any other color would be bad taste. With fewer font attributes, there are no functions @code{set-face-attribute} and @code{face-attribute}. Instead, you access these attributes using functions such as @code{face-font}, and set them with functions such as @code{set-face-font}. (These functions were available in Emacs 21, but are not as useful there.) @item The standard faces @code{scroll-bar}, @code{menu}, @code{border}, @code{cursor}, and @code{mouse} have been eliminated. They are rather strange, as faces, and therefore shouldn't really exist. You can use @code{set-border-color}, @code{set-cursor-color} and @code{set-mouse-color} to specify the colors for the frame border, the text cursor, and the mouse cursor. To specify menu colors, use X resources. @item Colors and other face attributes are no longer supported on character terminals, so you no longer have to worry about terminals making faces at you. @item Emacs will respect your peace and quiet, aside from occasional beeps, because there are no facilities for playing sounds. @item Emacs 20 provides a complex and badly designed method for handling character composition for languages such as Thai that display several letters as a single combined image. We are too ashamed of it to tell you any more than that. @item @code{delete-and-extract-region} has been deleted; instead, use @code{buffer-substring} to extract the text, then use @code{delete-region} to delete it. @item Regular expressions do not support the POSIX character classes such as @samp{[:alpha:]}. All characters are created equal. @item Hash tables have been eliminated; use alists instead. @item The Lisp printer does not detect and report circular structure. That is ok, because the Lisp reader cannot recreate circular structure anyway. However, there is a library @samp{cust-print.el} which can report circular structure. @item Emacs provides its own implementation of scroll bars, instead of using those of the X toolkit. They always use the frame foreground and background colors, so you cannot specify different colors for the scroll bars. @item For simplicity, all @sc{ascii} characters now have the same height and width. (Certain characters, such as Chinese characters, always have twice the standard width.) All characters are created equal. @item You can now resize any Emacs window, and size changes in one window can propagate to all others. Windows can no longer use @code{window-size-fixed} to get special privileges. @item The function @code{intern-soft} no longer accepts a symbol as argument. @item The function @code{bitmap-spec-p} has been renamed to @code{pixmap-spec-p} to encourage users to practice Emacs' help system while trying to find it. @item Tooltips operate using ordinary Emacs frames. @item Areas of the mode line are not mouse-sensitive; however, some mouse commands are available for the mode line as a whole. @item Windows cannot have header lines. Conversely, there is no way to turn off the mode line of a window unless it is a minibuffer. @item Plain dashes are the only separators you can use in a menu. @item Vertical fractional scrolling does not exist. @item The functions @code{format} and @code{message} ignore and discard text properties. @item The function @code{propertize} does not exist; you can get the job done using @code{set-text-properties}. @item Colors are supported only on window systems, not on text-only terminals. So the support functions for colors on text-only terminals are not needed, and have been eliminated. @item The functions @code{color-values}, @code{color-defined-p} and @code{defined-colors} have been renamed to @code{x-color-values}, @code{x-color-defined-p} and @code{x-defined-colors}. @item Windows cannot be made fixed-width or fixed-height; Emacs will adjust the size of all windows when it needs to. @item The string used as the value of the @code{before-string} or @code{after-string} property must contain only characters that display as a single column---control characters, including tabs and newlines, will give strange results. @item The minibuffer prompt does not actually appear in content of the minibuffer; it is displayed specially in the minibuffer window. @item The ``exclusive open'' feature of @code{write-region} has been eliminated; any non-@code{nil} value for the seventh argument now means to ask the user for confirmation. @item The function @code{buffer-size} always reports on the current buffer. @item The function @code{assq-delete-all} has itself been deleted. So there! @item The keyword @code{:set-after} no longer does anything in @code{defcustom}. @item The variable @code{small-temporary-file-directory} has no special meaning. There's only one variable for specifying which directory to use for temporary files, @code{temporary-file-directory}, but not all Emacs features use it anyway. Some use the @code{TMP} environment variable, and some use the @code{TMPDIR} environment variable. @item If the second argument of @code{save-some-buffers}, @var{pred}, is not @code{nil}, then the precise value no longer matters. Any non-@code{nil} value means the same as @code{t}: offer to save each non-file buffer that has a non-@code{nil} value for @code{buffer-offer-save}. @item The variable @code{inhibit-modification-hooks} has no special meaning. @item The hook @code{fontification-functions} has been eliminated, but there are other hooks, such as @code{window-scroll-functions}, that you can use to do a similar job. @item The variable @code{redisplay-dont-pause} has no special meaning. @item The hook @code{calendar-move-hook} has been deleted. @item The function @code{move-to-column} treats any non-@code{nil} second argument just like @code{t}. @end itemize @section Old Lisp Features in Emacs 20.3 Here are the most important of the features that you will learn to do without in Emacs 20.3: Here are changes in the Lisp language itself: @itemize @bullet @item The functions @code{line-beginning-position} and @code{line-end-position} have been eliminated. @item The functions @code{directory-files-and-attributes}, @code{file-attributes-lessp}, and @code{file-expand-wildcards}, have been eliminated. @item The functions @code{decode-coding-region} and @code{encode-coding-region} leave text properties untouched, in case that is useful. (It rarely makes any sense, though.) @item The functions @code{position-bytes} and @code{byte-to-position} have been eliminated. @item Temporary buffers made with @code{with-output-to-temp-buffer} are now modifiable by default, and use Fundamental mode rather than Help mode. @item The functions @code{sref} interprets its @var{index} argument as a number of bytes, not a number of characters. And the function @code{char-bytes} actually tries to report on the number of bytes that a character occupies. @item The function @code{process-running-child-p} has been eliminated. @item The function @code{interrupt-process} and similar functions no longer do anything special when the second argument is @code{lambda}. @item The function @code{define-prefix-command} accepts only two arguments. @item The meaning of the second argument to @code{read-char}, @code{read-event}, and @code{read-char-exclusive} has been reversed: they use the current input method if the argument is if @code{nil}. @item The function @code{with-temp-message} has been eliminated. @item The function @code{clear-this-command-keys} has been eliminated. @item The functions @code{gap-position} and @code{gap-size} have been eliminated. @item In @code{modify-face}, an argument of @code{(nil)} has no special meaning. @item The base64 conversion functions have been eliminated. @item Wildcard support has been eliminated from @code{find-file} and allied functions. @item @code{file-attributes} returns the file size and the file inode number only as a simple integer. @end itemize