*** empty log message ***
authorroot <root>
Fri, 13 Aug 2004 03:47:09 +0000 (03:47 +0000)
committerroot <root>
Fri, 13 Aug 2004 03:47:09 +0000 (03:47 +0000)
doc/rxvt.1.pod
src/init.C

index 879bd52..f653fcd 100644 (file)
@@ -532,9 +532,9 @@ thumb with the pointer on middle button press/drag.
 
 =item B<scrollTtyOutput:> I<boolean>
 
-B<True>: scroll to bottom when tty receives output; option B<+si>.
+B<True>: scroll to bottom when tty receives output; option B<-si>.
 B<False>: do not scroll to bottom when tty receives output; option
-B<-si>.
+B<+si>.
 
 =item B<scrollWithBuffer:> I<boolean>
 
index 0606a74..8b12fec 100644 (file)
@@ -70,222 +70,222 @@ const char *const def_colorName[] =
     "Cyan",                     /* 6/14: bright cyan    (#00FFFF) */
     "White",                    /* 7/15: bright white   (#FFFFFF) */
 #ifdef TTY_256COLOR
-    "rgb:00/00/00",             /* default 16-255 color table     */
-    "rgb:00/00/2a",
-    "rgb:00/00/55",
-    "rgb:00/00/7f",
-    "rgb:00/00/aa",
-    "rgb:00/00/d4",
-    "rgb:00/2a/00",
-    "rgb:00/2a/2a",
-    "rgb:00/2a/55",
-    "rgb:00/2a/7f",
-    "rgb:00/2a/aa",
-    "rgb:00/2a/d4",
-    "rgb:00/55/00",
-    "rgb:00/55/2a",
-    "rgb:00/55/55",
-    "rgb:00/55/7f",
-    "rgb:00/55/aa",
-    "rgb:00/55/d4",
-    "rgb:00/7f/00",
-    "rgb:00/7f/2a",
-    "rgb:00/7f/55",
-    "rgb:00/7f/7f",
-    "rgb:00/7f/aa",
-    "rgb:00/7f/d4",
-    "rgb:00/aa/00",
-    "rgb:00/aa/2a",
-    "rgb:00/aa/55",
-    "rgb:00/aa/7f",
-    "rgb:00/aa/aa",
-    "rgb:00/aa/d4",
-    "rgb:00/d4/00",
-    "rgb:00/d4/2a",
-    "rgb:00/d4/55",
-    "rgb:00/d4/7f",
-    "rgb:00/d4/aa",
-    "rgb:00/d4/d4",
-    "rgb:2a/00/00",
-    "rgb:2a/00/2a",
-    "rgb:2a/00/55",
-    "rgb:2a/00/7f",
-    "rgb:2a/00/aa",
-    "rgb:2a/00/d4",
-    "rgb:2a/2a/00",
-    "rgb:2a/2a/2a",
-    "rgb:2a/2a/55",
-    "rgb:2a/2a/7f",
-    "rgb:2a/2a/aa",
-    "rgb:2a/2a/d4",
-    "rgb:2a/55/00",
-    "rgb:2a/55/2a",
-    "rgb:2a/55/55",
-    "rgb:2a/55/7f",
-    "rgb:2a/55/aa",
-    "rgb:2a/55/d4",
-    "rgb:2a/7f/00",
-    "rgb:2a/7f/2a",
-    "rgb:2a/7f/55",
-    "rgb:2a/7f/7f",
-    "rgb:2a/7f/aa",
-    "rgb:2a/7f/d4",
-    "rgb:2a/aa/00",
-    "rgb:2a/aa/2a",
-    "rgb:2a/aa/55",
-    "rgb:2a/aa/7f",
-    "rgb:2a/aa/aa",
-    "rgb:2a/aa/d4",
-    "rgb:2a/d4/00",
-    "rgb:2a/d4/2a",
-    "rgb:2a/d4/55",
-    "rgb:2a/d4/7f",
-    "rgb:2a/d4/aa",
-    "rgb:2a/d4/d4",
-    "rgb:55/00/00",
-    "rgb:55/00/2a",
-    "rgb:55/00/55",
-    "rgb:55/00/7f",
-    "rgb:55/00/aa",
-    "rgb:55/00/d4",
-    "rgb:55/2a/00",
-    "rgb:55/2a/2a",
-    "rgb:55/2a/55",
-    "rgb:55/2a/7f",
-    "rgb:55/2a/aa",
-    "rgb:55/2a/d4",
-    "rgb:55/55/00",
-    "rgb:55/55/2a",
-    "rgb:55/55/55",
-    "rgb:55/55/7f",
-    "rgb:55/55/aa",
-    "rgb:55/55/d4",
-    "rgb:55/7f/00",
-    "rgb:55/7f/2a",
-    "rgb:55/7f/55",
-    "rgb:55/7f/7f",
-    "rgb:55/7f/aa",
-    "rgb:55/7f/d4",
-    "rgb:55/aa/00",
-    "rgb:55/aa/2a",
-    "rgb:55/aa/55",
-    "rgb:55/aa/7f",
-    "rgb:55/aa/aa",
-    "rgb:55/aa/d4",
-    "rgb:55/d4/00",
-    "rgb:55/d4/2a",
-    "rgb:55/d4/55",
-    "rgb:55/d4/7f",
-    "rgb:55/d4/aa",
-    "rgb:55/d4/d4",
-    "rgb:7f/00/00",
-    "rgb:7f/00/2a",
-    "rgb:7f/00/55",
-    "rgb:7f/00/7f",
-    "rgb:7f/00/aa",
-    "rgb:7f/00/d4",
-    "rgb:7f/2a/00",
-    "rgb:7f/2a/2a",
-    "rgb:7f/2a/55",
-    "rgb:7f/2a/7f",
-    "rgb:7f/2a/aa",
-    "rgb:7f/2a/d4",
-    "rgb:7f/55/00",
-    "rgb:7f/55/2a",
-    "rgb:7f/55/55",
-    "rgb:7f/55/7f",
-    "rgb:7f/55/aa",
-    "rgb:7f/55/d4",
-    "rgb:7f/7f/00",
-    "rgb:7f/7f/2a",
-    "rgb:7f/7f/55",
-    "rgb:7f/7f/7f",
-    "rgb:7f/7f/aa",
-    "rgb:7f/7f/d4",
-    "rgb:7f/aa/00",
-    "rgb:7f/aa/2a",
-    "rgb:7f/aa/55",
-    "rgb:7f/aa/7f",
-    "rgb:7f/aa/aa",
-    "rgb:7f/aa/d4",
-    "rgb:7f/d4/00",
-    "rgb:7f/d4/2a",
-    "rgb:7f/d4/55",
-    "rgb:7f/d4/7f",
-    "rgb:7f/d4/aa",
-    "rgb:7f/d4/d4",
-    "rgb:aa/00/00",
-    "rgb:aa/00/2a",
-    "rgb:aa/00/55",
-    "rgb:aa/00/7f",
-    "rgb:aa/00/aa",
-    "rgb:aa/00/d4",
-    "rgb:aa/2a/00",
-    "rgb:aa/2a/2a",
-    "rgb:aa/2a/55",
-    "rgb:aa/2a/7f",
-    "rgb:aa/2a/aa",
-    "rgb:aa/2a/d4",
-    "rgb:aa/55/00",
-    "rgb:aa/55/2a",
-    "rgb:aa/55/55",
-    "rgb:aa/55/7f",
-    "rgb:aa/55/aa",
-    "rgb:aa/55/d4",
-    "rgb:aa/7f/00",
-    "rgb:aa/7f/2a",
-    "rgb:aa/7f/55",
-    "rgb:aa/7f/7f",
-    "rgb:aa/7f/aa",
-    "rgb:aa/7f/d4",
-    "rgb:aa/aa/00",
-    "rgb:aa/aa/2a",
-    "rgb:aa/aa/55",
-    "rgb:aa/aa/7f",
-    "rgb:aa/aa/aa",
-    "rgb:aa/aa/d4",
-    "rgb:aa/d4/00",
-    "rgb:aa/d4/2a",
-    "rgb:aa/d4/55",
-    "rgb:aa/d4/7f",
-    "rgb:aa/d4/aa",
-    "rgb:aa/d4/d4",
-    "rgb:d4/00/00",
-    "rgb:d4/00/2a",
-    "rgb:d4/00/55",
-    "rgb:d4/00/7f",
-    "rgb:d4/00/aa",
-    "rgb:d4/00/d4",
-    "rgb:d4/2a/00",
-    "rgb:d4/2a/2a",
-    "rgb:d4/2a/55",
-    "rgb:d4/2a/7f",
-    "rgb:d4/2a/aa",
-    "rgb:d4/2a/d4",
-    "rgb:d4/55/00",
-    "rgb:d4/55/2a",
-    "rgb:d4/55/55",
-    "rgb:d4/55/7f",
-    "rgb:d4/55/aa",
-    "rgb:d4/55/d4",
-    "rgb:d4/7f/00",
-    "rgb:d4/7f/2a",
-    "rgb:d4/7f/55",
-    "rgb:d4/7f/7f",
-    "rgb:d4/7f/aa",
-    "rgb:d4/7f/d4",
-    "rgb:d4/aa/00",
-    "rgb:d4/aa/2a",
-    "rgb:d4/aa/55",
-    "rgb:d4/aa/7f",
-    "rgb:d4/aa/aa",
-    "rgb:d4/aa/d4",
-    "rgb:d4/d4/00",
-    "rgb:d4/d4/2a",
-    "rgb:d4/d4/55",
-    "rgb:d4/d4/7f",
-    "rgb:d4/d4/aa",
-    "rgb:d4/d4/d4",
+    "rgbi:0/0/0",               /* default 16-255 color table     */
+    "rgbi:0/0/.2",              /* consists of 6 6x6 colour cubes */
+    "rgbi:0/0/.4",              /* and a 24 greyscale ramp w/o    */
+    "rgbi:0/0/.6",              /* black or white                 */
+    "rgbi:0/0/.8",
+    "rgbi:0/0/1",
+    "rgbi:0/.2/0",
+    "rgbi:0/.2/.2",
+    "rgbi:0/.2/.4",
+    "rgbi:0/.2/.6",
+    "rgbi:0/.2/.8",
+    "rgbi:0/.2/1",
+    "rgbi:0/.4/0",
+    "rgbi:0/.4/.2",
+    "rgbi:0/.4/.4",
+    "rgbi:0/.4/.6",
+    "rgbi:0/.4/.8",
+    "rgbi:0/.4/1",
+    "rgbi:0/.6/0",
+    "rgbi:0/.6/.2",
+    "rgbi:0/.6/.4",
+    "rgbi:0/.6/.6",
+    "rgbi:0/.6/.8",
+    "rgbi:0/.6/1",
+    "rgbi:0/.8/0",
+    "rgbi:0/.8/.2",
+    "rgbi:0/.8/.4",
+    "rgbi:0/.8/.6",
+    "rgbi:0/.8/.8",
+    "rgbi:0/.8/1",
+    "rgbi:0/1/0",
+    "rgbi:0/1/.2",
+    "rgbi:0/1/.4",
+    "rgbi:0/1/.6",
+    "rgbi:0/1/.8",
+    "rgbi:0/1/1",
+    "rgbi:.2/0/0",
+    "rgbi:.2/0/.2",
+    "rgbi:.2/0/.4",
+    "rgbi:.2/0/.6",
+    "rgbi:.2/0/.8",
+    "rgbi:.2/0/1",
+    "rgbi:.2/.2/0",
+    "rgbi:.2/.2/.2",
+    "rgbi:.2/.2/.4",
+    "rgbi:.2/.2/.6",
+    "rgbi:.2/.2/.8",
+    "rgbi:.2/.2/1",
+    "rgbi:.2/.4/0",
+    "rgbi:.2/.4/.2",
+    "rgbi:.2/.4/.4",
+    "rgbi:.2/.4/.6",
+    "rgbi:.2/.4/.8",
+    "rgbi:.2/.4/1",
+    "rgbi:.2/.6/0",
+    "rgbi:.2/.6/.2",
+    "rgbi:.2/.6/.4",
+    "rgbi:.2/.6/.6",
+    "rgbi:.2/.6/.8",
+    "rgbi:.2/.6/1",
+    "rgbi:.2/.8/0",
+    "rgbi:.2/.8/.2",
+    "rgbi:.2/.8/.4",
+    "rgbi:.2/.8/.6",
+    "rgbi:.2/.8/.8",
+    "rgbi:.2/.8/1",
+    "rgbi:.2/1/0",
+    "rgbi:.2/1/.2",
+    "rgbi:.2/1/.4",
+    "rgbi:.2/1/.6",
+    "rgbi:.2/1/.8",
+    "rgbi:.2/1/1",
+    "rgbi:.4/0/0",
+    "rgbi:.4/0/.2",
+    "rgbi:.4/0/.4",
+    "rgbi:.4/0/.6",
+    "rgbi:.4/0/.8",
+    "rgbi:.4/0/1",
+    "rgbi:.4/.2/0",
+    "rgbi:.4/.2/.2",
+    "rgbi:.4/.2/.4",
+    "rgbi:.4/.2/.6",
+    "rgbi:.4/.2/.8",
+    "rgbi:.4/.2/1",
+    "rgbi:.4/.4/0",
+    "rgbi:.4/.4/.2",
+    "rgbi:.4/.4/.4",
+    "rgbi:.4/.4/.6",
+    "rgbi:.4/.4/.8",
+    "rgbi:.4/.4/1",
+    "rgbi:.4/.6/0",
+    "rgbi:.4/.6/.2",
+    "rgbi:.4/.6/.4",
+    "rgbi:.4/.6/.6",
+    "rgbi:.4/.6/.8",
+    "rgbi:.4/.6/1",
+    "rgbi:.4/.8/0",
+    "rgbi:.4/.8/.2",
+    "rgbi:.4/.8/.4",
+    "rgbi:.4/.8/.6",
+    "rgbi:.4/.8/.8",
+    "rgbi:.4/.8/1",
+    "rgbi:.4/1/0",
+    "rgbi:.4/1/.2",
+    "rgbi:.4/1/.4",
+    "rgbi:.4/1/.6",
+    "rgbi:.4/1/.8",
+    "rgbi:.4/1/1",
+    "rgbi:.6/0/0",
+    "rgbi:.6/0/.2",
+    "rgbi:.6/0/.4",
+    "rgbi:.6/0/.6",
+    "rgbi:.6/0/.8",
+    "rgbi:.6/0/1",
+    "rgbi:.6/.2/0",
+    "rgbi:.6/.2/.2",
+    "rgbi:.6/.2/.4",
+    "rgbi:.6/.2/.6",
+    "rgbi:.6/.2/.8",
+    "rgbi:.6/.2/1",
+    "rgbi:.6/.4/0",
+    "rgbi:.6/.4/.2",
+    "rgbi:.6/.4/.4",
+    "rgbi:.6/.4/.6",
+    "rgbi:.6/.4/.8",
+    "rgbi:.6/.4/1",
+    "rgbi:.6/.6/0",
+    "rgbi:.6/.6/.2",
+    "rgbi:.6/.6/.4",
+    "rgbi:.6/.6/.6",
+    "rgbi:.6/.6/.8",
+    "rgbi:.6/.6/1",
+    "rgbi:.6/.8/0",
+    "rgbi:.6/.8/.2",
+    "rgbi:.6/.8/.4",
+    "rgbi:.6/.8/.6",
+    "rgbi:.6/.8/.8",
+    "rgbi:.6/.8/1",
+    "rgbi:.6/1/0",
+    "rgbi:.6/1/.2",
+    "rgbi:.6/1/.4",
+    "rgbi:.6/1/.6",
+    "rgbi:.6/1/.8",
+    "rgbi:.6/1/1",
+    "rgbi:.8/0/0",
+    "rgbi:.8/0/.2",
+    "rgbi:.8/0/.4",
+    "rgbi:.8/0/.6",
+    "rgbi:.8/0/.8",
+    "rgbi:.8/0/1",
+    "rgbi:.8/.2/0",
+    "rgbi:.8/.2/.2",
+    "rgbi:.8/.2/.4",
+    "rgbi:.8/.2/.6",
+    "rgbi:.8/.2/.8",
+    "rgbi:.8/.2/1",
+    "rgbi:.8/.4/0",
+    "rgbi:.8/.4/.2",
+    "rgbi:.8/.4/.4",
+    "rgbi:.8/.4/.6",
+    "rgbi:.8/.4/.8",
+    "rgbi:.8/.4/1",
+    "rgbi:.8/.6/0",
+    "rgbi:.8/.6/.2",
+    "rgbi:.8/.6/.4",
+    "rgbi:.8/.6/.6",
+    "rgbi:.8/.6/.8",
+    "rgbi:.8/.6/1",
+    "rgbi:.8/.8/0",
+    "rgbi:.8/.8/.2",
+    "rgbi:.8/.8/.4",
+    "rgbi:.8/.8/.6",
+    "rgbi:.8/.8/.8",
+    "rgbi:.8/.8/1",
+    "rgbi:.8/1/0",
+    "rgbi:.8/1/.2",
+    "rgbi:.8/1/.4",
+    "rgbi:.8/1/.6",
+    "rgbi:.8/1/.8",
+    "rgbi:.8/1/1",
+    "rgbi:1/0/0",
+    "rgbi:1/0/.2",
+    "rgbi:1/0/.4",
+    "rgbi:1/0/.6",
+    "rgbi:1/0/.8",
+    "rgbi:1/0/1",
+    "rgbi:1/.2/0",
+    "rgbi:1/.2/.2",
+    "rgbi:1/.2/.4",
+    "rgbi:1/.2/.6",
+    "rgbi:1/.2/.8",
+    "rgbi:1/.2/1",
+    "rgbi:1/.4/0",
+    "rgbi:1/.4/.2",
+    "rgbi:1/.4/.4",
+    "rgbi:1/.4/.6",
+    "rgbi:1/.4/.8",
+    "rgbi:1/.4/1",
+    "rgbi:1/.6/0",
+    "rgbi:1/.6/.2",
+    "rgbi:1/.6/.4",
+    "rgbi:1/.6/.6",
+    "rgbi:1/.6/.8",
+    "rgbi:1/.6/1",
+    "rgbi:1/.8/0",
+    "rgbi:1/.8/.2",
+    "rgbi:1/.8/.4",
+    "rgbi:1/.8/.6",
+    "rgbi:1/.8/.8",
+    "rgbi:1/.8/1",
+    "rgbi:1/1/0",
+    "rgbi:1/1/.2",
+    "rgbi:1/1/.4",
+    "rgbi:1/1/.6",
+    "rgbi:1/1/.8",
+    "rgbi:1/1/1",
     "rgb:08/08/08",
     "rgb:12/12/12",
     "rgb:1c/1c/1c",
