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