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