mcabber/src/hooks.c
changeset 1167 9726c78a91f3
parent 1129 1a109ebf3f24
child 1188 ef40688d87bd
equal deleted inserted replaced
1166:c4da23bf8958 1167:9726c78a91f3
   303   if (extcmd) {
   303   if (extcmd) {
   304     g_free(extcmd);
   304     g_free(extcmd);
   305     extcmd = NULL;
   305     extcmd = NULL;
   306   }
   306   }
   307   if (command)
   307   if (command)
   308     extcmd = g_strdup(command);
   308     extcmd = expand_filename(command);
   309 }
   309 }
   310 
   310 
   311 //  hk_ext_cmd()
   311 //  hk_ext_cmd()
   312 // Launch an external command (process) for the given event.
   312 // Launch an external command (process) for the given event.
   313 // For now, data should be NULL.
   313 // For now, data should be NULL.
   350   if (!arg_type || !arg_info) return;
   350   if (!arg_type || !arg_info) return;
   351 
   351 
   352   if (strchr("MG", type) && data && settings_opt_get_int("event_log_files")) {
   352   if (strchr("MG", type) && data && settings_opt_get_int("event_log_files")) {
   353     int fd;
   353     int fd;
   354     const char *prefix;
   354     const char *prefix;
       
   355     char *prefix_xp = NULL;
   355     char *data_locale;
   356     char *data_locale;
   356 
   357 
   357     data_locale = from_utf8(data);
   358     data_locale = from_utf8(data);
   358     prefix = settings_opt_get("event_log_dir");
   359     prefix = settings_opt_get("event_log_dir");
   359     if (!prefix)
   360     if (prefix)
       
   361       prefix = prefix_xp = expand_filename(prefix);
       
   362     else
   360       prefix = ut_get_tmpdir();
   363       prefix = ut_get_tmpdir();
   361     datafname = g_strdup_printf("%s/mcabber-%d.XXXXXX", prefix, getpid());
   364     datafname = g_strdup_printf("%s/mcabber-%d.XXXXXX", prefix, getpid());
       
   365     g_free(prefix_xp);
   362 
   366 
   363     // XXX Some old systems may require us to set umask first.
   367     // XXX Some old systems may require us to set umask first.
   364     fd = mkstemp(datafname);
   368     fd = mkstemp(datafname);
   365     if (fd == -1) {
   369     if (fd == -1) {
   366       g_free(datafname);
   370       g_free(datafname);