logo       
Google Custom Search
    AddThis Social Bookmark Button

rev 158 - trunk/src: msg#00028

Subject: rev 158 - trunk/src
Author: bcollins
Date: 2004-03-27 13:44:40 -0500 (Sat, 27 Mar 2004)
New Revision: 158

Modified:
   trunk/src/interp.c
   trunk/src/sys.c
Log:
Better Sys.platform for systems supporting uname().


Modified: trunk/src/interp.c
===================================================================
--- trunk/src/interp.c  2004-03-27 17:09:34 UTC (rev 157)
+++ trunk/src/interp.c  2004-03-27 18:44:40 UTC (rev 158)
@@ -62,10 +62,6 @@
 #include <apr_strings.h>
 #include <apr_dso.h>
 
-#ifndef WIN32
-#include <dlfcn.h>
-#endif
-
 #define STACK_PADDING 4
 
 static DECLARE_PR_LOCK(start_main_lock);

Modified: trunk/src/sys.c
===================================================================
--- trunk/src/sys.c     2004-03-27 17:09:34 UTC (rev 157)
+++ trunk/src/sys.c     2004-03-27 18:44:40 UTC (rev 158)
@@ -53,31 +53,30 @@
 
 // sys.c
 
-#include <prothon/prothon.h>
-#include "object.h"
-#include "interp.h"
-#include "clist.h"
-
 #include <stdlib.h>
 #include <stdio.h>
-#include <apr_strings.h>
 
 #ifndef WIN32
+#include <sys/utsname.h>
 #include <unistd.h>
 #include <limits.h>
 #include <stdint.h>
-#endif
-
-#ifdef WIN32
+#else
 #include <io.h>
 #include <direct.h>
 #endif
 
+#include <prothon/prothon.h>
+#include "object.h"
+#include "interp.h"
+#include "clist.h"
+
 #include <apr_pools.h>
 #include <apr_file_info.h>
 #include <apr_fnmatch.h>
 #include <apr_file_io.h>
 #include <apr_portable.h>
+#include <apr_strings.h>
 
 static obj_p sys_exit(isp ist, obj_p self, int pcnt, obj_p* parms, obj_p 
dlocals) {
        if (!has_proto(ist, parms[1], OBJ(INT_PROTO))) {
@@ -192,10 +191,19 @@
         * platform aswell. */
 #if defined(WIN32)
        set_attr(ist, sys_module, sym(ist, "platform"), 
new_string_obj("win32"));
-#elif defined(__unix__)
-       set_attr(ist, sys_module, sym(ist, "platform"), new_string_obj("unix"));
 #else
-       set_attr(ist, sys_module, sym(ist, "platform"), 
new_string_obj("unknown"));
+       {
+               struct utsname uts;
+
+               if (uname(&uts)) {
+                       set_attr(ist, sys_module, sym(ist, "platform"), 
new_string_obj("unknown"));
+               } else {
+                       char plt_buf[1024];
+                       apr_snprintf(plt_buf, sizeof(plt_buf), "%s %s (%s)",
+                                    uts.sysname, uts.release, uts.machine);
+                       set_attr(ist, sys_module, sym(ist, "platform"), 
new_string_obj(plt_buf));
+               }
+       }
 #endif
        set_attr(ist, sys_module, sym(ist, "ps1"), new_string_obj(">>> "));
        set_attr(ist, sys_module, sym(ist, "ps2"), new_string_obj("... "));





Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>