]> err.no Git - sope/blobdiff - sope-appserver/NGObjWeb/WOWatchDogApplicationMain.m
fixed umlaut issue on MacOSX
[sope] / sope-appserver / NGObjWeb / WOWatchDogApplicationMain.m
index c1a33f9c559eb4f9145002ecf758ef95d183ffb4..a9062d053622042ab15b416efd98f29fa4745c53 100644 (file)
@@ -18,7 +18,6 @@
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #import <Foundation/Foundation.h>
 #include <NGObjWeb/NGObjWeb.h>
@@ -419,3 +418,44 @@ int WOWatchDogApplicationMain
   }
 }
 #endif
+
+/* main function which initializes server defaults (usually in /etc) */
+
+@interface NSUserDefaults(ServerDefaults)
++ (id)hackInServerDefaults:(NSUserDefaults *)_ud
+  withAppDomainPath:(NSString *)_appDomainPath
+  globalDomainPath:(NSString *)_globalDomainPath;
+@end
+
+int WOWatchDogApplicationMainWithServerDefaults
+(NSString *appName, int argc, const char *argv[],
+ NSString *globalDomainPath, NSString *appDomainPath)
+{
+  NSAutoreleasePool *pool;
+  Class defClass;
+  
+  pool = [[NSAutoreleasePool alloc] init];
+#if LIB_FOUNDATION_LIBRARY || defined(GS_PASS_ARGUMENTS)
+  {
+    extern char **environ;
+    [NSProcessInfo initializeWithArguments:(void*)argv count:argc
+                   environment:(void*)environ];
+  }
+#endif
+  
+  if ((defClass = NSClassFromString(@"WOServerDefaults")) != nil) {
+    NSUserDefaults *ud, *sd;
+    
+    ud = [NSUserDefaults standardUserDefaults];
+    sd = [defClass hackInServerDefaults:ud
+                   withAppDomainPath:appDomainPath
+                   globalDomainPath:globalDomainPath];
+    
+    if (((sd == nil) || (sd == ud)) && (appDomainPath != nil)) {
+      NSLog(@"Note: not using server defaults: '%@' "
+            @"(not supported on this Foundation)", appDomainPath);
+    }
+  }
+  
+  return WOWatchDogApplicationMain(appName, argc, argv);
+}