Added support for the following actions:
[privoxy.git] / miscutil.c
index f79cfd7..bea387e 100644 (file)
@@ -1,4 +1,4 @@
-const char miscutil_rcs[] = "$Id: miscutil.c,v 1.22 2001/10/26 17:39:38 oes Exp $";
+const char miscutil_rcs[] = "$Id: miscutil.c,v 1.24 2001/11/05 21:41:43 steudten Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/miscutil.c,v $
@@ -36,6 +36,19 @@ const char miscutil_rcs[] = "$Id: miscutil.c,v 1.22 2001/10/26 17:39:38 oes Exp
  *
  * Revisions   :
  *    $Log: miscutil.c,v $
+ *    Revision 1.24  2001/11/05 21:41:43  steudten
+ *    Add changes to be a real daemon just for unix os.
+ *    (change cwd to /, detach from controlling tty, set
+ *    process group and session leader to the own process.
+ *    Add DBG() Macro.
+ *    Add some fatal-error log message for failed malloc().
+ *    Add '-d' if compiled with 'configure --with-debug' to
+ *    enable debug output.
+ *
+ *    Revision 1.23  2001/10/29 03:48:10  david__schmidt
+ *    OS/2 native needed a snprintf() routine.  Added one to miscutil, brackedted
+ *    by and __OS2__ ifdef.
+ *
  *    Revision 1.22  2001/10/26 17:39:38  oes
  *    Moved ijb_isspace and ijb_tolower to project.h
  *
@@ -147,7 +160,6 @@ const char miscutil_rcs[] = "$Id: miscutil.c,v 1.22 2001/10/26 17:39:38 oes Exp
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <malloc.h>
 #include <ctype.h>
 #include <assert.h>
 
@@ -736,8 +748,32 @@ char * make_path(const char * dir, const char * file)
    }
    else
    {
-      char * path = malloc(strlen(dir) + strlen(file) + 2);
+      char * path;
+
+#if defined(unix)
+      if ( *dir != '/' && basedir && *basedir )
+      {
+             path = malloc( strlen( basedir ) + strlen(dir) + strlen(file) + 3);
+             if (!path ) log_error(LOG_LEVEL_FATAL, "malloc failed!");
+             strcpy(path, basedir);
+             strcat(path, "/");
+             strcat(path, dir);
+             DBG(1, ("make_path: path: %s\n",path) );
+      }
+      else
+      {
+             path = malloc(strlen(dir) + strlen(file) + 2);
+             if (!path ) log_error(LOG_LEVEL_FATAL, "malloc failed!");
+             strcpy(path, dir);
+      }
+#else
+
+      path = malloc(strlen(dir) + strlen(file) + 2);
+      if (!path ) log_error(LOG_LEVEL_FATAL, "malloc failed!");
       strcpy(path, dir);
+
+#endif /* defined unix */
+
 #ifdef _WIN32
       if(path[strlen(path)-1] != '\\')
       {
@@ -1529,4 +1565,4 @@ int portable_vsnprintf(char *str, size_t str_m, const char *fmt, va_list ap) {
   Local Variables:
   tab-width: 3
   end:
-*/
\ No newline at end of file
+*/