Mail Archives: cygwin-developers/2000/04/17/16:33:04
What's this a bug report *AND* a patch?
cgf faints.
On Mon, Apr 17, 2000 at 06:42:56PM +0400, Vadim Egorov wrote:
>Hi,
>
>Below is a patch which solves some of problems I met while trying
>to install the new net release.
>
>Problems were caused by Novel Border Manager which was used as ftp proxy.
>I found that it generates quite hmm... uncommon ftp listing and the setup
>program was a bit confused with it.
>The ftp listing contains <BASE> element defining base url and <A> elements
>with relative path names in their href attributes. In addition each line
>in the listing begins with '\0'.
>
>Finally, after I got through it my drive got cluttered with all these miserable
>ftp listings, so I added a couple of unlink calls.
>
>Then all went smooth until I found that the small white-blue icon I used to see
>since B20 times got lost and cygwin console window is now uglified with MSDOS
>icon. What one can expect to see though such a window? I believe that it may
>result in numerous hard to find bugs, performance degradation and overall
>unstability.
>
>One more thing - uninstall script hasn't deleted
>/usr/lib/gcc-lib/i686-pc-cygwin/2.95.2libstdc++.a which is a symlik to
>../../../libstdc++.a.2.10.0
>
>--
>Regards,
>Vadim Egorov
>
>Index: setup.c
>===================================================================
>RCS file: /cvs/src/src/winsup/cinstall/setup.c,v
>retrieving revision 1.19
>diff -c -r1.19 setup.c
>*** setup.c 2000/04/17 04:01:31 1.19
>--- setup.c 2000/04/17 12:10:44
>***************
>*** 21,27 ****
>
> #define CYGNUS_KEY "Software\\Cygnus Solutions"
> #define DEF_ROOT "C:\\cygwin"
>! #define DOWNLOAD_SUBDIR "latest"
> #define SCREEN_LINES 25
> #define COMMAND9X "command.com /E:4096 /c "
>
>--- 21,27 ----
>
> #define CYGNUS_KEY "Software\\Cygnus Solutions"
> #define DEF_ROOT "C:\\cygwin"
>! #define DOWNLOAD_SUBDIR "latest/"
> #define SCREEN_LINES 25
> #define COMMAND9X "command.com /E:4096 /c "
>
>***************
>*** 580,589 ****
> char *
> findhref (char *buffer)
> {
>! char *ref = strstr (buffer, "href=");
>
> if (!ref)
>! ref = strstr (buffer, "HREF=");
>
> if (ref)
> {
>--- 580,598 ----
> char *
> findhref (char *buffer)
> {
>! char *ref;
>! char *anchor = strstr (buffer, "<A");
>
>+ if (!anchor)
>+ anchor = strstr (buffer, "<a");
>+
>+ if (!anchor)
>+ return 0;
>+
>+ ref = strstr (anchor, "href=");
>+
> if (!ref)
>! ref = strstr (anchor, "HREF=");
>
> if (ref)
> {
>***************
>*** 609,615 ****
>
> while (fgets (buffer, sizeof (buffer), in))
> {
>! char *ref = findhref (buffer);
>
> if (ref)
> {
>--- 618,624 ----
>
> while (fgets (buffer, sizeof (buffer), in))
> {
>! char *ref = findhref (buffer[0] ? buffer : buffer + 1);
>
> if (ref)
> {
>***************
>*** 708,714 ****
>--- 717,726 ----
> char *file = tmpfilename ();
>
> if (geturl (session, url, file, 1))
>+ {
> retval = processdirlisting (session, url, file);
>+ unlink (file);
>+ }
> xfree (file);
>
> return retval;
>***************
>*** 735,741 ****
> char *file = tmpfilename ();
>
> if (geturl (session, url, file, 1))
>! retval = processdirlisting (session, url, file);
>
> xfree (file);
>
>--- 747,756 ----
> char *file = tmpfilename ();
>
> if (geturl (session, url, file, 1))
>! {
>! retval = processdirlisting (session, url, file);
>! unlink (file);
>! }
>
> xfree (file);
>
>
- Raw text -