]> sourceware.org Git - newlib-cygwin.git/blob - winsup/cygwin/ChangeLog
* path.cc (symlink_info::check): Remove erroneous assumption about
[newlib-cygwin.git] / winsup / cygwin / ChangeLog
1 2010-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
6 2010-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
11 2010-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
19 2010-09-28 Corinna Vinschen <corinna@vinschen.de>
20
21 * net.cc (getdomainname): Drop special case for NT4.
22
23 2010-09-28 Corinna Vinschen <corinna@vinschen.de>
24
25 Revert accidental previous login.
26
27 2010-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
40 2010-09-28 Corinna Vinschen <corinna@vinschen.de>
41
42 * fhandler_tty.cc (fhandler_pty_master::setup): Always create master
43 thread.
44
45 2010-09-28 Corinna Vinschen <corinna@vinschen.de>
46
47 * syscalls.cc (gethostid): Use correct path to ProductId registry value.
48
49 2010-09-27 Corinna Vinschen <corinna@vinschen.de>
50
51 * mount.cc (fs_info::update): Remove erroneous NtClose on random handle
52 value.
53
54 2010-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
59 2010-09-26 Christopher Faylor <me+cygwin@cgf.cx>
60
61 * dcrt0.cc (__main): Force signal synchronization.
62
63 2010-09-25 Corinna Vinschen <corinna@vinschen.de>
64
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
86 2010-09-25 Corinna Vinschen <corinna@vinschen.de>
87
88 * autoload.cc: Throughout, order entry points alphabetically by DLL
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
94 2010-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
101 2010-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
108 2010-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
120 2010-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
125 2010-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
131 2010-09-21 Corinna Vinschen <corinna@vinschen.de>
132
133 * path.cc (cwdstuff::set): Replace constant 2 with sizeof(WCHAR) where
134 appropriate.
135
136 2010-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
153 2010-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
165 2010-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
176 2010-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
183 2010-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
199 2010-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
206 2010-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
212 2010-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
218 2010-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
248 2010-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
256 2010-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
261 2010-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
272 2010-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
284 2010-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
289 2010-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
306 2010-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
311 2010-09-10 Corinna Vinschen <corinna@vinschen.de>
312
313 * syscalls.cc (fstatat): Call stat_worker directly from here.
314
315 2010-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
327 2010-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
339 2010-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
354 2010-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
360 2010-09-08 Corinna Vinschen <corinna@vinschen.de>
361
362 * fhandler_procsys.cc (fhandler_procsys::open): Simplify by just
363 calling fhandler_base::open.
364
365 2010-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
431 2010-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
438 2010-09-02 Christopher Faylor <me+cygwin@cgf.cx>
439
440 * sigproc.cc (sigproc_init): Use American spelling in comment.
441
442 2010-09-01 Christopher Faylor <me+cygwin@cgf.cx>
443
444 * dcrt0.cc (dll_crt0_0): Remove myself settings.
445 * fork.cc (fork): Set myself process_state.
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
450 2010-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
482 2010-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
488 2010-09-01 Corinna Vinschen <corinna@vinschen.de>
489
490 * include/cygwin/version.h: Bump DLL minor version number to 8.
491
492 2010-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
498 2010-08-31 Corinna Vinschen <corinna@vinschen.de>
499
500 * include/cygwin/version.h: Bump DLL minor version number to 7.
501
502 2010-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
508 2010-08-30 Corinna Vinschen <corinna@vinschen.de>
509
510 * posix.sgml (std-notes): Fix typos and incorrectnesses.
511
512 2010-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
523 2010-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
541 2010-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
558 2010-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
570 2010-08-27 Corinna Vinschen <corinna@vinschen.de>
571
572 * fhandler_proc.cc (format_proc_partitions): Improve comment.
573
574 2010-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
579 2010-08-25 Corinna Vinschen <corinna@vinschen.de>
580
581 * mount.cc (fs_info::update): Fix comments.
582
583 2010-08-25 Corinna Vinschen <corinna@vinschen.de>
584
585 * syscalls.cc (rename): Open file with FILE_READ_ATTRIBUTES.
586
587 2010-08-24 Corinna Vinschen <corinna@vinschen.de>
588
589 * include/cygwin/version.h: Fix comment.
590
591 2010-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
596 2010-08-21 Corinna Vinschen <corinna@vinschen.de>
597
598 * Makefile.in (DLL_IMPORTS): Link against advapi32.a before kernel32.a.
599
600 2010-08-20 Christopher Faylor <me+cygwin@cgf.cx>
601
602 * cygthread.cc: Update copyright.
603
604 2010-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
609 2010-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
614 2010-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
630 2010-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
636 2010-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
644 2010-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
650 2010-08-18 Corinna Vinschen <corinna@vinschen.de>
651
652 * syscalls.cc (rename): Fix renaming file-based devices.
653
654 2010-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
661 2010-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
666 2010-08-16 Corinna Vinschen <corinna@vinschen.de>
667
668 * include/cygwin/version.h: Bump DLL minor version number to 6.
669
670 2010-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
675 2010-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
701 2010-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
709 2010-08-10 Christopher Faylor <me+cygwin@cgf.cx>
710
711 * sigproc.cc (init_sig_pipe): Add retry loop.
712
713 2010-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
720 2010-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
744 2010-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
753 2010-08-09 Yaakov Selkowitz <yselkowitz@users.sourceforge.net>
754
755 * include/dlfcn.h (RTLD_LOCAL): Define.
756
757 2010-08-06 Corinna Vinschen <corinna@vinschen.de>
758
759 * include/sys/dirent.h (d_fileno): Define as d_ino.
760
761 2010-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
768 2010-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
780 2010-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
795 2010-07-23 Corinna Vinschen <corinna@vinschen.de>
796
797 * fhandler.cc (fhandler_base::raw_write): Remove STATUS_DISK_FULL
798 special handling.
799
800 2010-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
808 2010-07-18 Christopher Faylor <me+cygwin@cgf.cx>
809
810 * autoload.cc (noload): Use "pushl" rather than "push".
811
812 2010-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
819 2010-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
825 2010-07-15 Corinna Vinschen <corinna@vinschen.de>
826
827 * wincap.cc (wincap_7): Set needs_count_in_si_lpres2 to false.
828
829 2010-07-07 Corinna Vinschen <corinna@vinschen.de>
830
831 * syscalls.cc (unlink_nt): Disable try_to_bin for netapp drives.
832 Explain why.
833
834 2010-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
855 2010-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
866 2010-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
872 2010-06-29 Corinna Vinschen <corinna@vinschen.de>
873
874 * spawn.cc (spawn_guts): Reinstantiate a FIXME comment.
875
876 2010-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,
882 rather than native NT name. Use %W instead of %S for printing progname.
883
884 2010-06-28 Christopher Faylor <me+cygwin@cgf.cx>
885
886 * fork.cc (frok::parent): Improve error message.
887
888 2010-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
895 2010-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
901 2010-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
910 2010-06-21 Christopher Faylor <me+cygwin@cgf.cx>
911
912 * dcrt0.cc (__api_fatal): Temporarily generate a stackdump.
913
914 2010-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
919 2010-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
924 2010-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
931 2010-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
985 2010-06-15 Corinna Vinschen <corinna@vinschen.de>
986
987 * fhandler_disk_file.cc (fhandler_disk_file::fstatvfs): Fix indentation.
988
989 2010-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
997 2010-06-14 Corinna Vinschen <corinna@vinschen.de>
998
999 * path.cc (path_conv::check): Return with ENOTDIR if component is a
1000 device.
1001
1002 2010-06-14 Corinna Vinschen <corinna@vinschen.de>
1003
1004 * dlfcn.cc (get_full_path_of_dll): Revert patch from 2010-04-29.
1005
1006 2010-06-12 Christopher Faylor <me+cygwin@cgf.cx>
1007
1008 * times.cc (gtod): Move to sharable region.
1009
1010 2010-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
1018 2010-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
1025 2010-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
1030 2010-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
1037 2010-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
1046 2010-06-01 Corinna Vinschen <corinna@vinschen.de>
1047
1048 * fhandler_netdrive.cc (fhandler_netdrive::exists): Always free WNet
1049 resource if created.
1050
1051 2010-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
1056 2010-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
1063 2010-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
1072 2010-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
1077 2010-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
1082 2010-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
1090 2010-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
1097 2010-05-18 Kazuhiro Fujieda <fujieda@acm.org>
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
1123 2010-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
1158 2010-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
1163 2010-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
1171 2010-05-03 Christopher Faylor <me+cygwin@cgf.cx>
1172
1173 * dll_init.cc (dll_list::alloc): Add debugging assertion.
1174
1175 2010-04-29 Corinna Vinschen <corinna@vinschen.de>
1176
1177 * dlfcn.cc (get_full_path_of_dll): Handle non-existent file.
1178
1179 2010-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
1201 2010-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
1212 2010-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
1217 2010-04-28 Corinna Vinschen <corinna@vinschen.de>
1218
1219 * include/cygwin/version.h: Bump API minor version.
1220
1221 2010-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
1240 2010-04-27 Christopher Faylor <me+cygwin@cgf.cx>
1241
1242 * spawn.cc (find_exec): Use the first detected errno when lookup fails.
1243
1244 2010-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
1249 2010-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
1259 2010-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
1280 2010-04-22 Corinna Vinschen <corinna@vinschen.de>
1281
1282 * path.cc (symlink_info::check): Make sure to restart only once.
1283
1284 2010-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
1302 2010-04-22 Corinna Vinschen <corinna@vinschen.de>
1303
1304 * path.cc (symlink_info::check): Fix a comment.
1305
1306 2010-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
1315 2010-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
1320 2010-04-20 Christopher Faylor <me+cygwin@cgf.cx>
1321
1322 * path.cc (cygwin_create_path): Free memory on error.
1323
1324 2010-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
1337 2010-04-19 Christopher Faylor <me+cygwin@cgf.cx>
1338
1339 * cygerrno.h: Nevermind.
1340
1341 2010-04-19 Christopher Faylor <me+cygwin@cgf.cx>
1342
1343 * cygerrno.h: Protect use of NTSTATUS for only when we need it.
1344
1345 2010-04-19 Christopher Faylor <me+cygwin@cgf.cx>
1346
1347 * lib/_cygwin_crt0_common.cc: Remove unneeded declarations.
1348
1349 2010-04-19 Corinna Vinschen <corinna@vinschen.de>
1350
1351 * fhandler_tty.cc (fhandler_tty_slave::fch_set_sd): Remove commented out
1352 code.
1353
1354 2010-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
1420 2010-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
1428 2010-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
1434 2010-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
1441 2010-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
1450 2010-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
1458 2010-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
1463 2010-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
1470 2010-04-13 John Bowman <bowman@math.ualberta.ca>
1471
1472 * cygheap.cc (cwcsdup): Fix allocation size to accommodate sizeof WCHAR.
1473 (cwcsdup1): Ditto.
1474
1475 2010-04-12 Corinna Vinschen <corinna@vinschen.de>
1476
1477 * include/cygwin/version.h: Bump DLL minor version number to 5.
1478
1479 2010-04-12 Corinna Vinschen <corinna@vinschen.de>
1480
1481 * posix.sgml (std-notes): Improve lseek description.
1482
1483 2010-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
1490 2010-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
1499 2010-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
1506 2010-04-10 Christopher Faylor <me+cygwin@cgf.cx>
1507
1508 * mkvers.sh: Use modern date formats to construct the date.
1509
1510 2010-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
1515 2010-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
1523 2010-04-07 Corinna Vinschen <corinna@vinschen.de>
1524
1525 * include/cygwin/version.h: Bump DLL minor version number to 4.
1526
1527 2010-04-06 Corinna Vinschen <corinna@vinschen.de>
1528
1529 * thread.cc (valid_sched_parameters): Declare extern here.
1530 (sched_set_thread_priority): Ditto.
1531
1532 2010-04-06 Corinna Vinschen <corinna@vinschen.de>
1533
1534 * include/sched.h: Remove, overruled by newlib file.
1535 * include/sys/sched.h: Ditto.
1536
1537 2010-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
1542 2010-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
1557 2010-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
1578 2010-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
1583 2010-04-02 Corinna Vinschen <corinna@vinschen.de>
1584
1585 * fhandler_tty.cc (fhandler_tty_slave::close): Revert previous change.
1586
1587 2010-04-02 Christopher Faylor <me+cygwin@cgf.cx>
1588
1589 * select.h (select_pipe_info::add_watch_handle): Delete declaration.
1590 * select.cc (select_pipe_info::add_watch_handle): Delete definition.
1591 (fhandler_pipe::select_read): Delete call to add_watch_handle.
1592 (fhandler_pipe::select_write): Ditto.
1593 (fhandler_pipe::select_except): Ditto.
1594
1595 2010-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
1602 2010-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
1607 2010-04-01 Corinna Vinschen <corinna@vinschen.de>
1608
1609 * nlsfuncs.cc: Fix indentation.
1610
1611 2010-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
1619 2010-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
1627 2010-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
1637 2010-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
1666 2010-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
1671 2010-03-30 Thomas Wolff <towo@towo.net>
1672
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.
1675 * fhandler_console.cc: Throughout, tune VT100 graphics mode switching
1676 to follow ISO 2022 strictly.
1677 (fhandler_console::write) Reset VT100 graphic mode flags on terminal
1678 full reset (ESC c).
1679
1680 2010-03-30 Corinna Vinschen <corinna@vinschen.de>
1681
1682 * syscalls.cc (open): Remove call to sig_dispatch_pending.
1683
1684 2010-03-30 Corinna Vinschen <corinna@vinschen.de>
1685
1686 * net.cc: Remove calls to sig_dispatch_pending throughout.
1687 * libc/rexec.cc: Ditto.
1688
1689 2010-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
1694 2010-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
1702 2010-03-29 Corinna Vinschen <corinna@vinschen.de>
1703
1704 * include/cygwin/version.h: Bump DLL minor version number to 3.
1705
1706 2010-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
1711 2010-03-29 Corinna Vinschen <corinna@vinschen.de>
1712
1713 * libc/rcmd.c: Enable IPv6.
1714
1715 2010-03-28 Christopher Faylor <me+cygwin@cgf.cx>
1716
1717 * fhandler.cc (fhandler_base::fstat): Set st_mtime to current time.
1718
1719 2010-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
1727 2010-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
1732 2010-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
1750 2010-03-19 Corinna Vinschen <corinna@vinschen.de>
1751
1752 * fhandler_disk_file.cc (fhandler_cygdrive::fstat): Add standard read
1753 permissions again.
1754
1755 2010-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
1760 2010-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
1810 2010-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
1815 2010-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
1820 2010-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
1833 2010-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
1845 2010-03-10 Christopher Faylor <me.cygwin@cgf.cx>
1846
1847 * shared.cc (memory_init): Fix comment. Fix indentation.
1848
1849 2010-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
1867 2010-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
1876 2010-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
1883 2010-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
1890 2010-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
1903 2010-03-01 Christopher Faylor <me+cygwin@cgf.cx>
1904
1905 * cygtls.h: Replace /*gentls_offsets*/ at end.
1906
1907 2010-03-01 Christopher Faylor <me+cygwin@cgf.cx>
1908
1909 * exception.h: Fix copyright.
1910
1911 2010-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
1935 2010-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
1958 2010-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
1963 2010-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
1984 2010-02-26 Corinna Vinschen <corinna@vinschen.de>
1985
1986 * strsig.cc: Fix formatting and copyright.
1987
1988 2010-02-26 Pierre Humblet <Pierre.Humblet@ieee.org>
1989
1990 * security.cc (check_access): Use user.imp_token if appropriate.
1991 Set errno and return if DuplicateTokenEx fails .
1992
1993 2010-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
2000 2010-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
2006 2010-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
2010 2010-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
2015 2010-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
2020 2010-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
2025 2010-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
2030 2010-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
2070 2010-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
2081 2010-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
2091 2010-02-20 Corinna Vinschen <corinna@vinschen.de>
2092
2093 * path.cc (warn_msdos): Enforce extended hex printing of multibyte
2094 pathnames.
2095
2096 2010-02-19 Christopher Faylor <me+cygwin@cgf.cx>
2097
2098 * include/sys/strace.h: Remove old code. Add support for ptrace
2099 tracing.
2100
2101 2010-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
2109 2010-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
2114 2010-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
2122 2010-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
2131 2010-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
2136 2010-02-15 Corinna Vinschen <corinna@vinschen.de>
2137
2138 * path.cc (path_conv::check): Treat native DOS paths as "noacl".
2139
2140 2010-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
2145 2010-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
2156 2010-02-14 Christopher Faylor <me+cygwin@cgf.cx>
2157
2158 * regex/regcomp.c (xwcrtomb): Fix one explicable and one inexcplicable
2159 C warning.
2160
2161 2010-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
2167 2010-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
2173 2010-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
2195 2010-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
2203 2010-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
2210 2010-02-11 Pierre Humblet <Pierre.Humblet@ieee.org>
2211
2212 * registry.cc (get_registry_hive_path): Add space in string.
2213
2214 2010-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
2231 2010-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
2238 2010-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
2243 2010-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
2249 2010-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
2281 2010-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
2288 2010-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
2297 2010-02-09 Corinna Vinschen <corinna@vinschen.de>
2298
2299 * nlsfuncs.cc (__set_lc_messages_from_win): Fix typo.
2300
2301 2010-02-09 Corinna Vinschen <corinna@vinschen.de>
2302
2303 * lc_msg.h: New file, fix a problem in locales with modifiers.
2304
2305 2010-02-09 Corinna Vinschen <corinna@vinschen.de>
2306
2307 * lc_msg.h: New file, generated from running Linux system.
2308
2309 2010-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
2324 2010-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
2335 2010-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
2341 2010-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
2346 2010-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
2351 2010-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
2362 2010-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
2367 2010-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
2373 2010-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
2385 2010-02-05 Corinna Vinschen <corinna@vinschen.de>
2386
2387 * nlsfuncs.cc (__set_charset_from_locale): Set default charset for
2388 "uz_UZ" locale to ISO-8859-1, with the "@cyrillic" modifier to UTF-8.
2389
2390 2010-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
2395 2010-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
2401 2010-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
2407 2010-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
2444 2010-02-03 Christopher Faylor <me+cygwin@cgf.cx>
2445
2446 * sigproc.cc (get_proc_lock): Fix error message typo.
2447
2448 2010-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
2456 2010-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
2463 2010-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
2481 2010-02-02 Dave Korn <dave.korn.cygwin@gmail.com>
2482
2483 * how-startup-shutdown-works.txt: Add new document.
2484
2485 2010-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
2490 2010-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
2495 2010-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
2501 2010-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
2511 2010-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
2530 2010-01-28 Corinna Vinschen <corinna@vinschen.de>
2531
2532 * Makefile.in (tags, ctags, CTAGS)): Add rules to create tags file.
2533
2534 2010-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
2543 2010-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
2548 2010-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
2553 2010-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
2558 2010-01-24 Corinna Vinschen <corinna@vinschen.de>
2559
2560 * nlsfuncs.cc (__set_charset_from_locale): Fix comment.
2561
2562 2010-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
2572 2010-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
2580 2010-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
2585 2010-01-22 Corinna Vinschen <corinna@vinschen.de>
2586
2587 * posix.sgml (strfmon): Move to implemented SUSv4 API.
2588
2589 2010-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
2615 2010-01-18 Corinna Vinschen <corinna@vinschen.de>
2616
2617 * strfuncs.cc: Remove needless includes.
2618
2619 2010-01-17 Corinna Vinschen <corinna@vinschen.de>
2620
2621 * syscalls.cc (internal_setlocale): Use UTF-8 internally if external
2622 charset is ASCII.
2623
2624 2010-01-15 Corinna Vinschen <corinna@vinschen.de>
2625
2626 * libc/fnmatch.c: Replace with multibyte capable version from FreeBSD.
2627
2628 2010-01-15 Corinna Vinschen <corinna@vinschen.de>
2629
2630 * fhandler_socket.cc (fhandler_socket::accept4): Reset async flag
2631 on accepted socket.
2632
2633 2010-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
2639 2010-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
2659 2010-01-15 Corinna Vinschen <corinna@vinschen.de>
2660
2661 * posix.sgml: Mention dup3 and pipe2 as GNU extensions.
2662
2663 2010-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
2670 2010-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
2718 2010-01-13 Corinna Vinschen <corinna@vinschen.de>
2719
2720 * include/fcntl.h (O_TTY_INIT): Define as 0.
2721
2722 2010-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
2727 2010-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
2733 2010-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
2747 2010-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
2766 2010-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
2773 2010-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
2783 2010-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
2790 2010-01-01 Christopher Faylor <me+cygwin@cgf.cx>
2791
2792 * dcrt0.cc: Bump copyright.
2793
2794 2010-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.148332 seconds and 5 git commands to generate.