* Uninformative comment in files.el
@ 2007-12-11 18:46 Stefan Monnier
2007-12-11 20:55 ` Vinicius Jose Latorre
0 siblings, 1 reply; 23+ messages in thread
From: Stefan Monnier @ 2007-12-11 18:46 UTC (permalink / raw)
To: emacs-devel
Could whoever installed the following change:
2007-12-10 Yoni Rabkin Katzenell <yoni-r@actcom.com> (tiny change)
* file.el (revert-buffer): Eliminate overlays and the mark.
replace the comment "Reset the mark and remove all overlays" which just
paraphrases the code, with a comment that actually explains why we
want/need to do that?
Stefan
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-11 18:46 Uninformative comment in files.el Stefan Monnier
@ 2007-12-11 20:55 ` Vinicius Jose Latorre
2007-12-11 22:05 ` martin rudalics
2007-12-12 22:52 ` Richard Stallman
0 siblings, 2 replies; 23+ messages in thread
From: Vinicius Jose Latorre @ 2007-12-11 20:55 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
Stefan Monnier wrote:
> Could whoever installed the following change:
>
> 2007-12-10 Yoni Rabkin Katzenell <yoni-r@actcom.com> (tiny change)
> * file.el (revert-buffer): Eliminate overlays and the mark.
>
> replace the comment "Reset the mark and remove all overlays" which just
> paraphrases the code, with a comment that actually explains why we
> want/need to do that?
>
This is not explained in etc/TODO file.
The patch refers to this line in etc/TODO file:
** revert-buffer should eliminate overlays and the mark.
Does anyone know why this is necessary?
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-11 20:55 ` Vinicius Jose Latorre
@ 2007-12-11 22:05 ` martin rudalics
2007-12-12 2:22 ` Vinicius Jose Latorre
2007-12-12 22:52 ` Richard Stallman
1 sibling, 1 reply; 23+ messages in thread
From: martin rudalics @ 2007-12-11 22:05 UTC (permalink / raw)
To: Vinicius Jose Latorre; +Cc: Stefan Monnier, emacs-devel
>> Could whoever installed the following change:
>>
>> 2007-12-10 Yoni Rabkin Katzenell <yoni-r@actcom.com> (tiny change)
>> * file.el (revert-buffer): Eliminate overlays and the mark.
>>
>> replace the comment "Reset the mark and remove all overlays" which just
>> paraphrases the code, with a comment that actually explains why we
>> want/need to do that?
>>
>
>
> This is not explained in etc/TODO file.
>
> The patch refers to this line in etc/TODO file:
>
> ** revert-buffer should eliminate overlays and the mark.
>
>
> Does anyone know why this is necessary?
I'm afraid the patch installed is overly simplistic. You can find out
more by looking at the thread starting with
http://lists.gnu.org/archive/html/emacs-devel/2005-11/msg01346.html
For the moment I'd strongly propose to revert the change and study the
problem in more depth.
>
>
>
> _______________________________________________
> Emacs-devel mailing list
> Emacs-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-devel
>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-11 22:05 ` martin rudalics
@ 2007-12-12 2:22 ` Vinicius Jose Latorre
2007-12-12 6:31 ` Yoni Rabkin Katzenell
[not found] ` <E1J2aRp-00010Y-QD@fencepost.gnu.org>
0 siblings, 2 replies; 23+ messages in thread
From: Vinicius Jose Latorre @ 2007-12-12 2:22 UTC (permalink / raw)
To: martin rudalics; +Cc: Stefan Monnier, Richard M. Stallman, emacs-devel
martin rudalics wrote:
>>> Could whoever installed the following change:
>>>
>>> 2007-12-10 Yoni Rabkin Katzenell <yoni-r@actcom.com> (tiny
>>> change)
>>> * file.el (revert-buffer): Eliminate overlays and the mark.
>>>
>>> replace the comment "Reset the mark and remove all overlays" which just
>>> paraphrases the code, with a comment that actually explains why we
>>> want/need to do that?
>>>
>>
>>
>> This is not explained in etc/TODO file.
>>
>> The patch refers to this line in etc/TODO file:
>>
>> ** revert-buffer should eliminate overlays and the mark.
>>
>>
>> Does anyone know why this is necessary?
>
> I'm afraid the patch installed is overly simplistic. You can find out
> more by looking at the thread starting with
>
> http://lists.gnu.org/archive/html/emacs-devel/2005-11/msg01346.html
>
> For the moment I'd strongly propose to revert the change and study the
> problem in more depth.
Ok, I've read the thread. Indeed, the problem is not so simple.
I've just undone the patch in CVS trunk.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-12 2:22 ` Vinicius Jose Latorre
@ 2007-12-12 6:31 ` Yoni Rabkin Katzenell
2007-12-12 9:17 ` martin rudalics
` (2 more replies)
[not found] ` <E1J2aRp-00010Y-QD@fencepost.gnu.org>
1 sibling, 3 replies; 23+ messages in thread
From: Yoni Rabkin Katzenell @ 2007-12-12 6:31 UTC (permalink / raw)
To: emacs-devel
Vinicius Jose Latorre <viniciusjl@ig.com.br> writes:
> martin rudalics wrote:
>>>> Could whoever installed the following change:
>>>>
>>>> 2007-12-10 Yoni Rabkin Katzenell <yoni-r@actcom.com> (tiny
>>>> change)
>>>> * file.el (revert-buffer): Eliminate overlays and the mark.
>>>>
>>>> replace the comment "Reset the mark and remove all overlays" which just
>>>> paraphrases the code, with a comment that actually explains why we
>>>> want/need to do that?
>>>>
>>>
>>>
>>> This is not explained in etc/TODO file.
>>>
>>> The patch refers to this line in etc/TODO file:
>>>
>>> ** revert-buffer should eliminate overlays and the mark.
>>>
>>>
>>> Does anyone know why this is necessary?
>>
>> I'm afraid the patch installed is overly simplistic. You can find out
>> more by looking at the thread starting with
>>
>> http://lists.gnu.org/archive/html/emacs-devel/2005-11/msg01346.html
>>
>> For the moment I'd strongly propose to revert the change and study the
>> problem in more depth.
>
> Ok, I've read the thread. Indeed, the problem is not so simple.
>
> I've just undone the patch in CVS trunk.
After reading that thread (which I neglected to do beforehand, sorry) I
still think that revert-buffer should remove all overlays and the mark.
My reasoning is based on the way revert-buffer is implemented, which is
to work for a simple default scenario, and to hand off any more complex
reverting to other modes via `revert-buffer-function', which replaces
revert-buffer's actions entirely if defined. For this reason, I don't
see any one fix which would solve the problem for all modes.
In any case, could you please install the docstring portion of the
patch? It is a better description of what `revert-buffer-function'
does. If needed, I can send in a patch which does only that.
--
"Cut your own wood and it will warm you twice"
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-12 6:31 ` Yoni Rabkin Katzenell
@ 2007-12-12 9:17 ` martin rudalics
2007-12-12 14:22 ` Yoni Rabkin Katzenell
2007-12-12 12:28 ` Vinicius Jose Latorre
2007-12-12 15:20 ` Stefan Monnier
2 siblings, 1 reply; 23+ messages in thread
From: martin rudalics @ 2007-12-12 9:17 UTC (permalink / raw)
To: Yoni Rabkin Katzenell; +Cc: emacs-devel
> After reading that thread (which I neglected to do beforehand, sorry)
Not your fault. The TODO item should have included a link to that
thread.
> I still think that revert-buffer should remove all overlays and the mark.
I think your patch is correct but am not sure about a number of related
issues. For example, is auto-reverting affected by your change and how?
Is `remove-overlays' the right function to remove all overlays in a
buffer or should we provide a simpler function that doesn't check
overlay boundaries? Is `overlay-recenter' needed in this context?
Shall we remove overlays stored in `permanent-local' variables? Finally
we should look into the `kill-all-local-variables' issue raised by Kim.
> My reasoning is based on the way revert-buffer is implemented, which is
> to work for a simple default scenario, and to hand off any more complex
> reverting to other modes via `revert-buffer-function', which replaces
> revert-buffer's actions entirely if defined. For this reason, I don't
> see any one fix which would solve the problem for all modes.
In the particular case the problem was specific to a minor mode. It
seems hardly feasible to make `revert-buffer-function' specific to minor
modes.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-12 9:17 ` martin rudalics
@ 2007-12-12 14:22 ` Yoni Rabkin Katzenell
0 siblings, 0 replies; 23+ messages in thread
From: Yoni Rabkin Katzenell @ 2007-12-12 14:22 UTC (permalink / raw)
To: emacs-devel
martin rudalics <rudalics@gmx.at> writes:
>> After reading that thread (which I neglected to do beforehand, sorry)
>
> Not your fault. The TODO item should have included a link to that
> thread.
>
>> I still think that revert-buffer should remove all overlays and the mark.
>
> I think your patch is correct but am not sure about a number of related
> issues. For example, is auto-reverting affected by your change and
> how?
Good point, nothing comes to mind but I'd have to check that carefully
to answer.
> Is `remove-overlays' the right function to remove all overlays in a
> buffer or should we provide a simpler function that doesn't check
> overlay boundaries?
> Is `overlay-recenter' needed in this context?
Doing something like:
(save-excursion
(overlay-recenter (point-max))
(dolist (o (overlays-in (point-min) (point-max)))
(delete-overlay o)))
... might be enough to efficiently and unconditionally nuke all the
overlays in a buffer. I have no idea if the difference between that and
the `remove-overlays' code actually matters.
As for the rest of the questions, they are so far removed from my simple
patch that I should definitely not attempt to answer unless I intend to
do some homework beforehand. They require a breadth of Emacs knowledge I
don't have at the moment.
Maybe I'll prepare a better patch after looking all that stuff up (if
nobody beats me to it).
--
"Cut your own wood and it will warm you twice"
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-12 6:31 ` Yoni Rabkin Katzenell
2007-12-12 9:17 ` martin rudalics
@ 2007-12-12 12:28 ` Vinicius Jose Latorre
2007-12-12 15:20 ` Stefan Monnier
2 siblings, 0 replies; 23+ messages in thread
From: Vinicius Jose Latorre @ 2007-12-12 12:28 UTC (permalink / raw)
To: Yoni Rabkin Katzenell; +Cc: emacs-devel
Yoni Rabkin Katzenell wrote:
> In any case, could you please install the docstring portion of the
> patch? It is a better description of what `revert-buffer-function'
> does. If needed, I can send in a patch which does only that.
Ok, I've just installed the docstring fix in CVS trunk.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-12 6:31 ` Yoni Rabkin Katzenell
2007-12-12 9:17 ` martin rudalics
2007-12-12 12:28 ` Vinicius Jose Latorre
@ 2007-12-12 15:20 ` Stefan Monnier
2007-12-12 15:41 ` Yoni Rabkin Katzenell
2007-12-13 16:51 ` Richard Stallman
2 siblings, 2 replies; 23+ messages in thread
From: Stefan Monnier @ 2007-12-12 15:20 UTC (permalink / raw)
To: Yoni Rabkin Katzenell; +Cc: emacs-devel
> After reading that thread (which I neglected to do beforehand, sorry) I
> still think that revert-buffer should remove all overlays and the mark.
I disagree. Anything that's not a minor mode will suffer from similar
problems and setting revert-buffer-function is not an option for them.
Your change will cause problems for the other category of minor-mode
like packages: those that need their overlays to survive a revert-buffer.
Blindly removing all overlays is drastic, and even more so if the only
way to prevent it is to set revert-buffer-function.
If a package needs to delete its hooks upon revert (e.g. cua-mode), then
it can use `before-revert-hook' and `after-revert-function'.
Stefan
PS: For what it's worth, I believe that those two hooks should be
applied regardless of revert-buffer-function.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-12 15:20 ` Stefan Monnier
@ 2007-12-12 15:41 ` Yoni Rabkin Katzenell
2007-12-13 16:51 ` Richard Stallman
1 sibling, 0 replies; 23+ messages in thread
From: Yoni Rabkin Katzenell @ 2007-12-12 15:41 UTC (permalink / raw)
To: emacs-devel
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>> After reading that thread (which I neglected to do beforehand, sorry) I
>> still think that revert-buffer should remove all overlays and the mark.
>
> I disagree. Anything that's not a minor mode will suffer from similar
> problems and setting revert-buffer-function is not an option for them.
> Your change will cause problems for the other category of minor-mode
> like packages: those that need their overlays to survive a revert-buffer.
Maybe what confuses me is that it is called `revert-buffer' and not
something like `revert-to-file-contents'. I'd expect the former to
revert the buffer to a pristine state, but the latter to only change the
contents as they relate to the associated file.
I'll recapitulate what I wrote in a separate response: I'll wait until
it is clear what you guys want to do with `revert-buffer' (if anything),
then I'll see if I can help implement that. Currently I'm both unclear
as to the purpose of the function, and obviously ignorant of the
subtleties.
--
"Cut your own wood and it will warm you twice"
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-12 15:20 ` Stefan Monnier
2007-12-12 15:41 ` Yoni Rabkin Katzenell
@ 2007-12-13 16:51 ` Richard Stallman
2007-12-13 17:00 ` Stefan Monnier
1 sibling, 1 reply; 23+ messages in thread
From: Richard Stallman @ 2007-12-13 16:51 UTC (permalink / raw)
To: Stefan Monnier; +Cc: yoni-r, emacs-devel
Your change will cause problems for the other category of minor-mode
like packages: those that need their overlays to survive a revert-buffer.
I don't think that's true. Any package that depends on overlays to
correctly survive reverting won't work anyway. Reverting the buffer
will move the overlay bounds out, at least to cover all the changed
text in the file. That would break them.
That is why I think they should be removed.
Blindly removing all overlays is drastic,
It is better than letting them become garbage
and get in the way.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-13 16:51 ` Richard Stallman
@ 2007-12-13 17:00 ` Stefan Monnier
2007-12-13 19:01 ` martin rudalics
2007-12-14 20:49 ` Richard Stallman
0 siblings, 2 replies; 23+ messages in thread
From: Stefan Monnier @ 2007-12-13 17:00 UTC (permalink / raw)
To: rms; +Cc: yoni-r, emacs-devel
> Your change will cause problems for the other category of minor-mode
> like packages: those that need their overlays to survive a revert-buffer.
> I don't think that's true. Any package that depends on overlays to
> correctly survive reverting won't work anyway. Reverting the buffer
> will move the overlay bounds out, at least to cover all the changed
> text in the file. That would break them.
Maybe it would. Or maybe the package knows how to deal with that (it
wants the overlay to cover the whole buffer, for instance, and sets the
marker's advance-after property appropriately) or it just needs to keep
the overlay-buffer info to know in which buffer is the overlay.
Stefan
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-13 17:00 ` Stefan Monnier
@ 2007-12-13 19:01 ` martin rudalics
2007-12-13 19:35 ` David Kastrup
2007-12-14 20:49 ` Richard Stallman
1 sibling, 1 reply; 23+ messages in thread
From: martin rudalics @ 2007-12-13 19:01 UTC (permalink / raw)
To: Stefan Monnier; +Cc: yoni-r, rms, emacs-devel
>>I don't think that's true. Any package that depends on overlays to
>>correctly survive reverting won't work anyway. Reverting the buffer
>>will move the overlay bounds out, at least to cover all the changed
>>text in the file. That would break them.
>
>
> Maybe it would. Or maybe the package knows how to deal with that (it
> wants the overlay to cover the whole buffer, for instance, and sets the
> marker's advance-after property appropriately) or it just needs to keep
> the overlay-buffer info to know in which buffer is the overlay.
We could introduce another overlay property, `keep-when-revert-buffer'
if removing overlays shall be the default, `remove-when-revert-buffer'
otherwise.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-13 19:01 ` martin rudalics
@ 2007-12-13 19:35 ` David Kastrup
2007-12-14 20:49 ` Richard Stallman
0 siblings, 1 reply; 23+ messages in thread
From: David Kastrup @ 2007-12-13 19:35 UTC (permalink / raw)
To: martin rudalics; +Cc: yoni-r, emacs-devel, Stefan Monnier, rms
martin rudalics <rudalics@gmx.at> writes:
>>>I don't think that's true. Any package that depends on overlays to
>>>correctly survive reverting won't work anyway. Reverting the buffer
>>>will move the overlay bounds out, at least to cover all the changed
>>>text in the file. That would break them.
>>
>>
>> Maybe it would. Or maybe the package knows how to deal with that (it
>> wants the overlay to cover the whole buffer, for instance, and sets the
>> marker's advance-after property appropriately) or it just needs to keep
>> the overlay-buffer info to know in which buffer is the overlay.
>
> We could introduce another overlay property, `keep-when-revert-buffer'
> if removing overlays shall be the default, `remove-when-revert-buffer'
> otherwise.
Well, it may need to be reseated. So maybe it might be smarter to have
something like a property 'revert-buffer-functions (defaults to
delete-overlay but could be set to nil instead or to other values). I
am fuzzy about when to call it and with which arguments.
--
David Kastrup, Kriemhildstr. 15, 44793 Bochum
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-13 19:35 ` David Kastrup
@ 2007-12-14 20:49 ` Richard Stallman
0 siblings, 0 replies; 23+ messages in thread
From: Richard Stallman @ 2007-12-14 20:49 UTC (permalink / raw)
To: David Kastrup; +Cc: rudalics, emacs-devel, monnier, yoni-r
Well, it may need to be reseated. So maybe it might be smarter to have
something like a property 'revert-buffer-functions (defaults to
delete-overlay but could be set to nil instead or to other values).
That is starting to sound possibly useful. However, I still think
that the code to delete the overlays should be reinstalled, either
with or without this added facility.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-13 17:00 ` Stefan Monnier
2007-12-13 19:01 ` martin rudalics
@ 2007-12-14 20:49 ` Richard Stallman
2007-12-16 3:43 ` Stephen J. Turnbull
1 sibling, 1 reply; 23+ messages in thread
From: Richard Stallman @ 2007-12-14 20:49 UTC (permalink / raw)
To: Stefan Monnier; +Cc: yoni-r, emacs-devel
Maybe it would. Or maybe the package knows how to deal with that (it
wants the overlay to cover the whole buffer, for instance, and sets the
marker's advance-after property appropriately) or it just needs to keep
the overlay-buffer info to know in which buffer is the overlay.
Those are pretty silly ways to use an overlay. I won't say it is inconceivable
that any package does this, but I think it is not sufficient reason
to forego fixing this problem.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-14 20:49 ` Richard Stallman
@ 2007-12-16 3:43 ` Stephen J. Turnbull
2007-12-17 8:24 ` Richard Stallman
0 siblings, 1 reply; 23+ messages in thread
From: Stephen J. Turnbull @ 2007-12-16 3:43 UTC (permalink / raw)
To: rms; +Cc: yoni-r, Stefan Monnier, emacs-devel
Richard Stallman writes:
> Or maybe the package [...] wants the overlay to cover the
> whole buffer, for instance,
>
> [That is a] pretty silly [way] to use an overlay. I won't say it
> is inconceivable that any package does this, but I think it is not
> sufficient reason to forego fixing this problem.
Well, one (and possibly more) whole-buffer overlay(s) is a consequence
of an obvious strategy to implement a top-down parser. Ie, wrap each
non-terminal parsed with an overlay to carry annotations as you return
from recursive levels. At least, it was obvious to me when I did it.
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: Uninformative comment in files.el
2007-12-16 3:43 ` Stephen J. Turnbull
@ 2007-12-17 8:24 ` Richard Stallman
0 siblings, 0 replies; 23+ messages in thread
From: Richard Stallman @ 2007-12-17 8:24 UTC (permalink / raw)
To: Stephen J. Turnbull; +Cc: yoni-r, monnier, emacs-devel
Well, one (and possibly more) whole-buffer overlay(s) is a consequence
of an obvious strategy to implement a top-down parser. Ie, wrap each
non-terminal parsed with an overlay to carry annotations as you return
from recursive levels. At least, it was obvious to me when I did it.
Maybe you're right, but even though one of the many overlays in this
would cover the whole buffer, it would also make other overlays,
smaller than the whole buffer, which would get messed up by reverting.
^ permalink raw reply [flat|nested] 23+ messages in thread
[parent not found: <E1J2aRp-00010Y-QD@fencepost.gnu.org>]
* Re: Uninformative comment in files.el
2007-12-11 20:55 ` Vinicius Jose Latorre
2007-12-11 22:05 ` martin rudalics
@ 2007-12-12 22:52 ` Richard Stallman
1 sibling, 0 replies; 23+ messages in thread
From: Richard Stallman @ 2007-12-12 22:52 UTC (permalink / raw)
To: Vinicius Jose Latorre; +Cc: monnier, emacs-devel
I think that any markers and overlays that were in the buffer before
you reverted will point at the wrong place after the revert. It is
better to eliminate them. If some Lisp program wanted them, it will
have to regenerate them anyway if they are to be right.
I did once add code to preserve markers in the unchanged text at the
beginning and end of the file. But I think this stopped working with
Mule.
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2007-12-23 0:57 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-12-11 18:46 Uninformative comment in files.el Stefan Monnier
2007-12-11 20:55 ` Vinicius Jose Latorre
2007-12-11 22:05 ` martin rudalics
2007-12-12 2:22 ` Vinicius Jose Latorre
2007-12-12 6:31 ` Yoni Rabkin Katzenell
2007-12-12 9:17 ` martin rudalics
2007-12-12 14:22 ` Yoni Rabkin Katzenell
2007-12-12 12:28 ` Vinicius Jose Latorre
2007-12-12 15:20 ` Stefan Monnier
2007-12-12 15:41 ` Yoni Rabkin Katzenell
2007-12-13 16:51 ` Richard Stallman
2007-12-13 17:00 ` Stefan Monnier
2007-12-13 19:01 ` martin rudalics
2007-12-13 19:35 ` David Kastrup
2007-12-14 20:49 ` Richard Stallman
2007-12-14 20:49 ` Richard Stallman
2007-12-16 3:43 ` Stephen J. Turnbull
2007-12-17 8:24 ` Richard Stallman
[not found] ` <E1J2aRp-00010Y-QD@fencepost.gnu.org>
[not found] ` <476084A9.4010800@ig.com.br>
2007-12-14 10:10 ` Richard Stallman
2007-12-20 23:54 ` Stefan Monnier
2007-12-21 19:49 ` Richard Stallman
2007-12-23 0:57 ` Stefan Monnier
2007-12-12 22:52 ` Richard Stallman
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).