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