-*-text-*- * Port the conservative stack marking code of Emacs' garbage collector to more systems, so that we can completely get rid of GCPROs. * Program Enriched mode to read and save in RTF. [Is there actually a decent single definition of RTF?] * Implement other text formatting properties. ** Footnotes that can appear either in place or at the end of the page. ** text property that says "don't break line in middle of this". Don't break the line between two characters that have the same value of this property. ** Discretionary hyphens that are not visible when they are at end of line. * Implement something better than the current Refill mode. This probably needs some primitive support. * Implement a clean way to use different major modes for different parts of a buffer. * Give start-process the ability to direct standard-error output to a different filter. * Make compile.el record the markers that point to error loci on text properties in the error message lines. * Make desktop.el save the "frame configuration" of Emacs (in some useful sense). * Make movemail work with IMAP. * Add ANSI C prototype forward declarations to the source files, so that even the functions used within one file have prototypes. * Replace finder.el with something that generates an Info file which gives the same information through a menu structure. [Dave Love started on this.] * Implement a variant of uncompress.el or jka-compr.el that works with GNU Privacy Guard for encryption. [Code exists but isn't assigned.] * Save undo information in files, and reload it when needed for undoing. * Change the Windows NT menu code so that it handles the deep_p argument and avoids regenerating the whole menu bar menu tree except when the user tries to use the menubar. This requires the RIT to forward the WM_INITMENU message to the main thread, and not return from that message until the main thread has processed the menu_bar_activate_event and regenerated the whole menu bar. In the mean time, it should process other messages. * Make Emacs work as a Java Bean. * Implement the design for Unicode-based internal encoding for Mule. * Document the features of libraries missing from the manual (or ancillary manuals, including the Lisp manual in some cases). Here's a list which is probably not complete/correct: align, allout, artist, ansi-color, array, battery, calculator, cdl, cmuscheme, completion, delim-col, dirtrack, double, echistory, elide-head, easymenu, expand, flow-ctrl, format [format-alist], generic/generic-x [various modes], kermit, log-edit, ledit [obsolete?], makesum, midnight [other than in Kill Buffer node], mouse-copy [?], mouse-drag, mouse-sel, net-utils, rcompile, snmp-mode [?], soundex [should be interactive?], strokes [start from the web page], talk, thingatpt [interactive functions?], type-break, vcursor, xscheme, zone-mode [?], mlconvert [?], iso-cvt, iso-swed, swedish, feedmail [?], uce, bruce, gametree, meese, page-ext, refbib, refer, scribe, sgml-mode, spell, texinfo, underline, cmacexp, hideif, mantemp [obsolete?], pcomplete, assoc, xml, cvs-status (should be described in PCL-CVS manual); other progmodes, probably in separate manual. * Get some major packages installed: W3/url (development version needs significant work), PSGML, Mule-UCS, Tramp (?). Check the assignments file for other packages which might go in and have been missed. * Make keymaps a first-class Lisp object (this means a rewrite of keymap.c). What should it do apart from being opaque ? multiple inheritance ? faster where-is ? no more fix_submap_inheritance ? what else ? * Provide real menus on ttys. The MS-DOS implementation can serve as an example how to do part of this. * Implement popular parts of the rest of the CL functions as compiler macros in cl-macs. * Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). * Support simultaneous tty and X frames. * Implement primitive and higher-level functions to allow filling properly with variable-pitch faces. * Provide MIME support for Rmail using the Gnus MIME library. * Eliminate the storm of warnings concerning char/unsigned char mismatches that we get with proprietary compilers on various systems. They make it difficult to spot the important warnings. * Fix anything necessary to use `long long' EMACS_INTs with GCC. * Split out parts of lisp.h and generate Makefile dependencies automatically. * Update the FAQ. * Allow auto-compression-mode to use zlib calls if zlib is available. [It's required for PNG, so may be linked anyhow.] * Add a --pristine startup flag which does -q --no-site-file plus ignoring X resources (Doze equivalents?) and most of the environment. What should not be ignored needs consideration. * Investigate using the language environment (or locale?) to set up more things, such as the default Ispell dictionary, calendar holidays... * Improve the GC (generational, incremental). (We may be able to use the Boehm collector.) * Port Emacs to GTK+. (Relevant work has been done already.) * Make the Lucid menu widget display multilingual text. * Implement, in C, a ``focus follows mouse'' mode that selects a window when the mouse enters it. * Check what hooks would help Emacspeak -- see the defadvising in W3. * Implement some variety of (non-gtk) drag-and-drop support under X. Using libdnd might be a good start. * Remove the limitation that window and frame widths and heights can be only full columns/lines. * Add horizontal scroll bars. * Integrate Vroonhof's Custom themes code and make it do useful things. [The integration is partly done.] * Provide an optional feature which computes a scroll bar slider's size and its position from lines instead of characters. * Adapt the gnuserv/gnudoit features for server/emacsclient. * Remove the special treatment of binary files by DOS and Windows ports. They should use find-file-literally and `no-conversion' instead. * Investigate using GNU Lightning or similar system for incremental compilation of selected bytecode functions to subrs. Converting CCL programs to native code is probably the first thing to try, though. * Add a feature to Info similar to "info --apropos SUBJECT". * If you do an insert-file and that file is currently modified in another buffer but not written yet, print a warning. * Add support for SVG (Scalable Vector Graphics) rendering to Emacs. * Use the XIE X extension, if available, for image display.