Fix some errors.
[gnus] / todo
1 ;; Also know as the "wish list".  Some are done. For the others, no
2 ;; promise when to be implemented.
3
4 * Use a new custom type (`define-widget') for posting-style in `gnus-cus.el'
5   (G c) and for `gnus-posting-styles'.  Maybe some allowed types are still
6   missing.
7
8 * Add proper doc strings to functions and variables explained in the manual
9   (info "(gnus)Gnus Utility Functions")
10
11 * Add Message-IDs or URLs refering to relevant discussions on lists and
12   newsgroups.
13
14 * Use nicer tool bar icons from GNOME
15
16   Done for Emacs (The GNOME icons won't fit into standard XEmacs icons,
17   IMHO. -- rsteib) in group, summary and message mode.
18
19   Some modes might also deserve improved tool bars:
20
21   - gnus-draft-mode
22
23   - mml-preview buffer:
24
25     . zap most buttons; except print, customize (?) and help
26
27     . "exit" should just kill the buffer
28
29   - gnus-server-mode: Add some commands from the Connections and Server
30     menu.
31
32   - gnus-browse-mode (could borrow some icons from gnus-group-mode)
33
34   (See http://article.gmane.org/gmane.emacs.gnus.general/62147).
35
36 * Maybe Gnus should support the LIST SUBSCRIPTIONS, see RFC 2980.
37
38 * Merge `message-extra-wide-headers' and ` message-header-synonyms'?
39
40 * Maybe texi/emacs-mime.texi could be divided into user-visible stuff and
41   reference manual for the MIME library.
42
43   Related: Bill Wohler's article on mh-e-user.
44   http://thread.gmane.org/29067.1138078896@olgas.newt.com
45
46 * Fix `change servers' command, see David Kastrup's message.
47   http://thread.gmane.org/x54qewqxz4.fsf@lola.goethe.zz
48
49 * texi/gnus-coding.texi should be fixed.
50
51 * gnus-topic-kill-region
52   From Colin Marquardt <colin.marquardt@usa.alcatel.com>
53
54   I noticed that when re-arranging topics, C-k yanks a topic just fine
55   (runs gnus-topic-kill-group).
56
57   However, my habit is to do marking and the yanking the region, so I
58   would run C-w on the marked topic. But C-w runs
59   gnus-group-kill-region and doesn't yank the topic (for groups it
60   works fine).
61
62   So could we have a gnus-topic-kill-region, or a
63   gnus-group-kill-region which handles topics as well?
64
65 * Speed up sorting in summary buffer if there is a limit.
66
67   Suggested by Daniel Ortmann <ortmann@isl.net>.
68
69 * Investigate the memory usage of Gnus. 
70
71   But it does seem strange that Gnus would use some 15meg for this.  I
72   think that is worth investigating.  I suspect that bugs or bad
73   design are causing waste; they could be in Gnus, or in Emacs. -- RMS
74
75 * Google group digest
76
77   The result of Google group search return a thread. Is it a digest
78   format?
79
80 * NOV caching.
81
82   Implement NOV caching with Gnus Agent.
83
84 * Allow specification of server in Newsgroups header
85
86   [Kai wrote]
87
88   WIBNI I could put `Newsgroups: nntp+quimby:bla' into a message and
89   Gnus would know to post this message on my server `nntp:quimby' into
90   the group bla?  I think this would be way cool.
91
92   But Gnus would have to rewrite the Newsgroups header before actually
93   sending the posting.
94
95   Thanks for Micha Wiedenmann for this suggestion.
96
97 * Parsing of the subscription notice to stash away details like what
98    address you're subscribed to the list under (and automatically send
99    mail to the list using that address, when you send mail inside the list
100    group), what address to mail to unsubscribe, and the list info message
101    if available.  Hitting the "get FAQ" command inside a mailing list
102    group should display that stashed copy of the info message.
103
104 * Some help in coming up with good split rules for mailing lists, as
105    automated as possible.  Splitting on To and Cc is almost always not
106    what I want, since it can misfile messages and since if I'm cc'd on
107    list mail I want to get both copies, one in my personal mailbox and one
108    in the list mailbox.  I know other people handle it other ways, but I
109    prefer it that way.  Accordingly, some way to semi-automatically
110    generate split rules based on Sender, Mailing-List, Return-Path,
111    X-Loop, and all of the other random headers that often work would be
112    very cool.
113
114 * Agent:
115
116 * A better interface to the agent download scoring rules, like the one
117   for the other scoring rules.
118
119 * Editing of messages in the agents cache.
120   
121 * Support for encrypted folders. Even if the mail arrives unencrypted
122   Gnus should be able to encrypt the *folder* for added safety. This
123   should go for both Gnus' own folders and the folders Gnus reads from
124   (e.g. /var/spool/mail/${USER}). All backends this makes sense for.
125
126   [John Wiegley's article <200011030445.VAA08277@localhost.dynodns.net>,
127    posted on gnu.emacs.gnus does this.
128    Also, gnus-article-encrypt `K E' encrypts the article body.]
129
130 * Splitting .newsrc.eld so the history is in one file and the
131   configuration is in another. To help those that reads at two
132   locations (e.g. work and home) and want to have the same
133   configuration.
134
135 * Additional article marking, and an ability to affect marks placed
136   during e.g. mail acquisition.  I want to be able to notice the
137   subject "fast money" or "web traffic", automatically mark it with a
138   `$', and score it into oblivion.  (But I fear that wanting to change
139   marks with mail-source-* and nnmail-* functions will represent a
140   philosophical conflict with the rest of Gnus' management of article
141   marks.  mail-source-* and nnmail-* currently hack around with files
142   under ~/Mail and leave traces in ~/Mail/active, but don't affect
143   things stored in .newsrc.eld.)
144
145 * A much better interface to nnmail-split-methods.  I don't know how
146   I'd like this done, but I know that the current method of manually
147   hacking regexps is pretty untenable for new users.  My boss, who is
148   tenured faculty at CMU and CEO & CTO at JPRC, and whose research
149   work has involved Lisp for the last 25 years, is trying to implant
150   himself in a Gnus mail environment, and this is a big sticking point
151   even for him.
152
153 * PGP-supported encryption of entire nnml & nnmh groups.  There are
154   people with whom I exchange mail routinely who don't send w/PGP, but
155   I'd really rather that the content not be left lying around
156   unencrypted.  Hook into article acquisition the way jka-compr
157   supposedly does, to auto-decrypt every message read.
158
159   [See Support for encrypted folders.]
160
161 * Baby's First Mail In Gnus.  Some set of functions that the
162   new-to-mail-in-Gnus user can invoke which will query the user
163   appropriately for the basic information required to establish mail
164   handling, leaving the appropriate traces in .gnus.  Perhaps a
165   customize buffer would be appropriate.
166   - Where does your mail come from?
167   - If some server, what is your POP/IMAP protocol identity?
168   - What is your identity when sending mail, as opposed to posting to
169     Usenet?
170   - Here are some basic concepts of mail groups (list a few:
171     personal mail, company-wide mail, mailing lists, garbage dumps,
172     receptacles for outbound copies of what one sends; which ones do
173     you want to instantiate, and what mail should land in each?
174     [/viz./ problem of nnmail-split-methods interface.]
175
176   [Probably `assistant.el' will provide this.  But it's development is
177   stalled.]
178
179 * Manual ordering of articles in an nnml folder.
180
181   That is, keystrokes to move articles (or whole threads) up or down
182   in the *Summary* buffer relative to the other articles.  The order
183   would be persistent (e.g., across gnus sessions).
184
185   With this ability, an nnml folder would make for a good to-do list.
186
187 * Since many uses Gnus to store to do lists I think it is time for an
188   nntodo. (I know Kai already written one, maybe use that for a start?)
189
190 * nnsql backend, which would allow messages or folders to be imported
191   in a local (My|Postgre|?)SQL RDBMS.
192
193 * "posting profiles" ideally accessible from a popup menu; allowing
194   choice between predefined profiles of
195   from,name,organization,etc. Example: I'm at home, but need to reply
196   to a work mail; i can hit 'R', then use this command to switch to my
197   'work' profile for purposes of this one reply. (This might already
198   be possible with current Gnus, but I don't think so.)
199
200 * Better handling of the mail retrieving / splitting feature:
201   - the variables <backend>-get-new-mail should not exist anymore. Mail
202     retrieving should be a separate matter.
203   - we should be able to split mails to groups AND backends at the same time.
204   - meanwhile, we should still be able to associate certain mail sources with
205     certain backends.
206
207 * More article marks (like '!' or '?').
208   Maybe user defined marks that can be displayed as any choosen charakter,
209   so one could do things like limiting on, to do whatever one likes with
210   these articles.
211
212 * Allow article editing in groups which do not support it, but
213   emulating it via deleting the old article and entering the new one
214   into the group.  This would be very useful to support `T ^' (say) in
215   nnimap groups.
216
217 * Allow user to specify which kinds of groups should be displayed.
218   For example, I want to display all the groups that are displayed
219   now, plus those which have cached messages in them.  (Gnus does
220   display those with ticked messages but not those with
221   cached-but-unticked ones.)  This would become even more important
222   when we allow labels.
223
224 * Create new data type `article identifier' and use that instead of
225   article numbers.  A first implementation could offer something like
226   (num . 4711) but this could be extended.  This would be useful for
227   using servers with *really* large numbers -- there we could have a
228   bignum type.  It might also be useful for the nnweb and nnultimate
229   thingies where article identifiers are not really numbers.
230
231 * Allow use of digests to keep related articles.  Normally, you use
232   groups to group together articles which are thematically related.
233   But sometimes, you have so many themes that this becomes
234   impractical.  WIBNI I could have digests in a group, and there was a
235   way to add a new article to one of the digests in that group?
236
237   Or maybe what I really want is a way to tell Gnus that a specific
238   thread should always be hidden (as in `T h') by default, while most
239   other threads are not hidden by default.  Hm.
240
241 * New backend nnbabylfolder.  There is also nnbabyl which is like
242   nnmbox but uses babyl format, but there is no babyl format
243   equivalent of nnfolder.
244
245 * Make movement commands in summary buffer independent of `move after
246   mark' behavior when marking articles.  Currently, if you don't want
247   `E' to move to the next unread article, you have to set
248   gnus-summary-goto-unread to nil, and then there is no way to move to
249   the next or previous unread article.
250
251   This one has two sub-tasks.  Providing the commands is one thing,
252   finding out useful key bindings for them is another.  I think we
253   could provide the commands first while not changing the behavior of
254   the key bindings; then different people can experiment with
255   different key binding schemes until we find something which suits
256   many people.
257
258 * `Move to next/previous/first article' is a misnomer, since ticked
259   articles are also unread but not moved to by these commands.  Should
260   the terminology be fixed or the documentation, or what?
261
262 * Allow sorting of threads by newest article rather than by root of
263   thread.  Consider the following thread structure:
264
265     root1       Jan 1
266       leaf1     Jan 4
267     root2       Jan 2
268       leaf2     Jan 3
269
270   These two threads are sorted this way because root1 is older than
271   root2.  I want an option to sort them the other way round because
272   leaf1 is newer than leaf2.
273
274 * Improve editing of MIME messages.  I would like to use html-mode to
275   edit the body of a text/html message, and enriched-mode for
276   text/enriched messages, and so on.  This should go for multipart
277   messages as well.  This is probably a hard one since Emacs currently
278   does not allow several major modes per buffer.  But maybe it would
279   be nice to hack Emacs to provide this infrastructure so that Gnus
280   can make use of it?  This would also make it possible to provide
281   nifty commands for editing the headers, for example, rather than
282   relying on commands which do the same thing everywhere.
283   message-x.el is really just a half-assed attempt at doing it, and
284   while it is useful, that's not the way it should be done.
285
286   I think Francisco Potort\e,Al\e(B already did something like this?
287
288 * Provide commands for editing MML tags.  For example, there could be
289   a command mml-add-tag-attribute which prompts me for an attribute
290   name (with completion, from the set filename, type, ...), and then
291   for a value.  (This is like `C-c +' in psgml.)  Or there could be a
292   command which showed me all the attributes in an MML tag and allows
293   me to use TAB to move between them, and then to edit each attribute
294   value.  (This is like `C-c C-a' in psgml.)
295
296 * Have Gnus automagically set group parameters for mailing list
297   groups.  For example, if I have a splitting rule that automatically
298   sorts ding@gnus.org into mail.ding, then Gnus should clue in, set
299   the to-list parameter to 'ding@gnus.org', and set total-expire.
300   (This is probably Hard (TM).  And of course the user should be able
301   to configure what parameters exactly get set.)
302
303 * Along the same lines, automagically detect broken reply-to's.  (But
304   don't auto-detect users legitimately setting a reply-to header that
305   points back to the list.)
306
307 * Make it easier to change parameters on a set of groups,
308   e.g. set/clear gcc-self on process-marked groups.
309
310 * Make it easier/possible to migrate between primary select-methods,
311   if that concept is going to be kept.  Right now I have only one
312   group on my primary server, and I'd kind of like to change from nntp
313   to nnml, but apparently this doesn't work well.
314
315 * Make it possible to refer to uniquely-named groups without
316   select-method prefix (e.g. mail.misc instead of nnml:mail.misc).
317
318 * Annotations as discussed last autumn. Be able to make comments to
319   articles for all backends. The comments maybe should go into a
320   seperate "backend", like nndraft.
321
322 * Catchup on a topic and all its subtopics. I.e. do "c y" when on a
323   topic line in *Group*.
324
325 * Better/more advanced subject washing in *Summary*, see my
326   js-gnus-simplify-subject-function I posted earlier this winter.
327
328 ;; From Newest Features node. Some are not done.
329
330 * I would like the zombie-page to contain an URL to the source of the
331 latest version of gnus or some explanation on where to find it.
332
333 *  A way to continue editing the latest Message composition.
334
335 *  facep is not declared.
336
337 * Include a section in the manual on why the number of articles isn't
338 the same in the group buffer and on the SPC prompt.
339
340 *  Interacting with rmail fcc isn't easy.
341
342 *       Hypermail:
343       http://www.uwsg.indiana.edu/hypermail/linux/kernel/9610/index.html
344
345    [w3 or nnwarchive?]
346
347 * `^-- ' is made into - in LaTeX.
348
349 *  when expunging articles on low score, the sparse nodes keep
350  hanging on?
351
352 *  starting the first time seems to hang Gnus on some systems.  Does
353  NEWGROUPS answer too fast?
354
355 *  nndir doesn't read gzipped files.
356
357 *  when moving mail from a procmail spool to the crash-box, the
358  crash-box is only appropriate to one specific group.
359
360 *  nnmh-be-safe means that crossposted articles will be marked as
361  unread.
362
363 *  Orphan score entries don't show on "V t" score trace
364
365 *  when clearing out data, the cache data should also be reset.
366
367 * rewrite gnus-summary-limit-children to be non-recursive to avoid
368 exceeding lisp nesting on huge groups.
369
370 *  expunged articles are counted when computing scores.
371
372 *  ticked articles aren't easy to read in pick mode - `n' and stuff
373  just skips past them.  Read articles are the same.
374
375 *  topics that contain just groups with ticked articles aren't
376  displayed.
377
378 *  nndoc should always allocate unique Message-IDs.
379
380 *  If there are mail groups the first time you use Gnus, Gnus'll
381  make the mail groups killed.
382
383 *  no "no news is good news" when using topics.
384
385 *  when doing crosspost marking, the cache has to be consulted and
386  articles have to be removed.
387
388 *  nnweb should fetch complete articles when they are split into
389  several parts.
390
391 *  scoring on head immediate doesn't work.
392
393 *  finding short score file names takes forever.
394
395 *  canceling articles in foreign groups.
396
397 *  nntp-open-rlogin no longer works.
398
399 *  C-u C-x C-s (Summary) switches to the group buffer.
400
401 *  move nnmail-split-history out to the backends.
402
403 *  using a virtual server name as `gnus-select-method' doesn't work?
404
405 *  when killing/yanking a group from one topic to another in a
406  slave, the master will yank it first to one topic and then add it
407  to another.  Perhaps.
408
409 *  warn user about `=' redirection of a group in the active file?
410
411 *  take over the XEmacs menubar and offer a toggle between the XEmacs
412  bar and the Gnus bar.
413
414 *       push active file and NOV file parsing down into C code.
415       `(canonize-message-id id)'
416       `(mail-parent-message-id references n)'
417       `(parse-news-nov-line &optional dependency-hashtb)'
418       `(parse-news-nov-region beg end &optional dependency-hashtb fullp)'
419       `(parse-news-active-region beg end hashtb)'
420
421 *  nnml .overview directory with splits.
422
423 *  asynchronous cache
424
425 *  postponed commands.
426
427 *  the selected article show have its Subject displayed in its
428  summary line.
429
430 *  when entering groups, get the real number of unread articles from
431  the server?
432
433 *  sort after gathering threads - make false roots have the headers
434  of the oldest orphan with a 0 article number?
435
436 *  nndoc groups should inherit the score files of their parents?
437  Also inherit copy prompts and save files.
438
439 *  command to start up Gnus (if not running) and enter a mail mode
440  buffer.
441
442 *  allow editing the group description from the group buffer for
443  backends that support that.
444
445 * gnus-hide,show-all-topics
446
447 *  groups and sub-topics should be allowed to mingle inside each
448  topic, and not just list all subtopics at the end.
449
450 *  a command to remove all read articles that are not needed to
451  connect threads - `gnus-summary-limit-to-sparse-unread'?
452
453 *  a variable to turn off limiting/cutting of threads in the tree
454  buffer.
455
456 *  a variable to limit how many files are uudecoded.
457
458 *  add zombie groups to a special "New Groups" topic.
459
460 *  server mode command: close/open all connections
461
462 *  put a file date in gnus-score-alist and check whether the file
463  has been changed before using it.
464
465 *  on exit from a digest group, go to the next article in the parent
466  group.
467
468 *  hide (sub)threads with low score.
469
470 *  when expiring, remove all marks from expired articles.
471
472 *  gnus-summary-limit-to-body
473
474 *  a regexp alist that says what level groups are to be subscribed
475  on.  Eg. - `(("nnml:" . 1))'.
476
477 *  allow newlines in <URL:> urls, but remove them before using the
478  URL.
479
480 *  If there is no From line, the mail backends should fudge one from
481  the "From " line.
482
483 *  fuzzy simplifying should strip all non-alpha-numerical info from
484  subject lines.
485
486 *  gnus-soup-brew-soup-with-high-scores.
487
488 *  nntp-ping-before-connect
489
490 *  command to check whether NOV is evil.  "list overview.fmt".
491
492 *  when entering a group, Gnus should look through the score files
493  very early for `local' atoms and set those local variables.
494
495 *  topics are always yanked before groups, and that's not good.
496
497 *  (set-extent-property extent 'help-echo "String to display in
498  minibuf") to display help in the minibuffer on buttons under
499  XEmacs.
500
501 *  stop using invisible text properties and start using overlays
502  instead
503
504 *  go from one group to the next; everything is expunged; go to the
505  next group instead of going to the group buffer.
506
507 *  gnus-renumber-cache - to renumber the cache using "low" numbers.
508
509 *  record topic changes in the dribble buffer.
510
511 *  `nnfolder-generate-active-file' should look at the folders it
512  finds and generate proper active ranges.
513
514 *  nneething-look-in-files-for-article-heads variable to control
515  whether nneething should sniff all files in the directories.
516
517 *  gnus-fetch-article - start Gnus, enter group, display article
518
519 *  gnus-dont-move-articles-to-same-group variable when respooling.
520
521 *  when messages are crossposted between several auto-expirable
522  groups, articles aren't properly marked as expirable.
523
524 *  nneething should allow deletion/moving.
525
526 *  TAB on the last button should go to the first button.
527
528 *  if the car of an element in `mail-split-methods' is a function,
529  and the function returns non-nil, use that as the name of the
530  group(s) to save mail in.
531
532 *  command for listing all score files that have been applied.
533
534 *  a command in the article buffer to return to `summary' config.
535
536 *  `gnus-always-post-using-current-server' - variable to override
537  `C-c C-c' when posting.
538
539 *  nnmail-group-spool-alist - says where each group should use as a
540  spool file.
541
542 *  when an article is crossposted to an auto-expirable group, the
543  article should be marker as expirable.
544
545 *  article mode command/menu for "send region as URL to browser".
546
547 *  on errors, jump to info nodes that explain the error.  For
548  instance, on invalid From headers, or on error messages from the
549  nntp server.
550
551 *  when gathering threads, make the article that has no "Re: " the
552  parent.  Also consult Date headers.
553
554 *  a token in splits to call shrink-window-if-larger-than-buffer
555
556 *  `1 0 A M' to do matches on the active hashtb.
557
558 *  duplicates - command to remove Gnus-Warning header, use the read
559  Message-ID, delete the "original".
560
561 *  when replying to several messages at once, put the "other"
562  message-ids into a See-Also header.
563
564 *  support ProleText:
565  <URL:http://proletext.clari.net/prole/proletext.html>
566
567 *  generate font names dynamically.
568
569 *  score file mode auto-alist.
570
571 *  allow nndoc to change/add/delete things from documents.  Implement
572  methods for each format for adding an article to the document.
573
574 *  `gnus-fetch-old-headers' `all' value to incorporate absolutely
575  all headers there is.
576
577 *  function like `|', but concatenate all marked articles and pipe
578  them to the process.
579
580 *  cache the list of killed (or active) groups in a separate file.
581  Update the file whenever we read the active file or the list of
582  killed groups in the .eld file reaches a certain length.
583
584 *  function for starting to edit a file to put into the current mail
585  group.
586
587 *  "ghettozie" - score on Xref header and nix it out after using it
588  to avoid marking as read in other groups it has been crossposted
589  to.
590
591 *  look at procmail splitting.  The backends should create the
592  groups automatically if a spool file exists for that group.
593
594 *  function for backends to register themselves with Gnus.
595
596 *  when replying to several process-marked articles, have all the
597  From end up in Cc headers?  Variable to toggle.
598
599 *  command to delete a crossposted mail article from all groups it
600  has been mailed to.
601
602 *  `B c' and `B m' should be crosspost aware.
603
604 *  hide-pgp should also hide PGP public key blocks.
605
606 *  Command in the group buffer to respool process-marked groups.
607
608 *  `gnus-summary-find-matching' should accept pseudo-"headers" like
609  "body", "head" and "all"
610
611 *  Process-marking all groups in a topic should process-mark groups
612  in subtopics as well.
613
614 *  Add non-native groups to the list of killed groups when killing
615  them.
616
617 If this entry is about non-foreign non-native groups, then it was
618 actually a bug that prevented them from being inserted into
619 gnus-killed-list:
620 <http://article.gmane.org/gmane.emacs.gnus.general/63383/>
621
622 *  nntp-suggest-kewl-config to probe the nntp server and suggest
623  variable settings.
624
625 *  add edit and forward secondary marks.
626
627 *  nnml shouldn't visit its .overview files.
628
629 *  allow customizing sorting within gathered threads.
630
631 *  `B q' shouldn't select the current article.
632
633 *  nnmbox should support a newsgroups file for descriptions.
634
635 *  Be able to specify whether the saving commands save the original
636  or the formatted article.
637
638 *  a command to reparent with the child process-marked (cf. `T ^'.).
639
640 *  I think the possibility to send a password with nntp-open-rlogin
641  should be a feature in Red Gnus.
642
643 *  The `Z n' command should be possible to execute from a mouse
644  click.
645
646 *  more limiting functions - date, etc.
647
648    We have `gnus-summary-limit-to-age'.  What's missing?  Maybe enter a date?
649
650 *  be able to limit on a random header; on body; using reverse
651  matches.
652
653 *  a group parameter (`absofucking-total-expiry') that will make
654  Gnus expire even unread articles.
655
656 *  variable to disable password fetching when opening by
657  nntp-open-telnet.
658
659 *  manual: more example servers - nntp with rlogin, telnet
660
661 *  checking for bogus groups should clean topic alists as well.
662
663 *  canceling articles in foreign groups.
664
665 *  article number in folded topics isn't properly updated by Xref
666  handling.
667
668 *  Movement in the group buffer to the next unread group should go
669  to the next closed topic with unread messages if no group can be
670  found.
671
672 *  Extensive info pages generated on the fly with help everywhere -
673  in the "*Gnus edit*" buffers, for instance.
674
675 *  Topic movement commands - like thread movement.  Up, down,
676  forward, next.
677
678 *  a way to say that all groups within a specific topic comes from a
679  particular server?  Hm.
680
681 *  `gnus-article-fill-if-long-lines' - a function to fill the
682  article buffer if there are any looong lines there.
683
684 *  `T h' should jump to the parent topic and fold it.
685
686 *  a command to create an ephemeral nndoc group out of a file, and
687  then splitting it/moving it to some other group/backend.
688
689 *  It should also probably be possible to delimit what
690  `gnus-jog-cache' does - for instance, work on just some groups, or
691  on some levels, and entering just articles that have a score
692  higher than a certain number.
693
694 *  nnfolder should append to the folder instead of re-writing the
695  entire folder to disk when accepting new messages.
696
697 *  a backend for reading collections of babyl files nnbabylfolder?
698
699 *  a command for making the native groups into foreign groups.
700
701 *  server mode command for clearing read marks from all groups from
702  a server.
703
704 *  when following up multiple articles, include all To, Cc, etc
705  headers from all articles.
706
707 *  a command for deciding what the total score of the current thread
708  is.  Also a way to highlight based on this.
709
710 *  command to show and edit group scores
711
712 *  a gnus-tree-minimize-horizontal to minimize tree buffers
713  horizontally.
714
715 *  command to generate nnml overview file for one group.
716
717 *  `C-u C-u a' - prompt for many crossposted groups.
718
719 *  keep track of which mail groups have received new articles (in
720  this session).  Be able to generate a report and perhaps do some
721  marking in the group buffer.
722
723 *  gnus-build-sparse-threads to a number - build only sparse threads
724  that are of that length.
725
726 *  have nnmh respect mh's unseen sequence in .mh_profile.
727
728 *  cache the newsgroups descriptions locally.
729
730 *  asynchronous posting under nntp.
731
732 *  be able to control word adaptive scoring from the score files.
733
734 *  a variable to make `C-c C-c' post using the "current" select
735  method.
736
737 *  `limit-exclude-low-scored-articles'.
738
739 *  if `gnus-summary-show-thread' is a number, hide threads that have
740  a score lower than this number.
741
742 *  split newsgroup subscription variable up into "order" and
743  "method".
744
745 *  buttonize ange-ftp file names.
746
747 *  a command to make a duplicate copy of the current article so that
748  each copy can be edited separately.
749
750 *  nnweb should allow fetching from the local nntp server.
751
752 *  record the sorting done in the summary buffer so that it can be
753  repeated when limiting/regenerating the buffer.
754
755 *  nnml-generate-nov-databses should generate for all nnml servers.
756
757 *  when the user does commands in the group buffer, check the
758  modification time of the .newsrc.eld file and use
759  ask-user-about-supersession-threat.  Also warn when trying to save
760  .newsrc.eld and it has changed.
761
762 *  M-g on a topic will display all groups with 0 articles in the
763  topic.
764
765 *  command to remove all topic stuff.
766
767 *  allow exploding incoming digests when reading incoming mail and
768  splitting the resulting digests.
769
770 *  command to nix out all nnoo state information.
771
772 *  nnmail-process-alist that calls functions if group names matches
773  an alist - before saving.
774
775 *  use buffer-invisibility-spec everywhere for hiding text.
776
777 *  variable to activate each group before entering them to get the
778  (new) number of articles.  `gnus-activate-before-entering'.
779
780 *  command to fetch a Message-ID from any buffer, even starting Gnus
781  first if necessary.
782
783 *  when posting and checking whether a group exists or not, just ask
784  the nntp server instead of relying on the active hashtb.
785
786 *  buttonize the output of `C-c C-a' in an apropos-like way.
787
788 *  `G p' should understand process/prefix, and allow editing of
789  several groups at once.
790
791 *  command to create an ephemeral nnvirtual group that matches some
792  regexp(s).
793
794 *  it should be possible to score "thread" on the From header.
795
796 *  hitting RET on a "gnus-uu-archive" pseudo article should unpack
797  it.
798
799 *  `B i' should display the article at once in the summary buffer.
800
801 *  remove the "*" mark at once when unticking an article.
802
803 *  `M-s' should highlight the matching text.
804
805 *  when checking for duplicated mails, use Resent-Message-ID if
806  present.
807
808 *  killing and yanking groups in topics should be better.  If
809  killing one copy of a group that exists in multiple topics, only
810  that copy should be removed.  Yanking should insert the copy, and
811  yanking topics should be possible to be interspersed with the
812  other yankings.
813
814 *  command for enter a group just to read the cached articles.  A
815  way to say "ignore the nntp connection; just read from the cache."
816
817 *  a way to hide all "inner" cited text, leaving just the most
818  recently cited text.
819
820 *  nnvirtual should be asynchronous.
821
822 *  after editing an article, gnus-original-article-buffer should be
823  invalidated.
824
825 *  there should probably be a way to make Gnus not connect to the
826  server and just read the articles in the server
827
828 *  allow a `set-default' (or something) to change the default value
829  of nnoo variables.
830
831 *  a command to import group infos from a .newsrc.eld file.
832
833 *  groups from secondary servers have the entire select method
834  listed in each group info.
835
836 *  a command for just switching from the summary buffer to the group
837  buffer.
838
839 *  a way to specify that some incoming mail washing functions should
840  only be applied to some groups.
841
842 *  Message `C-f C-t' should ask the user whether to heed
843  mail-copies-to: never.
844
845 *  new group parameter - `post-to-server' that says to post using
846  the current server.  Also a variable to do the same.
847
848 *  the slave dribble files should auto-save to the slave file names.
849
850 *  a group parameter that says what articles to display on group
851  entry, based on article marks.
852
853 *  a way to visually distinguish slave Gnusae from masters.  (Whip
854  instead of normal logo?)
855
856 *  Use DJ Bernstein "From " quoting/dequoting, where applicable.
857
858 *  Why is hide-citation-maybe and hide-citation different?  Also
859  clear up info.
860
861 *  group user-defined meta-parameters.
862
863  From: John Griffith <griffith@sfs.nphil.uni-tuebingen.de>
864
865 *  I like the option for trying to retrieve the FAQ for a group and
866  I was thinking it would be great if for those newsgroups that had
867  archives you could also try to read the archive for that group.
868  Part of the problem is that archives are spread all over the net,
869  unlike FAQs.  What would be best I suppose is to find the one
870  closest to your site.
871
872  In any case, there is a list of general news group archives at
873  ftp://ftp.neosoft.com/pub/users/claird/news.lists/newsgroup_archives.html
874
875 *      From: Jason L Tibbitts III <tibbs@hpc.uh.edu>
876       (add-hook 'gnus-select-group-hook
877         (lambda ()
878           (gnus-group-add-parameter group
879              (cons 'gnus-group-date-last-entered (list (current-time-string))))))
880
881       (defun gnus-user-format-function-d (headers)
882         "Return the date the group was last read."
883         (cond ((car (gnus-group-get-parameter gnus-tmp-group 'gnus-group-date-last-entered)))
884             (t "")))
885
886 *  tanken var at n\e,Ae\e(Br du bruker `gnus-startup-file' som prefix (FOO)
887  til \e,Ae\e(B lete opp en fil FOO-SERVER, FOO-SERVER.el, FOO-SERVER.eld,
888  kan du la den v\e,Af\e(Bre en liste hvor du bruker hvert element i listen
889  som FOO, istedet.  da kunne man hatt forskjellige serveres
890  startup-filer forskjellige steder.
891
892 * LMI> Well, nnbabyl could alter the group info to heed labels like
893  LMI> answered and read, I guess.
894
895  It could also keep them updated (the same for the Status: header of
896  unix mbox files).
897
898  They could be used like this:
899
900       `M l <name> RET' add label <name> to current message.
901       `M u <name> RET' remove label <name> from current message.
902       `/ l <expr> RET' limit summary buffer according to <expr>.
903
904       <expr> would be a boolean expression on the labels, e.g.
905
906       `/ l bug & !fixed RET'
907
908  would show all the messages which are labeled `bug' but not labeled
909  `fixed'.
910
911  One could also imagine the labels being used for highlighting, or
912  affect the summary line format.
913
914 * Sender: abraham@dina.kvl.dk
915
916  I'd like a gnus-find-file which work like find file, except that it
917  would recognize things that looks like messages or folders:
918
919  - If it is a directory containing numbered files, create an nndir
920  summary buffer.
921
922  - For other directories, create a nneething summary buffer.
923
924  - For files matching "\\`From ", create a nndoc/mbox summary.
925
926  - For files matching "\\`BABYL OPTIONS:", create a nndoc/baby
927  summary.
928
929  - For files matching "\\`[^ \t\n]+:", create an *Article* buffer.
930
931  - For other files, just find them normally.
932
933  I'd like `nneething' to use this function, so it would work on a
934  directory potentially containing mboxes or babyl files.
935
936 * Currently, I get prompted:
937
938  decend into sci?  - type y decend into sci.something ?  - type n
939  decend into ucd?
940
941  The problem above is that since there is really only one
942  subsection of science, shouldn't it prompt you for only descending
943  sci.something?  If there was a sci.somethingelse group or section,
944  then it should prompt for sci? first the sci.something? then
945  sci.somethingelse?...
946
947 * Ja, det burde v\e,Af\e(Bre en m\e,Ae\e(Bte \e,Ae\e(B si slikt.  Kanskje en ny variabel?
948  `gnus-use-few-score-files'?  S\e,Ae\e(B kunne score-regler legges til den
949  "mest" lokale score-fila.  F. eks. ville no-gruppene betjenes av
950  "no.all.SCORE", osv.
951
952 * What i want is for Gnus to treat any sequence or combination of
953  the following as a single spoiler warning and hide it all,
954  replacing it with a "Next Page" button:
955
956  ^L's
957
958  more than n blank lines
959
960  more than m identical lines (which should be replaced with button
961  to show them)
962
963  any whitespace surrounding any of the above
964
965 * Well, we could allow a new value to `gnus-thread-ignore-subject' -
966  `spaces', or something.  (We could even default to that.)  And then
967  subjects that differ in white space only could be considered the
968  "same" subject for threading purposes.
969
970 * Modes to preprocess the contents (e.g. jka-compr) use the second
971  form "(REGEXP FUNCTION NON-NIL)" while ordinary modes (e.g. tex)
972  use the first form "(REGEXP . FUNCTION)", so you could use it to
973  distinguish between those two types of modes. (auto-modes-alist,
974  insert-file-contents-literally.)
975
976 *  Under XEmacs - do funny article marks: tick - thumb tack killed -
977  skull soup - bowl of soup score below - dim light bulb score over
978  - bright light bulb
979
980 * Yes. I think the algorithm is as follows:
981
982       Group-mode
983
984          show-list-of-articles-in-group
985               if (key-pressed == SPACE)
986                       if (no-more-articles-in-group-to-select)
987                               if (articles-selected)
988                                       start-reading-selected-articles;
989                               junk-unread-articles;
990                               next-group;
991                        else
992                               show-next-page;
993
994                else if (key-pressed = '.')
995                       if (consolidated-menus)         # same as hide-thread in Gnus
996                               select-thread-under-cursor;
997                       else
998                               select-article-under-cursor;
999
1000
1001       Article-mode
1002               if (key-pressed == SPACE)
1003                       if (more-pages-in-article)
1004                               next-page;
1005                       else if (more-selected-articles-to-read)
1006                               next-article;
1007                       else
1008                               next-group;
1009
1010 * My precise need here would have been to limit files to Incoming*.
1011  One could think of some `nneething-only-files' variable, but I
1012  guess it would have been unacceptable if one was using many
1013  unrelated such nneething groups.
1014
1015  A more useful approach would be to, in response to the `G D'
1016  prompt, be allowed to say something like: `~/.mail/Incoming*',
1017  somewhat limiting the top-level directory only (in case
1018  directories would be matched by the wildcard expression).
1019
1020 *    Take a look at w3-menu.el in the Emacs-W3 distribution - this
1021  works out really well.  Each menu is 'named' by a symbol that
1022  would be on a gnus-*-menus (where * would be whatever, but at
1023  least group, summary, and article versions) variable.
1024
1025  So for gnus-summary-menus, I would set to '(sort mark dispose ...)
1026
1027  A value of '1' would just put _all_ the menus in a single 'GNUS'
1028  menu in the main menubar.  This approach works really well for
1029  Emacs-W3 and VM.
1030
1031 *  nndoc should take care to create unique Message-IDs for all its
1032  articles.
1033
1034 *  gnus-score-followup-article only works when you have a summary
1035  buffer active.  Make it work when posting from the group buffer as
1036  well.  (message-sent-hook).
1037
1038 *  * Enhancements to Gnus:
1039
1040  Add two commands:
1041
1042  * gnus-servers (gnus-start-server-buffer?)-enters Gnus and goes
1043  straight to the server buffer, without opening any connections to
1044     servers first.
1045
1046  * gnus-server-read-server-newsrc-produces a buffer very similar to
1047     the group buffer, but with only groups from that server listed;
1048     quitting this buffer returns to the server buffer.
1049
1050 *  add a command to check the integrity of an nnfolder folder - go
1051  through the article numbers and see that there are no duplicates,
1052  and stuff.
1053
1054 *  a command to give all relevant info on an article, including all
1055  secondary marks.
1056
1057 *  when doing `-request-accept-article', the backends should do the
1058  nnmail duplicate checking.
1059
1060 *  In addition, I would love it if I could configure message-tab so
1061  that it could call `bbdb-complete-name' in other headers.  So,
1062  some sort of interface like
1063
1064  (setq message-tab-alist       '((message-header-regexp
1065  message-expand-group)         ("^\\(To\\|[cC]c\\|[bB]cc\\)"
1066  bbdb-complete-name)))
1067
1068  then you could run the relevant function to complete the
1069  information in the header
1070
1071  [Done using `message-completion-alist'?]
1072
1073 *  cache the newsgroups file locally to avoid reloading it all the
1074  time.
1075
1076 *  a command to import a buffer into a group.
1077
1078 *  nnweb should allow fetching by Message-ID from servers.
1079
1080  [Done?]
1081
1082 *  point in the article buffer doesn't always go to the beginning of
1083  the buffer when selecting new articles.
1084
1085 *  a command to process mark all unread articles.
1086
1087 *  `gnus-gather-threads-by-references-and-subject' - first do
1088  gathering by references, and then go through the dummy roots and
1089  do more gathering by subject.
1090
1091 *  gnus-uu-mark-in-numerical-order - process mark articles in
1092  article numerical order.
1093
1094 *  (gnus-thread-total-score  (gnus-id-to-thread (mail-header-id
1095  (gnus-summary-article-header)))) bind to a key.
1096
1097 *  sorting by score is wrong when using sparse threads.
1098
1099 *  a command to fetch an arbitrary article - without having to be in
1100  the summary buffer.
1101
1102 *  a new nncvs backend.  Each group would show an article, using
1103  version branches as threading, checkin date as the date, etc.
1104
1105 * A Date scoring type that will match if the article is less than a certain
1106  number of days old. With - < > = (etc) that take floating point numbers and
1107  match on the age of the article.
1108
1109 *  use the summary toolbar in the article buffer.
1110
1111 *  a command to fetch all articles that are less than X days old.
1112
1113 *  in pick mode, `q' should save the list of selected articles in the
1114  group info.  The next time the group is selected, these articles
1115  will automatically get the process mark.
1116
1117 *  Isn't it possible to (also?) allow M-^ to automatically try the
1118  default server if it fails on the current server?  (controlled by a
1119  user variable, (nil, t, 'ask)).
1120
1121  [Done by `gnus-refer-article-method'?]
1122
1123 *  make it possible to cancel articles using the select method for
1124  the current group.
1125
1126 *  a new variable to control which selection commands should be
1127  unselecting.  `first', `best', `next', `prev', `next-unread',
1128  `prev-unread' are candidates.
1129
1130 *  be able to select groups that have no articles in them to be able
1131  to post in them (using the current select method).
1132
1133 *  be able to post via DejaNews.
1134
1135 *  `x' should retain any sortings that have been performed.
1136
1137 *  allow the user to specify the precedence of the secondary marks.
1138  Also allow them to be displayed separately.
1139
1140 *  gnus-summary-save-in-pipe should concatenate the results from the
1141  processes when doing a process marked pipe.
1142
1143 *  a new match type, like Followup, but which adds Thread matches on
1144  all articles that match a certain From header.
1145
1146 *  a function that can be read from kill-emacs-query-functions to
1147  offer saving living summary buffers.
1148
1149 *  a function for selecting a particular group which will contain
1150  the articles listed in a list of article numbers/id's.
1151
1152 *       (add-hook 'gnus-exit-query-functions
1153       '(lambda ()
1154          (if (and (file-exists-p nnmail-spool-file)
1155                   (> (nnheader-file-size nnmail-spool-file) 0))
1156              (yes-or-no-p "New mail has arrived.  Quit Gnus anyways? ")
1157              (y-or-n-p "Are you sure you want to quit Gnus? "))))
1158
1159 *  all commands that react to the process mark should push the
1160  current process mark set onto the stack.
1161
1162 *  gnus-article-hide-pgp Selv ville jeg nok ha valgt \e,Ae\e(B slette den
1163  dersom teksten matcher
1164       "\\(This\s+\\)?[^ ]+ has been automatically signed by"
1165  og det er maks hundre tegn mellom match-end og ---linja.  Men -det-
1166  er min type heuristikk og langt fra alles.
1167
1168 *  `gnus-subscribe-sorted' - insert new groups where they would have
1169  been sorted to if `gnus-group-sort-function' were run.
1170
1171 *  gnus-(group,summary)-highlight should respect any `face' text
1172  props set on the lines.
1173
1174 *  nndraft-request-group should tally auto-save files.
1175
1176 *  implement nntp-retry-on-break and nntp-command-timeout.
1177
1178 *  gnus-article-highlight-limit that says when not to highlight
1179  (long) articles.
1180
1181 *  nn*-spool-methods
1182
1183 * Interrupting the agent fetching of articles should save articles.
1184  Have the Agent write out articles, one by one, as it retrieves
1185  them, to avoid having to re-fetch them all if Emacs should crash
1186  while fetching.
1187
1188 *  command to open a digest group, and copy all the articles there
1189  to the current group.
1190
1191 *  a variable to disable article body highlights if there's more than
1192  X characters in the body.
1193
1194 *  handle 480/381 authinfo requests separately.
1195
1196 *  include the texi/dir file in the distribution.
1197
1198 *  command to display all dormant articles.
1199
1200 *  gnus-auto-select-next makeover - list of things it should do.
1201
1202 *  a score match type that adds scores matching on From if From has
1203  replied to something someone else has said.
1204
1205 * One command to edit the original version if an article, and one to
1206  edit the displayed version.
1207
1208 * `T v' - make all process-marked articles the children of the
1209  current article.
1210
1211 * Switch from initial text to the new default text mechanism.
1212
1213 * How about making it possible to expire local articles?  Will it be
1214  possible to make various constraints on when an article can be
1215  expired, e.g. (read), (age > 14 days), or the more interesting
1216  (read & age > 14 days)?
1217
1218 * New limit command--limit to articles that have a certain string in
1219  the head or body.
1220
1221 * Allow breaking lengthy NNTP commands.
1222
1223 * gnus-article-highlight-limit, to disable highlighting in big
1224  articles.
1225
1226 * Editing an article should put the article to be edited in a
1227  special, unique buffer.
1228
1229 * A command to send a mail to the admin-address group param.
1230
1231 * Allow Gnus Agent scoring to use normal score files.
1232
1233 * Rething the Agent active file thing.  `M-g' doesn't update the
1234  active file, for instance.
1235
1236 * With dummy roots, `^' and then selecing the first article in any
1237  other dummy thread will make Gnus highlight the dummy root instead
1238  of the first article.
1239
1240 * Propagate all group properties (marks, article numbers, etc) up to
1241  the topics for displaying.
1242
1243 * `n' in the group buffer with topics should go to the next group
1244  with unread articles, even if that group is hidden in a topic.
1245
1246 * gnus-posting-styles doesn't work in drafts.
1247
1248 * gnus-summary-limit-include-cached is slow when there are many
1249  articles in the cache, since it regenerates big parts of the
1250  summary buffer for each article.
1251
1252 * Implement gnus-batch-brew-soup.
1253
1254 * Group parameters and summary commands for un/subscribing to mailing
1255  lists.
1256
1257 * Introduce nnmail-home-directory.
1258
1259 * gnus-fetch-group and friends should exit Gnus when the user exits
1260  the group.
1261
1262 * Crossposted articles should "inherit" the % or  mark from the other
1263  groups it has been crossposted to, or something.  (Agent.)
1264
1265 * If point is on a group that appears multiple times in topics, and
1266  you press `l', point will move to the first instance of the group.
1267
1268 * A spec for the group line format to display the number of
1269  agent-downloaded articles in the group.
1270
1271 * Some nntp servers never respond when posting, so there should be a
1272  timeout for all commands.
1273
1274 * When stading on a topic line and `t'-ing, point goes to the last
1275  line.  It should go somewhere else.
1276
1277 *  When `#F', do:
1278
1279       Subject: Answer to your mails 01.01.1999-01.05.1999
1280        --text follows this line--
1281       Sorry I killfiled you...
1282
1283       Under the subject "foo", you wrote on 01.01.1999:
1284       > bar
1285       Under the subject "foo1", you wrote on 01.01.1999:
1286       > bar 1
1287
1288 * Allow "orphan" scores in the Agent scoring.
1289
1290   [done?]
1291
1292 *          - Edit article's summary line.
1293           - End edit
1294           - Sort lines in buffer by subject
1295
1296           --> the old subject line appears in Summary buffer, not the one that was
1297           just changed to.
1298
1299 * Remove list identifiers from the subject in the summary when doing
1300  `^' and the like.
1301
1302 * nnweb should include the "get whole article" article when getting
1303  articles.
1304
1305 * Perhaps there should be a command to "attach" a buffer of comments
1306  to a message?  That is, `B WHATEVER', you're popped into a buffer,
1307  write something, end with `C-c C-c', and then the thing you've
1308  written gets to be the child of the message you're commenting.
1309
1310 * Handle external-body parts.
1311
1312   [done for some access types]
1313
1314 * When renaming a group name, nnmail-split-history does not get the
1315  group name renamed.
1316
1317 * Allow mail splitting on bodies when using advanced mail splitting.
1318
1319         (body "whatever.text")
1320
1321 * Solve the halting problem.
1322
1323 \f
1324 ;; Local Variables:
1325 ;; mode: outline
1326 ;; coding: iso-2022-7bit
1327 ;; paragraph-separate: "[       \f]*$"
1328 ;; End: