Clean up gconv path at the proper time.
authorPeter Verthez <Peter.Verthez@advalvas.be>
Sun, 22 Sep 2002 13:19:53 +0000 (13:19 +0000)
committerPeter Verthez <Peter.Verthez@advalvas.be>
Sun, 22 Sep 2002 13:19:53 +0000 (13:19 +0000)
gedcom/encoding.c

index 36f88f3bca4a0b81ad9db73d31218a3cbe6b81b9..f70dc4eb7ae47aeaba7e7555fade8b0825ea6c9d 100644 (file)
@@ -112,10 +112,14 @@ static char *new_gconv_path;
 void cleanup_encodings()
 {
   hash_free(encodings);
+}
+
+void cleanup_gconv_path()
+{
   /* Clean up environment */
   putenv(GCONV_SEARCH_PATH);
   if (new_gconv_path)
-    free(new_gconv_path);
+    free(new_gconv_path);  
 }
 
 /* Let function be called before main() */
@@ -171,6 +175,9 @@ void update_gconv_search_path()
       abort();
     }
   }
+  if (init_called && atexit(cleanup_gconv_path) != 0) {
+    gedcom_warning(_("Could not register path cleanup function"));
+  }    
 }
 
 void init_encodings()