degesch: some libedit fixes
This commit is contained in:
		
							
								
								
									
										12
									
								
								degesch.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								degesch.c
									
									
									
									
									
								
							@@ -413,8 +413,9 @@ input_ding (struct input *self)
 | 
			
		||||
{
 | 
			
		||||
	(void) self;
 | 
			
		||||
 | 
			
		||||
	// XXX: this isn't probably very portable
 | 
			
		||||
	putc ('\a', stdout);
 | 
			
		||||
	// XXX: this isn't probably very portable;
 | 
			
		||||
	//   we could use "bell" from terminfo but that creates a dependency
 | 
			
		||||
	write (STDOUT_FILENO, "\a", 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void
 | 
			
		||||
@@ -490,6 +491,9 @@ input_start (struct input *self, const char *program_name)
 | 
			
		||||
	el_set (self->editline, EL_UNBUFFERED, true);
 | 
			
		||||
	el_set (self->editline, EL_EDITOR, "emacs");
 | 
			
		||||
 | 
			
		||||
	// No, editline, it's not supposed to kill the entire line
 | 
			
		||||
	el_set (self->editline, EL_BIND, "^W", "ed-delete-prev-word", NULL);
 | 
			
		||||
 | 
			
		||||
	app_editline_init (self);
 | 
			
		||||
	self->prompt_shown = 1;
 | 
			
		||||
	self->active = true;
 | 
			
		||||
@@ -613,8 +617,12 @@ input_on_readable (struct input *self)
 | 
			
		||||
	// The character is VEOF (usually C-d)
 | 
			
		||||
	// TODO: read it from terminal info
 | 
			
		||||
	if (count == 0 && buf[0] == ('D' - 'A' + 1))
 | 
			
		||||
	{
 | 
			
		||||
		el_deletestr (self->editline, 1);
 | 
			
		||||
		input_redisplay (self);
 | 
			
		||||
		input_ding (self);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // HAVE_EDITLINE
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user