Add output flushing before fork()
This adds fflush(NULL) before fork() in start_command(), to keep the generic interface safe. A remaining use of fork() with no flushing is in a comment in show_tree(). Rewrite that comment to use start_command(). Signed-off-by: Anders Melchiorsen <mail@cup.kalibalik.dk> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									611921654f
								
							
						
					
					
						commit
						7d0b18a4da
					
				|  | @ -66,17 +66,16 @@ static int show_tree(const unsigned char *sha1, const char *base, int baselen, | |||
| 		/* | ||||
| 		 * Maybe we want to have some recursive version here? | ||||
| 		 * | ||||
| 		 * Something like: | ||||
| 		 * Something similar to this incomplete example: | ||||
| 		 * | ||||
| 		if (show_subprojects(base, baselen, pathname)) { | ||||
| 			if (fork()) { | ||||
| 				chdir(base); | ||||
| 				exec ls-tree; | ||||
| 			} | ||||
| 			waitpid(); | ||||
| 			struct child_process ls_tree; | ||||
|  | ||||
| 			ls_tree.dir = base; | ||||
| 			ls_tree.argv = ls-tree; | ||||
| 			start_command(&ls_tree); | ||||
| 		} | ||||
| 		 * | ||||
| 		 * ..or similar.. | ||||
| 		 */ | ||||
| 		type = commit_type; | ||||
| 	} else if (S_ISDIR(mode)) { | ||||
|  |  | |||
|  | @ -68,6 +68,7 @@ int start_command(struct child_process *cmd) | |||
| 	trace_argv_printf(cmd->argv, "trace: run_command:"); | ||||
|  | ||||
| #ifndef __MINGW32__ | ||||
| 	fflush(NULL); | ||||
| 	cmd->pid = fork(); | ||||
| 	if (!cmd->pid) { | ||||
| 		if (cmd->no_stdin) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Anders Melchiorsen
						Anders Melchiorsen