* RE: Possible error in cygpath
@ 2002-05-15 4:39 Schaible, Jorg
2002-05-15 5:38 ` Corinna Vinschen
2002-05-15 14:21 ` Sam Edge
0 siblings, 2 replies; 13+ messages in thread
From: Schaible, Jorg @ 2002-05-15 4:39 UTC (permalink / raw)
To: cygwin
Hi Mark,
>The spot where it says:
> DWORD len = GetShortPathName (filename, NULL, 0);
> if (len == ERROR_INVALID_PARAMETER)
Ups.
:)
>By the way I noticed this while I was trying to add a -l
>option to cygpath
>which is similar to the -s option but it will convert a
>muddled 8.3 name
>like PROGRA~1 to "Program Files" and I want to know if anyone
>else might
>have been working on that.
The reason why I just implemented -s (in 1999) was that GetLongPathName is
not available for Win95. If we have to be Win95-compatible still, you will
have to load the function yourself directly form the DLL and use
FindFirstFile (as mensioned in the MSDN docs for *GetShortPathName*) for
every part of the path if the function is not available.
Regards,
Jorg
----
Corinna,
you've seen my own patch for cygpath.cc in cygwin-apps ? Chris already
answered positivly and RH should have the assignment from late 1999 still.
My diff was against the sources from 14.5...
Regards,
Jorg
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Possible error in cygpath
2002-05-15 4:39 Possible error in cygpath Schaible, Jorg
@ 2002-05-15 5:38 ` Corinna Vinschen
2002-05-15 11:10 ` Joerg R. Schaible
2002-05-15 14:21 ` Sam Edge
1 sibling, 1 reply; 13+ messages in thread
From: Corinna Vinschen @ 2002-05-15 5:38 UTC (permalink / raw)
To: cygwin
On Wed, May 15, 2002 at 11:44:51AM +0200, Schaible, Jorg wrote:
> The reason why I just implemented -s (in 1999) was that GetLongPathName is
> not available for Win95. If we have to be Win95-compatible still, you will
> have to load the function yourself directly form the DLL and use
> FindFirstFile (as mensioned in the MSDN docs for *GetShortPathName*) for
> every part of the path if the function is not available.
Are you interested in implementing that functionality anyway? Just
FYI, it's available since W2K only. Even on NT4 you'd have to
go the hard way...
> you've seen my own patch for cygpath.cc in cygwin-apps ? Chris already
> answered positivly and RH should have the assignment from late 1999 still.
> My diff was against the sources from 14.5...
I saw it but it doesn't contain a patch for the above problem.
It's applied, btw.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Developer mailto:cygwin@cygwin.com
Red Hat, Inc.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Possible error in cygpath
2002-05-15 5:38 ` Corinna Vinschen
@ 2002-05-15 11:10 ` Joerg R. Schaible
2002-05-16 17:12 ` Mark Blackburn
0 siblings, 1 reply; 13+ messages in thread
From: Joerg R. Schaible @ 2002-05-15 11:10 UTC (permalink / raw)
To: cygwin
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1636 bytes --]
Hi Corinna,
"Corinna Vinschen" <corinna-cygwin@cygwin.com> schrieb im Newsbeitrag
news:20020515133932.L2671@cygbert.vinschen.de...
> On Wed, May 15, 2002 at 11:44:51AM +0200, Schaible, Jorg wrote:
> > The reason why I just implemented -s (in 1999) was that GetLongPathName
is
> > not available for Win95. If we have to be Win95-compatible still, you
will
> > have to load the function yourself directly form the DLL and use
> > FindFirstFile (as mensioned in the MSDN docs for *GetShortPathName*) for
> > every part of the path if the function is not available.
>
> Are you interested in implementing that functionality anyway?
No, not me! I just want to remember Mark, that it is not done just by
calling GetLongPathName. Mark, do you still want to implement this ?
> Just
> FYI, it's available since W2K only. Even on NT4 you'd have to
> go the hard way...
Right, I remember. Since I developed the GetShortPathName option for cygpath
on NT4, I did not implement a counter part ... ;-)
> > you've seen my own patch for cygpath.cc in cygwin-apps ? Chris already
> > answered positivly and RH should have the assignment from late 1999
still.
> > My diff was against the sources from 14.5...
>
> I saw it but it doesn't contain a patch for the above problem.
> It's applied, btw.
OK. Fine. I was not sure if I have to send the patch again against the new
sources with the applied patch of Mark.
Regards,
Jörg
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Possible error in cygpath
2002-05-15 4:39 Possible error in cygpath Schaible, Jorg
2002-05-15 5:38 ` Corinna Vinschen
@ 2002-05-15 14:21 ` Sam Edge
2002-05-16 7:30 ` Corinna Vinschen
1 sibling, 1 reply; 13+ messages in thread
From: Sam Edge @ 2002-05-15 14:21 UTC (permalink / raw)
To: cygwin
Jorg Schaible wrote in
<1264BCF4F426D611B0B00050DA782A50014C21E8@mail.gft.com>
in gmane.os.cygwin on Wed, 15 May 2002 11:44:51 +0200:
> If we have to be Win95-compatible still
Please don't consider dropping 95 and NT4 support just yet! There are
still plenty of us running these OSes for all sorts of reasons.
--
Sam Edge
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Possible error in cygpath
2002-05-15 14:21 ` Sam Edge
@ 2002-05-16 7:30 ` Corinna Vinschen
0 siblings, 0 replies; 13+ messages in thread
From: Corinna Vinschen @ 2002-05-16 7:30 UTC (permalink / raw)
To: cygwin
On Wed, May 15, 2002 at 09:34:42PM +0100, Sam Edge wrote:
> Jorg Schaible wrote in
> <1264BCF4F426D611B0B00050DA782A50014C21E8@mail.gft.com>
> in gmane.os.cygwin on Wed, 15 May 2002 11:44:51 +0200:
>
> > If we have to be Win95-compatible still
>
> Please don't consider dropping 95 and NT4 support just yet! There are
> still plenty of us running these OSes for all sorts of reasons.
No chance. We will not drop support any of them, even if
I'd like to drop 95 in favor for only 98/Me sometimes. But
as long as we find yet another workaround...
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Developer mailto:cygwin@cygwin.com
Red Hat, Inc.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Possible error in cygpath
2002-05-15 11:10 ` Joerg R. Schaible
@ 2002-05-16 17:12 ` Mark Blackburn
2002-05-17 2:55 ` Corinna Vinschen
0 siblings, 1 reply; 13+ messages in thread
From: Mark Blackburn @ 2002-05-16 17:12 UTC (permalink / raw)
To: Joerg R. Schaible; +Cc: cygwin
On Wed, 15 May 2002, Joerg R. Schaible wrote:
> Hi Corinna,
>
> "Corinna Vinschen" <corinna-cygwin@cygwin.com> schrieb im Newsbeitrag
> news:20020515133932.L2671@cygbert.vinschen.de...
> > On Wed, May 15, 2002 at 11:44:51AM +0200, Schaible, Jorg wrote:
> > > The reason why I just implemented -s (in 1999) was that GetLongPathName
> is
> > > not available for Win95. If we have to be Win95-compatible still, you
> will
> > > have to load the function yourself directly form the DLL and use
> > > FindFirstFile (as mensioned in the MSDN docs for *GetShortPathName*) for
> > > every part of the path if the function is not available.
> >
> > Are you interested in implementing that functionality anyway?
>
> No, not me! I just want to remember Mark, that it is not done just by
> calling GetLongPathName. Mark, do you still want to implement this ?
I didn't know about GetLongPathName, I used GetFullPathName and
FindFirstFile. You mentioned using FindFirstFile on every part of the
path, I hadn't thought of that, I was just trying to solve the problem of
running gunzip on an 8.3 filename ie foo.c.gz (FOOC~1.GZ) turns to FOOC~1
and you lose the "inside" .c extension. Here's my patch but it its kinda
half-assed (I don't think it restores 8.3 directories in the path, just
the file) and flaky (it sometimes truncates the filename). Oh and sorry
about the extraneous fprintf(stderr,...)'s.
--- cygpath.cc.orig 2002-05-14 13:41:46.000000000 -0400
+++ cygpath.cc 2002-05-14 13:58:46.000000000 -0400
@@ -27,7 +27,7 @@
static char *file_arg;
static char *close_arg;
static int path_flag, unix_flag, windows_flag, absolute_flag;
-static int shortname_flag, ignore_flag, allusers_flag, output_flag;
+static int longname_flag, shortname_flag, ignore_flag, allusers_flag,
output_flag;
static struct option long_options[] = {
{(char *) "help", no_argument, NULL, 'h'},
@@ -40,6 +40,7 @@
{(char *) "version", no_argument, NULL, 'v'},
{(char *) "windows", no_argument, NULL, 'w'},
{(char *) "short-name", no_argument, NULL, 's'},
+ {(char *) "long-name", no_argument, NULL, 'l'},
{(char *) "windir", no_argument, NULL, 'W'},
{(char *) "sysdir", no_argument, NULL, 'S'},
{(char *) "ignore", no_argument, NULL, 'i'},
@@ -61,6 +62,7 @@
-i|--ignore ignore missing argument\n\
-p|--path filename argument is a path\n\
-s|--short-name print Windows short form of filename\n\
+ -l|--long-name print Windows/Unix long form of filename\n\
-u|--unix print Unix form of filename\n\
-v|--version output version information and exit\n\
-w|--windows print Windows form of filename\n\
@@ -150,6 +152,57 @@
return sbuf;
}
+static char *
+get_long_name (const char *filename)
+{
+ char *sbuf;
+ HANDLE ffh;
+ WIN32_FIND_DATA w32_fd;
+ char *pfname;
+ int fname_offset;
+
+ fprintf(stderr, "get_long_name (%s)\n", filename);
+ fflush(stderr);
+
+ DWORD len = GetFullPathName(filename,0,NULL,NULL);
+
+ if (len == 0)
+ {
+ fprintf (stderr, "%s: cannot create long name of %s\n", prog_name,
+ filename);
+ exit (2);
+ }
+
+ sbuf = (char*)malloc(len);
+ if (sbuf == NULL)
+ {
+ fprintf (stderr, "%s: out of memory\n", prog_name);
+ exit (1);
+ }
+ len = GetFullPathName(filename,len,sbuf,&pfname);
+ fname_offset = pfname - sbuf;
+ if (len == 0)
+ {
+ fprintf (stderr, "%s: cannot create long name of %s\n", prog_name,
+ filename);
+ exit (2);
+ }
+ ffh = FindFirstFile(filename, &w32_fd);
+ if (ffh == INVALID_HANDLE_VALUE)
+ {
+ fprintf (stderr, "%s: cannot create long name of %s\n", prog_name,
+ filename);
+ exit (2);
+ }
+ fprintf(stderr, "w32_fd.cFileName = %s\n", w32_fd.cFileName);
+ sbuf = (char*)realloc(sbuf, len - fname_offset +
strlen(w32_fd.cFileName) + 1);
+
+ strcpy(sbuf+fname_offset, w32_fd.cFileName);
+ fprintf(stderr, "get_long_name (%s) = %s\n", filename, sbuf);
+ fprintf(stderr, "sbuf (%p)\n", sbuf);
+ return sbuf;
+}
+
static void
doit (char *filename)
{
@@ -209,6 +262,12 @@
cygwin_posix_to_win32_path_list (filename, buf);
if (shortname_flag)
buf = get_short_paths (buf);
+ else if (longname_flag)
+ {
+ fprintf(stderr, "Line: %i\n", __LINE__);
+ fflush(stderr);
+ buf = get_long_name (buf);
+ }
}
}
else
@@ -228,6 +287,12 @@
}
if (!unix_flag && shortname_flag)
buf = get_short_name (buf);
+ else if (!unix_flag && longname_flag)
+ {
+ fprintf(stderr, "Line: %i\n", __LINE__);
+ fflush(stderr);
+ buf = get_long_name (buf);
+ }
}
puts (buf);
@@ -277,12 +342,13 @@
unix_flag = 0;
windows_flag = 0;
shortname_flag = 0;
+ longname_flag = 0;
ignore_flag = 0;
options_from_file_flag = 0;
allusers_flag = 0;
output_flag = 0;
while ((c =
- getopt_long (argc, argv, (char *) "hac:f:opsSuvwWiDPA",
+ getopt_long (argc, argv, (char *) "hac:f:opsSuvwWiDPAl",
long_options, (int *) NULL)) != EOF)
{
switch (c)
@@ -320,11 +386,21 @@
break;
case 's':
+ if (longname_flag)
+ usage (stderr, 1);
if (unix_flag)
usage (stderr, 1);
shortname_flag = 1;
break;
+ case 'l':
+ if (shortname_flag)
+ usage (stderr, 1);
+ if (unix_flag)
+ usage (stderr, 1);
+ longname_flag = 1;
+ break;
+
case 'A':
allusers_flag = 1;
break;7~
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Possible error in cygpath
2002-05-16 17:12 ` Mark Blackburn
@ 2002-05-17 2:55 ` Corinna Vinschen
2002-05-20 20:42 ` Joerg R. Schaible
0 siblings, 1 reply; 13+ messages in thread
From: Corinna Vinschen @ 2002-05-17 2:55 UTC (permalink / raw)
To: cygwin
On Thu, May 16, 2002 at 05:10:31PM -0400, Mark Blackburn wrote:
> Here's my patch but it its kinda
> half-assed (I don't think it restores 8.3 directories in the path, just
> the file) and flaky (it sometimes truncates the filename). Oh and sorry
> about the extraneous fprintf(stderr,...)'s.
Two problems:
- If it doesn't fix the 8.3 directories in path it's not really
a patch.
- This is a big change so we would need a copyright assignment
from you (http://cygwin.com/contrib.html).
Thanks anyway,
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Developer mailto:cygwin@cygwin.com
Red Hat, Inc.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Possible error in cygpath
2002-05-17 2:55 ` Corinna Vinschen
@ 2002-05-20 20:42 ` Joerg R. Schaible
0 siblings, 0 replies; 13+ messages in thread
From: Joerg R. Schaible @ 2002-05-20 20:42 UTC (permalink / raw)
To: cygwin
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 696 bytes --]
Hi Corinna,
> Two problems:
>
> - If it doesn't fix the 8.3 directories in path it's not really
> a patch.
> - This is a big change so we would need a copyright assignment
> from you (http://cygwin.com/contrib.html).
since Mark seems not to implement the necessary functionality, I've done it
now on my own (had a little spare time). I'll sent a patch tomorrow to
cygwin-patches (my subscription is from the office and gmane.org does not
map that list).
Regards,
Jörg
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Possible error in cygpath
2002-05-14 12:53 ` Mark Blackburn
2002-05-14 13:12 ` Mark Blackburn
@ 2002-05-15 5:47 ` Corinna Vinschen
1 sibling, 0 replies; 13+ messages in thread
From: Corinna Vinschen @ 2002-05-15 5:47 UTC (permalink / raw)
To: cygwin
On Tue, May 14, 2002 at 03:08:12PM -0400, Mark Blackburn wrote:
> I forgot to mention that there are a total of 4 places where
> GetShortPathName is used
> Lines 92 110 131 144
> The same problem appears in all places.
Aaargh! Thanks again. I've applied the same patch in all places.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Developer mailto:cygwin@cygwin.com
Red Hat, Inc.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Possible error in cygpath
2002-05-14 12:53 ` Mark Blackburn
@ 2002-05-14 13:12 ` Mark Blackburn
2002-05-15 5:47 ` Corinna Vinschen
1 sibling, 0 replies; 13+ messages in thread
From: Mark Blackburn @ 2002-05-14 13:12 UTC (permalink / raw)
To: Corinna Vinschen; +Cc: cygwin
I forgot to mention that there are a total of 4 places where
GetShortPathName is used
Lines 92 110 131 144
The same problem appears in all places.
On Tue, 14 May 2002, Corinna Vinschen wrote:
> On Tue, May 14, 2002 at 10:44:20AM -0400, Mark Blackburn wrote:
> > In cygpath.cc there is a function that goes like this:
>
> Thanks for the heads up. I've checked in a patch.
>
> Corinna
>
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Possible error in cygpath
2002-05-14 9:39 ` Corinna Vinschen
@ 2002-05-14 12:53 ` Mark Blackburn
2002-05-14 13:12 ` Mark Blackburn
2002-05-15 5:47 ` Corinna Vinschen
0 siblings, 2 replies; 13+ messages in thread
From: Mark Blackburn @ 2002-05-14 12:53 UTC (permalink / raw)
To: Corinna Vinschen; +Cc: cygwin
I forgot to mention that there are a total of 4 places where
GetShortPathName is used
Lines 92 110 131 144
The same problem appears in all places.
On Tue, 14 May 2002, Corinna Vinschen wrote:
> On Tue, May 14, 2002 at 10:44:20AM -0400, Mark Blackburn wrote:
> > In cygpath.cc there is a function that goes like this:
>
> Thanks for the heads up. I've checked in a patch.
>
> Corinna
>
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Possible error in cygpath
2002-05-14 8:27 Mark Blackburn
@ 2002-05-14 9:39 ` Corinna Vinschen
2002-05-14 12:53 ` Mark Blackburn
0 siblings, 1 reply; 13+ messages in thread
From: Corinna Vinschen @ 2002-05-14 9:39 UTC (permalink / raw)
To: cygwin
On Tue, May 14, 2002 at 10:44:20AM -0400, Mark Blackburn wrote:
> In cygpath.cc there is a function that goes like this:
Thanks for the heads up. I've checked in a patch.
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Developer mailto:cygwin@cygwin.com
Red Hat, Inc.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Possible error in cygpath
@ 2002-05-14 8:27 Mark Blackburn
2002-05-14 9:39 ` Corinna Vinschen
0 siblings, 1 reply; 13+ messages in thread
From: Mark Blackburn @ 2002-05-14 8:27 UTC (permalink / raw)
To: cygwin
In cygpath.cc there is a function that goes like this:
static char *
get_short_name (const char *filename)
{
char *sbuf;
DWORD len = GetShortPathName (filename, NULL, 0);
if (len == ERROR_INVALID_PARAMETER)
{
fprintf (stderr, "%s: cannot create short name of %s\n", prog_name,
filename);
exit (2);
}
sbuf = (char *) malloc (++len);
if (sbuf == NULL)
{
fprintf (stderr, "%s: out of memory\n", prog_name);
exit (1);
}
if (GetShortPathName (filename, sbuf, len) == ERROR_INVALID_PARAMETER)
{
fprintf (stderr, "%s: cannot create short name of %s\n", prog_name,
filename);
exit (2);
}
fprintf(stderr, "get_short_name: sbuf=%s\n",sbuf);
return sbuf;
}
The spot where it says:
DWORD len = GetShortPathName (filename, NULL, 0);
if (len == ERROR_INVALID_PARAMETER)
is what worries me, I think it should be a little more like:
DWORD len = GetShortPathName (filename, NULL, 0);
if (len == 0 && GetLastError() == ERROR_INVALID_PARAMETER)
I don't know how this problem might manifest itself though I suspect that
if GetShortPathName returns a length of 87 then bad things might happen
( 87 The parameter is incorrect. ERROR_INVALID_PARAMETER).
By the way I noticed this while I was trying to add a -l option to cygpath
which is similar to the -s option but it will convert a muddled 8.3 name
like PROGRA~1 to "Program Files" and I want to know if anyone else might
have been working on that.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2002-05-20 19:42 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-05-15 4:39 Possible error in cygpath Schaible, Jorg
2002-05-15 5:38 ` Corinna Vinschen
2002-05-15 11:10 ` Joerg R. Schaible
2002-05-16 17:12 ` Mark Blackburn
2002-05-17 2:55 ` Corinna Vinschen
2002-05-20 20:42 ` Joerg R. Schaible
2002-05-15 14:21 ` Sam Edge
2002-05-16 7:30 ` Corinna Vinschen
-- strict thread matches above, loose matches on Subject: below --
2002-05-14 8:27 Mark Blackburn
2002-05-14 9:39 ` Corinna Vinschen
2002-05-14 12:53 ` Mark Blackburn
2002-05-14 13:12 ` Mark Blackburn
2002-05-15 5:47 ` Corinna Vinschen
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).