(autoloads): Make dired.el writable.
[bpt/emacs.git] / etc / TODO
CommitLineData
309920fa
EZ
1Emacs TODO List -*-outline-*-
2
bb65542c 3Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
5b87ad55
GM
4 Free Software Foundation, Inc.
5See the end of the file for license conditions.
6
19cc91fb 7
2255d5b4
RS
8If you are ready to start working on any of these TODO items, we
9appreciate your help; please write to emacs-devel@gnu.org so we can be
10aware that the problem is being addressed, and talk with you how to do
7bea57c9 11it best. Since Emacs is an FSF-copyrighted package, please be
2255d5b4
RS
12prepared to sign legal papers to transfer the copyright on your work
13to the FSF.
14
c884b4d7
DN
15* Simple tasks. These don't require much emacs knowledge, they are
16suitable for anyone from beginners to experts.
17
bfb906ac
DN
18** Convert modes that use view-mode to be derived from special-mode instead.
19
9fe219e3
DN
20** Replace some uses of the preprocessor code in Makefile.in with the equivalent autoconf.
21
c884b4d7 22** Major modes should have a menu entry. Examples of modes that do
bfb906ac 23not have one at the moment and probably should: text-mode, inferior-lisp-mode.
c884b4d7 24
479be3f4 25** Check if all items on the mode-line have a suitable tooltip for all modes.
c884b4d7 26
4e0ace23
DN
27** edebug and debugger-mode should have a toolbar.
28It can use the same icons as gud.
29
c884b4d7
DN
30** Check what minor modes don't use define-minor-mode and convert them
31to use it.
32
6d095958
GM
33** Convert all defvars with leading `*' in the doc-strings into defcustoms
34of appropriate :type and :group.
35
63e51ddd
GM
36** Remove any leading `*'s from defcustom doc-strings.
37
38** Remove unnecessary autoload cookies from defcustoms.
39This needs a bit of care, since often people have become used to
40expecting such variables to always be defined, eg when they modify
41things in their .emacs.
42
ba1c68de 43* Small but important fixes needed in existing features:
a9c1a157 44
cc48343f
RS
45** Flymake's customization mechanism needs to be both simpler (fewer
46levels of indirection) and better documented, so it is easier to
47understand. I find it quite hard to figure out what compilation
48command it will use.
49
50I suggest totally rewriting that part of Flymake, using the simplest
51mechanism that sufficies for the specific needs. That will be easy
52for users to customize.
53
0989e765
SM
54** Compute the list of active keymaps *after* reading the first event.
55
046ece71
KS
56** Distribute a bar cursor of width > 1 evenly between the two glyphs
57 on each side of the bar (what to do at the edges?).
58
d322eb9b
RS
59** buffer-offer-save should be a permanent local.
60
125fbe81 61** revert-buffer should eliminate overlays and the mark.
045744c6
MR
62 For related problems consult the thread starting with
63 http://lists.gnu.org/archive/html/emacs-devel/2005-11/msg01346.html
125fbe81 64
f98abf6d
RS
65** erase-buffer should perhaps disregard read-only properties of text.
66
30c56b97
LT
67** Make occur correctly handle matches that span more than one line,
68 as well as overlapping matches.
69
d3a403e5 70** Fix the kill/yank treatment of invisible text. At the moment,
b9e6b498 71 invisible text is placed in the kill-ring, so that the contents of
2345130a
SM
72 the ring may not correspond to the text as displayed to the user.
73 It ought to be possible to omit text which is invisible (due to a
b9e6b498
GM
74 text-property, overlay, or selective display) from the kill-ring.
75
6f771c32
RS
76** Change the way define-minor-mode handles autoloading.
77 It should not generate :require. Or :require in defcustom
78 should not be recorded in the user's custom-set-variables call.
79
af09dd78
RS
80** Feature to change cursor shape when Emacs is idle (for more than
81 a specified time).
82
4e07258f
RS
83** The buttons at the top of a custom buffer should not omit
84 variables whose values are currently hidden.
85
ec0cf966
RS
86** Clean up the variables in browse-url. Perhaps use a shell command string to
87 specify the browser instead of the mushrooming set of functions.
88 See also ESR's proposal for a BROWSER environment variable
89 <URL:http://www.catb.org/~esr/BROWSER/browse-url.patch>.
90
528b6abc
RS
91** Enhance scroll-bar to handle tall line (similar to line-move).
92
93** Make occur handle multi-line matches cleanly with context.
94
f98abf6d
RS
95** In Custom buffers, put the option that turns a mode on or off first,
96 using a heuristic of some kind?
97
98** Define recompute-arg and recompute-arg-if for fix_command to use.
99 See rms message of 11 Dec 05.
100
7c14546c
JD
101** Height returned by frame-parameter ... and height given to
102 make-frame does not mean the same thing. The former includes menu and
103 tool bar lines, the latter don't. frame-parameter should return height
104 without menu and tool bar lines.
105
f98abf6d
RS
106** In Emacs Info, examples of using Customize should be clickable
107 and they should create Custom buffers.
108
321e4870
RS
109** The toolbar should show keyboard equivalents in its tooltips.
110
74561a26
RS
111** Add function to redraw the tool bar.
112
a9b6d67e
RS
113** M-! M-n should fetch the buffer-file-name as the default.
114
5a893bff
RS
115** Redesign the load-history data structure so it can cope better
116 with evaluating definitions of the same function from different files,
117 recording which file the latest definition came from.
046ece71 118
4b4d11cc
RS
119** make back_comment use syntax-ppss or equivalent.
120
67ccd6cb
GM
121** Consider improving src/sysdep.c's search for a fqdn.
122http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00782.html
123
124** Find a proper fix for rcirc multiline nick adding.
125http://lists.gnu.org/archive/html/emacs-devel/2007-04/msg00684.html
211fb124 126
94172215
EZ
127** Implement `network-interface-list' and `network-interface-info'
128on MS-Windows. Hint: the information is present in the Registry,
129under the keys
130HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage\
131and
132HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<device>\
133where <device> is the network device found under the first key.
134
4af1faa3
GM
135** Check for any included packages that define obsolete bug-reporting commands.
136Change them to use report-emacs-bug.
137
7a00b900
NR
138** Allow fringe indicators to display a tooltip (provide a help-echo property?)
139
d73803e6
CY
140** Add a defcustom that supplies a function to name numeric backup files,
141like make-backup-file-name-function for non-numeric backup files.
142
b1a345ee
MR
143** `dired-mode' should specify the semantics of `buffer-modified-p' for
144dired buffers and DTRT WRT `auto-revert-mode'.
145
48abcfcc
GM
146** Check uses of prin1 for error-handling.
147http://lists.gnu.org/archive/html/emacs-devel/2008-08/msg00456.html
148
ba1c68de 149* Important features:
a9c1a157 150
cc48343f
RS
151** Having tabs above a window to switch buffers in it.
152
153** "Perspectives" are named persistent window configurations. We have
154had the window configuration mechanism in GNU Emacs since the
155beginning but we have never developed a good user interface to take
156advantage of them. Eclipse's user interface seems to be good.
157
158Perspectives work well even if you do the equivalent of C-x 4 C-f
159because of the distinction between view windows vs file windows. In
160Emacs this is more or less the "dedicated window" feature, but we have
161never really made it work for this.
162
163Perspectives also need to interact with the tabs.
164
165** Imenu could be extended into a file-structure browsing mechanism
166using code like that of customize-groups.
167
168** Display something in the margin on lines that have compilation
169errors.
170
171** Compilation error navigation bar, parallel to the scroll bar,
172indicating where in the buffer there are compilation errors.
173Perhaps we could arrange to display these error indications on top
174of the scroll bar itself. That depends on to what extent toolkit
175scroll bars are extensible.
176
ba1c68de 177** Provide user-friendly ways to list all available font families,
321e4870
RS
178 list fonts, display a font as a sample, etc. [fx is looking at
179 multilingual font selection for the Unicode branch of Emacs.]
5e101746 180
3aa7c28e
RS
181** Provide a convenient way to select a color with the mouse.
182
09d04fb3 183** Rewrite the face code to be simpler, clearer and faster.
5e101746 184
ba1c68de 185** Program Enriched mode to read and save in RTF. [Is there actually a
c51b37fd 186 decent single definition of RTF? Maybe see info at
1b2105d9
EZ
187 http://latex2rtf.sourceforge.net/.] This task seems to be addressed
188 by http://savannah.nongnu.org/projects/emacs-rtf/, which is still in
189 very early stages.
6165b6e3 190
ba1c68de 191** Implement primitive and higher-level functions to allow filling
a9c1a157
RS
192 properly with variable-pitch faces.
193
ba1c68de 194** Implement a smoother vertical scroll facility, one that allows
d3a403e5
SM
195 C-v to scroll through a tall image. The primitive operations
196 posn-at-point and posn-at-x-y should now make it doable in elisp.
a9c1a157 197
6ca1c497
RS
198** Implement intelligent search/replace, going beyond query-replace
199 (see http://graphics.csail.mit.edu/~rcm/chi04.pdf).
200
ba1c68de
SM
201** Implement other text formatting properties.
202*** Footnotes that can appear either in place or at the end of the page.
203*** text property that says "don't break line in middle of this".
6165b6e3
EZ
204 Don't break the line between two characters that have the
205 same value of this property.
ba1c68de 206*** Discretionary hyphens that are not visible when they are at end of line.
6165b6e3 207
ec0cf966
RS
208** Internationalize Emacs's messages.
209
4a7499a9
RS
210** Set up a facility to save backtraces when errors happen during
211specified filters, specified timers, and specified hooks.
212
49322539
RS
213** Install mmc@maruska.dyndns.org's no-flicker change.
214
07ff1e4b
RS
215** Add a "current vertical pixel level" value that goes with point,
216 so that motion commands can also move through tall images.
217 This value would be to point as window-vscroll is to window-start.
218
ec0cf966
RS
219** Address internationalization of symbols names essentially
220 as documentation, e.g. in command names and Custom.
a9c1a157 221
ba1c68de 222** Make the Lucid menu widget display multilingual text. [This
bf6394a6
DL
223 probably needs to be done from actual Emacs buffers, either directly
224 in the menu or by rendering in an unmapped window and copying the
f677a3a3
SM
225 pixels. The current code assumes a specific locale; that isn't good
226 enough even if X can render the arbitrary text] [The gtk
7bea57c9
DL
227 port now displays multilingual text in menus, but only insofar as
228 Emacs can encode it as utf-8 and gtk can display the result.]
f677a3a3
SM
229 Maybe making Lucid menus work like Gtk's (i.e. just force utf-8) is good
230 enough now that Emacs can encode most chars into utf-8.
a9c1a157 231
ba1c68de 232** Remove the limitation that window and frame widths and heights can
a9c1a157
RS
233 be only full columns/lines.
234
ba1c68de
SM
235* Other features we would like:
236
22f9eb9e
CY
237** Make longlines-mode wrap lines based on screen position instead
238 of character position, so that variable-width fonts can be handled
239 properly.
240
c3bb6fdb
SM
241** Allow frames(terminals) created by emacsclient to inherit their environment
242from the emacsclient process.
a37288ad
SM
243** Remove the default toggling behavior of minor modes when called from elisp
244rather than interactively. This a trivial one-liner in easy-mode.el.
0de301ed 245
a53e64cc
SM
246** Create a category of errors called `user-error' for errors which are
247typically due to pilot errors and should thus be in debug-ignored-errors.
248
39eadb4a
RS
249** Give Tar mode all the features of Archive mode.
250
9b8453da
RS
251** Create a category of errors called `process-error'
252 for some or all errors associated with using subprocesses.
253
51f74c37
RS
254** Maybe reinterpret `parse-error' as a category of errors
255 and put some other errors under it.
256
1a500a73 257** A function to tell you the argument pattern of functions.
1b2105d9 258 See `function-arity' in http://www.loveshack.ukfsn.org/emacs/fx-misc.el.
1a500a73
RS
259
260** Make byte-compile warn when a doc string is too wide.
261
9f4ba075
CY
262** Make byte-optimization warnings issue accurate line numbers.
263
f95a20e7
RS
264** A function to check for customizable options that have been
265 set but not saved, and ask the user whether to save them.
266 This could go in kill-emacs-query-functions, to remind people
267 to save their changes. If the user says yes, show them
268 in a Custom buffer using customize-customized.
269
8c9676fb
DK
270** Record the sxhash of the default value for customized variables
271 and notify the user (maybe by adding a menu item or toolbar button,
272 as the detection can occur during autoload time) when the default
273 changes (meaning that new versions of the Lisp source with a changed
274 default value got installed) and offer ediff on the respective
275 customization buffers.
276
e0402468 277** Emacs Lisp mode could put an overlay on the defun for every
8c9676fb
DK
278 function that has advice. The overlay could have `after-text' like
279 " [Function has advice]". It might look like (defun foo [Function
280 has advice] (x y) The overlay could also be a button that you could
281 use to view the advice.
e0402468 282
17e55b2a
RS
283** Add a function to get the insertion-type of the markers in an overlay.
284
9c9c88db
SM
285** ange-ftp
286*** understand sftp
1b2105d9
EZ
287 This is hard to make work because sftp doesn't print status
288 messages.
289
9c9c88db
SM
290*** Use MLS for ange-ftp-insert-directory if a list of files is specified.
291
ba1c68de
SM
292** Ability to map a key, including all modified-combinations.
293 E.g map mouse-4 to wheel-up as well as M-mouse-4 -> M-wheel-up
294 M-C-mouse-4 -> M-C-wheel-up, H-S-C-M-s-double-mouse-4 ->
295 H-S-C-M-s-double-wheel-up, ...
a9c1a157 296
ba1c68de
SM
297** Beefed-up syntax-tables.
298*** recognize multi-character syntactic entities like `begin' and `end'.
299*** nested string-delimiters (for Postscript's (foo(bar)baz) strings).
300*** support for infix operators (with precedence).
301*** support for the $ (paired delimiter) in parse-partial-sexp.
302*** support for hook-chars whose effect on the parsing-state is specified
303 by elisp code. Thus a char could both close a string and open a comment
304 at the same time and do it in a context-sensitive way.
305*** ability to add mode-specific data to the partial-parse-state.
306
2d1ef312
RS
307** Add a way to convert a keyboard macro to equivalent Lisp code.
308
ba1c68de 309** Have a command suggestion help system that recognizes patterns
a9c1a157
RS
310 of commands which could be replaced with a simpler common command.
311 It should not make more than one suggestion per 10 minutes.
6165b6e3 312
ba1c68de 313** Add a way to define input methods by computing them (when first used)
30a2aafd
RS
314 from other input methods. Then redefine C-x 8 to use a
315 user-selected input method, with the default being the union of
316 latin-1-prefix and latin-1-postfix.
317
a7abe867 318** Switch the Windows port to using Unicode keyboard input (maybe).
2fa4f835
EZ
319 Based on http://msdn2.microsoft.com/en-us/library/ms633586.aspx,
320 this boils down to (1) calling RegisterClassW function to register
321 Emacs windows, and (2) modifying ALL system messages to use Unicode.
322 In particular, WM_CHAR messages, which result from keyboard input,
a7abe867 323 will then come in encoded in UTF-16.
2fa4f835
EZ
324
325 One advantage of switching to Unicode is to toss encoded-kbd usage,
326 which will solve the problem with binding non-ASCII keys with
327 modifiers.
328
a7abe867
RS
329 Problem: using this on Windows 9x/ME requires installing the
330 Microsoft Layer for Unicode (MSLU), which might not implement all
331 the required functionality that is available built-in on Windows XP
332 and later. We should not make this change if it would pressure
333 users of unauthorized copies of older versions of Windows to
334 downgrade to versions that require activation.
335
ba1c68de 336** Implement a clean way to use different major modes for
06382b71
RS
337 different parts of a buffer. This could be useful in editing
338 Bison input files, for instance, or other kinds of text
1b2105d9
EZ
339 where one language is embedded in another language. See
340 http://www.loveshack.ukfsn.org/emacs/multi-mode.el and also
8b5e9361 341 mmm-mode, as reference for approaches taken by others.
a933dad1 342
b76781cd
RS
343** Arrange a way for an input method to return the first character
344 immediately, then replace it later. So that C-s a with
345 input method latin-1-postfix would immediately search for an a.
a933dad1 346
ba1c68de 347** Give start-process the ability to direct standard-error
a933dad1
DL
348 output to a different filter.
349
ba1c68de 350** Make desktop.el save the "frame configuration" of Emacs (in some
a933dad1
DL
351 useful sense).
352
ba1c68de 353** Give desktop.el a feature to switch between different named
8ba148c7
RS
354 desktops.
355
10bb671b
RS
356** Add a cpio mode, more or less like tar mode.
357
06382b71
RS
358** Save undo information in special temporary files, and reload it
359 when needed for undoing. This could extend undo capacity.
a933dad1 360
ba1c68de 361** Change the Windows NT menu code
a933dad1
DL
362 so that it handles the deep_p argument and avoids
363 regenerating the whole menu bar menu tree except
364 when the user tries to use the menubar.
365
366 This requires the RIT to forward the WM_INITMENU message to
367 the main thread, and not return from that message until the main
0245b3ef 368 thread has processed the MENU_BAR_ACTIVATE_EVENT and regenerated
a933dad1 369 the whole menu bar. In the mean time, it should process other messages.
d054101f 370
ba1c68de 371** Get some major packages installed: W3 (development version needs
93a759ba 372 significant work), PSGML, _possibly_ Cedet and ECB.
590394eb
GM
373 http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg01493.html
374 Check the assignments file for other packages which might go in and
375 have been missed.
376
7d6f3b3a
GM
377** Possibly install python-mode in place of python.el, or combine the two.
378Someone needs to do the work of figuring out who all the non-trivial
379python-mode.el contributors are and getting assignments.
380http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02156.html
381http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02201.html
382http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02489.html
383http://lists.gnu.org/archive/html/emacs-devel/2008-02/msg02234.html
384
ba1c68de 385** Make keymaps a first-class Lisp object (this means a rewrite of
5dd31b13
SM
386 keymap.c). What should it do apart from being opaque ?
387 multiple inheritance ? faster where-is ? no more fix_submap_inheritance ?
388 what else ?
e39fc314 389
ba1c68de 390** Provide real menus on ttys. The MS-DOS implementation can serve as
2fa4f835 391 an example how to do part of this; see the XMenu* functions on msdos.c.
e39fc314 392
ba1c68de 393** Implement popular parts of the rest of the CL functions as compiler
e39fc314
DL
394 macros in cl-macs.
395
261b01c6
RS
396** Make compiler warnings about functions that might be undefined at run time
397 smarter, so that they know which files are required by the file being
398 compiled and don't warn about functions defined in them.
399
ba1c68de 400** Highlight rectangles (`mouse-track-rectangle-p' in XEmacs). Already in CUA,
a52ce7f8 401 but it's a valuable feature worth making more general.
e39fc314 402
ba1c68de 403** Provide MIME support for Rmail using the Gnus MIME library. [Maybe
bf6394a6
DL
404 not now feasible, given Gnus maintenance decisions. fx looked at
405 this and can say where some of the problems are.]
e39fc314 406
ba1c68de 407** Eliminate the storm of warnings concerning char/unsigned char
1b2105d9
EZ
408 mismatches that we get with GCC 4.x and proprietary compilers on
409 various systems. They make it difficult to spot the important
410 warnings.
e39fc314 411
ba1c68de 412** Fix anything necessary to use `long long' EMACS_INTs with GCC.
eaf67bae 413
ba1c68de 414** Split out parts of lisp.h and generate Makefile dependencies
eaf67bae
DL
415 automatically.
416
ba1c68de 417** Update the FAQ.
eaf67bae 418
ba1c68de 419** Allow auto-compression-mode to use zlib calls if zlib is available.
b04f7626 420 [It's required for PNG, so may be linked anyhow.]
1265b539 421
ba1c68de 422** Add a --pristine startup flag which does -q --no-site-file plus
1265b539
DL
423 ignoring X resources (Doze equivalents?) and most of the
424 environment. What should not be ignored needs consideration.
590394eb 425 [Do the existing -Q and -D cover this, or is more needed?]
1265b539 426
ba1c68de 427** Improve the GC (generational, incremental). (We may be able to use
7bea57c9
DL
428 the Boehm collector.) [See the Boehm-GC branch in CVS for work on
429 this.]
19cc91fb 430
ba1c68de 431** Check what hooks would help Emacspeak -- see the defadvising in W3.
e2849090 432
a5bd14d3
RS
433** Add definitions for symbol properties, for documentation purposes.
434
ba1c68de 435** Add horizontal scroll bars.
00a18b59 436
ba1c68de 437** Provide an optional feature which computes a scroll bar slider's
e4ded23c 438 size and its position from lines instead of characters.
c0460c17 439
ba1c68de 440** Allow unknown image types to be rendered via an external program
590394eb
GM
441 converting them to, say, PBM (in the same way as PostScript?). [does
442 doc-view.el do this, or could it be extended to do this?]
d1c3f6b6 443
ba1c68de 444** Allow displaying an X window from an external program in a buffer,
d1c3f6b6
RS
445 e.g. to render graphics from Java applets. [gerd and/or wmperry
446 thought this was feasible.]
447
ba1c68de 448** Allow images (not just text) in the margin to be mouse-sensitive.
d1c3f6b6
RS
449 (Requires recursing through display properties). Provide some way
450 to simulate mouse-clicks on marginal text without a mouse.
451
ba1c68de 452** Implement Lisp functions to determine properly whether a character
d1c3f6b6
RS
453 is displayable (particularly needed in XFree 4, sigh). Use it to
454 define useful glyphs that may be displayed as images or unicodes
455 (with ASCIIfied fallback via latin1-disp). Examples include
456 box-drawing graphics in Custom buffers, W3 rules and tables, and
457 tree displays generally, mode-line mail indicator. [See work done
8589dc17 458 already for Emacs 23 and consult fx.]
d1c3f6b6 459
ba1c68de 460** Do something to make rms happy with fx's dynamic loading, and use it
d1c3f6b6
RS
461 to implement things like auto-loaded buffer parsers and database
462 access in cases which need more than Lisp.
463
ba1c68de 464** Extend ps-print to deal with multiple font sizes, images, and extra
d1c3f6b6
RS
465 encodings.
466
ba1c68de 467** Provide portable undumping using mmap (per gerd design).
d1c3f6b6 468
48b194fd 469** Make byte-compile avoid binding an expanded defsubst's args
8b5e9361 470 when the body only calls primitives.
48b194fd 471
ba1c68de 472** Use the XIE X extension, if available, for image display.
e641b454 473
ba1c68de 474** Make monochrome images display using the foreground and background
51fe665a
RS
475 colors of the applicable faces.
476
ec68482b
RS
477** Make `format-time-string' preserve text properties like `format'.
478
fda12b27
RS
479** Optionally make the cursor a little thinner at the end of a line
480 or the end of the buffer.
481
ba1c68de 482** Port the conservative stack marking code of Emacs' garbage collector
1b2105d9
EZ
483 to more systems, so that we can completely get rid of GCPROs. Note
484 that Boehm garbage collector provides this.
5e101746 485
ba1c68de 486** Reorder defcustom's in each package so that the more important
5005a9c0
EZ
487 options come first in the Customize buffers. This could be done by
488 either rearranging the file (since options are shown in the order
489 they appear in the *.el files), or by adding a few :set-after
490 attributes.
491
ba1c68de 492** Maybe document the features of libraries missing from the manual (or
5e101746
RS
493 ancillary manuals, including the Lisp manual in some cases).
494 This is not worth doing for all of these packages and we need not
495 aim for completeness, but some may be worth documenting.
496
497 Here's a list which is probably not complete/correct: align, allout,
498 artist, ansi-color, array, battery, calculator, cdl, cmuscheme,
657c5358 499 completion, cua, delim-col, dirtrack, double, echistory, elide-head,
5e101746
RS
500 easymenu, expand, flow-ctrl, format [format-alist],
501 generic/generic-x [various modes], kermit, log-edit, ledit
502 [obsolete?], makesum, midnight [other than in Kill Buffer node],
503 mouse-copy [?], mouse-drag, mouse-sel, net-utils, rcompile,
504 snmp-mode [?], soundex [should be interactive?], strokes [start from
505 the web page], talk, thingatpt [interactive functions?], type-break,
506 vcursor, xscheme, zone-mode [?], mlconvert [?], iso-cvt, iso-swed,
507 swedish, feedmail [?], uce, bruce, gametree, meese, page-ext,
508 refbib, refer, scribe, sgml-mode, spell, texinfo, underline,
509 cmacexp, hideif, mantemp [obsolete?], pcomplete, assoc, xml,
510 cvs-status (should be described in PCL-CVS manual); other progmodes,
511 probably in separate manual.
758830ba 512
ba1c68de 513** Convert the XPM bitmaps to PPM, replace the PBMs with them and scrap
6772c8e1
GM
514 the XPMs so that the color versions work generally. (Requires care
515 with the color used for the transparent regions.)
bf6394a6 516
ba1c68de 517** Convenient access to the `values' variable. It would be nice to have an
758830ba
JB
518 interface that would show you the printed reps of the elements of the
519 list in a menu, let you select one of the values, and put it into some
520 other variable, without changing the value of `values'.
bf6394a6 521
ba1c68de 522** (Controlled by a flag) make open and close syntax match exactly,
c51b37fd
DL
523 i.e. `(' doesn't match `]'.
524
ba1c68de 525** Specify parameter ID-FORMAT in all calls to `file-attributes' and
9ac8c83b
LH
526 `directory-files-and-attributes' where attributes UID or GID are used.
527 Whenever possible, use value 'string.
528 When done, change meaning of default value from 'integer to 'string.
529 If value 'integer is used nowhere, remove the parameter ID-FORMAT from
530 the definition of `file-attributes' and `directory-files-and-attributes'
531 and from the calls.
532
cf4c9271
KH
533** Make language-info-alist customizable. Currently a user can customize
534 only the variable `current-language-environment'.
535
536** Improve language environment handling so that Emacs can fit
537 better to a users locale. Currently Emacs uses utf-8 language
538 environment for all utf-8 locales, thus a user in ja_JP.UTF-8 locale
539 are also put in utf-8 lang. env. In such a case, it is
540 better to use Japanese lang. env. but prefer utf-8 coding system.
1f724d55 541
321e4870
RS
542** Enhance locale handling: handle language, territory and charset
543 orthogonally and de-emphasize language environments. Use the locale
544 to set up more things, such as fontsets, the default Ispell
545 dictionary, diary format, calendar holidays and display, quoting
546 characters and phrase boundaries, sentence endings, collation for
547 sorting (at least for unicodes), HTTP Accept-language, patterns for
548 directory listings and compilation messages, yes-or-no replies,
549 common menu items when the toolkit supports it ... `locale-info'
550 needs extending for LC_COLLATE &c. [fx started on this.]
551
1f724d55
KH
552** Eliminate the current restriction on header printing by ps-print.
553 Currently, a header can contain only single 1-byte charset in
554 addition to ASCII.
555
556** In ps-print, provide an user friendly interface to specify fonts.
557
1f724d55
KH
558** Enhance word boundary detection for such a script that doesn't use
559 space at word boundary (e.g. Thai).
560
cf4c9271
KH
561** Implement interface programs with major Japanese conversion server
562 in lib-src so that they can be used from the input method
563 "japanese". Currently, most Japanese users are using external
564 packages (e.g. tamago, anthy) or an input method via XIM.
1f724d55 565
a53e64cc 566** Let LEIM handle the Mode_switch key like XIM does (i.e. a toggle like C-\
8b5e9361 567 but which can also be used as a modifier).
a53e64cc 568
d59e3c42 569** Improve Help buffers: Change the face of previously visited links (like
8b5e9361
GM
570 Info, but also with regard to namespace), and give the value of
571 lisp expressions, e.g auto-mode-alist, the right face.
d59e3c42 572
5a473319
GM
573** Possibly make `list-holidays' eval items in the calendar-holidays variable.
574 See thread
575 <http://lists.gnu.org/archive/html/emacs-devel/2006-02/msg01034.html>.
576 [rgm@gnu.org will look at this after 22.1]
577
9e21382c
GM
578** Possibly make cal-dst use the system timezone database directly.
579 See thread
580 <http://lists.gnu.org/archive/html/emacs-pretest-bug/2006-11/msg00060.html>
581
590394eb
GM
582** Possibly add a "close" button to the modeline.
583 The idea is to add an "X" of some kind, that when clicked deletes
584 the window associated with that modeline.
585 http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg02416.html
586
ba1c68de
SM
587* Internal changes
588
41a023e3 589** Cleanup all the GC_ mark bit stuff -- there is no longer any distinction
dcbccc4d
CY
590 since the mark bit is no longer stored in the Lisp_Object itself.
591
12cdb1c1
SM
592** Refine the `predicate' arg to read-file-name.
593 Currently, it mixes up the predicate to apply when doing completion and the
594 one to use when terminating the selection.
595
1d919365
SM
596** Merge ibuffer.el and buff-menu.el.
597 More specifically do what's needed to make ibuffer.el the default,
598 or just an extension of buff-menu.el.
599
600** Use pcomplete by default in shell-mode.
601 This means to make it behave (by default) more like the current code.
602 Use it also for read-shell-command, M-x compile, ...
603
604** Merge sendmail.el and messages.el.
605 Probably not a complete merge, but at least arrange for messages.el to be
606 a derived mode of sendmail.el. Or arrange for messages.el to be split
607 into a small core and "the rest" so that we use less resources as long as
608 we stick to the features provided in sendmail.el.
045744c6 609
ba1c68de 610** Replace gmalloc.c with the modified Doug Lea code from the current
1d919365
SM
611 GNU libc so that the special mmapping of buffers can be removed --
612 that apparently loses under Solaris, at least. [fx has mostly done
613 this.]
ba1c68de
SM
614
615** Rewrite make-docfile to be clean and maintainable.
616
617** Add an inferior-comint-minor-mode to capture the common set of operations
618 offered by major modes that offer an associated inferior
d3a403e5
SM
619 comint-derived mode. I.e. basically make cmuscheme.el/inf-lisp.el generic.
620 For use by sml-mode, python-mode, tex-mode, scheme-mode, lisp-mode,
621 haskell-mode, tuareg-mode, ...
ba1c68de 622
8b5e9361 623** Make SYNC_INPUT the default. [true since 2008-03-11]
7cef6228
CY
624 All loops using immediate_quit need to be checked to ensure that
625 C-g can interrupt them, in case of an infinite loop. Once we
626 switch to using SYNC_INPUT, we can remove the BLOCK_INPUTs in the
627 allocation functions (allocate_string etc.) without worrying about
628 data munging.
629
f57dad5a
MB
630** Add "link" button class
631 Add a standard button-class named "link", and make all other link-like
632 button classes inherit from it. Set the default face of the "link" button
633 class to the standard "link" face.
634
2345130a
SM
635* Other known bugs:
636
c3bb6fdb 637** `make-frame' forgets unhandled parameters, at least for X11 frames.
48b8e4a0 638
2345130a
SM
639** a two-char comment-starter whose two chars are symbol constituents will
640not be noticed if it appears within a word.
641
07ff1e4b
RS
642** Fix unexelf.c to handle the .data.rel and .data.rel.local
643 sections made by GCC 3.4 on IRIX.
644
5b87ad55
GM
645\f
646This file is part of GNU Emacs.
647
ab73e885 648GNU Emacs is free software: you can redistribute it and/or modify
5b87ad55 649it under the terms of the GNU General Public License as published by
ab73e885
GM
650the Free Software Foundation, either version 3 of the License, or
651(at your option) any later version.
309920fa 652
5b87ad55
GM
653GNU Emacs is distributed in the hope that it will be useful,
654but WITHOUT ANY WARRANTY; without even the implied warranty of
655MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
656GNU General Public License for more details.
309920fa 657
5b87ad55 658You should have received a copy of the GNU General Public License
ab73e885 659along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
309920fa 660
ab5796a9 661;;; arch-tag: b0a3e40b-726a-457d-9999-ba848321b036