[Vm-dev] [commit] r2483 - Dialect neutrality for error and help messages in the Unix VM.

commits at squeakvm.org commits at squeakvm.org
Sun Jul 31 22:48:45 UTC 2011


Author: eliot
Date: 2011-07-31 15:48:45 -0700 (Sun, 31 Jul 2011)
New Revision: 2483

Modified:
   branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
   branches/Cog/platforms/unix/vm/sqUnixExternalPrims.c
   branches/Cog/platforms/unix/vm/sqUnixMain.c
   branches/Cog/platforms/unix/vm/sqUnixMain.h
Log:
Dialect neutrality for error and help messages in the Unix VM.



Property changes on: branches/Cog/platforms/Cross/vm/sqSCCSVersion.h
___________________________________________________________________
Modified: checkindate
   - Sat Jul 30 13:47:55 PDT 2011
   + Sun Jul 31 15:48:22 PDT 2011

Modified: branches/Cog/platforms/unix/vm/sqUnixExternalPrims.c
===================================================================
--- branches/Cog/platforms/unix/vm/sqUnixExternalPrims.c	2011-07-31 17:12:40 UTC (rev 2482)
+++ branches/Cog/platforms/unix/vm/sqUnixExternalPrims.c	2011-07-31 22:48:45 UTC (rev 2483)
@@ -244,7 +244,7 @@
 	    else
 	      {
 #	       if DEBUG
-		printf("squeak: loaded plugin `%s'\n", libName);
+		printf("%s: loaded plugin `%s'\n", exeName, libName);
 #	       endif
 		return handle;
 	      }
@@ -386,7 +386,7 @@
   }
 
 #if DEBUG
-  fprintf(stderr, "squeak: could not load plugin `%s'\n", pluginName);
+  fprintf(stderr, "%s: could not load plugin `%s'\n", exeName, pluginName);
 #endif
   return 0;
 }

Modified: branches/Cog/platforms/unix/vm/sqUnixMain.c
===================================================================
--- branches/Cog/platforms/unix/vm/sqUnixMain.c	2011-07-31 17:12:40 UTC (rev 2482)
+++ branches/Cog/platforms/unix/vm/sqUnixMain.c	2011-07-31 22:48:45 UTC (rev 2483)
@@ -38,6 +38,7 @@
 #include "sqaio.h"
 #include "sqUnixCharConv.h"
 #include "sqSCCSVersion.h"
+#include "sqUnixMain.h"
 #include "debug.h"
 
 #ifdef ioMSecs
@@ -84,6 +85,7 @@
        char   imageName[MAXPATHLEN+1];		/* full path to image */
 static char   vmName[MAXPATHLEN+1];		/* full path to vm */
        char   vmPath[MAXPATHLEN+1];		/* full path to image directory */
+       char  *exeName;					/* short vm name, e.g. "squeak" */
 
        int    argCnt=		0;	/* global copies for access from plugins */
        char **argVec=		0;
@@ -289,12 +291,19 @@
 }
 
 
-static void recordFullPathForVmName(const char *localVmName)
+static void
+recordPathsForVMName(const char *localVmName)
 {
 #if defined(__linux__)
   char	 name[MAXPATHLEN+1];
   int    len;
+#endif
 
+	exeName = strrchr(localVmName,'/')
+				? strrchr(localVmName,'/') + 1
+				: (char *)localVmName;
+
+#if defined(__linux__)
   if ((len= readlink("/proc/self/exe", name, sizeof(name))) > 0)
     {
       struct stat st;
@@ -576,7 +585,7 @@
   fprintf(stderr, "\n");
   printCallStack();
   fprintf(stderr, "\nTo recover valuable content from this image:\n");
-  fprintf(stderr, "    squeak %s\n", imageName);
+  fprintf(stderr, "    %s %s\n", exeName, imageName);
   fprintf(stderr, "and then evaluate\n");
   fprintf(stderr, "    Smalltalk processStartUpList: true\n");
   fprintf(stderr, "in a workspace.  DESTROY the dumped image after recovering content!");
@@ -1104,19 +1113,19 @@
       if (!*md->addr)
 	if ((*md->addr= queryModule(md->type, md->name)))
 #	 if defined(DEBUG_MODULES)
-	  fprintf(stderr, "squeak: %s driver defaulting to vm-%s-%s\n", md->type, md->type, md->name)
+	  fprintf(stderr, "%s: %s driver defaulting to vm-%s-%s\n", exeName, md->type, md->type, md->name)
 #	 endif
 	    ;
   }
 
   if (!displayModule)
     {
-      fprintf(stderr, "squeak: could not find any display driver\n");
+      fprintf(stderr, "%s: could not find any display driver\n", exeName);
       abort();
     }
   if (!soundModule)
     {
-      fprintf(stderr, "squeak: could not find any sound driver\n");
+      fprintf(stderr, "%s: could not find any sound driver\n", exeName);
       abort();
     }
 
@@ -1173,10 +1182,19 @@
 
   if (documentName)
     strcpy(shortImageName, documentName);
-  else if ((ev= getenv("SQUEAK_IMAGE")))
+#if NewspeakVM
+# define IMAGE_ENV_NAME "NEWSPEAK_IMAGE"
+# define IMAGE_DIALECT_NAME "Newspeak"
+# define DEFAULT_IMAGE_NAME "newspeak.image"
+#else
+# define IMAGE_ENV_NAME "SQUEAK_IMAGE"
+# define IMAGE_DIALECT_NAME "Squeak"
+# define DEFAULT_IMAGE_NAME "squeak.image"
+#endif
+  else if ((ev= getenv(IMAGE_ENV_NAME)))
     strcpy(shortImageName, ev);
   else
-    strcpy(shortImageName, "squeak.image");
+    strcpy(shortImageName, DEFAULT_IMAGE_NAME);
 
   if ((ev= getenv("SQUEAK_MEMORY")))	extraMemory= strtobkm(ev);
   if ((ev= getenv("SQUEAK_MMAP")))	useMmap= strtobkm(ev);
@@ -1406,8 +1424,8 @@
 static void vm_printUsageNotes(void)
 {
   printf("  If `-memory' is not specified then the heap will grow dynamically.\n");
-  printf("  <argument>s are ignored, but are processed by the Squeak image.\n");
-  printf("  The first <argument> normally names a Squeak `script' to execute.\n");
+  printf("  <argument>s are ignored, but are processed by the " IMAGE_DIALECT_NAME " image.\n");
+  printf("  The first <argument> normally names a " IMAGE_DIALECT_NAME " `script' to execute.\n");
   printf("  Precede <arguments> by `--' to use default image.\n");
 }
 
@@ -1448,7 +1466,7 @@
       printf("  -spy                  enable the system spy\n");
     }
   printf("\nNotes:\n");
