pare latek

Wojtek Bojdol wojboj w lp.net.pl
Czw, 13 Maj 1999, 10:04:39 CEST


jako ze zaczalem dopiero swoj zywot w pld, to rozpoczalem od ogladania
srcow rpmmena
i tlumacze juz kolejno moje zmiany:
nie podobaja mi sie tablice allokowane o rozmiarze 1000...
zmienilem to na allokacje malloc'em zaleznie od dlugosci tego, co tam
bedzie wstawiane

nie wiem tez czemu ktos chce zwalniac pamiec, ktora tuz potem bedzie
zwalniana przez return...(char tmp[1000];(..);free(tmp);return;)

nie jest dla mnie jasne jak mialo byc, ale:
rpmmen.c -> rpmmen_install()
TPkginfo **order;
a na koncu:
free(order);
chodzilo moze o:
free(*order);
bo free(order) bedzie robione tak czy tak w return

do tego przemieszane sa anglo-jezyczne komunikaty o bledach i
polsko-jezyczne..trzeba to poprawic..:)

ps. na stronkach pld nie ma zadnego txt o uzywaniu cvs...
przydalby sie jakis chocby krotki...(ja jeszcze nie umiem tego uzywac...i
musze sie zabrac do czytania man'a...:))

-------------- następna część ---------
--- rpmmenlib-0.1.7/rpmmen.c.old	Thu May 13 09:51:50 1999
+++ rpmmenlib-0.1.7/rpmmen.c	Thu May 13 10:12:28 1999
@@ -31,8 +31,8 @@
 
 static rpmdb rpmmen_db;
 static TPkgSet rpmmen_pkgs;
-char dest[1000];  
-char src[1000];
+char *dest;  
+char *src;
 
 TPkgSet * getPkgsSet()
 {
@@ -54,7 +54,6 @@
 	f=fopen(name,"r");
 	if(f==NULL){
 		logMessage(_("Can't open file %s"),name);
-		free (tmp);
 		return ;
 	}
 	while(!feof(f)){
@@ -98,7 +97,9 @@
 */
 void rpmmen_set_dest(char *d)
 {
-	strcpy(dest,d);
+	unsigned long len=strlen(d);
+	dest=malloc(len);
+	memcpy(dest,d,len);
 }	
 
 /* rpmmen_opendb - creat directory for base, and open (creat if not exist) rpm
@@ -111,7 +112,8 @@
 int rpmmen_opendb()
 {
 	int st,i;
-	char tmp[1000];
+	char *tmp;
+	tmp=malloc(strlen(dest)+4+4+4+1);
 	strcpy(tmp,dest);
 	strcat(tmp,"/var");
 	if( !rpmmen_mkdir(tmp) )
@@ -133,7 +135,7 @@
 logDebugMessage("root: %s",dest);
 	rpmSetVar(RPMVAR_DBPATH,tmp);
 	rpmSetVar(RPMVAR_ROOT,dest);
-
+free(tmp);
 /*	st=rpmdbOpen("",&rpmmen_db,O_RDWR, 0644);
 	if(!st)
 		return 0 ; */    /* OK  */
--- rpmmenlib-0.1.7/my_openf.c~	Thu Mar 25 12:42:12 1999
+++ rpmmenlib-0.1.7/my_openf.c	Thu May 13 10:08:29 1999
@@ -2,13 +2,14 @@
 #include <iofs.h>
 #include <log.h>
 
-extern char src[1000];
+extern char *src;
 int my_openf(char *name)
 {
-	char tmp[1000];
+	char *tmp;
 	if(  strcmp(name,"tocfile") ==0 ) /* mam tocfile w katalogu aktualnym */
 		return(openf(name));
-
+	
+	tmp=malloc(strlen(src)+strlen(name)+2);
 	sprintf(tmp,"%s/%s",src,name);
 	logDebugMessage("%s : scieżka to : %s",__FUNCTION__, tmp);
 	return openf(tmp);
--- rpmmenlib-0.1.7/srcget.c~	Sun Mar 14 18:06:21 1999
+++ rpmmenlib-0.1.7/srcget.c	Thu May 13 09:57:52 1999
@@ -18,11 +18,13 @@
 */
 
 static char PATH_TO_HDLIST[1000]= "./tocfile";
-extern char src[1000];
+extern char *src;
 
 void set_src(char *path)
 {
-	strcpy(src,path);
+	unsigned long len=strlen(path);
+	src=malloc(len);
+	memcpy(src,path,len);
 	
 /*	strcpy(PATH_TO_HDLIST,path);       
 	strcat(PATH_TO_HDLIST,"/tocfile");


Więcej informacji o liście dyskusyjnej pld-installer