install: only create parent dirs to dest given -D
Given the following commands:
    touch 1.txt; install -D 1.txt d/2.txt
    find d
The result without this fix:
    d
    d/2.txt
    d/2.txt/1.txt
The result with this patch applied:
    d
    d/2.txt
			
			
This commit is contained in:
		
							
								
								
									
										11
									
								
								xinstall.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								xinstall.c
									
									
									
									
									
								
							| @@ -241,11 +241,12 @@ main(int argc, char *argv[]) | |||||||
| 		if (stat(argv[argc - 1], &st) < 0) { | 		if (stat(argv[argc - 1], &st) < 0) { | ||||||
| 			if (errno != ENOENT) | 			if (errno != ENOENT) | ||||||
| 				eprintf("stat %s:", argv[argc - 1]); | 				eprintf("stat %s:", argv[argc - 1]); | ||||||
| 			if (tflag || argc > 2) { | 			if (tflag || Dflag || argc > 2) { | ||||||
| 				p = strrchr(argv[argc - 1], '/'); | 				if ((p = strrchr(argv[argc - 1], '/')) != NULL) { | ||||||
| 				*p = '\0'; | 					*p = '\0'; | ||||||
| 				make_dirs(argv[argc - 1], 1); | 					make_dirs(argv[argc - 1], 1); | ||||||
| 				*p = '/'; | 					*p = '/'; | ||||||
|  | 				} | ||||||
| 			} else { | 			} else { | ||||||
| 				make_dirs(argv[argc - 1], 1); | 				make_dirs(argv[argc - 1], 1); | ||||||
| 			} | 			} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user