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