Cygwin: console: Set console mode even if stdin/stdout is redirected.
- When non-cygwin app is started in console, console mode is set to tty::native. However, if stdin is redirected, current code does not set the input mode of the console. In this case, if the app opens "CONIN$", the console mode will not be appropriate for non-cygwin app. This patch fixes the issue. Addresses: https://github.com/GitCredentialManager/git-credential-manager/issues/576
This commit is contained in:
		
							parent
							
								
									cb0e392903
								
							
						
					
					
						commit
						dd65342315
					
				|  | @ -626,23 +626,18 @@ child_info_spawn::worker (const char *prog_arg, const char *const *argv, | ||||||
| 		ptys_primary = ptys; | 		ptys_primary = ptys; | ||||||
| 	    } | 	    } | ||||||
| 	  else if (fh && fh->get_major () == DEV_CONS_MAJOR) | 	  else if (fh && fh->get_major () == DEV_CONS_MAJOR) | ||||||
|  | 	    { | ||||||
|  | 	      if (!iscygwin () && cons_native == NULL) | ||||||
| 		{ | 		{ | ||||||
| 		  fhandler_console *cons = (fhandler_console *) fh; | 		  fhandler_console *cons = (fhandler_console *) fh; | ||||||
| 	      if (!iscygwin ()) |  | ||||||
| 		{ |  | ||||||
| 		  if (cons_native == NULL) |  | ||||||
| 		    { |  | ||||||
| 		  cons_native = cons; | 		  cons_native = cons; | ||||||
| 		  cons_ti = &((tty *)cons->tc ())->ti; | 		  cons_ti = &((tty *)cons->tc ())->ti; | ||||||
| 		  cons_owner = cons->get_owner (); | 		  cons_owner = cons->get_owner (); | ||||||
| 		    } |  | ||||||
| 		  tty::cons_mode conmode = | 		  tty::cons_mode conmode = | ||||||
| 		    (ctty_pgid && ctty_pgid == myself->pgid) ? | 		    (ctty_pgid && ctty_pgid == myself->pgid) ? | ||||||
| 		    tty::native : tty::restore; | 		    tty::native : tty::restore; | ||||||
| 		  if (fd == 0) |  | ||||||
| 		  fhandler_console::set_input_mode (conmode, | 		  fhandler_console::set_input_mode (conmode, | ||||||
| 					   cons_ti, cons->get_handle_set ()); | 					   cons_ti, cons->get_handle_set ()); | ||||||
| 		  else if (fd == 1 || fd == 2) |  | ||||||
| 		  fhandler_console::set_output_mode (conmode, | 		  fhandler_console::set_output_mode (conmode, | ||||||
| 					   cons_ti, cons->get_handle_set ()); | 					   cons_ti, cons->get_handle_set ()); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue