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