summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scon.c128
-rw-r--r--wcon.c168
2 files changed, 150 insertions, 146 deletions
diff --git a/scon.c b/scon.c
index ce68aa9..8ede910 100644
--- a/scon.c
+++ b/scon.c
@@ -809,75 +809,77 @@ int main (int argc,char **argv)
#endif
set_home_and_appl_path (argv[0]);
-
- for (arg_n=1; arg_n<argc; ++arg_n){
- char *s;
-
- s=argv[arg_n];
- if (*s!='-')
- break;
- ++s;
- if (!strcmp (s,"h")){
- ++arg_n;
- if (arg_n>=argc){
- printf ("Heapsize missing\n");
- return -1;
- }
- heap_size=parse_size (argv[arg_n]);
- } else if (!strcmp (s,"s")){
- ++arg_n;
- if (arg_n>=argc){
- printf ("Stacksize missing\n");
- return -1;
- }
+ arg_n=1;
+ if ((flags & 8192)==0)
+ for (; arg_n<argc; ++arg_n){
+ char *s;
+
+ s=argv[arg_n];
+ if (*s!='-')
+ break;
+
+ ++s;
+ if (!strcmp (s,"h")){
+ ++arg_n;
+ if (arg_n>=argc){
+ printf ("Heapsize missing\n");
+ return -1;
+ }
+ heap_size=parse_size (argv[arg_n]);
+ } else if (!strcmp (s,"s")){
+ ++arg_n;
+ if (arg_n>=argc){
+ printf ("Stacksize missing\n");
+ return -1;
+ }
#if defined (SOLARIS) || defined (I486)
- ab_stack_size=parse_size (argv[arg_n]);
+ ab_stack_size=parse_size (argv[arg_n]);
#else
- stack_size=parse_size (argv[arg_n]);
+ stack_size=parse_size (argv[arg_n]);
#endif
- } else if (!strcmp (s,"b"))
- flags |= 1;
- else if (!strcmp (s,"sc"))
- flags &= ~1;
- else if (!strcmp (s,"t"))
- flags |= 8;
- else if (!strcmp (s,"nt"))
- flags &= ~8;
- else if (!strcmp (s,"gc"))
- flags |= 2;
- else if (!strcmp (s,"ngc"))
- flags &= ~2;
- else if (!strcmp (s,"st"))
- flags |= 4;
- else if (!strcmp (s,"nst"))
- flags &= ~4;
- else if (!strcmp (s,"nr"))
- flags |= 16;
+ } else if (!strcmp (s,"b"))
+ flags |= 1;
+ else if (!strcmp (s,"sc"))
+ flags &= ~1;
+ else if (!strcmp (s,"t"))
+ flags |= 8;
+ else if (!strcmp (s,"nt"))
+ flags &= ~8;
+ else if (!strcmp (s,"gc"))
+ flags |= 2;
+ else if (!strcmp (s,"ngc"))
+ flags &= ~2;
+ else if (!strcmp (s,"st"))
+ flags |= 4;
+ else if (!strcmp (s,"nst"))
+ flags &= ~4;
+ else if (!strcmp (s,"nr"))
+ flags |= 16;
#ifdef MARKING_GC
- else if (!strcmp (s,"gcm"))
- flags |= 64;
- else if (!strcmp (s,"gcc"))
- flags &= ~64;
- else if (!strcmp (s,"gci")){
- ++arg_n;
- if (arg_n>=argc){
- printf ("Initial heap size missing\n");
- exit (-1);
- }
- initial_heap_size=parse_size (argv[arg_n]);
- } else if (!strcmp (s,"gcf")){
- ++arg_n;
- if (arg_n>=argc){
- printf ("Next heap size factor missing\n");
- exit (-1);
- }
- heap_size_multiple=parse_integer (argv[arg_n])<<8;
- }
+ else if (!strcmp (s,"gcm"))
+ flags |= 64;
+ else if (!strcmp (s,"gcc"))
+ flags &= ~64;
+ else if (!strcmp (s,"gci")){
+ ++arg_n;
+ if (arg_n>=argc){
+ printf ("Initial heap size missing\n");
+ exit (-1);
+ }
+ initial_heap_size=parse_size (argv[arg_n]);
+ } else if (!strcmp (s,"gcf")){
+ ++arg_n;
+ if (arg_n>=argc){
+ printf ("Next heap size factor missing\n");
+ exit (-1);
+ }
+ heap_size_multiple=parse_integer (argv[arg_n])<<8;
+ }
#endif
- else
- break;
- }
+ else
+ break;
+ }
--arg_n;
argv[arg_n]=argv[0];
diff --git a/wcon.c b/wcon.c
index 56534ce..2e795b3 100644
--- a/wcon.c
+++ b/wcon.c
@@ -1617,98 +1617,100 @@ int clean_main (void)
heap_size_multiple=MAXIMUM_HEAP_SIZE_MULTIPLE;
#endif
- for (arg_n=1; arg_n<argc; ++arg_n){
- char *s;
-
- s=argv[arg_n];
- if (*s!='-')
- break;
+ arg_n=1;
+ if ((flags & 8192)==0)
+ for (; arg_n<argc; ++arg_n){
+ char *s;
+
+ s=argv[arg_n];
+ if (*s!='-')
+ break;
- ++s;
- if (EQ_STRING1 (s,'h')){
- long s;
+ ++s;
+ if (EQ_STRING1 (s,'h')){
+ long s;
- ++arg_n;
- if (arg_n>=argc){
- w_print_string ("Heapsize missing\n");
- return -1;
- }
- s=parse_size (argv[arg_n]);
- if (s<0)
- return -1;
- heap_size=s;
- } else if (EQ_STRING1 (s,'s')){
- long s;
-
- ++arg_n;
- if (arg_n>=argc){
- w_print_string ("Stacksize missing\n");
- return -1;
- }
- s=parse_size (argv[arg_n]);
- if (s<0)
- return -1;
- ab_stack_size=s;
- } else if (EQ_STRING1 (s,'b'))
- flags |= 1;
- else if (EQ_STRING2 (s,'s','c'))
- flags &= ~1;
- else if (EQ_STRING1 (s,'t'))
- flags |= SHOW_EXECUTION_TIME_MASK;
- else if (EQ_STRING2 (s,'n','t'))
- flags &= ~SHOW_EXECUTION_TIME_MASK;
- else if (EQ_STRING2 (s,'g','c'))
- flags |= 2;
- else if (EQ_STRING3 (s,'n','g','c'))
- flags &= ~2;
- else if (EQ_STRING2 (s,'s','t'))
- flags |= 4;
- else if (EQ_STRING3 (s,'n','s','t'))
- flags &= ~4;
- else if (EQ_STRING2 (s,'n','r'))
- flags |= NO_RESULT_MASK;
+ ++arg_n;
+ if (arg_n>=argc){
+ w_print_string ("Heapsize missing\n");
+ return -1;
+ }
+ s=parse_size (argv[arg_n]);
+ if (s<0)
+ return -1;
+ heap_size=s;
+ } else if (EQ_STRING1 (s,'s')){
+ long s;
+
+ ++arg_n;
+ if (arg_n>=argc){
+ w_print_string ("Stacksize missing\n");
+ return -1;
+ }
+ s=parse_size (argv[arg_n]);
+ if (s<0)
+ return -1;
+ ab_stack_size=s;
+ } else if (EQ_STRING1 (s,'b'))
+ flags |= 1;
+ else if (EQ_STRING2 (s,'s','c'))
+ flags &= ~1;
+ else if (EQ_STRING1 (s,'t'))
+ flags |= SHOW_EXECUTION_TIME_MASK;
+ else if (EQ_STRING2 (s,'n','t'))
+ flags &= ~SHOW_EXECUTION_TIME_MASK;
+ else if (EQ_STRING2 (s,'g','c'))
+ flags |= 2;
+ else if (EQ_STRING3 (s,'n','g','c'))
+ flags &= ~2;
+ else if (EQ_STRING2 (s,'s','t'))
+ flags |= 4;
+ else if (EQ_STRING3 (s,'n','s','t'))
+ flags &= ~4;
+ else if (EQ_STRING2 (s,'n','r'))
+ flags |= NO_RESULT_MASK;
#ifdef GC_FLAGS
- else if (EQ_STRING3 (s,'g','c','m'))
- flags |= 64;
- else if (EQ_STRING3 (s,'g','c','c'))
- flags &= ~64;
- else if (EQ_STRING3 (s,'g','c','i')){
- int s;
-
- ++arg_n;
- if (arg_n>=argc){
- w_print_string ("Initial heap size missing\n");
- return -1;
- }
- s=parse_size (argv[arg_n]);
- if (s<0)
- return -1;
- initial_heap_size=s;
- } else if (EQ_STRING3 (s,'g','c','f')){
- int i;
-
- ++arg_n;
- if (arg_n>=argc){
- w_print_string ("Next heap size factor missing\n");
- return -1;
+ else if (EQ_STRING3 (s,'g','c','m'))
+ flags |= 64;
+ else if (EQ_STRING3 (s,'g','c','c'))
+ flags &= ~64;
+ else if (EQ_STRING3 (s,'g','c','i')){
+ int s;
+
+ ++arg_n;
+ if (arg_n>=argc){
+ w_print_string ("Initial heap size missing\n");
+ return -1;
+ }
+ s=parse_size (argv[arg_n]);
+ if (s<0)
+ return -1;
+ initial_heap_size=s;
+ } else if (EQ_STRING3 (s,'g','c','f')){
+ int i;
+
+ ++arg_n;
+ if (arg_n>=argc){
+ w_print_string ("Next heap size factor missing\n");
+ return -1;
+ }
+ i=parse_integer (argv[arg_n]);
+ if (i<0)
+ return -1;
+ heap_size_multiple=i<<8;
}
- i=parse_integer (argv[arg_n]);
- if (i<0)
- return -1;
- heap_size_multiple=i<<8;
- }
# ifdef AI64
- else if (EQ_STRING3 (s,'g','c','p'))
- flags |= 4096;
+ else if (EQ_STRING3 (s,'g','c','p'))
+ flags |= 4096;
# endif
#endif
#ifdef WINDOWS
- else if (EQ_STRING3 (s,'c','o','n'))
- console_flag=1;
+ else if (EQ_STRING3 (s,'c','o','n'))
+ console_flag=1;
#endif
- else
- break;
- }
+ else
+ break;
+ }
--arg_n;
argv[arg_n]=argv[0];