andreas_mohr_1

来自「gpm-1.20.0.tar.gz」· 代码 · 共 344 行

TXT
344
字号
diff -urN gpm-1.19.6/Makefile.in gpm-1.19.6.new/Makefile.in--- gpm-1.19.6/Makefile.in	Wed Oct  3 23:17:45 2001+++ gpm-1.19.6.new/Makefile.in	Sat Feb  9 00:49:14 2002@@ -66,7 +66,7 @@ # Configure & unconfigure  distclean:	clean do-distclean-	rm -f config.log config.status config.cache Makefile TAGS+	rm -f config.log config.status config.cache Makefile Makefile.include TAGS   # Maintainer portion, use at your own riskdiff -urN gpm-1.19.6/README gpm-1.19.6.new/README--- gpm-1.19.6/README	Tue Oct  2 16:33:55 2001+++ gpm-1.19.6.new/README	Thu Feb  7 19:15:44 2002@@ -21,7 +21,7 @@ distributions and the Jed editor use gpm as well, and the same do several custom applications. -There are still some new feautures to add (f.i. clean devfs support).+There are still some new features to add (f.i. clean devfs support). Some of gpm's code needs a cleanup.  For additionally documentation and other READMEs have a look into doc/.@@ -74,11 +74,11 @@ files (detected during the "configure" step); info files are installed under $(prefix)/info. -If any error occur, please report them to me. Something like this+If any errors occur, please report them to me. Something like this could be an easy (though brutal) way to do it:  make clean; (uname -a; make) |& mail -s "gpm compile err." nicos@pcsystems.de -What remains to do after installation  is a little configuration+What remains to do after installation is a little configuration  =========== CONFIGURING @@ -128,7 +128,7 @@ The directory "./doc" holds the documentation. The release embeds a postscript file, slightly reduced to save paper (doc/gpm2.ps), an info one (doc/gpm.info) and a text-only version (doc/gpmdoc.txt -- but-without table of contents, by now).  Man pages are automatically+without table of contents, for now).  Man pages are automatically extracted from the info file, and are installed with "make install"  =========== BUG REPORTS@@ -275,7 +275,7 @@ 		t-mouse: yet another regexp possibility  Ian Zimmerman is now actively cooperating in maintaining gpm, so-he'll no longer appear in the acknoledgements ;-)+he'll no longer appear in the acknowledgements ;-)  David Given (dg@tao.co.uk) 		Offered support for joystick mouse emulation (1.14)diff -urN gpm-1.19.6/doc/Makefile.in gpm-1.19.6.new/doc/Makefile.in--- gpm-1.19.6/doc/Makefile.in	Wed Oct  3 22:51:46 2001+++ gpm-1.19.6.new/doc/Makefile.in	Sat Feb  9 00:51:41 2002@@ -79,7 +79,7 @@   clean:-	rm -f gpmdoc.ps gpm.info gpmdoc.txt $(MANPAGES) *~ +	rm -f gpmdoc.ps gpm.info gpmdoc.txt doc.gpm $(MANPAGES) *~  	rm -f gpm.?? gpm.??? 	rm -f gpm.texinfo diff -urN gpm-1.19.6/doc/doc.gpm.in gpm-1.19.6.new/doc/doc.gpm.in--- gpm-1.19.6/doc/doc.gpm.in	Wed Oct  3 23:35:54 2001+++ gpm-1.19.6.new/doc/doc.gpm.in	Sat Feb  9 00:54:55 2002@@ -86,7 +86,7 @@ @subtitle A general purpose mouse server for the Linux console @subtitle @value{update-month} -@author by Nico Schottelius <nico@schottelius.org>+@author by Nico Schottelius <nico@@schottelius.org>  @end titlepage @setchapternewpage offdiff -urN gpm-1.19.6/doc/manpager gpm-1.19.6.new/doc/manpager--- gpm-1.19.6/doc/manpager	Sun Sep 23 21:00:03 2001+++ gpm-1.19.6.new/doc/manpager	Thu Feb  7 20:25:05 2002@@ -37,12 +37,12 @@ }   /@xref\{.*\}\./ {-  gsub(/@xref\{.*\}\./,"");+  gsub(/@xref{.*}\./,""); }  /@ref\{.*\}/ {-  gsub("@ref\{","");-  gsub("\}","");+  gsub("@ref{","");+  gsub("}",""); }  /@\*/ {diff -urN gpm-1.19.6/doc/mktxt gpm-1.19.6.new/doc/mktxt--- gpm-1.19.6/doc/mktxt	Sun Sep 23 21:00:03 2001+++ gpm-1.19.6.new/doc/mktxt	Thu Feb  7 20:22:46 2002@@ -29,7 +29,7 @@ NODELINE==5  { printf "\t\t\t\t"; NODELINE=0}  -/^* Menu:$/  { KEEP=0 }+/^.* Menu:$/  { KEEP=0 }   diff -urN gpm-1.19.6/src/Makefile.in gpm-1.19.6.new/src/Makefile.in--- gpm-1.19.6/src/Makefile.in	Tue Oct  2 16:26:25 2001+++ gpm-1.19.6.new/src/Makefile.in	Sat Feb  9 01:02:15 2002@@ -113,9 +113,10 @@ 	$(sbindir)/gpm $(libdir)/libgpm.a $(libdir)/libgpm.so $(includedir)/gpm.h   clean:-	rm -f gpm $(PROG) libgpm.a libgpm.so.@abi_full@ $(RDEPS) core *~+	rm -f gpm $(PROG) libgpm.a libgpm.so.@abi_full@ $(RDEPS) gpm-root.c core *~ 	rm -f *.elc TAGS 	rm -f $(GOBJ) $(LOBJ) $(POBJ) $(PICS)+	rm -r .depend  # Configure & unconfigure diff -urN gpm-1.19.6/src/gpm.c gpm-1.19.6.new/src/gpm.c--- gpm-1.19.6/src/gpm.c	Mon Oct  1 22:02:25 2001+++ gpm-1.19.6.new/src/gpm.c	Sat Feb  9 00:07:35 2002@@ -333,6 +333,8 @@ /*-------------------------------------------------------------------*/ /*-------------------------------------------------------------------*/ /*-------------------------------------------------------------------*/+/* fetch the actual device data from the mouse device, dependent on+ * what Gpm_Type is being passed. */ static inline char *getMouseData(int fd, Gpm_Type *type, int kd_mode) {   static unsigned char data[32]; /* quite a big margin :) */@@ -401,6 +403,9 @@ void get_console_size(Gpm_Event *ePtr);  /*-------------------------------------------------------------------*/+/* call getMouseData to get hardware device data, call mouse device's fun()+ * to retrieve the hardware independent event data, then optionally repeat+ * the data via repeat_fun() to the repeater device */ static inline int processMouse(int fd, Gpm_Event *event, Gpm_Type *type, 			       int kd_mode) {@@ -498,7 +503,7 @@     if (fifofd != -1 && ! opt_rawrep)       {         if (m_type->absolute) /* hof Wed Feb  3 21:43:28 MET 1999 */ -          { /*prepare the values from a absolute device for repeatermode */+          { /* prepare the values from an absolute device for repeater mode */              static struct timeval rept1,rept2;              gettimeofday(&rept2, (struct timezone *)NULL);              if (((rept2.tv_sec -rept1.tv_sec) *1000+(rept2.tv_usec-rept1.tv_usec)/1000)>250) @@ -1128,7 +1133,7 @@     } /*....................................... got mouse, process event */ /*- * Well, actually, run a loop to mantain inlining of functions without+ * Well, actually, run a loop to maintain inlining of functions without  * lenghtening the file. This is not too clean a code, but it works....  */ diff -urN gpm-1.19.6/src/gpn.c gpm-1.19.6.new/src/gpn.c--- gpm-1.19.6/src/gpn.c	Sun Sep 23 21:00:03 2001+++ gpm-1.19.6.new/src/gpn.c	Sat Feb  9 01:07:08 2002@@ -184,13 +184,13 @@   return 1; } -/* itz Sat Sep 12 10:55:51 PDT 1998 Added this is replacement for the+/* itz Sat Sep 12 10:55:51 PDT 1998 Added this as replacement for the    unwanted functionality in check_uniqueness. */  static void check_kill(void) {-  int old_pid;+  int old_pid, stale = 0;   FILE* fp = fopen(GPM_NODE_PID, "r");    if (0 == fp) {@@ -201,14 +201,19 @@     } /*if*/   } /*if*/   -  if (1 != fscanf(fp,"%d",&old_pid)) {-    oops(GPM_NODE_PID);-  } /*if*/+  if (1 != fscanf(fp,"%d",&old_pid))+      stale = 1; /* file can't be parsed properly */+   fclose(fp); -  if (-1 == kill(old_pid,0)) {+  if (-1 == kill(old_pid,0))+      stale = 1; /* kill() didn't work on this pid - wrong pid */++  if (stale)+  {     gpm_debug_log(LOG_NOTICE, "Removing stale pid file %s", GPM_NODE_PID);     unlink(GPM_NODE_PID);+    exit(0);   } /*if*/    if (opt_kill) {diff -urN gpm-1.19.6/src/headers/gpmInt.h gpm-1.19.6.new/src/headers/gpmInt.h--- gpm-1.19.6/src/headers/gpmInt.h	Thu Sep 27 14:52:30 2001+++ gpm-1.19.6.new/src/headers/gpmInt.h	Thu Feb  7 21:46:50 2002@@ -62,7 +62,7 @@   unsigned short flags;   unsigned char proto[4];   int packetlen;-  int howmany;            /* howmany bytes to read at a time */+  int howmany;            /* how many bytes to read at a time */   int getextra;           /* does it get an extra byte? (only mouseman) */   int absolute;           /* flag indicating absolute pointing device */ diff -urN gpm-1.19.6/src/mice.c gpm-1.19.6.new/src/mice.c--- gpm-1.19.6/src/mice.c	Thu Sep 27 14:50:29 2001+++ gpm-1.19.6.new/src/mice.c	Sat Feb  9 00:47:24 2002@@ -356,7 +356,7 @@   /* this is a little confusing. If we use the stylus, we    * have three buttons (tip, lower, upper), and if    * we use the puck we have four buttons. (And the-   * protocol i a little mangled if several of the buttons+   * protocol is a little mangled if several of the buttons    * on the puck are pressed simultaneously.     * I don't use the puck, hence I try to decode three buttons    * only. tip = left, lower = middle, upper = right@@ -444,9 +444,9 @@   /* sluggish... */   buffer[0]=(state->buttons ^ 0x07) | 0x80;   dx = limit_delta(state->dx, -256, 254);-  buffer[3] =  state->dx - (buffer[1] = state->dx/2); /* Markus */+  buffer[3] =  dx - (buffer[1] = dx/2); /* Markus */   dy = limit_delta(state->dy, -256, 254);-  buffer[4] = -state->dy - (buffer[2] = -state->dy/2);+  buffer[4] = -dy - (buffer[2] = -dy/2);   return write(fd,buffer,5);  }@@ -483,10 +483,22 @@   return 0; } +static Gpm_Type *I_ps2(int fd, unsigned short flags,+	 struct Gpm_Type *type, int argc, char **argv)+{+  static unsigned char s[] = { 246, 230, 244, 243, 100, 232, 3, };+  write (fd, s, sizeof (s));+  usleep (30000);+  tcflush (fd, TCIFLUSH);+  return type;+}+ static int M_ps2(Gpm_Event *state,  unsigned char *data) {   static int tap_active=0; /* there exist glidepoint ps2 mice */ +  /*fprintf(stderr, "data   %02x/%02x/%02x\n", data[0], data[1], data[2]);*/+   state->buttons=     !!(data[0]&1) * GPM_B_LEFT +     !!(data[0]&2) * GPM_B_RIGHT +@@ -518,9 +530,25 @@   return 0; } +static int R_ps2(Gpm_Event *state, int fd)+{+  signed char buffer[3];++  buffer[0]=((state->buttons & GPM_B_LEFT  ) > 0)*1 ++	    ((state->buttons & GPM_B_RIGHT ) > 0)*2 ++	    ((state->buttons & GPM_B_MIDDLE) > 0)*4;+  buffer[0] |= 8 ++	      ((state->dx < 0) ? 0x10 : 0) ++	      ((state->dy > 0) ? 0x20 : 0);+  buffer[1] = limit_delta(state->dx, -128, 127);+  buffer[2] = limit_delta(-state->dy, -128, 127);+  /*fprintf(stderr, "buffer %02x/%02x/%02x\n", (char)buffer[0], (char)buffer[1], (char)buffer[2]);*/+  return write(fd,buffer,3);+}+ static int M_netmouse(Gpm_Event *state,  unsigned char *data) {-  /* Avoid this beasts if you can.  They connect to normal PS/2 port,+  /* Avoid these beasts if you can.  They connect to normal PS/2 port,      but their protocol is one byte longer... So if you have notebook      (like me) with internal PS/2 mouse, it will not work      together. They have four buttons, but two middle buttons can not@@ -665,10 +693,10 @@   int  treshold; } wcmodell[] = {   /* ModellName    Magic     MaxX     MaxY  Border  Tresh */-     "UltraPad"  , "UD",        0,       0,    250,    20, -  /* "Intuos"    , "GD",        0,       0,      0,    20, not yet supported */-     "PenPartner", "CT",        0,       0,      0,    20, -     "Graphire"  , "ET",     5103,    3711,      0,    20+	{"UltraPad"  , "UD",        0,       0,    250,    20}, +  /* {"Intuos"    , "GD",        0,       0,      0,    20}, not yet supported */+	{"PenPartner", "CT",        0,       0,      0,    20}, +	{"Graphire"  , "ET",     5103,    3711,      0,    20}   };  #define IsA(m) ((WacomModell==(-1))? 0:!strcmp(#m,wcmodell[WacomModell].name))@@ -1687,7 +1715,8 @@  /* intellimouse, ps2 version: Ben Pfaff and Colin Plumb */ /* Autodetect: Steve Bennett */-static Gpm_Type *I_imps2(int fd, unsigned short flags, struct Gpm_Type *type)+static Gpm_Type *I_imps2(int fd, unsigned short flags,+			 struct Gpm_Type *type, int argc, char **argv) {   int id;   static unsigned char basic_init[] = { GPM_AUX_ENABLE_DEV, GPM_AUX_SET_SAMPLE, 100 };@@ -2096,8 +2125,8 @@            "BusMouse", M_bm, I_empty, STD_FLG, /* bm is sun */                                 {0xf8, 0x80, 0x00, 0x00}, 3, 3, 0, 0, 0},   {"ps2",  "Busmice of the ps/2 series. Most busmice, actually.",-           "PS/2", M_ps2, I_empty, STD_FLG,-                                {0xc0, 0x00, 0x00, 0x00}, 3, 1, 0, 0, 0},+           "PS/2", M_ps2, I_ps2, STD_FLG,+                                {0xc0, 0x00, 0x00, 0x00}, 3, 1, 0, 0, R_ps2},   {"ncr",  "Ncr3125pen, found on some laptops",            "", M_ncr, NULL, STD_FLG,                                 {0x08, 0x08, 0x00, 0x00}, 7, 7, 0, 1, 0},diff -urN gpm-1.19.6/src/twiddler.c gpm-1.19.6.new/src/twiddler.c--- gpm-1.19.6/src/twiddler.c	Thu Sep 27 14:52:18 2001+++ gpm-1.19.6.new/src/twiddler.c	Thu Feb  7 21:27:43 2002@@ -274,7 +274,7 @@   char **table = twiddler_get_table(message);   char *val;   /*-   * These two are needed to avoid trasmitting single keys when typing+   * These two are needed to avoid transmitting single keys when typing    * chords. When the number of keys being held down decreases, data    * is transmitted; but as soon as it increases the cycle is restarted.    */

⌨️ 快捷键说明

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