]> sourceware.org Git - newlib-cygwin.git/blame - winsup/cygwin/ChangeLog
* path.cc (symlink_info::check): Remove erroneous assumption about
[newlib-cygwin.git] / winsup / cygwin / ChangeLog
CommitLineData
ab3cd888
CV
12010-09-30 Corinna Vinschen <corinna@vinschen.de>
2
3 * path.cc (symlink_info::check): Remove erroneous assumption about
4 required permissions when reading NFS symlinks.
5
1b035845
CF
62010-09-29 Christopher Faylor <me+cygwin@cgf.cx>
7
8 * fhandler_tty.cc (fhandler_tty_slave::init): Revert to using
9 tc->setpgid since previous change broke some use cases.
10
f95f18c9
CF
112010-09-28 Christopher Faylor <me+cygwin@cgf.cx>
12
13 * fhandler_tty.cc (fhandler_tty_slave::init): Add debugging. Use
14 tcsetpgrp to potentially set pgid since it is smarter about deciding if
15 a process is in the background.
16 * include/sys/cygwin.h (PID_ORPHANED): Actually delete as planned.
17 (PID_NOTCYGWIN): Correctly define.
18
9d86e318
CV
192010-09-28 Corinna Vinschen <corinna@vinschen.de>
20
21 * net.cc (getdomainname): Drop special case for NT4.
22
2a9b4b7a
CV
232010-09-28 Corinna Vinschen <corinna@vinschen.de>
24
25 Revert accidental previous login.
26
2f1f8815
CV
272010-09-28 Corinna Vinschen <corinna@vinschen.de>
28
29 * Makefile.in (DLL_IMPORTS): Remove libadvapi32.a.
30 * autoload.cc: Add all advapi32 entry points.
31 * mount.cc (mount_info::init): Read user fstab only if we have a
32 username.
33 * passwd.cc (pwdgrp::read_passwd): Only use username if we have one.
34 * shared.cc (user_info::initialize): Set cb last so as not to override
35 planned behaviour in pwdgrp::read_passwd.
36 * uinfo.cc (cygheap_user::init): Fetch Windows username from environment
37 variable $USERNAME. Don't set name in cygheap if variable is empty.
38 (internal_getlogin): If we still have no username, try GetUserNameW.
39
91e0b943
CV
402010-09-28 Corinna Vinschen <corinna@vinschen.de>
41
42 * fhandler_tty.cc (fhandler_pty_master::setup): Always create master
43 thread.
44
41c91ad6
CV
452010-09-28 Corinna Vinschen <corinna@vinschen.de>
46
47 * syscalls.cc (gethostid): Use correct path to ProductId registry value.
48
3f1d4f87
CV
492010-09-27 Corinna Vinschen <corinna@vinschen.de>
50
51 * mount.cc (fs_info::update): Remove erroneous NtClose on random handle
52 value.
53
ebdc75d9
CV
542010-09-26 Corinna Vinschen <corinna@vinschen.de>
55
56 * uinfo.cc (cygheap_user::init): Call GetUserNameW and convert to
57 multibyte here so as not to rely on the current ANSI page.
58
71ef2142
CF
592010-09-26 Christopher Faylor <me+cygwin@cgf.cx>
60
61 * dcrt0.cc (__main): Force signal synchronization.
62
92626feb
CV
632010-09-25 Corinna Vinschen <corinna@vinschen.de>
64
6fe59500
CV
65 * fhandler_socket.cc (fhandler_socket::bind): Drop has_exclusiveaddruse
66 condition. Fix comment about availability. Move remaining comment to
67 the right spot. Drop has_ip_helper_lib condition.
68 * net.cc (cygwin_setsockopt): Drop has_disabled_user_tos_setting
69 condition. Fix comment.
70 (get_2k_ifs): Fix comment.
71 (get_nt_ifs): Remove.
72 (getifaddrs): Drop call to get_nt_ifs.
73 (get_ifconf): Ditto.
74 * wincap.cc: Throughout, drop has_ip_helper_lib,
75 has_disabled_user_tos_setting, and has_exclusiveaddruse settings from
76 wincaps.
77 (wincap_unknown): Remove.
78 (wincap_nt4): Remove.
79 (wincap_minimal): New macro, set to wincap_nt4sp4 for now.
80 (wincapc::init): Drop test for pre-SP4 NT4. Just imply at least NT SP4.
81 Replace references to wincap_unknown with references to wincap_minimal.
82 * wincap.h (struct wincaps): Drop has_ip_helper_lib,
83 has_disabled_user_tos_setting, and has_exclusiveaddruse flags and
84 methods.
85
862010-09-25 Corinna Vinschen <corinna@vinschen.de>
87
88 * autoload.cc: Throughout, order entry points alphabetically by DLL
92626feb
CV
89 and function name. Make functions which are available on all supported
90 systems non-optional. Fix return value on entry points imported from
91 secur32.dll. Add comment.
92 (std_dll_init): Call fesetenv unconditionally.
93
8d07b1aa
CF
942010-09-24 Christopher Faylor <me+cygwin@cgf.cx>
95
96 * autoload.cc (std_dll_init): Move dll_path closer to its use. Use
97 dll_path in fatal error. Set ret values under lock control.
98 * lib/minires.c (res_nsend): Fix compilation errors owing to pointer
99 signedness.
100
7438a10a
CV
1012010-09-24 Corinna Vinschen <corinna@vinschen.de>
102
103 * fhandler.cc (fhandler_base::open): Handle query_write_dac flag.
104 * fhandler.h (enum query_state): Add query_write_dac flag.
105 * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Open file
106 with query_write_dac instead of query_write_control.
107
3498f76d
CV
1082010-09-24 Corinna Vinschen <corinna@vinschen.de>
109
110 * errno.cc (errmap): Map ERROR_BAD_NET_RESP to ENOSYS.
111 * fhandler_disk_file.cc (fhandler_disk_file::facl): Handle ENOSYS and
112 point to the explanation.
113 * ntdll.h (STATUS_NOT_IMPLEMENTED): Define.
114 * path.cc (symlink_info::check): Handle the inability of NT4 to use
115 FileNetworkOpenInformation on share root dirs in either direction.
116 * path.h (slash_unc_prefix_p): Remove unused declaration.
117 * security.cc (get_info_from_sd): Handle ENOSYS from get_file_sd.
118 Explain when this happens.
119
b3755579
CF
1202010-09-23 Christopher Faylor <me+cygwin@cgf.cx>
121
122 * autoload.cc (std_dll_init): Use correct format type when displaying
123 dll name in error output.
124
5c22068f
PH
1252010-09-21 Pierre Humblet <Pierre.Humblet@ieee.org>
126
127 * libc/minires.c (res_nsend): Use the Windows resolver if appropriate.
128 (dn_expand): Only set errno in case of error. Delete old comments.
129 (dn_skipname): Fix typo in comment.
130
b53c1929
CV
1312010-09-21 Corinna Vinschen <corinna@vinschen.de>
132
133 * path.cc (cwdstuff::set): Replace constant 2 with sizeof(WCHAR) where
134 appropriate.
135
4c9d01fd
CV
1362010-09-21 Corinna Vinschen <corinna@vinschen.de>
137
138 * mount.h (class fs_info): Add has_buggy_reopen flag and accessor
139 methods.
140 * mount.cc (fs_info::update): Set has_buggy_reopen flag for NWFS.
141 Add comment.
142 * path.h (path_conv::get_object_attr) Make inline method.
143 (path_conv::init_reopen_attr): New inline method.
144 * path.cc (path_conv::get_object_attr): Remove.
145 * fhandler_disk_file.cc (fhandler_base::fstat_helper): Use
146 path_conv::init_reopen_attr method to initialize OBJECT_ATTRIBUTE for
147 reopening file.
148 (fhandler_disk_file::fchmod): Ditto.
149 (fhandler_base::utimens_fs): Ditto.
150 (fhandler_disk_file::rewinddir): Ditto.
151 * syscalls.cc (unlink_nt): Ditto.
152
7ba1698e
CV
1532010-09-21 Corinna Vinschen <corinna@vinschen.de>
154
155 * fhandler.cc (fhandler_base::open): Always open NFS files with
156 FILE_READ_EA, even when opening with O_WRONLY to allow fstat.
157 * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Call
158 FlushFileBuffers if file has been opened for writing. Explain why.
159 (fhandler_base::fstat_by_handle): Renew content of pc.fnoi if called
160 via fstat. Explain why. Fix formatting.
161 * path.cc (symlink_info::check): Try to open file the second time with
162 FILE_READ_EA permissions since it's needed in later calls to
163 fhandler_base::fstat_by_nfs_ea.
164
df4d2bea
CF
1652010-09-20 Christopher Faylor <me+cygwin@cgf.cx>
166
167 * include/sys/cygwin.h (PID_NOTCYGWIN): New enum.
168 * spawn.cc (spawn_guts): Set a flag when a process is not a cygwin
169 process.
170 * fhandler_tty.cc (fhandler_tty_slave::init): Remove previous change.
171 Try a different method to determine when we should become the process
172 group owner.
173 * signal.cc (kill0): Remove archaic code which dealt with never-set
174 flag.
175
73b6b43e
CF
1762010-09-20 Christopher Faylor <me+cygwin@cgf.cx>
177
178 * fhandler_tty.cc (fhandler_tty_slave::init): Add additional checks to
179 determine when a process should grab control of a tty's pgid. Use
180 being_debugged() for consistency.
181 * debug.h (being_debugged): Remove vestige of win9x accommodation.
182
b6473313
CF
1832010-09-19 Christopher Faylor <me+cygwin@cgf.cx>
184
185 * wincap.h (wincaps::has_buggy_thread_startup): Declare.
186 (wincapc::has_buggy_thread_startup): Ditto.
187 * wincap.cc::wincap_*): Accommodate has_buggy_thread_startup.
188 (wincapc::init): Explicitly turn off has_buggy_thread_startup if not
189 WOW64.
190 * cygthread.h (cygthread::thread_handle): Declare/define new method.
191 * dcrt0.cc (_dll_crt0): Don't call __sinit here.
192 (dll_crt0_0): Don't call sigproc_init during initialization
193 if wincap.has_buggy_thread_startup().
194 (dll_crt0_1): Defer sigproc_init to here when
195 wincap.has_buggy_thread_startup(). Call __sinit after we've determined
196 that we're not forking.
197 (__main): Rework comments. Add potential future reminder.
198
421ff3ff
CV
1992010-09-15 Corinna Vinschen <corinna@vinschen.de>
200
201 * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fetch number
202 of links and inode number only if path has good inodes.
203 (fhandler_base::fstat_by_name): Fetch inode number only if path has
204 good inodes.
205
1df35772
CV
2062010-09-14 Corinna Vinschen <corinna@vinschen.de>
207
208 * path.cc (symlink_info::check): Make sure AllocationSize and EndOfFile
209 are stored in the right order when fetching the info from the
210 NtQueryDirectoryFile result.
211
27e79675
CV
2122010-09-13 Corinna Vinschen <corinna@vinschen.de>
213
214 * fhandler_process.cc (get_mem_values): Simplify code. Fix
215 NtQueryVirtualMemory loop so it handles memory allocation gracefully.
216 Always set errno to a useful value.
217
c80480bf
CV
2182010-09-13 Corinna Vinschen <corinna@vinschen.de>
219
220 * fhandler.h (class fhandler_base): Change inheritance of fstat_helper
221 and fstat_by_... methods to private.
222 (fhandler_base::fstat_helper): Drop all redundant arguments.
223 * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Drop call
224 to fstat_by_nfs_ea here. Drop fetching basic file information.
225 Drop setting file attributes. Accommodate change in fstat_helper call.
226 (fhandler_base::fstat_by_name): Simplify. Only fetch directory
227 information to get the inode number. Drop setting file attributes.
228 Accommodate change in fstat_helper call.
229 (fhandler_base::fstat_fs): Call fstat_by_nfs_ea if on NFS.
230 (fhandler_base::fstat_helper): Drop all redundant arguments. Use
231 information already collected in the fhandler. Move heading comment
232 into code and drop dwFileAttributes comment.
233 * mmap.cc (mmap64): Call fstat_fs rather than fstat_by_handle.
234 * mount.cc (fs_info::update): Note that has_buggy_basic_info is unused.
235 * path.cc (symlink_info::check_reparse_point): Add comment.
236 (symlink_info::check): Fetch FileNetworkOpenInformation rather than
237 FileBasicInformation throughout, except on NFS. Explain why. Store
238 FILE_NETWORK_OPEN_INFORMATION in conv_hdl. Remove
239 FILE_ATTRIBUTE_DIRECTORY attribute in conv_hdl for reparse point
240 symlinks.
241 * path.h (class path_conv_handle): Add FILE_NETWORK_OPEN_INFORMATION
242 member _fnoi.
243 (path_conv_handle::fnoi): New accessor method for _fnoi.
244 (path_conv::fnoi): New accessor method for cubv_hdl._fnoi.
245
246 * fhandler_tty.cc (fhandler_tty_slave::init): Use tty::setpgid method.
247
f7382efe
CV
2482010-09-12 Corinna Vinschen <corinna@vinschen.de>
249
250 * sec_acl.cc (acl_worker): Remove.
251 (acl32): Implement acl_worker functionality here.
252 (lacl32): Just return -1 with errno set to ENOSYS.
253 (lacl): Ditto.
254 * include/cygwin/acl.h (lacl): Remove this call.
255
11fef787
CF
2562010-09-12 Christopher Faylor <me+cygwin@cgf.cx>
257
258 * sigproc.cc (sig_dispatch_pending): Remove debugging statement.
259 (sigproc_init): Wrap a long line.
260
6c6eb02b
CF
2612010-09-12 Christopher Faylor <me+cygwin@cgf.cx>
262
263 * cygthread.h (cygthread::cygthread): Reorganize slightly.
264 * dcrt0.cc (dll_crt0_0): Move sigproc initialization later to ensure
265 everything we need has been set up.
266 (dll_crt0_1): Streamline some logic slightly.
267 * sigproc.cc (no_signals_available): Add back dropped test for macro
268 parameter.
269 * fhandler_console.cc (fhandler_console::write): Show a little bit of
270 what's being written to the console in debugging output.
271
18df3935
CV
2722010-09-12 Corinna Vinschen <corinna@vinschen.de>
273
274 * syscalls.cc (start_transaction): Make inline function. Move up to be
275 more generally available.
276 (stop_transaction): Ditto.
277 (unlink_nt): Potentially start transaction when trying to delete file
278 with DOS R/O attribute set. If file is .lnk symlink, check for number
279 of hardlinks. Add "out" label and only return via "out". Rearrange
280 reversion of DOS R/O attribute and, on success, only revert R/O
281 attribute if file is .lnk symlink with more than one hardlink. Add
282 length comment to explain why.
283
99544f92
CV
2842010-09-11 Corinna Vinschen <corinna@vinschen.de>
285
286 * fhandler_disk_file.cc (fhandler_disk_file::rmdir): More thoroughly
287 check the existence condition on remote drives. Enhance comment.
288
0f81b5d4
DK
2892010-09-11 Dave Korn <dave.korn.cygwin@gmail.com>
290
291 * Makefile.in (DLL_OFILES): Add new fenv.o module.
292 (fenv_CFLAGS): New flags definition for fenv.o compile.
293 * autoload.cc (std_dll_init): Use fenv.h functions instead of direct
294 manipulation of x87 FPU registers.
295 * crt0.c (mainCRTStartup): Likewise.
296 * cygwin.din (feclearexcept, fegetexceptflag, feraiseexcept,
297 fesetexceptflag, fetestexcept, fegetround, fesetround, fegetenv,
298 feholdexcept, fesetenv, feupdateenv, fegetprec, fesetprec,
299 feenableexcept, fedisableexcept, fegetexcept, _feinitialise,
300 _fe_dfl_env, _fe_nomask_env): Export new functions and data items.
301 * fenv.cc: New file.
302 * posix.sgml: Update status of newly-implemented APIs.
303 * include/fenv.h: Likewise related header.
304 * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
305
f7dea7f2
CV
3062010-09-10 Corinna Vinschen <corinna@vinschen.de>
307
308 * syscalls.cc (rename): Limit retry loop in case of sharing violation
309 to about a second.
310
396561aa
CV
3112010-09-10 Corinna Vinschen <corinna@vinschen.de>
312
313 * syscalls.cc (fstatat): Call stat_worker directly from here.
314
4e8f539f
CV
3152010-09-10 Corinna Vinschen <corinna@vinschen.de>
316
317 * flock.cc (allow_others_to_sync): Define MAX_PROCESS_SD_SIZE. Use
318 instead of ACL_DEFAULT_SIZE.
319 * sec_acl.cc (setacl): Use TLS buffer to allow maximum ACL size.
320 * security.h (ACL_DEFAULT_SIZE): Drop definition.
321 (ACL_MAXIMUM_SIZE): Define.
322 (SD_MAXIMUM_SIZE): Define.
323 * security.cc (get_file_sd): Allocate security_decscriptor with size
324 SD_MAXIMUM_SIZE.
325 (alloc_sd): Use TLS buffer to allow maximum ACL size.
326
f65c5a0a
CV
3272010-09-10 Corinna Vinschen <corinna@vinschen.de>
328
329 * mount.cc (class fs_info_cache): New class to cache filesystem
330 information.
331 (fs_info::update): Check FileFsVolumeInformation against filesystem
332 cache and use it, if filesystem is already available. Add filesystem
333 to cache, if not. Only request FileFsObjectIdInformation if
334 FILE_SUPPORTS_OBJECT_IDS is set in filesystem flags.
335 * ntdll.h (struct _FILE_FS_VOLUME_INFORMATION): Add pragma pack so the
336 structure size is matching the OS expectations. Add __dummy member
337 used in filesystem cache.
338
67a93078
CV
3392010-09-10 Corinna Vinschen <corinna@vinschen.de>
340
341 * security.cc (get_file_sd): Add bool parameter justcreated. Use
342 GetSecurityInfo only if justcreated is true, NtQuerySecurityObject
343 otherwise. Add comment to explain why. Don't waste time to call
344 NtQuerySecurityObject twice, just allocate big enough area.
345 (get_file_attribute): Call get_file_sd with justcreated set to false.
346 (set_file_attribute): Call get_file_sd with justcreated depending on
347 S_JUSTCREATED pseudo file attribute.
348 (check_file_access): Call get_file_sd with justcreated set to false.
349 * sec_acl.cc (setacl): Ditto.
350 (getacl): Ditto.
351 * security.h: Convert many functions to regparm functions.
352 (get_file_sd): Declare with extra bool parameter.
353
28e19baf
CV
3542010-09-10 Corinna Vinschen <corinna@vinschen.de>
355
356 * fhandler_procsys.cc (fhandler_procsys::exists): Rearrange to handle
357 dangling symlinks correctly. Fix comments.
358 (fhandler_procsys::fill_filebuf): Remove useless comment.
359
f99de2b3 3602010-09-08 Corinna Vinschen <corinna@vinschen.de>
fa3ab15b 361
f99de2b3
CV
362 * fhandler_procsys.cc (fhandler_procsys::open): Simplify by just
363 calling fhandler_base::open.
fa3ab15b 364
43f65cdd
CV
3652010-09-06 Corinna Vinschen <corinna@vinschen.de>
366
367 * Makefile.in (DLL_OFILES): Add fhandler_procsys.o.
368 * devices.h (enum fh_devices): Add FH_PROCSYS.
369 * devices.in (dev_procsys_storage): New device.
370 * devices.cc: Regenerate.
371 * dtable.cc (build_fh_pc): Add code to allocate fhandler_procsys.
372 * fhandler.h (proc_len): Convert to size_t.
373 (procsys): Declare.
374 (procsys_len): Declare.
375 (enum virtual_ftype_t): Move here from fhandler_virtual.h.
376 Add members supported by fhandler_procsys.
377 (fhandler_virtual::exists): Return virtual_ftype_t. Change
378 in all derived classes.
379 (class fhandler_procsys): New class.
380 (fhandler_union): Add fhandler_procnet and fhandler_procsys members.
381 * fhandler_disk_file.cc (__DIR_mounts::check_missing_mount): Use
382 ro_u_proc.
383 (fhandler_base::fstat_by_handle): Don't copy attributes if file is an
384 NT device.
385 (fhandler_base::fstat_by_name): Ditto.
386 * fhandler_netdrive.cc (fhandler_netdrive::exists): Return
387 virtual_ftype_t.
388 * fhandler_proc.cc (proc_tab): Sort alphabetically. Use _VN macro
389 to store length.
390 (proc_len): Change to size_t.
391 (proc_tab_cmp): New static function.
392 (virt_tab_search): New function to search entry in virt_tab_t
393 arrays. Use throughout in /proc and sibling classes instead of
394 loop.
395 (fhandler_proc::exists): Return virtual_ftype_t.
396 * fhandler_process.cc (process_tab): Sort alphabetically. Use _VN
397 macro to store length.
398 (fhandler_process::exists): Return virtual_ftype_t.
399 (fhandler_process::open): Simplify code.
400 * fhandler_procnet.cc (procnet_tab): Sort alphabetically. Use _VN
401 macro to store length.
402 (fhandler_procnet::exists): Return virtual_ftype_t.
403 (fhandler_procnet::open): Simplify.
404 * fhandler_procsys.cc: New file.
405 * fhandler_registry.cc (fhandler_registry::exists): Return
406 virtual_ftype_t.
407 * fhandler_virtual.cc (fhandler_virtual::exists): Ditto.
408 * fhandler_virtual.h (enum virtual_ftype_t): Move to fhandler.h.
409 (virt_tab_t): Add name_len member.
410 (_VN): New macro.
411 (virt_tab_search): Declare.
412 * mount.cc (mount_info::conv_to_win32_path): Fix comment. Backslashify
413 isprocsys_dev paths.
414 * ntdll.h (STATUS_OBJECT_TYPE_MISMATCH): Define
415 (STATUS_INSTANCE_NOT_AVAILABLE): Define.
416 (STATUS_PIPE_NOT_AVAILABLE): Define.
417 (STATUS_INVALID_PIPE_STATE): Define.
418 (STATUS_PIPE_BUSY): Define.
419 (SYMBOLIC_LINK_QUERY): Define.
420 (NtOpenSymbolicLinkObject): Declare.
421 (NtQuerySymbolicLinkObject): Declare.
422 * path.cc (path_conv::check): Accommodate fact that exists method
423 returns virtual_ftype_t now. Add cases for new virtual_ftype_t
424 types.
425 (cygwin_conv_path): Add GLOBALROOT prefix to native device paths.
426 Make sure to strip \\?\ prefix only for actual filesystem-based
427 paths, not for all paths.
428 * path.h (isproc_dev): Add FH_PROCSYS.
429 (isprocsys_dev): Define.
430
0de48837
CV
4312010-09-04 Corinna Vinschen <corinna@vinschen.de>
432
433 * mount.cc (mount_info::from_fstab_line): Reorder to make sure all
434 mounts from user fstab are user mounts.
435 (mount): Make sure all mounts are user mounts, even those added via
436 mount -a.
437
6a7d80f2
CF
4382010-09-02 Christopher Faylor <me+cygwin@cgf.cx>
439
fa3ab15b 440 * sigproc.cc (sigproc_init): Use American spelling in comment.
6a7d80f2 441
fc0e5071
CF
4422010-09-01 Christopher Faylor <me+cygwin@cgf.cx>
443
444 * dcrt0.cc (dll_crt0_0): Remove myself settings.
fa3ab15b 445 * fork.cc (fork): Set myself process_state.
fc0e5071
CF
446 * pinfo.cc (pinfo_init): Ditto.
447 (pinfo::thisproc): Make sure any sendsig setting is correctly copied.
448 * pinfo.h: Update copyright. Remove unused code.
449
b9874a0c
CF
4502010-09-01 Christopher Faylor <me+cygwin@cgf.cx>
451
452 * cygthread.cc (cygthread::create): Fix incorrect use of name rather
453 than __name.
454 * cygthread.h (cygthread::cygthread): Create versions which eliminate
455 'n' parameter.
456 * dcrt0.cc (dll_crt0_1): Remove check for threadfunc_ix. Remove
457 obsolete comments. Set process_state to active here.
458 * fhandler_netdrive.cc (create_thread_and_wait): Use shortened
459 cygthread constructor.
460 * timer.cc (timer_tracker::settime): Ditto.
461 * window.cc (HWND): Ditto.
462 * fhandler_tty.cc: Use shortened cygthread constructor, where
463 appropriate, throughout.
464 * select.cc: Ditto.
465 * fork.cc (frok::child): Remove wait_for_sigthread.
466 (fork): Reformat if for slightly better clarity.
467 * init.cc (dll_finished_loading): New variable.
468 (dll_entry): Use dll_finished_loading to determine when we should call
469 merge_threadfunc.
470 * sigproc.cc (no_signals_available): Simplify by using my_readsig.
471 (wait_sig_inited): Delete.
472 (wait_sig): Define as void function.
473 (pending_signals): Accommodate change to wait_sig definition.
474 (wait_for_sigthread): Delete definition.
475 (sigproc_init): Initialize signal pipe here, before wait_sig thread is
476 created. Use void form of cygthread creation.
477 (init_sig_pipe): Delete.
478 (wait_sig): Return void rather than DWORD. Assume previous
479 initialization of signal pipe. Set my_sendsig to NULL when exiting.
480 * sigproc.h (wait_for_sigthread): Delete declaration.
481
20973ec9
CV
4822010-09-01 Corinna Vinschen <corinna@vinschen.de>
483
484 * fhandler_netdrive.cc (fhandler_netdrive::readdir): Set d_type.
485 (fhandler_netdrive::seekdir): Fix test for readdir return value.
486 * fhandler_registry.cc (fhandler_registry::seekdir): Ditto.
487
41073b47
CV
4882010-09-01 Corinna Vinschen <corinna@vinschen.de>
489
490 * include/cygwin/version.h: Bump DLL minor version number to 8.
491
274116ea
CV
4922010-08-31 Corinna Vinschen <corinna@vinschen.de>
493
494 * path.cc (normalize_posix_path): Preserve //./ and //?/ prefixes.
495 (path_conv::check): Allow access to root directory of native NT disk
496 devices.
497
8fd414ff
CV
4982010-08-31 Corinna Vinschen <corinna@vinschen.de>
499
500 * include/cygwin/version.h: Bump DLL minor version number to 7.
501
166f3822
CF
5022010-08-30 Christopher Faylor <me+cygwin@cgf.cx>
503
504 * dcrt0.cc (dll_crt0_0): Move sigproc_init later, after cygheap
505 initialization since it relies on the cygheap existing (even if
506 it shouldn't matter do to dll initialization serialization).
507
45bc8c1f
CV
5082010-08-30 Corinna Vinschen <corinna@vinschen.de>
509
510 * posix.sgml (std-notes): Fix typos and incorrectnesses.
511
92596190
CV
5122010-08-30 Corinna Vinschen <corinna@vinschen.de>
513
514 * autoload.cc (MsgWaitForMultipleObjectsEx): Define.
515 (MsgWaitForMultipleObjects): Remove.
516 * select.cc (select_stuff::wait): Use MsgWaitForMultipleObjectsEx with
517 QS_ALLPOSTMESSAGE and, if possible, MWMO_INPUTAVAILABLE flags. Explain
518 why. Fix a potential crash due to a NULL pointer in WAIT_FAILED case.
519 (peek_windows): Use filter pattern on NT4. Explain why.
520 * wincap.h (wincaps::has_mwmo_inputavailable): New element.
521 * wincap.cc: Implement above element throughout.
522
92117cb2
CF
5232010-08-29 Christopher Faylor <me+cygwin@cgf.cx>
524
525 * winlean.h: New file.
526 * automode.c: Use "winlean.h".
527 * binmode.c: Ditto.
528 * gmon.c: Ditto.
529 * textmode.c: Ditto.
530 * textreadmode.c: Ditto.
531 * winsup.h: Ditto.
532 * lib/cygwin_attach_dll.c: Ditto.
533 * lib/dll_main.cc: Ditto.
534 * profile.c: Ditto.
535 * crt0.c: Ditto. Cleanup ancient cruft. Add dummy calls to
536 cygwin_premain*.
537 * include/sys/cygwin.h: Remove old stuff. Move premain declarations
538 nearer to other cygwin-specific function declarations.
539 * globals.cc: Add comment.
540
893a8b78
CV
5412010-08-28 Corinna Vinschen <corinna@vinschen.de>
542
543 * autoload.cc (LoadDLLprime): Change dllname storage to string16.
544 (struct dll_info): Convert name to WCHAR.
545 (std_dll_init): Load DLLs with full path to windows system directory.
546 Add hint to Microsoft security advisory.
547 * dcrt0.cc (init_windows_system_directory): New function.
548 (dll_crt0_0): Call init_windows_system_directory first.
549 * exceptions.cc (windows_system_directory): Move to globals.cc.
550 (windows_system_directory_length): Ditto.
551 (events_init): Drop code fetching windows_system_directory.
552 * globals.cc (windows_system_directory): New global variable.
553 (windows_system_directory_length): Ditto.
554 * net.cc (load_ipv6_funcs): Use windows_system_directory rather than
555 GetSystemDirectoryW.
556 * netdb.cc (open_system_file): Ditto. Simplify debug output.
557
1121c57f
CV
5582010-08-27 Corinna Vinschen <corinna@vinschen.de>
559
560 * external.cc (sync_wincwd): Remove.
561 (cygwin_internal): Drop CW_SYNC_WINCWD case.
562 * globals.cc (ro_u_pipedir): New R/O unicode string.
563 * ntdll.h (RtlSetCurrentDirectory_U): Declare.
564 * path.cc (cwdstuff::set): Improve comments. Drop setting Win32 CWD to
565 \\?\PIPE\ on init. Keep Win32 CWD in sync, if possible. Set to
566 \\?\PIPE\ otherwise.
567 * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Revert to 230.
568 * include/sys/cygwin.h (cygwin_getinfo_types): Remove CW_SYNC_WINCWD.
569
11650075
CV
5702010-08-27 Corinna Vinschen <corinna@vinschen.de>
571
572 * fhandler_proc.cc (format_proc_partitions): Improve comment.
573
46059af7
CV
5742010-08-26 Corinna Vinschen <corinna@vinschen.de>
575
576 * fhandler_proc.cc (format_proc_partitions): Simplify code and enable
577 partition layout printing for non-privileged users.
578
2f183289
CV
5792010-08-25 Corinna Vinschen <corinna@vinschen.de>
580
581 * mount.cc (fs_info::update): Fix comments.
582
df70da7f
CV
5832010-08-25 Corinna Vinschen <corinna@vinschen.de>
584
585 * syscalls.cc (rename): Open file with FILE_READ_ATTRIBUTES.
586
48f6c6c6
CV
5872010-08-24 Corinna Vinschen <corinna@vinschen.de>
588
589 * include/cygwin/version.h: Fix comment.
590
8ae578d6
CV
5912010-08-24 Corinna Vinschen <corinna@vinschen.de>
592
593 * external.cc (cygwin_internal): In CW_CVT_MNT_OPTS case, initialize
594 flags with *pflags to restore original behaviour.
595
43c394de
CV
5962010-08-21 Corinna Vinschen <corinna@vinschen.de>
597
598 * Makefile.in (DLL_IMPORTS): Link against advapi32.a before kernel32.a.
599
ff7fca61
CF
6002010-08-20 Christopher Faylor <me+cygwin@cgf.cx>
601
602 * cygthread.cc: Update copyright.
603
a6fc3a61
CV
6042010-08-20 Corinna Vinschen <corinna@vinschen.de>
605
606 * path.cc (path_conv::check): Close handle in conv_handle if we're
607 following a symlink.
608
74f50846
CV
6092010-08-20 Pedro Izecksohn <pedro.izecksohn@gmail.com>
610
611 * endian.h (htobe16, htobe32, htobe64, be16toh, be32toh, be64toh,
612 htole16, htole32, htole64, le16toh, le32toh, le64toh): Define.
613
a6c83569
CV
6142010-08-20 Corinna Vinschen <corinna@vinschen.de>
615
616 * fhandler_disk_file.cc (readdir_check_reparse_point): Rename from
617 is_volume_mountpoint. Return valid d_type value for underlying
618 reparse point type.
619 (readdir_get_ino): Don't rely on the handle set in pc.check. Open
620 file here if pc.handle() is NULL.
621 (fhandler_disk_file::readdir_helper): Try to set a correct d_type value
622 more diligent.
623 (fhandler_disk_file::readdir): Don't reset dirent_set_d_ino unless
624 we're really sure it's due to an untrusted FS. Simplify usage of
625 FileAttributes, which is 0 if buf is NULL, anyway. Set d_type
626 correctly for faked "." and ".." entries. Improve debug output.
627 * path.cc (symlink_info::check): Don't keep handle to volume mount
628 point open. Explain why.
629
dd442880
CV
6302010-08-20 Corinna Vinschen <corinna@vinschen.de>
631
632 * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Revert usage
633 of get_stat_handle () to get_handle (). Add comment to explain why.
634 * syscalls.cc (statvfs): Drop using PC_KEEP_HANDLE.
635
e652eb92
CV
6362010-08-19 Corinna Vinschen <corinna@vinschen.de>
637
638 * external.cc (sync_wincwd): New function.
639 (cygwin_internal): Rename CW_SETCWD to CW_SYNC_WINCWD. Call
640 sync_wincwd from here.
641 * include/sys/cygwin.h (cygwin_getinfo_types): Rename CW_SETCWD to
642 CW_SYNC_WINCWD.
643
590ad479
CF
6442010-08-18 Christopher Faylor <me+cygwin@cgf.cx>
645
646 * external.cc (CW_SETCWD): New option.
647 * include/cygwin/version.h: Bump api minor to 231.
648 * include/sys/cygwin.h (CW_SETCWD): Define.
649
ce9898da
CV
6502010-08-18 Corinna Vinschen <corinna@vinschen.de>
651
652 * syscalls.cc (rename): Fix renaming file-based devices.
653
75a3b858
CV
6542010-08-18 Corinna Vinschen <corinna@vinschen.de>
655
656 * exceptions.cc (open_stackdumpfile): Don't try to open file if we
657 have no filesystem based CWD. Add comment.
658 * path.cc (cwdstuff::set): Set CWD handle to NULL if CWD is a virtual
659 path. Simplify matching comment.
660
d15ed91c
CV
6612010-08-18 Corinna Vinschen <corinna@vinschen.de>
662
663 * fhandler_disk_file.cc (fhandler_base::fstat_helper): Set st_rdev
664 to correct device number for fs_special devices.
665
adb4e0f3
CV
6662010-08-16 Corinna Vinschen <corinna@vinschen.de>
667
668 * include/cygwin/version.h: Bump DLL minor version number to 6.
669
f5a51f91
CV
6702010-08-14 Corinna Vinschen <corinna@vinschen.de>
671
672 * pipe.cc (fhandler_pipe::open): Duplicate content of opened pipe
673 fhandler before calling dup method.
674
260b8074
CV
6752010-08-13 Corinna Vinschen <corinna@vinschen.de>
676
677 * cygheap.h (class cwdstuff): Make drive_length private.
678 Add "error" member.
679 (cwdstuff::get_error): New inline method.
680 (cwdstuff::get_error_desc): Declare.
681 (cwdstuff::set): Change first parameter to pointer to path_conv.
682 * path.cc (chdir): Drop doit. Align call to cwdstuff::set to
683 new arguments.
684 (cwdstuff::init): Only call cwdstuff::set if it's not already
685 initialized. Add comment. Drop third parameter in call to
686 cwdstuff::set.
687 (cwdstuff::set): Partially rewrite. Add lots of comments to explain
688 everything. Drop "doit" since it's not used anymore. Always create
689 new handle to CWD if not in a virtual path. Drop PEB locking when
690 reading PEB values in init phase. Check for accessibility to set
691 correct error code. Drop Vista workaround. Never write back into PEB.
692 Set Win32 CWD to \\?\PIPE\ on init. Simplify creation of win32 path.
693 Set new error member to a meaningful value.
694 (cwdstuff::get_error_desc): New method to generate error message
695 from cwd error code.
696 * spawn.cc (spawn_guts): Call cwdstuff::get_error_desc to create
697 more meaningful error message when not being able to start native
698 Win32 app due to CWD restrictions. When starting native Win32 app,
699 lock cwd and use in calls to CreateProcessW/CreateProcessAsUserW.
700
a5fe4262
CV
7012010-08-11 Corinna Vinschen <corinna@vinschen.de>
702
703 * mount.cc (struct opt): Add "bind" option.
704 (mount_info::from_fstab_line): Handle "bind" option.
705 (fillout_mntent): Add "bind" option to mnt_opts.
706 (mount): Handle "bind" option.
707 * include/sys/mount.h (MOUNT_BIND): New mount flag.
708
92514fd2
CF
7092010-08-10 Christopher Faylor <me+cygwin@cgf.cx>
710
711 * sigproc.cc (init_sig_pipe): Add retry loop.
712
514fdad3
CF
7132010-08-09 Christopher Faylor <me+cygwin@cgf.cx>
714
715 * cygheap.h (cygheap_fdmanip): Delete fh and use fd index into
716 cygheap->fdtab throughout.
717 (cygheap_fdnew): Replace fh by using fd index into cygheap->fdtab
718 throughout. (cygheap_fdget): Ditto. (cygheap_fdenum): Ditto.
719
b150f523
YS
7202010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
721
722 Implement POSIX.1-2004 Monotonic Clock.
723 * hires.h: Change hires_us to hires_ns, with nanosecond resolution.
724 (hires_ns::primed_ft): Remove.
725 (hires_ns::nsecs): New prototype.
726 (hires_ns::usecs): Rewrite in terms of nsecs.
727 (hires_ns::resolution): New prototype.
728 * times.cc: Change hires_us to hires_ns.
729 (ntod): Declare.
730 (systime): Remove.
731 (hires_ns::prime): Increase resolution to nanoseconds.
732 (hires_ns::nsecs): Rename usecs to nsecs to reflect increased resolution.
733 Remove justdelta argument.
734 (hires_ns::resolution): New function.
735 (clock_gettime): Accept CLOCK_MONOTONIC.
736 Use EINVAL instead of ENOSYS per POSIX.1-2004.
737 (clock_getres): Ditto.
738 (clock_setres): Use EINVAL instead of ENOSYS to conform with other
739 implementations.
740 * strace.cc (strace::microseconds): Adjust for hires_ns.
741 * sysconf.cc (sca): Set _SC_MONOTONIC_CLOCK to _POSIX_MONOTONIC_CLOCK.
742 * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
743
a52993d4
CV
7442010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
745
746 * fhandler_proc.cc: Add /proc/filesystems virtual file.
747 (format_proc_filesystems): New function.
748 * mount.cc (fs_names): Move to global scope. Redefine as array
749 of { "name", block_device? } structs.
750 (fillout_mntent): Use name member of fs_names.
751 * mount.h (fs_names): New prototype.
752
99006a85
CV
7532010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
754
755 * include/dlfcn.h (RTLD_LOCAL): Define.
756
5c9d7a42
CV
7572010-08-06 Corinna Vinschen <corinna@vinschen.de>
758
759 * include/sys/dirent.h (d_fileno): Define as d_ino.
760
06cc41a6
CV
7612010-08-04 Corinna Vinschen <corinna@vinschen.de>
762
763 * path.cc (cygwin_conv_path): Rearrange test for "." in POSIX to
764 relative DOS path conversion. Simplify fixing the path.
765 In CCP_POSIX_TO_WIN_W conversion, always drop long path prefix if path
766 fits into MAX_PATH. Explain why.
767
0b6fbd39
CF
7682010-08-01 Christopher Faylor <me+cygwin@cgf.cx>
769
770 * exceptions.cc (_cygtls::interrupt_now): Revert to checking for
771 "spinning" when choosing to defer signal.
772 (_cygtls::call_signal_handler): Grab func when we have the lock.
773 * gendef: Update copyright.
774 (__sigbe): Simplify slightly.
775 (_sigdelayed): Grab a lock before manipulating stuff.
776 (_cygtls::pop): Properly return popped value.
777 (stabilize_sig_stack): Set incyg when we have the lock.
778 * sigproc.cc: Update copyright.
779
4db1bd40
CF
7802010-07-28 Christopher Faylor <me+cygwin@cgf.cx>
781
782 * cygthread.h (LPVOID_THREAD_START_ROUTINE): Define.
783 (cygthread::create): Rename from cygthread::cygthread.
784 (cygthread::cygthread): Define new constructor which accepts
785 LPVOID_THREAD_START_ROUTINE as the first argument. Call
786 cygthread::create.
787 * cygthread.cc (cygthread::create): Rename from cygthread::cygthread.
788 Use 'arglen' rather than 'n' since 'n' is no longer supplied.
789 * fhandler_tty.cc (process_input): Define as void/noreturn.
790 (process_output): Ditto.
791 (process_ioctl): Ditto.
792 (fhandler_tty_master::init): Don't "zap_h" cygthreads which are
793 noreturn. It's now implied.
794
cb6bfcff
CV
7952010-07-23 Corinna Vinschen <corinna@vinschen.de>
796
797 * fhandler.cc (fhandler_base::raw_write): Remove STATUS_DISK_FULL
798 special handling.
799
3083fa94
EB
8002010-07-19 Eric Blake <eblake@redhat.com>
801
802 * mktemp.cc (_gettemp): Add flags argument. All callers updated.
803 (mkostemp, mkostemps): New functions.
804 * cygwin.din (mkostemp, mkostemps): Export.
805 * posix.sgml: Document them.
806 * include/cygwin/version.h: Bump version.
807
bee6d431
CF
8082010-07-18 Christopher Faylor <me+cygwin@cgf.cx>
809
810 * autoload.cc (noload): Use "pushl" rather than "push".
811
9134e80a
CF
8122010-07-18 Christopher Faylor <me+cygwin@cgf.cx>
813
814 * exceptions.cc (_cygtls::interrupt_now): Avoid nonsensical tests which
815 delay an interrupt.
816 (setup_handler): Remove unneeded DEBUGGING handling. Ensure that stack
817 is locked when we are about to do push/pop to it. Fix debugging output.
818
3a7c5515
CF
8192010-07-18 Christopher Faylor <me+cygwin@cgf.cx>
820
821 * gendef: Throughout, remove lock from xchgl since it is implied.
822 (__ZN7_cygtls3popEv): Avoid potential (but probably nonexistent) race
823 when clearing element after pop.
824
ac40a195
CV
8252010-07-15 Corinna Vinschen <corinna@vinschen.de>
826
827 * wincap.cc (wincap_7): Set needs_count_in_si_lpres2 to false.
828
975a85f4
CV
8292010-07-07 Corinna Vinschen <corinna@vinschen.de>
830
831 * syscalls.cc (unlink_nt): Disable try_to_bin for netapp drives.
832 Explain why.
833
c492992f
CV
8342010-07-05 Corinna Vinschen <corinna@vinschen.de>
835
836 Align seekdir and telldir API to POSIX definition.
837 * Makefile.in (NEW_FUNCTIONS): Remove seekdir and telldir mappings.
838 * dir.cc (telldir): Move functionality from telldir64 here. Use
839 long, rather than _off_t.
840 (telldir64): Just call telldir. Only keep for backward compatibility.
841 (seekdir): Move functionality from seekdir64 here. Use long, rather
842 than _off_t.
843 (seekdir64): Just call seekdir. Only keep for backward compatibility.
844 * fhandler.h: Throughout, change prototypes of seekdir and telldir
845 methods to use long, rather than _off64_t.
846 * fhandler_disk_file.cc: Change aforementioned methods accordingly.
847 * fhandler_netdrive.cc: Ditto.
848 * fhandler_registry.cc: Ditto.
849 * fhandler_virtual.cc: Ditto.
850 * include/sys/dirent.h (struct __DIR): Change __d_position from
851 _off_t to long to reflect API change.
852 (telldir): Change prototype to use long, rather than off_t.
853 (seekdir): Ditto.
854
6259826e
CF
8552010-07-04 Christopher Faylor <me+cygwin@cgf.cx>
856
857 * path.cc (path_conv::check): Move fs-specific settings to a point
858 where we know that we have filled out the filesystem information.
859 * path.h (path_conv::path_conv): Use consistent initialization for
860 constructors.
861
862 * include/sys/cygwin.h: Define CW_STRERROR.
863 * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 228.
864 * include/external.h: Implement CW_STRERROR.
865
7ba0a42f
CV
8662010-07-02 Corinna Vinschen <corinna@vinschen.de>
867
868 * net.cc (cygwin_getsockopt): Make sure SO_PEERCRED is only handled
869 in level SOL_SOCKET. Workaround a return value regression in Vista
870 and later. Add comment to explain.
871
601fbebd
CV
8722010-06-29 Corinna Vinschen <corinna@vinschen.de>
873
874 * spawn.cc (spawn_guts): Reinstantiate a FIXME comment.
875
e7daa3ed
CV
8762010-06-29 Corinna Vinschen <corinna@vinschen.de>
877
878 * exceptions.cc (dump_exception): Use %W instead of %s for printing
879 progname.
880 * fork.cc (frok::parent): Fix typos in debug output.
881 * spawn.cc (spawn_guts): Copy wide Win32 filename into _pinfo::progname,
601fbebd 882 rather than native NT name. Use %W instead of %S for printing progname.
e7daa3ed 883
22d78f10
CF
8842010-06-28 Christopher Faylor <me+cygwin@cgf.cx>
885
886 * fork.cc (frok::parent): Improve error message.
887
30bbc55e
CV
8882010-06-22 Corinna Vinschen <corinna@vinschen.de>
889
890 * flock.cc (allow_others_to_sync): Use small stack buffer rather
891 than big temp buffer. Fix typo in comment.
892 (lf_setlock): Revert to using tmp_pathbuf.
893 (lf_getlock): Ditto.
894
c7b24005
CV
8952010-06-22 Corinna Vinschen <corinna@vinschen.de>
896
897 * sec_acl.cc (setacl): Use the long time unused ACL_DEFAULT_SIZE
898 instead of a constant value.
899 * security.cc (alloc_sd): Ditto.
900
f074bd3a
CF
9012010-06-21 Christopher Faylor <me+cygwin@cgf.cx>
902
903 * tmpbuf.h: New file.
904 * flock.cc: Include tmpbuf.h for new tmpbuf functionality.
905 (allow_others_to_sync): Use tmpbuf rather than tmp_pathbuf. Explain
906 why.
907 (lf_setlock): For consistency, use tmpbuf rather than tmp_pathbuf.
908 (lf_getlock): Ditto.
909
74434376
CF
9102010-06-21 Christopher Faylor <me+cygwin@cgf.cx>
911
912 * dcrt0.cc (__api_fatal): Temporarily generate a stackdump.
913
7b8cf7c8
CF
9142010-06-21 Christopher Faylor <me+cygwin@cgf.cx>
915
916 * tls_pbuf.cc (tmp_pathbuf::w_get): Report what's failing when too many
917 buffers are in use.
918
4365c159
CV
9192010-06-17 Corinna Vinschen <corinna@vinschen.de>
920
921 * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Fetch stat
922 handle only after checking for NFS.
923
342814df
CV
9242010-06-15 Corinna Vinschen <corinna@vinschen.de>
925
926 * fhandler_disk_file.cc (fhandler_base::fstat_by_nfs_ea): Use handle
927 returned by get_stat_handle.
928 (fhandler_base::fstat_helper): Reinstatiate code to re-open the file
929 when checking for executability if called via fstat. Explain why.
930
5a0d1edb
CV
9312010-06-15 Corinna Vinschen <corinna@vinschen.de>
932
933 * dtable.cc (dtable::dup_worker): Reset path_conv handle in duplicated
934 fhandler.
935 * fhandler.cc (fhandler_base::fstatvfs): Keep handle in created
936 path_conv.
937 * fhandler.h (fhandler_base::get_stat_access): New method.
938 (fhandler_base::get_stat_handle): New method.
939 * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Use handle
940 returned by get_stat_handle. Only request inode from system if it
941 isn't already set in the fhandler, and only for filesystems supporting
942 them.
943 (fhandler_base::fstat_fs): Use handle returned by get_stat_handle.
944 Change the way open_fs is called. Explain why.
945 (fhandler_base::fstat_helper): Use handle returned by get_stat_handle.
946 Never use 0 inode number. Simplify executable recognition by re-using
947 get_stat_handle if file could be opened with sufficient rights.
948 (fhandler_disk_file::fstatvfs): Use handle returned by get_stat_handle.
949 (fhandler_disk_file::facl): Use handle returned by get_stat_handle in
950 GETACL and GETACLCNT cases.
951 (fhandler_disk_file::link): Use handle returned by get_stat_handle
952 instead of opening file here again. Add comment.
953 (readdir_get_ino): Keep handle in created path_conv and drop
954 opening file.
955 * ntdll.h (wait_pending): New helper function.
956 * path.cc (symlink_info::check): Drop unused 'opt' parameter from
957 declaration. Add path_conv_handle argument.
958 (path_conv::check): Make sure conv_handle is closed. Keep
959 PC_KEEP_HANDLE flag in pflags_or. Accommodate call to sym.check to
960 new args.
961 (path_conv::~path_conv): Close conv_handle.
962 (symlink_info::check_shortcut): Don't re-open file here, just use
963 incoming handle. Drop goto's and label out.
964 (symlink_info::check_sysfile): Don't re-open file here, just use
965 incoming handle. Keep track of file position to accommodate the fact
966 that file has been opened asynchronously in calling function.
967 (symlink_info::check_nfs_symlink): Don't re-open file here, just use
968 incoming handle.
969 (symlink_info::check): Drop unused 'opt' parameter. Add
970 path_conv_handle argument. Always try to open file with GENERIC_READ
971 rights first to allow reading file content w/o having to re-open the
972 file. Drop back to READ_CONTROL | FILE_READ_ATTRIBUTES otherwise.
973 Call symlink test functions (except for check_reparse_point) only if
974 file could be opened with GENERIC_READ. Keep file handle open if
975 PC_KEEP_HANDLE is set in pflags.
976 * path.h (enum pathconv_arg): Add PC_KEEP_HANDLE flag.
977 (class path_conv_handle): New class.
978 (class path_conv): Add conv_handle member.
979 (path_conv::operator =): Duplicate conv_handle.
980 (path_conv::handle): New method.
981 (path_conv::access): New method.
982 (path_conv::reset_conv_handle): New method.
983 (path_conv::close_conv_handle): New method.
984
51ec3f5c
CV
9852010-06-15 Corinna Vinschen <corinna@vinschen.de>
986
987 * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Fix indentation.
988
5e3dd23e
CV
9892010-06-15 Corinna Vinschen <corinna@vinschen.de>
990
991 * fhandler_disk_file.cc (path_conv::get_ino_by_handle): Convert from
992 static function to path_conv method. Accommodate throughout.
993 (path_conv::ndisk_links): Unused, comment out.
994 * path.h (path_conv::get_ino_by_handle): Declare.
995 (path_conv::ndisk_links): Comment out declaration.
996
d955b6cf
CV
9972010-06-14 Corinna Vinschen <corinna@vinschen.de>
998
999 * path.cc (path_conv::check): Return with ENOTDIR if component is a
1000 device.
1001
aec297d5
CV
10022010-06-14 Corinna Vinschen <corinna@vinschen.de>
1003
1004 * dlfcn.cc (get_full_path_of_dll): Revert patch from 2010-04-29.
1005
75172e03
CF
10062010-06-12 Christopher Faylor <me+cygwin@cgf.cx>
1007
1008 * times.cc (gtod): Move to sharable region.
1009
03c991fe
CV
10102010-06-09 Corinna Vinschen <corinna@vinschen.de>
1011
1012 * path.cc (symlink_info::check_shortcut): Use ro_u_empty rather than
1013 local UNICODE_STRING object.
1014 (symlink_info::check_sysfile): Ditto. Return immediately if NtOpenFile
1015 failed to avoid closing random handle. Improve debug output in case
1016 NtReadFile failed.
1017
b7d3e6d7
CV
10182010-06-08 Corinna Vinschen <corinna@vinschen.de>
1019
1020 * path.cc (symlink_info::check): Set h to NULL after closing handle
1021 in udf check. Remove overagressive bracketing. Don't set h to NULL
1022 without closing the handle. Fix using wrong handle in checking
1023 file system when using parent directory handle.
1024
814e854e
CV
10252010-06-07 Corinna Vinschen <corinna@vinschen.de>
1026
1027 * include/sys/stdio.h: Remove _GNU_SOURCE guard around getline
1028 and getdelim prototypes since they are SUSv4 now.
1029
fad9568b
CV
10302010-06-02 Corinna Vinschen <corinna@vinschen.de>
1031
1032 * ntdll.h (STATUS_BAD_NETWORK_PATH): Define.
1033 (STATUS_BAD_NETWORK_NAME): Define.
1034 * path.cc (symlink_info::check): Convert STATUS_BAD_NETWORK_PATH and
1035 STATUS_BAD_NETWORK_NAME into an immediate ENOENT.
1036
ded1f66c
CV
10372010-06-01 Corinna Vinschen <corinna@vinschen.de>
1038
1039 * exceptions.cc (open_stackdumpfile): Correctly append .stackdump
1040 suffix.
1041
1042 * nlsfuncs.cc (rebase_locale_buf): Reorder arguments. Accommodate
1043 throughout. Add pointer to end of buffer and avoid changing pointers
1044 not pointing into the buffer.
1045
80a10a39
CV
10462010-06-01 Corinna Vinschen <corinna@vinschen.de>
1047
1048 * fhandler_netdrive.cc (fhandler_netdrive::exists): Always free WNet
1049 resource if created.
1050
685e55e2
CV
10512010-05-31 Corinna Vinschen <corinna@vinschen.de>
1052
1053 * cygheap.cc (cygheap_user::set_name): Allow to change the user name
1054 if it only differs by case.
1055
88addc64
CV
10562010-05-26 Corinna Vinschen <corinna@vinschen.de>
1057
1058 * fhandler_registry.cc (multi_wcstombs): New function.
1059 (fhandler_registry::fstat): Call multi_wcstombs for strings of type
1060 REG_MULTI_SZ.
1061 (fhandler_registry::fill_filebuf): Ditto.
1062
fca8f35f
CF
10632010-05-26 Christopher Faylor <me+cygwin@cgf.cx>
1064
1065 * hires.h (hires_base::reset): New function.
1066 (hires_us): Specify that hires_base is a public import.
1067 (hires_ms): Ditto.
1068 * times.cc (gtod): Move earlier in file.
1069 (settimeofday): Reset gtod so that base will be subsequently
1070 recalculated.
1071
1ee8d76c
CV
10722010-05-26 Corinna Vinschen <corinna@vinschen.de>
1073
1074 * path.cc (symlink_info::check): Don't try to handle remote reparse
1075 points as symlinks. Explain why.
1076
16f52c14
CV
10772010-05-26 Corinna Vinschen <corinna@vinschen.de>
1078
1079 * include/inttypes.h: Change PTR definitions to int to align with the
1080 stdint.h type definitions of intptr_t/uintptr_t.
1081
403ab0c0
CV
10822010-05-26 Corinna Vinschen <corinna@vinschen.de>
1083
1084 * fhandler.h (class fhandler_pty_master): Add master_thread member.
1085 * fhandler_tty.cc (fhandler_pty_master::close): Properly detach from
1086 master thread.
1087 (fhandler_pty_master::setup): Store cygthread pointer of pty master
1088 control thread in master_thread. Don't zap thread handle.
1089
a36728ea
CV
10902010-05-26 Kazuhiro Fujieda <fujieda@acm.org>
1091 Corinna Vinschen <corinna@vinschen.de>
1092
1093 * nlsfuncs.cc (__set_lc_time_from_win): Use LOCALE_SMONTHNAME1
1094 instead of LOCALE_SABBREVMONTHNAME1 in Japanese and Korean
1095 locales to get abbreviated month names. Explain why.
1096
10972010-05-18 Kazuhiro Fujieda <fujieda@acm.org>
d3258e06
CF
1098
1099 * environ.cc (regopt): Change the first argument to wide char string.
1100 (environ_init): Accommodate change to the first argument of regopt.
1101 * exception.cc (open_stackdumpfile): Accommodate change to the type of
1102 progname in _pinfo.
1103 * external.cc (fillout_pinfo): Ditto.
1104 * fhandler_process.cc (format_process_winexename): Ditto.
1105 (format_process_stat): Ditto.
1106 * fork.cc (fork::parent): Ditto.
1107 * pinfo.cc (pinfo_basic::pinfo_basic): Call GetModuleFileNameW instead
1108 of GetModuleFileName.
1109 (pinfo::thisproc): Accommodate change to the type of progname in
1110 _pinfo.
1111 (pinfo_init): Ditto.
1112 * pinfo.h (_pinfo): Change the type of progname to a wide char array.
1113 * registry.h (reg_key::get_int): Change the first argument from
1114 constant point to pointer to constant.
1115 (reg_key::get_string): Ditto. Change the last argument likewise.
1116 * registry.cc (reg_key::get_int): Accommodate change to the
1117 declaration.
1118 (reg_key::get_string): Ditto.
1119 * strace.cc (strace::hello): Accommodate change to the type of progname
1120 in _pinfo.
1121 (strace::vsprntf): Ditto.
1122
27f564e9
CF
11232010-05-07 Christopher Faylor <me+cygwin@cgf.cx>
1124
1125 * Makefile.in (DLL_OFILES): Add pseudo-reloc.o.
1126 * dcrt0.cc (child_info_fork::handle_fork): Call
1127 _pei386_runtime_relocator here.
1128 (dll_crt0_1): Ditto for non-fork case.
1129 * dll_init.cc (dll::init): Complain more in comment. Clean up
1130 slightly.
1131 (dll_dllcrt0_1): Call _pei386_runtime_relocator when we know we have
1132 a filled-in per_process structure.
1133 * globals.cc (__cygwin_user_data): Accommodate new fields for
1134 _pei386_runtime_relocator.
1135 * pseudo-reloc.cc: New file adapted from old lib/pseudo-reloc.c.
1136 Include winsup.h directly. Collapse #ifdef __CYGWIN__ into one block.
1137 Perform minor whitespace code reformatting.
1138 (__report_error): Use small_printf to output error.
1139 (_pei386_runtime_relocator): Conditionalize for cygwin to take
1140 per_process pointer parameter.
1141 * winsup.h (_pei386_runtime_relocator): Declare.
1142 * include/cygwin/version.h
1143 (CYGWIN_VERSION_PER_PROCESS_API_VERSION_COMBINED): New macro.
1144 (CYGWIN_VERSION_USER_API_VERSION_COMBINED): Use above macro.
1145 (CYGWIN_VERSION_USE_PSEUDO_RELOC_IN_DLL): New macro.
1146 (CYGWIN_VERSION_API_MINOR): Bump to 227.
1147 * include/sys/cygwin.h: Remove obsolete comment.
1148 (per_process::unused2): Shorten.
1149 (per_process::pseudo_reloc_start): New field.
1150 (per_process::pseudo_reloc_end): Ditto.
1151 (per_process::image_base): Ditto.
1152 * lib/_cygwin_crt0_common.cc: Declare pseudo runtime externs needed for
1153 per_process structure.
1154 (_cygwin_crt0_common): Fill in pseudo_reloc runtime constants.
1155 * lib/pseudo-reloc-dummy.c: New file. Dummy function to satisify ld.
1156 * lib/pseudo-reloc.c: Delete.
1157
186bcf2a
CV
11582010-05-07 Corinna Vinschen <corinna@vinschen.de>
1159
1160 * fhandler_tty.cc (fhandler_tty_slave::init): Disable grabbing
1161 process group ownership of tty in case we're being debugged.
1162
35c0485d
CV
11632010-05-06 Corinna Vinschen <corinna@vinschen.de>
1164
1165 * path.cc (path_conv::check): Drop setting sym.pflags before calling
1166 mount_info::conv_to_win32_path since the flag value is overwritten by
1167 mount_info::conv_to_win32_path anyway.
1168 Set flags for DOS paths before calling symlink_info::check so they can
1169 be used in that function already.
1170
73bcd49b
CF
11712010-05-03 Christopher Faylor <me+cygwin@cgf.cx>
1172
1173 * dll_init.cc (dll_list::alloc): Add debugging assertion.
1174
2b749986
CV
11752010-04-29 Corinna Vinschen <corinna@vinschen.de>
1176
1177 * dlfcn.cc (get_full_path_of_dll): Handle non-existent file.
1178
5b4c992b
CV
11792010-04-29 Corinna Vinschen <corinna@vinschen.de>
1180
1181 * mount.cc (struct opt): Add "dos" and "ihash" options.
1182 (fillout_mntent): Ditto.
1183 * path.cc (path_conv::get_nt_native_path): Use path_conv's
1184 has_dos_filenames_only method.
1185 (path_conv::check): Add PATH_IHASH flag if FS has unreliable inode
1186 numbers.
1187 (symlink_info::check_shortcut): Or symlink flags to pflags.
1188 (symlink_info::check_sysfile): Ditto. Change test accordingly.
1189 (symlink_info::check_reparse_point): Ditto.
1190 (symlink_info::check_nfs_symlink): Ditto.
1191 (symlink_info::check): Check PATH_DOS flag in call to get_nt_native_path
1192 to utilize mount flag. Ditto in test for potential restarting. Set
1193 PATH_DOS if FS only allows DOS filename rules.
1194 * path.h (enum path_types): Add PATH_DOS and PATH_IHASH.
1195 (path_conv::hasgood_inode): Check PATH_IHASH instead of
1196 fs.hasgood_inode.
1197 (path_conv::has_dos_filenames_only): New method.
1198 * include/sys/mount.h (MOUNT_DOS): New mount flag.
1199 (MOUNT_IHASH): Ditto.
1200
a11a0723
CV
12012010-04-29 Corinna Vinschen <corinna@vinschen.de>
1202
1203 * external.cc (cygwin_internal): Add CW_CVT_MNT_OPTS to allow mount
1204 flag parsing. Add CW_LST_MNT_OPTS case to allow mount flag listing.
1205 * mount.cc (fstab_read_flags): Rename from read_flags. Make externally
1206 available. Change input string to char ** to allow returning faulty
1207 option. Add flag for avoiding debug output.
1208 (fstab_list_flags): New function to create list of options.
1209 * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_CVT_MNT_OPTS and
1210 CW_LST_MNT_OPTS.
1211
f00bc469
CV
12122010-04-28 Corinna Vinschen <corinna@vinschen.de>
1213
1214 * mount.cc (compare_flags): New function.
1215 (read_flags): Replace loop with bsearch. Simplify error check.
1216
8f47a15c
CV
12172010-04-28 Corinna Vinschen <corinna@vinschen.de>
1218
1219 * include/cygwin/version.h: Bump API minor version.
1220
be764ea8
CV
12212010-04-28 Corinna Vinschen <corinna@vinschen.de>
1222
1223 * cygwin.din (__locale_mb_cur_max): Export.
1224 * nlsfuncs.cc (__getlocaleinfo): Drop conversion to multibyte.
1225 (__charfromwchar): New function to convert to multibyte.
1226 (__eval_datetimefmt): Convert to return wchar_t pointer. Work on
1227 wide char string.
1228 (__set_lc_time_from_win): Take additional pointer to "C" category info
1229 to accommodate C.foo locales. Rework to fill wide char members in
1230 category info.
1231 (__set_lc_ctype_from_win): New function.
1232 (__set_lc_numeric_from_win): Take additional pointer to "C" category
1233 info to accommodate C.foo locales. Rework to fill wide char members
1234 in category info.
1235 (__set_lc_monetary_from_win): Ditto.
1236 (__set_lc_messages_from_win): Ditto.
1237 (__get_current_collate_codeset): New function, called from nl_langinfo.
1238 * include/cygwin/config.h (__HAVE_LOCALE_INFO_EXTENDED__): Define.
1239
9b53b52a
CF
12402010-04-27 Christopher Faylor <me+cygwin@cgf.cx>
1241
1242 * spawn.cc (find_exec): Use the first detected errno when lookup fails.
1243
0f6697b3
CV
12442010-04-27 Corinna Vinschen <corinna@vinschen.de>
1245
1246 * include/regex.h: Include _ansi.h to avoid missing out on preprocessor
1247 macros in sys/_types.h.
1248
002a34fa
CV
12492010-04-26 Corinna Vinschen <corinna@vinschen.de>
1250
1251 * mount.h (fs_info::inited): New inline method.
1252 * path.cc (path_conv::check): Clear filesystem info if following a
1253 symlink. Use new fs_info::inited method to check if FS info is already
1254 available.
1255 (symlink_info::check): Drop fs_update_called. Use fs_info::inited
1256 method instead. Streamline test for leading space and trailing dot or
1257 space. Add comments.
1258
8802178f
CV
12592010-04-23 Corinna Vinschen <corinna@vinschen.de>
1260
1261 * path.h (get_nt_native_path): Add third parameter to declaration and
1262 declare with regparms.
1263 * path.cc (get_nt_native_path): Add third parameter to allow conversion
1264 of leading and trailing dots and spaces on filesystems only supporting
1265 filenames following DOS rules.
1266 (path_conv::get_nt_native_path): Call get_nt_native_path according to
1267 fs.has_dos_filenames_only flag.
1268 (getfileattr): Accommodate new parameter to get_nt_native_path.
1269 (symlink_info::check): Revamp fs_update_called handling to call
1270 fs.update only once per call. Call get_nt_native_path according to
1271 fs.has_dos_filenames_only flag. Streamline filesystem dependent code
1272 not to be called more than once unnecessarily. Drop code tweaking
1273 incoming path for broken filesystems only allowing DOS pathnames.
1274 Rely on changed get_nt_native_path instead.
1275 * mount.cc (fillout_mntent): Accommodate new parameter to
1276 get_nt_native_path.
1277 * strfuncs.cc (tfx_rev_chars): New conversion table with comment.
1278 (sys_cp_wcstombs): Use tfx_rev_chars rather than tfx_chars.
1279
b12d6d10
CV
12802010-04-22 Corinna Vinschen <corinna@vinschen.de>
1281
1282 * path.cc (symlink_info::check): Make sure to restart only once.
1283
6ff06a07
CV
12842010-04-22 Corinna Vinschen <corinna@vinschen.de>
1285
1286 * mount.cc (GETVOLINFO_VALID_MASK): Drop FILE_SEQUENTIAL_WRITE_ONCE
1287 from mask. Expand the comment a bit.
1288 (WIN_FAT_FLAGS): New define.
1289 (FS_IS_WINDOWS_FAT): New macro.
1290 (fs_info::update): Handle remote FS faking to be FAT. Subsume under
1291 CIFS. Check for NWFS and has_buggy_basic_info only for remote
1292 filesystems. Add check for has_dos_filenames_only.
1293 * mount.h (class fs_info): Add has_dos_filenames_only status flag.
1294 Implement accessors.
1295 * path.cc (symlink_info::check): Rearrange variable definitions to
1296 clear them up. Add a restart label to allow a clean restart within
1297 the method. Add a check for broken filesystems only allowing DOS
1298 pathnames in case we encounter a STATUS_OBJECT_NAME_NOT_FOUND status.
1299 If all checks point to one of that, restart method with tweaked
1300 incoming path. Add lengthy comments to explain what we do.
1301
c43e1944
CV
13022010-04-22 Corinna Vinschen <corinna@vinschen.de>
1303
1304 * path.cc (symlink_info::check): Fix a comment.
1305
05c98e07
CV
13062010-04-21 Corinna Vinschen <corinna@vinschen.de>
1307 Christopher Faylor <me+cygwin@cgf.cx>
1308
1309 * fhandler_termios.cc (tcinit): Remove previously applied change.
1310 Replace with...
1311 * fhandler_tty.cc (fhandler_tty_slave::init): Become process group
1312 leader if called from dtable::init_std_file_from_handle. Add comment
1313 to explain.
1314
179bee57
CV
13152010-04-21 Corinna Vinschen <corinna@vinschen.de>
1316
1317 * dtable.cc (dtable::init_std_file_from_handle): Set access mask for
1318 the slave side of ttys explicitely. Explain why.
1319
27f1db48
CF
13202010-04-20 Christopher Faylor <me+cygwin@cgf.cx>
1321
1322 * path.cc (cygwin_create_path): Free memory on error.
1323
9e40fe81
CV
13242010-04-20 Corinna Vinschen <corinna@vinschen.de>
1325
1326 * cygheap.h (struct init_cygheap): Add rlim_core member.
1327 * cygheap.cc (cygheap_init): Initialize rlim_core to RLIM_INFINITY.
1328 * exceptions.cc (stackdump): Drop extern declaration of rlim_core.
1329 Refer to cygheap->rlim_core instead.
1330 (exception::handle): Disable stackdumping if cygheap->rlim_core is 0.
1331 Don't set WCOREDUMP flag in exit code, if cygheap->rlim_core is 0.
1332 (sigpacket::process): Ditto.
1333 * resource.cc (rlim_core): Remove.
1334 (getrlimit): Fetch RLIMIT_CORE value from cygheap->rlim_core.
1335 (setrlimit): Store RLIMIT_CORE value in cygheap->rlim_core.
1336
2ac91a14
CF
13372010-04-19 Christopher Faylor <me+cygwin@cgf.cx>
1338
1339 * cygerrno.h: Nevermind.
1340
e1b57fc2
CF
13412010-04-19 Christopher Faylor <me+cygwin@cgf.cx>
1342
1343 * cygerrno.h: Protect use of NTSTATUS for only when we need it.
1344
13452010-04-19 Christopher Faylor <me+cygwin@cgf.cx>
1346
1347 * lib/_cygwin_crt0_common.cc: Remove unneeded declarations.
1348
b7b55e90
CV
13492010-04-19 Corinna Vinschen <corinna@vinschen.de>
1350
1351 * fhandler_tty.cc (fhandler_tty_slave::fch_set_sd): Remove commented out
1352 code.
1353
cc01c77f
CV
13542010-04-19 Corinna Vinschen <corinna@vinschen.de>
1355
1356 * autoload.cc (GetNamedPipeClientProcessId): Define.
1357 * fhandler.h (fhandler_tty_slave::fch_open_handles): Declare private.
1358 (fhandler_tty_slave::fch_close_handles): Ditto.
1359 (fhandler_tty_slave::cygserver_attach_tty): Drop declaration.
1360 (fhandler_tty_slave::fstat): Declare public.
1361 (fhandler_tty_slave::fchmod): Declare public.
1362 (fhandler_tty_slave::fchown): Declare public.
1363 (class fhandler_pty_master): Add master_ctl handle.
1364 (fhandler_pty_master::pty_master_thread): Declare public.
1365 * fhandler_termios.cc (fhandler_termios::tcinit): If the process
1366 is started from a non-Cygwin process, make it tty process group
1367 leader.
1368 * fhandler_tty.cc: Throughout accommodate additional security related
1369 arguments in calls to functions creating or opening objects.
1370 (close_maybe): Move to start of file to reuse it
1371 in other methods.
1372 (struct pipe_request): Define.
1373 (struct pipe_reply): Define.
1374 (fhandler_tty_slave::open): Throughout, try to open synchronization
1375 objects with MAXIMUM_ALLOWED permissions. Drop call to cygserver.
1376 Try to duplicate pipe handles via master_ctl pipe if duplicating
1377 directly doesn't work.
1378 (fhandler_tty_slave::cygserver_attach_tty): Remove.
1379 (fhandler_tty_slave::init): Close unused incoming pipe handle.
1380 (fhandler_pty_master::close): Send exit message to master control
1381 thread and close master_ctl handle.
1382 (fhandler_pty_master::pty_master_thread): New method, implementing the
1383 master control thread.
1384 (pty_master_thread): Static helper to start master control thread.
1385 (fhandler_pty_master::setup): Simplify creating pipe inheritance.
1386 Make sure we're the one creating the input_available_event. Add
1387 comment to explain why. Create master_ctl pipe and start master
1388 control thread. Close master_ctl handle in case of error.
1389 * security.cc (alloc_sd): Add code to handle tty objects. Add comments
1390 to explain what exactly is required.
1391 (get_object_sd): New function.
1392 (get_object_attribute): New function.
1393 (create_object_sd_from_attribute): New function.
1394 (set_object_sd): New function.
1395 (set_object_attribute): New function.
1396 (set_file_attribute): Change attribute type to mode_t.
1397 * security.h (set_file_attribute): Change attribute type to mode_t.
1398 (get_object_sd): Declare.
1399 (get_object_attribute): Declare.
1400 (create_object_sd_from_attribute): Declare.
1401 (set_object_sd): Declare.
1402 (set_object_attribute): Declare.
1403 * tty.cc (tty::slave_alive): Implement directly instead of via alive.
1404 (tty::exists): Open mutex handle with READ_CONTROL access.
1405 (tty::alive): Remove.
1406 (tty::open_output_mutex): Convert to inline method.
1407 (tty::open_input_mutex): Ditto.
1408 (tty::open_mutex): Take additional ACCESS_MASK parameter for the
1409 mutex open access mask.
1410 (tty::open_inuse): New method.
1411 (tty::create_inuse): Take PSECURITY_ATTRIBUTES parameter. Drop fmt
1412 name parameter. Always create TTY_SLAVE_ALIVE event.
1413 (tty::get_event): Take additional PSECURITY_ATTRIBUTES parameter for
1414 CreateEvent.
1415 * tty.h (class tty): Change declarations according to aforementioned
1416 changes.
1417 (tty::open_output_mutex): Implement as inline method.
1418 (tty::open_input_mutex): Ditto.
1419
02a33ea7
CV
14202010-04-19 Corinna Vinschen <corinna@vinschen.de>
1421
1422 * dtable.cc (dtable::init_std_file_from_handle): Set dev to
1423 valid content for ptys. Remove setting FILE_CREATE_PIPE_INSTANCE
1424 in access flags since it's not needed. Set the access mask for
1425 kernel objects according to what's returned by NtQueryInformationFile,
1426 info class FileAccessInformation.
1427
bc8a5a9f
CV
14282010-04-19 Corinna Vinschen <corinna@vinschen.de>
1429
1430 * syscalls.cc (rename): On STATUS_ACCESS_VIOLATION, retry to open
1431 for DELETE until the STATUS_ACCESS_VIOLATION goes away. Add comment
1432 to explain why.
1433
b5efa899
CV
14342010-04-17 Corinna Vinschen <corinna@vinschen.de>
1435
1436 * sec_helper.cc (get_null_sd): Make static. Use PSECURITY_DESCRIPTOR
1437 instead of SECURITY_DESCRIPTOR *.
1438 (sec_acl): Fix fomratting.
1439 * security.h (get_null_sd): Drop declaration.
1440
7cdcd90c
CV
14412010-04-16 Corinna Vinschen <corinna@vinschen.de>
1442
1443 * cygerrno.h (seterrno_from_nt_status): Declare.
1444 (__seterrno_from_nt_status): Call seterrno_from_nt_status.
1445 * errno.cc (seterrno_from_win_error): Set errno without calling
1446 set_errno to avoid packing strace output with errno messages.
1447 (seterrno_from_nt_status): New function to print NT status as well as
1448 resulting Windows error.
1449
6b0f100a
CV
14502010-04-15 Corinna Vinschen <corinna@vinschen.de>
1451
1452 * kernel32.cc (CreateEventW): Create event object with EVENT_ALL_ACCESS
1453 access mask.
1454 (CreateMutexW): Create mutex object with MUTEX_ALL_ACCESS access mask.
1455 (CreateSemaphoreW): Create semaphore object with SEMAPHORE_ALL_ACCESS
1456 access mask.
1457
b873ce06
CV
14582010-04-15 Corinna Vinschen <corinna@vinschen.de>
1459
1460 * sec_helper.cc (set_cygwin_privileges): Enable SE_DEBUG_PRIVILEGE, if
1461 available. Add comments.
1462
0ef4bb7c
CV
14632010-04-13 Corinna Vinschen <corinna@vinschen.de>
1464
1465 * fhandler_socket.cc (get_inet_addr): Only test the file for being a
1466 socket after opening it. Retry if opening failed with sharing
1467 violation. Explain why we do this.
1468 (fhandler_socket::bind): Create file with no sharing allowed.
1469
2bba259e
CV
14702010-04-13 John Bowman <bowman@math.ualberta.ca>
1471
1472 * cygheap.cc (cwcsdup): Fix allocation size to accommodate sizeof WCHAR.
1473 (cwcsdup1): Ditto.
1474
098f9c6e
CV
14752010-04-12 Corinna Vinschen <corinna@vinschen.de>
1476
1477 * include/cygwin/version.h: Bump DLL minor version number to 5.
1478
6b1c332f
CV
14792010-04-12 Corinna Vinschen <corinna@vinschen.de>
1480
1481 * posix.sgml (std-notes): Improve lseek description.
1482
42e9cefd
CV
14832010-04-12 Corinna Vinschen <corinna@vinschen.de>
1484
1485 * fhandler_tty.cc (fhandler_tty_slave::open): Add code to duplicate
1486 handles within a single process to simplify openpty case.
1487 (fhandler_tty_slave::cygserver_attach_tty): Correctly send Windows PID
1488 to cygserver, rather than the Cygwin PID.
1489
02507092
CV
14902010-04-11 Corinna Vinschen <corinna@vinschen.de>
1491
1492 * fhandler.h (class dev_console): Add backspace_keycode member.
1493 * fhandler_console.cc (fhandler_console::get_tty_stuff): Initialize
1494 backspace_keycode with CERASE.
1495 (fhandler_console::read): Return dev_state->backspace_keycode if the
1496 backspace key is pressed.
1497 (fhandler_console::char_command): Implement DECBKM escape sequence.
1498
1d6adee8
CF
14992010-04-10 Christopher Faylor <me+cygwin@cgf.cx>
1500
1501 * fhandler_console.cc (fhandler_console::read): Default to sending
1502 CERASE character if termios VERASE field is zero.
1503 (fhandler_console::fixup_after_fork_exec): Avoid a spurious debug
1504 message.
1505
89a903b8
CF
15062010-04-10 Christopher Faylor <me+cygwin@cgf.cx>
1507
1508 * mkvers.sh: Use modern date formats to construct the date.
1509
1691abe7
CV
15102010-04-09 Corinna Vinschen <corinna@vinschen.de>
1511
1512 * nlsfuncs.cc (__set_lc_time_from_win): Actually set
1513 _time_locale->md_order to the D_MD_ORDER value written to the buffer.
1514
412f3e61
CF
15152010-04-09 Christopher Faylor <me+cygwin@cgf.cx>
1516
1517 * path.cc (path_conv::set_normalized_path): Use crealloc_abort to avoid
1518 a memory leak.
1519 * path.h (path_conv::operator =): Just use cstrdup to allocate
1520 normalized_path, avoiding attempt to free a pointer which is allocated
1521 in another pc.
1522
f8fbd1ea
CV
15232010-04-07 Corinna Vinschen <corinna@vinschen.de>
1524
1525 * include/cygwin/version.h: Bump DLL minor version number to 4.
1526
385b0add
CV
15272010-04-06 Corinna Vinschen <corinna@vinschen.de>
1528
1529 * thread.cc (valid_sched_parameters): Declare extern here.
1530 (sched_set_thread_priority): Ditto.
1531
249ccad3
CV
15322010-04-06 Corinna Vinschen <corinna@vinschen.de>
1533
1534 * include/sched.h: Remove, overruled by newlib file.
1535 * include/sys/sched.h: Ditto.
1536
35297ebe
CF
15372010-04-06 Christopher Faylor <me+cygwin@cgf.cx>
1538
1539 * fhandler_fifo.cc (fhandler_fifo::open): Accommodate previous return
1540 value change to setup_overlapped.
1541
19085182
CF
15422010-04-02 Christopher Faylor <me+cygwin@cgf.cx>
1543
1544 * fhandler.h (fhandler_base::has_ongoing_io): Declare virtual method.
1545 * select.cc (peek_pipe): Reorganize slightly. Don't attempt to check a
1546 handle if it has ongoing I/O.
1547 (select_pipe_info::select_pipe_info): Delete definition.
1548 (select_pipe_info::~select_pipe_info): Delete definition.
1549 (thread_pipe): Get rid of WFMO call. Reorganize loop.
1550 (pipe_cleanup): Remove dependence on destructor.
1551 (thread_serial): Reorganize loop.
1552 * select.h (select_pipe_info): Empty this class since it no longer has
1553 any special requirements (for now).
1554
1555 * syscalls.cc (readv): Remove an unneeded debug printf.
1556
5151c80c
CF
15572010-04-02 Christopher Faylor <me+cygwin@cgf.cx>
1558
1559 * fhandler.h (fhandler_base::setup_overlapped): Delete virtual
1560 declaration.
1561 (fhandler_base::destroy_overlapped): Ditto.
1562 (fhandler_base_overlapped): Remove now-unneeded friend.
1563 (fhandler_base_overlapped::setup_overlapped): Return int, remove
1564 parameter.
1565 (fhandler_base_overlapped::get_overlapped): Return reference.
1566 (fhandler_base_overlapped::fhandler_base_overlapped): Be more assertive
1567 about zeroing everything.
1568 (fhandler_base_overlapped::fixup_after_fork): Declare new function.
1569 (fhandler_base_overlapped::fixup_after_exec): Ditto.
1570 (fhandler_base_overlapped::dup): Ditto.
1571 (fhandler_base_overlapped::close): Ditto.
1572 * fhandler_fifo.cc (fhandler_fifo::dup): Call
1573 fhandler_base_overlapped::dup rather than fhandler_base::dup.
1574 * pipe.cc (fhandler_pipe::dup): Ditto.
1575 (fhandler_pipe::init): Accommodate change in setup_overlapped arguments
1576 for "opened_properly" case.
1577
60efdd0c
CF
15782010-04-02 Christopher Faylor <me+cygwin@cgf.cx>
1579
1580 * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Properly initialize
1581 overlapped part of this class.
1582
7c972c63
CV
15832010-04-02 Corinna Vinschen <corinna@vinschen.de>
1584
1585 * fhandler_tty.cc (fhandler_tty_slave::close): Revert previous change.
1586
dffe690c
CF
15872010-04-02 Christopher Faylor <me+cygwin@cgf.cx>
1588
1589 * select.h (select_pipe_info::add_watch_handle): Delete declaration.
baa671ea 1590 * select.cc (select_pipe_info::add_watch_handle): Delete definition.
dffe690c
CF
1591 (fhandler_pipe::select_read): Delete call to add_watch_handle.
1592 (fhandler_pipe::select_write): Ditto.
1593 (fhandler_pipe::select_except): Ditto.
1594
1ae0a7c5
CF
15952010-04-02 Christopher Faylor <me+cygwin@cgf.cx>
1596
1597 * dtable.cc (dtable::init_std_file_from_handle): Avoid adding fh to
1598 fdtab until we know that it is good.
1599 * fhandler_tty.cc (fhandler_tty_slave::fhandler_tty_slave): Handle
1600 error conditions more consistently. Avoid handle leakage on error.
1601
ed32dd89
CV
16022010-04-02 Corinna Vinschen <corinna@vinschen.de>
1603
1604 * fhandler_tty.cc (fhandler_tty_slave::close): Avoid potential crash
1605 if former open call has been unsuccessful.
1606
ce3124dc
CV
16072010-04-01 Corinna Vinschen <corinna@vinschen.de>
1608
1609 * nlsfuncs.cc: Fix indentation.
1610
57f7ebe1
CV
16112010-04-01 Corinna Vinschen <corinna@vinschen.de>
1612
1613 * nlsfuncs.cc (rebase_locale_buf): New helper function to rebase
1614 function pointers in locale structures. Explain why this is necessary.
1615 (__set_lc_time_from_win): Use rebase_locale_buf after realloc.
1616 (__set_lc_numeric_from_win): Ditto.
1617 (__set_lc_monetary_from_win): Ditto.
1618
bc3f0d64
CF
16192010-03-31 Christopher Faylor <me+cygwin@cgf.cx>
1620
1621 * sigproc.cc (wait_sig): Make sure that strace is activated on
1622 __SIGSTRACE by calling new strace::activate function.
1623 * strace.cc (strace::activate): Rename from strace::strace.
1624 * strace.h (strace::activate): Define new function.
1625 (strace::strace): Call activate.
1626
e446d6d0
CF
16272010-03-31 Christopher Faylor <me+cygwin@cgf.cx>
1628
1629 * fhandler.h (fhandler_base_overlapped): Temporarily (?) make
1630 select_pipe_info a friend until the fhandler_tty intertangling can be
1631 worked out.
1632 * select.cc (select_pipe_info::add_watch_handle): Don't inspect the
1633 overlapped event if we're not waiting for I/O.
1634 (fhandler_tty_common::select_*): Change to standard function. Don't do
1635 kludgy fhandler_pipe coercion.
1636
2aeef065
CF
16372010-03-31 Christopher Faylor <me+cygwin@cgf.cx>
1638
1639 * fhandler.cc (fhandler_base::dup): Call setup_overlapped
1640 unconditionally.
1641 (fhandler_base::fork_fixup): Ditto.
1642 (fhandler_base::fixup_after_fork): Ditto.
1643 (fhandler_base::fixup_after_exec): Ditto.
1644 (fhandler_base_overlapped::setup_overlapped): Move to this class from
1645 fhandler_base.
1646 (handler_base_overlapped::destroy_overlapped): Ditto.
1647 (fhandler_base_overlapped::wait_overlapped): Ditto. Track when we
1648 expect pending I/O.
1649 (fhandler_base_overlapped::read_overlapped): Move to this class from
1650 fhandler_base. Return error if ongoing I/O.
1651 (fhandler_base_overlapped::write_overlapped): Ditto.
1652 (fhandler_base_overlapped::has_ongoing_io): Semi-reinstate previous
1653 function.
1654 * fhandler.h (fhandler_base::wait_overlapped): Move to
1655 fhandler_base_overlapped class.
1656 (fhandler_base::write_overlapped): Ditto.
1657 (fhandler_base::get_overlapped): Ditto.
1658 (fhandler_base::get_overlapped_buffer): Ditto.
1659 (fhandler_base_overlapped): New class.
1660 (fhandler_pipe): Inherit from fhandler_base_overlapped. Remove
1661 overlapped stuff as a result.
1662 (fhandler_fifo): Ditto.
1663 * pipe.cc (fhandler_pipe::fhandler_pipe): Initialize fhandler_base_overlapped.
1664 (pipe): Put a descriptive name in the fhandler.
1665
d8b4cbe8
CV
16662010-03-30 Corinna Vinschen <corinna@vinschen.de>
1667
1668 * fhandler_socket.cc (fhandler_socket::wait_for_events): Remove call to
1669 sig_dispatch_pending.
1670
ca8eb333
CV
16712010-03-30 Thomas Wolff <towo@towo.net>
1672
b791ec4a
CF
1673 * fhandler.h (class dev_console): Drop vt100_graphics_mode_active. Add
1674 flags vt100_graphics_mode_G0, vt100_graphics_mode_G1 and iso_2022_G1.
ca8eb333
CV
1675 * fhandler_console.cc: Throughout, tune VT100 graphics mode switching
1676 to follow ISO 2022 strictly.
b791ec4a
CF
1677 (fhandler_console::write) Reset VT100 graphic mode flags on terminal
1678 full reset (ESC c).
ca8eb333 1679
298cf05c
CV
16802010-03-30 Corinna Vinschen <corinna@vinschen.de>
1681
1682 * syscalls.cc (open): Remove call to sig_dispatch_pending.
1683
83dddecb
CV
16842010-03-30 Corinna Vinschen <corinna@vinschen.de>
1685
1686 * net.cc: Remove calls to sig_dispatch_pending throughout.
1687 * libc/rexec.cc: Ditto.
1688
e23275a8
CV
16892010-03-30 Corinna Vinschen <corinna@vinschen.de>
1690
1691 * mount.cc (fs_info::update): Allow variable FILE_SUPPORTS_SPARSE_FILES
1692 flag in netapp flag test. Add comment.
1693
b3cbb06c
CV
16942010-03-29 Corinna Vinschen <corinna@vinschen.de>
1695
1696 * spawn.cc (find_exec): Enable finding paths in backslash notation,
1697 especially for the exec[vl]p functions.
1698
1699 * path.cc (symlink_info::check): Disable returning directories with
1700 suffix appended here.
1701
ef7fc145
CV
17022010-03-29 Corinna Vinschen <corinna@vinschen.de>
1703
1704 * include/cygwin/version.h: Bump DLL minor version number to 3.
1705
ce3d8993
CV
17062010-03-29 Corinna Vinschen <corinna@vinschen.de>
1707
1708 * fhandler.cc (fhandler_base::fstat): Keep st_ctime and st_birthtime
1709 fixed to 2006-12-01 00:00 UTC.
1710
f1c6730b
CV
17112010-03-29 Corinna Vinschen <corinna@vinschen.de>
1712
1713 * libc/rcmd.c: Enable IPv6.
1714
e2402ed8
CF
17152010-03-28 Christopher Faylor <me+cygwin@cgf.cx>
1716
7a2df116 1717 * fhandler.cc (fhandler_base::fstat): Set st_mtime to current time.
e2402ed8 1718
c019a66c
CF
17192010-03-28 Christopher Faylor <me+cygwin@cgf.cx>
1720
1721 * globals.cc (exit_status): Add new ES_EXIT_STARTING enum.
1722 * dcrt0.cc (cygwin_exit): Set exit_state to ES_EXIT_STARTING prior to
1723 calling real exit.
1724 * dll_init.cc (dll_list::detach): Remove dll from linked list and call
1725 destructors even if exiting. Don't call __cxa_finalize in exiting case.
1726
68b0fa82
CV
17272010-03-27 Corinna Vinschen <corinna@vinschen.de>
1728
1729 * nlsfuncs.cc (__set_charset_from_locale): Set default charset for
1730 locales defaulting to codepage 936 to GB2312.
1731
65b4b495
CV
17322010-03-22 Corinna Vinschen <corinna@vinschen.de>
1733
1734 * fhandler_socket.cc (fhandler_socket::evaluate_events): Make erase
1735 const in parameter list.
1736 (fhandler_socket::wait_for_events): Take a DWORD flags value instead of
1737 just a bool. Call evaluate_events with erase flag according to
1738 MSG_PEEK value in flags. Replace check for dontwait with check for
1739 MSG_DONTWAIT in flags.
1740 (fhandler_socket::connect): Call wait_for_events with 0 flags value.
1741 (fhandler_socket::accept4): Ditto.
1742 (fhandler_socket::recv_internal): Save flags in wait_flags. Drop
1743 dontwait variable. Call wait_for_events with wait_flags.
1744 (fhandler_socket::send_internal): Save MSG_DONTWAIT flag in wait_flags
1745 and call wait_for_events with wait_flags as argument. Drop dontwait
1746 variable.
1747 * fhandler.h (class fhandler_socket): Change second parameter in
1748 declaration of wait_for_events to const DWORD.
1749
0f6de51a
CV
17502010-03-19 Corinna Vinschen <corinna@vinschen.de>
1751
1752 * fhandler_disk_file.cc (fhandler_cygdrive::fstat): Add standard read
1753 permissions again.
1754
60698cf3
CF
17552010-03-18 Corinna Vinschen <corinna@vinschen.de>
1756
1757 * shared.cc (init_installation_root): Change to make sure that scope of
1758 the lock lasts the entire function.
1759
cef5dfd7
CF
17602010-03-15 Christopher Faylor <me+cygwin@cgf.cx>
1761
1762 * shared_info.h (user_info): Add dll_crt0_1 as a friend.
1763 (user_info::version): Make LONG to accommodate spinlock use.
1764 (user_info::create): New static function renamed from user_info_create.
1765 (user_info::initialize): New private function renamed from
1766 user_info_initialize.
1767 (SHARED_VERSION): Delete.
1768 (SHARED_VERSION_MAGIC): Ditto.
1769 (USER_VERSION_MAGIC): Ditto.
1770 (SHARED_INFO_CB): Ditto.
1771 (USER_VERSION): Ditto.
1772 (USER_VERSION_MAGIC): Ditto.
1773 (CURR_SHARED_MAGIC): Update.
1774 (CURR_USER_MAGIC): Ditto.
1775 (shared_info::version): Make LONG to accommodate spinlock use.
1776 (shared_info::create): New static function mirroring user_info::create.
1777 (dll_crt0_1): Accommodate change to user_info::initialize.
1778 * spinlock.h (spinlock::setto): New variable member.
1779 (spinlock::done): New function.
1780 (spinlock::spinlock): Generalize to allow arbitrary values and
1781 timeouts. Call done() when lock is not needed.
1782 * ntdll.h: Make multiple-inclusion safe.
1783 (NtQuerySystemTime): Declare.
1784 * shared.cc (installation_root_inited): Rename from shared_mem_inited.
1785 (init_installation_root): Make inline. Use a spinlock to ensure that
1786 this is initialized only once per session.
1787 (user_info::initialize): Rename from user_shared_initialize. Protect
1788 with spinlock on sversion and remove other spinlock-like things.
1789 Remove reference to user_shared since it is now implicit. Refer to
1790 spinlock version of multiple_cygwin_problem to ensure that any spinlock
1791 is released.
1792 (user_info::create): Rename from user_shared_create. Accommodate
1793 change from user_shared_initialize to user_info::initialize.
1794 (shared_info::create): New inline function.
1795 (shared_info::initialize): Protect with spinlock on sversion. Move
1796 heap_init back under specific control of shared_info spinlock. Remove
1797 reference to SHARED_INFO_CB and just use sizeof(*this).
1798 (memory_init): Move all locking into respective functions where it is
1799 needed. Accommodate name changes. Remove call to heap_init().
1800 * syscalls.cc (seteuid32): Accommodate name change to
1801 user_info::create().
1802
1803 * mount.cc (mount_info::create_root_entry): Report on errors from
1804 add_item since they should be nonexistent.
1805 (mount_info::init): Don't initialize nmounts. It should already be
1806 zero. Give more verbose error when root_idx < 0. Implicitly use this
1807 pointer rather than explicitly referencing mount_table->.
1808 (mount_info::add_item): Minor whitespace fix.
1809
654e623c
CF
18102010-03-15 Christopher Faylor <me+cygwin@cgf.cx>
1811
1812 * sigproc.cc (no_signals_available): Get sense of the test right for
1813 previous botched change.
1814
d1ef5f33
CF
18152010-03-15 Christopher Faylor <me+cygwin@cgf.cx>
1816
1817 * sigproc.cc (no_signals_available): Don't try to send a signal if
1818 still in cygwin startup code.
1819
f8af64be
CF
18202010-03-13 Christopher Faylor <me+cygwin@cgf.cx>
1821
1822 * spinlock.h: New file.
1823 (spinlock): New class.
1824 * shared.cc: Include spinlock.h.
1825 (memory_init): Use new spinlock methods rather than roll-your-own.
1826 Time out after ten seconds if shared_mem_inited is not initialized.
1827
1828 * sync.h: Update copyright. Remove vanity attribution.
1829
1830 * sigproc.cc (sigproc_terminate): Avoid attempts to kill the signal
1831 thread while we're still initializing or suffer a deadlock.
1832
084ea510
CF
18332010-03-12 Christopher Faylor <me+cygwin@cgf.cx>
1834
1835 Throughout change all calls of low_priority_sleep (0) to yield ().
1836 * miscfuncs.cc (yield): Rename from low_priority_sleep. Remove all of
1837 the logic which called Sleep() and just use SwitchToThread.
1838 * miscfuncs.h (yield): Rename from low_priority_sleep.
1839 (SLEEP_0_STAY_LOW): Delete unused define.
1840 * shared.cc (memory_init): Move heap_init() call directly after shared
1841 memory initialization to more closely mimic long-standing program flow.
1842 * tty.cc (tty_list::terminate): Replace call to low_priority_sleep with
1843 Sleep.
1844
c2fe02c4
CF
18452010-03-10 Christopher Faylor <me.cygwin@cgf.cx>
1846
1847 * shared.cc (memory_init): Fix comment. Fix indentation.
1848
bd3b3783
CF
18492010-03-09 Christopher Faylor <me+cygwin@cgf.cx>
1850
1851 * shared_info.h (open_shared): Create function wrapper for common use
1852 case.
1853 (open_shared): Change fifth argument to a pointer rather than a
1854 reference.
1855 * fhandler_console.cc (fhandler_console::get_tty_stuff): Eliminate use
1856 of dummy variable and call open_shared with constant.
1857 * fhandler_process.cc (format_process_mounts): Ditto.
1858 * pinfo.cc (pinfo::init): Pass pointer to shloc.
1859 * shared.cc (shared_mem_inited): New variable.
1860 (open_shared): Crate function wrapper for common use case.
1861 (open_shared): Accommodate change to fifth argument to a pointer.
1862 (shared_info::initialize): Remove spinlock test. Simplify function.
1863 Move get_session_parent_dir call back here.
1864 (memory_init): Protect global shared settings with shared_mem_inited
1865 spinlock. Move get_session_parent_dir call to shared_info::initialize.
1866
e8190d8f
CF
18672010-03-09 Christopher Faylor <me.cygwin@cgf.cx>
1868
1869 * shared.cc (inst_root_inited): Delete.
1870 * (shared_info::initialize): Reorganize. Move call to
1871 init_installation_root here under spinlock control. Move unneeded
1872 non-shared_info initialization out of this function.
1873 (memory_init): Remove call to init_installation_root. Call heap_init
1874 and get_session_parent_dir here.
1875
8e75995c
CV
18762010-03-04 Corinna Vinschen <corinna@vinschen.de>
1877
1878 * syscalls.cc (nt_path_has_executable_suffix): Change storage class of
1879 blessed_executable_suffixes to static.
1880 (rename): Revert meaning of old_explicit_suffix. Change the rules
1881 for appending a .exe suffix and (yikes!) document them.
1882
a9fd7424
CV
18832010-03-04 Charles Wilson <cygwin@cwilson.fastmail.fm>
1884
1885 * cygwin.din: Export __xdr functions.
1886 * include/cygwin/version.h: Bump version.
1887 * posix.sgml: Add a few more XDR functions to list
1888 of implemented Solaris functions.
1889
53c24915
CV
18902010-03-03 Charles Wilson <cygwin@cwilson.fastmail.fm>
1891
1892 Add XDR support.
1893 * cygwin.din: Export xdr functions.
1894 * include/cygwin/version.h: Bump version.
1895 * cygxdr.cc: New.
1896 * cygxdr.h: New.
1897 * dcrt0.cc (dll_crt0_1): Print the (rare) xdr-related
1898 error messages to stderr.
1899 * Makefile.in: Add cygxdr.
1900 * posix.sgml: Add new XDR functions to list of implemented Solaris
1901 functions.
1902
cf156945
CF
19032010-03-01 Christopher Faylor <me+cygwin@cgf.cx>
1904
1905 * cygtls.h: Replace /*gentls_offsets*/ at end.
1906
a9b112ec
CF
19072010-03-01 Christopher Faylor <me+cygwin@cgf.cx>
1908
1909 * exception.h: Fix copyright.
1910
98a97ac6
CF
19112010-02-27 Christopher Faylor <me+cygwin@cgf.cx>
1912
1913 Update some copyrights.
1914 * cygtls.cc (_cygtls::call): Invoke new exception protection here.
1915 (_cygtls::init_thread): Remove conditionalized exception handler setup.
1916 (exception_list): Delete declaration.
1917 (_cygtls::init_exception_handler): Delete obsolete function.
1918 * cygtls.h: Remove (now) unneeded include.
1919 (_cygtls): Make this a real C++ class.
1920 (_cygtls::handle_exceptions): Remove.
1921 (_cygtls::init_exception_handler): Remove.
1922 (_cygtls::call2): Make private.
1923 (myfault::faulted): Remove unneeded parentheses.
1924 * dcrt0.cc (dll_crt0_1): Remove exception handler setup.
1925 * dlfcn.cc (dlopen): Ditto.
1926 (dlclose): Ditto.
1927 * dll_init.cc (dll_dllcrt0_1): Ditto.
1928 (dll_list::detach): Use new exception handler protection.
1929 * exceptions.cc (dump_exception): Rename to prevent confusion with new
1930 class.
1931 (exception::handle): Rename from _cygtls::handle_exceptions.
1932 Accommodate new exception class. Accommodate rename to dump_exception.
1933 * tlsoffsets.h: Regenerate.
1934
d5d5bf4d
CF
19352010-02-26 Christopher Faylor <me+cygwin@cgf.cx>
1936
1937 * cygtls.h (_cygtls::init_exception_handler): Eliminate argument.
1938 (_cygtls::andreas): Convert to a pointer.
1939 (san): Convert to a real class with methods. Use a linked list to
1940 keep track of previous handlers on the "stack".
1941 (myfault): Rewrite to use new san class rather than calling directly
1942 into _cygtls.
1943 * cygtls.cc (_cygtls::init_exception_handler): Just assume that we're
1944 always using the standard exception handler.
1945 (_cygtls::init_thread): Reflect loss of argument to
1946 init_exception_handler.
1947 * dcrt0.cc (dll_crt0_1): Ditto.
1948 * dfcn.cc (dlopen): Ditto.
1949 (dlclose): Reset the exception handler after FreeLibrary.
1950 * dll_init.cc (dll_list::detach): Make sure that the exception handler
1951 is initialized before calling destructors.
1952 * exceptions.cc (_cygtls::handle_exceptions): Accommodate new andreas
1953 pointer.
1954 * thread.cc (verifyable_object_isvalid): Pass objectptr to faulted for
1955 explicit NULL pointer checking.
1956 * tlsoffsets.h: Regenerate.
1957
b6336c95
CF
19582010-02-26 Christopher Faylor <me+cygwin@cgf.cx>
1959
1960 * mkimport: cd away from temp directory or Windows will have problems
1961 removing the directory.
1962
75bd77d2
CV
19632010-02-26 Corinna Vinschen <corinna@vinschen.de>
1964
1965 * libc/strptime.cc: Implement support for era, alt_digits and POSIX
1966 padding and width modifiers.
1967 (era_info_t): New type.
1968 (free_era_info): New static function to free era_info_t storage.
1969 (get_era_info): New static function to create era_info_t storage
1970 from LC_TIME era information.
1971 (alt_digits_t): New type.
1972 (get_alt_digits): New static function to create alt_digits_t storage
1973 from LC_TIME alt_digits information.
1974 (free_alt_digits): New static function to free alt_digits_t storage.
1975 (find_alt_digits): New static function to scan input for alternative
1976 digits and return them, if any. Return NULL otherwise.
1977 (__strptime): New static function taking all code from strptime.
1978 Implement handling for E, O, +, 0, and width modifiers per POSIX-1.2008.
1979 (strptime): Convert into wrapper function to provide era_info and
1980 alt_digits pointers and call __strptime.
1981 (conv_num): Take additional alt_digits_t parameter and if it's not
1982 NULL, call find_alt_digits to convert.
1983
f467ede2
CV
19842010-02-26 Corinna Vinschen <corinna@vinschen.de>
1985
1986 * strsig.cc: Fix formatting and copyright.
1987
a90dc29d
PH
19882010-02-26 Pierre Humblet <Pierre.Humblet@ieee.org>
1989
1990 * security.cc (check_access): Use user.imp_token if appropriate.
f467ede2 1991 Set errno and return if DuplicateTokenEx fails .
a90dc29d 1992
d91ab868
CV
19932010-02-26 Corinna Vinschen <corinna@vinschen.de>
1994
1995 Remove all traces of __CYGWIN_USE_BIG_TYPES__.
1996
1997 * include/cygwin/config.h: Move Cygwin-specific build flags from
1998 newlib's sys/config.h here. Add a comment.
1999
0512608d
YS
20002010-02-25 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
2001
2002 * include/cygwin/signal.h: Define SIGPWR as synonym for SIGLOST.
2003 * strsig.cc: Ditto.
2004 * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR.
2005
1550b620
CV
20062010-02-25 Corinna Vinschen <corinna@vinschen.de>
2007
2008 * lc_era.h (lc_era_t): Fix apparent glibc bug in ja_JP era definition.
2009
be71be8e
CV
20102010-02-24 Corinna Vinschen <corinna@vinschen.de>
2011
2012 * sec_auth.cc (get_full_privileged_inheritable_token): Fix dumb typo
2013 when checking linked token for being a primary token.
2014
c6a6b5a3
CF
20152010-02-24 Christopher Faylor <me+cygwin@cgf.cx>
2016
2017 * dlfcn.cc (dlopen): Make sure exception handler is really loaded after
2018 dynamic load.
2019
fd4a56af
CF
20202010-02-23 Christopher Faylor <me+cygwin@cgf.cx>
2021
2022 * cygtls.cc (_cygtls::init_exception_handler): Force installation of
2023 our exception handler to always be at the beginning.
2024
7414c24a
CF
20252010-02-23 Christopher Faylor <me+cygwin@cgf.cx>
2026
2027 * thread.cc (pthread_mutex::unlock): Don't attempt to unlock if there
2028 is an error.
2029
478ea460
CF
20302010-02-22 Christopher Faylor <me+cygwin@cgf.cx>
2031
2032 * include/sys/strace.h: Define _STRACE_SPECIAL.
2033 (strace_printf_wrap): Fix NOSTRACE definitions.
2034 (strace_printf_wrap1): Fix NOSTRACE definitions.
2035 (special_printf): Define.
2036
2037 * thread.cc: Perform minor syntax fix in a comment. Rename
2038 "is_good_initialzer*" to "is_initializer*" throughout. Use
2039 pthread_printf rather than debug_printf throughout. Add extra
2040 pthread_printf debugging throughout.
2041 (pthread_mutex::_new_mutex): New constant value.
2042 (pthread_mutex::_unlocked_mutex): Ditto.
2043 (pthread_mutex::_destroyed_mutex): Ditto.
2044 (pthread_mutex::no_owner): Define new function.
2045 (pthread_mutex::can_be_unlocked): Detect no_owner situation. Handle
2046 PTHREAD_MUTEX_NORMAL as a special case.
2047 (pthread::create_cancel_event): Use C++ boolean values.
2048 (pthread::precreate): Use method to set mutex type.
2049 (pthread_cond::pthread_cond): Ditto.
2050 (pthread_rwlock::pthread_rwlock): Ditto.
2051 (pthread_mutex::pthread_mutex): Set owner to _new_mutex initially.
2052 (pthread_mutex::~pthread_mutex): Reset various elements to make it
2053 clearer if they are incorrectly reused.
2054 (pthread_mutex::lock): Add clarifying comment.
2055 (pthread_mutex::unlock): Attempt to handle various mutex types
2056 correctly. In particular, reinstate ability to have one thread unlock
2057 another thread's mutex if type == PTHREAD_MUTEX_NORMAL.
2058 (semaphore::_fixup_after_fork): Avoid redundancy.
2059 (pthread_mutex::_fixup_after_fork): Ditto. Fix debugging statement.
2060 (__pthread_cond_dowait): Accommodate changes to remove previously
2061 inexplicable use can_be_unblocked() as a static function.
2062 * thread.h: Rename "is_good_initialzer*" to "is_initializer*"
2063 throughout.
2064 (pthread_mutex): Reorganize. Make many things private.
2065 (pthread_mutex::no_owner): Define new method.
2066 (pthread_mutex::_new_mutex): Define new constant.
2067 (pthread_mutex::_unlocked_mutex): Ditto.
2068 (pthread_mutex::_destroyed_mutex): Ditto.
2069
f2ecf0ee
CV
20702010-02-22 Corinna Vinschen <corinna@vinschen.de>
2071
2072 * lc_era.h: Redefine lc_era_t to keep
2073 default date and time formats as well to workaround YA Windows
2074 shortcoming. Refresh with latest data.
2075 * lc_msg.h: Refresh with latest data.
2076 * nlsfuncs.cc (__eval_datetimefmt): Revert latest change.
2077 (__set_lc_time_from_win): Rename res to era. Prefer default date and
2078 time formats from era array if available.
2079 (__set_lc_messages_from_win): Rename res to msg.
2080
5d765846
CV
20812010-02-20 Corinna Vinschen <corinna@vinschen.de>
2082
2083 * lc_era.h (lc_era): Fix "ja_JP" era_t_fmt entry to use traditional
2084 format.
2085 * nlsfuncs.cc (dt_flags): Remove DT_ERACAL since crippled era data
2086 in Windows makes it useless.
2087 (__eval_datetimefmt): Check if locale's default calender has
2088 non-gregorian start year. Use era year also in default date entries,
2089 if so.
2090
53a918f3
CV
20912010-02-20 Corinna Vinschen <corinna@vinschen.de>
2092
2093 * path.cc (warn_msdos): Enforce extended hex printing of multibyte
2094 pathnames.
2095
ff3e6bcb
CF
20962010-02-19 Christopher Faylor <me+cygwin@cgf.cx>
2097
2098 * include/sys/strace.h: Remove old code. Add support for ptrace
2099 tracing.
2100
6c36e83b
CV
21012010-02-19 Corinna Vinschen <corinna@vinschen.de>
2102
2103 * lc_era.h: New file.
2104 * nlsfuncs.cc: Include lc_era.h.
2105 (locale_cmp): convert arguments to char** to be usable for both types,
2106 lc_msg_t and lc_era_t.
2107 (__set_lc_time_from_win): Handle era-related data
2108
1929fc8e
CV
21092010-02-19 Corinna Vinschen <corinna@vinschen.de>
2110
2111 * fhandler_disk_file.cc (fhandler_disk_file::opendir): Try to open
2112 directory with stat()-friendly access mask first. Explain why.
2113
eb676040
CV
21142010-02-19 Corinna Vinschen <corinna@vinschen.de>
2115
2116 * fhandler_disk_file.cc (fhandler_base::fstat_helper): Set st_rdev
2117 to same value as st_dev. Avoid useless debug output in executable
2118 check. Add filename to debug output.
2119 (fhandler_disk_file::facl): Simplify code calling fstat methods to
2120 just call fstat to avoid errors with the cygdrive directory.
2121
97c8d005
CV
21222010-02-18 Corinna Vinschen <corinna@vinschen.de>
2123
2124 * nlsfuncs.cc (eval_datetimefmt): Rename force to flags.
2125 (enum dt_flags): Define.
2126 (__eval_datetimefmt): Change force to flags and change type to
2127 dt_flags. Accommodate throughout.
2128 (__set_lc_time_from_win): Accommodate above change. Set era-related
2129 values to empty strings for now.
2130
90f5de33
CF
21312010-02-18 Christopher Faylor <me+cygwin@cgf.cx>
2132
2133 * fhandler.cc (fhandler_base::setup_overlapped): Revert to starting
2134 with handle in signalled state as it seems to fix some hangs.
2135
66f2d8f1
CV
21362010-02-15 Corinna Vinschen <corinna@vinschen.de>
2137
2138 * path.cc (path_conv::check): Treat native DOS paths as "noacl".
2139
93579594
CV
21402010-02-15 Corinna Vinschen <corinna@vinschen.de>
2141
2142 * mount.cc (mount_info::conv_to_win32_path): Set UNC path flags to
2143 cygdrive prefix path flags.
2144
8103e407
CF
21452010-02-14 Christopher Faylor <me+cygwin@cgf.cx>
2146
2147 * fhandler.cc (fhandler_base::setup_overlapped): Don't set signalled
2148 state to true initially.
2149 (fhandler_base::has_ongoing_io): Delete ill-advised function.
2150 (fhandler_base::read_overlapped): Rely on caller having checked
2151 nonblocking state. Don't attempt to (incorrectly) check it here.
2152 (fhandler_base::write_overlapped): Remove call to has_ongoing_io.
2153 * select.cc (peek_pipe): Ditto.
2154 * fhandler.h (fhandler_base::has_ongoing_io): Delete declaration.
2155
d67a6ce4
CF
21562010-02-14 Christopher Faylor <me+cygwin@cgf.cx>
2157
2158 * regex/regcomp.c (xwcrtomb): Fix one explicable and one inexcplicable
2159 C warning.
2160
15a9e176
CV
21612010-02-13 Corinna Vinschen <corinna@vinschen.de>
2162
2163 * regex/regcomp.c (xwcrtomb): Don't convert Unicode chars outside the
2164 base plane always to UTF-8. Call wcsnrtombs instead to allow arbitrary
2165 multibyte charsets.
2166
6b3f923f
CV
21672010-02-12 Corinna Vinschen <corinna@vinschen.de>
2168
2169 * regex/regcomp.c (wgetnext): Use size_t as type for n2 since that's
2170 what's returned by mbrtowc.
2171 * regex/regexec.c (xmbrtowc): Ditto.
2172
2b1407d3
CF
21732010-02-12 Christopher Faylor <me+cygwin@cgf.cx>
2174
2175 * pthread.cc (pthread_mutex_init): Explicitly fill out third arg to
2176 pthread_mutex::init.
2177 * thread.cc: Remov some obsolete comments.
2178 (verifyable_object_isvalid): Reflect change to use thread_magic_t for
2179 magic numbers.
2180 (pthread_mutex::pthread_mutex): Set magic number to invalid initially
2181 until we've verified that everything is valid.
2182 (pthread_mutex::unlock): Fix a comment.
2183 (verifyable_object::verifyable_object): Delete here.
2184 (~verifyable_object::~verifyable_object): Ditto.
2185 (pthread_mutex::init): Don't run is_good_initializer for non-static
2186 objects.
2187 * thread.h (thread_magic_t): New typedef.
2188 (verifyable_object::verifyable_object): Use thread_magic_t;
2189 (verifyable_object::magic): Ditto.
2190 (pthread_mutex::is_good_initializer_or_bad_object): Remove unneeded
2191 variable names.
2192 (pthread_mutex::can_be_unlocked): Ditto.
2193 (pthread_mutex::init): Ditto. Remove default for third argument.
2194
7bd2296c
CV
21952010-02-12 Corinna Vinschen <corinna@vinschen.de>
2196
2197 * regex/regcomp.c (xwcrtomb): New function to convert wide chars
2198 outside of the base plane to UTF-8. Call throughout instead of
2199 wcrtomb.
2200 (wgetnext): Handle surrogate pairs on UTF-16 systems.
2201 * regex/regexec.c (xmbrtowc): Ditto.
2202
e122c471
CV
22032010-02-12 Corinna Vinschen <corinna@vinschen.de>
2204
2205 * sec_auth.cc (get_user_local_groups): Retrieve name of well known
2206 builtin group from system. Explain why.
2207 * sec_helper.cc (well_known_builtin_sid): New SID for BUILTIN group.
2208 * security.h (well_known_builtin_sid): Declare.
2209
848dbc8f
PH
22102010-02-11 Pierre Humblet <Pierre.Humblet@ieee.org>
2211
97e5d3ff 2212 * registry.cc (get_registry_hive_path): Add space in string.
848dbc8f 2213
44caccfc
CV
22142010-02-11 Corinna Vinschen <corinna@vinschen.de>
2215
2216 * regex/engine.c (step): Drop Cygwin-specific definition.
2217 (NONCHAR): Better cast here to make the test work. Move comment
2218 from step here.
2219 (matcher): Disable skipping initial string in multibyte case.
2220 * regex/regcomp.c (p_bracket): Don't simplify singleton in the invert
2221 case.
2222 (p_b_term): Handle early end of pattern after dash in bracket
2223 expression.
2224 (singleton): Don't ignore the wides just because there's already a
2225 singleton in the single byte chars. Fix condition for a singleton
2226 wide accordingly.
2227 (findmust): Check for LC_CTYPE charset, rather than LC_COLLATE charset.
2228 * regex2.h (CHIN): Fix condition in the icase & invert case.
2229 (ISWORD): Fix wrong cast to unsigned char.
2230
87c09031
CV
22312010-02-11 Andy Koppe <andy.koppe@gmail.com>
2232
2233 * nlsfuncs.cc (initial_setlocale): Move check whether charset has
2234 changed from here...
2235 (internal_setlocale): ...to here, to avoid unnecessary work when invoked
2236 via CW_INT_SETLOCALE.
2237
4f1c922e
CV
22382010-02-10 Corinna Vinschen <corinna@vinschen.de>
2239
2240 * nlsfuncs.cc (__set_charset_from_locale): Allow "@euro" modifier only
2241 for locales which use EUR as currency.
2242
ae40237a
CV
22432010-02-10 Corinna Vinschen <corinna@vinschen.de>
2244
2245 * nlsfuncs.cc (__get_lcid_from_locale): Convert iu_CA to iu-Latn-CA
2246 rather than iu-Cans-CA on Vista and later.
2247 (__set_charset_from_locale): Set default charset for iu_CA to UTF-8.
2248
3700578e
CF
22492010-02-10 Christopher Faylor <me+cygwin@cgf.cx>
2250
2251 * dcrt0.cc (_dll_crt0): Set _main_tls as early as possible.
2252 * thread.cc (pthread_mutex::can_be_unlocked): Remove check for
2253 MUTEX_OWNER_ANONYMOUS since it is racy and unsafe.
2254 (pthread::init_mainthread): Initialize thread directly from _my_tls.
2255 (pthread::self): Ditto.
2256 (pthread::get_tls_self_pointer): Delete.
2257 (pthread_mutex::pthread_mutex): Use an event rather than a semaphore.
2258 (pthread_mutex::lock): Rename from _<func>. Derive self directly.
2259 (pthread_mutex::tryunlock): Ditto.
2260 (pthread_mutex::destroy): Ditto.
2261 (pthread_mutex::unlock): Ditto. Accommodate change from semaphore to
2262 event.
2263 (pthread_mutex::_fixup_after_fork): Accommodate change from semaphore
2264 to event.
2265 (pthread_mutex::init): Don't attempt to initialize a semaphore unless
2266 it is in an initialized state. Do this check under
2267 mutex_initialization_lock.lock
2268 * thread.h (fast_mutex::init): Use event rather than semaphore.
2269 (fast_mutex::lock): Ditto.
2270 (pthread_mutex::_lock): Delete.
2271 (pthread_mutex::_unlock): Ditto.
2272 (pthread_mutex::_trylock): Ditto.
2273 (pthread_mutex::_destroy): Ditto.
2274 (pthread_mutex::get_pthread_self): Ditto.
2275 (pthread_mutex::get_tls_self_pointer): Ditto.
2276 (pthread_mutex::lock): Un-inline.
2277 (pthread_mutex::unlock): Ditto.
2278 (pthread_mutex::trylock): Ditto.
2279 (pthread_mutex::destroy): Ditto.
2280
161387a7
CF
22812010-02-09 Christopher Faylor <me+cygwin@cgf.cx>
2282
2283 * cygtls.h (struct _cygtls): Remove unneeded elements.
2284 * thread.cc (pthread::exit): Avoid potential double call to
2285 _my_tls.remove.
2286 * tlsoffsets.h: Regenerate.
2287
ae40237a
CV
22882010-02-09 Corinna Vinschen <corinna@vinschen.de>
2289
2290 * nlsfuncs.cc (lc_wcstombs): Add `return_invalid' flag to specify
2291 whether invalid chars should be ignored or not. Change comment.
2292 (__set_lc_monetary_from_win): Call lc_wcstombs with return_invalid
2293 flag set.
2294 (__set_lc_messages_from_win): Simplify to accommodate the fact that
2295 lc_wcstombs just ignores invalid chars. Explain why.
2296
3d9e3644
CV
22972010-02-09 Corinna Vinschen <corinna@vinschen.de>
2298
2299 * nlsfuncs.cc (__set_lc_messages_from_win): Fix typo.
2300
9008eb40
CV
23012010-02-09 Corinna Vinschen <corinna@vinschen.de>
2302
2303 * lc_msg.h: New file, fix a problem in locales with modifiers.
2304
09dfe7e0
CV
23052010-02-09 Corinna Vinschen <corinna@vinschen.de>
2306
2307 * lc_msg.h: New file, generated from running Linux system.
2308
502a4f52
CV
23092010-02-09 Corinna Vinschen <corinna@vinschen.de>
2310
2311 * lc_msg.h: New file, autogenerated from CLDR data.
2312 * nlsfuncs.cc: Include lc_msg.h.
2313 (lc_time_buf): Remove.
2314 (lc_numeric_buf): Remove.
2315 (lc_monetary_buf): Remove.
2316 (lc_mbstowcs): Fix previous fix.
2317 (__set_lc_time_from_win): Take additional pointer to buffer pointer,
2318 defined in newlib.
2319 (__set_lc_numeric_from_win): Ditto.
2320 (__set_lc_monetary_from_win): Ditto.
2321 (locale_cmp): New static function.
2322 (__set_lc_messages_from_win): New function to be called from newlib.
2323
f5a73638
CV
23242010-02-08 Corinna Vinschen <corinna@vinschen.de>
2325
2326 * external.cc (cygwin_internal): Add CW_INT_SETLOCALE case to
2327 allow to call internal_setlocale().
2328 * nlsfuncs.cc (internal_setlocale): Make externally available.
2329 * include/cygwin/version.h: Bump API minor number.
2330 * include/sys/cygwin.h (cygwin_getinfo_types): Add CW_INT_SETLOCALE.
2331
2332 * nlsfuncs.cc (lc_mbstowcs): Fix call to f_mbtowc.
2333 (__set_locale_from_locale_alias): Ignore "@cjknarrow" modifier.
2334
ab6ef080
CV
23352010-02-07 Corinna Vinschen <corinna@vinschen.de>
2336
2337 * nlsfuncs.cc (__get_lcid_from_locale): Handle "@cyrillic" modifier
2338 for uz_UZ locale here.
2339 (__set_charset_from_locale): Accommodate above change.
2340
07d061ae
CV
23412010-02-07 Corinna Vinschen <corinna@vinschen.de>
2342
2343 * nlsfuncs.cc (__set_locale_from_locale_alias): New function to read
2344 locale aliases from /usr/share/locale/locale.alias.
2345
689109a7
CV
23462010-02-06 Corinna Vinschen <corinna@vinschen.de>
2347
2348 * nlsfuncs.cc (__get_lcid_from_locale): Handle no_NO as nb_NO, rather
2349 than nn_NO.
2350
28d3c4fa
CV
23512010-02-06 Corinna Vinschen <corinna@vinschen.de>
2352
2353 * nlsfuncs.cc (has_modifier): MOve up in file to use in
2354 __get_lcid_from_locale as well.
2355 (__get_lcid_from_locale): Handle no_NO locale as alias for nn_NO.
2356 Default all sr_XY locales to Cyrillic script. Change lcid to Latin
2357 script if "@latin" modifier has been specified.
2358 (__set_charset_from_locale): Handle Serbian in codepage 1251 case as
2359 well. Also check for sr_BA lcid. Restrict "@euro" modifier to
2360 locales otherwise defaulting to ISO-8859-1.
2361
b6b23627
CV
23622010-02-06 Corinna Vinschen <corinna@vinschen.de>
2363
2364 * nlsfuncs.cc (__set_charset_from_locale): Set default charset for
2365 "ka_GE" locale to GEORGIAN-PS, for "kk_KZ" to PT154.
2366
38d9821d
CV
23672010-02-06 Corinna Vinschen <corinna@vinschen.de>
2368
2369 * path.cc (symlink_info::check_nfs_symlink): Reopen file with
2370 FILE_READ_EA access since, surprisingly, you need it to read EAs even
2371 on NFS.
2372
b96600ef
CV
23732010-02-06 Corinna Vinschen <corinna@vinschen.de>
2374
2375 * sec_auth.cc (get_full_privileged_inheritable_token): New function
2376 to fetch token with full privileges from logon token in Vista and
2377 later, and to make token inheritable. Add lengthy comments to explain
2378 the function's job.
2379 (cygwin_logon_user): Drop calling SetHandleInformation. Enable TCB
2380 privilege and call get_full_privileged_inheritable_token.
2381 (lsaauth): Don't fetch linked token and don't make handle inheritable
2382 here, just call get_full_privileged_inheritable_token instead.
2383 (lsaprivkeyauth): Ditto.
2384
207889c9
CV
23852010-02-05 Corinna Vinschen <corinna@vinschen.de>
2386
b6b23627 2387 * nlsfuncs.cc (__set_charset_from_locale): Set default charset for
207889c9
CV
2388 "uz_UZ" locale to ISO-8859-1, with the "@cyrillic" modifier to UTF-8.
2389
e7fd0883
CF
23902010-02-05 Christopher Faylor <me+cygwin@cgf.cx>
2391
2392 * dll_init.cc (per_module::run_dtors): Use consistent method for
2393 running destructors.
2394
6e3f2c62
CF
23952010-02-04 Christopher Faylor <me+cygwin@cgf.cx>
2396
2397 * regcomp.c (p_ere): Workaround incorrect compiler warning.
2398 * regerror.c (regatoi): Return non-const string or compiler complains
2399 in certain inexplicable situations.
2400
aec8c3d5
CV
24012010-02-04 Corinna Vinschen <corinna@vinschen.de>
2402
2403 * regex/engine.c (step): Declare and define with `int ch' rather than
2404 `wint_t ch' parameter. Explain why.
2405 (NONCHAR): Remove related Cygwin patch here, including wrong comment.
2406
e1e595a6
CV
24072010-02-04 Corinna Vinschen <corinna@vinschen.de>
2408
2409 Replace regex files with multibyte-aware version from FreeBSD.
2410 * Makefile.in (install-headers): Remove extra command to install
2411 regex.h.
2412 (uninstall-headers): Remove extra command to uninstall regex.h.
2413 * nlsfuncs.cc (collate_lcid): Make externally available to allow
2414 access to collation internals from regex functions.
2415 (collate_charset): Ditto.
2416 * wchar.h: Add __cplusplus guards to make C-clean.
2417 * include/regex.h: New file, replacing regex/regex.h. Remove UCB
2418 advertising clause.
2419 * regex/COPYRIGHT: Accommodate BSD license. Remove UCB advertising
2420 clause.
2421 * regex/cclass.h: Remove.
2422 * regex/cname.h: New file from FreeBSD.
2423 * regex/engine.c: Ditto.
2424 (NONCHAR): Tweak for Cygwin.
2425 * regex/engine.ih: Remove.
2426 * regex/mkh: Remove.
2427 * regex/regcomp.c: New file from FreeBSD. Tweak slightly for Cygwin.
2428 Import required collate internals from nlsfunc.cc.
2429 (p_ere_exp): Add GNU-specific \< and \> handling for word boundaries.
2430 (p_simp_re): Ditto.
2431 (__collate_range_cmp): Define.
2432 (p_b_term): Use Cygwin-specific collate internals.
2433 (findmust): Ditto.
2434 * regex/regcomp.ih: Remove.
2435 * regex/regerror.c: New file from FreeBSD. Fix a few compiler warnings.
2436 * regex/regerror.ih: Remove.
2437 * regex/regex.7: New file from FreeBSD. Remove UCB advertising clause.
2438 * regex/regex.h: Remove. Replaced by include/regex.h.
2439 * regex/regexec.c: New file from FreeBSD. Fix a few compiler warnings.
2440 * regex/regfree.c: New file from FreeBSD.
2441 * regex/tests: Remove.
2442 * regex/utils.h: New file from FreeBSD.
2443
66dd5c4f
CF
24442010-02-03 Christopher Faylor <me+cygwin@cgf.cx>
2445
2446 * sigproc.cc (get_proc_lock): Fix error message typo.
2447
4a49c715
CV
24482010-02-03 Corinna Vinschen <corinna@vinschen.de>
2449
2450 * fhandler_disk_file.cc (fhandler_base::fstat_helper): Workaround
2451 another bug in NWFS. Add comment to explain why. Improve debug output
2452 in case the NT calls to test for binary fail.
2453 * path.h (path_conv::fs_is_cifs): New method.
2454 (path_conv::fs_is_nwfs): New method.
2455
fac3c73b
CV
24562010-02-02 Corinna Vinschen <corinna@vinschen.de>
2457
2458 * include/paths.h (_PATH_MNTTAB): Define.
2459 (_PATH_MOUNTED): Define.
2460 * include/mntent.h: Include paths.h. Define MNTTAB and MOUNTED as their
2461 paths.h equivalents. Add comment.
2462
fc6a0dc8
CF
24632010-02-01 Christopher Faylor <me+cygwin@cgf.cx>
2464
2465 * dcrt0.cc (atexit_lock): Delete.
2466 (cygwin_exit): Remove atexit lock.
2467 (cygwin_atexit): Ditto. Rename parameter to match newlib. Call
2468 __cxa_atexit when invoked by a registered DLL.
2469 * dll_init.cc (remove_dll_atexit): Delete.
2470 (dll_list::find): New function.
2471 (dll_list::detach): Use dll_list::find to find dll associated with
2472 return address. Use __cxa_finalize to run atexit functions associated
2473 with the dll.
2474 (cygwin_detach_dll): Don't assume that HANDLE == void *.
2475 * dll_init.h (dll_list::find): Declare.
2476 (__cxa_atexit): Ditto.
2477 (__cxa_finalize): Ditto.
2478
2479 * init.cc (dll_entry): Clarify comment.
2480
a3906150
DK
24812010-02-02 Dave Korn <dave.korn.cygwin@gmail.com>
2482
2483 * how-startup-shutdown-works.txt: Add new document.
2484
54c4a926
CV
24852010-01-29 Corinna Vinschen <corinna@vinschen.de>
2486
2487 * sec_auth.cc (lsaauth): Use CYG_LSA_MAGIC as checksum start value to
2488 decouple from Cygwin release.
2489
0b189c1e
CV
24902010-01-29 Corinna Vinschen <corinna@vinschen.de>
2491
2492 * libc/strfmon.c (__setup_vars): Test for an empty string rather than
2493 for a NULL pointer.
2494
d5c4cd3f
CF
24952010-01-29 Christopher Faylor <me+cygwin@cgf.cx>
2496
2497 * dll_init.cc (remove_dll_atexit): New function.
2498 (dll_list::detach): Run any atexit handlers registered in the DLL prior
2499 to unloading.
2500
2b37c431
CF
25012010-01-29 Christopher Faylor <me+cygwin@cgf.cx>
2502
2503 * libc/strfmon.c (__setup_vars): Fix compiler warning about assigning
2504 const strings. Compare a pointer to NULL rather than '\0'.
2505
2506 * dll_init.cc (dll_dllcrt0_1): Minor comment fix.
2507
2508 * pipe.cc (fhandler_pipe::create_selectable): Remove Win9x
2509 accommodation.
2510
3432d6f1
CV
25112010-01-29 Corinna Vinschen <corinna@vinschen.de>
2512
2513 Throughout, use FileBothDirectoryInformation info class rather than
2514 FileDirectoryInformation info class to avoid problems with incomplete
2515 filesystem implementations. Fix comments accordingly.
2516 * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Set
2517 fname->Length to 0 in error case to avoid potential crash in debug
2518 output.
2519 (fhandler_disk_file::readdir): Try to speed up the working default case.
2520 Check for STATUS_INVALID_NETWORK_RESPONSE as potential status value
2521 returned by filesystems not implementing FileIdBothDirectoryInformation.
2522 * ntdll.h (STATUS_INVALID_NETWORK_RESPONSE): Define.
2523 (FILE_BOTH_DIRECTORY_INFORMATION): Rename to official name.
2524 * path.cc (symlink_info::check): Don't request FILE_READ_EA access, it's
2525 not required for NFS. Try to speed up the working default case. Check
2526 for STATUS_INVALID_NETWORK_RESPONSE as potential status value returned
2527 by filesystems not supporting non-NULL EA parameters. Fix the way
2528 fs.update is called. Improve debug output.
2529
1b52d127
CV
25302010-01-28 Corinna Vinschen <corinna@vinschen.de>
2531
2532 * Makefile.in (tags, ctags, CTAGS)): Add rules to create tags file.
2533
8944c6af
CV
25342010-01-25 Corinna Vinschen <corinna@vinschen.de>
2535
2536 * nlsfuncs.cc (__get_lcid_from_locale): Add comments. Fix typos in
2537 comments. Make sure to set last_lcid every time. Return locale
2538 without territory part as invalid. Handle modern serbian territory
2539 names per ISO 3166 on older systems as well. Add appropriate comment.
2540 (__set_charset_from_locale): Handle LCID for sr_CS as well to make older
2541 systems happy.
2542
0f8df291
CV
25432010-01-25 Corinna Vinschen <corinna@vinschen.de>
2544
2545 * nlsfuncs.cc (__set_charset_from_locale): Rearrange to set charset
2546 more closely aligned to Glibc.
2547
27ac6434
CV
25482010-01-25 Corinna Vinschen <corinna@vinschen.de>
2549
2550 * spawn.cc (spawn_guts): Only try to remove long path prefix from
2551 runpath if runpath is not NULL.
2552
4fc8ae4f
CV
25532010-01-25 Corinna Vinschen <corinna@vinschen.de>
2554
2555 * nlsfuncs.cc (__get_lcid_from_locale): Fix a comment. Handle special
2556 language/TERRITORY combinations explicitely. Explain why.
2557
05fab4a6
CV
25582010-01-24 Corinna Vinschen <corinna@vinschen.de>
2559
2560 * nlsfuncs.cc (__set_charset_from_locale): Fix comment.
2561
57c7e05e
CV
25622010-01-24 Corinna Vinschen <corinna@vinschen.de>
2563
2564 * nlsfuncs.cc (check_codepage): Move from syscalls.cc here.
2565 (internal_setlocale): Ditto.
2566 (initial_setlocale): Ditto.
2567 (setlocale): Ditto.
2568 * strfuncs.cc (__sjis_wctomb): Revert previous patch.
2569 (__sjis_mbtowc): Ditto.
2570 * syscalls.cc: Move setlocale-related functions to nlsfuncs.cc.
2571
6b121156
CV
25722010-01-23 Corinna Vinschen <corinna@vinschen.de>
2573
2574 * strfuncs.cc (__sjis_wctomb): Special handling for characters which
2575 differ between SJIS and Windows codepage 932, if charset is "SJIS".
2576 (__sjis_mbtowc): Ditto.
2577 (_jis_wctomb): Remove.
2578 (__jis_mbtowc): Remove.
2579
e020bfa8
CV
25802010-01-23 Corinna Vinschen <corinna@vinschen.de>
2581
2582 * nlsfuncs.cc (wcsxfrm): Call LCMapStringW with LCMAP_BYTEREV flag to
2583 allow correct comparison using wcscmp.
2584
bc9fcc28
CV
25852010-01-22 Corinna Vinschen <corinna@vinschen.de>
2586
2587 * posix.sgml (strfmon): Move to implemented SUSv4 API.
2588
326fb376
CV
25892010-01-22 Corinna Vinschen <corinna@vinschen.de>
2590
2591 * Makefile.in (DLL_OFILES): Add nlsfunc.o and strfmon.o.
2592 * autoload.cc (LocaleNameToLCID): Define.
2593 * cygwin.din (strfmon): Export.
2594 * nlsfuncs.cc: New file. Define a lot of internal functions called
2595 from setlocale.
2596 (wcscoll): Implement locale-aware here, using CompareStringW function.
2597 (strcoll): Ditto.
2598 (wcsxfrm): Implement locale-aware here, usingLCMapStringW function.
2599 (strxfrm): Ditto.
2600 (__set_charset_from_locale): Replace __set_charset_from_codepage.
2601 Return Linux-compatible charset.
2602 * strfuncs.cc (__set_charset_from_codepage): Remove.
2603 * wchar.h (__set_charset_from_codepage): Drop definition.
2604 * wincap.h (wincaps::has_localenames): New element.
2605 * wincap.cc: Implement above element throughout.
2606 * libc/strfmon.c: New file.
2607 * libc/strptime.cc: Remove locale constant strings in favor of
2608 access to locale-specifc data.
2609 (strptime): Point _CurrentTimeLocale to locale-specific data.
2610 Throughout use correct locale-specific format fields for all
2611 locale-specific formats.
2612 * include/monetary.h: New file.
2613 * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2614
43b4aa0f
CV
26152010-01-18 Corinna Vinschen <corinna@vinschen.de>
2616
2617 * strfuncs.cc: Remove needless includes.
2618
62910474
CV
26192010-01-17 Corinna Vinschen <corinna@vinschen.de>
2620
2621 * syscalls.cc (internal_setlocale): Use UTF-8 internally if external
2622 charset is ASCII.
2623
011560c8
CV
26242010-01-15 Corinna Vinschen <corinna@vinschen.de>
2625
2626 * libc/fnmatch.c: Replace with multibyte capable version from FreeBSD.
2627
1a8d1e10
CV
26282010-01-15 Corinna Vinschen <corinna@vinschen.de>
2629
2630 * fhandler_socket.cc (fhandler_socket::accept4): Reset async flag
2631 on accepted socket.
2632
9d5bf1b1
CV
26332010-01-15 Pierre A. Humblet <phumblet@phumblet.no-ip.org>
2634
2635 * fhandler_socket.cc (fhandler_socket::accept4): Set nonblocking
2636 flag exactly according to flags, as on Linux.
2637 * net.cc (cygwin_accept): Maintain BSD semantics here.
2638
0d653155
CV
26392010-01-15 Corinna Vinschen <corinna@vinschen.de>
2640
2641 * cygwin.din (accept4): Export.
2642 * fhandler.h (fhandler_socket::accept4): Rename from accept. Take
2643 additional flag parameter.
2644 * fhandler_socket.cc (fhandler_socket::accept4): Ditto. Handle
2645 SOCK_NONBLOCK and SOCK_CLOEXEC flags.
2646 * net.cc (cygwin_socket): Handle SOCK_NONBLOCK and SOCK_CLOEXEC flags
2647 in type. Check for invalid flag values.
2648 (socketpair): Ditto.
2649 (cygwin_accept): Accommodate renaming of fhandler_socket::accept
2650 function to accept4.
2651 (accept4): New function.
2652 * posix.sgml: Mention accept4 as GNU extensions.
2653 * include/cygwin/socket.h (SOCK_NONBLOCK): Define.
2654 (SOCK_CLOEXEC): Define.
2655 (_SOCK_FLAG_MASK): Define when building Cygwin.
2656 * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2657 * include/sys/socket.h (accept4): Declare.
2658
14c800a5
CV
26592010-01-15 Corinna Vinschen <corinna@vinschen.de>
2660
2661 * posix.sgml: Mention dup3 and pipe2 as GNU extensions.
2662
41d184bb
CV
26632010-01-14 Corinna Vinschen <corinna@vinschen.de>
2664
2665 * dcrt0.cc (dll_crt0_1): Reset locale to "C" at the last moment before
2666 calling the application's main.
2667 * syscalls.cc (internal_setlocale): Don't reset locale to "C here.
2668 Change comment accordingly.
2669
e70fdfb9
CV
26702010-01-14 Corinna Vinschen <corinna@vinschen.de>
2671
2672 * cygwin.din (dup3): Export.
2673 (pipe2): Export.
2674 * dtable.cc (dtable::dup_worker): Take additional flags parameter.
2675 Handle O_CLOEXEC flag.
2676 (dtable::dup3): Rename from dup2. Take additional flags parameter.
2677 Check for valid flags. Drop check for newfd == oldfd.
2678 * dtable.h (dtable::dup_worker): Add flags parameter.
2679 (dtable::dup3): Rename from dup2.
2680 * fcntl.cc (fcntl64): Add F_DUPFD_CLOEXEC case.
2681 * fhandler.h (fhandler_mailslot::get_object_attr): Add flags parameter.
2682 * fhandler.cc (fhandler_base::open): Use security attribute with
2683 inheritance according to setting of O_CLOEXEC flag.
2684 * fhandler_console.cc (fhandler_console::open): Ditto.
2685 * fhandler_fifo.cc (sec_user_cloexec): New inline function to
2686 create security attribute with inheritance according to setting of
2687 O_CLOEXEC flag.
2688 (fhandler_fifo::open): Call sec_user_cloexec to fetch security
2689 attribute.
2690 (fhandler_fifo::wait): Ditto.
2691 * fhandler_mem.cc (fhandler_dev_mem::open): Ditto.
2692 * fhandler_mailslot.cc (fhandler_mailslot::get_object_attr): Take
2693 additional flags parameter. Use security attribute with inheritance
2694 according to setting of O_CLOEXEC flag.
2695 (fhandler_mailslot::open): Call get_object_attr with flags parameter.
2696 * fhandler_registry.cc (fhandler_registry::open): Call set_close_on_exec
2697 on real handles to accommodate O_CLOEXEC flag.
2698 * fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
2699 * fhandler_tape.cc: Create mutex with inheritance according to setting
2700 of O_CLOEXEC flag.
2701 * pipe.cc: Replace usage of O_NOINHERIT with O_CLOEXEC.
2702 (fhandler_pipe::init): Simplify setting close_on_exec flag.
2703 (fhandler_pipe::open): Remove setting close_on_exec flag.
2704 (fhandler_pipe::create): Use security attribute with inheritance
2705 according to setting of O_CLOEXEC flag.
2706 (pipe2): New exported function.
2707 * posix_ipc.cc: Throughout, open backing files with O_CLOEXEC
2708 flag to follow POSIX semantics.
2709 * security.h (sec_none_cloexec): New define.
2710 * syscalls.cc (dup): Add missing extern "C" qualifier. Accommodate
2711 renaming of dtable::dup2 to dtable::dup3.
2712 (dup2): Ditto. Check newfd == oldfd here.
2713 (dup3): New function. Check newfd == oldfd here.
2714 (open): Set close_on_exec flag according to O_CLOEXEC flag before
2715 calling fhandler->open.
2716 * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2717
811de4bf
CV
27182010-01-13 Corinna Vinschen <corinna@vinschen.de>
2719
2720 * include/fcntl.h (O_TTY_INIT): Define as 0.
2721
c0135201
CV
27222010-01-13 Corinna Vinschen <corinna@vinschen.de>
2723
2724 * fhandler_tty.cc (fhandler_tty_master::init): Don't erase all default
2725 termios settings of slave console.
2726
4bcdec72
CV
27272010-01-13 Corinna Vinschen <corinna@vinschen.de>
2728
2729 * syscalls.cc (rename): Don't exit prematurely with EROFS when trying
2730 to rename an AF_LOCAL socket or when trying to replace an AF_LOCAL
2731 socket.
2732
c04ed45d
CV
27332010-01-12 Corinna Vinschen <corinna@vinschen.de>
2734
2735 * globals.cc (ro_u_nwfs): New R/O unicode string.
2736 * mount.cc (fs_info::update): Check for NWFS filesystem. Set
2737 has_buggy_basic_info, if so. Add comment to explain why.
2738 (fillout_mntent): Add "nwfs" string to fs_names array.
2739 * mount.h (enum fs_info_type): Add nwfs.
2740 (class fs_info): Add has_buggy_basic_info status flag. Add accessors
2741 for has_buggy_basic_info and is_nwfs.
2742 * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Accommodate
2743 filesystems with broken FileBasicInformation handling.
2744 * path.cc (symlink_info::check): Ditto.
2745 * path.h (path_conv::has_buggy_basic_info): Add method.
2746
4ee93264
CV
27472010-01-12 Corinna Vinschen <corinna@vinschen.de>
2748
2749 * dtable.cc (build_fh_name_worker): Remove. Move all functionality
2750 back into build_fh_name.
2751 (build_fh_name): Drop unused HANDLE parameter. Drop call to pc.fillin.
2752 Remove disabled build_fh_name with UNICODE_STRING name parameter.
2753 * dtable.h (build_fh_name): Drop HANDLE parameter from declaration.
2754 Remove declaration for build_fh_name with UNICODE_STRING name parameter.
2755 * path.cc (path_conv::fillin): Remove.
2756 (symlink_info::check): Fix comment.
2757 * path.h (path_conv::fillin): Remove declaration.
2758 * dir.cc: Accommodate change in build_fh_name parameters throughout.
2759 * sec_acl.cc: Ditto.
2760 * syscalls.cc: Ditto.
2761
2762 * ntea.cc (getxattr_worker): Fix debug output.
2763 (setxattr_worker): Ditto.
2764 * times.cc (utimens_worker): Ditto.
2765
523a66d9
CV
27662010-01-11 Corinna Vinschen <corinna@vinschen.de>
2767
2768 * fhandler_proc.cc (format_proc_stat): Use new in_buf.
2769 (format_proc_cpuinfo): Replace szBuffer with a union in_buf. Use type
2770 correct throughout. Add a couple of missing or newer cpu flags. Allow
2771 certain AMD flags for intel as well.
2772
f1817d36
CV
27732010-01-10 Corinna Vinschen <corinna@vinschen.de>
2774
2775 * fhandler.h (fhandler_base::fstat_helper): Declare timestamps as
2776 PLARGE_INTEGER.
2777 * fhandler_disk_file.cc (fhandler_base::fstat_by_handle):
2778 Accommodate fstat_helper change of timestamp arguments.
2779 (fhandler_base::fstat_by_name): Ditto.
2780 (fhandler_base::fstat_helper): Define with timestamps as PLARGE_INTEGER.
2781 Accommodate in call to to_timestruc_t.
2782
9f00d746
CV
27832010-01-08 Corinna Vinschen <corinna@vinschen.de>
2784
2785 * sec_auth.cc (get_token_group_sidlist): Add BUILTIN\Users account
2786 to all created tokens.
2787 * sec_helper.cc (well_known_users_sid): Define as BUILTIN\Users.
2788 * security.h (well_known_users_sid): Declare.
2789
e1212c43
CF
27902010-01-01 Christopher Faylor <me+cygwin@cgf.cx>
2791
2792 * dcrt0.cc: Bump copyright.
2793
1afba8e5
CF
27942010-01-01 Christopher Faylor <me+cygwin@cgf.cx>
2795
2796 * dcrt0.cc (dll_crt0_1): Move internal locale setting prior to
2797 potential globify to prevent creation of unglobbed filenames in the
2798 wrong character set.
This page took 0.399685 seconds and 5 git commands to generate.