[Patch] setup.exe changes to choose.cc for src files in choose list that shouldn't be
Brian Keener
bkeener@thesoftwaresource.com
Fri Mar 16 20:32:00 GMT 2001
Here are the changes to correct the Source files being listed in the current and version
selection in choose.cc that Christopher Faylor reported.
Also included is a change to allow the Checkbox for downloading the Source files when in
Download mode to function as it should as reported by several people. No we still don't
have the one to allow us to re-download or re-install he current package or source files
but it's on the list.
Also a change to the network file function for proper file size handling. Hope these help.
2001-03-16 Brian Keener <bkeener@thesoftwaresource.com>
* nio-file.cc (NetIO_File::NetIO_File (char *Purl) : NetIO (Purl)):
Use `get_file_size' instead of `stat'.
* choose.cc (list_click): Correct inability to select source code
for download.
(scan2): Modify to skip source tarballs when scanning disk for
installable packages.
Index: winsup/cinstall/choose.cc
===================================================================
RCS file: /cvs/src/src/winsup/cinstall/choose.cc,v
retrieving revision 2.12
diff -u -p -r2.12 choose.cc
--- choose.cc 2001/03/06 13:21:58 2.12
+++ choose.cc 2001/03/17 04:13:09
@@ -298,8 +298,7 @@ list_click (HWND hwnd, BOOL dblclk, int
if (x >= headers[SRC_COL].x - HMARGIN/2 && x <= headers[SRC_COL+1].x - HMARGIN/2)
{
- if (extra[p].chooser[extra[p].pick].src_avail &&
- package[p].info[extra[p].chooser[extra[p].pick].trust].source_exists)
+ if (extra[p].chooser[extra[p].pick].src_avail )
package[p].srcaction ^= (SRCACTION_NO^SRCACTION_YES);
}
@@ -761,11 +760,12 @@ get_package_version(int p , int trust)
static void
scan2 (char *path, unsigned int size)
{
- int i, t;
+ int i, t, c;
if (strcmp(path+strlen(path)-7,".tar.gz") == 0)
{
- char mainpkg[_MAX_PATH],pkginfo[_MAX_PATH], *ver, *verinfo;
+ char mainpkg[_MAX_PATH],pkginfo[_MAX_PATH],tarpkg[_MAX_PATH],*ver,*verinfo;
strcpy (mainpkg,path);
+ strcpy (tarpkg,path);
mainpkg[strlen(mainpkg)-7] = 0; /* strip off the tar.gz */
for (ver=mainpkg; *ver; ver++)
if ((*ver == '-' || *ver == '_') && isdigit(ver[1]))
@@ -796,31 +796,65 @@ scan2 (char *path, unsigned int size)
if (strcmp(pkginfo,mainpkg) == 0 )
{
for (t=0; t<NTRUST; t++)
- if (package[i].info[t].install &&
- strcmp (base (package[i].info[t].install), base (path)) == 0)
+ if ((package[i].info[t].install &&
+ strcmp (base (package[i].info[t].install), base (path)) == 0) ||
+ (package[i].info[t].source &&
+ strcmp (base (package[i].info[t].source), base (path)) == 0 ))
{
- package[i].info[t].install_exists=1;
+ if (strcmp (base (package[i].info[t].install), base (path)) == 0)
+ package[i].info[t].install_exists=1;
+ else package[i].info[t].source_exists=1;
break;
}
else if (t>=NTRUST-1)
if (!package[i].info[TRUST_CURR].install)
{
package[i].info[TRUST_CURR].version = 0;
- package[i].info[TRUST_CURR].install = strdup(path);
- package[i].info[TRUST_CURR].install_size = size;
- package[i].info[TRUST_CURR].install_exists=1;
- if (package[i].info[TRUST_CURR].version == 0)
- get_package_version(i,TRUST_CURR);
+ if (strcmp(path+strlen(path)-11 , "-src.tar.gz") == 0)
+ {
+ for (c=0 ; c<8 ;c ++ )
+ tarpkg[(strlen(tarpkg)-11)+c]=tarpkg[(strlen(tarpkg)-7)+c];
+ package[i].info[TRUST_CURR].install = strdup(tarpkg);
+ if (!package[i].info[TRUST_CURR].source )
+ package[i].info[TRUST_CURR].source = strdup(path);
+ package[i].info[TRUST_CURR].source_size = size;
+ package[i].info[TRUST_CURR].source_exists=1;
+ if (package[i].info[TRUST_CURR].version == 0)
+ get_package_version(i,TRUST_CURR);
+ }
+ else
+ {
+ package[i].info[TRUST_CURR].install = strdup(path);
+ package[i].info[TRUST_CURR].install_size = size;
+ package[i].info[TRUST_CURR].install_exists=1;
+ if (package[i].info[TRUST_CURR].version == 0)
+ get_package_version(i,TRUST_CURR);
+ }
break;
}
else if (!package[i].info[TRUST_PREV].install )
{
package[i].info[TRUST_PREV].version = 0;
- package[i].info[TRUST_PREV].install = strdup(path);
- package[i].info[TRUST_PREV].install_size = size;
- package[i].info[TRUST_PREV].install_exists=1;
- if (package[i].info[TRUST_PREV].version == 0)
- get_package_version(i,TRUST_PREV);
+ if (strcmp(path+strlen(path)-11 , "-src.tar.gz") == 0)
+ {
+ for (c=0 ; c<8 ;c ++ )
+ tarpkg[(strlen(tarpkg)-11)+c]=tarpkg[(strlen(tarpkg)-7)+c];
+ package[i].info[TRUST_PREV].install = strdup(tarpkg);
+ if (!package[i].info[TRUST_PREV].source )
+ package[i].info[TRUST_PREV].source = strdup(path);
+ package[i].info[TRUST_PREV].source_size = size;
+ package[i].info[TRUST_PREV].source_exists=1;
+ if (package[i].info[TRUST_PREV].version == 0)
+ get_package_version(i,TRUST_PREV);
+ }
+ else
+ {
+ package[i].info[TRUST_PREV].install = strdup(path);
+ package[i].info[TRUST_PREV].install_size = size;
+ package[i].info[TRUST_PREV].install_exists=1;
+ if (package[i].info[TRUST_PREV].version == 0)
+ get_package_version(i,TRUST_PREV);
+ }
break;
}
break;
Index: winsup/cinstall/nio-file.cc
===================================================================
RCS file: /cvs/src/src/winsup/cinstall/nio-file.cc,v
retrieving revision 2.0
diff -u -p -r2.0 nio-file.cc
--- nio-file.cc 2000/08/08 00:27:54 2.0
+++ nio-file.cc 2001/03/17 04:13:10
@@ -28,6 +28,8 @@ static char *cvsid = "\n%%% $Id: nio-fil
#include "resource.h"
#include "msg.h"
+extern DWORD get_file_size (char *);
+
NetIO_File::NetIO_File (char *Purl)
: NetIO (Purl)
{
@@ -35,8 +37,7 @@ NetIO_File::NetIO_File (char *Purl)
fd = fopen (path, "rb");
if (fd)
{
- stat (path, &s);
- file_size = s.st_size;
+ file_size = get_file_size(path);
}
else
{
More information about the Cygwin-patches
mailing list