Commit Graph

1122 Commits

Author SHA1 Message Date
Corinna Vinschen 70c370d674 * dir.cc (mkdir): Check for case clash.
* environ.cc: Add extern declaration for `pcheck_case'.
        (check_case_init): New function.
        (struct parse_thing): Add "check_case" option.
        * errno.cc (_sys_nerrlist): Add text for ECASECLASH.
        (strerror): Add case branch for ECASECLASH.
        * fhandler.cc (fhandler_disk_file::open): Check for case clash.
        * path.cc: Add global variable `pcheck_case'.
        (struct symlink_info): Add member `case_clash' and method `case_check'.
        (path_prefix_p_): Call `pathnmatch' instead of `strncasematch'.
        (pathnmatch): New funtion.
        (pathmatch): Ditto.
        (path_conv::check): Add handling for case checking.
        (symlink): Check for case clash.
        (symlink_info::check): Add parameter for case checking.
        Handle case checking.
        (symlink_info::case_check): New method.
        (chdir): Don't use unconverted path if pcheck_case==PCHECK_STRICT.
        * path.h: Add extern declarations for `pathmatch' and
        `pathnmatch'.
        (enum case_checking): New enumeration type describing
        the case checking behaviour of path conversion routines.
        (class path_conv): Add member `case_clash'.
        * syscalls.cc (_link): Check for case clash.
2001-04-12 21:21:37 +00:00
Christopher Faylor 82d4a5d4bb * syscalls.cc (mkfifo): New function stub. 2001-04-12 16:50:13 +00:00
Christopher Faylor aa67fd12e9 * configure.in: Remove PTH_ALLOW.
* cygwin.din: Remove @PTH_ALLOW@ prefixes to pthread functions.  Add new
pthread exports.
* pthread.cc: New wrapper functions for the above new exports.
* sched.cc (valid_sched_parameters): New function.
(sched_setparam): Use it.
(sched_set_thread_priority): New function.  Used by pthread_sched*.
* thread.cc (pthread_key_destructor::InsertAfter): New function.
(pthread_key_destructor::UnlinkNext): New function.
(pthread_key_destructor::Next): New function.
(pthread_key_destructor_list::Insert): New function.
(pthread_key_destructor_list::Remove): New function.
(pthread_key_destructor_list::Pop): New function.
(pthread_key_destructor::pthread_key_destructor): New function.
(pthread_key_destructor_list::IterateNull): New function.
(MTinterface::Init): Initialise new member.
(pthread::pthread): Initialise new members.
(pthread::create): Copy new attributes.  Set the new thread priority.
(pthread_attr::pthread_attr): Initialise new members.
(pthread_key::pthread_key): Setup destructor function.
(pthread_key::~pthread_key): Remove destructor function.
(pthread_mutexattr::pthread_mutexattr): New function.
(pthread_mutexattr::~pthread_mutexattr): New function.
(__pthread_once): New function.
(__pthread_cleanup): New function.
(__pthread_cancel): New function.
(__pthread_setcancelstate): New function.
(__pthread_setcanceltype): New function.
(__pthread_testcancel): New function.
(__pthread_attr_getinheritsched): New function.
(__pthread_attr_getschedparam): New function.
(__pthread_attr_getschedpolicy): New function.
(__pthread_attr_getscope): New function.
(__pthread_attr_setinheritsched): New function.
(__pthread_attr_setschedparam): New function.
(__pthread_attr_setschedpolicy): New function.
(__pthread_attr_setscope): New function.
(__pthread_exit): Call any key destructors on thread exit.
(__pthread_join): Use the embedded attr values.
(__pthread_detach): Use the embedded attr values.
(__pthread_getconcurrency): New function.
(__pthread_getschedparam): New function.
(__pthread_key_create): Pass the destructor on object creation.
(__pthread_key_delete): Correct incorrect prototype.
(__pthread_setconcurrency): New function.
(__pthread_setschedparam): New function.
(__pthread_cond_timedwait): Support static mutex initialisers.
(__pthread_cond_wait): Ditto.
(__pthread_mutex_getprioceiling): New function.
(__pthread_mutex_lock): Support static mutex initialisers.
(__pthread_mutex_trylock): Ditto.
(__pthread_mutex_unlock): Ditto.
(__pthread_mutex_destroy): Ditto.
(__pthread_mutex_setprioceiling): New function.
(__pthread_mutexattr_getprotocol): New function.
(__pthread_mutexattr_getpshared): New function.
(__pthread_mutexattr_gettype): New function.
(__pthread_mutexattr_init): New function.
(__pthread_mutexattr_destroy): New function.
(__pthread_mutexattr_setprotocol): New function.
(__pthread_mutexattr_setprioceiling): New function.
(__pthread_mutexattr_getprioceiling): New function.
(__pthread_mutexattr_setpshared): New function.
(__pthread_mutexattr_settype): New function.  Remove stubs for non MT_SAFE
compilation.
* thread.h: Remove duplicate #defines.  Add prototypes for new functions in
thread.cc.
(pthread_key_destructor): New class.
(pthread_key_destructor_list): New class.
(pthread_attr): Add new members.
(pthread): Remove members that are duplicated in the pthread_attr class.
(pthread_mutex_attr): Add new members.
(pthread_once): New class.
* include/pthread.h: Add prototypes for new functions exported from
cygwin1.dll.  Remove typedefs.
* include/sched.h: Add prototypes for new functions in sched.cc.
* include/cygwin/types.h: Add typedefs from pthread.h
2001-04-12 15:40:18 +00:00
Robert Collins 5c83f260b8 * configure.in: Remove PTH_ALLOW.
* cygwin.din: Remove @PTH_ALLOW@ prefixes to pthread functions.
	Add new pthread exports.
	* pthread.cc: New wrapper functions for the above new exports.
	* sched.cc (valid_sched_parameters): New function.
	(sched_setparam): Use it.
	(sched_set_thread_priority): New function. Used by pthread_sched*.
	* thread.cc (pthread_key_destructor::InsertAfter): New function.
	(pthread_key_destructor::UnlinkNext): New function.
	(pthread_key_destructor::Next): New function.
	(pthread_key_destructor_list::Insert): New function.
	(pthread_key_destructor_list::Remove): New function.
	(pthread_key_destructor_list::Pop): New function.
	(pthread_key_destructor::pthread_key_destructor): New function.
	(pthread_key_destructor_list::IterateNull): New function.
	(MTinterface::Init): Initialise new member.
	(pthread::pthread): Initialise new members.
	(pthread::create): Copy new attributes. Set the new thread priority.
	(pthread_attr::pthread_attr): Initialise new members.
	(pthread_key::pthread_key): Setup destructor function.
	(pthread_key::~pthread_key): Remove destructor function.
	(pthread_mutexattr::pthread_mutexattr): New function.
	(pthread_mutexattr::~pthread_mutexattr): New function.
	(__pthread_once): New function.
	(__pthread_cleanup): New function.
	(__pthread_cancel): New function.
	(__pthread_setcancelstate): New function.
	(__pthread_setcanceltype): New function.
	(__pthread_testcancel): New function.
	(__pthread_attr_getinheritsched): New function.
	(__pthread_attr_getschedparam): New function.
	(__pthread_attr_getschedpolicy): New function.
	(__pthread_attr_getscope): New function.
	(__pthread_attr_setinheritsched): New function.
	(__pthread_attr_setschedparam): New function.
	(__pthread_attr_setschedpolicy): New function.
	(__pthread_attr_setscope): New function.
	(__pthread_exit): Call any key destructors on thread exit.
	(__pthread_join): Use the embedded attr values.
	(__pthread_detach): Use the embedded attr values.
	(__pthread_getconcurrency): New function.
	(__pthread_getschedparam): New function.
	(__pthread_key_create): Pass the destructor on object creation.
	(__pthread_key_delete): Correct incorrect prototype.
	(__pthread_setconcurrency): New function.
	(__pthread_setschedparam): New function.
	(__pthread_cond_timedwait): Support static mutex initialisers.
	(__pthread_cond_wait): Ditto.
	(__pthread_mutex_getprioceiling): New function.
	(__pthread_mutex_lock): Support static mutex initialisers.
	(__pthread_mutex_trylock): Ditto.
	(__pthread_mutex_unlock): Ditto.
	(__pthread_mutex_destroy): Ditto.
	(__pthread_mutex_setprioceiling): New function.
	(__pthread_mutexattr_getprotocol): New function.
	(__pthread_mutexattr_getpshared): New function.
	(__pthread_mutexattr_gettype): New function.
	(__pthread_mutexattr_init): New function.
	(__pthread_mutexattr_destroy): New function.
	(__pthread_mutexattr_setprotocol): New function.
	(__pthread_mutexattr_setprioceiling): New function.
	(__pthread_mutexattr_getprioceiling): New function.
	(__pthread_mutexattr_setpshared): New function.
	(__pthread_mutexattr_settype): New function.
	Remove stubs for non MT_SAFE compilation.
	* thread.h: Remove duplicate #defines.
	Add prototypes for new functions in thread.cc.
	(pthread_key_destructor): New class.
	(pthread_key_destructor_list): New class.
	(pthread_attr): Add new members.
	(pthread): Remove members that are duplicated in the pthread_attr class.
	(pthread_mutex_attr): Add new members.
	(pthread_once): New class.
	* include/pthread.h: Add prototypes for new functions exported from cygwin1.dll.
	Remove typedefs.
	* include/sched.h: Add prototypes for new functions in sched.cc.
	* include/cygwin/types.h: Add typedefs from pthread.h
2001-04-12 04:04:53 +00:00
Earnie Boyd eae0943a1f * include/windows.h (#include <winsock.h>): Include <winsock2.h>
instead if (_WIN32_WINNT >= 0x0400)&&(__W32API_MAJOR_VERSION > 0).
2001-04-12 01:11:41 +00:00
Earnie Boyd e1cc9ad77c 2001-04-11 Danny Smith <danny_r_smith_2001@yahoo.co.nz>
* include/winuser.h (WM_IME_*): Remove defines (now in imm.h).
2001-04-12 01:03:29 +00:00
Earnie Boyd bae5f26cfb * include/windef.h (*PBOOL): Unprotect from XFree86Server.
(*LPBOOL): Ditto.
2001-04-12 00:55:48 +00:00
Christopher Faylor fc672fb26c * path.cc (struct symlink_info): Add extn and ext_tacked_on fields.
(path_conv::check): Only tack on extension if a known one didn't already exist.
(suffix_scan::has): Return pointer to known extension.
(symlink_info::check): Record location of extension, if any.
2001-04-11 19:09:53 +00:00
Egor Duda dd9752e88e * mkgroup.c (uni2ansi): Use native method to convert from Unicode
to multi-byte strings.
* mkpasswd.c (uni2ansi): Ditto.
(enum_users): Pass buffer size when converting string.
(enum_local_groups): Ditto.
* mkgroup.c (enum_groups): Ditto.
(enum_local_groups): Ditto.
2001-04-11 09:38:55 +00:00
Egor Duda 619f7fa032 * fhandler.h (class fhandler_socket): Add members and methods to
support secure connections on AF_UNIX sockets.
* fhandler_socket.cc (fhandler_socket::set_connect_secret): New method.
(fhandler_socket::get_connect_secret): Ditto.
(fhandler_socket::create_secret_event): Ditto.
(fhandler_socket::close_secret_event): Ditto.
(fhandler_socket::check_peer_secret_event): Ditto.
(fhandler_socket::fixup_after_fork): Duplicate secret event to child.
(fhandler_socket::dup): Copy address family.
(fhandler_socket::close): Close secret event.
* net.cc (get_inet_addr): Read secret cookie.
(cygwin_connect): Check if peer knows secret cookie value.
(cygwin_accept): Ditto. Copy address family to newly created socket.
(cygwin_bind): Generate and write secret cookie.
(wsock_init): Initialize random number generator.
2001-04-09 07:21:32 +00:00
Christopher Faylor c08e6c4430 Work around new g++ problem. 2001-04-09 01:23:27 +00:00
Christopher Faylor 4c1ce6d3a2 * include/winnt.h (GetCurrentFiber): Make "external __inline" or asm code will
be included in every module which includes this header.
(GetFiberData): Ditto.
2001-04-09 00:52:35 +00:00
Christopher Faylor e3eef4d042 remove extra whitespace. 2001-04-09 00:52:33 +00:00
Christopher Faylor aa970c616c * Makefile.in: Put -lgcc last in list of libraries, since stdc++ library needs
it.
* cygwin.din: Remove obsolete "__empty" export.
* exceptions.cc (call_signal_handler_now): Force inclusion of function even
when -finline-functions is specified.
* sigproc.h: Remove obsolete call_signal_handler declaration.
* fhandler_console.cc (cp_get_internal): New function.
(cp_convert): New function.
(con_to_str): New function.
(str_to_con): New function.
(fhandler_console::read): Replace OemToCharBuff with con_to_str.
(fhandler_console::write_normal): Replace CharToOemBuff with str_to_con.
2001-04-09 00:44:25 +00:00
Earnie Boyd 97101b51aa * include/winnt.h (GetCurrentFiber): Fix typo. 2001-04-08 17:00:27 +00:00
Earnie Boyd a1a1b83adf * include/shellapi.h: (CommandLineToArgvW): Add WINAPI declaration.
* include/winbase.h: (GetFileAttributesExW): Fix typo.
	* include/wingdi.h: (StartDocA): Change LPDOCINFOA to DOCINFOA*.
	(StartDocB): Chage LNPDOCINFOB to DOCINFOB*.
	Thanks To: Kent Tamura  <tkent@users.sourceforge.net>
	* include/winnt.h: (GetFiberData): Add __inline assembler coding.
	(GetCurrentFiber): Ditto.
	Thanks to: Andy Younger  <AndyY@redlemon.com>
	* include/windef.h: (HMONITOR_DECLARED): New definition to stop
	DirectX 8 from complaining.
	Thanks to: Sigbj�rn Lund Olsen  <mosikos@online.no>
        * include/commctrl.h Updated TreeView and ListView defines and macros.
        * include/winuser.h (MB_SERVICE_NOTIFICATION): Correct value for NT4
	and above.
2001-04-08 16:53:56 +00:00
Corinna Vinschen 9ddfe5a04a * syscalls.cc (stat_worker): Fix conditional which still allowed
successful stat'ing of non-existant files.
2001-04-05 20:43:23 +00:00
Christopher Faylor 0403bb7415 * child_info.h: Bump magic number for fork/exec/spawn. 2001-04-04 14:37:45 +00:00
Corinna Vinschen c196a1a26a * errno.cc (errmap): Map ERROR_FILE_INVALID to ENXIO. 2001-04-03 18:20:38 +00:00
Corinna Vinschen 45d061cccf * winsup.api/mmaptest01.c: New test. 2001-04-03 08:39:21 +00:00
Christopher Faylor c90e420d91 * cygrun.c (main): Fix compiler warning.
* gmon.c (_mcleanup): Ditto.
* profil.c (profile_off): Ditto.
* net.cc (find_winsock_errno): New function.
(__set_winsock_errno): Use find_winsock_errno.
(cygwin_setsockopt): Detect SO_ERROR for debugging.
(cygwin_getsockopt): Ditto.  Translate error when getsockopt returns SO_ERROR.
* winsup.h: regparmize __set_winsock_errno.
* include/sys/strace.h: Document that strace functions can't use regparm.
2001-04-03 02:53:25 +00:00
Christopher Faylor be61cf4d0c * mount.cc (main): Use getopt_long for parsing arguments.
(usage): Reformat, show long and short options.
* umount.cc (main): Ditto, all of the above.
2001-04-03 02:41:54 +00:00
Christopher Faylor c6cd25a033 * mount.cc (show_mounts): Change format string to more closely resemble UNIX
when displaying mount table.
2001-04-02 14:58:47 +00:00
Corinna Vinschen 0f0a7dc99d * fhandler.cc (fhandler_disk_file::open): Avoid checking a magic
number of a directory.
2001-04-02 14:35:17 +00:00
Christopher Faylor f97adf983d * shared_info.h (mount_info): Remove mnt_ elements.
* thread.h (struct _winsup_t): Add mnt_ elements.
* path.cc (fillout_mntent): Use mnt_ elements from reent_winsup ().
2001-04-02 04:27:12 +00:00
Christopher Faylor 1ba3935dfb * exceptions.cc (sigframe::call_signal_handler): Return value of
call_signal_handler_now.
* sigproc.h (sigframe): Use constructor.
* syscalls.cc (_read): Correct errno test prior to calling signal handler.
2001-04-02 00:18:29 +00:00
Christopher Faylor 0ef785e4ee Fix typo. 2001-04-01 23:05:30 +00:00
Christopher Faylor 2a1743c76d * exceptions.cc (sigframe::call_signal_handler): Move out side of "C" block or
some compilers will complain.
2001-04-01 05:38:08 +00:00
Christopher Faylor 11f3a79b64 * exceptions.cc (call_signal_handler_now): Rename from call_signal_handler to
avoid C++ confusion.
2001-04-01 05:24:20 +00:00
Christopher Faylor 5817ee2d09 * path.cc (fillout_mntent): Always remove drive root directories from future
consideration by "/cygdrive" reporting.
(cygdrive_getmnt): Avoid reporting removable drives or drives with no media
mounted.
2001-04-01 05:09:57 +00:00
Christopher Faylor f2aeff27f0 * thread.h (struct _winsup_t): Remove obsolete elements. Add available_drives
element.
* path.cc (mount_info::getmntent): Report "/cygdrive" drives when mounted
drives are exhausted.
(fillout_mntent): New function.
(mount_item::getmntent): Use fillout_mntent.
(cygdrives_mntent): New function.  Returns next available "/cygdrive".
(setmntent): Initialize available "/cygdrives".
* syscalls.cc: Remove some if 0'ed code.
* times.cc (timezone): Use more descriptive variable name.
2001-04-01 03:06:02 +00:00
Christopher Faylor f611148366 * sigproc.h (class sigframe): Implement 'unregister()' method.
(sigframe::~sigframe): Use unregister method.
(sigframe::call_signal_handler): Declare new method.
* exceptions.cc (sigframe::call_signal_handler): New method.  Unregisters
current sigframe before calling signal handler.
(setup_handler): Clear waiting threads prior to arming signal_arrived.
* syscalls.cc (_read): Change goto to loop.  Recalculate sigframe inside of
loop so that constructor is called when appropriate.
* wait.cc (wait4): Ditto.
* signal.cc: Change "sig" to "signal" in debugging messages throughout.
* sigproc.cc: Ditto.
2001-04-01 00:06:17 +00:00
Christopher Faylor ab57d14639 * fhandler_serial.cc (fhandler_serial::raw_write): Close protected handles with
ForceCloseHandle or suffer spurious warnings.
2001-03-31 22:13:02 +00:00
Christopher Faylor 0cec322603 * fhandler.cc (fhandler_base::read): Remove special handling of CTRL-Z. 2001-03-31 21:24:48 +00:00
Corinna Vinschen c796f4f1e6 Fix formatting. 2001-03-31 11:00:52 +00:00
Corinna Vinschen 70afbaae17 * fhandler.h (class fhandler_console): Add members `insert_mode'.
* fhandler_console.cc (fhandler_console::dup): Duplicate `insert_mode'.
        (fhandler_console::fhandler_console): Initialize `insert_mode'.
        fhandler_console::char_command): Add terminal capabilities
        "enter insert mode" = \E[4h and "exit insert mode" = \E[4l.
        Care for insert mode on terminal capability "repeat char" = \E[x;yb.
        (fhandler_console::write_normal): Care for insert mode before writing
        to the console.
        (array keytable): Add keymapping for modified cursor and control
        block keys (xterm like).
2001-03-31 09:19:32 +00:00
Christopher Faylor 12453b4590 Fix strange formatting. 2001-03-31 04:18:01 +00:00
Christopher Faylor 0ed560cb08 Fix strange formatting. 2001-03-31 03:56:58 +00:00
Earnie Boyd 0e09a700d1 * include/winuser.h (RT_CURSOR): Add protection for XFree86Server.
(RT_FONT): Ditto.
	(VK_KANA): New definition.
	* include/basetsd.h (INT32): Ditto.
	* include/windef.h (ATOM): Ditto.
	(BOOL): Ditto.
	(BYTE): Ditto.
	* include/winbase.h (FreeResource): Ditto.
	Thanks to: "Harold Hunt" <huntharo@msu.edu>
2001-03-30 13:22:17 +00:00
Corinna Vinschen f42da31ad6 * fhandler.h (class fhandler_console): Add members `savebufsiz' and
`savebuf' to allow save/restore of screen.
        * fhandler_console.cc (fhandler_console::dup): Duplicate savebuf.
        (fhandler_console::fhandler_console): Initialize `savebufsiz' and
        `savebuf'.
        (fhandler_console::char_command): Add terminal capabilities
        "save screen content" = \E[?47h and "restore screen content" = \E[?47l.
2001-03-30 11:10:13 +00:00
Christopher Faylor b5eb3d0f15 * path.cc (chdir): Eat trailing whitespace on input path. 2001-03-29 00:30:39 +00:00
Christopher Faylor 1ac6d1a144 * lib/_cygwin_S_IEXEC.c: Remove "const" from globals or they never seem to be
defined.  Wrap definitions in extern "C".  Include winsup.h to assure proper
definitions.
* dcrt0.cc (dll_crt0_1): Call stdio_init after premain run so that binmode.o,
etc., will control default stdio settings.
* dtable.cc (dtable::init_std_file_from_handle): Allow __fmode to force
binmode/textmode settings.  Default pipes to binmode.
2001-03-28 03:42:58 +00:00
Corinna Vinschen 37a2d97a31 * mmap.cc (mmap): Fix conditional for previous patch. 2001-03-27 09:35:39 +00:00
Christopher Faylor 90725b3297 add missing stuff. 2001-03-26 22:17:06 +00:00
Corinna Vinschen 1636a5a1e8 * mmap.cc (mmap): Outflank copy-on-write problem on 9x by
setting access mode to FILE_MAP_READ when read access is requested.
2001-03-26 18:17:15 +00:00
Christopher Faylor aa73152ef7 * dlfcn.cc (check_access): Eliminate.
(check_path_access): Use passed in path_conv buf.
(get_full_path_of_dll): Use passed in name buf to avoid a static.  Rip out most
of the path checking since LoadLibrary will do all of this automatically.
(dlopen): Set errno when appropriate (may not be compliant?).
* environ.cc (posify): Don't pass in "native" path if it seems to actually be
posix.
2001-03-26 01:16:11 +00:00
Christopher Faylor db0421f6ec * fhandler.h (fhandler_dev_clipboard): Extend to support writing.
* fhandler_clipboard.cc (fhandler_dev_clipboard::fhandler_dev_clipboard):
Initialize new fields.  Open clipboard here.
(fhandler_dev_clipboard::dup): New method.
(fhandler_dev_clipboard::open): Accomodate new fields.  Register clipboard
here, if appropriate.
(set_clipboard): New function.  Moves buffer to clipboard.
(fhandler_dev_clipboard::write): Truly implement clipboard writing.
(fhandler_dev_clipboard::read): Reimplement to allow successive reads.
(fhandler_dev_clipboard::lseek): Truly implement seeks in clipboard.
(fhandler_dev_clipboard::close): Clear out new fields.  Support sequential
reads and sequential writes.  Support for binary data via a native clipboard
format.
2001-03-22 22:11:34 +00:00
Christopher Faylor 0b30bad456 * fhandler_console.cc (fhandler_console::set_default_attr): Update console
color attributes on tty reset.
2001-03-22 18:19:00 +00:00
Christopher Faylor c445814840 * autoload.cc (kernel32_init): New function for kernel32 autoload
initialization.
(SignalObjectAndWait): Add conditional load of this function when it is
available.
2001-03-22 03:42:08 +00:00
Christopher Faylor 99a40adcd9 add new file. 2001-03-21 16:06:22 +00:00
Christopher Faylor 6b2a2aa4af Add missing files. 2001-03-21 14:00:29 +00:00
Christopher Faylor 9a08b2c02e * sched.cc: New file. Implement sched*.
* include/sched.h: New file.  User land includes for sched*.
* Makefile.in: Add sched.o
* cygwin.din: Add exports for sched*.
2001-03-21 02:17:58 +00:00
Christopher Faylor a1299ba54b * dtable.cc: Guard against new winsock.h/winsock2.h warnings when mixing
winsock*.h and sys/types.h.
* fhandler_socket.cc: Ditto.
* net.cc: Ditto.
* select.cc: Ditto.
* exceptions.cc: Remove unneeded define.
2001-03-20 19:50:28 +00:00
Christopher Faylor dac9c6045f * include/winsock.h (_SYS_TYPES_H macro guard for int types): Remove; use only
_BSDTYPES_DEFINED macro now defined in newlib sys/types.h.
(SYS_TYPES_H macro guard for fd_set): Replace with_SYS_TYPES_FD_SET macro now
defined in newlib sys/types.h.  Emit warning if defined.
* include/winsock2.h: Ditto.
* include/windows.h (Win32_Winsock): Replace with new macros __USE_W32_SOCKETS
and warn of deprecation.
2001-03-20 19:27:37 +00:00
DJ Delorie eec74f4ac6 * configure: fix regeneration bug. 2001-03-20 01:26:45 +00:00
Christopher Faylor b8c8fa1786 * exceptions.cc (interruptible): Update debugging output.
(setup_handler): Ensure that wait_sig loop wakes up when we punt on sending a
signal.
* poll.cc (poll): Add signal guard here.
2001-03-19 22:48:26 +00:00
Egor Duda 78ace8a7e5 * tty.h (tty::create_inuse): Add new parameter to allow non-
inheritable 'inuse' events.
* tty.cc (tty::create_inuse): Use new parameter.
* fhandler_tty.cc (fhandler_tty_master::init): Ditto.
* fhandler_tty.cc (fhandler_pty_master::open): Ditto.
* fhandler_tty.cc (fhandler_tty_master::init): Create master_alive
event.
* tty.cc (tty_list::terminate): Close master_alive event.
* fhandler_tty.cc (fhandler_tty_common::close): Send EOF to slaves
when master side is closed.
2001-03-19 18:27:37 +00:00
Corinna Vinschen 98750a8404 * mmap.cc (map::get_list_by_fd): Avoid calling `get_namehash' when
file descriptor is -1.
2001-03-19 13:33:51 +00:00
Corinna Vinschen 30f326bf5e * syscalls.cc (check_posix_perm): New static function.
(fpathconf): Add _PC_POSIX_PERMISSIONS and _PC_POSIX_SECURITY
        support.
        (pathconf): Ditto.
        * include/cygwin/version.h: Bump API minor number to 37.
2001-03-19 11:02:41 +00:00
Christopher Faylor 94b03f2380 Fix spacing, copyrights. 2001-03-18 21:11:25 +00:00
Christopher Faylor 51cb7ca7ac fix spacing. 2001-03-18 20:58:18 +00:00
Egor Duda 5e8e21d938 * fhandler.h (fhandler_tty_slave): Declare new methods.
* select.cc (fhandler_tty_slave::select_read): New method.
* select.cc (fhandler_tty_slave::ready_for_read): Ditto.
* select.cc (verify_tty_slave): New function.
* fhandler_termios.cc (fhandler_termios::line_edit): Empty input
buffer on signal.
* fhandler_tty.cc (fhandler_tty_slave::read): Check for input data
after reading from pipe. Reset event if input pipe is empty.
* tty.h (class tty): Allow creating events with manual reset.
* tty.cc (tty::get_event): Use manual_reset flag.
* tty.cc (tty::common_init): Create input_available_event with
manual reset.
2001-03-18 18:05:01 +00:00
Christopher Faylor ca1cea7ed3 Update copyrights. 2001-03-18 03:34:05 +00:00
Christopher Faylor 9d1373cf8a Update copyright. 2001-03-18 03:25:30 +00:00
Christopher Faylor 00a7496150 * external.cc (fillout_pinfo): Match windows pid, as well as cygwin pid when
passed in pid.  Don't prematurely break when searching for a pid.
* thread.h (_winsup_t): Eliminate unneeded field.
2001-03-18 02:49:29 +00:00
Christopher Faylor ee57685985 * kill.cc (forcekill): Use dwProcessId when opening a process, not the Cygwin
pid.
2001-03-18 02:47:39 +00:00
Corinna Vinschen 8eb72e632c * net.cc (get_95_ifconf): Use strcasematch instead of strcasecmp.
* syscalls.cc (_unlink): Ditto.
        (_rename): Ditto.
2001-03-17 19:53:52 +00:00
David Starks-Browning 75c12e1f7a British -> US spelling.
Add .inputrc tip to entry "How can I copy and paste into Cygwin console windows?"
2001-03-17 18:50:22 +00:00
Christopher Faylor 57499703f2 * path.cc (suffix_scan::next): Avoid searching for foo.lnk twice when input is
"foo".
2001-03-17 17:44:53 +00:00
Corinna Vinschen 298fad4623 * net.cc (cygwin_socket): Set protocol to 0 when address family is
AF_UNIX to avoid WSAEPROTONOSUPPORT error.
2001-03-17 17:13:52 +00:00
Corinna Vinschen f52488f76b * net.cc (cygwin_socket): Pass protocol parameter to socket call. 2001-03-17 17:04:45 +00:00
David Starks-Browning 3614840015 Remove "not yet updated" caveat from entry:
"How is the DOS/Unix CR/LF thing handled?"
2001-03-17 16:18:01 +00:00
Christopher Faylor b63a3f55a7 * dir.cc (readdir): Use strcasematch for consistency.
* path.cc (symlink_info): Eliminate known_suffix.
(path_conv::check): Always copy ext_here to end of buffer, if found.
(suffix_scan): Eliminate ext_here, add suffixes_start.
(suffix_scan::has): Eliminate an argument.  Reorganize.  Always return pointer
to end of input path.
(suffix_scan::next): Take a second pass through the suffix list looking for
.lnk.
(symlink_info::check): Eliminate known_suffix usage.
2001-03-17 07:09:41 +00:00
Christopher Faylor 92f4bf9725 Fix typo. 2001-03-17 05:14:16 +00:00
Christopher Faylor db15b3e359 Accomodate all devices. 2001-03-17 05:11:20 +00:00
Christopher Faylor 5bb22c6b1d * syscalls.cc (stat_dev): Give devices full read/write. 2001-03-17 05:06:14 +00:00
Christopher Faylor c0c9de3c66 * thread.cc (MTinterface::CreateCond): Check for null attr pointer. 2001-03-17 04:49:13 +00:00
Christopher Faylor ddca580f9a * fhandler_termios.cc (fhandler_termios::line_edit): Don't accept input when a
signal is sent or we'll end up in an EOF/signal race.
2001-03-17 02:15:33 +00:00
Christopher Faylor ed4c976cf2 fix spelling error. 2001-03-17 01:45:40 +00:00
Christopher Faylor b65c6896c8 * path.cc: Translate scan states from defines to enums.
(suffix_scan): Rename state to nextstate for clarity.
(lnk_match): Change to allow multiple states to indicate that a .lnk has been
matched.
(suffix_scan::has): Eliminate a goto.  Handle .lnk as a special case, since a
.lnk may also need to be tacked on the end of a .lnk.
(suffix_scan::next): Don't increment next state.  Set it specifically.
Recognize new .lnk states.
2001-03-17 01:29:14 +00:00
Christopher Faylor 5ccbf4b699 * cygwin.din: Export the new functions.
* pthread.cc (pthread_cond_*): Add wrapper functions that call __pthread_cond*
functions.
* thread.cc (__pthread_cond_*): Implement the pthread_cond* functions.
* thread.h: Add new class entries and prototypes for __pthread_cond* functions.
* include/pthread.h: user land header prototypes for pthread_cond* functions
and related defines.
2001-03-17 01:14:58 +00:00
Corinna Vinschen e212576dba * environ.cc (parse_options): Use strtok_r instead of strtok.
* security.cc (convert_string_sid_to_sid): Ditto.
        (aclfromtext): Ditto. Fix buffer usage.
2001-03-14 15:32:49 +00:00
Corinna Vinschen 78d2c08cd9 * path.cc (lnk_suffixes): Remove.
(class suffix_scan): Add `lnk_state' flag.
        (suffix_scan::lnk_match): Return state of `lnk_state' now.
        (suffix_scan::has): Changed behaviour if file has `.lnk' suffix.
        (suffix_scan::next): Set `lnk_state' where appropriate.
        (symlink_info::check): Fix a wrong `break'.
        * syscalls.cc (chown_worker): Change debug statement to reflect
        lchown fix.
        (lchown): Call chown_worker with `PC_SYM_NOFOLLOW' instead of
        `PC_SYM_IGNORE'.
2001-03-14 11:13:46 +00:00
Corinna Vinschen 1d39c83a32 * fhandler.cc (fhandler_disk_file::fstat): Add correct modes to
symlinks when stat'ing on FAT or FAT32 file systems.
2001-03-13 13:07:15 +00:00
Earnie Boyd ce2924faee * include/wingdi.h: (DOCINFO) Ansi version defined incorrectly.
Thanks to: Mattia Barbon <mbarbon@dsi.unive.it>
2001-03-13 12:04:57 +00:00
Egor Duda 344ce60cfb Fix typo 2001-03-13 07:58:29 +00:00
Egor Duda e935fcf08a * fhandler.h (fhandler_termios::fixup_after_exec): New function.
* fhandler.cc (fhandler_termios::fixup_after_fork): New function.
Fixup output handle.
* fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Output
handle is now fixed up in fhandler_termios::fixup_after_fork().
2001-03-12 21:27:42 +00:00
Egor Duda 79409dc0a2 * fhandler.h (fhandler_termios::fhandler_termios): Enable fixup
after fork.
* fhandler_console.cc (fhandler_console::fhandler_console): Fixup
after fork is now enabled in the base class constructor.
2001-03-12 20:39:40 +00:00
Earnie Boyd 17bd7f5a37 * include/commctrl.h (TBSTYLE_FLAT): New definition.
(TB_GETBUTTONSIZE): Ditto.
	(TCS_HOTTRACK): Ditto.
	Thanks to: Chris Hansen <popeofpop@softhome.net>
2001-03-12 19:26:16 +00:00
Christopher Faylor 2b777e2e94 * mkvers.sh: Include config.h so that DEBUGGING is correctly defined. 2001-03-12 16:20:30 +00:00
Christopher Faylor 941fa5ad96 * spawn.cc (spawn_guts): Don't set EXIT_REPARENTING if parent process is not a
cygwin process (suggested by Jason Gouger <cygwin@jason-gouger.com>).
2001-03-12 14:49:29 +00:00
Christopher Faylor d0909d913a * child_info.h: Bump magic number for fork/exec/spawn. 2001-03-11 21:05:49 +00:00
Christopher Faylor abb88b6f53 Remove obvious brain freeze problem. 2001-03-11 16:46:28 +00:00
Christopher Faylor 2116a17508 * autoload.cc (noload): Use proper method for multiline strings or newer gcc's
complain.
* exceptions.cc (unused_sig_wrapper): Ditto.
* fhandler.h (fhandler_base): Make get_io_handle and friends return self.
* fhandler_tty.cc (fhandler_pty_common::close_on_exec): Accomodate DEBUGGING
flag to avoid spurious warnings when inheritance is set.
2001-03-11 01:58:23 +00:00
Christopher Faylor 7cf3b655ec * shortcut.c (PATH_ALL_EXEC): Add parentheses to avoid a compiler warning.
* exceptions.cc (setup_handler): Clarify debugging message.
* sigproc.cc (proc_subproc): Remove PROC_CHILDSTOPPED test.  It is handled by
normal PROC_CLEARWAIT case.
(wait_sig): Eliminate "dispatched" tracking.  Remove __SIGCHILDSTOPPED test.
Decrement counter again before jumping out of InterlockedDecrement loop so that
subsequent InterlockedIncrement will keep the counter at the correctly
decremented value and also detect when there are pending signals.
* sigproc.h: Remove __SIGCHILDSTOPPED element.
(procstuff): Remove PROC_CHILDSTOPPED element.
2001-03-10 23:37:50 +00:00
Christopher Faylor e2f2a27ee8 * syscalls.cc (_rename): Set errno to ENOENT when an old path doesn't exist
(from Kazuhiro Fujieda <fujieda@jaist.ac.jp>).  Also set EACCES when directory
is not writable.
2001-03-10 20:25:19 +00:00
Egor Duda 766de5ad55 * winsup.api/ltp/access01.c: Avoid compilation error if X_OK
isn't declared as a constant.
2001-03-10 16:45:28 +00:00
Egor Duda 85057d174f * config/default.exp: Remove unneeded debugging output.
* Makefile.in: Use correct path to find dejagnu in local tree.
2001-03-09 15:39:28 +00:00
Christopher Faylor 6ebccdc110 * syscalls.cc (_read): Change definition to return ssize_t to be consistent
with read.
(_write): Change definition to return ssize_t to be consistent with write.
2001-03-07 20:52:33 +00:00
Christopher Faylor 8f98585d51 Update copyright. 2001-03-07 17:45:03 +00:00
Christopher Faylor efd76e4140 * sigproc.h (sigthread): Declare new methods. Create new winapi_lock field.
(sigframe:;set): Call get_winapi_lock after frame is set so that signal handler
thread knows not to call SuspendThread.
(sigframe::~sigframe): Release winapi_lock.
* exceptions.cc (sigthread::get_winapi_lock): New method.
(sigthread::release_winapi_lock): New method.
(setup_handler): Use get_winapi_lock to ensure that signalled thread is not
blocked in a Windows API.
* path.h (path_types): Avoid broken GCC warning.
2001-03-07 06:19:34 +00:00
Corinna Vinschen bf11a54f54 * path.cc (suffix_scan::has): Change order of conditionals
to allow checking for .lnk suffixes even if in_suffixes is empty.
2001-03-06 13:05:56 +00:00
Corinna Vinschen 7cdc9feea1 * autoload.c (cygwin_premain0): Add missing parameter.
* binmode.c (cygwin_premain0): Ditto.
        * textmode.c (cygwin_premain0): Ditto.

Patch contributed by Jason Tiller <jtiller@sjm.com> :
        * auto_load.cc: Add "GetKeyboardLayout" entry in the list of
        Win32 User32.DLL exports to provide.
        * fhandler.h (class fhandler_console): Add meta_mask private
        member to remember which keystroke modifiers should generate
        META.
        * fhandler_console.cc (fhandler_console::read): Modify code that
        tests a keystroke for a META-escaped key to use the 'meta_mask'
        variable.
        (fhandler_console::fhandler_console): Add definition for
        variable "meta_mask" used to determine if a keystroke should be
        preceded by META in the client console stream.  Set meta_mask
        based on whether or not user's keyboard language is English -
        non-English keyboards pass AltGr (right <ALT>) unmolested,
        whereas English keyboards now interpret left- and right-<ALT>
        as META.
2001-03-06 12:05:45 +00:00
Corinna Vinschen a887211b00 * include/a.out.h: Add copyright hint.
* include/fcntl.h: Ditto.
        * include/lastlog.h: Ditto.
        * include/memory.h: Ditto.
        * include/mntent.h: Ditto.
        * include/paths.h: Ditto.
        * include/poll.h: Ditto.
        * include/syslog.h: Ditto.
        * include/termio.h: Ditto.
        * include/tzfile.h: Ditto.
        * include/arpa/inet.h: Ditto.
        * include/asm/byteorder.h: Ditto.
        * include/asm/socket.h: Ditto.
        * include/asm/types.h: Ditto.
        * include/cygwin/if.h: Ditto.
        * include/cygwin/mtio.h: Ditto.
        * include/cygwin/rdevio.h: Ditto.
        * include/cygwin/socket.h: Ditto.
        * include/net/if.h: Ditto.
        * include/netinet/in.h: Ditto.
        * include/netinet/in_systm.h: Ditto.
        * include/netinet/ip.h: Ditto.
        * include/netinet/ip_icmp.h: Ditto.
        * include/netinet/tcp.h: Ditto.
        * include/sys/cdefs.h: Ditto.
        * include/sys/cygwin.h: Ditto.
        * include/sys/ioctl.h: Ditto.
        * include/sys/mman.h: Ditto.
        * include/sys/mount.h: Ditto.
        * include/sys/mtio.h: Ditto.
        * include/sys/procfs.h: Ditto.
        * include/sys/resource.h: Ditto.
        * include/sys/smallprint.h: Ditto.
        * include/sys/socket.h: Ditto.
        * include/sys/strace.h: Ditto.
        * include/sys/syslog.h: Ditto.
        * include/sys/sysmacros.h: Ditto.
        * include/sys/termio.h: Ditto.
        * include/sys/termios.h: Ditto.
        * include/sys/uio.h: Ditto.
        * include/sys/un.h: Ditto.
        * include/sys/utsname.h: Ditto.
        * include/sys/vfs.h: Ditto.
        * include/sys/wait.h: Ditto.
        * regexp/regerror.c: Ditto.
        * regexp/regexp.h: Ditto.
        * regexp/regmagic.h: Ditto.
2001-03-05 21:29:24 +00:00
Corinna Vinschen ce63785554 * getfacl.c: Add copyright hint.
* setfacl.c: Ditto.
        * strace.cc: Ditto.
2001-03-05 17:55:23 +00:00
Christopher Faylor 95a8465ba0 * dlopen.c (dlopen): Return NULL when name is NULL (suggested by
chrisiasci@aol.com).
* cygwin.din: Add a new, internally used export - _check_for_executable.
* dcrt0.cc (dll_crt0_1): Set _check_for_executable for older binaries.  Pass
user_data to premain functions.
* fhandler.cc (fhandler_disk_file::open): Only check for executable if the
linked program is intereested in the executable bit.
(fhandler_disk_file::check_execable_p): Delete.
* fhandler.h (executable_states): New enumeration of various states of
executable bit caring.
(fhandler_base::set_execable_p): New method.
* fhandler_termios.cc (fhandler_termios::line_edit): Flag when a signal has
been sent to the tty.  Return -1 when this is so.
* fhandler_console.cc (fhandler_console::read): Return -1 when signal sending
character encountered.
* path.cc (path_conv::check): Record when path refers to a disk device.  Move
executable extension check here.
(check_sysfile): Accomodate new EXEC path states.
(has_suffix): Remove.
(next_suffix): Remove.
(class suffix_scan): New clas.
(suffix_scan::has): New method.
(suffix_scan:next): New method.
(symlink_info::check): Use suffix_scan method to control for scanning for
suffixes.
* path.h (path_conv::exec_state): New method.
* perprocess.h: Make "C" friendly.
* include/cygwin/version.h: Define CYGWIN_VERSION_CHECK_FOR_S_IEXEC.  Bump
CYGWIN_VERSION_API_MINOR.
* include/sys/cygwin.h: Change premain declarations.
* winsup.h: Move __cplusplus test to after builtin defines.
2001-03-05 06:28:25 +00:00
Egor Duda 306c4b6737 * fhandler.h (class fhandler_tty_common): New mutex and event to
syncronize input on master tty with slave tty.
* fhandler_tty.cc (fhandler_pty_master::accept_input): Use them to
syncronize with slave.
* fhandler_tty.cc (fhandler_tty_slave::read): Use input mutex and
event to syncronize with master. Do not limit amount of data read
from master to vmin value. Interrupt on signal and return already
read data, if any.
* fhandler_tty.cc (fhandler_tty_slave::open): Handle input mutex and
event.
* fhandler_tty.cc (fhandler_tty_common::close): Ditto.
* fhandler_tty.cc (fhandler_tty_common::set_close_on_exec): Ditto.
* fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Ditto.
* fhandler_tty.cc (fhandler_tty_common::dup): Ditto.
* tty.h (tty::open_input_mutex): New function.
* tty.cc (tty::common_init): Create input mutex and event.
2001-03-04 15:34:25 +00:00
Christopher Faylor 0312ede431 *** empty log message *** 2001-03-03 03:56:34 +00:00
Corinna Vinschen ed94def22d * dir.cc (readdir): Fix creating path in symlink check. 2001-03-02 12:33:50 +00:00
Corinna Vinschen 75c566fc64 * cygwinenv.sgml: Add text for `winsymlinks' option.
* how-api.texinfo: Add text to explain new symlinks==shortcuts
        and the CYGWIN setting `(no)winsymlinks'.
        * how-using.texinfo: Add text that Cygwin now treats shortcuts
        as symlinks.
2001-03-02 12:05:31 +00:00
Corinna Vinschen e03f5f7338 * dir.cc (readdir): Fix shortcut==symlink condition.
* environ.cc: Add extern decl for `allow_winsymlinks'.
        (struct parse_thing): Add entry for `[no]winsymlinks'.
        * path.cc (symlink): Change to be able to create both,
        symlink==shortcut and symlink==systemfile, dependent of
        the setting of `allow_winsymlinks'.
        * security.cc (cygwin_logon_user): Add debug output.
        * shortcut.c: Add defines from path.h.
        (has_exec_chars): Copy from path.h.
        (check_shortcut): Check for executable file condition if not a
        shortcut.
2001-03-02 11:41:09 +00:00
Christopher Faylor 903c330dbe * exceptions.cc (sig_handle_tty_stop): Ignore attempts to suspend a process if
started by non-cygwin parent.
2001-03-02 02:09:40 +00:00
Christopher Faylor d80999a1c4 * select.cc (peek_console): Don't report read_ready on mouse events unless we
are looking for mouse events.
* fhandler.h (fhandler_console::mouse_aware): New method.
2001-03-02 01:55:21 +00:00
Earnie Boyd 4124e827f2 2001-03-01 Earnie Boyd <earnie@users.sourceforge.net
* Makefile.in: (snapshot): Add target.
	* lib/Makefile.in: (install-headers): Use installdir variable.
	(installdir): Set value based on target-alias.
2001-03-01 20:32:34 +00:00
Corinna Vinschen 2de7601434 * uinfo.cc: Eliminate `#include <wchar.h>'. 2001-02-28 14:14:03 +00:00
Egor Duda 739db26a31 * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Determine
drive geometry or partition size to allow seeking from the end of
raw floppy device. Don't allow positioning past the end of media or
to offsets bigger then max off_t.
2001-02-28 09:59:54 +00:00
Egor Duda a53136cc46 * fhandler.h (class fhandler_console): Make all variables that
describe "state" of console to be members of fhandler_console.
default_color is now the color which is set when console recieves
reset command.
* fhandler_console.cc (fhandler_console::fhandler_console): Turn
mouse handling and raw keyboard mode off by default. Initialize
state information.
* fhandler.cc (fhandler_console::set_raw_win32_keyboard_mode): New
function.
* fhandler_console.cc (fhandler_console::set_default_attr): New
function. Reset console attributes to default values.
* fhandler_console.cc (fhandler_console::open): Reset attributes.
* fhandler_console.cc (fhandler_console::get_win32_attr): New function.
Calculate win32-style console attribute based on terminal attributes.
* fhandler_console.cc (fhandler_console::set_cursor_maybe): Use
member variable.
* fhandler_console.cc (fhandler_console::read): If in raw-win32
keyboard mode, encode win32 keyboard events in \033{x;y;z;t;u;wK
sequences.
* fhandler_console.cc (fhandler_console::dup): Copy all state
information to the dup()ed handle.
* fhandler_console.cc (fhandler_console::scroll_screen): Use current
fill-in	attribute.
* fhandler_console.cc (fhandler_console::clear_screen): Ditto.
* fhandler_console.cc (fhandler_console::char_command): Check if we
saw '?' symbol by member variable. Set terminal	attributes on \033[Xm
commands. \033[24m - turn off underline mode, \033[27m - turn off
reverse mode, \033[39m - restore default foreground color.
\033[49m - restore default background color. \033[2000h - turn on raw
keyboard mode, \033[2000l - turn off raw keyboard mode.
* fhandler_console.cc (fhandler_console::write): Set attribues to
default values on reset command.
2001-02-27 09:14:35 +00:00
Christopher Faylor 5b331f1ef1 * times.cc (settimeofday): Replace function stub with working code. 2001-02-26 22:36:09 +00:00
Corinna Vinschen 88429768bb * strace.cc (strace::vprntf): Move prntf functionality to this function
adding an va_list interface to strace.
        (strace::printf): Calls strace::vprntf now.
        (strace_printf): New function providing an extern "C" interface to
        trace output.
        * include/sys/strace.h: Make plain C clean.
        (class strace): Add `vprntf' method.
2001-02-26 09:50:24 +00:00
Corinna Vinschen 6626ebfef7 * shortcut.c: Remove #include <sys/strace.h>. 2001-02-25 23:14:52 +00:00
Corinna Vinschen 649033a811 * path.cc (symlink): Add a ".lnk" suffix regardless. Add a comment. 2001-02-25 09:34:00 +00:00
Corinna Vinschen 80ed95f2eb * shortcut.c: Change symlink condition. 2001-02-25 09:19:35 +00:00
Christopher Faylor c350452a41 CYGWIN32 -> CYGWIN. 2001-02-24 23:25:30 +00:00
Corinna Vinschen 675412e9d6 * mmap.cc (fhandler_disk_file::mmap): Use `addr' correctly.
* fhandler_mem.cc (fhandler_dev_mem::mmap): Ditto.
2001-02-23 09:49:19 +00:00
Corinna Vinschen 659b480b8a * path.cc (symlink): Keep relative paths relative in the DOS
path inside of a shortcut. If that's impossible or the target
        path is already absolute save an absolute path.
2001-02-22 16:26:13 +00:00
Corinna Vinschen ff413a9894 * path.cc (symlink): Keep relative paths relative in the DOS
path inside of a shortcut. If that's impossible for some
        reason, save an absolute path.
2001-02-22 16:14:59 +00:00
Corinna Vinschen c5a4eacc69 * cygerrno.h: Revert previous patch.
* errno.cc: Ditto.
        * dir.cc: Eliminate `dir_suffixes'.
        (opendir): Remove usage of `dir_suffixes'.
        (rmdir): Ditto.
        * fhandler.cc (fhandler_disk_file::open): Remove usage of
        `inner_suffixes'.
        * path.cc: Rename `inner_suffixes' to `lnk_suffixes'.
        (path_conv::check): Remove usage of `inner_suffixes'.
        (symlink): Ditto.
        (symlink_info::check): Handle checking for `.lnk' in path_conv
        exclusively here.
        (chdir): Remove usage of `dir_suffixes'.
        * shortcut.c: Eliminate debug_printf lines.
        (check_shortcut): Don't set error except on failing ReadFile.
        * spawn.cc: Remove ".lnk" from `std_suffixes'.
        * syscalls.cc (_unlink): Remove usage of `inner_suffixes'.
        Remove ".lnk" from `stat_suffixes'.
        (_rename): Add check for renaming a symlink to keep the ".lnk"
        suffix after renaming.
2001-02-22 14:51:16 +00:00
Corinna Vinschen 79e56091c9 * shortcut.c: New file. Provides a C interface to reading of
Windows shortcuts to avoid compiler flag `-fvtable-thunks'.
        * shortcut.h: Ditto.
        * Makefile.in: Add shortcut.o to DLL_OFILES.
        * cygerrno.h: Provide a C interface to `geterrno_from_win_error' for
        using in shortcut.c.
        * errno.cc (geterrno_from_win_error): Define as extern "C".
        * path.cc (struct symlink_info): Remove methods `check_shortcut' and
        `check_sysfile'.
        (shortcut_header): Move to shortcut.c.
        (shortcut_initalized): Ditto.
        (create_shortcut_header): Ditto.
        (cmp_shortcut_header): Ditto.
        (symlink_info::check_shortcut): Ditto. Reorganize as a plain C function.
        (symlink_info::check_sysfile): Redefine as a global function using the
        same parameter list as `check_shortcut' for clearness.
        (symlink_info::check): Change parameter list for calls to
        `check_shortcut' and `check_sysfile'.
2001-02-22 12:56:36 +00:00
Corinna Vinschen 957059c831 * Makefile.common: Revert previous change. 2001-02-22 12:37:32 +00:00
Corinna Vinschen 87e6b0981f * fhandler.cc (fhandler_disk_file::open): Use `inner_suffixes' when
resolving real_path.
        * path.cc (symlink): Ditto for win32_topath.
2001-02-22 11:06:25 +00:00
Corinna Vinschen fc168ded9e Add copyright year 2001 2001-02-21 22:59:11 +00:00
Corinna Vinschen 10b06c5ee0 * Makefile.in: Add `-lshell32 -luuid' to link pass for new-cygwin1.dll.
* autoload.cc: Add LoadDLLinitfunc for ole32.dll.
        Add LoadDLLfuncEx statements for CoInitialize@4, CoUninitialize@0
        and CoCreateInstance@20.
        * dir.cc (dir_suffixes): New datastructure.
        (readdir): Check for R/O *.lnk files to hide the suffix.
        (opendir): Use `dir_suffixes' in path conversion.
        (rmdir): Ditto.
        * fhandler.cc (fhandler_disk_file::fstat): Add S_IFLNK flag
        before calling `get_file_attribute'. Take FILE_ATTRIBUTE_READONLY
        into account only if the file is no symlink.
        * path.cc (inner_suffixes): New datastructure.
        (SYMLINKATTR): Eliminated.
        (path_conv::check): Use `inner_suffixes' on inner path components.
        (shortcut_header): New global static variable.
        (shortcut_initalized): Ditto.
        (create_shortcut_header): New function.
        (cmp_shortcut_header): Ditto.
        (symlink): Create symlinks by creating windows shortcuts. Preserve
        the old code.
        (symlink_info::check_shortcut): New method.
        (symlink_info::check_sysfile): Ditto.
        (symlink_info::check): Check for shortcuts. Move code reading
        old system attribute symlinks into symlink_info::check_sysfile().
        (chdir): Use `dir_suffixes' in path conversion.
        * security.cc (get_file_attribute): Check for S_IFLNK flag.
        Force 0777 permissions then.
        * spawn.cc (std_suffixes): Add ".lnk" suffix.
        * syscalls.cc (_unlink): Use `inner_suffixes' in path conversion.
        Check for shortcut symlinks to eliminate R/O attribute before
        calling DeleteFile().
        (stat_suffixes): Add ".lnk" suffix.
        (stat_worker): Force 0777 permissions if file is a symlink.
2001-02-21 21:49:37 +00:00
Corinna Vinschen 5b2ea3a436 * Makefile.common: Add `-fvtable-thunks' to COMPILE_CXX. 2001-02-21 21:46:47 +00:00
Earnie Boyd c7193585d3 * include/w32api.h: (_W32API_VERSION): Remove.
(__W32API_VERSION): Add.
	(__W32API_MAJOR_VERSION): Ditto.
	(__W32API_MINOR_VERSION): Ditto.
2001-02-21 21:44:59 +00:00
Earnie Boyd 0b0a9f4087 * include/wingdi.h (struct _DOCINFO[AW]): UNICODE it.
(StartDoc[AW]): Use UNICODE'd LPDOCINFO[AW]
	* include/winuser.h (struct tagMOUSEKEYS): Define new structure.
	* include/winerror.h (NTE_*): Add CryptoAPI error codes.
2001-02-21 21:37:18 +00:00
Earnie Boyd b701af168c * include/mswsock.h: New file.
* include/ws2tcpip.h: New file.
	* include/winsock.h (IPPROTO_IGMP): New define.
	(IPPROTO_GGP): Correct value.
	(SO_* macros): Remove mswsock defines.
	(TCP_BSDURGENT): Likewise.
	(IP_* macros): Add comment warning of WinSock2 incompatibility
	(WSARecvEx): Remove mswsock prototype.
	(TransmitFile): Likewise.
	(AcceptEx): Likewise.
	(GetAcceptExSockaddrs): Likewise.
	(struct _TRANSMIT_FILE_BUFFERS): Remove mswsock definition.
	(#include <mswsock.h>): Add directive and explanatory comment
	* include/winsock2.h (header guard): add guard for  _WINSOCK_H
	(_WINSOCK_H): Define to prevent later inclusion of winsock.h
	(#include <winsock.h>): Replace directive with winsock.h file content
	The following changes apply to the merged file:
	(FD_SET): Keep winsock2.h definition, delete winsock.h definition
	(SOMAXCONN): Likewise
	(#include <nspapi.h>): Move - don't include until LPSOCKADDR defined
	(IP_* macros): Delete WinSock1 definitions (WinSock2 definitions now
	in ws2tcpip.h)
	(struct ip_mreq): Delete (now defined in ws2tcpip.h for WinSock2)
	(FD_*_BIT and FD_* defines): Place together and extend to
	FD_MAX_EVENTS 10
	(AF* defines): Extend to AF_MAX 10
	(WSAIsBlocking): #if 0 out prototype (N/A in WinSock2)
	(WSAUnhookBlockingHook): Likewise.
	(WSASetBlockingHook): Likewise.
	(WSACancelBlockingCall): Likewise.
	(WSAEINPROGRESS): Comment as not raised in WinSock2.
	(#include <mswsock.h>): Delete directive inherited from winsock.h
	(WSA_QOS* defines): Add QualityOfService error codes.
	(SIO_* defines): Add new macros
	* include/ipexport.h (IP_STATUS flags): Add definitions.
	(IP_FLAG_DF): Likewise.
	(IP_OPT_* ): Likewise.
	(struct ip_option_information): Likewise.
	(struct icmp_echo_reply): Likewise.
2001-02-21 20:40:47 +00:00
Earnie Boyd d53c723240 * include/tchar.h: (__TEXT): Remove undef.
(_TEXT): Ditto.
	(_T): Ditto.
2001-02-21 19:33:42 +00:00
Earnie Boyd ea9bdf67b8 * include/commctrl.h: Revert TEXT change.
* include/lmalert.h: Ditto.
	* include/lmcons.h: Ditto.
	* include/lmsname.h: Ditto.
	* include/lmsvc.h: Ditto.
	* include/ntsecapi.h: Ditto.
	* include/oledlg.h: Ditto.
	* include/ras.h: Ditto.
	* include/regstr.h: Ditto.
	* include/richedit.h: Ditto.
	* include/wininet.h: Ditto.
	* include/winnt.h: Ditto.
2001-02-21 19:31:54 +00:00
Egor Duda 0917ed5950 * sigproc.cc (getsem): Make semaphore always non-inheritable. 2001-02-21 11:40:22 +00:00
Christopher Faylor 441d7aeef1 * dcrt0.cc (locale_init): Remove. 2001-02-20 03:28:01 +00:00
Christopher Faylor f97e7d754c * cygwin.din: Export rand48 functions.
* thread.cc (MTinterface::Init): Remove the initialization of `reent_data'.
* dcrt0.cc: Add the initalizer to the declaration of `reent_data'.
* include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 35.
2001-02-20 02:53:55 +00:00
Egor Duda fc68bf34bb * signal.cc (signal): Prohibit setting handlers for SIGKILL and SIGSTOP
* signal.cc (sigaction): Ditto
* syscalls.cc (_lseek): Return EINVAL on invalid input
2001-02-16 18:49:20 +00:00
Earnie Boyd 00aae5a740 * include/w32api.h: Oops forgot to cvs add this. 2001-02-15 17:28:40 +00:00
Earnie Boyd 10216d4395 * include/commctrl.h: Use _TEXT() instead of TEXT() throughout.
* include/lmalert.h: Ditto.
	* include/lmcons.h: Ditto.
	* include/lmsname.h: Ditto.
	* include/lmsvc.h: Ditto.
	* include/ntsecapi.h: Ditto.
	* include/oledlg.h: Ditto.
	* include/ras.h: Ditto.
	* include/regstr.h: Ditto.
	* include/richedit.h: Ditto.
	* include/wininet.h: Ditto.
	* include/w32api.h: New File.
2001-02-15 17:26:22 +00:00
Christopher Faylor ee2c7251d0 * dlfcn.cc (dlopen): Do not call LoadLibrary with a NULL pointer, when the
library is not found
2001-02-14 23:45:56 +00:00
Christopher Faylor 8f8e7442bb * fhandler_console.cc (fhandler_console::char_command): Ignore unknown
rendition codes in \033[xx;yym control sequences
2001-02-14 22:00:09 +00:00
Corinna Vinschen 61ee24b56c * include/shlobj.h: Add missing SLR_* flags. 2001-02-13 21:39:57 +00:00
Earnie Boyd 5a4b4ab9cc * lib/Makefile.in: (host_alias): Add variable.
(host_build): Ditto:
	(xinstall): Removed
	(xinstall-libraries): Ditto.
	(xinstall-headers): Ditto.
	(xuninstall): Ditto.
	(xuninstall-libraries): Ditto.
	(xuninstall-headers): Ditto.
	* Makefile.in: (host_alias): Add variable.
	(build_alias): Ditto.
2001-02-12 19:45:33 +00:00
Christopher Faylor cde0c2fbca * fork.cc (fork_parent): Return EAGAIN when can't record pid.
* pinfo.h (pinfo::remember): Return value of call to proc_subproc.
* sigproc.cc (proc_subproc): Return error if can't record pid.
2001-02-10 04:20:52 +00:00
Christopher Faylor c41482c7ee * syscalls.cc (mknod): Add valid parameters. 2001-02-09 17:17:34 +00:00