Always load the CSI driver because it contains cross-terminal mouse and CSI u handling
This commit is contained in:
		
							parent
							
								
									f33513282a
								
							
						
					
					
						commit
						a6aa8c433b
					
				
							
								
								
									
										17
									
								
								driver-csi.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								driver-csi.c
									
									
									
									
									
								
							| @ -140,23 +140,6 @@ static int register_keys(void) | |||||||
| 
 | 
 | ||||||
| static void *new_driver(TermKey *tk, const char *term) | static void *new_driver(TermKey *tk, const char *term) | ||||||
| { | { | ||||||
|   if(strncmp(term, "xterm", 5) == 0) { |  | ||||||
|     // We want "xterm" or "xtermc" or "xterm-..."
 |  | ||||||
|     if(term[5] != 0 && term[5] != '-' && term[5] != 'c') |  | ||||||
|       return NULL; |  | ||||||
|   } |  | ||||||
|   else if(strcmp(term, "screen") == 0) { |  | ||||||
|     /* Also apply for screen, because it might be transporting xterm-like
 |  | ||||||
|      * sequences. Yes, this sucks. We shouldn't need to rely on this behaviour |  | ||||||
|      * but there's no other way to know, and if we don't then we won't |  | ||||||
|      * recognise its sequences. |  | ||||||
|      */ |  | ||||||
|   } |  | ||||||
|   else |  | ||||||
|     return NULL; |  | ||||||
| 
 |  | ||||||
|   // Excellent - we'll continue
 |  | ||||||
| 
 |  | ||||||
|   if(!keyinfo_initialised) |   if(!keyinfo_initialised) | ||||||
|     if(!register_keys()) |     if(!register_keys()) | ||||||
|       return NULL; |       return NULL; | ||||||
|  | |||||||
							
								
								
									
										10
									
								
								t/02getkey.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								t/02getkey.c
									
									
									
									
									
								
							| @ -6,7 +6,7 @@ int main(int argc, char *argv[]) | |||||||
|   TermKey   *tk; |   TermKey   *tk; | ||||||
|   TermKeyKey key; |   TermKeyKey key; | ||||||
| 
 | 
 | ||||||
|   plan_tests(27); |   plan_tests(31); | ||||||
| 
 | 
 | ||||||
|   tk = termkey_new_abstract("vt100", 0); |   tk = termkey_new_abstract("vt100", 0); | ||||||
| 
 | 
 | ||||||
| @ -61,6 +61,14 @@ int main(int argc, char *argv[]) | |||||||
| 
 | 
 | ||||||
|   is_int(termkey_get_buffer_remaining(tk), 256, "buffer free 256 after completion"); |   is_int(termkey_get_buffer_remaining(tk), 256, "buffer free 256 after completion"); | ||||||
| 
 | 
 | ||||||
|  |   termkey_push_bytes(tk, "\033[27;5u", 7); | ||||||
|  | 
 | ||||||
|  |   is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY after Ctrl-Escape"); | ||||||
|  | 
 | ||||||
|  |   is_int(key.type,        TERMKEY_TYPE_KEYSYM, "key.type after Ctrl-Escape"); | ||||||
|  |   is_int(key.code.sym,    TERMKEY_SYM_ESCAPE,  "key.code.sym after Ctrl-Escape"); | ||||||
|  |   is_int(key.modifiers,   TERMKEY_KEYMOD_CTRL, "key.modifiers after Ctrl-Escape"); | ||||||
|  | 
 | ||||||
|   termkey_destroy(tk); |   termkey_destroy(tk); | ||||||
| 
 | 
 | ||||||
|   return exit_status(); |   return exit_status(); | ||||||
|  | |||||||
| @ -12,8 +12,7 @@ int main(int argc, char *argv[]) | |||||||
| 
 | 
 | ||||||
|   plan_tests(60); |   plan_tests(60); | ||||||
| 
 | 
 | ||||||
|   /* vt100 doesn't have a mouse, we need xterm */ |   tk = termkey_new_abstract("vt100", 0); | ||||||
|   tk = termkey_new_abstract("xterm", 0); |  | ||||||
| 
 | 
 | ||||||
|   termkey_push_bytes(tk, "\e[M !!", 6); |   termkey_push_bytes(tk, "\e[M !!", 6); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user