Mercurial > hg > xemacs-beta
comparison etc/NEWS @ 479:52626a2f02ef
[xemacs-hg @ 2001-04-20 11:31:53 by ben]
about/news changes, already in 21.4
author | ben |
---|---|
date | Fri, 20 Apr 2001 11:32:27 +0000 |
parents | 5aa1854ad537 |
children | 98fb34b6fbe9 |
comparison
equal
deleted
inserted
replaced
478:09855058eefc | 479:52626a2f02ef |
---|---|
30 | 30 |
31 | 31 |
32 * Changes in XEmacs 21.4 | 32 * Changes in XEmacs 21.4 |
33 ======================== | 33 ======================== |
34 | 34 |
35 ** Summary of user-visible changes: | |
36 | |
37 -- The delete key now deletes forward by default. | |
38 -- Shifted motion keys now select text by default. | |
39 -- You can now build XEmacs with support for GTK+ widget set. | |
40 -- ~/.xemacs/init.el is now the preferred location for the init file. | |
41 - XEmacs now supports a `~/.xemacs/init.el' startup file. | |
42 - Custom file will move to ~/.xemacs/custom.el. | |
43 -- Much-improved sample init.el, showing how to use many useful features. | |
44 -- XEmacs support for menu accelerators has been much improved. | |
45 -- Default menubar improvements. | |
46 - Default menubar has many new commands and better organization. | |
47 - The font-menu is now available under MS Windows. | |
48 -- Dialog box improvements, including a real file dialog box. | |
49 - XEmacs now has a proper file dialog box under MS Windows (and GTK)! | |
50 - The old clunky file dialog box is improved. | |
51 - Keyboard traversal now works correctly in MS Windows dialog boxes. | |
52 - There is a Search dialog box available from Edit->Find... | |
53 -- New buffer tabs. | |
54 -- There is a new MS Windows installer, netinstall, ported from Cygwin. | |
55 -- The subprocess quote-handling mechanism under Windows is much improved. | |
56 -- Printing support now available under MS Windows. | |
57 -- Selection improvements. | |
58 - Kill and yank now interact with the clipboard under Windows. | |
59 - MS Windows support for selection is now much more robust. | |
60 - Motif selection support is now more correct (but slower). | |
61 -- Mail spool locking now works correctly. | |
62 -- International support changes. | |
63 - The default coding-priority-list is now safer. | |
64 - International keysyms are now supported under X. | |
65 - MS Windows 1251 code page now supported. | |
66 - Czech, Thai, Cyrillic-KOI8, Vietnamese, Ethiopic now supported. | |
67 - Proper support for words in Latin 3 and Latin 4. | |
68 -- Help buffers contain hyperlinks, and other changes. | |
69 -- The modeline's text is now scrollable. | |
70 -- The mouse wheel under MS Windows now functions correctly. | |
71 -- Interactive searching and matching case improvements. | |
72 - Incremental search will now highlight all visible matches. | |
73 - Interactive searches always respect uppercase characters. | |
74 -- Rectangle functions rewritten to avoid inserting extra spaces. | |
75 -- New command `kill-entire-line' that always kills the entire line. | |
76 -- Default values correctly stored in minibuffer histories. | |
77 -- You can now create "indirect buffers", like in GNU Emacs. | |
78 -- Pixel-based scrolling has been implemented. | |
79 -- Operation progress can be displayed using graphical widgets. | |
80 -- User names following a tilde can now be completed at file name prompts. | |
81 -- XEmacs can now play sound using Enlightenment Sound Daemon (ESD). | |
82 -- X-Face support is now available under MS Windows. | |
83 -- The PostgreSQL Relational Database Management System is now supported. | |
84 -- Indentation no longer indents comments that begin at column zero. | |
85 -- Face and variable settings can have comments in Customize. | |
86 -- New locations for early package hierarchies. | |
87 -- The `auto-save' library has been greatly improved. | |
88 -- New variable `mswindows-alt-by-itself-activates-menu'. | |
89 -- The variable `kill-whole-line' now only takes effect interactively. | |
90 -- Other init-file-related changes. | |
91 - Init file in your home directory may be called `.emacs.el'. | |
92 - New command-line switches -user-init-file and -user-init-directory. | |
93 -- Etags changes. | |
94 - In DOS, etags looks for file.cgz if it cannot find file.c. | |
95 - New option --ignore-case-regex is an alternative to --regex. | |
96 - New option --declarations, for C-type languages. | |
97 - In C++, tags are created for "operator". | |
98 - Ada now supported. | |
99 - In Fortran, procedure is no longer tagged. | |
100 - In Java, tags are created for "interface". | |
101 - In Lisp, def-type constructs are now tagged. | |
102 - In Perl, the --globals option tags global variables. | |
103 - Python now supported. | |
104 - New file extensions recognized: .ss, .pdb, .psw. | |
105 | |
35 ** The delete key now deletes forward by default. | 106 ** The delete key now deletes forward by default. |
36 | 107 |
37 This is regulated by the variable `delete-key-deletes-forward', which | 108 This is regulated by the variable `delete-key-deletes-forward', which |
38 now defaults to t. `delete-key-deletes-forward' takes effect only on | 109 now defaults to t. `delete-key-deletes-forward' takes effect only on |
39 the systems that offer both a backspace and a delete key. If set to | 110 the systems that offer both a backspace and a delete key. If set to |
40 nil, the key labeled "Delete" will always delete backward. If set to | 111 nil, the key labeled "Delete" will always delete backward. If set to |
41 non-nil, the "Delete" key will delete forward, except on keyboards | 112 non-nil, the "Delete" key will delete forward, except on keyboards |
42 where a "Backspace" key is not provided (e.g. old DEC keyboards.) | 113 where a "Backspace" key is not provided (e.g. old DEC keyboards). |
43 | 114 |
44 Unless our implementation has bugs, the only reason why you would want | 115 Unless our implementation has bugs, the only reason why you would want |
45 to set `delete-key-deletes-forward' to nil is if you want to use the | 116 to set `delete-key-deletes-forward' to nil is if you want to use the |
46 Delete key to delete backwards, despite the presence (according to | 117 Delete key to delete backwards, despite the presence (according to |
47 Xlib) of a BackSpace key on the keyboard. | 118 Xlib) of a BackSpace key on the keyboard. |
48 | 119 |
120 ** Shifted motion keys now select text by default. | |
121 | |
122 You can turn this off by setting `shifted-motion-keys-select-region' | |
123 to nil. This works based off of particular keys, not particular | |
124 commands: Thus, the arrow keys will normally trigger selection when | |
125 the Shift key is held down regardless of their bindings, and non-arrow | |
126 keys with the same bindings (e.g. C-f) will not work this way. You | |
127 can control which keys trigger shifted motion using | |
128 `motion-keys-for-shifted-motion'. See also | |
129 `unshifted-motion-keys-deselect-region'. | |
130 | |
49 ** You can now build XEmacs with support for GTK+ widget set. | 131 ** You can now build XEmacs with support for GTK+ widget set. |
50 | 132 |
51 XEmacs built that way uses GTK+ to draw menubars, scrollbars, and | 133 XEmacs built that way uses GTK+ to draw menubars, scrollbars, and |
52 other GUI components, as well GDK for drawing text, choosing fonts, | 134 other GUI components, as well GDK for drawing text, choosing fonts, |
53 allocating colors, etc. Additionally, GTK-XEmacs supports Lisp | 135 allocating colors, etc. Additionally, GTK-XEmacs supports Lisp |
56 To use this, build XEmacs with the `--with-gtk' configure flag. (Of | 138 To use this, build XEmacs with the `--with-gtk' configure flag. (Of |
57 course, you'll need to have the GTK+ libraries and header files on the | 139 course, you'll need to have the GTK+ libraries and header files on the |
58 system.) Gnome widgets and functionality are supported where | 140 system.) Gnome widgets and functionality are supported where |
59 available, and can be turned off. | 141 available, and can be turned off. |
60 | 142 |
61 ** Shifted motion keys now select text by default. You can turn this | 143 ** ~/.xemacs/init.el is now the preferred location for the init file. |
62 off by setting `shifted-motion-keys-select-region' to nil. | 144 |
63 | 145 *** XEmacs now supports a `~/.xemacs/init.el' startup file. |
64 ** There is a new command `kill-entire-line' that always kills the | 146 If it exists, XEmacs will prefer it over `.emacs' and `.emacs.el'. |
65 entire line at point, regardless of whether the point is at the | 147 The file may be byte-compiled as `~/.xemacs/init.elc'. |
66 beginning of line, and regardless of the setting of `kill-whole-line'. | 148 |
67 | 149 If present, the `~/.xemacs/' directory may contain startup files for |
68 ** The variable `kill-whole-line' now only takes effect when kill-line | 150 XEmacs packages that support it. |
69 is called interactively. Although this is a departure from a previous | 151 |
70 behavior in the case of setting this variable kill-whole-line to t, | 152 The first time you start up XEmacs, it will ask you if you would like |
71 it is almost certainly what has always been intended, and most likely | 153 to migrate your `.emacs' to the new location. (Your custom settings |
72 the old way of doing things introduced bugs. | 154 will also be moved, to `~/.xemacs/custom.el' -- see below.) If so, you |
73 | 155 will also be asked whether you would like to create a compatibility |
74 ** The help buffers created by the plethora of C-h commands now | 156 `.emacs' for backward compatibility with previous versions of XEmacs |
75 contain hyperlinks. | 157 and with GNU Emacs. (This compatibility `.emacs' simply loads the new |
76 | 158 init and custom files.) Doing this is generally a good idea -- new |
77 ** The modeline's text is now scrollable. This is controlled by the | 159 versions of XEmacs will prefer `~/.xemacs/init.el' over `~/.emacs' in |
78 variable `modeline-scrolling-method', which you need to set to a | 160 any case. |
79 non-nil value. You can also choose scrolling types; see the docstring | 161 |
80 of `modeline-scrolling-method' for more information. | 162 You can manually migrate at any time with `migrate-user-init-file', |
81 | 163 and undo any migration with `unmigrate-user-init-file'. The function |
82 ** XEmacs menus now have accelerators by default. If a menu item does | 164 `create-compatibility-dot-emacs' also lets you manually create a |
83 not have an accelerator specified, one is created dynamically, using | 165 compatibility `.emacs'. |
84 numbers 1-9 and letters. | 166 |
85 | 167 NOTE: Under MS Windows, your home directory (i.e. the directory named |
86 ** Interactive searching and matching case improvements. | 168 `~') is specified by the HOME environment variable, and defaults to |
87 | 169 C:\. To set this variable, modify AUTOEXEC.BAT under Windows 95/98, |
88 Case sensitiveness in searching operations is normally controlled by | 170 or select Control Panel->System->Advanced->Environment Variables... |
89 the variable `case-fold-search' (if non-nil, case is ignored while | 171 under Windows NT/2000. |
90 searching). This mechanism has now been slightly improved for | 172 |
91 interactive searches: if the search string (or regexp) contains | 173 *** Custom file will move to ~/.xemacs/custom.el. |
92 uppercase characters, the searching is forced to be case-sensitive, | 174 |
93 `case-fold-search'. | 175 Whereas customize settings were formerly stored in the regular init |
94 | 176 file, XEmacs now prefers them to be in a separate file |
95 The new behavior affects all functions performing interactive | 177 `~/.xemacs/custom.el', completely under automatic control. This |
96 searches, like `zap-to-char', `list-matching-lines', `tags-search' | 178 change goes with the migration of the init file, and XEmacs offers |
97 etc. The incremental search facility has always behaved that way. | 179 automatic migration upon startup. |
98 | 180 |
99 ** Incremental search will now highlight all visible matches, making | 181 ** Much-improved sample init.el, showing how to use many useful features. |
100 it easier to anticipate where consecutive C-s or C-r will place the | 182 |
101 point. If you want to disable the feature, set | 183 The sample init file, located in the `etc/' directory of the XEmacs |
102 `isearch-highlight-all-matches' to nil. | 184 installation, has been renamed from `sample.emacs' to `sample.init.el', |
103 | 185 and pretty much rewritten from scratch. (You can view it by selecting |
104 ** The "coding systems" feature now works even in an XEmacs compiled | 186 the menu item Help->Samples->Sample init.el.) Many of the most-useful |
105 without international (Mule) support. This means that for example | 187 optional features in XEmacs have been enabled, and other features that |
106 XEmacs can recognize newline convention used by the file you are | 188 are useful but may be annoying to some are present but commented out. |
107 editing. | 189 There is also extensive documentation on how to add your own |
108 | 190 improvements to the init file and where to find more documentation |
109 ** You can now use the buffer tabs to switch between buffers. The | 191 elsewhere in XEmacs. The file has been specifically designed so that |
110 tabs are located between the toolbar and the uppermost window, in a | 192 most people can simply make it their own init file by copying it to |
111 location called "gutter". If you dislike the buffer tabs, you can | 193 ~/.xemacs/init.el, and they will be satisfied with the results. |
112 disable them by customizing `gutter-buffers-tab-visible-p', or by | 194 |
113 placing this in your .emacs: | 195 ** XEmacs support for menu accelerators has been much improved. |
114 | 196 |
115 (set-gutter-element-visible-p default-gutter-visible-p 'buffers-tab nil) | 197 It now works properly under MS Windows, for example. To enable |
116 | 198 accelerators, set `menu-accelerator-enabled' to `menu-force'. Menus |
117 You can change the location of the gutter with | 199 now have accelerators by default, currently on the first letter of the |
118 `set-default-gutter-position', however currently only MS-Windows | 200 menu item unless another letter was indicated as the accelerator using |
119 supports tab widgets with orientations other than vertical. | 201 %_ in the menu string. These %_ specifications are automatically |
120 | 202 removed when displaying the menu item, and are handled correctly in |
121 ** Kill and yank now interact with the clipboard by default under | 203 functions such as `normalize-menu-item-name'. Some auto-generated |
122 Windows. This was done by changing the default value of | 204 menus will have accelerators added dynamically, using numbers 1-9 and |
123 `interprogram-cut-function' and `interprogram-paste-function'. You | 205 letters; to add this feature yourself, use the Lisp command |
124 can get the old behavior by setting these to nil, and there is an | 206 `submenu-generate-accelerator-spec' in a menu filter. The feature |
125 option on the options menu to do this. | 207 `menu-accelerator-support' has been added so that packages can check |
126 | 208 whether this support exists. |
127 ** When you press RET at a minibuffer prompt that provides a default | 209 |
128 value, the value is stored in history instead of an empty line. Also, | 210 ** Default menubar improvements. |
129 you can now edit the default value by pressing the down arrow, | 211 |
130 accessing the logical "future" value. Not all minibuffer prompts have | 212 *** Default menubar has many new commands and better organization. |
131 yet been converted to support this feature. | 213 |
132 | 214 The default menubar has been extensively reorganized. Many more |
133 ** International keysyms are now supported under X. This means that | 215 commands are available, and they are more logically organized. The |
134 XEmacs running under Mule will automatically recognize the keysym | 216 Options menu, in particular, has been significantly expanded, and almost |
135 `scaron' to be the lower-case `s' with caron in the Latin 2 character | 217 everything on the new Cmds menu is new. (Much of the useful |
136 set. (Specifically, it will bind the keysym to `self-insert' and | 218 functionality from the `big-menubar' package has been imported.) |
137 augment its `ascii-character' property.) This is very useful with | 219 |
138 XFree under European locales as shipped by recent Linux distributions. | 220 *** The font-menu is now available under MS Windows. |
139 If XEmacs is compiled without Mule support, the feature still works, | 221 |
140 but it is unaware of different character sets -- it unconditionally | 222 ** Dialog box improvements, including a real file dialog box. |
141 sets the `ascii-character' property to values in the [160, 256) range. | 223 |
142 | 224 *** XEmacs now has a proper file dialog box under MS Windows (and GTK)! |
143 ** The rectangle functions have been almost completely rewritten in | 225 This will appear whenever you select a menu item that requires a file |
144 order to avoid inserting undesirable spaces, notably at the end of | 226 as an argument. |
145 lines. Two typical examples of the old behavior were | 227 |
146 `string-rectangle', which filled all lines up to the right side of the | 228 *** The old clunky file dialog box is improved. |
147 rectangle, and `clear-rectangle', which filled even empty lines up to | 229 The in-buffer file dialog box (visible on non-MS-Windows, non-GTK |
148 the left side. All functions have been rewritten to avoid inserting | 230 systems) is still clunky but has had many improvements to make it work |
149 unwanted spaces, and an optional prefix now allows them to behave the | 231 significantly better. |
150 old way. | 232 |
151 | 233 *** Keyboard traversal now works correctly in MS Windows dialog boxes. |
152 Also, the behavior of `string-rectangle' is now compliant with | 234 |
153 `pending-delete-mode': if this mode is active, then the string | 235 *** There is a Search dialog box available from Edit->Find... |
154 replaces the region rectangle. Otherwise, the command does not delete | 236 However, it's very experimental and needs a lot of work. |
155 or overwrite any existing text. For those who want that feature but do | 237 |
156 not use pending-delete-mode, a new function, `replace-rectangle', is | 238 ** New buffer tabs. |
157 available. | 239 |
158 | 240 You can now use buffer tabs to switch between buffers. |
159 As a side effect, the FORCE argument to `move-to-column' now | 241 |
160 understands the special value `coerce', which means that the line | 242 The tabs are located between the toolbar and the uppermost window, in |
161 should not be filled if it is too short to reach the desired column. | 243 a location called the "gutter". If you dislike the buffer tabs, you can |
162 | 244 disable them using the menu item `Options->Display->Buffers Tab Visible' |
163 ** Customize now supports adding comments about your face and variable | 245 by customizing `gutter-buffers-tab-visible-p', or by placing this in |
164 settings using a new menu entry. Comments for variables can also be | 246 your .xemacs/init.el: |
165 assigned by calling `customize-set-(value|variable)' with a prefix | 247 |
166 argument. | 248 (custom-set-variables '(gutter-buffers-tab-visible-p nil)) |
167 | 249 |
168 ** XEmacs now locates the early package hierarchies at | 250 You can change the location of the gutter using the menu item |
169 ~/.xemacs/mule-packages/ and ~/.xemacs/xemacs-packages/. Previously, | 251 `Options->Display->Default Gutter Location' or with (e.g.) |
170 the early packages were located in ~/.xemacs/. | 252 |
171 | 253 (custom-set-variables '(default-gutter-position 'left)) |
172 ** You can now create "indirect buffers", like in GNU Emacs. An | 254 |
173 indirect buffer shares its text with another buffer ("base buffer"), | 255 However, currently only MS Windows supports tab widgets with |
174 but has its own major mode, local variables, extents, and narrowing. | 256 orientations other than vertical, and it doesn't currently support |
175 An indirect buffer has a name of its own, distinct from those of the | 257 gutters on the bottom of the frame. |
176 base buffer and all other buffers. An indirect buffer cannot itself | 258 |
177 be visiting a file (though its base buffer can be). The base buffer | 259 ** There is a new MS Windows installer, netinstall, ported from Cygwin. |
178 cannot itself be indirect. | 260 |
179 | 261 Nearly complete automation of the XEmacs install process from |
180 Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer | 262 ftp.xemacs.org. Includes selection of Lisp packages to install, etc. |
181 named NAME whose base is BASE-BUFFER. If BASE-BUFFER is itself an | 263 |
182 indirect buffer, its base buffer is used as the base for the new | 264 ** The subprocess quote-handling mechanism under Windows is much improved. |
183 buffer. | 265 |
184 | 266 Specifically, the quote-handling mechanism has been completely rewritten, |
185 You can make an indirect buffer current, or switch to it in a window, | 267 and you should now be able to use single or double quotes to quote arguments |
186 just as you would a non-indirect buffer. | 268 just like under Unix, and expect to get correct results regardless of the |
187 | 269 shell you are using (e.g. CMD.EXE, bash from Cygwin, etc.). For example, |
188 The function `buffer-base-buffer' returns a buffer's base buffer or | 270 the following command: |
189 nil, if given an ordinary (non-indirect) buffer. The function | 271 |
190 `buffer-indirect-children' returns a list of the indirect children of | 272 M-x grep '<<<<<<<' *.c |
191 a base buffer. | 273 |
192 | 274 should work as intended. |
193 ** User names following the tilde character can now be completed at | 275 |
194 file name prompts; e.g. `C-x C-f ~hni<TAB>' will complete to | 276 ** Printing support now available under MS Windows. |
195 `~hniksic/'. To make this operation faster, a cache of user names is | 277 |
196 maintained internally. | 278 The File->Print... menu item pretty-prints using the standard MS |
197 | 279 Windows printing facilities. Unfortunately it's still rather |
198 The new primitives available for this purpose are functions named | 280 experimental. There is a separate `msprinter' device tag for MS |
199 `user-name-completion' and `user-name-all-completions'. | 281 Windows printers, and so you can control the way that faces appear on |
200 | 282 the printer by using this tag to specify device-specific face |
201 ** XEmacs can now play sound using Enlightenment Sound Daemon (ESD). | 283 settings. |
202 It will try NAS first, then ESD, then playing native sound directly. | 284 |
203 | 285 ** Selection improvements. |
204 ** X-Face support is now available under MS-Windows. | 286 |
205 If an X-Face library built under MS-Windows is available then XEmacs | 287 *** Kill and yank now interact with the clipboard under Windows. |
206 will use this at build time. | 288 |
207 | 289 This was done by changing the default value of `interprogram-cut-function' |
208 ** The font-menu is now available under MS-Windows. | 290 and `interprogram-paste-function'. You can get the old behavior by |
209 | 291 setting these to nil, and there is an option on the options menu to do |
210 ** MS-Windows support for selection is now much more robust. | 292 this. |
293 | |
294 *** MS Windows support for selection is now much more robust. | |
211 | 295 |
212 Generally selection should now do what you would expect under | 296 Generally selection should now do what you would expect under |
213 MS-Windows: the middle mouse button will paste your current selection | 297 MS Windows: the middle mouse button will paste your current selection |
214 or the clipboard; conversions from different types of selection to the | 298 or the clipboard; conversions from different types of selection to the |
215 clipboard can be made; the kill-ring and friends will be updated as | 299 clipboard can be made; the kill-ring and friends will be updated as |
216 per X. | 300 per X. |
217 | 301 |
218 The only thing selection doesn't do is set the clipboard automatically | 302 The only thing selection doesn't do is set the clipboard automatically |
219 as this would break the MS-Windows model. If you want this behavior | 303 as this would break the MS Windows model. If you want this behavior |
220 then set `selection-sets-clipboard' to t. | 304 then set `selection-sets-clipboard' to t. |
221 | 305 |
222 ** Motif selection support is now more correct (but slower) in its behaviour. | 306 *** Motif selection support is now more correct (but slower). |
223 | 307 |
224 Changes have been made to allow correct operation of cut/copy/paste | 308 Changes have been made to allow correct operation of cut/copy/paste |
225 operations between native widgets and XEmacs buffers. However, this | 309 operations between native widgets and XEmacs buffers. However, this |
226 can lead to a lot of X traffic which slows down the performance of | 310 can lead to a lot of X traffic which slows down the performance of |
227 `C-k'. If you want the old behaviour then set | 311 `C-k'. If you want the old behaviour then set |
228 `x-selection-strict-motif-ownership' to nil. | 312 `x-selection-strict-motif-ownership' to nil. |
229 | 313 |
230 ** Mail spool locking now works correctly. | 314 ** Mail spool locking now works correctly. |
315 | |
231 XEmacs has always come with a little auxiliary program, movemail, | 316 XEmacs has always come with a little auxiliary program, movemail, |
232 which moves mail out of the system's spool area into user storage. To | 317 which moves mail out of the system's spool area into user storage. To |
233 coordinate between XEmacs, the mail delivery agent, and other mail | 318 coordinate between XEmacs, the mail delivery agent, and other mail |
234 user agents, movemail needs to properly lock the spool file before | 319 user agents, movemail needs to properly lock the spool file before |
235 moving it. Movemail now correctly respects the --mail-locking option | 320 moving it. Movemail now correctly respects the --mail-locking option |
240 When installing XEmacs, make sure you configure it according to your | 325 When installing XEmacs, make sure you configure it according to your |
241 environment's mail spool locking conventions. When you're using a | 326 environment's mail spool locking conventions. When you're using a |
242 binary kit, set the `mail-lock-method' variable at startup, or the | 327 binary kit, set the `mail-lock-method' variable at startup, or the |
243 EMACSLOCKMETHOD environment variable. | 328 EMACSLOCKMETHOD environment variable. |
244 | 329 |
330 ** International support changes. | |
331 | |
332 *** The default coding-priority-list is now safer. | |
333 | |
334 This means that if you have no language environment set, Mule no | |
335 longer automatically recognizes ISO 2022 escapes in your files. This | |
336 makes editing binary files safe. | |
337 | |
338 *** International keysyms are now supported under X. | |
339 | |
340 This means that XEmacs running under Mule will automatically recognize | |
341 the keysym `scaron' to be the lower-case `s' with caron in the Latin 2 | |
342 character set. (Specifically, it will bind the keysym to | |
343 `self-insert' and augment its `ascii-character' property.) This is | |
344 very useful with XFree under European locales as shipped by recent | |
345 Linux distributions. If XEmacs is compiled without Mule support, the | |
346 feature still works, but it is unaware of different character sets -- | |
347 it unconditionally sets the `ascii-character' property to values in | |
348 the [160, 256) range. | |
349 | |
350 *** MS Windows 1251 code page now supported. | |
351 | |
352 It's available as coding system `windows-1251'. | |
353 | |
354 *** Czech, Thai, Cyrillic-KOI8, Vietnamese, Ethiopic now supported. | |
355 | |
356 *** Proper support for words in Latin 3 and Latin 4. | |
357 | |
358 The appropriate characters in Latin 3 and Latin 4 character sets are | |
359 correctly defined as words. | |
360 | |
361 ** Help buffers contain hyperlinks, and other changes. | |
362 | |
363 The help buffers created by C-h commands now contain hyperlinks to | |
364 other commands, functions and variables mentioned in the documentation. | |
365 Use button2 to follow a link. Use button3 to bring up a context menu | |
366 that lets you follow the link, find the source for the item, do a tag | |
367 search, etc. The buffers are also syntax-highlighted. | |
368 | |
369 Help functions (e.g. `C-h f') now know how to print macro argument | |
370 lists. If your macro definition included an argument list for the sake | |
371 of help output, you no longer need to do that. | |
372 | |
373 ** The modeline's text is now scrollable. | |
374 | |
375 This is controlled by the variable `modeline-scrolling-method', which | |
376 you need to set to a non-nil value. You can also choose scrolling | |
377 types; see the docstring of `modeline-scrolling-method' for more | |
378 information. | |
379 | |
380 ** The mouse wheel under MS Windows now functions correctly. | |
381 | |
382 It scrolls the XEmacs window under the pointer, not the selected | |
383 window. | |
384 | |
385 ** Interactive searching and matching case improvements. | |
386 | |
387 *** Incremental search will now highlight all visible matches. | |
388 | |
389 This makes it easier to anticipate where consecutive C-s or C-r will | |
390 place the point. If you want to disable the feature, set | |
391 `isearch-highlight-all-matches' to nil. | |
392 | |
393 *** Interactive searches always respect uppercase characters. | |
394 | |
395 Case sensitiveness in searching operations is normally controlled | |
396 by the variable `case-fold-search' (if non-nil, case is ignored while | |
397 searching). This mechanism has now been slightly improved for | |
398 interactive searches: if the search string (or regexp) contains | |
399 uppercase characters, the searching is forced to be case-sensitive, | |
400 `case-fold-search'. | |
401 | |
402 The new behavior affects all functions performing interactive | |
403 searches, like `zap-to-char', `list-matching-lines', `tags-search' | |
404 etc. The incremental search facility has always behaved that way. | |
405 | |
406 ** Rectangle functions rewritten to avoid inserting extra spaces. | |
407 | |
408 The rectangle functions have been almost completely rewritten in | |
409 order to avoid inserting undesirable spaces, notably at the end of | |
410 lines. Two typical examples of the old behavior were | |
411 `string-rectangle', which filled all lines up to the right side of the | |
412 rectangle, and `clear-rectangle', which filled even empty lines up to | |
413 the left side. All functions have been rewritten to avoid inserting | |
414 unwanted spaces, and an optional prefix now allows them to behave the | |
415 old way. | |
416 | |
417 Also, the behavior of `string-rectangle' is now compliant with | |
418 `pending-delete-mode': if this mode is active, then the string | |
419 replaces the region rectangle. Otherwise, the command does not delete | |
420 or overwrite any existing text. For those who want that feature but do | |
421 not use pending-delete-mode, a new function, `replace-rectangle', is | |
422 available. | |
423 | |
424 As a side effect, the FORCE argument to `move-to-column' now | |
425 understands the special value `coerce', which means that the line | |
426 should not be filled if it is too short to reach the desired column. | |
427 | |
428 ** New command `kill-entire-line' that always kills the entire line. | |
429 | |
430 This kills the entire line at point, regardless of whether the point | |
431 is at the beginning of line, and regardless of the setting of | |
432 `kill-whole-line'. | |
433 | |
434 ** Default values correctly stored in minibuffer histories. | |
435 | |
436 When you press RET at a minibuffer prompt that provides a default | |
437 value, the value is stored in history instead of an empty line. Also, | |
438 you can now edit the default value by pressing the down arrow, | |
439 accessing the logical "future" value. Not all minibuffer prompts have | |
440 yet been converted to support this feature. | |
441 | |
442 ** You can now create "indirect buffers", like in GNU Emacs. | |
443 | |
444 An indirect buffer shares its text with another buffer ("base | |
445 buffer"), but has its own major mode, local variables, extents, and | |
446 narrowing. An indirect buffer has a name of its own, distinct from | |
447 those of the base buffer and all other buffers. An indirect buffer | |
448 cannot itself be visiting a file (though its base buffer can be). | |
449 The base buffer cannot itself be indirect. | |
450 | |
451 Use (make-indirect-buffer BASE-BUFFER NAME) to make an indirect buffer | |
452 named NAME whose base is BASE-BUFFER. If BASE-BUFFER is itself an | |
453 indirect buffer, its base buffer is used as the base for the new | |
454 buffer. | |
455 | |
456 You can make an indirect buffer current, or switch to it in a window, | |
457 just as you would a non-indirect buffer. | |
458 | |
459 The function `buffer-base-buffer' returns a buffer's base buffer or | |
460 nil, if given an ordinary (non-indirect) buffer. The function | |
461 `buffer-indirect-children' returns a list of the indirect children of | |
462 a base buffer. | |
463 | |
464 ** Pixel-based scrolling has been implemented. | |
465 By default this will attempt to scroll in increments equal to the | |
466 height of the default face. Set `window-pixel-scroll-increment' to | |
467 modify this behavior. | |
468 | |
469 ** Operation progress can be displayed using graphical widgets. | |
470 See `progress-feedback' for details. This support has been switched | |
471 on by default for font-lock and some web browsing functions. If you | |
472 do not like this behavior, set `progress-feedback-use-echo-area' to | |
473 nil. | |
474 | |
475 ** User names following a tilde can now be completed at file name prompts. | |
476 e.g. `C-x C-f ~hni<TAB>' will complete to `~hniksic/'. To make this | |
477 operation faster, a cache of user names is maintained internally. | |
478 | |
479 The new primitives available for this purpose are functions named | |
480 `user-name-completion' and `user-name-all-completions'. | |
481 | |
482 ** XEmacs can now play sound using Enlightenment Sound Daemon (ESD). | |
483 It will try NAS first, then ESD, then playing native sound directly. | |
484 | |
485 ** X-Face support is now available under MS Windows. | |
486 If an X-Face library built under MS Windows is available then XEmacs | |
487 will use this at build time. | |
488 | |
489 ** The PostgreSQL Relational Database Management System is now supported. | |
490 It is now possible to build XEmacs so that the programming interface | |
491 to the PostgreSQL RDBMS (libpq) is available in XEmacs Lisp. | |
492 Supported versions of PostgreSQL are 6.5.3 (earlier versions may work, | |
493 but have not been tested) and 7.0-beta1. | |
494 | |
245 ** Indentation no longer indents comments that begin at column zero. | 495 ** Indentation no longer indents comments that begin at column zero. |
246 This makes it easy to deal with commented out regions of code. | 496 This makes it easy to deal with commented out regions of code. |
247 | 497 |
248 ** Init file changes. | 498 ** Face and variable settings can have comments in Customize. |
249 | 499 Customize now supports adding comments about your face and variable |
250 *** XEmacs now supports a `~/.xemacs/init.el' startup file. If | 500 settings using a new menu entry. Comments for variables can also be |
251 it exists, XEmacs will prefer it over `.emacs' and `.emacs.el'. The | 501 assigned by calling `customize-set-(value|variable)' with a prefix |
252 file may be byte-compiled as `~/.xemacs/init.elc'. | 502 argument. |
253 | 503 |
254 If present, the `~/.xemacs/' directory may contain startup files for | 504 ** New locations for early package hierarchies. |
255 XEmacs packages that support it. | 505 XEmacs now locates the early package hierarchies at |
506 ~/.xemacs/mule-packages/ and ~/.xemacs/xemacs-packages/. Previously, | |
507 the early packages were located in ~/.xemacs/. | |
508 | |
509 ** The `auto-save' library has been greatly improved. | |
510 (This lets you group all your auto-save files into one directory, and | |
511 is provided standardly with XEmacs. See `etc/sample.init.el', | |
512 available on the Help menu, for more info on how to set it up.) | |
513 Specifically, it now works under MS Windows, and it uses a completely | |
514 reversible encoding (basically quoted-printable), so that all | |
515 filenames (as well as non-filename buffers) are successfully handled | |
516 regardless of any special characters in their names. | |
517 | |
518 ** New variable `mswindows-alt-by-itself-activates-menu'. | |
519 If you set this variable to nil then pressing and releasing the Alt | |
520 key under MS Windows will no longer activate the menubar. The default | |
521 is t. This is not to be confused with `menu-accelerator-enabled', | |
522 which enables the use of Alt+<Letter> accelerators to invoke the | |
523 menus. | |
524 | |
525 ** The variable `kill-whole-line' now only takes effect interactively. | |
526 | |
527 (This variable controls the behavior of `kill-line'.) Although this | |
528 is a departure from a previous behavior in the case of setting this | |
529 variable `kill-whole-line' to t, it is almost certainly what has | |
530 always been intended, and most likely the old way of doing things | |
531 introduced bugs. | |
532 | |
533 ** Other init-file-related changes. | |
256 | 534 |
257 *** Init file in your home directory may be called `.emacs.el'. | 535 *** Init file in your home directory may be called `.emacs.el'. |
258 | 536 |
259 Like in GNU Emacs 20.4 and on, you can now name the XEmacs init file | 537 Like in GNU Emacs 20.4 and on, you can now name the XEmacs init file |
260 located in your home directory `.emacs.el'. Formerly the name had to | 538 located in your home directory `.emacs.el'. Formerly the name had to |
263 | 541 |
264 If both `.emacs' and `.emacs.el' exist, the latter file is the one | 542 If both `.emacs' and `.emacs.el' exist, the latter file is the one |
265 that is used. | 543 that is used. |
266 | 544 |
267 *** New command-line switches -user-init-file and -user-init-directory. | 545 *** New command-line switches -user-init-file and -user-init-directory. |
546 | |
268 These can be used to specify alternate locations for what is normally | 547 These can be used to specify alternate locations for what is normally |
269 ~/.emacs and ~/.xemacs. | 548 ~/.emacs and ~/.xemacs. |
270 | 549 |
271 Moreover, the `-user <user>' command-line option (which used to only | 550 Moreover, the `-user <user>' command-line option (which used to only |
272 work in unpredictable ways) is now equivalent to `-user-init-file | 551 work in unpredictable ways) is now equivalent to `-user-init-file |
273 ~<user>/.xemacs/init.el -user-init-directory ~<user>/.xemacs', or | 552 ~<user>/.xemacs/init.el -user-init-directory ~<user>/.xemacs', or |
274 `-user-init-file ~<user>/.emacs -user-init-directory ~<user>/.xemacs', | 553 `-user-init-file ~<user>/.emacs -user-init-directory ~<user>/.xemacs', |
275 whichever init file comes first. | 554 whichever init file comes first. |
276 | 555 |
277 *** Custom file will move to ~/.xemacs/custom.el. | |
278 | |
279 Whereas customize settings were formerly stored in the regular init | |
280 file, XEmacs now prefers them to be in a separate file | |
281 `~/.xemacs/custom.el', completely under automatic control. This | |
282 change goes with the migration of the init file, and XEmacs offers | |
283 automatic migration upon startup. | |
284 | |
285 ** New variable `mswindows-alt-by-itself-activates-menu'. | |
286 If you set this variable to nil then pressing and releasing the Alt | |
287 key under MS-Windows will no longer activate the menubar. The default | |
288 is t. This is not to be confused with `menu-accelerator-enabled', | |
289 which enables the use of Alt+<Letter> accelerators to invoke the | |
290 menus. | |
291 | |
292 ** Pixel-based scrolling has been implemented. | |
293 By default this will attempt to scroll in increments equal to the | |
294 height of the default face. Set `window-pixel-scroll-increment' to | |
295 modify this behavior. | |
296 | |
297 ** Operation progress can be displayed using graphical widgets. | |
298 See `progress-feedback' for details. This support has been switched | |
299 on by default for font-lock and some web browsing functions. If you | |
300 do not like this behavior set `progress-feedback-use-echo-area'. | |
301 | |
302 ** The PostgreSQL Relational Database Management System is now supported. | |
303 It is now possible to build XEmacs so that the programming interface | |
304 to the PostgreSQL RDBMS (libpq) is available in XEmacs Lisp. | |
305 Supported versions of PostgreSQL are 6.5.3 (earlier versions may work, | |
306 but have not been tested) and 7.0-beta1. | |
307 | |
308 ** Help functions (e.g. `C-h f') now know how to print macro argument | |
309 lists. If your macro definition included an argument list for the | |
310 sake of help output, you no longer need to do that. | |
311 | |
312 ** Mule changes. | |
313 | |
314 *** Windows 1251 code page is now supported as coding system | |
315 `windows-1251'. | |
316 | |
317 *** Czech, Thai, Cyrillic-KOI8, Vietnamese, Ethiopic support now | |
318 available. | |
319 | |
320 *** The appropriate characters in Latin 3 and Latin 4 character sets | |
321 are correctly defined as words. | |
322 | |
323 *** The default coding-priority-list is now safer. This means that if | |
324 you have no language environment set, Mule no longer automatically | |
325 recognizes ISO 2022 escapes in your files. This makes editing binary | |
326 files safe. | |
327 | |
328 ** Etags changes. | 556 ** Etags changes. |
329 | 557 |
330 *** In DOS, etags looks for file.cgz if it cannot find file.c. | 558 *** In DOS, etags looks for file.cgz if it cannot find file.c. |
331 | 559 |
332 *** New option --ignore-case-regex is an alternative to --regex. It is now | 560 *** New option --ignore-case-regex is an alternative to --regex. |
333 possible to bind a regexp to a language, by prepending the regexp with | 561 It is now possible to bind a regexp to a language, by prepending the |
334 {lang}, where lang is one of the languages that `etags --help' prints | 562 regexp with {lang}, where lang is one of the languages that `etags |
335 out. This feature is useful especially for regex files, where each | 563 --help' prints out. This feature is useful especially for regex |
336 line contains a regular expression. The manual contains details. | 564 files, where each line contains a regular expression. The manual |
337 | 565 contains details. |
338 *** In C and derived languages, etags creates tags for function | 566 |
567 *** New option --declarations, for C-type languages. | |
568 In C and derived languages, etags creates tags for function | |
339 declarations when given the --declarations option. | 569 declarations when given the --declarations option. |
340 | 570 |
341 *** In C++, tags are created for "operator". The tags have the form | 571 *** In C++, tags are created for "operator". |
342 "operator+", without spaces between the keyword and the operator. | 572 The tags have the form "operator+", without spaces between the |
343 | 573 keyword and the operator. |
344 *** New language Ada: tags are functions, procedures, packages, tasks, and | 574 |
345 types. | 575 *** Ada now supported. |
576 Tags are functions, procedures, packages, tasks, and types. | |
346 | 577 |
347 *** In Fortran, procedure is no longer tagged. | 578 *** In Fortran, procedure is no longer tagged. |
348 | 579 |
349 *** In Java, tags are created for "interface". | 580 *** In Java, tags are created for "interface". |
350 | 581 |
351 *** In Lisp, "(defstruct (foo", "(defun (operator" and similar constructs | 582 *** In Lisp, def-type constructs are now tagged. |
352 are now tagged. | 583 This includes "(defstruct (foo", "(defun (operator" and similar constructs. |
353 | 584 |
354 *** In Perl, the --globals option tags global variables. my and local | 585 *** In Perl, the --globals option tags global variables. |
355 variables are tagged. | 586 my and local variables are tagged. |
356 | 587 |
357 *** New language Python: def and class at the beginning of a line are tags. | 588 *** Python now supported. |
358 | 589 def and class at the beginning of a line are tags. |
359 *** .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is | 590 |
591 *** New file extensions recognized: .ss, .pdb, .psw. | |
592 .ss files are Scheme files, .pdb is Postscript with C syntax, .psw is | |
360 for PSWrap. | 593 for PSWrap. |
361 | 594 |
362 | 595 |
363 * Lisp and internal changes in XEmacs 21.4 | 596 * Lisp and internal changes in XEmacs 21.4 |
364 ========================================== | 597 ========================================== |
435 buttons, scrollbars, combo boxes, edit fields and progress gauges in a | 668 buttons, scrollbars, combo boxes, edit fields and progress gauges in a |
436 buffer. As a side effect subwindow support now works once again. | 669 buffer. As a side effect subwindow support now works once again. |
437 | 670 |
438 All of this is still fairly experimental and there is no | 671 All of this is still fairly experimental and there is no |
439 documentation. The current APIs might change in a future version of | 672 documentation. The current APIs might change in a future version of |
440 XEmacs. Some widgets are only available under MS-Windows. See the | 673 XEmacs. Some widgets are only available under MS Windows. See the |
441 file glyphs-test.el in the XEmacs src distribution for examples of | 674 file glyphs-test.el in the XEmacs src distribution for examples of |
442 usage. | 675 usage. |
443 | 676 |
444 The buffers-tab functionality and progress gauge have been implemented | 677 The buffers-tab functionality and progress gauge have been implemented |
445 using this feature. | 678 using this feature. |
446 | |
447 ** A new Windows installer, netinstall ported from Cygwin. | |
448 | |
449 Nearly complete automation of the XEmacs install process from | |
450 ftp.xemacs.org. Includes selection of Lisp packages to install, etc. | |
451 | |
452 ** Syntax tables may now be specified for a part of a buffer by | |
453 attaching the `syntax-table' property to an extent. For compatibility | |
454 with GNU Emacs, you may use the text-property interface to achieve the | |
455 same result. | |
456 | 679 |
457 ** Case translation now supports international characters. | 680 ** Case translation now supports international characters. |
458 | 681 |
459 *** Instead of being lists of 256-character strings, case tables are | 682 *** Instead of being lists of 256-character strings, case tables are |
460 now opaque objects. The interface to access them is almost the same, | 683 now opaque objects. The interface to access them is almost the same, |
471 know. | 694 know. |
472 | 695 |
473 *** The code that implements case-insensitive search has been modified | 696 *** The code that implements case-insensitive search has been modified |
474 to respect the case table settings. This also applies to regexp | 697 to respect the case table settings. This also applies to regexp |
475 search. | 698 search. |
699 | |
700 ** Syntax tables may now be specified for a part of a buffer by | |
701 attaching the `syntax-table' property to an extent. For compatibility | |
702 with GNU Emacs, you may use the text-property interface to achieve the | |
703 same result. | |
476 | 704 |
477 ** Values of variables `user-init-file' and `user-init-directory' are | 705 ** Values of variables `user-init-file' and `user-init-directory' are |
478 now absolute file/directory names. Previously, both variables used to | 706 now absolute file/directory names. Previously, both variables used to |
479 be relative to `(concat "~" init-file-user)'. This turned out to be | 707 be relative to `(concat "~" init-file-user)'. This turned out to be |
480 too complicated for most packages (and some core Lisp files) to use | 708 too complicated for most packages (and some core Lisp files) to use |