changeset 19720:8d429173786f

(WinMain): Allow Emacs process to be started with high or low priority.
author Geoff Voelker <voelker@cs.washington.edu>
date Wed, 03 Sep 1997 02:19:32 +0000
parents 9b43f48f8a10
children c687ce4ca98e
files nt/runemacs.c
diffstat 1 files changed, 20 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/nt/runemacs.c	Wed Sep 03 02:19:02 1997 +0000
+++ b/nt/runemacs.c	Wed Sep 03 02:19:32 1997 +0000
@@ -34,6 +34,7 @@
   SECURITY_DESCRIPTOR sec_desc;
   PROCESS_INFORMATION child;
   int wait_for_child = FALSE;
+  DWORD priority_class = NORMAL_PRIORITY_CLASS;
   DWORD ret_code = 0;
   char *new_cmdline;
   char *p;
@@ -82,13 +83,28 @@
   strcat (new_cmdline, "\\emacs.exe ");
 #endif
 
-  /* Append original arguments if any; first look for -wait as first
-     argument, and apply that ourselves.  */
-  if (strncmp (cmdline, "-wait", 5) == 0)
+  /* Append original arguments if any; first look for arguments we
+     recognise (-wait, -high, and -low), and apply them ourselves.  */
+  while (cmdline[0] == '-' || cmdline[0] == '/')
     {
+      if (strncmp (cmdline+1, "wait", 4) == 0)
+	{
       wait_for_child = TRUE;
       cmdline += 5;
     }
+      else if (strncmp (cmdline+1, "high", 4) == 0)
+	{
+	  priority_class = HIGH_PRIORITY_CLASS;
+	  cmdline += 5;
+	}
+      else if (strncmp (cmdline+1, "low", 3) == 0)
+	{
+	  priority_class = IDLE_PRIORITY_CLASS;
+	  cmdline += 4;
+	}
+      else
+	break;
+    }
   strcat (new_cmdline, cmdline);
 
   /* Set emacs_dir variable if runemacs was in "%emacs_dir%\bin".  */
@@ -109,7 +125,7 @@
   sec_attrs.lpSecurityDescriptor = NULL;
   sec_attrs.bInheritHandle = FALSE;
 
-  if (CreateProcess (NULL, new_cmdline, &sec_attrs, NULL, TRUE, 0,
+  if (CreateProcess (NULL, new_cmdline, &sec_attrs, NULL, TRUE, priority_class,
 		     NULL, NULL, &start, &child))
     {
       if (wait_for_child)