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