Fix face attributes recognition
[bpt/emacs.git] / etc / TODO
index 8ec34e6..ce2dec9 100644 (file)
--- a/etc/TODO
+++ b/etc/TODO
@@ -1,4 +1,9 @@
-                                                                -*-outline-*-
+Emacs TODO List                                                   -*-outline-*-
+
+Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+  Free Software Foundation, Inc.
+See the end of the file for license conditions.
+
 
 If you are ready to start working on any of these TODO items, we
 appreciate your help; please write to emacs-devel@gnu.org so we can be
@@ -9,6 +14,30 @@ to the FSF.
 
 * Small but important fixes needed in existing features:
 
+** Fix compilation when Xaw3d libraries are present but libxaw is not.
+In new X11 versions, xaw3dg-dev does not depend on libxaw-dev, so the
+latter need not be installed.  As a result, all the source files that
+look for include files in X11/Xaw should look in X11/Xaw3d if we are
+using Xaw3d.
+
+** Compute the list of active keymaps *after* reading the first event.
+
+** mouse-autoselect-window should wait to select the window until
+the mouse is put to rest or after a delay or both, so that moving over
+a window doesn't select it.
+
+** In C-x d, the default if you type RET should be the directory name,
+but if you type M-n you should get the visited file name of the
+current buffer.
+
+** describe-face should show an example of text in the face.
+
+** Distribute a bar cursor of width > 1 evenly between the two glyphs
+   on each side of the bar (what to do at the edges?).
+
+** Make vc-checkin avoid reverting the buffer if has not changed after
+   the checkin. Comparing (md5 BUFFER) to (md5 FILE) should be enough.
+
 ** buffer-offer-save should be a permanent local.
 
 ** revert-buffer should eliminate overlays and the mark.
@@ -28,6 +57,9 @@ to the FSF.
   It should not generate :require.  Or :require in defcustom
   should not be recorded in the user's custom-set-variables call.
 
+** Feature to change cursor shape when Emacs is idle (for more than
+  a specified time).
+
 ** The buttons at the top of a custom buffer should not omit
   variables whose values are currently hidden.
 
@@ -56,16 +88,33 @@ to the FSF.
 
 ** The toolbar should show keyboard equivalents in its tooltips.
 
-** Modify allout.el to use overlays, like outline.el.
+** Add function to redraw the tool bar.
 
 ** M-! M-n should fetch the buffer-file-name as the default.
 
+** Redesign the load-history data structure so it can cope better
+  with evaluating definitions of the same function from different files,
+  recording which file the latest definition came from.
+
+** make back_comment use syntax-ppss or equivalent.
+
+** Improve configure's treatment of NON_GNU_CPP on Solaris.
+(patch available for after Emacs 22)
+
+** Consider improving src/sysdep.c's search for a fqdn.
+http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00782.html
+
+** Find a proper fix for rcirc multiline nick adding.
+http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00684.html
+
 * Important features:
 
 ** Provide user-friendly ways to list all available font families,
    list fonts, display a font as a sample, etc.  [fx is looking at
   multilingual font selection for the Unicode branch of Emacs.]
 
