acadia-newlib/winsup/cygwin
Takashi Yano bb42852062 Cygwin: pty: Implement new pseudo console support.
- In this implementation, pseudo console is created for each native
  console app. Advantages and disadvantages of this implementation
  over the previous implementation are as follows.

  Advantages:
  1) No performance degradation in pty output for cygwin process.
      https://cygwin.com/pipermail/cygwin/2020-February/243858.html
  2) Free from the problem caused by difference of behaviour of control
     sequences between real terminal and pseudo console.
      https://cygwin.com/pipermail/cygwin/2019-December/243281.html
      https://cygwin.com/pipermail/cygwin/2020-February/243855.html
  3) Free from the problem in cgdb and emacs gud.
      https://cygwin.com/pipermail/cygwin/2020-January/243601.html
      https://cygwin.com/pipermail/cygwin/2020-March/244146.html
  4) Redrawing screen on executing native console apps is not necessary.
  5) cygwin-console-helper is not necessary for the pseudo console
     support.
  6) The codes for pseudo console support are much simpler than that
     of the previous one.

  Disadvantages:
  1) The cygwin program which calls console API directly does not work.
  2) The apps which use console API cannot be debugged with gdb. This
     is because pseudo console is not activated since gdb uses
     CreateProcess() rather than exec(). Even with this limitation,
     attaching gdb to native apps, in which pseudo console is already
     activated, works.
  3) Typeahead key inputs are discarded while native console app is
     executed. Simirally, typeahead key inputs while cygwin app is
     executed are not inherited to native console app.
  4) Code page cannot be changed by chcp.com. Acctually, chcp works
     itself and changes code page of its own pseudo console.  However,
     since pseudo console is recreated for another process, it cannot
     inherit the code page.
  5) system_printf() does not work after stderr is closed. (Same with
     cygwin 3.0.7)
  6) Startup time of native console apps is about 3 times slower than
     previous implemenation.
  7) Pseudo console cannot be activated if it is already activated for
     another process on same pty.
