tsf@theory.cs.cmu.edu (Timothy Freeman) (04/20/87)
The X server resets itself whenever it has no connections. This is a
nuisance when the server is started up by interactively running xinit,
so I made an option "-R" that tells the server not to reset when it
has no connections. Here are the diffs to X/main.c:
*** main.c Sun Apr 19 17:47:42 1987
--- newmain.c Sun Apr 19 17:26:52 1987
***************
*** 83,88
static short default_mono = 0; /* Force monochrome */
static short default_blank = 0; /* Blank video preferred */
static ColorDef basecolors[2] = {{BlackPixel, 0, 0, 0x8000},
{WhitePixel, 0xff00, 0xff00, 0xff00}};
static ColorDef randomcolors[2] = {{BlackPixel, 0, 0, 0},
--- 83,90 -----
static short default_mono = 0; /* Force monochrome */
static short default_blank = 0; /* Blank video preferred */
+ static short reset_when_no_connects = 1; /* Reset the server when there are no connections? */
+
static ColorDef basecolors[2] = {{BlackPixel, 0, 0, 0x8000},
{WhitePixel, 0xff00, 0xff00, 0xff00}};
static ColorDef randomcolors[2] = {{BlackPixel, 0, 0, 0},
***************
*** 171,176
default_repeat = 0;
} else if (strcmp (arg, "r") == 0) {
default_repeat = 1;
} else if (strcmp (arg, "-s") == 0 && i < argc) {
default_savertime = atoi (argv[i]);
if (default_savertime == 0) Usage ();
--- 173,184 -----
default_repeat = 0;
} else if (strcmp (arg, "r") == 0) {
default_repeat = 1;
+ } else if (strcmp (arg, "R") == 0) {
+ reset_when_no_connects = 1;
+ i++;
+ } else if (strcmp (arg, "-R") == 0) {
+ reset_when_no_connects = 0;
+ i++;
} else if (strcmp (arg, "-s") == 0 && i < argc) {
default_savertime = atoi (argv[i]);
if (default_savertime == 0) Usage ();
***************
*** 202,208
Usage ()
{
printf("usage: X <display> [option ...] <tty>\n");
! printf("options: -a #, c #, -c, -f #, -l, l, m, -p #, -r, r, -s #, -t #, v, -v\n");
printf(" -0 <color> -1 <color> -D <rgbdb>\n");
exit(1);
}
--- 210,216 -----
Usage ()
{
printf("usage: X <display> [option ...] <tty>\n");
! printf("options: -a #, c #, -c, -f #, -l, l, m, -p #, -r, r, -R, R, -s #, -t #, v, -v\n");
printf(" -0 <color> -1 <color> -D <rgbdb>\n");
printf("R means to reset the server when there are no connections; -R means not to.\n");
exit(1);
***************
*** 204,209
printf("usage: X <display> [option ...] <tty>\n");
printf("options: -a #, c #, -c, -f #, -l, l, m, -p #, -r, r, -s #, -t #, v, -v\n");
printf(" -0 <color> -1 <color> -D <rgbdb>\n");
exit(1);
}
--- 212,218 -----
printf("usage: X <display> [option ...] <tty>\n");
printf("options: -a #, c #, -c, -f #, -l, l, m, -p #, -r, r, -R, R, -s #, -t #, v, -v\n");
printf(" -0 <color> -1 <color> -D <rgbdb>\n");
+ printf("R means to reset the server when there are no connections; -R means not to.\n");
exit(1);
}
***************
*** 656,662
Free_client_resources (i);
Deal_with_movement ();
/* if nobody is left, clean up after them */
! if (maxsock == firstsock)
Restore_root ();
}
--- 665,671 -----
Free_client_resources (i);
Deal_with_movement ();
/* if nobody is left, clean up after them */
! if ((maxsock == firstsock) && reset_when_no_connects)
Restore_root ();
}