@@ -870,8 +870,7 @@ rxvt_term::init_command (const char *const *argv)
     (void)gettimeofday (&lastcursorchange, NULL);
 #endif
 
-  if ((cmd_fd = run_command (argv)) < 0)
-    rxvt_fatal ("failure while running command, aborting");
+  run_command (argv);
 }
 
 /*----------------------------------------------------------------------*/
@@ -1328,16 +1327,16 @@ rxvt_term::create_windows (int argc, const char *const *argv)
  * master end of the pseudo-teletype pair with the command talking to
  * the slave.
  */
-int
+void
 rxvt_term::run_command (const char *const *argv)
 {
-  int cfd, er;
+  int er;
 
   /* get master (pty) */
-  if ((cfd = rxvt_get_pty (& (tty_fd), & (ttydev))) < 0)
+  if ((cmd_fd = rxvt_get_pty (&tty_fd, &ttydev)) < 0)
     rxvt_fatal ("can't open pseudo-tty");
 
-  fcntl (cfd, F_SETFL, O_NONBLOCK);
+  fcntl (cmd_fd, F_SETFL, O_NONBLOCK);
 
   /* get slave (tty) */
   if (tty_fd < 0)
@@ -1348,7 +1347,8 @@ rxvt_term::run_command (const char *const *argv)
 
       if ((tty_fd = rxvt_get_tty (ttydev)) < 0)
         {
-          close (cfd);
+          close (cmd_fd);
+          cmd_fd = -1;
           rxvt_fatal ("can't open slave tty %s", ttydev);
         }
     }
