UNIX98-pty, czyli nie tylko pró¿ne s³owa

Marcin Dalecki dalecki w cs.net.pl
Wto, 16 Lut 1999, 20:55:04 CET


Dobry Wieczór!

A oto pierwsza z zapowiedzianych cerat.

W tym wypadku dla kvt. Powinna ona byæ równie¿ stosown± dla rxvt.
Tak wiêc proszê uprzejmie odpowiedzialnych za dane pakunki o
jej zastosowanie. W³a¶nie lecê na odpowiednim kvt z t± ³at±
zastosowan± B-). Nie mam jeszcze pe³nej odbitki CVS-a z Gdañska
pod rêk±, wiêc nie jestem jeszcze w stanie samemu jej zastosowaæ.
Zreszt±, ja raczej jestem od kodowania 8-).

Proszê równie¿ odpowiednio dostosowaæ szkielet /dev i /etc/fstab
oraz przed zastosowaniem tej ³aty przeprowadziæ odpowiednie modyfikacje
samemu. Jest to dok³adnie opisane w
/usr/src/linux/Documentation/Changes.

A, jeszcze drobnostka proszê. Je¶li kto¶ mo¿e, to proszê pod¿ucic mi
aktualnie w PLD sotsowane wersje screen i telnetd, wówczas w
nagrodê zostan± podobnie potraktowane jak kvt. Mo¿e byæ ¶mia³o jako
attachment, bo ³±cza ftp to kraju s± raczej kiepskie i taniej mi wyjdzie
przez skrzynkê pocztow±. (Sorry, ale tak po prostu niestety jest.)

A teraz zabieram siê do klasyka, czyli: xterm-a...

Nie wiem te¿ dok³adnie co z Zvt, albowiem narazie jeszcze
preferujê stanowczo KDE. Je¶li wiêc kto¶ by³by na tyle uprzejmy pod¿uciæ
mi
równie¿ i to (oczywi¶cie nie ca³y odpowiedni pakiet z gnoma!), 
wówczas móg³bym postaraæ siê wprowadziæ odpowiednie
zmiany "w ciemno". Zreszt± jak widaæ z ³aty dla kvt nie jest to ¿adn±
filozofi± przeprowadziæ odpowiednie zmiany równie¿ i tam. Zachêcam wiêc
do przeprowadzenia tego samemu!

--Marcin
-------------- nastêpna czê¶æ ---------
diff -ur kdebase-1.1/kvt/command.c kdebase-1.1-new/kvt/command.c
--- kdebase-1.1/kvt/command.c	Thu Jan 28 00:30:17 1999
+++ kdebase-1.1-new/kvt/command.c	Tue Feb 16 20:21:48 1999
@@ -53,6 +53,17 @@
 #define SVR4
 #endif
 
+/* Tue Feb 16 20:18:08 CET 1999  Marcin Dalecki <dalecki w cs.net.pl>:
+ *
+ * Modern linux systems (glibc-2.1, kernel >= 2.2.0) have support for
+ * /dev/ptmx cloning device.  However, since there seems to be no way for
+ * propperly checking it, we are assuming humble, that the corresonding support
+ * had been enabled in the kernel configuration in charge. 
+ */
+#ifdef __linux__
+#define SVR4		1
+#define __USE_XOPEN 	1
+#endif
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
@@ -228,7 +239,7 @@
 #undef CTRL
 #define CTRL(c) ((c) - '@')
 
-#ifdef SVR4
+#if defined(SVR4) && !defined(__linux__)
 #define CINTR 0177
 #define CQUIT CTRL('U')
 #define CERASE CTRL('H')
@@ -328,14 +339,17 @@
  int run_command(unsigned char *command,unsigned char **argv)
 {
   int ptyfd;
-  int uid, gid;
+  int uid;
+#ifndef SVR4
+  int gid;
   unsigned char *s3, *s4;
+#endif
   int i;
   int width, height;
 #ifndef SVR4
   static char ptyc3[] = "pqrstuvwxyz";
   static char ptyc4[] = "0123456789abcdef";
- #endif
+#endif
 
   /*  First find a master pty that we can open.  
    */
@@ -379,7 +393,7 @@
       return(-1);
     }
   fcntl(ptyfd,F_SETFL,O_NDELAY);
-#endif  
+#endif
   for (i = 1; i <= 15; i++)
     signal(i,catch_sig);
   signal(SIGCHLD,catch_child);
@@ -388,15 +402,17 @@
   makeutent(&ttynam[5]);	/* stamp /etc/utmp */  
 
   comm_pid = fork();
-  if (comm_pid < 0) 
+  if (comm_pid < 0)
     {
       error("Can't fork");
       return(-1);
     }
-  if (comm_pid == 0) 
+  if (comm_pid == 0)
     {
+#ifndef SVR4
       struct group *gr;
-      
+#endif
+
       if ((ttyfd = open(ttynam,O_RDWR)) < 0) 
 	{
 	  error("could not open slave tty %s",ttynam);


Więcej informacji o liście dyskusyjnej pld-devel-pl