From abd513250fb4902970dc768b9fb150532f09452e Mon Sep 17 00:00:00 2001 From: Maarten Bosma Date: Mon, 11 Apr 2005 17:59:52 +0000 Subject: [PATCH] PackageManager: Bug fix svn path=/trunk/; revision=14590 --- rosapps/packmgr/lib/download.cpp | 39 +++++++++++++++++++---------- rosapps/packmgr/lib/es.rc | 4 +++ rosapps/packmgr/lib/functions.cpp | 8 +++--- rosapps/packmgr/lib/main.cpp | 3 +-- rosapps/packmgr/lib/package.cpp | 14 ++++++----- rosapps/packmgr/tree/mozcontrol.xml | 1 - 6 files changed, 43 insertions(+), 26 deletions(-) diff --git a/rosapps/packmgr/lib/download.cpp b/rosapps/packmgr/lib/download.cpp index 6528ae5da0a..8d450f318a1 100644 --- a/rosapps/packmgr/lib/download.cpp +++ b/rosapps/packmgr/lib/download.cpp @@ -26,35 +26,48 @@ HRESULT WINAPI URLDownloadToFileA( LPBINDSTATUSCALLBACK lpfnCB ); +int FindCount (string What, string Where, int start = 0, int end = -1); + // Download a file -char* PML_Download (const char* name, const char* local_name = "packmgr.txt", const char* server = tree_server, BOOL totemp = TRUE) +char* PML_Download (const char* url, const char* server = "tree", const char* filename = NULL) { - char url [MAX_PATH]; - static char path [MAX_PATH]; + char downl [MAX_PATH]; + static char path [MAX_PATH]; // get temp dir - if(totemp) + if(!filename) + GetTempPathA (200, path); + + else if(!strstr(filename, "\\")) GetTempPathA (200, path); // create the local file name - if(local_name) - strcat(path, local_name); + if(filename) + { + strcat(path, filename); + DeleteFileA (path); + } else - strcat(path, "tmp.tmp"); + GetTempFileNameA (path, "pml", 0, path); // get the url - if(server) strcpy(url, server); - strcat(url, name); - // make sure there is no old file - DeleteFileA (path); + if (!server); + + else if(!strcmp(server, "tree")) + strcpy(downl, tree_server); + + else + strcpy(downl, server); + + strcat(downl, url); // download the file - if(URLDownloadToFileA (NULL, url, path, 0, NULL) != S_OK) + if(URLDownloadToFileA (NULL, downl, path, 0, NULL) != S_OK) { Log("! ERROR: Unable to download "); - LogAdd(url); + LogAdd(downl); return NULL; } diff --git a/rosapps/packmgr/lib/es.rc b/rosapps/packmgr/lib/es.rc index fa579f73279..cdb0e0cccc8 100644 --- a/rosapps/packmgr/lib/es.rc +++ b/rosapps/packmgr/lib/es.rc @@ -14,6 +14,10 @@ BEGIN ERR_SYNATX "Error durante la ejecución del Script.\nSintaxis errónea." ERR_CALL "Error durante la ejecución del Script.\nNo se pudo encontrar la función." ERR_PARAMETER "Error durante la ejecución del Script.\nParametro(s) erróneo." + + ERR_DEP1 "To install this package you have to install the following package(s) as well:\n\n" + ERR_DEP2 "\nDo you want this ?" + ERR_READY "You choosen to install %d package(s). To install them you have to read and agree with each of thier licences.\n\n Do you want still want to ?" END /* EOF */ diff --git a/rosapps/packmgr/lib/functions.cpp b/rosapps/packmgr/lib/functions.cpp index d7524d6ae31..ff6f1377fb4 100644 --- a/rosapps/packmgr/lib/functions.cpp +++ b/rosapps/packmgr/lib/functions.cpp @@ -1,6 +1,6 @@ //////////////////////////////////////////////////////// // -// script.cpp +// functions.cpp // // Script Functions // @@ -15,7 +15,7 @@ #include "log.h" extern const char* tree_server; -char* PML_Download (const char* name, const char* local_name, const char* server, BOOL totemp = TRUE); +char* PML_Download (const char* url, const char* server, const char* filename); int debuglog (int argc, char* argv[]) @@ -31,10 +31,10 @@ int download (int argc, char* argv[]) char* result; if (argc==3) - result = PML_Download(argv[1], argv[2], argv[3]); + result = PML_Download(argv[1], argv[3], argv[2]); else if (argc==2) - result = PML_Download(argv[1], argv[2], NULL); + result = PML_Download(argv[1], NULL, argv[2]); else return ERR_GENERIC; diff --git a/rosapps/packmgr/lib/main.cpp b/rosapps/packmgr/lib/main.cpp index db126ca9f06..6463e05e357 100644 --- a/rosapps/packmgr/lib/main.cpp +++ b/rosapps/packmgr/lib/main.cpp @@ -19,8 +19,7 @@ HANDLE hThread = NULL; BOOL thread_abort = FALSE; -extern const char* tree_server; -char* PML_Download (const char* name, const char* local_name = "packmgr.txt", const char* server = tree_server, BOOL totemp = TRUE); +char* PML_Download (const char* url, const char* server = "tree", const char* filename = NULL); // Abort other thread diff --git a/rosapps/packmgr/lib/package.cpp b/rosapps/packmgr/lib/package.cpp index 7610d009800..883be31905f 100644 --- a/rosapps/packmgr/lib/package.cpp +++ b/rosapps/packmgr/lib/package.cpp @@ -169,7 +169,7 @@ extern "C" int PML_SetAction (TREE* tree, int id, int action, PML_SetIcon SetIco UINT count = pack->depencies.size(); WCHAR buffer[2000], buffer2[200]; wcscpy(buffer, PML_TransError(ERR_DEP1)); - + for (i=0; idepencies.size(); i++) { int item = PML_FindItem(tree, pack->depencies[i]); @@ -190,16 +190,18 @@ extern "C" int PML_SetAction (TREE* tree, int id, int action, PML_SetIcon SetIco wcscat(buffer, PML_TransError(ERR_DEP2)); if(count) + { if(!Ask(buffer)) return ERR_GENERIC; - for (i=0; idepencies.size(); i++) - { - int item = PML_FindItem(tree, pack->depencies[i]); + for (i=0; idepencies.size(); i++) + { + int item = PML_FindItem(tree, pack->depencies[i]); - tree->packages[item].neededBy.push_back(id); + tree->packages[item].neededBy.push_back(id); - PML_SetAction(tree, item, action, SetIcon, Ask); + PML_SetAction(tree, item, action, SetIcon, Ask); + } } } diff --git a/rosapps/packmgr/tree/mozcontrol.xml b/rosapps/packmgr/tree/mozcontrol.xml index db04a048584..b26a6e290f4 100644 --- a/rosapps/packmgr/tree/mozcontrol.xml +++ b/rosapps/packmgr/tree/mozcontrol.xml @@ -2,6 +2,5 @@ MozillaControl Provide the Gekko Engine for ReactOS. - abiword