* package_meta.cc (package_meta::~package_meta): Remove duplicate.
(CategoryPackage::~CategoryPackage): Ditto. (Thanks to Ton van
Overbeek for the report).
* mklink2.cc: Moved from mklink2.c to avoid 'not a prototype error'.
Make g++ compatible.
* mklink2.c: Remove.
* site.cc (site_list_type::init): Delete the correct memory addres.
Thanks to Pavel Tsekov for tracking this down.
+2003-03-26 Robert Collins <rbtcollins@hotmail.com>
+
+ * package_meta.cc (package_meta::~package_meta): Remove duplicate.
+ (CategoryPackage::~CategoryPackage): Ditto. (Thanks to Ton van
+ Overbeek for the report).
+ * mklink2.cc: Moved from mklink2.c to avoid 'not a prototype error'.
+ Make g++ compatible.
+ * mklink2.c: Remove.
+ * site.cc (site_list_type::init): Delete the correct memory addres.
+ Thanks to Pavel Tsekov for tracking this down.
+
2002-03-20 Robert Collins <rbtcollins@hotmail.com>
* win32.h: Only define alloca if it's not already.
+#define CINTERFACE
#include <stdlib.h>
#include "win32.h"
#include "shlobj.h"
/* This part of the code must be in C because the C++ interface to COM
doesn't work. */
+extern "C"
void
make_link_2 (char const *exepath, char const *args, char const *icon, char const *lname)
{
IPersistFile *pf;
WCHAR widepath[_MAX_PATH];
- CoCreateInstance (&CLSID_ShellLink, NULL,
- CLSCTX_INPROC_SERVER, &IID_IShellLink, (LPVOID *) & sl);
- sl->lpVtbl->QueryInterface (sl, &IID_IPersistFile, (void **) &pf);
+ CoCreateInstance (CLSID_ShellLink, NULL,
+ CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID *) & sl);
+ sl->lpVtbl->QueryInterface (sl, IID_IPersistFile, (void **) &pf);
sl->lpVtbl->SetPath (sl, exepath);
sl->lpVtbl->SetArguments (sl, args);
/* Predicate: file is not currently in existence.
* A file race can occur otherwise.
*/
+extern "C"
int
mkcygsymlink (const char *from, const char *to)
{
/*****************/
-/*****************/
-
-CategoryPackage::~CategoryPackage()
-{
- CategoryPackage **temp = &key.packages;
- while (*temp != this)
- temp = &((*temp)->next);
- *temp = next;
-}
-
-/*****************/
-
const
packagemeta::_actions
packagemeta::Default_action (0);
}
}
-packagemeta::~packagemeta()
-{
- while (Categories.number ())
- {
- CategoryPackage *catpkg = Categories.removebyindex (1);
- delete catpkg;
- }
- while (versions.number ())
- {
- packageversion *pv = versions.removebyindex(1);
- delete pv;
- }
-}
-
void
packagemeta::add_version (packageversion & thepkg)
{
dot = dots + strlen (dots);
- char *dp = new char[2 * newurl.size() + 3];
+ char *dpsave, *dp = new char[2 * newurl.size() + 3];
+ dpsave = dp;
while (dot != dots)
{
if (*dot == '.' || *dot == '/')
strcpy (dp, dots);
delete[] dots;
key = String (dp);
- delete[] dp;
+ delete[] dpsave;
}
site_list_type::site_list_type (String const &newurl)