-  printf("  <imageName> defaults to `squeak.image'.\n");
+  printf("  <imageName> defaults to `" DEFAULT_IMAGE_NAME "'.\n");
   modulesDo(m)
     m->printUsageNotes();
   printf("\nAvailable drivers:\n");
@@ -1466,7 +1484,7 @@
   info[0]= '\0';
 
   if (verbose)
-    sprintf(info+strlen(info), "Squeak VM version: ");
+    sprintf(info+strlen(info), IMAGE_DIALECT_NAME " VM version: ");
   sprintf(info+strlen(info), "%s #%d", VM_VERSION, vm_serial);
 #if defined(USE_XSHM)
   sprintf(info+strlen(info), " XShm");
@@ -1540,21 +1558,22 @@
 /*** main ***/
 
 
-static void imageNotFound(char *imageName)
+static void
+imageNotFound(char *imageName)
 {
   /* image file is not found */
   fprintf(stderr,
-	  "Could not open the Squeak image file `%s'.\n"
+	  "Could not open the " IMAGE_DIALECT_NAME " image file `%s'.\n"
 	  "\n"
-	  "There are three ways to open a Squeak image file.  You can:\n"
+	  "There are three ways to open a " IMAGE_DIALECT_NAME " image file.  You can:\n"
 	  "  1. Put copies of the default image and changes files in this directory.\n"
 	  "  2. Put the name of the image file on the command line when you\n"
-	  "     run squeak (use the `-help' option for more information).\n"
-	  "  3. Set the environment variable SQUEAK_IMAGE to the name of the image\n"
+	  "     run %s (use the `-help' option for more information).\n"
+	  "  3. Set the environment variable " IMAGE_ENV_NAME " to the name of the image\n"
 	  "     that you want to use by default.\n"
 	  "\n"
-	  "For more information, type: `man squeak' (without the quote characters).\n",
-	  imageName);
+	  "For more information, type: `man %s' (without the quote characters).\n",
+	  imageName, exeName, exeName);
   exit(1);
 }
 
@@ -1664,7 +1683,7 @@
   tzset();	/* should _not_ be necessary! */
 #endif
 
-  recordFullPathForVmName(argv[0]); /* full vm path */
+  recordPathsForVMName(argv[0]); /* full vm path */
   squeakPlugins= vmPath;		/* default plugin location is VM directory */
 
 #if !DEBUG

Modified: branches/Cog/platforms/unix/vm/sqUnixMain.h
===================================================================
--- branches/Cog/platforms/unix/vm/sqUnixMain.h	2011-07-31 17:12:40 UTC (rev 2482)
+++ branches/Cog/platforms/unix/vm/sqUnixMain.h	2011-07-31 22:48:45 UTC (rev 2483)
@@ -5,6 +5,7 @@
 extern char   shortImageName[];
 extern int    inputEventSemaIndex;
 extern char   vmPath[];
+extern char  *exeName;
 extern char **argVec;
 
 extern int    fullScreenFlag;



More information about the Vm-dev mailing list