diff -r 868db5c1f2d7 -r e29384105b8d setup/setup.c --- a/setup/setup.c Thu Aug 13 19:01:16 2009 +0100 +++ b/setup/setup.c Fri Mar 23 20:29:50 2012 +0000 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 J. Ali Harlow + * Copyright (C) 2009, 2011 J. Ali Harlow * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -75,21 +75,10 @@ free(vector); } -static void *alloc_lua(void *user_data,void *ptr,size_t osize,size_t nsize) -{ - if (!nsize) - { - free(ptr); - return NULL; - } - else - return realloc(ptr,nsize); -} - void setup(const char *argv0) { char *path,*s,*prefix; - int changed; + int ch,changed; struct comps *comps; struct comps_group *group; struct comps_requirement *pkg; @@ -104,6 +93,18 @@ } free(s); prefix=plover_default_prefix_for_vendor(comps->vendor); + if (!plover_installed_files_match_prefix(prefix)) + { + printf("The existing installation is not under %s\n" + "In order to continue, all the existing packages must be removed.\n" + "Do you want to remove all existing packages? ",prefix); + ch=getchar(); + if (ch!='y' && ch!='Y' && ch!=EOF && ch!='\n') + exit(1); + while(ch!='\n' && ch!=EOF) + ch=getchar(); + plover_remove(NULL); + } group=plover_comps_lookup_group(comps,"base"); if (!group) { @@ -148,4 +149,5 @@ plover_remove(NULL); else setup(argv[0]); + exit(0); }