Fix if/else scope in yow.c from Rudi
[sxemacs] / etc / NEWS
1 -*- mode:outline -*-
2 \f
3 * Introduction
4 ==============
5
6 This file presents the changes in recent SXEmacs versions.  It
7 primarily documents user-visible (interface) changes, but also
8 includes internal changes of possible interest to the users.  When
9 describing new features, we try to also document ways of reverting to
10 the old behavior, where applicable.  If you dislike a recent change in
11 how SXEmacs behaves, this file might contain a remedy.
12
13 Use `C-c C-f' to move to the next equal level of outline, and
14 `C-c C-b' to move to previous equal level.  `C-h m' will give more
15 info about the Outline mode.  Many commands are also available through
16 the menubar.
17
18 Users who would like to know which capabilities have been introduced
19 in each release should look at the appropriate section of this file.
20
21
22 \f
23 * Changes in SXEmacs 22.1.14 (Geo)
24 ==================================
25
26 We switched to git!  And this release cycle was all about updating the
27 build chain, version strings, and docs and whatnot from tla-isms to
28 git-isms. 
29
30 You can now grab the SXEmacs sources via git with...
31
32    git clone http://git.sxemacs.org/sxemacs
33
34
35 * Changes in SXEmacs 22.1.12 (Fiat)
36 ===================================
37
38 ** Bugs closed in this release:
39
40 69, 86, 107, 109, 110, 111, 113, 114, 115, 117, 118, 120
41
42 ** Build chain fixes and updates -- Ferreira, Freundt, Youngs.
43
44 *** Fix building without eye-candy (*bars, widgets, etc)
45 *** Begin work on getting SXEmacs built on Arm Linux
46 *** Fix NetBSD 5 build
47 *** Mac OS build fixes
48
49 ** Source tree reorganisation -- Ferreira.
50
51 Nelson put a lot of working into reorganising the SXEmacs source tree
52 hierarchy.  There are now several subdirectories under `src'...
53
54         src/database -- has the database code
55         src/ent      -- has the "Enhance Number Types" code
56         src/events   -- has the "events" code
57         src/media    -- has all the multimedia code
58         src/mem      -- has memory related code
59         src/mule     -- has the MULE stuff
60         src/ui       -- has the UI code common to all toolkits
61         src/ui/Gtk   -- has the old (non-working) GTK 1 code
62         src/ui/TTY   -- has the TTY UI code
63         src/ui/X11   -- has the X11 UI code
64         src/ui/lwlib -- has the Lucid stuff
65
66 This was done with the view to making maintenance and debugging
67 easier, and also to simplify adding new features.
68
69 ** FFI improvements, updates, and enhancements -- Zajcev
70
71
72 * SXEmacs 22.1.11 was never released.
73
74 See ChangeLog.d/ChangeLog-22.1.11 for all the changes in the
75 22.1.11 dev cycle, and for why it was not released.
76
77 * Changes in SXEmacs 22.1.10 (Excalibur)
78 ========================================
79
80 ** Bugs closed in this release:
81
82 41, 65, 74, 75, 79, 80, 81, 82, 83, 84, 85, 87, 89, 90, 91, 92, 93,
83 94, 95, 96, 97, 99, 100, 101, 102, 104
84
85 ** Cool New Sexy Stuff -- Zajcev, Ferreira, Freundt, Youngs.
86
87 Of course every release must have some cool new stuff.  Here's what's
88 new in this release...
89
90 *** User defined readers
91 *** It's possible to display video in a glyph object in a buffer.
92 *** SXEmacs is now a fairly decent image viewing/manipulation app.
93
94 There's an undo/redo stack, zoom in/out, rotate, chop/crop, red-eye
95 reduction.  There is a whole swag of transformations supported:
96 charcoal, contrast, despeckle, edge, enhance, equalise, gausian blur,
97 negate, normalise, oil painting, radial blur, 3D button effect,
98 sharpen, solarise, and swirl.
99
100 Who needs The Gimp when you have SXEmacs!
101
102 *** Added some MacOS icons.
103 *** Support for sqlite3 via FFI
104 *** New way for SXEmacs to handle different file types.
105
106 It allows you to have #'find-file take different actions based on a
107 predicate.  See the new variable `find-file-magic-files-alist'.
108
109 *** Enable PNG transparent backgrounds
110
111 Unfortunately this doesn't work if you use a background pixmap.
112
113 *** FFI callbacks implemented.
114 *** Dbus support via FFI (not completed)
115
116 This should be considered very much incomplete and experimental.  Only
117 rudimentary support is there so far.
118
119 ** Build chain fixes/improvements -- Burkhardt, Ferreira, Freundt, Youngs.
120
121 Quite a few build chain related changes were made in this release,
122 including...
123
124 *** Work around a bug in GCC 4.5.0
125 *** Powerpc/BSD cpu detection
126 *** A Freedesktop.org compliant sxemacs.desktop file is now installed.
127 *** Updated FFmpeg detection.
128 *** OpenSSL 1.0.0 detection.  OpenSSL is no on by default.
129 *** Fix a link error when building with no MPQ
130 *** Fix a minor bison related issue (YYSTYPE)
131 *** Fix building with latest SoX
132 *** Fix --without-x builds
133 *** Fix many C compiler warnings and elisp byte-compiler warnings.
134 *** Fix install for non-FFI and non-Mule builds
135 *** Fix etags build for systems without getopt_long
136 *** Fix (hopefully) parallel builds
137 *** Fix BDWGC-enabled builds
138
139 ** Minor updates to BDWGC code -- Freundt.
140
141 ** Catch up with latest ffmpeg API changes -- Freundt.
142
143 ** Fix for latest ediff -- Ferreira.
144
145 Changes emacs-internal to escape-quoted.
146
147 ** Fix for subwindow resizing -- Zajcev.
148
149 ** Various additions/updates to the contrib directory -- Ferreira
150
151 ** FFI improvements -- Zajcev
152
153 ** ENT fixes -- Freundt.
154
155 ** TTY fixes -- Ferreira.
156
157 ** Cleaner dump file (less pollution from the build/src dir) -- Freundt, Youngs.
158
159 ** Improve #'file-basename -- Ferreira
160
161 It can now take a 2nd arg for extension stripping.
162
163 ** Misc doc fixes/updates -- Burkhardt, Ferreira, Freundt, Zajcev, Youngs.
164
165 * Changes in SXEmacs 22.1.9 (Edsel)
166 ===================================
167
168 ** Bugs closed in this release:
169
170 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 45, 46, 47, 48, 49, 50, 51,
171 53, 54, 55, 56, 57, 58, 59, 60, 61, 62
172
173 See http://issues.sxemacs.org/ for the details.
174
175 ** Build chain fixes and improvements -- Freundt, Ferreira.
176
177 Better detection of ALSA, ffmpeg, libffi, libbind, and many other
178 various bits and pieces.
179
180 General build related fixes were made for MacOS, Solaris, HPUX, and of
181 course, Linux.
182
183 ** New function, #'mapfam -- Freundt.
184
185 This new function is an extrememly powerful replacement for _all_ of
186 the current map functions.  It not only can do the job of the
187 existing map functions, but can also convert any sequence to any
188 other sequence.  Lots of other cool features as well, see its doc
189 string for full details.
190
191 ** Init file migration code removed -- Youngs.
192
193 We feel that it is better to NOT mess with other emacsen's set ups.
194
195 ** Compiler warning fixes -- Freundt.
196
197 ** PNG images optimised for size -- Burkhardt.
198
199 All of the PNG images that we ship have been optimised for size.
200
201 ** Re-work auto-autoloads loading a little -- Ferreira.
202
203 Priority is given to packages installed under ~/.sxemacs/ and care is
204 taken to eliminate those "foo-autoloads already loaded" warnings.
205
206 ** Support 256 colour terminals -- Ferreira.
207
208 Support for 256 colour terminals and colour resolution through
209 approximation for tty devices.
210
211 ** New FFI util, ffi-magic.el -- Youngs.
212
213 Uses libmagic to guess file type.
214
215 ** Cool new stuff in the contrib directory -- Youngs, Ferreira.
216
217 There are tla hook scripts, build scripts, and build-report scripts.
218
219 ** New garbage collector BDWGC -- Freundt.
220
221 SXEmacs can now use the Boehm-Demers-Weiser garbage collector.  It is
222 still experimental at this stage and there are known bugs (memory
223 leak).  If you have plenty of RAM it is quite usable, and noticably
224 faster than non-BDWGC SXEmacsen.  This new feature is not on by
225 default.  To get it, configure with --with-experimental-features=all.
226
227 ** Support for BSD's MP removed -- Freundt.
228
229 ** Emodule search path/loading fixes -- Youngs.
230
231 Emodule load path has been made sane.  #'load-module and
232 #'locate-module have both been vastly improved and both have
233 completion. 
234
235 ** FFI improvements -- Youngs.
236
237 The FFI code has been improved so that it can be compatible with
238 XEmacs 21.5 for when they merge our FFI into their code base.  Also
239 #'ffi-load and #'ffi-load-library no longer need to be given a file
240 extension as part of the arg to allow for different platforms having
241 different shlib extensions.
242
243 Also, some UI enhancements were added to ffi-curl.el and
244 ffi-taglib.el.
245
246 ** Etags improvements -- Youngs.
247
248 A bit of "UI" has been added to etags.el, as well as some code
249 optimising.
250
251 ** Various minor tweaks, fixes, and documentation -- Burkhardt, Ferreira,
252       Freundt, Wallington, Youngs.
253
254
255 * Changes in SXEmacs 22.1.8 (Daimler)
256 =====================================
257
258 ** Bugs closed in this release: 22, 24, 26, 27, 29, 31
259
260 You might notice a double up of bug numbers here from the previous
261 release.  The index got reset and so some bug ID numbers were
262 re-issued.
263
264 ** Build chain fixes, improvements -- Freundt, Ferreira, Youngs.
265
266 We now have a libtool-based build chain.
267
268 ** Minor improvements to packages bootstrapping -- Youngs.
269
270 ** User's custom file renamed to custom-${USER}.el -- Youngs.
271
272 The old variant, custom.el is still used if that file exists.
273
274 ** Sync XEmacs 21.5's cus-*.el, autoload.el, subr.el -- Youngs.
275
276 Amongst other things, this sync brings custom-defines, many new custom
277 widgets, and an implementation of the `:inherit' face keyword.
278
279 ** Skiplist fixes -- Freundt.
280
281 ** Introduce custom printers -- Zajcev.
282
283 ** Update GPL licenced stuff to GPL version 3 -- Youngs.
284
285 ** Add a rc.d inspired init mechanism -- Ferreira.
286
287 ** Font lock improvements -- Ferreira.
288
289 ** Byte compile defcustom init values, saving lisp values for correct editing -- Kehoe.
290
291 Sync from XEmacs 21.5.
292
293 ** Improve interactivity of custom prompting -- Verna.
294
295 Sync from XEmacs 21.5.
296
297 ** Resize echo area when needed -- Aichner, Turnbull, Youngs.
298
299 Sync from XEmacs 21.5.  Don't confuse this with rsz-minibuffer.el in
300 the packages,  This is different, the minibuffer and echo area are 2
301 different things.
302
303 ** #'describe-function (C-h f) prints global keybindings for commands -- Kehoe, Youngs.
304
305 Sync from XEmacs 21.5.
306
307 ** New `%b' spec for #'format -- Freundt, Kehoe.
308
309 This is for converting between ints and bit vectors.
310
311 ** Sample init file updated -- Youngs.
312
313 ** Fix the bug exposed by our weak-tests.el -- Youngs.
314
315 ** Update the man page -- Youngs.
316
317 ** Support character classes in regexps -- Freundt.
318
319 ** Misc trivial changes such as doc fixes, typos, etc -- Burkhardt,
320      Freundt, Ferreira, Youngs.
321
322
323 * Changes in SXEmacs 22.1.7 (De Lorean)
324 =======================================
325
326 ** Bugs closed in this release: 13, 20, 21, 24, 25, 27, 28, 31
327
328 ** Much reworking of the build chain -- Freundt, Ferreira, Youngs.
329
330 Quite a bit has changed here, a few options have been changed, added,
331 or removed.  So if you haven't been following the development it might
332 pay you to have a look at our configure's --help output.
333
334 ** Fix emodule loading on 64bit machines -- Freundt.
335
336 ** Security fix in movemail.c (mktemp()->mkstemp()) -- Youngs.
337
338 ** Etags synched up to upstream 17.32 -- Burkhardt, Youngs.
339
340 ** Updates/fixes to dllists/skiplists -- Freundt, Ferreira.
341
342 ** Lots of updates in the ENT area (Enhanced Number Types) -- Freundt.
343
344 Some stuff has been moved to an external emodule, "ASE" (Algebraic
345 Structures for ENT or "ASE Supersedes ENT").  Also directed graphs
346 have been introduced (sparse representation only so far).  And
347 introduce heaps (dense, dynamic, and week).
348
349 ** cl.el meets C -- Freundt.
350
351 We've begun work on implementing the common lisp macros as an external
352 emodule.  The main focus here is speed, and initial benchmarks are
353 _very_ exciting... The emod version of #'dotimes (#'cl:dotimes) can be
354 nearly 200 times faster than its elisp counterpart!
355
356 This isn't finished yet, but watch future releases.
357
358 ** package-suppress mechanism ported from XEmacs 21.5 -- Freundt, Youngs.
359
360 ** Asynchronous version of #'curl:download added called #'curl:download& -- Freundt.
361
362 ** Font-lock improvements, especially on TTYs -- Ferreira.
363
364 ** Fix info search path -- Ferreira.
365
366 ** Change default setting for progress guages to be off -- Youngs.
367
368 ** Multimedia updates/fixes -- Freundt, Youngs.
369
370 Lots of reworking has been done here, especially with PulseAudio,
371 ffmpeg, and threading of the audio jobs etc.  Support for gstreamer
372 and xine has been dropped, and libmagic added.
373
374 ** New macro to define "toggle" variables #'define-toggle-variable -- Zajcev
375
376 I wouldn't normally list a single new macro in this file, but this one
377 deserves a mention.  It sets up toggle variables, including
378 #'turn-on-VAR, #'turn-off-VAR, and #'toggle-VAR.  Very nifty.
379
380 ** Many many compiler warnings have been fixed -- Freundt, Youngs.
381
382 Almost all byte-compiler warnings have been fixed in our build.  And a
383 good deal of the warnings in the C code of a standard build has been
384 fixed as well.
385
386 ** GC fixes/updates -- Freundt.
387
388 ** A contrib directory has been added to the tree -- Freundt.
389
390 So far there are patches in there to pop3.el, smtpmail.el, and
391 starttls.el which takes advantage of some of SXEmacs' cool native
392 features like OpenSSL.
393
394 Watch this space for more nifty things.
395
396 ** Minor misc fixes (typos etc) -- Zajcev, Burkhardt, Freundt, Ferreira, Youngs.
397
398 ** Documentation updates:
399         o sppm.texi -- Burkhardt, Youngs.
400         o lispref.texi -- Freundt, Youngs.
401         o tips.texi -- Freundt.
402         o building.texi -- Youngs.
403         o processes.texi -- Ferreira.
404         o internals.texi -- Freundt.
405
406 * Changes in SXEmacs 22.1.6 (Cadillac)
407 ======================================
408
409 ** ENT (Enhanced Number Types) updates and fixes -- Freundt, Ferreira.
410
411 ** MM (MultiMedia) updates and fixes -- Freundt, Ferreira, Youngs.
412
413 ** FFi (Foreign Function Interface) updates -- Freundt, Zajcev.
414
415 ** New ffi-gcrypt.el -- Freundt.
416
417 ffi-gcrypt.el brings GnuPG's libgcrypt bindings to SXEmacs.
418
419 ** Line/column numbers in modeline are now padded -- Ferreira.
420
421 ** New skiplists -- Freundt.
422
423 This is a basic implementation of Pugh's skip lists.  Their efficiency
424 is overwhelming when compared to alists or plists.  They also perform
425 better on insertion and removal than large hash-tables (due to the
426 resizing/rehashing which takes place).  They can be created almost as
427 fast as lisp lists and thus beat hash-tables there, too.
428
429 ** Fix module (DSO) load paths -- Youngs.
430
431 ** SXEmacs maintainer turned 40 -- Mr and Mrs Youngs.
432
433 This is a recurring bug that was first discovered on June 19th, 1966.
434
435 ** Test suite updates/improvements -- Turnbull, Youngs.
436
437 ** Etags updates/fixes -- Ferreira, Youngs.
438
439 Sync to Francesco's version 17.20 etags.  And major surgery on
440 etags.el to make it usable, fixing completion and support for the
441 "include" directive.
442
443 ** Fix raw string parsing -- Kehoe.
444
445 A problem that arose in lisp-interaction-mode, where raw strings
446 were parsed as normal strings if you did a C-j after them, becase
447 forward-sexp couldn~t handle them.
448
449 ** Sync bytecomp-runtime.el with XEmacs 21.5 -- Youngs.
450
451 The significance of this is that SXEmacs now has all those cool
452 with,if,when,and-boundp macros for clean byte-compiler warning
453 suppression.
454
455 ** OpenSSL updates/fixes/improvements -- Freundt.
456
457 A rewrite of the old handshake functions.  SSL connections can be
458 established as before: open a network-stream, call ossl-ssl-handshake
459 on it and store the result.  The new implementation provides also
460 support for certificate authorities (CA), for peer certificates and,
461 using the network-server-streams, secure listening sockets.  This will
462 allow to connect/accept to/from servers/clients which require valid
463 peer certificates.
464
465 ** New PulseAudio support -- Freundt.
466
467 PulseAudio is the successor to PolypAudio.  Because there were so few
468 users using Polyp (think we counted 2 and they're both SXEmacs
469 developers) SXEmacs support for PolypAudio was replaced by PulseAudio
470 support. 
471
472 ** New Caching compiled regular expressions -- Freundt.
473
474 All you really need to do to use them is assign them (the regexp) to a
475 variable.  Here's an example...
476
477   (let ((reg1 "^;+\\s-")
478         (reg2 "\\s-+;+"))
479     (while (and (re-search-forward reg1 nil t)
480                 (re-search-forward reg2 nil t))
481       ...))
482
483 instead of:
484
485   (while (and (re-search-forward "^;+\\s-" nil t)
486               (re-search-forward "\\s-+;+" nil t))
487     ...)
488
489 The former construct will store the compiled regular expressions in the
490 object property list of `reg1' and `reg2' on the first iteration of
491 `while', all following iterations will then use the already compiled
492 regexps.  The latter construct will behave as before, the regular
493 expression is compiled and stored, but since the string is hard-coded in
494 the buffer, it will be newly generated (with empty object-plist of
495 course) during every cycle of the while loop.
496
497 ** Cleaner dump file -- Freundt, Youngs.
498
499 The portable dump file was getting polluted with things in the
500 packages load-path causing all sorts of undefined and unexpected
501 impossible to track down bugs.  No longer!
502
503 ** Fix many many byte-compiler warnings in building core lisp -- Youngs.
504
505 ** Fix building without emodules -- Ferreira.
506
507 ** New Support emodules on MacOS -- Ferreira.
508
509 ** Fix BerkeleyDB detection on NetBSD -- Ferreira.
510
511 ** New SXEmacs icons added to dist -- Ferreira.
512
513 ** Major restructuring of the build chain and install layout -- Freundt.
514
515 SXEmacs is now pretty much a completely autotool'd project... automake,
516 autoheader, the whole 9 yards.  And if that wasn't enough, we are now
517 also, to the best of our knowledge, reasonably FHS-compliant with our
518 install.
519
520 The changes to the install directory hierarchies are:
521
522            now go to...                before went to...
523   lisp     share/sxemacs-22.1.6/lisp/  lib/sxemacs-22.1.6/lisp/
524   etc      share/sxemacs-22.1.6/etc/   lib/sxemacs-22.1.6/etc/
525   info     share/info/                 lib/sxemacs-22.1.6/info/
526   headers  include/sxemacs/22.1.6/     lib/sxemacs-22.1.6/<arch>/include/
527
528 Packages are now searched for in
529
530   $prefix/share/sxemacs/{{s,}xemacs,mule,site}-packages/
531
532 instead of $prefix/lib/sxemacs/.../
533
534 ** DnD dragged out and dropped on /dev/null -- Freundt.
535
536 ** Misc build fixes -- Freundt, Ferreira, Youngs.
537
538 ** Fix `tags' Makefile target -- Youngs.
539
540 ** Fix bug in `lib-complete' -- Freundt.
541
542 The bug was causing `find-library' to visit the .elc instead of the
543 .el if you were running SXEmacs in-place from the build tree.
544
545 ** Fix stack overflow crash in mapconcat -- Ferreira.
546
547 ** Large update of about.el -- Freundt, Ferreira, Youngs.
548
549 See: M-x about-sxemacs
550
551 ** Various documentation updates/fixes/improvements -- Freundt, Ferreira, Youngs.
552
553
554 * Changes in SXEmacs 22.1.5 (Bugatti)
555 =====================================
556 First up, this release has turned into a purely maintenance/bugfix
557 release.  SXEmacs 22.1.4 had several build-related issues that this
558 release addresses.
559
560 ** version.sh fix -- Youngs.
561
562 Fix a problem with the wrong version being generated.
563
564 ** Autoconf fixes -- Youngs, Ferreira, Freundt.
565
566 Lots of changes to the autoconf configure script
567
568         - Recognise $CFLAGS environment variables
569         - X toolkit autodetection redone
570         - TTY autodetection fixed
571         - PostgreSQL detection properly reported
572         - Change allowed values for menubars, dialogs, widgets
573                 menubars -- no athena or motif
574                 dialogs  -- no lucid
575                 widgets  -- no lucid
576         - Set configure's "bugreport address" to
577           http://issues.sxemacs.org. 
578         - Fix gdbm/berkdb detection
579         - Improve libc version detection
580
581 ** New Makefile target (build-report) -- Kuehl.
582
583 `make build-report' is a convenience target.  It automatically
584 captures make output to files that `M-x build-rpt' knows about.  It
585 also runs `make check'.  The SXEmacs developers recommend that you use
586 this target to build SXEmacs.
587
588 ** PROBLEMS updated -- Kuehl, Freundt.
589
590 Document SELinux/libffi issues and GMP/mpfr Fedora issues.
591
592 ** pdump/ENT fix for *BSD -- Freundt.
593
594 ** Documentation updates/fixes -- Youngs, Ferreira, Freundt.
595
596
597 * Changes in SXEmacs 22.1.4 (Bentley Turbo)
598 ===========================================
599
600 ** Many more image formats via FFI/libWand -- Freundt.
601
602 FFI-enabled SXEmacs can load up libWand and thus display any image
603 format that libWand (ImageMagick) supports.
604
605 ** Lots of updates to the ENT (Enhanced Number Types) code -- Freundt.
606
607 ** Mule is on by default -- Youngs.
608
609 ** Embeddable keyboard macros -- Kuehl.
610
611 This means that the following sort of thing is possible:
612
613       C-x ( bar C-x )
614       C-x ( foo C-x e C-x )
615     
616       C-x e
617       => foo bar
618
619 ** Default widgets/dialogs to Athena instead of Motif -- Youngs.
620
621 ** OpenSSL updates -- Freundt.
622
623 Digest, encryption, and decryption routines that operate on files has
624 been added.  Previously this was only available for buffers.
625
626 ** Build reports have been revamped -- Youngs, Freundt.
627
628 The SXEmacs build report no longer conflicts with the XEmacs
629 build-report.el.  Plus ours also reports on shared lib dependencies
630 and config.h stuff.  Sending from Gnus is also supported.
631
632 ** FFI updates/fixes -- Youngs, Zajcev, Freundt.
633
634 ** Ability to build postscript, pdf, and html docs -- Ferreira.
635
636 ** Double linked lists and bloom filters implemented -- Freundt.
637
638 Bloom filters are a space and time-efficient way to decide about the
639 membership of an element to a given set. Using lisp-lists or vectors,
640 one usually has to traverse the entire list or vector, before
641 membership can be decided.  Using hash tables, membership decision is
642 in O(1) (bloom filters also decide in O(1)), but the hash-table's size
643 grows proportionally with the number n of elements, thus its space
644 complexity is O(n), whereas Bloom filters take a constant amount of
645 space regardless how many elements are in it.
646
647 ** Lightning fast recursive version of directory-files -- Freundt.
648
649 It's called `directory-files-recur' and in some situations it is even
650 faster than GNU's find(1).
651
652 ** Portuguese added to etc/HELLO -- Ferreira.
653
654 ** Massive improvements, enhancements for multimedia (audio) -- Freundt.
655
656 SXEmacs supports several "sound servers" like: OSS, NAS, ESD, Polypaudio,
657 ALSA, aRts, and Jack.  And media streams can be handled by sndfile, ffmpeg,
658 sox, mad, xine, gstreamer.  The SXEmacs developers recommend Polyp/ffmpeg
659 whenever possible.
660
661 And yes, SXEmacs _can_ play mp3 files. :-)
662
663 ** Autoconf fixes/updates -- Youngs, Freundt.
664
665 All of the enable/disable options have been converted to with/without
666 options.  This allows us to sort them into groups.
667
668 Also fixes were made to allow building on FreeBSD and NetBSD.
669
670 ** Big update for the FAQ -- Youngs, Freundt.
671
672 ** Server Sockets! -- Ferreira.
673
674 SXEmacs now has server sockets (Yay!).  See
675 `open-network-server-stream'.
676
677 ** Compiler fixes (gcc 2.95) -- Freundt.
678
679 ** bug-reporter update -- Youngs.
680
681 `report-sxemacs-bug' now directs people to our BugZilla installation
682 at http://issues.sxemacs.org/
683
684 ** Documentation updates/fixes/improvements -- Youngs, Ferreira, Freundt.
685
686
687 * Changes in SXEmacs 22.1.3 (BMW)
688 =================================
689
690 ** OpenSSL updates, improvements, and fixes -- Freundt.
691
692 ** FFI updates, and fixes -- Zajcev.
693
694 FFI now defaults to "on" if libffi can be found at configure time.  It
695 you don't want this, use: `--disable-ffi'.
696
697 FTP downloads with `curl:download' is working properly now.  And with
698 HTTP transfers you can transfer just the HTTP header for a file if you
699 wish.
700
701 ** Extent/glyph fixes -- Sidwell, Kuehl.
702
703 ** 32 mouse buttons supported -- Youngs.
704
705 (global-set-key [(button32)] 'some-function) is valid in SXEmacs.
706
707 ** Modeline tweaks -- Ferreira.
708
709 Move line/column number indicators to left side (aka XE 21.5)
710
711 ** M-x uptime -- Youngs.
712
713 Every good OS has an uptime util, SXEmacs is no exception.  Reports
714 uptime in various formats.
715
716 ** ia64 build fixes -- Lesjak.
717
718 ** `C-h n' will no longer find NEWS files from packages -- Youngs.
719
720 ** List of package mirrors updated -- Aichner, Skyttä.
721
722 ** Bootstrappable PUI -- Youngs.
723
724 SXEmacs no longer needs to have _any_ packages pre-installed before
725 PUI can be used.  See (Info-goto-node "(sxemacs)Bootstrapping PUI").
726
727 ** Bignums, and a whole swag of sexy new number goodness -- Freundt.
728
729 Bignums, bigfloats, and ratios that you may know from XEmacs 21.5 are
730 now in SXEmacs.  That and a whole lot more...
731
732 Features provided when all of the library demands are met:
733     
734   (featurep 'bigz) and 
735   (featurep 'bignum)       <=> if MPZ from GMP or BSD MP is present
736   
737   (featurep 'bigq) and
738   (featurep 'ratio)        <=> if MPQ from GMP is present
739   
740   (featurep 'bigf) and
741   (featurep 'bigfloat)     <=> if MPF from GMP is present
742   
743   (featurep 'bigfr)        <=> if MPFR is present
744   
745   (featurep 'bigc)         <=> if MPC is present
746   
747   (featurep 'number-types) <=> if one of the above features is
748   provided
749
750 For complete details see: (Info-goto-node "(lispref)Enhanced Number Types")
751
752 ** Raw strings -- Kuehl.
753
754 SXEmacs tries to relieve backslashitis by implementing raw strings.
755 You'll imediately notice the benefit of raw strings when use them for
756 those hairy regexps.  Consider the regular expression (from
757 font-latex.el)... 
758
759   "\\(?:^\\|[^\\]\\)\\(?:\\\\\\\\\\)*\\(\\\\[@A-Za-z]+\\)"
760
761 As a raw string it could be written as...
762
763   #r"\(?:^\|[^\]\)\(?:\)*\(\\[@A-Za-z]+\)"
764
765 Most of the SXEmacs core lisp code has been converted over to using
766 raw strings whereever appropriate.
767
768 ** Improved font-locking in a TTY -- Ferreira.
769
770 To illustrate this...
771
772   $ sxemacs -nw -vanilla
773
774 ...and look at the modeline.  Now open a .c file and turn on
775 font-lock... 
776
777   C-x C-f /path/to/file.c RET
778   M-x font-lock-mode RET
779
780 ** Compiler fixes -- Zajcev.
781
782 ** SXEmacs can no longer be built with a C++ compiler -- Youngs.
783
784 To build SXEmacs you will need a C compiler at least the equivalent of
785 GCC 2.95.3.  Building with a C++ compiler is no longer supported.
786
787 ** Autoconf fixes, updates -- Freundt, Kuehl, Youngs.
788
789 All autoconf options now have a help string (for ./configure --help)
790 and the default setting for each option is noted.
791
792 ** PostgreSQL auto-detection improved -- Youngs.
793
794 If pg_config is in your $PATH, SXEmacs will add PostgreSQL support at
795 configure/build time.
796
797 ** Documentation (Texinfo) updates -- Freundt, Youngs.
798
799 The SXEmacs manual is now called "sxemacs" instead of "xemacs".  C-h
800 C-i sxemacs RET to read it.
801
802 Most of the Texinfo docs now have been updated to say "SXEmacs"
803 whereever appropriate instead of "XEmacs".
804
805 ** GTK (version 1.2) build fixes -- Youngs.
806
807
808 * Changes in SXEmacs 22.1.2 (Audi)
809 ==================================
810
811 ** autoconf 2.59 compatible configure scripts -- Youngs, Purvis.
812
813 Many configure options have changed.  Please run `./configure --help'
814 to see what the new options are.
815
816 ** Most win32 code is now gone -- Youngs, Freundt.
817
818 ** `describe-installation' report libc version on Slackware -- Youngs.
819
820 ** etags.c updated to Francesco's version 17.11 -- Youngs.
821
822 ** Support `ls --dired' properly -- Sperber.
823
824 ** FFI (Foreign Function Interface) updates -- Zajcev.
825
826 One of the most exciting things is that this version of SXEmacs can
827 download files from the internet _without_ the need of any XEmacs
828 packages being installed.  If you have libcurl and enable FFI in
829 SXEmacs at build time, you can:
830
831         (require 'ffi-curl)
832         (curl:download "http://www.somedomain.com/path/file"
833                        "/tmp/file")
834
835 To put your mind at ease, libcurl is _NOT_ needed to build SXEmacs.
836 The above will work even if you install libcurl after
837 building/installing SXEmacs.
838
839 ** Don't echo GC messages for non-string GC'ing -- Zajcev.
840
841 This drastically reduces the number of "Garbage Collecting" messages
842 that you see in the echo area.  Garbage collection is still happening,
843 it is just not in your face as much.
844
845 ** movemail.c security fixes -- Oskarsson.
846
847 ** PUI's *packages* buffer enhancements -- Koch.
848
849 ** Saner fallbacks for `backup-buffer' -- Youngs.
850
851 Based on an idea from JWZ, if the backup can't be written, try in
852 `auto-save-directory', and if that fails, fall back to $HOME.
853
854 ** OpenSSL support -- Freundt.
855
856 Of course. The OpenSSL library itself is actually separated into two
857 libraries: libcrypto and libssl.  libcrypto is the part which comes to
858 elisp with the current API.  libssl is planned for the near future.
859
860 With this interface/gateway we now have access to the wonderful world
861 of static cryptography (static here means no handshake/protocols/etc.).
862
863 The API contains:
864
865 - the OpenSSL PRNG = (pseudo) random number generator to provide
866   generating cryptographically secure randomness
867
868 - the OpenSSL MDs (message digests) to provide all sorts of hashing
869   (we had an md5 implementation already)
870
871 - the HMAC aka keyed hashing aka message authentication code to provide
872   hashes secured by a password
873
874 - the CIPHER engine (i.e. symmetric crypto systems) to provide
875   encryption/decryption routines secured by a password
876
877 - the PKEY engine (i.e. asymmetric crypto systems) to provide generation
878   and distribution of private/public key pairs (as probably known by
879   gpg)
880
881 - the HYBRIDe engine aka PKCS aka public key crypto systems to provide
882   encryption based on (foreign) public keys and decryption with own
883   private keys to provide also digital signatures and verification (as
884   probably known by gpg)
885
886 ** Remove most of the generated files from the repo -- Youngs, Freundt.
887
888 ** Allow suppression of WM decorations -- Turnbull.
889
890 This makes balloon-help windows infinitely better behaved.  Thank you
891 very much, Steve T.
892
893 ** Fontify *scratch* buffer according to user's settings -- Kehoe.
894
895 ** Fix bug hanging SXEmacs when yanking > 260kb -- Kehoe.
896
897 ** lispref manual updated for SXEmacs -- Freundt.
898
899 ** PostgreSQL updates (mainly doc updates) -- Frenudt.
900
901
902 * Changes in SXEmacs 22.1.1 (Aston Martin)
903 ==========================================
904
905 ** user-init-directory set to ~/.sxemacs -- Youngs.
906
907 Symlinking this to your old ~/.xemacs directory is enough to get up
908 and running with SXEmacs.
909
910 ** Packages hierarchy default set to $prefix/lib/sxemacs -- Youngs.
911
912 Symlinking this to your old $prefix/lib/xemacs directory is enough to
913 get up and running with SXEmacs.  SXEmacs will do this for you when
914 you do `make install'.
915
916 ** Rename items in the menubar -- Slusar, Youngs.
917
918 ** Beginnings of FFI -- Zajcev.
919
920 FFI is "Foreign Function Interface" and will allow access to functions
921 and libraries outside of SXEmacs from within lisp.  Not completed yet,
922 but the basic infrastructure is in place.
923
924 ** FreeBSD build fixes -- Slusar.
925
926 ** M-x report-sxemacs-bug -- Youngs.
927
928 For now, this is just a wrapper around report-xemacs-bug with the
929 appropriate variables set to SXEmacs values.
930
931 ** Fix etags.c -- Slusar.
932
933 Avoid a segv.
934
935 ** M-x build-report -- Youngs.
936
937 Make it work for SXEmacs.
938
939 ** Fix major bug in regex.c
940
941 This fixed a whole swag of crashes involving regexps and
942 syntax-tables. 
943
944 ** Sync up with XEmacs 21.4 -- Various Developers.
945
946
947 * Changes in SXEmacs 22.1.0 (Alfa Romeo)
948 ========================================
949
950 This is the first release of SXEmacs.  It is a fork of XEmacs
951 21.4.16.  The vast majority of the changes between SXEmacs 22.1.0 and
952 the code it descended from, XEmacs 21.4.16, are purely renaming
953 "XEmacs" to "SXEmacs".