-
Notifications
You must be signed in to change notification settings - Fork 72
/
NEWS.21
4903 lines (3560 loc) · 188 KB
/
NEWS.21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
GNU Emacs NEWS -- history of user-visible changes. 2006-05-31
Copyright (C) 2000-2023 Free Software Foundation, Inc.
See the end of the file for license conditions.
This file is about changes in Emacs version 21.
* Emacs 21.4 is a bug-fix release with no user-visible changes.
* Installation changes in Emacs 21.3
** Support for GNU/Linux on little-endian MIPS and on IBM S390 has
been added.
* Changes in Emacs 21.3
** The obsolete C mode (c-mode.el) has been removed to avoid problems
with Custom.
** UTF-16 coding systems are available, encoding the same characters
as mule-utf-8.
** There is a new language environment for UTF-8 (set up automatically
in UTF-8 locales).
** Translation tables are available between equivalent characters in
different Emacs charsets -- for instance `e with acute' coming from the
Latin-1 and Latin-2 charsets. User options 'unify-8859-on-encoding-mode'
and 'unify-8859-on-decoding-mode' respectively turn on translation
between ISO 8859 character sets ('unification') on encoding
(e.g. writing a file) and decoding (e.g. reading a file). Note that
'unify-8859-on-encoding-mode' is useful and safe, but
'unify-8859-on-decoding-mode' can cause text to change when you read
it and write it out again without edits, so it is not generally advisable.
By default 'unify-8859-on-encoding-mode' is turned on.
** In Emacs running on the X window system, the default value of
'selection-coding-system' is now 'compound-text-with-extensions'.
If you want the old behavior, set selection-coding-system to
compound-text, which may be significantly more efficient. Using
compound-text-with-extensions seems to be necessary only for decoding
text from applications under XFree86 4.2, whose behavior is actually
contrary to the compound text specification.
* Installation changes in Emacs 21.2
** Support for BSD/OS 5.0 has been added.
** Support for AIX 5.1 was added.
* Changes in Emacs 21.2
** Emacs now supports compound-text extended segments in X selections.
X applications can use `extended segments' to encode characters in
compound text that belong to character sets which are not part of the
list of approved standard encodings for X, e.g. Big5. To paste
selections with such characters into Emacs, use the new coding system
'compound-text-with-extensions' as the value of 'selection-coding-system'.
** The default values of 'tooltip-delay' and 'tooltip-hide-delay'
were changed.
** On terminals whose erase-char is ^H (Backspace), Emacs
now uses 'normal-erase-is-backspace-mode'.
** When the *scratch* buffer is recreated, its mode is set from
'initial-major-mode', which normally is 'lisp-interaction-mode',
instead of using 'default-major-mode'.
** The new option 'Info-scroll-prefer-subnodes' causes Info to behave
like the stand-alone Info reader (from the GNU Texinfo package) as far
as motion between nodes and their subnodes is concerned. If it is t
(the default), Emacs behaves as before when you type SPC in a menu: it
visits the subnode pointed to by the first menu entry. If this option
is nil, SPC scrolls to the end of the current node, and only then goes
to the first menu item, like the stand-alone reader does.
This change was already in Emacs 21.1, but wasn't advertised in the
NEWS.
* Lisp Changes in Emacs 21.2
** The meanings of 'scroll-up-aggressively' and 'scroll-down-aggressively'
have been interchanged, so that the former now controls scrolling up,
and the latter now controls scrolling down.
** The variable 'compilation-parse-errors-filename-function' can
be used to transform filenames found in compilation output.
* Installation Changes in Emacs 21.1
See the INSTALL file for information on installing extra libraries and
fonts to take advantage of the new graphical features and extra
charsets in this release.
** Support for GNU/Linux on IA64 machines has been added.
** Support for LynxOS has been added.
** There are new configure options associated with the support for
images and toolkit scrollbars. Use the --help option in 'configure'
to list them.
** You can build a 64-bit Emacs for SPARC/Solaris systems which
support 64-bit executables and also on Irix 6.5. This increases the
maximum buffer size. See etc/MACHINES for instructions. Changes to
build on other 64-bit systems should be straightforward modulo any
necessary changes to unexec.
** There is a new configure option '--disable-largefile' to omit
Unix-98-style support for large files if that is available.
** There is a new configure option '--without-xim' that instructs
Emacs to not use X Input Methods (XIM), if these are available.
** 'movemail' defaults to supporting POP. You can turn this off using
the --without-pop configure option, should that be necessary.
** This version can be built for the Macintosh, but does not implement
all of the new display features described below. The port currently
lacks unexec, asynchronous processes, and networking support. See the
"Emacs and the Mac OS" appendix in the Emacs manual, for the
description of aspects specific to the Mac.
** Note that the MS-Windows port does not yet implement various of the
new display features described below.
* Changes in Emacs 21.1
** Emacs has a new redisplay engine.
The new redisplay handles characters of variable width and height.
Italic text can be used without redisplay problems. Fonts containing
oversized characters, i.e. characters larger than the logical height
of a font can be used. Images of various formats can be displayed in
the text.
** Emacs has a new face implementation.
The new faces no longer fundamentally use X font names to specify the
font. Instead, each face has several independent attributes--family,
height, width, weight and slant--that it may or may not specify.
These attributes can be merged from various faces, and then together
specify a font.
Faces are supported on terminals that can display color or fonts.
These terminal capabilities are auto-detected. Details can be found
under Lisp changes, below.
** Emacs can display faces on TTY frames.
Emacs automatically detects terminals that are able to display colors.
Faces with a weight greater than normal are displayed extra-bright, if
the terminal supports it. Faces with a weight less than normal and
italic faces are displayed dimmed, if the terminal supports it.
Underlined faces are displayed underlined if possible. Other face
attributes such as 'overline', 'strike-through', and 'box' are ignored
on terminals.
The command-line options `-fg COLOR', `-bg COLOR', and '-rv' are now
supported on character terminals.
Emacs automatically remaps all X-style color specifications to one of
the colors supported by the terminal. This means you could have the
same color customizations that work both on a windowed display and on
a TTY or when Emacs is invoked with the -nw option.
** New default font is Courier 12pt under X.
** Sound support
Emacs supports playing sound files on GNU/Linux and FreeBSD (Voxware
driver and native BSD driver, a.k.a. Luigi's driver). Currently
supported file formats are RIFF-WAVE (*.wav) and Sun Audio (*.au).
You must configure Emacs with the option '--with-sound=yes' to enable
sound support.
** Emacs now resizes mini-windows if appropriate.
If a message is longer than one line, or minibuffer contents are
longer than one line, Emacs can resize the minibuffer window unless it
is on a frame of its own. You can control resizing and the maximum
minibuffer window size by setting the following variables:
- User option: 'max-mini-window-height'
Maximum height for resizing mini-windows. If a float, it specifies a
fraction of the mini-window frame's height. If an integer, it
specifies a number of lines.
Default is 0.25.
- User option: 'resize-mini-windows'
How to resize mini-windows. If nil, don't resize. If t, always
resize to fit the size of the text. If 'grow-only', let mini-windows
grow only, until they become empty, at which point they are shrunk
again.
Default is 'grow-only'.
** LessTif support.
Emacs now runs with the LessTif toolkit (see
<https://lesstif.sourceforge.net>). You will need version 0.92.26, or later.
** LessTif/Motif file selection dialog.
When Emacs is configured to use LessTif or Motif, reading a file name
from a menu will pop up a file selection dialog if 'use-dialog-box' is
non-nil.
** File selection dialog on MS-Windows is supported.
When a file is visited by clicking File->Open, the MS-Windows version
now pops up a standard file selection dialog where you can select a
file to visit. File->Save As also pops up that dialog.
** Toolkit scroll bars.
Emacs now uses toolkit scroll bars if available. When configured for
LessTif/Motif, it will use that toolkit's scroll bar. Otherwise, when
configured for Lucid and Athena widgets, it will use the Xaw3d scroll
bar if Xaw3d is available. You can turn off the use of toolkit scroll
bars by specifying '--with-toolkit-scroll-bars=no' when configuring
Emacs.
When you encounter problems with the Xaw3d scroll bar, watch out how
Xaw3d is compiled on your system. If the Makefile generated from
Xaw3d's Imakefile contains a '-DNARROWPROTO' compiler option, and your
Emacs system configuration file `s/your-system.h' does not contain a
define for NARROWPROTO, you might consider adding it. Take
`s/freebsd.h' as an example.
Alternatively, if you don't have access to the Xaw3d source code, take
a look at your system's imake configuration file, for example in the
directory `/usr/X11R6/lib/X11/config' (paths are different on
different systems). You will find files `*.cf' there. If your
system's cf-file contains a line like `#define NeedWidePrototypes NO',
add a `#define NARROWPROTO' to your Emacs system configuration file.
The reason for this is that one Xaw3d function uses 'double' or
'float' function parameters depending on the setting of NARROWPROTO.
This is not a problem when Imakefiles are used because each system's
imake configuration file contains the necessary information. Since
Emacs doesn't use imake, this has do be done manually.
** Tool bar support.
Emacs supports a tool bar at the top of a frame under X. For details
of how to define a tool bar, see the page describing Lisp-level
changes. Tool-bar global minor mode controls whether or not it is
displayed and is on by default. The appearance of the bar is improved
if Emacs has been built with XPM image support. Otherwise monochrome
icons will be used.
To make the tool bar more useful, we need contributions of extra icons
for specific modes (with copyright assignments).
** Tooltips.
Tooltips are small X windows displaying a help string at the current
mouse position. The Lisp package 'tooltip' implements them. You can
turn them off via the user option 'tooltip-mode'.
Tooltips also provides support for GUD debugging. If activated,
variable values can be displayed in tooltips by pointing at them with
the mouse in source buffers. You can customize various aspects of the
tooltip display in the group 'tooltip'.
** Automatic Hscrolling
Horizontal scrolling now happens automatically if
'automatic-hscrolling' is set (the default). This setting can be
customized.
If a window is scrolled horizontally with 'set-window-hscroll', or
'scroll-left'/'scroll-right' (C-x <, C-x >), this serves as a lower bound
for automatic horizontal scrolling. Automatic scrolling will scroll
the text more to the left if necessary, but won't scroll the text more
to the right than the column set with set-window-hscroll etc.
** When using a windowing terminal, each Emacs window now has a cursor
of its own. By default, when a window is selected, the cursor is
solid; otherwise, it is hollow. The user-option
'cursor-in-non-selected-windows' controls how to display the
cursor in non-selected windows. If nil, no cursor is shown, if
non-nil a hollow box cursor is shown.
** Fringes to the left and right of windows are used to display
truncation marks, continuation marks, overlay arrows and alike. The
foreground, background, and stipple of these areas can be changed by
customizing face 'fringe'.
** The mode line under X is now drawn with shadows by default.
You can change its appearance by modifying the face 'mode-line'.
In particular, setting the `:box' attribute to nil turns off the 3D
appearance of the mode line. (The 3D appearance makes the mode line
occupy more space, and thus might cause the first or the last line of
the window to be partially obscured.)
The variable 'mode-line-inverse-video', which was used in older
versions of emacs to make the mode-line stand out, is now deprecated.
However, setting it to nil will cause the 'mode-line' face to be
ignored, and mode-lines to be drawn using the default text face.
** Mouse-sensitive mode line.
Different parts of the mode line have been made mouse-sensitive on all
systems which support the mouse. Moving the mouse to a
mouse-sensitive part in the mode line changes the appearance of the
mouse pointer to an arrow, and help about available mouse actions is
displayed either in the echo area, or in the tooltip window if you
have enabled one.
Currently, the following actions have been defined:
- Mouse-1 on the buffer name in the mode line goes to the next buffer.
- Mouse-3 on the buffer-name goes to the previous buffer.
- Mouse-2 on the read-only or modified status in the mode line (`%' or
`*') toggles the status.
- Mouse-3 on the major mode name displays a major mode menu.
- Mouse-3 on the mode name displays a minor-mode menu.
** Hourglass pointer
Emacs can optionally display an hourglass pointer under X. You can
turn the display on or off by customizing group 'cursor'.
** Blinking cursor
M-x blink-cursor-mode toggles a blinking cursor under X and on
terminals having terminal capabilities 'vi', 'vs', and 've'. Blinking
and related parameters like frequency and delay can be customized in
the group 'cursor'.
** New font-lock support mode 'jit-lock-mode'.
This support mode is roughly equivalent to 'lazy-lock' but is
generally faster. It supports stealth and deferred fontification.
See the documentation of the function 'jit-lock-mode' for more
details.
Font-lock uses jit-lock-mode as default support mode, so you don't
have to do anything to activate it.
** The default binding of the Delete key has changed.
The new user-option 'normal-erase-is-backspace' can be set to
determine the effect of the Delete and Backspace function keys.
On window systems, the default value of this option is chosen
according to the keyboard used. If the keyboard has both a Backspace
key and a Delete key, and both are mapped to their usual meanings, the
option's default value is set to t, so that Backspace can be used to
delete backward, and Delete can be used to delete forward. On
keyboards which either have only one key (usually labeled DEL), or two
keys DEL and BS which produce the same effect, the option's value is
set to nil, and these keys delete backward.
If not running under a window system, setting this option accomplishes
a similar effect by mapping C-h, which is usually generated by the
Backspace key, to DEL, and by mapping DEL to C-d via
'keyboard-translate'. The former functionality of C-h is available on
the F1 key. You should probably not use this setting on a text-only
terminal if you don't have both Backspace, Delete and F1 keys.
Programmatically, you can call function 'normal-erase-is-backspace-mode'
to toggle the behavior of the Delete and Backspace keys.
** The default for user-option 'next-line-add-newlines' has been
changed to nil, i.e. C-n will no longer add newlines at the end of a
buffer by default.
** The <home> and <end> keys now move to the beginning or end of the
current line, respectively. C-<home> and C-<end> move to the
beginning and end of the buffer.
** Emacs now checks for recursive loads of Lisp files. If the
recursion depth exceeds 'recursive-load-depth-limit', an error is
signaled.
** When an error is signaled during the loading of the user's init
file, Emacs now pops up the *Messages* buffer.
** Emacs now refuses to load compiled Lisp files which weren't
compiled with Emacs. Set 'load-dangerous-libraries' to t to change
this behavior.
The reason for this change is an incompatible change in XEmacs's byte
compiler. Files compiled with XEmacs can contain byte codes that let
Emacs dump core.
** Toggle buttons and radio buttons in menus.
When compiled with LessTif (or Motif) support, Emacs uses toolkit
widgets for radio and toggle buttons in menus. When configured for
Lucid, Emacs draws radio buttons and toggle buttons similar to Motif.
** The menu bar configuration has changed. The new configuration is
more CUA-compliant. The most significant change is that Options is
now a separate menu-bar item, with Mule and Customize as its submenus.
** Item Save Options on the Options menu allows saving options set
using that menu.
** Highlighting of trailing whitespace.
When 'show-trailing-whitespace' is non-nil, Emacs displays trailing
whitespace in the face 'trailing-whitespace'. Trailing whitespace is
defined as spaces or tabs at the end of a line. To avoid busy
highlighting when entering new text, trailing whitespace is not
displayed if point is at the end of the line containing the
whitespace.
** C-x 5 1 runs the new command 'delete-other-frames' which deletes
all frames except the selected one.
** The new user-option 'confirm-kill-emacs' can be customized to
let Emacs ask for confirmation before exiting.
** The header line in an Info buffer is now displayed as an emacs
header-line (which is like a mode-line, but at the top of the window),
so that it remains visible even when the buffer has been scrolled.
This behavior may be disabled by customizing the option
'Info-use-header-line'.
** Polish, Czech, German, and French translations of Emacs' reference card
have been added. They are named `pl-refcard.tex', `cs-refcard.tex',
`de-refcard.tex' and `fr-refcard.tex'. PostScript files are included.
** An `Emacs Survival Guide', etc/survival.tex, is available.
** A reference card for Dired has been added. Its name is
`dired-ref.tex'. A French translation is available in
`fr-drdref.tex'.
** C-down-mouse-3 is bound differently. Now if the menu bar is not
displayed it pops up a menu containing the items which would be on the
menu bar. If the menu bar is displayed, it pops up the major mode
menu or the Edit menu if there is no major mode menu.
** Variable 'load-path' is no longer customizable through Customize.
You can no longer use `M-x customize-variable' to customize 'load-path'
because it now contains a version-dependent component. You can still
use 'add-to-list' and 'setq' to customize this variable in your
`~/.emacs' init file or to modify it from any Lisp program in general.
** C-u C-x = provides detailed information about the character at
point in a pop-up window.
** Emacs can now support 'wheeled' mice (such as the MS IntelliMouse)
under XFree86. To enable this, use the 'mouse-wheel-mode' command, or
customize the variable 'mouse-wheel-mode'.
The variables 'mouse-wheel-follow-mouse' and 'mouse-wheel-scroll-amount'
determine where and by how much buffers are scrolled.
** Emacs' auto-save list files are now by default stored in a
sub-directory `.emacs.d/auto-save-list/' of the user's home directory.
(On MS-DOS, this subdirectory's name is `_emacs.d/auto-save.list/'.)
You can customize 'auto-save-list-file-prefix' to change this location.
** The function 'getenv' is now callable interactively.
** The new user-option 'even-window-heights' can be set to nil
to prevent 'display-buffer' from evening out window heights.
** The new command M-x delete-trailing-whitespace RET will delete the
trailing whitespace within the current restriction. You can also add
this function to 'write-file-hooks' or 'local-write-file-hooks'.
** When visiting a file with M-x find-file-literally, no newlines will
be added to the end of the buffer even if 'require-final-newline' is
non-nil.
** The new user-option 'find-file-suppress-same-file-warnings' can be
set to suppress warnings ``X and Y are the same file'' when visiting a
file that is already visited under a different name.
** The new user-option 'electric-help-shrink-window' can be set to
nil to prevent adjusting the help window size to the buffer size.
** New command M-x describe-character-set reads a character set name
and displays information about that.
** The new variable 'auto-mode-interpreter-regexp' contains a regular
expression matching interpreters, for file mode determination.
This regular expression is matched against the first line of a file to
determine the file's mode in 'set-auto-mode' when Emacs can't deduce a
mode from the file's name. If it matches, the file is assumed to be
interpreted by the interpreter matched by the second group of the
regular expression. The mode is then determined as the mode
associated with that interpreter in 'interpreter-mode-alist'.
** New function 'executable-make-buffer-file-executable-if-script-p' is
suitable as an 'after-save-hook' as an alternative to 'executable-chmod'.
** The most preferred coding-system is now used to save a buffer if
buffer-file-coding-system is 'undecided' and it is safe for the buffer
contents. (The most preferred is set by set-language-environment or
by M-x prefer-coding-system.) Thus if you visit an ASCII file and
insert a non-ASCII character from your current language environment,
the file will be saved silently with the appropriate coding.
Previously you would be prompted for a safe coding system.
** The many obsolete language `setup-...-environment' commands have
been removed -- use 'set-language-environment'.
** The new Custom option 'keyboard-coding-system' specifies a coding
system for keyboard input.
** New variable 'inhibit-iso-escape-detection' determines if Emacs'
coding system detection algorithm should pay attention to ISO2022's
escape sequences. If this variable is non-nil, the algorithm ignores
such escape sequences. The default value is nil, and it is
recommended not to change it except for the special case that you
always want to read any escape code verbatim. If you just want to
read a specific file without decoding escape codes, use C-x RET c
('universal-coding-system-argument'). For instance, C-x RET c latin-1
RET C-x C-f filename RET.
** Variable 'default-korean-keyboard' is initialized properly from the
environment variable `HANGUL_KEYBOARD_TYPE'.
** New command M-x list-charset-chars reads a character set name and
displays all characters in that character set.
** M-x set-terminal-coding-system (C-x RET t) now allows CCL-based
coding systems such as cpXXX and cyrillic-koi8.
** Emacs now attempts to determine the initial language environment
and preferred and locale coding systems systematically from the
LC_ALL, LC_CTYPE, and LANG environment variables during startup.
** New language environments 'Polish', 'Latin-8' and 'Latin-9'.
Latin-8 and Latin-9 correspond respectively to the ISO character sets
8859-14 (Celtic) and 8859-15 (updated Latin-1, with the Euro sign).
GNU Intlfonts doesn't support these yet but recent X releases have
8859-15. See etc/INSTALL for information on obtaining extra fonts.
There are new Leim input methods for Latin-8 and Latin-9 prefix (only)
and Polish 'slash'.
** New language environments 'Dutch' and 'Spanish'.
These new environments mainly select appropriate translations
of the tutorial.
** In Ethiopic language environment, special key bindings for
function keys are changed as follows. This is to conform to "Emacs
Lisp Coding Convention".
new command old-binding
--- ------- -----------
f3 'ethio-fidel-to-sera-buffer' f5
S-f3 'ethio-fidel-to-sera-region' f5
C-f3 'ethio-fidel-to-sera-mail-or-marker' f5
f4 'ethio-sera-to-fidel-buffer' unchanged
S-f4 'ethio-sera-to-fidel-region' unchanged
C-f4 'ethio-sera-to-fidel-mail-or-marker' unchanged
S-f5 'ethio-toggle-punctuation' f3
S-f6 'ethio-modify-vowel' f6
S-f7 'ethio-replace-space' f7
S-f8 'ethio-input-special-character' f8
S-f9 'ethio-replace-space' unchanged
C-f9 'ethio-toggle-space' f2
** There are new Leim input methods.
New input methods "turkish-postfix", "turkish-alt-postfix",
"greek-mizuochi", "TeX", and "greek-babel" are now part of the Leim
package.
** The rule of input method "slovak" is slightly changed. Now the
rules for translating "q" and "Q" to "`" (backquote) are deleted, thus
typing them inserts "q" and "Q" respectively. Rules for translating
"=q", "+q", "=Q", and "+Q" to "`" are also deleted. Now, to input
"`", you must type "=q".
** When your terminal can't display characters from some of the ISO
8859 character sets but can display Latin-1, you can display
more-or-less mnemonic sequences of ASCII/Latin-1 characters instead of
empty boxes (under a window system) or question marks (not under a
window system). Customize the option 'latin1-display' to turn this
on.
** M-; now calls 'comment-dwim' which tries to do something clever based
on the context. M-x kill-comment is now an alias to 'comment-kill',
defined in newcomment.el. You can choose different styles of region
commenting with the variable 'comment-style'.
** New user options 'display-time-mail-face' and
'display-time-use-mail-icon' control the appearance of mode-line mail
indicator used by the display-time package. On a suitable display the
indicator can be an icon and is mouse-sensitive.
** On window-systems, additional space can be put between text lines
on the display using several methods
- By setting frame parameter 'line-spacing' to PIXELS. PIXELS must be
a positive integer, and specifies that PIXELS number of pixels should
be put below text lines on the affected frame or frames.
- By setting X resource 'lineSpacing', class 'LineSpacing'. This is
equivalent to specifying the frame parameter.
- By specifying '--line-spacing=N' or `-lsp N' on the command line.
- By setting buffer-local variable 'line-spacing'. The meaning is
the same, but applies to the a particular buffer only.
** The new command 'clone-indirect-buffer' can be used to create
an indirect buffer that is a twin copy of the current buffer. The
command 'clone-indirect-buffer-other-window', bound to C-x 4 c,
does the same but displays the indirect buffer in another window.
** New user options 'backup-directory-alist' and
'make-backup-file-name-function' control the placement of backups,
typically in a single directory or in an invisible sub-directory.
** New commands 'iso-iso2sgml' and 'iso-sgml2iso' convert between Latin-1
characters and the corresponding SGML (HTML) entities.
** New X resources recognized
*** The X resource 'synchronous', class 'Synchronous', specifies
whether Emacs should run in synchronous mode. Synchronous mode
is useful for debugging X problems.
Example:
emacs.synchronous: true
*** The X resource `visualClass, class 'VisualClass', specifies the
visual Emacs should use. The resource's value should be a string of
the form 'CLASS-DEPTH', where CLASS is the name of the visual class,
and DEPTH is the requested color depth as a decimal number. Valid
visual class names are
TrueColor
PseudoColor
DirectColor
StaticColor
GrayScale
StaticGray
Visual class names specified as X resource are case-insensitive, i.e.
'pseudocolor', 'Pseudocolor' and 'PseudoColor' all have the same
meaning.
The program 'xdpyinfo' can be used to list the visual classes
supported on your display, and which depths they have. If
'visualClass' is not specified, Emacs uses the display's default
visual.
Example:
emacs.visualClass: TrueColor-8
*** The X resource 'privateColormap', class 'PrivateColormap',
specifies that Emacs should use a private colormap if it is using the
default visual, and that visual is of class PseudoColor. Recognized
resource values are 'true' or 'on'.
Example:
emacs.privateColormap: true
** Faces and frame parameters.
There are four new faces 'scroll-bar', 'border', 'cursor' and 'mouse'.
Setting the frame parameters 'scroll-bar-foreground' and
'scroll-bar-background' sets foreground and background color of face
'scroll-bar' and vice versa. Setting frame parameter 'border-color'
sets the background color of face 'border' and vice versa. Likewise
for frame parameters 'cursor-color' and face 'cursor', and frame
parameter 'mouse-color' and face 'mouse'.
Changing frame parameter 'font' sets font-related attributes of the
'default' face and vice versa. Setting frame parameters
'foreground-color' or 'background-color' sets the colors of the
'default' face and vice versa.
** New face 'menu'.
The face 'menu' can be used to change colors and font of Emacs' menus.
** New frame parameter 'screen-gamma' for gamma correction.
The new frame parameter 'screen-gamma' specifies gamma-correction for
colors. Its value may be nil, the default, in which case no gamma
correction occurs, or a number > 0, usually a float, that specifies
the screen gamma of a frame's display.
PC monitors usually have a screen gamma of 2.2. smaller values result
in darker colors. You might want to try a screen gamma of 1.5 for LCD
color displays. The viewing gamma Emacs uses is 0.4545. (1/2.2).
The X resource name of this parameter is 'screenGamma', class
'ScreenGamma'.
** Tabs and variable-width text.
Tabs are now displayed with stretch properties; the width of a tab is
defined as a multiple of the normal character width of a frame, and is
independent of the fonts used in the text where the tab appears.
Thus, tabs can be used to line up text in different fonts.
** Enhancements of the Lucid menu bar
*** The Lucid menu bar now supports the resource "margin".
emacs.pane.menubar.margin: 5
The default margin is 4 which makes the menu bar appear like the
LessTif/Motif one.
*** Arrows that indicate sub-menus are now drawn with shadows, as in
LessTif and Motif.
** A block cursor can be drawn as wide as the glyph under it under X.
As an example: if a block cursor is over a tab character, it will be
drawn as wide as that tab on the display. To do this, set
'x-stretch-cursor' to a non-nil value.
** Empty display lines at the end of a buffer may be marked with a
bitmap (this is similar to the tilde displayed by vi and Less).
This behavior is activated by setting the buffer-local variable
'indicate-empty-lines' to a non-nil value. The default value of this
variable is found in 'default-indicate-empty-lines'.
** There is a new "aggressive" scrolling method.
When scrolling up because point is above the window start, if the
value of the buffer-local variable 'scroll-up-aggressively' is a
number, Emacs chooses a new window start so that point ends up that
fraction of the window's height from the top of the window.
When scrolling down because point is below the window end, if the
value of the buffer-local variable 'scroll-down-aggressively' is a
number, Emacs chooses a new window start so that point ends up that
fraction of the window's height from the bottom of the window.
** You can now easily create new *Info* buffers using either
M-x clone-buffer, C-u m <entry> RET or C-u g <entry> RET.
M-x clone-buffer can also be used on *Help* and several other special
buffers.
** The command 'Info-search' now uses a search history.
** Listing buffers with M-x list-buffers (C-x C-b) now shows
abbreviated file names. Abbreviations can be customized by changing
'directory-abbrev-alist'.
** A new variable, 'backup-by-copying-when-privileged-mismatch', gives
the highest file uid for which 'backup-by-copying-when-mismatch' will be
forced on. The assumption is that uids less than or equal to this
value are special uids (root, bin, daemon, etc.--not real system
users) and that files owned by these users should not change ownership,
even if your system policy allows users other than root to edit them.
The default is 200; set the variable to nil to disable the feature.
** The rectangle commands now avoid inserting undesirable spaces,
notably at the end of lines.
All these functions have been rewritten to avoid inserting unwanted
spaces, and an optional prefix now allows them to behave the old way.
** The function 'replace-rectangle' is an alias for 'string-rectangle'.
** The new command M-x string-insert-rectangle is like 'string-rectangle',
but inserts text instead of replacing it.
** The new command M-x query-replace-regexp-eval acts like
query-replace-regexp, but takes a Lisp expression which is evaluated
after each match to get the replacement text.
** M-x query-replace recognizes a new command 'e' (or 'E') that lets
you edit the replacement string.
** The new command 'mail-abbrev-complete-alias', bound to 'M-TAB'
(if you load the library 'mailabbrev'), lets you complete mail aliases
in the text, analogous to 'lisp-complete-symbol'.
** The variable 'echo-keystrokes' may now have a floating point value.
** If your init file is compiled (.emacs.elc), 'user-init-file' is set
to the source name (.emacs.el), if that exists, after loading it.
** The help string specified for a menu-item whose definition contains
the property `:help HELP' is now displayed under X, on MS-Windows, and
MS-DOS, either in the echo area or with tooltips. Many standard menus
displayed by Emacs now have help strings.
--
** New user option 'read-mail-command' specifies a command to use to
read mail from the menu etc.
** The environment variable 'EMACSLOCKDIR' is no longer used on MS-Windows.
This environment variable was used when creating lock files. Emacs on
MS-Windows does not use this variable anymore. This change was made
before Emacs 21.1, but wasn't documented until now.
** Highlighting of mouse-sensitive regions is now supported in the
MS-DOS version of Emacs.
** The new command 'msdos-set-mouse-buttons' forces the MS-DOS version
of Emacs to behave as if the mouse had a specified number of buttons.
This comes handy with mice that don't report their number of buttons
correctly. One example is the wheeled mice, which report 3 buttons,
but clicks on the middle button are not passed to the MS-DOS version
of Emacs.
** Customize changes
*** Customize now supports comments about customized items. Use the
'State' menu to add comments, or give a prefix argument to
M-x customize-set-variable or M-x customize-set-value. Note that
customization comments will cause the customizations to fail in
earlier versions of Emacs.
*** The new option 'custom-buffer-done-function' says whether to kill
Custom buffers when you've done with them or just bury them (the
default).
*** If Emacs was invoked with the '-q' or '--no-init-file' options, it
does not allow you to save customizations in your `~/.emacs' init
file. This is because saving customizations from such a session would
wipe out all the other customizations you might have on your init
file.
** If Emacs was invoked with the '-q' or '--no-init-file' options, it
does not save disabled and enabled commands for future sessions, to
avoid overwriting existing customizations of this kind that are
already in your init file.
** New features in evaluation commands
*** The commands to evaluate Lisp expressions, such as C-M-x in Lisp
modes, C-j in Lisp Interaction mode, and M-:, now bind the variables
'print-level', 'print-length', and 'debug-on-error' based on the new
customizable variables 'eval-expression-print-level',
'eval-expression-print-length', and 'eval-expression-debug-on-error'.
The default values for the first two of these variables are 12 and 4
respectively, which means that 'eval-expression' now prints at most
the first 12 members of a list and at most 4 nesting levels deep (if
the list is longer or deeper than that, an ellipsis `...' is
printed).
<RET> or <mouse-2> on the printed text toggles between an abbreviated
printed representation and an unabbreviated one.
The default value of eval-expression-debug-on-error is t, so any error
during evaluation produces a backtrace.
*** The function 'eval-defun' (C-M-x) now loads Edebug and instruments
code when called with a prefix argument.
** CC mode changes.
Note: This release contains changes that might not be compatible with
current user setups (although it's believed that these
incompatibilities will only show in very uncommon circumstances).
However, since the impact is uncertain, these changes may be rolled
back depending on user feedback. Therefore there's no forward
compatibility guarantee wrt the new features introduced in this
release.
*** The hardcoded switch to "java" style in Java mode is gone.
CC Mode used to automatically set the style to "java" when Java mode
is entered. This has now been removed since it caused too much
confusion.
However, to keep backward compatibility to a certain extent, the
default value for c-default-style now specifies the "java" style for
java-mode, but "gnu" for all other modes (as before). So you won't
notice the change if you haven't touched that variable.
*** New cleanups, space-before-funcall and compact-empty-funcall.
Two new cleanups have been added to c-cleanup-list:
space-before-funcall causes a space to be inserted before the opening
parenthesis of a function call, which gives the style "foo (bar)".
compact-empty-funcall causes any space before a function call opening
parenthesis to be removed if there are no arguments to the function.
It's typically useful together with space-before-funcall to get the
style "foo (bar)" and "foo()".
*** Some keywords now automatically trigger reindentation.
Keywords like "else", "while", "catch" and "finally" have been made
"electric" to make them reindent automatically when they continue an
earlier statement. An example:
for (i = 0; i < 17; i++)
if (a[i])
res += a[i]->offset;
else
Here, the "else" should be indented like the preceding "if", since it
continues that statement. CC Mode will automatically reindent it after
the "else" has been typed in full, since it's not until then it's
possible to decide whether it's a new statement or a continuation of
the preceding "if".
CC Mode uses Abbrev mode to achieve this, which is therefore turned on
by default.
*** M-a and M-e now moves by sentence in multiline strings.
Previously these two keys only moved by sentence in comments, which
meant that sentence movement didn't work in strings containing
documentation or other natural language text.
The reason it's only activated in multiline strings (i.e. strings that
contain a newline, even when escaped by a '\') is to avoid stopping in
the short strings that often reside inside statements. Multiline
strings almost always contain text in a natural language, as opposed
to other strings that typically contain format specifications,
commands, etc. Also, it's not that bothersome that M-a and M-e misses
sentences in single line strings, since they're short anyway.
*** Support for autodoc comments in Pike mode.
Autodoc comments for Pike are used to extract documentation from the
source, like Javadoc in Java. Pike mode now recognize this markup in
comment prefixes and paragraph starts.
*** The comment prefix regexps on c-comment-prefix may be mode specific.
When c-comment-prefix is an association list, it specifies the comment
line prefix on a per-mode basis, like c-default-style does. This
change came about to support the special autodoc comment prefix in
Pike mode only.
*** Better handling of syntactic errors.
The recovery after unbalanced parens earlier in the buffer has been
improved; CC Mode now reports them by dinging and giving a message
stating the offending line, but still recovers and indent the
following lines in a sane way (most of the time). An "else" with no
matching "if" is handled similarly. If an error is discovered while
indenting a region, the whole region is still indented and the error
is reported afterwards.
*** Lineup functions may now return absolute columns.
A lineup function can give an absolute column to indent the line to by
returning a vector with the desired column as the first element.
*** More robust and warning-free byte compilation.
Although this is strictly not a user visible change (well, depending
on the view of a user), it's still worth mentioning that CC Mode now
can be compiled in the standard ways without causing trouble. Some
code have also been moved between the subpackages to enhance the
modularity somewhat. Thanks to Martin Buchholz for doing the
groundwork.
*** c-style-variables-are-local-p now defaults to t.
This is an incompatible change that has been made to make the behavior
of the style system wrt global variable settings less confusing for
non-advanced users. If you know what this variable does you might
want to set it to nil in your .emacs, otherwise you probably don't
have to bother.
Defaulting c-style-variables-are-local-p to t avoids the confusing
situation that occurs when a user sets some style variables globally
and edits both a Java and a non-Java file in the same Emacs session.
If the style variables aren't buffer local in this case, loading of
the second file will cause the default style (either "gnu" or "java"
by default) to override the global settings made by the user.
*** New initialization procedure for the style system.
When the initial style for a buffer is determined by CC Mode (from the
variable c-default-style), the global values of style variables now
take precedence over the values specified by the chosen style. This
is different than the old behavior: previously, the style-specific
settings would override the global settings. This change makes it
possible to do simple configuration in the intuitive way with
Customize or with setq lines in one's .emacs file.