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

📄 clock.diff

📁 gpm-1.20.0.tar.gz
💻 DIFF
字号:
diff -ru gpm-1.19.6/src/gpm.c gpm-1.19.6+clock/src/gpm.c--- gpm-1.19.6/src/gpm.c	Mon Oct  1 22:02:25 2001+++ gpm-1.19.6+clock/src/gpm.c	Mon Oct 29 13:00:33 2001@@ -31,6 +31,7 @@ #include <sys/fcntl.h>     /* O_RDONLY */ #include <sys/wait.h>      /* wait()   */ #include <sys/stat.h>      /* mkdir()  */+#include <time.h>          /* time()   */ #include <sys/time.h>      /* timeval */ #include <sys/types.h>     /* socket() */ #include <sys/socket.h>    /* socket() */@@ -82,6 +83,7 @@ int opt_aged = 0; char *opt_special=NULL; /* special commands, like reboot or such */ int opt_rawrep=0;+int opt_clock = 0; Gpm_Type *repeated_type=0;  /* devfs */@@ -93,6 +95,7 @@ struct winsize win; int maxx, maxy; int fifofd=-1;+static int clock_printed = -1;  int eventFlag=0; Gpm_Cinfo *cinfo[MAX_VC+1];@@ -240,6 +243,52 @@   close(fd); } +#define CLOCK_FMT "%02d:%02d"+#define CLOCK_LEN 5+#define POSITION (4 + 2 * (0 * 80 + (maxx - CLOCK_LEN - 1)))++static void display_clock(int restore)+{+    int fd;+    static char save[CLOCK_LEN * 2];++    if ((fd = open("/dev/vcc/a", O_RDWR)) < 1) {+	if (errno != ENOENT)+	    oops("open(\"/dev/vcc/a\")");+	if ((fd = open("/dev/vcsa", O_RDWR)) < 1)+	    oops("open(\"/dev/vcsa\")");+    }+    if (restore == 2) {			/* restore the old characters */+	lseek(fd, POSITION, 0);+	write(fd, &save, sizeof(save));+    } else {				/* print the clock */+	char buf[CLOCK_LEN * 2], buf0[CLOCK_LEN];+	time_t t;+	struct tm *tm;+	int i, j;++	if (restore == 0) {		/* save the old characters for later */+	    lseek(fd, POSITION, 0);+	    read(fd, &save, sizeof(save));+	}+	t = time(NULL);+	tm = localtime(&t);+	sprintf(buf0, CLOCK_FMT, tm->tm_hour, tm->tm_min);+	i = j = 0;+	while (i <= sizeof(buf0)) {	/* add the color attribute */+	    buf[j++] = buf0[i++];+	    buf[j++] = '\032';		/* green on blue */+	}+	lseek(fd, POSITION, 0);+	write(fd, &buf, sizeof(buf));+    }+    close(fd);+}++#undef POSITION+#undef CLOCK_FMT+#undef CLOCK_LEN+ /*-------------------------------------------------------------------*/ static  inline int do_selection(Gpm_Event *event)  /* returns 0, always */ {@@ -252,6 +301,16 @@     case GPM_MOVE:       if (x2<1) x2++; else if (x2>maxx) x2--;       if (y2<1) y2++; else if (y2>maxy) y2--;+      if (opt_clock && x2 == maxx && y2 == 1 && (clock_printed < 0 || clock_printed == event->vc)) {+        selection_copy(x2,y2,x2,y2,3);  /* move pointer before saving content+					   of the screen, so we don't get+					   pollution after clock hiding */+	display_clock(clock_printed);	/* print the clock */+	clock_printed = event->vc;+      } else if (clock_printed == event->vc) {+	display_clock(2);		/* restore the screen */+	clock_printed = -1;+      }       selection_copy(x2,y2,x2,y2,3); /* just highlight pointer */       return 0; diff -ru gpm-1.19.6/src/gpn.c gpm-1.19.6+clock/src/gpn.c--- gpm-1.19.6/src/gpn.c	Sun Sep 23 21:00:03 2001+++ gpm-1.19.6+clock/src/gpn.c	Mon Oct 29 12:34:42 2001@@ -155,6 +155,7 @@          "    -A [limit]       start with selection disabled (`aged')\n"          "    -b baud-rate     sets the baud rate (default %d)\n"          "    -B sequence      allows changing the buttons (default '%s')\n"+         "    -c               enable clock printing\n"          "    -d delta         sets the delta value (default %d) (must be 2 or more)\n"          "    -D	       debug mode: don't auto-background\n"          "    -g tap-button    sets the button (1-3) that is emulated by tapping on\n"@@ -290,7 +291,7 @@ int  cmdline(int argc, char **argv) {-  char options[]="a:A::b:B:d:Dg:hi:kl:m:Mo:pr:R::s:S:t:TvV::23";+  char options[]="a:A::b:B:cd:Dg:hi:kl:m:Mo:pr:R::s:S:t:TvV::23";   int i, opt;   static struct {char *in; char *out;} seq[] = {     {"123","01234567"},@@ -321,6 +322,7 @@           break;         case 'b': opt_baud = atoi(optarg); break;         case 'B': opt_sequence = optarg; break;+        case 'c': opt_clock = 1; break;         case 'd': opt_delta = atoi(optarg); break;         case 'D': gpm_log_daemon = 0; break;         case 'g':diff -ru gpm-1.19.6/src/headers/gpmInt.h gpm-1.19.6+clock/src/headers/gpmInt.h--- gpm-1.19.6/src/headers/gpmInt.h	Thu Sep 27 14:52:30 2001+++ gpm-1.19.6+clock/src/headers/gpmInt.h	Mon Oct 29 12:34:42 2001@@ -128,6 +128,7 @@ extern time_t opt_age_limit; extern char *opt_special; extern int opt_rawrep;+extern int opt_clock; extern int fifofd; extern char *consolename; diff -ru gpm-1.19.6/src/gpm.c gpm-1.19.6+clockfix/src/gpm.c--- gpm-1.19.6/src/gpm.c	Tue Oct 30 13:06:40 2001+++ gpm-1.19.6+clockfix/src/gpm.c	Tue Oct 30 13:03:46 2001@@ -258,7 +258,7 @@ 	if ((fd = open("/dev/vcsa", O_RDWR)) < 1) 	    oops("open(\"/dev/vcsa\")");     }-    if (restore == 2) {			/* restore the old characters */+    if (restore == -2) {		/* restore the old characters */ 	lseek(fd, POSITION, 0); 	write(fd, &save, sizeof(save));     } else {				/* print the clock */@@ -267,10 +267,12 @@ 	struct tm *tm; 	int i, j; -	if (restore == 0) {		/* save the old characters for later */+	/* save the old characters for later */+	if (restore == -1) { 	    lseek(fd, POSITION, 0); 	    read(fd, &save, sizeof(save));-	}+        }+	 	t = time(NULL); 	tm = localtime(&t); 	sprintf(buf0, CLOCK_FMT, tm->tm_hour, tm->tm_min);@@ -308,7 +310,7 @@ 	display_clock(clock_printed);	/* print the clock */ 	clock_printed = event->vc;       } else if (clock_printed == event->vc) {-	display_clock(2);		/* restore the screen */+	display_clock(-2);		/* restore the screen */ 	clock_printed = -1;       }       selection_copy(x2,y2,x2,y2,3); /* just highlight pointer */

⌨️ 快捷键说明

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