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