Things useful to do for GNU Emacs: * Primitive for random access insertion of part of a file. * Making I/O streams for files, so that read and prin1 can be used on files directly. The I/O stream itself would serve as a function to read or write one character. * read-from-string, prin1-to-string. * Can gc compactify strings in place rather than copying all of string space? Current technique of copying is vulnerable to a fatal error if copying strings exhausts memory during gc. Alternatively, be able to use secondary storage for copying strings if run out of memory for doing so. * Implement the FRONT_END_PROCESS form of input. * If a file you can't write is in a directory you can write, make sure it works to modify and save this file. * Make read-only buffers truly unmodifiable. Make dired, buffer-menu, and rmail buffers read-only and make the commands that actually change them temporarily turn off the read-onliness. Then there will be no need for supress-keymap to bind away all the control and meta characters that can modify the buffer. It should still rebind the printing characters. * Finish picture-mode. * Make dired's commands handle correctly the case where ls has listed several subdirectories' contents. It needs to be able to tell which directory each file is really in, by searching backward for the line which identifies the start of a directory. * Add more dired commands, such as sorting (use the sort utility through call-process-region) and renaming and setting file modes (use set-file-modes). * Make display.c record inverse-video-ness on a character by character basis. Then make non-full-screen-width mode lines inverse video, and display the marked location in inverse video.