2020-08-22 13:43:49 +02:00
..
include Cygwin: bump version to 3.2.0 2020-08-22 13:43:46 +02:00
lib Cygwin: update C++ dialect to gnu++14 2020-05-30 19:41:18 +02:00
libc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
math Cygwin: fix formatting: drop trailing whitespace 2020-03-11 13:45:58 +01:00
regex Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
release Cygwin: main exception handler (64-bit): continue GCC exceptions 2020-08-18 07:04:25 -04:00
tzcode Cygwin: drop useless comment 2020-05-26 10:22:41 +02:00
DevNotes
Makefile.in Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
ROADMAP
aclocal.m4
advapi32.cc
aio.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
analyze_sigfe
assert.cc
autogen.sh
autoload.cc Cygwin: memory: declare extended memory API 2020-04-07 17:42:02 +02:00
automode.c
binmode.c
child_info.h Cygwin: posix_spawn: add Cygwin-specific code fixing process synchronisation 2020-08-03 12:41:44 +02:00
clock.cc Cygwin: clocks: Add CLOCK_REALTIME_ALARM/CLOCK_BOOTTIME_ALARM clocks 2019-01-22 15:42:07 +01:00
clock.h Cygwin: clocks: Add CLOCK_REALTIME_ALARM/CLOCK_BOOTTIME_ALARM clocks 2019-01-22 15:42:07 +01:00
collate.h
common.din Cygwin: Export newlib ndbm functions 2019-07-24 22:32:48 +02:00
config.h.in
configure
configure.ac
cpuid.h
crt0.c Cygwin: 32 bit: remove old code to 16 bit align stack 2020-02-28 15:02:09 +01:00
ctype.cc
cxx.cc
cygerrno.h Cygwin: set/getsockopt: Move implementation into fhandler_socket class 2018-02-20 18:01:40 +01:00
cygheap.cc Cygwin: fix formatting: collapse whitespace-only lines 2020-03-11 13:45:58 +01:00
cygheap.h Cygwin: Revert attempting to unload user profile after use 2019-03-04 17:31:27 +01:00
cygheap_malloc.h Cygwin: posix timers: allocate timer_tracker on system heap. 2019-01-22 16:38:14 +01:00
cyglsa.h
cygmagic
cygmalloc.h
cygserver.h Cygwin: cygserver: drop useless packed attribute 2020-02-26 20:55:14 +01:00
cygserver_ipc.h
cygserver_msg.h
cygserver_pwdgrp.h Cygwin: fix formatting: drop spaces leading tabs 2020-03-11 13:45:58 +01:00
cygserver_sem.h
cygserver_setpwd.h
cygserver_shm.h
cygthread.cc Cygwin: cygthread: set thread name before calling thread func 2019-01-23 21:45:59 +01:00
cygthread.h
cygtls.cc
cygtls.h Cygwin: select: revamp non-polling code for signalfd 2019-08-18 14:02:01 +02:00
cygtls_padsize.h
cygwait.cc Cygwin: cygwait.cc: fix formatting of debug statement 2018-03-05 17:49:50 +01:00
cygwait.h
cygwin-cxx.h
cygwin-shilka
cygwin.ldif
cygwin.sc.in
cygwin_version.h
cygxdr.cc
cygxdr.h
dcrt0.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
debug.cc
debug.h
devices.cc Cygwin: Provide more COM devices 2019-10-23 10:05:42 +02:00
devices.h Cygwin: devices: drop MAX_CONSOLES and fix FH_CONS_MAX 2019-11-04 10:34:59 +01:00
devices.in Cygwin: Provide more COM devices 2019-10-23 10:05:42 +02:00
dir.cc Cygwin: fix formatting: drop spaces leading tabs 2020-03-11 13:45:58 +01:00
dlfcn.cc forkables: inline dll_list::forkables_supported 2019-02-07 15:58:02 +01:00
dll_init.cc Cygwin: dll_list: stat_real_file_once with ntname 2019-06-03 18:37:52 +02:00
dll_init.h Cygwin: dll_list: drop unused read_fbi method 2019-05-05 10:04:43 -04:00
dllfixdbg
dtable.cc Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
dtable.h
environ.cc Cygwin: remove CYGWIN=dos_file_warning option 2020-01-28 21:59:25 +01:00
environ.h
errno.cc Cygwin: clean error mapping 2018-02-20 17:59:53 +01:00
exception.h
exceptions.cc Cygwin: add header defining GCC exception codes 2020-08-20 10:46:23 -04:00
exec.cc
external.cc Cygwin: fix formatting: collapse whitespace-only lines 2020-03-11 13:45:58 +01:00
fcntl.cc Cygwin: fix formatting: collapse whitespace-only lines 2020-03-11 13:45:58 +01:00
fenv.cc Add default implementation of fenv.h and all methods 2019-08-09 17:49:16 +02:00
fhandler.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
fhandler.h Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
fhandler_clipboard.cc
fhandler_console.cc Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
fhandler_cygdrive.cc Cygwin: move fhandler_cygdrive methods into own source file 2019-01-07 12:29:07 +01:00
fhandler_dev.cc
fhandler_disk_file.cc Cygwin: stat: fix st_mode of fifos again 2020-05-28 13:34:19 -04:00
fhandler_dsp.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
fhandler_fifo.cc Cygwin: Fix missing breaks in switch statement 2020-08-05 21:46:53 +02:00
fhandler_floppy.cc Cygwin: raw disk I/O: lock floppys as well 2020-04-24 16:22:26 +02:00
fhandler_netdrive.cc Cygwin: fix formatting: collapse whitespace-only lines 2020-03-11 13:45:58 +01:00
fhandler_nodevice.cc
fhandler_pipe.cc Cygwin: [gs]et_io_handle(): renamed to [gs]et_handle(). 2019-03-30 20:08:36 +01:00
fhandler_proc.cc fhandler_proc.cc(format_proc_cpuinfo): use _small_sprintf %X for microcode 2020-08-04 10:10:40 +02:00
fhandler_process.cc Cygwin: fix formatting: drop spaces leading tabs 2020-03-11 13:45:58 +01:00
fhandler_process_fd.cc Cygwin: [gs]et_io_handle(): renamed to [gs]et_handle(). 2019-03-30 20:08:36 +01:00
fhandler_procnet.cc Cygwin: change virtual_ftype_t to not rely on negative values 2019-07-22 18:42:39 +02:00
fhandler_procsys.cc Cygwin: change virtual_ftype_t to not rely on negative values 2019-07-22 18:42:39 +02:00
fhandler_procsysvipc.cc Cygwin: change virtual_ftype_t to not rely on negative values 2019-07-22 18:42:39 +02:00
fhandler_random.cc
fhandler_raw.cc Cygwin: fhandler_*: remove isdevice() and is_auto_device() 2019-07-22 08:15:16 -04:00
fhandler_registry.cc Cygwin: fix one more check for positive virtual_ftype_t values 2019-07-22 14:06:35 -04:00
fhandler_serial.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
fhandler_signalfd.cc Cygwin: return full sigset_t from sig_send 2019-07-12 17:27:26 +02:00
fhandler_socket.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
fhandler_socket_inet.cc Cygwin: sockets: Rearrange check for connect failure 2020-07-20 09:49:34 +02:00
fhandler_socket_local.cc Cygwin: AF_LOCAL: fix fcntl and dup if O_PATH is set 2020-01-30 09:43:19 -05:00
fhandler_socket_unix.cc Cygwin: AF_UNIX: rework fixup_after_exec 2020-02-28 15:27:16 +01:00
fhandler_tape.cc Cygwin: tape: Handle non-standard "no medium" error code 2018-06-29 15:31:15 +02:00
fhandler_termios.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
fhandler_timerfd.cc Cygwin: timerfd: rework implementation 2019-02-25 21:01:32 +01:00
fhandler_tty.cc Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
fhandler_virtual.cc Cygwin: change virtual_ftype_t to not rely on negative values 2019-07-22 18:42:39 +02:00
fhandler_virtual.h Cygwin: fix formatting: drop trailing whitespace 2020-03-11 13:45:58 +01:00
fhandler_windows.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
fhandler_zero.cc
flock.cc Cygwin: fix formatting: drop spaces leading tabs 2020-03-11 13:45:58 +01:00
fork.cc Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
forkable.cc Cygwin: dll_list: no recursive use of nt_max_path_buf 2019-06-03 18:38:16 +02:00
gcc_seh.h Cygwin: add header defining GCC exception codes 2020-08-20 10:46:23 -04:00
gcrt0.c
gendef
gendevices
gentls_offsets Cygwin: gentls_offsets: Remove obsolte 'o' regex option 2019-01-15 13:19:41 +01:00
glob.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
glob_pattern_p.cc
globals.cc Cygwin: remove CYGWIN=dos_file_warning option 2020-01-28 21:59:25 +01:00
gmon.c
gmon.h
grp.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
heap.cc Cygwin: Allow accessing 48 bit address space in Windows 8.1 or later 2019-06-04 16:58:53 +02:00
heap.h
hookapi.cc Cygwin: fix formatting: drop spaces leading tabs 2020-03-11 13:45:58 +01:00
how-autoload-works.txt
how-cygheap-works.txt
how-cygtls-works.txt
how-fhandlers-work.txt
how-signals-work.txt
how-spawn-works.txt
how-startup-shutdown-works.txt
how-to-debug-cygwin.txt
i686.din Remove matherr, and SVID and X/Open math library configurations 2019-01-23 10:46:24 +01:00
init.cc Cygwin: 32 bit: remove old code to 16 bit align stack 2020-02-28 15:02:09 +01:00
ioctl.cc Cygwin: open: support Linux-specific O_PATH flag 2019-01-07 19:35:00 +01:00
ipc.cc
kernel32.cc
lc_era.h Cygwin: update era and message locale data 2019-04-30 11:55:04 +02:00
lc_msg.h Cygwin: update era and message locale data 2019-04-30 11:55:04 +02:00
ldap.cc Cygwin: ldap: Fix overwriting domain when creating naming context 2019-03-02 12:43:34 +01:00
ldap.h Cygwin: fix formatting: drop trailing whitespace 2020-03-11 13:45:58 +01:00
libstdcxx_wrapper.cc Cygwin: update C++ dialect to gnu++14 2020-05-30 19:41:18 +02:00
loadavg.cc Cygwin: loadavg: improve debugging of load_init 2019-03-12 17:09:42 +01:00
loadavg.h
lsearch.cc
malloc.cc
malloc_wrapper.cc Cygwin: fix formatting: drop spaces leading tabs 2020-03-11 13:45:58 +01:00
math.h
mcount.c
mcountFunc.S
miscfuncs.cc Cygwin: threads: use extended memory API if available 2020-04-07 18:23:11 +02:00
miscfuncs.h Cygwin: fix formatting: collapse whitespace-only lines 2020-03-11 13:45:58 +01:00
mkglobals_h
mkimport
mkstatic
mktemp.cc
mkvers.sh Cygwin: version: Use UTC timestamp as build time 2019-01-24 11:39:43 +01:00
mmap.cc Cygwin: mmap: Remove AT_ROUND_TO_PAGE workaround 2020-07-22 10:51:27 +02:00
mmap_alloc.cc Cygwin: mmap_alloc: fix comment to document using the extended memory API 2020-04-07 18:23:11 +02:00
mmap_alloc.h Cygwin: shmat: use mmap allocator strategy on 64 bit 2019-08-08 11:27:52 +02:00
mmap_helper.h
mount.cc Cygwin: mount: define binary mount as default 2019-02-18 10:26:53 +01:00
mount.h Cygwin: mount: remove unused method mount_info::set_flags_from_win32_path 2019-02-18 10:23:15 +01:00
msg.cc
mtinfo.h
net.cc Cygwin: fix formatting: drop trailing whitespace 2020-03-11 13:45:58 +01:00
netdb.cc
nfs.cc
nfs.h
nlsfuncs.cc Cygwin: convert sys_wcstombs/sys_mbstowcs wrapper to inline functions 2020-07-10 10:29:33 +02:00
ntdll.h Cygwin: mmap: Remove AT_ROUND_TO_PAGE workaround 2020-07-22 10:51:27 +02:00
ntea.cc Cygwin: fix formatting: drop trailing whitespace 2020-03-11 13:45:58 +01:00
ntsecapi.h
passwd.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
path.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
path.h Cygwin: remove CYGWIN=dos_file_warning option 2020-01-28 21:59:25 +01:00
pathfinder.h
perprocess.h
pinfo.cc Cygwin: remove CYGWIN=dos_file_warning option 2020-01-28 21:59:25 +01:00
pinfo.h Cygwin: fix process parent/child relationship after execve 2019-11-02 19:55:24 +01:00
poll.cc Cygwin: encapsulate Winsock based fhandler_socket classes 2018-02-23 15:24:18 +01:00
posix_ipc.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
posix_timer.cc Cygwin: posix timers: fix uninitialized variable 2020-02-26 16:59:56 +01:00
posix_timer.h Cygwin: posix timers: fix overrun count always being 1 too big 2019-01-22 18:20:18 +01:00
profil.c
profil.h
pseudo-reloc.cc
pthread.cc Cygwin: Implement pthread_tryjoin_np and pthread_timedjoin_np 2018-06-27 17:56:59 +02:00
pwdgrp.h Cygwin: fix formatting: drop spaces leading tabs 2020-03-11 13:45:58 +01:00
quotactl.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
random.cc Cygwin: fix build with GCC 7 2018-04-16 22:46:11 -05:00
registry.cc
registry.h
regparm.h
resource.cc
scandir.cc
sched.cc Cygwin: Fix return value of sched_getaffinity 2019-06-28 17:10:39 +02:00
sec_acl.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
sec_auth.cc Cygwin: fix: seteuid32() must return EPERM if privileges are not held. 2019-03-27 17:08:49 +01:00
sec_helper.cc Cygwin: fix formatting: drop trailing whitespace 2020-03-11 13:45:58 +01:00
sec_posixacl.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
sec_posixacl.h Fix invalid acl_entry_t on 32-bit Cygwin 2020-07-10 10:29:47 +02:00
security.cc Cygwin: fix formatting: drop spaces leading tabs 2020-03-11 13:45:58 +01:00
security.h Cygwin: fix formatting: collapse whitespace-only lines 2020-03-11 13:45:58 +01:00
select.cc Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
select.h Cygwin: serial: use per call OVERLAPPED structs 2020-03-23 21:06:03 +01:00
sem.cc
setlsapwd.cc
shared.cc forkables: simplify disabling via shm 2019-02-07 15:58:02 +01:00
shared_info.h forkables: inline dll_list::forkables_supported 2019-02-07 15:58:02 +01:00
shm.cc Cygwin: shmat: use mmap allocator strategy on 64 bit 2019-08-08 11:27:52 +02:00
signal.cc Cygwin: rename NSIG to _NSIG, change visibility of NSIG to MISC 2020-02-18 11:25:12 +01:00
sigproc.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
sigproc.h Cygwin: rename NSIG to _NSIG, change visibility of NSIG to MISC 2020-02-18 11:25:12 +01:00
smallprint.cc Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
sortdin
spawn.cc Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
speclib
spinlock.h Cygwin: spinlock: remove useless get_ll call 2018-11-26 17:59:10 +01:00
strace.cc Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
strfuncs.cc Cygwin: convert sys_wcstombs/sys_mbstowcs wrapper to inline functions 2020-07-10 10:29:33 +02:00
string.h
strsep.cc Use remove-advertising-clause script to edit BSD licenses 2020-01-29 19:03:31 +01:00
strsig.cc Cygwin: rename NSIG to _NSIG, change visibility of NSIG to MISC 2020-02-18 11:25:12 +01:00
sync.cc
sync.h
syscalls.cc Cygwin: symlink/mknod: fix ACL handling 2020-01-28 17:58:06 +01:00
sysconf.cc Cygwin: Fix missing breaks in switch statement 2020-08-05 21:46:53 +02:00
syslog.cc Fix a problem that connection to syslogd fails. 2018-07-06 10:41:21 +02:00
termios.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
textmode.c
textreadmode.c
thread.cc Cygwin: return full sigset_t from sig_send 2019-07-12 17:27:26 +02:00
thread.h Cygwin: Implement pthread_tryjoin_np and pthread_timedjoin_np 2018-06-27 17:56:59 +02:00
timerfd.cc Cygwin: timerfd: avoid a deadlock 2019-06-25 15:44:43 -04:00
timerfd.h Cygwin: timerfd: avoid a deadlock 2019-06-25 15:44:43 -04:00
times.cc Cygwin: fix formatting: drop spaces leading tabs 2020-03-11 13:45:58 +01:00
tls_pbuf.cc
tls_pbuf.h Cygwin: fix formatting: drop trailing whitespace 2020-03-11 13:45:58 +01:00
tlsoffsets.h Cygwin: select: revamp non-polling code for signalfd 2019-08-18 14:02:01 +02:00
tlsoffsets64.h Cygwin: select: revamp non-polling code for signalfd 2019-08-18 14:02:01 +02:00
tty.cc Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
tty.h Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
uinfo.cc Cygwin: Add 'fallthrough' pseudo keyword for switch/case use 2020-08-05 21:58:22 +02:00
uname.cc Cygwin: unbreak the build with GCC 7 2019-07-19 14:14:33 -04:00
update-copyright
userinfo.h
vstrlist.h
wait.cc
wchar.h Cygwin: convert sys_wcstombs/sys_mbstowcs wrapper to inline functions 2020-07-10 10:29:33 +02:00
wincap.cc Cygwin: tcp: Support TCP_USER_TIMEOUT 2020-07-01 20:30:52 +02:00
wincap.h Cygwin: tcp: Support TCP_USER_TIMEOUT 2020-07-01 20:30:52 +02:00
window.cc
winf.cc
winf.h
wininfo.h
winlean.h Cygwin: memory: declare extended memory API 2020-04-07 17:42:02 +02:00
winsup.h Cygwin: pty: Implement new pseudo console support. 2020-08-22 13:43:49 +02:00
winver.rc
x86_64.din