Andreas' recent changes (port 8118, etc).
[privoxy.git] / miscutil.c
index a971866..a1715d1 100644 (file)
@@ -1,4 +1,4 @@
-const char miscutil_rcs[] = "$Id: miscutil.c,v 1.26 2001/12/30 14:07:32 steudten Exp $";
+const char miscutil_rcs[] = "$Id: miscutil.c,v 1.29 2002/03/04 02:08:02 david__schmidt Exp $";
 /*********************************************************************
  *
  * File        :  $Source: /cvsroot/ijbswa/current/miscutil.c,v $
@@ -36,6 +36,15 @@ const char miscutil_rcs[] = "$Id: miscutil.c,v 1.26 2001/12/30 14:07:32 steudten
  *
  * Revisions   :
  *    $Log: miscutil.c,v $
+ *    Revision 1.29  2002/03/04 02:08:02  david__schmidt
+ *    Enable web editing of actions file on OS/2 (it had been broken all this time!)
+ *
+ *    Revision 1.28  2002/03/03 09:18:03  joergs
+ *    Made jumbjuster work on AmigaOS again.
+ *
+ *    Revision 1.27  2002/01/21 00:52:32  jongfoster
+ *    Adding string_join()
+ *
  *    Revision 1.26  2001/12/30 14:07:32  steudten
  *    - Add signal handling (unix)
  *    - Add SIGHUP handler (unix)
@@ -182,6 +191,7 @@ const char miscutil_rcs[] = "$Id: miscutil.c,v 1.26 2001/12/30 14:07:32 steudten
 #include "project.h"
 #include "miscutil.h"
 #include "errlog.h"
+#include "jcc.h"
 
 const char miscutil_h_rcs[] = MISCUTIL_H_VERSION;
 
@@ -208,53 +218,46 @@ void *zalloc(int size)
    }
 
    return(ret);
-}
-#if defined(unix)
-/*********************************************************************
- *
- * Function    : deletePidFile 
- *
- * Description :  deletes the pid file with the pid of the main process 
- *
- * Parameters  : -
- *
- * Returns     : - 
- *
- *********************************************************************/
-void deletePidFile( void )
-{
-  char pidfile[ 64 ];
 
-  snprintf( pidfile, sizeof(pidfile), "%s/%s", PID_FILE_PATH, PID_FILE_NAME);
-  unlink( pidfile );
 }
+
+
+#if defined(unix)
 /*********************************************************************
  *
- * Function    : writePidFile 
+ * Function    :  write_pid_file 
  *
- * Description :  writes the pid file with the pid of the main process 
+ * Description :  Writes a pid file with the pid of the main process 
  *
- * Parameters  : -
+ * Parameters  :  None
  *
- * Returns     : - 
+ * Returns     :  N/A 
  *
  *********************************************************************/
-void writePidFile( void )
+void write_pid_file(void)
 {
-  FILE   *fp;
-  char   pidfile[64];
+   FILE   *fp;
+   
+   /*
+    * If no --pidfile option was given,
+    * we can live without one.
+    */
+   if (pidfile == NULL) return;
 
-  snprintf( pidfile, sizeof(pidfile), "%s/%s", PID_FILE_PATH, PID_FILE_NAME);
-  if ((fp = fopen( pidfile,"w")) == NULL )
-  {
+   if ((fp = fopen(pidfile, "w")) == NULL)
+   {
       log_error(LOG_LEVEL_INFO, "can't open pidfile '%s': %E", pidfile);
-      return;
-  }
+   }
+   else
+   {
+      fprintf(fp, "%u\n", (unsigned int) getpid());
+      fclose (fp);
+   }
+   return;
 
-  fprintf( fp,"%u\n", (unsigned int) getpid());
-  fclose ( fp );
 }
-#endif /* unix */
+#endif /* def unix */
+
 
 /*********************************************************************
  *
@@ -832,7 +835,21 @@ char * make_path(const char * dir, const char * file)
 
    if(dir)
    {
-      strncpy(path,dir,512);
+      if(dir[0] == '.')
+      {
+         if(dir[1] == '/')
+         {
+            strncpy(path,dir+2,512);
+         }
+         else
+         {
+            strncpy(path,dir+1,512);
+         }
+      }
+      else
+      {
+         strncpy(path,dir,512);
+      }
       path[511]=0;
    } else {
       path[0]=0;
@@ -851,11 +868,11 @@ char * make_path(const char * dir, const char * file)
    }
 
    if ((dir == NULL) || (*dir == '\0') /* No directory specified */
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__OS2__)
       || (*file == '\\') || (file[1] == ':') /* Absolute path (DOS) */
-#else /* ifndef _WIN32 */
+#else /* ifndef _WIN32 || __OS2__ */
       || (*file == '/') /* Absolute path (U*ix) */
-#endif /* ifndef _WIN32 */
+#endif /* ifndef _WIN32 || __OS2__  */
       )
    {
       return strdup(file);
@@ -888,17 +905,17 @@ char * make_path(const char * dir, const char * file)
 
 #endif /* defined unix */
 
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__OS2__)
       if(path[strlen(path)-1] != '\\')
       {
          strcat(path, "\\");
       }
-#else /* ifndef _WIN32 */
+#else /* ifndef _WIN32 || __OS2__ */
       if(path[strlen(path)-1] != '/')
       {
          strcat(path, "/");
       }
-#endif /* ifndef _WIN32 */
+#endif /* ifndef _WIN32 || __OS2__ */
       strcat(path, file);
 
       return path;