summaryrefslogtreecommitdiff
path: root/slime-0.11/TODO
blob: c4bc5c475fa26f331cd301a7bfe11f3cd8c2d424 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
Slimy things to do, and various notes
-------------------------------------

Things to add or change before next release:

	* mouse-3 doesn't always work (if there's new mail?); don't use
	  integer indexes into list?
	* error messages with popups, not pring
	* rescan the current folder as well, periodically
	* decrement_unread: only if message is in inbox folder; and other
	  problems leading to -1 unread
	* put send and abort in compose window further away from each other
	* msgwin title: just name or addr, not both

Later stuff:

* Misc:
	* add X-Mailer header?
	* mark replied messages with special status
	* Copy, move should be done at commit time, and should update the
	  folder window. Copied/moved should be marked with some other
	  status character then D (C and M, perhaps).
	* allow editing of signature-file from within slime (new option
	  to Config and ConfigEditor: CONFIG_STRING_LONG, which is same
	  as CONFIG_STRING, but ConfigEditor gives a multiline editor)
	* speed up threading and other slow operations
	* _intern_string should make sure it doesn't grow too big
	* run PGP and other external program async. (allow using slime
	  while they're running, e.g., to kill the external program);
	  ditto for scanning inboxes; separate engine and ui to different
	  processes?
	* implement locking: folder.open probably shouldn't lock folder (folder
	  is kept open while viewed, so that would prevent new mail from
	  arriving); instead, lock when operations on folder require it (rescan,
	  commit, others?), and raise exception LockException if can't get lock
		- open imap folder locks it?
		- some lockfiles should be refreshed every N minutes; what if
		  rescan/commit is slow? even just reading one message might
		  be too slow! use separate thread?
		- after getting lock, make sure the folder is as we expect it to be
	* spool should be mailbox
	* automatic fcc to folder of replied-to message for replies? or always
	  a given folder? or never? (settable)
	* quote: ignore signature (optional)
	* long references: remove from middle, not end
	* installation: ask for and set #!-headers in scripts
	* address parsing breaks if addresses have commas (and in other ways)
	* avoid using msg.getfulltext; implement msg.getfile
	  instead; this should reduce memory usage
	* settable: ask whether to move read mail to received (default=no?)
	  or have an MH-style inbox and an "inc"?
	* print letters in some nice way
* Unix folders:
	* unix mailbox commit rewrites 'From ' lines (and wrongly!);
	  when reading a mailbox, store the From_ lines; invent one for new
	  messages (abstract class should have function to return it so it
	  is kept when moving/copying messages from one mbox to another)
	* unix mailbox commit: use better filename and make sure it doesn't exist yet
	* unix mailboxes do not handle messages with identical headers;
	  invent a better way to recognize new messages (just scan 
	  after last message? but that doesn't notice deleted ones);
	  just use offset in file?
	* unix mailbox commit: should check that file hasn't been modified since
	  last scan, to prevent losing stuff
* MH:
	* MH copy_message, move_message: if source is also in MH folder, use
	  MH routines (much faster); for other message types, add and use
	  a msg.get_file that returns msg._fp; do _not_ read everything into
	  memory
	* MH folders don't handle renumbering of folders while program is running;
	  use inode numbers for message identity, not message numbers; this
	  makes it robust against external folder packing
	* MH: should folder be packed? make it an option later?
* MIME:
	* mimify at send: deduce and set character set correctly, and other
	  MIME headers too
	* decode header mime encodings
	* handle uuencoded stuff
	* support other charsets than latin1/usascii
	* save part to file/pipe
* PGP:
	* send pgp/mime signed messages: canonicalize message correctly
	* support application/pgp (read only), text/plain that begins with
	  (empty lines) and ^---BEGIN PGP; showing and sending
	* learn about S/MIME
* User interface:
	* move, copy message: select folder from menu (in absence of dnd)
	* keyboard controls should work in both windows
	* It should be possible to change folders without committing
	  (i.e., to forget changes to folder).
	* Do cursor magic so that a suitable cursor is set everywhere,
	  and so that a busy cursor is shown, when doing slow stuff.
	* selection list: move barcursor first
	* set mouse cursor to clock while busy 
	* allow selecting multiple lines in ftoc, and only allow selecting lines
	* space should go to next new message, in any folder, if at end of one
	  folder
	* there should be some key for "go to next new message, anywhere"
	* handle WM_DELETE_WINDOW protocol
	        self.top.protocol("WM_DELETE_WINDOW", self.deleteWindow)
	* improve error messages (catch exceptions, popup error message box)
	* mime multiparts: toggle showing each part separately
	* horizontal scrollbars in selectionlists (put into ScrolledText)
	* configuration window:
		- show threaded or sort by date/subject/subject+date/from
		  (should be settable per ftoc-window as well)
		- hide only headers known to be unimportant? settable!
		- have one "all options" window, and make cfgwins scrollable
	* make subwindows in main window resizable with mouse
	* make columns in ftoc resizeable by mouse and configurable
	* make dates in ftoc nicer and configurable
	* ftoc: more info per message (to, first N lines of message (after 
	  quotes))
	* clone main window
	* msgwin: optionally do paste-source with quotes, and paste-sink 
	  as well
	* "catchup"
* Documentation:
	* start a manual
	* write description of overall structure (for programmers)
	* find good specification for "Status:" and "X-Status:" headers
* Python:
	* early "SeX" messages from da Silva have bad dates, but should be
	  parseable; Python's getdate doesn't do it, though
	* pythons getdate doesn't do timezone? runtime patch?
	* python mailbox.py: of what use is _Mailbox.seek, and does it work 
	  at all?

Text mode interface (someone else will have to write it):

	* text interface should have a `really terse' mode for slow
	  modems (<=14k :)
	* text interface: two windows, one shows a letter, one writes reply

Lunatic ideas for after 1.0:

	* simple inline-html support (incoming)
	* good printer support
	* mixmaster support (and other anon mail support)
	* internal editor should allow creation of MIME messages
	* picons
	* change pop/imap password securely from mailer (=> user does not need
	  to manually log into server at all)
	* put ui and engine in different threads?
	* address book a la exmh (and Emacs bbdb?): grab addresses from every
	  shown message, and have search tool (ctrl-tab) in mail editor; a
	  trad. alias system as well; grab data to aliases from mail, including
	  signature
	* have address book integrate into external (non-existing) database of
	  contact info (names, phone numbers, e-mail addresses, etc); grab data
	  from signature
	* folder specific signatures
	* grab url's from letters, store in suitable file
	* show text/html
	* netiquette stuff: check for too much quotes, etc
	* spam filter on inbox(es)? (move spam-looking stuff into separate folder,
	  or something); generic filtering?
	* global operations (based on filters): set/reset flag, delete/copy/forward
	  /whatever flagged mail
	* user defined shortcuts
	* reply to many letters at once (quote all of them)
	* interface for subscribing and unsubscribing to mailing lists
	* compress folders
	* killfile and scoring
	* remove duplicates based on message-id
	* mailing list (un)subscription tool
	* mark as read/deleted in all folders, when many inboxes for
	  different lists have the same message