annotate etc/=TO-DO @ 4790:b110036d90b0

Version 2.3. Documentation: `forms-forms-scroll' and `forms-forms-jump' now default to nil. `forms-new-record-filter' and `forms-modified-record-filter' cannot be redefined as functions. Commands and keymaps are changed. Add function key defs. (forms-version): Docstring includes full RCS id. (forms-forms-scroll): Defaults to nil. (forms-forms-jump): Defaults to nil. (forms-mode-edit-map, forms-mode-ro-map): Additional keymaps for edit mode and read-only mode. (forms--new-record-filter, forms--modified-record-filter): Deleted. (forms-mode): Docstring now includes the key bindings, since both edit mode and read-only mode must be supported. Changed `forms-new-record-filter' and `forms-modified-record-filter' semantics: the variable must point to a function and may not be defined as a function anymore. Use three keymaps: `forms-mode-map' (C-c commands), `forms-mode-edit-map' (normal mode) and `forms-mode-ro-map' (read-only mode). The maps are not buffer local. Changed the text of error messages to be more descriptive, and onsistent with the documentation. Moved setting up write-file-hooks and revert-buffer-function to function `forms--change-commands'. (forms--process-format-list): Changed error messages to be more descriptive. (forms--set-keymaps): Setup the three keymaps. (forms--mode-commands): Use new command key bindings. (forms--mode-commands1): New helper function for `forms--mode-commands'. (forms--change-commands): Handle setup of local-write-file-hooks and revert-buffer-function. (forms--help): Show new command bindings. (forms--show-record): Replaced `forms--modified-record-filter' by `forms-modified-record-filter'. (forms-jump-record): Changed error message. (forms-toggle-read-only): New function, replaces `forms-view-mode' and `forms-edit-mode'. (forms-view-mode, forms-edit-mode): Deleted. (forms-insert-record): Replaced `forms--new-record-filter' by `forms-new-record-filter'. (forms-insert-record, forms-delete-record): Disallow in read-only mode. (forms-prev-field): New function.
author Richard M. Stallman <rms@gnu.org>
date Mon, 27 Sep 1993 02:19:46 +0000
parents 59c8668f70c7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2251
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
1 Things useful to do for GNU Emacs:
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
2
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
3 * Primitive for random access insertion of part of a file.
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
4
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
5 * Making I/O streams for files, so that read and prin1 can
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
6 be used on files directly. The I/O stream itself would
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
7 serve as a function to read or write one character.
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
8
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
9 * If a file you can't write is in a directory you can write,
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
10 make sure it works to modify and save this file.
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
11
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
12 * Make dired's commands handle correctly the case where
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
13 ls has listed several subdirectories' contents.
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
14 It needs to be able to tell which directory each file
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
15 is really in, by searching backward for the line
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
16 which identifies the start of a directory.
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
17
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
18 * Add more dired commands, such as sorting (use the
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
19 sort utility through call-process-region).
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
20
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
21 * Make display.c record inverse-video-ness on
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
22 a character by character basis. Then make non-full-screen-width
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
23 mode lines inverse video, and display the marked location in
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
24 inverse video.
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
25
216f86e5891d Initial revision
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
diff changeset
26 * VMS code to list a file directory. Make dired work.
2306
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
27
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
28 Long range:
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
29
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
30 Ideas for extending GNU Emacs to deal with arbitrary character sets.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
31
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
32 I would like GNU Emacs to be extended to handle all the world's alphabets
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
33 and word signs. I don't expect to have time to do such a thing in the next
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
34 few years, so here are my ideas on the best way to do it.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
35
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
36 * Each graphic is represented by a sequence of ordinary 8-bit characters.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
37
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
38 * All the characters that make up such a sequence have codes >= 0200.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
39
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
40 * The first character of such a sequence is between 0200 and 0237.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
41
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
42 * The remaining characters of such a sequence are all 0240 or higher.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
43
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
44 * The first character of the sequence determines the number of characters
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
45 in the sequence. Thus, 0200...0207 could start two-character sequences,
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
46 0210...0227 could start three-character sequences, and 0230 could start
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
47 four-character sequences. (Codes 0231...0237 would be reserved.)
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
48
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
49 * Several common alphabets, and some mathematical symbols, would get
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
50 two-character sequences. (Probably Greek, Russian, Hebrew(?), Arabic(?),
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
51 Korean, and Japanese kana). The remaining alphabets, and some versions of
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
52 Chinese, would get three-character sequences. Other sets of Chinese
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
53 characters would get four-character sequences.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
54
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
55 Each country that uses Chinese characters has its own standard character
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
56 set, and it is not easy to correlate them to avoid overlap. So there may
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
57 need to be several sets of Chinese characters. That is why they need so
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
58 much code space.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
59
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
60 True support for Hebrew and Arabic requires dealing with the problem of
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
61 writing direction for mixed text; I don't know what to do for that.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
62
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
63 * The functions that use syntax table would determine the
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
64 syntax of a sequence from its first character.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
65
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
66 * Functions in indent.c for computing widths and columns would
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
67 determine the width of a sequence from its first character.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
68 So would display routines.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
69
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
70 * Only a few other editing routines would need any change. In
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
71 particular, searching and regexp matching might not need any change.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
72
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
73 * Most of the work required would be in redisplay. The only case that
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
74 needs to be supported is with X windows, since ordinary terminals
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
75 can't display all these characters anyway.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
76
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
77 * There might need to be code to translate files from this format
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
78 to whatever format is typically stored on disk.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
79
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
80
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
81 I would be very unhappy with half-measures, such as support for
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
82 Japanese only.
59c8668f70c7 Merged in CHARACTERS
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2251
diff changeset
83