⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpm.screen.diff

📁 gpm-1.20.0.tar.gz
💻 DIFF
字号:
diff -rcw gpm-1.19.3.orig/liblow.c gpm-1.19.3/liblow.c*** gpm-1.19.3.orig/liblow.c	Tue Jul 18 14:06:06 2000--- gpm-1.19.3/liblow.c	Thu Nov 30 21:18:14 2000****************** 77,83 ****  unsigned char    _gpm_buf[6*sizeof(short)];  unsigned short * _gpm_arg = (unsigned short *)_gpm_buf +1;  ! int gpm_consolefd=-1;  /* used to invoke ioctl() */  int gpm_morekeys=0;  /*-------------------------------------------------------------------*/  static inline int putdata(int where,  Gpm_Connect *what)--- 77,84 ----  unsigned char    _gpm_buf[6*sizeof(short)];  unsigned short * _gpm_arg = (unsigned short *)_gpm_buf +1;  ! enum { GPM_FD_INVALID = -1, GPM_FD_SCREEN = -2 };! int gpm_consolefd = GPM_FD_INVALID;  /* used to invoke ioctl() */  int gpm_morekeys=0;  /*-------------------------------------------------------------------*/  static inline int putdata(int where,  Gpm_Connect *what)****************** 114,120 ****        SIG_DFL != gpm_saved_winch_hook.sa_handler) {      gpm_saved_winch_hook.sa_handler(signum);    } /*if*/!   if (ioctl(gpm_consolefd, TIOCGWINSZ, &win) == -1) {      return;    } /*if*/    if (!win.ws_col || !win.ws_row) {--- 115,128 ----        SIG_DFL != gpm_saved_winch_hook.sa_handler) {      gpm_saved_winch_hook.sa_handler(signum);    } /*if*/!   if (GPM_FD_SCREEN == gpm_consolefd) {!     /* TODO: */!     win.ws_col = 80;!     win.ws_row = 25;!   } else if (gpm_consolefd <= 0)!       /* safety check */!       return;!   else if (ioctl(gpm_consolefd, TIOCGWINSZ, &win) == -1) {      return;    } /*if*/    if (!win.ws_col || !win.ws_row) {****************** 177,183 ****  /*-------------------------------------------------------------------*/  int Gpm_Open(Gpm_Connect *conn, int flag)  {!   char tty[32];    char *term;    int i;    struct sockaddr_un addr;--- 185,191 ----  /*-------------------------------------------------------------------*/  int Gpm_Open(Gpm_Connect *conn, int flag)  {!   char tty[64];    char *term;    int i;    struct sockaddr_un addr;****************** 236,248 ****            if (!t) goto err;            strcpy(tty,t);            if (strncmp(tty,"/dev/tty",8) || !isdigit(tty[8]))              goto err;            conn->vc=atoi(tty+8);          }        else /* a default handler -- use console */          sprintf(tty,"/dev/tty0");  !       if (gpm_consolefd==-1)          if ((gpm_consolefd=open(tty,O_WRONLY))<0)            {              gpm_debug_log(LOG_ERR,"%s: %s",tty,strerror(errno));--- 244,283 ----            if (!t) goto err;            strcpy(tty,t);            if (strncmp(tty,"/dev/tty",8) || !isdigit(tty[8]))+             {+               char* sty = getenv("STY");+               /* as set by SCREEN, e.g+                * STY=417.tty1.kristine+                *                 ^hostname+                */+               if (sty)+                 {+                   /* STY is set. Check, if it has a valid form */+                   int n, vc;+                   if (strlen(sty) >= sizeof tty+                       || 3 != sscanf(sty, "%d.tty%d.%s", &n, &vc, tty))+                     goto err;+                   else+                     {+                       /* we're inside a SCREEN session. Don't connect to+                        * the tty as below. TODO: how can we get lines+                        * and columns from SCREEN ? */+                       gpm_consolefd = GPM_FD_SCREEN;+                       conn->vc = vc;+                       win.ws_col = 80;+                       win.ws_row = 25;+                     }+                 }+               else                   goto err;+             }+           else              conn->vc=atoi(tty+8);          }        else /* a default handler -- use console */          sprintf(tty,"/dev/tty0");  !       if (gpm_consolefd == GPM_FD_INVALID) /* NOT called for SCREEN */          if ((gpm_consolefd=open(tty,O_WRONLY))<0)            {              gpm_debug_log(LOG_ERR,"%s: %s",tty,strerror(errno));****************** 254,259 ****--- 289,295 ----      /*....................................... Get screen dimensions */  +   if (gpm_consolefd != GPM_FD_SCREEN) /* NOT called for SCREEN */      ioctl(gpm_consolefd, TIOCGWINSZ, &win);      if (!win.ws_col || !win.ws_row)****************** 395,401 ****    sigaction(SIGWINCH, &gpm_saved_winch_hook, 0);  #endif    close(gpm_consolefd);!   gpm_consolefd=-1;    return 0;  }  --- 431,437 ----    sigaction(SIGWINCH, &gpm_saved_winch_hook, 0);  #endif    close(gpm_consolefd);!   gpm_consolefd = GPM_FD_INVALID;    return 0;  }  diff -rcw gpm-1.19.3.orig/special.c gpm-1.19.3/special.c*** gpm-1.19.3.orig/special.c	Mon Jan 17 22:34:00 2000--- gpm-1.19.3/special.c	Thu Nov 30 19:09:42 2000****************** 26,31 ****--- 26,32 ----    /* This file is compiled conditionally, see the Makefile */  + #include <linux/limits.h> /* OPEN_MAX */  #include <stdio.h>  #include <stdlib.h>  #include <string.h>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -