                                                                -*-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.

* Support dynamically-loadable primitive support using libtool and
  support similarly to Guile.  [Some work has been done.]

* 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.)

* Implement variable aliases, i.e. a `defvaralias' analogous to the
  `defalias' for functions.  The implementation should not slow down
  Emacs, and it shouldn't use additional memory, at least not much. 

* 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".
