tab-complete: figure out the size before copying
we already need to know the string length since `cursor` needs to be adjusted. so just calculate the length beforehand and use `memcpy` to copy exactly as much as needed (as opposed to `strncpy` which always writes `n` bytes).
This commit is contained in:
		
							
								
								
									
										4
									
								
								dmenu.c
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								dmenu.c
									
									
									
									
									
								
							@@ -517,9 +517,9 @@ insert:
 | 
				
			|||||||
	case XK_Tab:
 | 
						case XK_Tab:
 | 
				
			||||||
		if (!sel)
 | 
							if (!sel)
 | 
				
			||||||
			return;
 | 
								return;
 | 
				
			||||||
		strncpy(text, sel->text, sizeof text - 1);
 | 
							cursor = strnlen(sel->text, sizeof text - 1);
 | 
				
			||||||
 | 
							memcpy(text, sel->text, cursor);
 | 
				
			||||||
		text[sizeof text - 1] = '\0';
 | 
							text[sizeof text - 1] = '\0';
 | 
				
			||||||
		cursor = strlen(text);
 | 
					 | 
				
			||||||
		match();
 | 
							match();
 | 
				
			||||||
		break;
 | 
							break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user