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