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