+** Provide a convenient way to select a color with the mouse.
+
 ** Rewrite the face code to be simpler, clearer and faster.
 
 ** Program Enriched mode to read and save in RTF.  [Is there actually a
@@ -99,6 +148,9 @@ to the FSF.
 
 ** Internationalize Emacs's messages.
 
+** Set up a facility to save backtraces when errors happen during
+specified filters, specified timers, and specified hooks.
+
 ** Install mmc@maruska.dyndns.org's no-flicker change.
 
 ** Add a "current vertical pixel level" value that goes with point,
@@ -123,6 +175,11 @@ to the FSF.
 
 * Other features we would like:
 
+** Remove the default toggling behavior of minor modes when called from elisp
+rather than interactively.  This a trivial one-liner in easy-mode.el.
+** Create a category of errors called `user-error' for errors which are
+typically due to pilot errors and should thus be in debug-ignored-errors.
+
 ** Give Tar mode all the features of Archive mode.
 
 ** Create a category of errors called `process-error'
@@ -136,17 +193,28 @@ to the FSF.
 
 ** Make byte-compile warn when a doc string is too wide.
 
+** Make byte-optimization warnings issue accurate line numbers.
+
 ** A function to check for customizable options that have been
   set but not saved, and ask the user whether to save them.
   This could go in kill-emacs-query-functions, to remind people
   to save their changes. If the user says yes, show them
   in a Custom buffer using customize-customized.
 
+** Record the sxhash of the default value for customized variables
+  and notify the user (maybe by adding a menu item or toolbar button,
+  as the detection can occur during autoload time) when the default
+  changes (meaning that new versions of the Lisp source with a changed
+  default value got installed) and offer ediff on the respective
+  customization buffers.
+
 ** Emacs Lisp mode could put an overlay on the defun for every
-  function that has advice.  The overlay could have `after-text' like "
-  [Function has advice]".  It might look like
-     (defun foo [Function has advice] (x y) 
-  The overlay could also be a button that you could use to view the advice.
+  function that has advice.  The overlay could have `after-text' like
+  " [Function has advice]".  It might look like (defun foo [Function
+  has advice] (x y) The overlay could also be a button that you could
+  use to view the advice.
+
+** Add a function to get the insertion-type of the markers in an overlay.
 
 ** ange-ftp
 *** understand sftp
@@ -181,6 +249,24 @@ to the FSF.
   user-selected input method, with the default being the union of
   latin-1-prefix and latin-1-postfix.
 
+** Switch the Windows port to using Unicode keyboard input (maybe).
+  Based on http://msdn2.microsoft.com/en-us/library/ms633586.aspx,
+  this boils down to (1) calling RegisterClassW function to register
+  Emacs windows, and (2) modifying ALL system messages to use Unicode.
+  In particular, WM_CHAR messages, which result from keyboard input,
+  will then come in encoded in UTF-16.
+
+  One advantage of switching to Unicode is to toss encoded-kbd usage,
+  which will solve the problem with binding non-ASCII keys with
+  modifiers.
+
+  Problem: using this on Windows 9x/ME requires installing the
+  Microsoft Layer for Unicode (MSLU), which might not implement all
+  the required functionality that is available built-in on Windows XP
+  and later.  We should not make this change if it would pressure
+  users of unauthorized copies of older versions of Windows to
+  downgrade to versions that require activation.
+
 ** Implement a clean way to use different major modes for
   different parts of a buffer.  This could be useful in editing
   Bison input files, for instance, or other kinds of text
@@ -236,7 +322,7 @@ to the FSF.
   what else ?
 
 ** Provide real menus on ttys.  The MS-DOS implementation can serve as
-  an example how to do part of this.
+  an example how to do part of this; see the XMenu* functions on msdos.c.
 
 ** Implement popular parts of the rest of the CL functions as compiler
   macros in cl-macs.
@@ -248,7 +334,7 @@ to the FSF.
 ** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs).  Already in CUA,
   but it's a valuable feature worth making more general.
 
-** Support simultaneous tty and X frames.  [See the multi-tty branch of Emacs 
+** Support simultaneous tty and X frames.  [See the multi-tty branch of Emacs
   at http://lorentey.hu/project/emacs.]
 
 ** Provide MIME support for Rmail using the Gnus MIME library.  [Maybe
@@ -280,6 +366,8 @@ to the FSF.
 
 ** Check what hooks would help Emacspeak -- see the defadvising in W3.
 
+** Add definitions for symbol properties, for documentation purposes.
+
 ** Add horizontal scroll bars.
 
 ** Provide an optional feature which computes a scroll bar slider's
@@ -291,6 +379,15 @@ to the FSF.
 ** Allow unknown image types to be rendered via an external program
   converting them to, say, PBM (in the same way as PostScript?).
 
+** Display images with alpha channels, such as png, with the current
+background color of whatever frame it is displayed in.  Currently, we
+use the default background color if specified in the png file, or, if
+that is unspecified, the background color of the frame in which the
+image was first created.  Ideally, the image should display the
+background color of whichever frame it is being displayed in.  The
+main complication is that this will require the loading of a new image
+object for each different background color.
+
 ** Allow displaying an X window from an external program in a buffer,
   e.g. to render graphics from Java applets.  [gerd and/or wmperry
   thought this was feasible.]
@@ -326,6 +423,8 @@ when the body only calls primitives.
 
 ** Face remapping.
 
+** Make `format-time-string' preserve text properties like `format'.
+
 ** Optionally make the cursor a little thinner at the end of a line
   or the end of the buffer.
 
@@ -383,6 +482,13 @@ when the body only calls primitives.
   the definition of `file-attributes' and `directory-files-and-attributes'
   and from the calls.
 
+** Modify the emulation of `stat' for MS-Windows to support large files.
+  The current version uses the stock Windows definition of `struct
+  stat', where the file's size is returned as a 32-bit integer.  That
+  overflows for files larger than 4GB.  To fix, modify `stat' to use
+  64-bit size, and use a declaration of `struct stat' that supports
+  such sizes.
+
 ** Make language-info-alist customizable.  Currently a user can customize
   only the variable `current-language-environment'.
 
@@ -422,8 +528,8 @@ when the body only calls primitives.
   "japanese".  Currently, most Japanese users are using external
   packages (e.g. tamago, anthy) or an input method via XIM.
 
-** Provide the toolbar on ttys. This could map a bit like tmm-menubar
-   for the menubar and buttons could look a bit like those used by customize.
+** Let LEIM handle the Mode_switch key like XIM does (i.e. a toggle like C-\
+but which can also be used as a modifier).
 
 ** Improve Help buffers: Change the face of previously visited links (like
    Info, but also with regard to namespace), add a forward button to make the
@@ -431,12 +537,38 @@ when the body only calls primitives.
    e.g auto-mode-alist, the right face. [nickrob@snap.net.nz has a patch
    for this for inclusion after 22.1].
 
+** Possibly make `list-holidays' eval items in the calendar-holidays variable.
+   See thread
+   <http://lists.gnu.org/archive/html/emacs-devel/2006-02/msg01034.html>.
+   [rgm@gnu.org will look at this after 22.1]
+
+** Possibly make cal-dst use the system timezone database directly.
+   See thread
+   <http://lists.gnu.org/archive/html/emacs-pretest-bug/2006-11/msg00060.html>
+
 * Internal changes
 
+** Cleanup all the GC_ mark bit stuff -- there is no longer any distinction
+   since the mark bit is no longer stored in the Lisp_Object itself.
+
+** Merge ibuffer.el and buff-menu.el.
+   More specifically do what's needed to make ibuffer.el the default,
+   or just an extension of buff-menu.el.
+
+** Use pcomplete by default in shell-mode.
+   This means to make it behave (by default) more like the current code.
+   Use it also for read-shell-command, M-x compile, ...
+
+** Merge sendmail.el and messages.el.
+   Probably not a complete merge, but at least arrange for messages.el to be
+   a derived mode of sendmail.el.  Or arrange for messages.el to be split
+   into a small core and "the rest" so that we use less resources as long as
+   we stick to the features provided in sendmail.el.
 ** Replace gmalloc.c with the modified Doug Lea code from the current
-  GNU libc so that the special mmapping of buffers can be removed --
-  that apparently loses under Solaris, at least.  [fx has mostly done
-  this.]
+   GNU libc so that the special mmapping of buffers can be removed --
+   that apparently loses under Solaris, at least. [fx has mostly done
+   this.]
 
 ** Rewrite make-docfile to be clean and maintainable.
 
@@ -453,6 +585,11 @@ when the body only calls primitives.
    allocation functions (allocate_string etc.) without worrying about
    data munging.
 
+** Add "link" button class
+   Add a standard button-class named "link", and make all other link-like
+   button classes inherit from it.  Set the default face of the "link" button
+   class to the standard "link" face.
+
 * Other known bugs:
 
 ** a two-char comment-starter whose two chars are symbol constituents will
@@ -461,4 +598,22 @@ not be noticed if it appears within a word.
 ** Fix unexelf.c to handle the .data.rel and .data.rel.local
    sections made by GCC 3.4 on IRIX.
 
+\f
+This file is part of GNU Emacs.
+
+GNU Emacs is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GNU Emacs is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Emacs; see the file COPYING.  If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.
+
 ;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036