This function cannot be made thread-safe, the API would have to be
changed for that, just like strerror() -> strerror_r() and similar
ISO C or POSIX functions...
(getearly): Rename 's' variable to 'len' since 's' is used fairly consistently
throughout cygwin as a string variable. Remove rawenv declaration. Perform
other minor cleanups.
(environ_init): Remove rawenv declaration. Only set rawenv to
GetEnvironmentStrings() if it has not already been set. Properly free rawenv
in all cases.
(tty::gethwnd): Ditto.
(tty::sethwnd): Ditto.
(tty_min::hwnd): Receive variable from tty class.
(tty_min::gethwnd): Receive function from tty classs.
(tty_min::sethwnd): Ditto.
* dtable.cc (dtable::stdio_init): Only call init_console_handler when we
actually own the console.
* fhandler_console.cc (fhandler_console::get_tty_stuff): Set tty's hwnd to
non-zero value.
* fhandler_termios.cc (fhandler_termios::tcsetpgrp): Semi-reinstate handling of
console when pgrp is set.
(findenv_func): New function pointer, predefined to getearly.
(getenv): Call findenv function over the findenv_func pointer.
(environ_init): Change findenv_func pointer to my_findenv after Cygwin
environment is initialized.
Use as guard for the WAVEFORMATEX structure instead of
_WAVEFORMATEX_ to avoid clashes with DirectSound. Keep
_WAVEFORMATEX_ for compatibility.
Thanks to: Andrew Jones <guln at sf dot net>
PocketPC support.
* include/aygshell.h: New file [_WIN32_WCE]. Declare most common
functions for using aygshell on PocketPC:
SHCreateMenuBar, SHFindMenuBar, SHCreateNewItem, SHFullScreen,
SHSipInfo, SHHandleWMActivate, SHHandleWMSettingChange
* include/commctrl.h [_WIN32_WCE] Add function prototypes for
command bar API on PocketPC:
CommandBar_Create, CommandBar_Show, CommandBar_AddBitmap,
CommandBar_InsertComboBox, CommandBar_InsertMenubar,
CommandBar_InsertMenubarEx, CommandBar_DrawMenuBar,
CommandBar_GetMenu, CommandBar_AddAdornments, CommandBar_Height,
CommandBar_InsertButton, CommandBar_Destroy.
* include/winbase.h [_WIN32_WCE] (WIN32_FIND_DATA{A|W}): Remove
fields not present on PocketPC.
(GetCurrentThreadId): Conditionally declare as extern function
without dllimport attribute on PocketPC.
(ResetEvent): Likwise.
(SetEvent): Likewise.
* include/wingdi.h [_WIN32_WCE] (GetTextExtentPoint32{A|W}):
Conditionally declare as extern function without dllimport
attribute on PocketPC.
* winuser.h [_WIN32_WCE] (DialogBoxParam{A|W}): Conditionally
declare as extern function without dllimport attribute on PocketPC.
PocketPC support.
* include/aygshell.h: New file [_WIN32_WCE]. Declare most common
functions for using aygshell on PocketPC:
SHCreateMenuBar, SHFindMenuBar, SHCreateNewItem, SHFullScreen,
SHSipInfo, SHHandleWMActivate, SHHandleWMSettingChange
* include/commctrl.h [_WIN32_WCE] Add function prototypes for
command bar API on PocketPC:
CommandBar_Create, CommandBar_Show, CommandBar_AddBitmap,
CommandBar_InsertComboBox, CommandBar_InsertMenubar,
CommandBar_InsertMenubarEx, CommandBar_DrawMenuBar,
CommandBar_GetMenu, CommandBar_AddAdornments, CommandBar_Height,
CommandBar_InsertButton, CommandBar_Destroy.
* include/winbase.h [_WIN32_WCE] (WIN32_FIND_DATA{A|W}): Remove
fields not present on PocketPC.
(GetCurrentThreadId): Conditionally declare as extern function
without dllimport attribute on PocketPC.
(ResetEvent): Likwise.
(SetEvent): Likewise.
* include/wingdi.h [_WIN32_WCE] (GetTextExtentPoint32{A|W}):
Conditionally declare as extern function without dllimport
attribute on PocketPC.
* winuser.h [_WIN32_WCE] (DialogBoxParam{A|W}): Conditionally
declare as extern function without dllimport attribute on PocketPC.
* include/winnt.h (IMAGE_FILE_MACHINE_IA64): New define.
(IMAGE_FILE_MACHINE_AMD64): New define.
(IMAGE_NT_OPTIONAL_HDR{32|64}_MAGIC. New. Map to IMAGE_NT_OPTIONAL_HDR_MAGIC.
(IMAGE_SUBSYSTEM_NATIVE_WINDOWS): New define.
(IMAGE_SUBSYSTEM_WINDOWS_CE_GUI): New define.
(IMAGE_DLLCHARACTERISTICS_WDM_DRIVER): New define.
(IMAGE_DIRECTORY_ENTRY_*): New defines.
(IMAGE_SCN_TYPE_*): New defines.
(IMAGE_SCN_ALIGN_*): New defines.
(IMAGE_DEBUG_TYPE_BORLAND): New define.
(IMAGE_OPTIONAL_HEADER{32|64}): New structure definitions and typedefs. Map to
IMAGE_OPTIONAL_HEADERS.
(IMAGE_NT_HEADERS{32|64}): New structure definitions and typedefs. Map to
IMAGE_NT_HEADERS.
(IMAGE_LOAD_CONFIG_DIRECTORY64): New structure definition and typedefs.
(IMAGE_CE_RUNTIME_FUNCTION_ENTRY): Likewise.
(IMAGE_FUNCTION_ENTRY64): Likewise.
* include/ws2spi.h (system_header): Add pragma.
* include/rasdlg.h (system_header): Add pragma.
* include/rasdlg.h (_RASDLG_H): Define.
Define instead of _RASDLG_H_, this is the w32api standard.
* include/mlang.h (_MLANG_H): Define.
Define instead of _MLANG_H_, this is the w32api standard.
* include/setupapi.h (_SETUPAPI_H): Define.
Define instead of _SETUPAPI_H_, this is the w32api standard.
Thanks to: James du Russel <ephelon at users dot sf dot net>
* include/rpcndr.h (_RPCNDR_H): Define.
Define in addition to __RPCNDR_H__, this is the w32api standard.
Drop remote fs handling entirely since unreliable inode numbers
are now recognized differently.
(path_conv::is_samba): Make inline.
(fhandler_disk_file::opendir): Reformat comment.
(fhandler_base::fstat_helper): Special case remote file systems
returning (unreliable) 32 bit inode numbers.
(fhandler_base::readdir): Ditto.
* fhandler_netdrive.cc (fhandler_netdrive::readdir): Ditto.
differently from those which are mounted with -X. Pass extra argument to
linebuf::fromargv.
* winf.h (MAXCYGWINCMDLEN): New define.
(linebuf::finish): Add a new argument denoting when command line overflow is
ok.
(linebuf::fromargv): Ditto.
* winf.cc (linebuf::finish): Implement above change.
(linebuf::fromargv): Ditto.
* include/comcat.h: INTERFACE should not remain defined
at the end of the header.
* include/docobj.h: Ditto.
* include/exdisp.h: Ditto.
* include/intshcut.h: Ditto.
* include/mlang.h: Ditto.
* include/mshtml.h: Ditto.
* include/oaidl.h: Ditto.
We should probably remove PROV_MS_MAIL but I'm keeping it for
now for compatibility reasons.
Thanks to: Marcus Agehall <agehall at users dot sf dot net>
(GetAdaptersAddresses): Add function declaration.
* lib/iphlpapi.def (GetAdaptersAddresses): Add function stub.
Thanks to: ross <rossboulet at users dot sf dot net>
LOGON32_PROVIDER_WINNT50, LOGON32_LOGON_NETWORK,
LOGON32_LOGON_UNLOCK, LOGON32_LOGON_NETWORK_CLEARTEXT,
LOGON32_LOGON_NEW_CREDENTIALS): Define.
Thanks to: Oliver Stoeneberg <kidkat at users dot sf dot net>
(alloc_stack_hard_way): Figure out where the stack lives here rather than
relying on previously filled out information which has been invalid since
1.5.19.
(path_conv::hasgood_inode): Recognize Samba with quota support
compiled in.
(path_conv::is_samba): Ditto. Fix comment to include Samba version
numbers for later reference.
be used by subsequent startup functions.
(dll_crt0_0): Issue a warning if DuplicateTokenEx fails and DEBUGGING.
(dll_crt0_1): Move user_data->{resourcelocks,threadinterface} initialization
here from dll_crt0_0.
* fork.cc (frok::child): Tell wait_for_sigthread that this is fork.
(frok::parent): Only initialize start_time once. Tighten time when we're
"deimpersonated".
* sigproc.cc (signal_fixup_after_exec): Rework (futiley) sa_buf stuff. Add
debugging output.
(wait_for_sigthread): Accept an argument which illustrates whether we are
forked or not.
(wait_sig): Avoid using myself pointer.
* winsup.h ((wait_for_sigthread): Reflect change to argument.
(fhandler_dev_floppy::get_drive_info): Rearrange so that now
NtQueryVolumeInformationFile is called on drives which don't support
IOCTL_DISK_GET_DRIVE_GEOMETRY.
* ntdll.h (struct _FILE_FS_SIZE_INFORMATION): Add.
(enum _FSINFOCLASS): Add missing values.
* signal.cc (_SA_NORESTART): New flag.
(sigaction_worker): New function, derived from sigaction. Don't set internal
flags unless called internally.
(sigaction): Use sigaction_worker.
(signal): Honor new _SA_NORESTART flag.
(siginterrupt): Set _SA_NORESTART flag appropriately. Use sigaction_worker to
set flags.
* include/cygwin/signal.h: Define _SA_INTERNAL_MASK here.
* dcrt0.cc (dll_crt0_0): Semi-revert 2006-03-14 change which moved pinfo_init
and uinfo_init here.
(dll_crt0_1): Ditto.
(__dll_crt0): Ditto. Don't call update_envptrs here.
(dll_crt0_1): Ditto. Move wait_for_sigthread call here from dll_crt0_0.
* environ.cc (environ_init): Call it here instead.
* sigproc.cc (my_readsig): New static variable.
(wait_for_sigthread): Set up read pipe here since we are assured that we have
the proper privileges when this is called.
(talktome): Eliminate second argument since it is available as a global now.
(wait_sig): Reflect use of my_readsig.
iscygwin.
(child_info::isstraced): Booleanize.
(child_info::iscygwin): Ditto.
* sigproc.cc (child_info::child_info): Minor cleanup of flag setting.
* spawn.cc (spawn_guts): Only close_all_files when we know the process has
started successfully.
* exceptions.cc (init_console_handler): Fix indentation.
* pinfo.cc (_pinfo::dup_proc_pipe): Reset wr_proc_pipe on failure. Return
previous pipe handle.
* pinfo.h (_pinfo::dup_proc_pipe): Reflect change to return value.
* spawn.cc (spawn_guts): Restore previous proc pipe on retry or if process
exits before synchronization.