Gnus development mailing list
 help / color / mirror / Atom feed
From: Simon Josefsson <jas@extundo.com>
Subject: Re: `gnus-unseen-mark' everywhere
Date: Fri, 04 Jan 2002 23:44:35 +0100	[thread overview]
Message-ID: <ilu666hu46k.fsf@extundo.com> (raw)
In-Reply-To: <m31yh5wza3.fsf@multivac.cwru.edu> (prj@po.cwru.edu's message of "Fri, 04 Jan 2002 17:01:50 -0500")

prj@po.cwru.edu (Paul Jarc) writes:

> Simon Josefsson <jas@extundo.com> wrote:
>> prj@po.cwru.edu (Paul Jarc) writes:
>>> ["seen"] doesn't have to do with the backend itself, but it does
>>> have to do with what is stored via the backend - i.e., the
>>> articles.  OTOH, "cache" has to do with information always stored
>>> outside the backend.  There's nothing outside the backend that
>>> "seen" depends on, or must be synchronized with, etc.
>>
>> You could say that ".newsrc.eld" is outside of the backend and the
>> seen mark depends on it and is specific to .newsrc.eld.
>
> Depending on the user's configuration and wishes, it's possible that
> the backend could have a more up-to-date copy of the "seen" marks than
> .newsrc.eld does[*], so it makes sense to store "seen" in the backend
> and allow the backend to update Gnus's "seen" marks.

Then it would be a "recent" mark, wouldn't it?  The difference between
recent and seen is that backends decide which articles is recent or
not.  If a article is seen or not is determined by Gnus.  Now, seen
marks might be stored in the backend but if the backend would start to
modify the value, it would have the same semantics as recent, no?

Well, OK, a backend could use different algorithms for deciding which
articles are seen and which are recent, but then we would have to
invent another mark that reflects Gnus's opinion and not the
backend's.  I'm not sure that having two backend-controlled marks that
indicate readedness is needed.  (Even having both recent and seen is
somewhat excessive.)

> [*] You would probably say that the most up-to-date copy of "seen" is,
> by definition, always in .newsrc.eld.

Yes, I think so.

> But note two facts:
> - "seen" does not carry very much meaning for Gnus (less meaning than
>   is carried by, e.g., "expire"); it is displayed in the *Summary*
>   buffer, and it is automatically set for new articles.  That's all.

Right, seen is used as an indicator to the user to display what Gnus
thinks of the article.  Recent is used as an indicator to the user to
display what the backend thinks of the article.  If seen were to be
controlled by the backend as well, I would like another mark that told
me what Gnus thought.

> - Gnus does not make it easy for the user to define arbitrary new mark
>   types.

I think it is pretty easy.  Just write a command, jas-add-flonk-mark,
that adds a mark to the current article (using either the backend
interface or modifying the group info or modifying a summary local
variable, depending on what you want).  Then write a summary buffer %U
function to display the mark.

> As a consequence of these two facts, a user might want to adjust the
> meaning of "seen" in such a way that the backend could have the most
> up-to-date copy.

Isn't controlling the recent mark in the backend enough?

> I think it would be nice if it weren't too hard to do this.  But it
> would be even better to allow arbitrary new user-defined mark types.

Just write a function that queries the user for a name of the mark and
set it.  I guess Group Info wasn't made to support this usage, but the
only problem would be slowing things down.  If another data structure
for group info was used, it would be fast.

> So I guess focusing on "seen" is the wrong way to go anyway.

Yup.

>>> I think such a project could also handle the de-mark-ification of at
>>> least "cache" and "download", right?
>>
>> That could be another step in that project.  It is probably best to
>> unify the agent and the cache without touching marks first though.
>>
>> Maybe we should start porting Gnus to Guile and clean up the design in
>> the process. But this sounds like really more work. :-)
>
> Well, "cleaning up the design" sounds like it could easily include the
> cache/agent unification as well. :)

So much to do, so little time...




  reply	other threads:[~2002-01-04 22:44 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-12-30 11:33 Robert Epprecht
2001-12-30 21:37 ` Lars Magne Ingebrigtsen
2001-12-31  7:11   ` Robert Epprecht
2001-12-31  7:37     ` Lars Magne Ingebrigtsen
2001-12-31 13:15       ` Simon Josefsson
2002-01-02  7:24         ` Robert Epprecht
2002-01-08  6:34           ` Maciej Matysiak
2002-01-03 19:53         ` Paul Jarc
2002-01-03 20:21           ` Simon Josefsson
2002-01-03 20:32             ` Paul Jarc
2002-01-03 21:45               ` Simon Josefsson
2002-01-03 21:59                 ` Paul Jarc
2002-01-04 20:43                   ` Simon Josefsson
2002-01-04 21:12                     ` Paul Jarc
2002-01-04 21:27                       ` Simon Josefsson
2002-01-04 22:01                         ` Paul Jarc
2002-01-04 22:44                           ` Simon Josefsson [this message]
2002-01-05  1:00                             ` Paul Jarc

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ilu666hu46k.fsf@extundo.com \
    --to=jas@extundo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).