@@ -1371,8 +1371,6 @@ rxvt_term::run_command (const char *const *argv)
       case -1:
         rxvt_fatal ("can't fork");
       case 0:
-        close (cfd);             /* only keep tty_fd and STDERR open */
-
         init_env ();
 
         if (rxvt_control_tty (tty_fd, ttydev) < 0)
@@ -1384,8 +1382,12 @@ rxvt_term::run_command (const char *const *argv)
             dup2 (tty_fd, STDOUT_FILENO);
             dup2 (tty_fd, STDERR_FILENO);
 
-            if (tty_fd > 2)
-              close (tty_fd);
+            // close all our file handles that we do no longer need
+            for (rxvt_term **t = termlist.begin (); t < termlist.end (); t++)
+              {
+                if ((*t)->cmd_fd > 2) close ((*t)->cmd_fd);
+                if ((*t)->tty_fd > 2) close ((*t)->tty_fd);
+              }
 
             run_child (argv);
             fprintf (stderr, "%s: unable to exec child.", RESNAME);
@@ -1419,13 +1421,11 @@ rxvt_term::run_command (const char *const *argv)
 #else                           /* __QNX__ uses qnxspawn () */
   fchmod (tty_fd, 0622);
   fcntl (tty_fd, F_SETFD, FD_CLOEXEC);
-  fcntl (cfd, F_SETFD, FD_CLOEXEC);
+  fcntl (cmd_fd, F_SETFD, FD_CLOEXEC);
 
   if (run_child (argv) == -1)
     exit (EXIT_FAILURE);
 #endif
-
-  return cfd;
 }
 
 /* ------------------------------------------------------------------------- *