Re: [PATCH] Porting filmgimp-0.1-1.0.4 to GNU/Hurd
Le dim 25/08/2002 à 11:43, Marcus Brinkmann a écrit :
> In the way the code seems to be written, you MUST make this static and
> do an "if (!filename) {...} return filename;" where ... contains most of the
> code.
> You are leaking memory at each invocation here. Alternatively, all callers
> of gimp_gtkrc() can free() the returned pointer.
First choice taken: smaller patch, and cleaner behavior.
Snark
PS: Here is the new patch:
diff -ur filmgimp-0.1-1.0.4-orig/libgimp/gimp.c
filmgimp-0.1-1.0.4-hurd/libgimp/gimp.c
--- filmgimp-0.1-1.0.4-orig/libgimp/gimp.c Wed Sep 6 08:22:34 2000
+++ filmgimp-0.1-1.0.4-hurd/libgimp/gimp.c Sun Aug 25 12:26:12 2002
@@ -802,14 +802,21 @@
gchar*
gimp_gtkrc ()
{
- static char filename[MAXPATHLEN];
+ static char *filename=NULL;
char *home_dir;
- home_dir = getenv ("HOME");
- if (!home_dir)
- return NULL;
+ if(!filename)
+ {
+ home_dir = getenv ("HOME");
+ if (!home_dir)
+ return NULL;
- sprintf (filename, "%s/%s/gtkrc", home_dir, GIMPDIR);
+ filename = malloc(strlen(home_dir) + strlen(GIMPDIR) +8);
+ if(!filename)
+ return NULL;
+
+ sprintf (filename, "%s/%s/gtkrc", home_dir, GIMPDIR);
+ }
return filename;
}
Reply to: