Welcome to mirror list, hosted at ThFree Co, Russian Federation.

ChangeLog « cygwin « winsup - cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 37c6a7db0023b95b2a38872cc95c9974e78af4c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
2008-03-14  Corinna Vinschen  <corinna@vinschen.de>

	* fcntl.cc (fcntl_worker): Protect with a 'myfault'.

	* path.cc (normalize_posix_path): Treat X:/ as Win32 path, too.

	* smallprint.cc (__wrn): New static function.
	(__small_vswprintf): New function to generate WCHAR strings.
	(__small_swprintf): Ditto.
	* winsup.h (__small_swprintf): Declare.
	(__small_vswprintf): Declare.

2008-03-13  Corinna Vinschen  <corinna@vinschen.de>

	* path.sgml: Remove documentation for old path API.  Add documentation
	for new path API.
	* security.sgml: New file to document cygwin_set_impersonation_token
	and cygwin_logon_user with only eight years of delay.
	* shared.sgml: Remove file.
	* include/sys/cygwin.h (cygwin32_attach_handle_to_fd): Move declaration
	into fully deprecated function block.
	(cygwin_logon_user): Move declaration down to declaration of
	cygwin_set_impersonation_token.

2008-03-12  Corinna Vinschen  <corinna@vinschen.de>

	* syscalls.cc (rename): Just return with 0 if filenames are identical,
	per POSIX.  Drop comment added in previous patch.

2008-03-12  Corinna Vinschen  <corinna@vinschen.de>

	* syscalls.cc (rename): Handle a special case of trying to rename a
	mount point.

2008-03-12  Corinna Vinschen  <corinna@vinschen.de>

	* environ.h: Fix comment.
	* winsup.h: Ditto.  Reflect the fact that CYG_MAX_PATH is deprecated.

2008-03-12  Corinna Vinschen  <corinna@vinschen.de>

	* pipe.cc (fhandler_pipe::create_selectable): Use MAX_PATH instead of
	CYG_MAX_PATH.
	* tty.cc (tty_list::init_session): Ditto.
	(tty::alive): Ditto.
	(tty::open_mutex): Ditto.
	(tty::create_inuse): Ditto.
	(tty::get_event): Ditto.

2008-03-12  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Disable
	munging.  Convert all chars in the 0xf0xx area to it's ascii equivalent.
	* path.cc (normalize_posix_path): Don't treat "X:foo" as windows path,
	only "X:\foo".
	(tfx_chars): New transformation table for special DOS chars.
	(tfx_chars_managed): Ditto, plus transformation of uppercase ASCII
	chars.
	(transform_chars): New function.
	(get_nt_native_path): Make static.  Call transform_chars for all valid
	FS paths.  Get additional flag if file is managed or not.  Accommodate
	throughout.
	(getfileattr): Get additional flag if file is managed or not.
	Accommodate throughout.
	(path_conv::check): Disable special handling for trailing dots and
	spaces.
	(mount_item::build_win32): Disable code for managed paths.
	(mount_info::conv_to_posix_path): Ditto.
	* path.h (get_nt_native_path): Remove declaration.

2008-03-12  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Don't
	copy filename twice in the non-managed case.

2008-03-12  Corinna Vinschen  <corinna@vinschen.de>

	* winsup.h (NT_MAX_PATH): Revert ill-advised change to 32767.
	Accommodate change throughout.

	* cygwin.din (cygwin_conv_path): Export.
	(cygwin_conv_path_list): Export.
	(cygwin_create_path): Export.
	* dcrt0.cc (dll_crt0_1): Use cygwin_conv_path.
	* dtable.cc (handle_to_fn): Ditto.  Don't expect UNICODE_STRING being
	0-terminated.
	* environ.cc (env_plist_to_posix): New helper function.
	(env_plist_to_win32): Ditto.
	(env_path_to_posix): Ditto.
	(env_path_to_win32): Ditto.
	(return_MAX_PATH): Remove.
	(conv_envvars): Use new helper functions.  Drop removed members.
	(win_env::operator =): Accommodate removal of path length functions.
	(win_env::add_cache): Accommodate new env helper function API.
	(posify): Ditto.
	* environ.h (struct win_env): Ditto. Remove path length function
	pointers since they are unused.
	* path.cc (warn_msdos): Use cygwin_conv_path.
	(getfileattr): Use new tmp_pathbuf::u_get method.
	(fillout_mntent): Ditto.
	(symlink_info::check): Ditto.
	(path_conv::check): Use sizeof (WCHAR) instead of constant 2.
	(symlink_info::check_reparse_point): Ditto.
	(conv_path_list): Get max size of target string as argument.  Call
	cygwin_conv_path as helper function.
	(cygwin_conv_path): New function.
	(cygwin_create_path): New function.
	(cygwin_conv_to_win32_path): Just call cygwin_conv_path with size set
	to MAX_PATH.
	(cygwin_conv_to_full_win32_path): Ditto.
	(cygwin_conv_to_posix_path): Ditto.
	(cygwin_conv_to_full_posix_path): Ditto.
	(conv_path_list_buf_size): Add FIXME comment.
	(env_PATH_to_posix): Rename from env_win32_to_posix_path_list.
	Add size argument as required for env helper functions.
	(cygwin_win32_to_posix_path_list): Call conv_path_list with size set to
	MAX_PATH.
	(cygwin_posix_to_win32_path_list): Ditto.
	(cygwin_conv_path_list): New function.
	(cwdstuff::get): Fix length argument in call to sys_wcstombs.
	* spawn.cc (find_exec): Use cygwin_conv_path_list.
	* tls_pbuf.h (tmp_pathbuf::u_get: New method.
	* uinfo.cc (cygheap_user::ontherange): Allocate temporary path buffers
	using tmp_pathbuf.  Use cygwin_conv_path.
	* winf.cc (av::unshift): Use cygwin_conv_path.
	* include/cygwin/version.h: Bump API minor number.
	* include/sys/cygwin.h: Comment out old cygwin32_XXX API.
	Mark old path handling API as deprecated.
	(cygwin_conv_path_t): Typedef.  Define values.
	(cygwin_conv_path): Declare.
	(cygwin_create_path): Declare.
	(cygwin_conv_path_list): Declare.

2008-03-11  Corinna Vinschen  <corinna@vinschen.de>

	* dlfcn.cc (get_full_path_of_dll): Allow paths up to PATH_MAX.
	(dlopen): Call get_full_path_of_dll with path buffer allocate by
	tmp_pathbuf.

2008-03-11  Corinna Vinschen  <corinna@vinschen.de>

	* spawn.cc (find_exec): Use tmp_pathbuf to allocate path buffer.

2008-03-11  Corinna Vinschen  <corinna@vinschen.de>

	* dtable.cc (dtable::init_std_file_from_handle): Use tmp_pathbuf to
	allocate path buffer.
	(handle_to_fn): Ditto.  Allocate fnbuf big enough to get long path
	names.

2008-03-11  Corinna Vinschen  <corinna@vinschen.de>

	* path.cc (cwdstuff::set): Make sure drive_length is 0 for virtual
	paths.  Add comments.
	* spawn.cc (spawn_guts): Don't allow to start a native Win32 application
	from a long path or a virtual path.  Print an error message to stderr.

2008-03-11  Corinna Vinschen  <corinna@vinschen.de>

	* environ.cc (parse_options): Use tmp_pathbuf to allocate buffer.
	(regopt): Take tmp buffer as additional argument.
	(environ_init): Alllcate tmpbuf earlier.  Use as temporary buffer in
	call to regopt.
	* tls_pbuf.cc (tmp_pathbuf::c_get): Allocate one additional char.
	(tmp_pathbuf::w_get): Allocate one additional WCHAR.
	* winf.cc (av::unshift): Use tmp_pathbuf to allocate buffer.

2008-03-11  Corinna Vinschen  <corinna@vinschen.de>

	* syscalls.cc (sync): Use MAX_PATH rather than CYG_MAX_PATH.

2008-03-10  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler.h (class fhandler_console): Add write_buf as pointer to
	temporary buffer space.
	* fhandler_console.cc (CONVERT_LIMIT): Define as NT_MAX_PATH.  Add
	comment.
	(fhandler_console::write_normal): Use write_buf throughout.
	(fhandler_console::write): Use tmp_pathbuf to allocate write_buf.

2008-03-10  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_console.cc (fhandler_console::write_normal): Don't print
	chars marked as ERR chars.

2008-03-10  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler.h (dev_console::con_to_str): Declare returning DWORD.
	* fhandler_console.cc (dev_console::con_to_str): Return number of
	multibyte char bytes.
	(fhandler_console::read): Set nread to number of multibyte char bytes
	returned from con_to_str.
	(fhandler_console::write_normal): Reorder trunc buffer preocessing.
	Return after writing valid multibyte sequence out of trunc buffer.
	Change comments slightly.

2008-03-08  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_disk_file.cc (DIR_BUF_SIZE): Define required space for file
	name in terms of sizeof(WCHAR).
	(fhandler_disk_file::readdir_helper): Convert *all* of fname.
	* path.cc (fillout_mntent): Use tmp_pathbuf for path buffer.
	(symlink_worker): Ditto.
	(SCAN_JUSTCHECKTHIS): New state for suffix_scan to define
	that only the actual name gets cheked and a suffix is never attached.
	(suffix_scan::has): If filename + suffix would be > NAME_MAX, start
	in SCAN_JUSTCHECKTHIS state.
	(suffix_scan::next): Add case for SCAN_JUSTCHECKTHIS.
	(symlink_info::check): Use tmp_pathbuf for path buffer.  Goto
	file_not_symlink in case of invalid file name.
	(realpath): Use tmp_pathbuf for path buffer.

2008-03-07  Brian Dessent  <brian@dessent.net>

	* dtable.cc (handle_to_fn): Null-terminate posix_fn in the case
	of justslash = true.

2008-03-07  Brian Dessent  <brian@dessent.net>

	* fhandler.cc (fhandler_base::open): Use %S for PUNICODE_STRING.
	* syscalls.cc (setmode): Ditto.

2008-03-07  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_socket.cc (fhandler_socket::sendto): Never send more than
	64K.  Add comment to explain why.
	(fhandler_socket::sendmsg): Ditto.

2008-03-07  Corinna Vinschen  <corinna@vinschen.de>

	* Makefile.in (DLL_OFILES): Add tls_pbuf.o.
	* autoload.cc (CreateDesktopW): Replace CreateDesktopA.
	(CreateWindowStationW): Replace CreateWindowStationA.
	(GetUserObjectInformationW): Replace GetUserObjectInformationA.
	* cygheap.h (cwdstuff::get): Assume default buffer size NT_MAX_PATH.
	* cygtls.cc (_cygtls::remove): Free temporary TLS path buffers.
	* cygtls.h (TP_NUM_C_BUFS): Define.
	(TP_NUM_W_BUFS): Define.
	(class tls_pathbuf): New class to store pointers to thread local 
	temporary path buffers.
	(_local_storage::pathbufs): New member.
	* environ.cc (win_env::add_cache): Use temporary TLS path buffer instead
	of stack based buffer.
	(posify): Get temporary outenv buffer from calling function.
	(environ_init): Create temporary TLS path buffer for posify.
	(build_env): Create Windows environment block as WCHAR buffer.
	* environ.h (build_env): Change declaration accordingly.
	* external.cc (sync_winenv): Accommodate build_env change.
	* fhandler_console.cc (fhandler_console::need_invisible): Use
	GetUserObjectInformationW and CreateWindowStationW.
	* fhandler_process.cc (format_process_maps): Use temporary TLS path
	buffer instead of stack based buffer.
	* fork.cc (frok::parent): Convert to use CreateProcessW.
	* path.cc: Throughout use temporary TLS path buffers instead of stack
	based buffer.  Replace checks for CYG_MAX_PATH by checks for
	NT_MAX_PATH.
	(getfileattr): New function to replace GetFileAttributesA.
	(normalize_win32_path): Remove Win32 and NT long path prefixes.
	(getwd): Assume PATH_MAX + 1 buffer per SUSv3.
	* path.h (class path_conv): Set path buffer to size NT_MAX_PATH.
	(iswdrive): Define.
	* pinfo.cc (commune_process): Use temporary TLS path buffer instead of
	stack based buffer.
	* registry.cc (get_registry_hive_path): Ditto.
	(load_registry_hive): Ditto.
	* spawn.cc (spawn_guts): Convert to use CreateProcessW and
	CreateProcessAsUserW.
	(av::fixup): Open/close file using NtOpenFile/NtClose.
	* syscalls.cc (mknod_worker): Allow PATH_MAX file name.
	(mknod32): Ditto.
	(getusershell): Ditto.
	* tls_pbuf.cc: New file implementing tls_pathbuf and tmp_pathbuf
	methods.
	* tls_pbuf.h: New header for files using tmp_pathbuf.
	* tlsoffsets.h: Regenerate.
	* winsup.h (NT_MAX_PATH): Define as 32767 to avoid USHORT overflow.

2008-03-06  Corinna Vinschen  <corinna@vinschen.de>

	* child_info.h (CURR_CHILD_INFO_MAGIC): Reset.

2008-03-06  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler.cc (fhandler_base::open_): Add missing test for O_CREAT.
	Fix comment.

2008-03-05  Corinna Vinschen  <corinna@vinschen.de>

	* child_info.h (~child_info_spawn): Check moreinfo->myself_pinfo for
	NULL before closing.
	* spawn.cc (spawn_guts): Don't close moreinfo->myself_pinfo explicitely
	in case of failing CloseProcess.

	* fhandler.cc (fhandler_base::open_): Return EISDIR when trying to
	create a directory.
	* path.cc (path_conv::check): If input path had a trailing dir
	separator, tack it on to the native path if directory doesn't exist.

2008-03-02  Christopher Faylor  <me+cygwin@cgf.cx>

	* cygtls.cc (_cygtls::init_exception_handler): Semi-revert to making
	only ourselves the exception handler and nothing else.
	* exceptions.cc (open_stackdumpfile): Use correct format specifiers for
	unicode when printing the name of the stackdump file.
	(stack_info::walk): Stop walking if ebp points into cygwin itself.
	(_cygtls::handle_exceptions): Detect when signal is masked and treat as
	if it was not caught.  Reinitialize exception handler to known state to
	avoid subsequent attempts to call Windows exception handlers if an
	exception occurs in a signal handler.  Revert to a 'return 0' rather
	than using a goto.

	* strfuncs.cc (sys_wcstombs_alloc): Minor formatting tweak.
	* winsup.h: Fix comment typo.

2008-03-02  Christopher Faylor  <me+cygwin@cgf.cx>

	* smallprint.cc (__small_vsprintf): Free allocated buffer rather than
	pointer into the buffer.

2008-03-01  Christopher Faylor  <me+cygwin@cgf.cx>

	* cygtls.h (_cygtls::handle_threadlist_exception): Eliminate.
	(_cygtls::init_threadlist_exceptions): Ditto.
	* cygtls.cc (_cygtls::handle_threadlist_exception): Eliminate.
	(_cygtls::init_threadlist_exceptions): Ditto.
	(_cygtls::find_tls): Use myfault handling to deal with errors caused by
	nonexistent threads.
	* sigproc.cc (wait_sig): Eliminate call to init_threadlist_exceptions.

2008-03-01  Christopher Faylor  <me+cygwin@cgf.cx>

	* cygtls.cc (_cygtls::init_exception_handler): Just return.

2008-03-01  Corinna Vinschen  <corinna@vinschen.de>

	* exceptions.cc (_cygtls::handle_exceptions): Only call rtl_unwind when
	exiting.  Just return, don't set thread context.
	* gendef (_setjmp): Store %fs:0 in jmp_buf.
	(_sjfault): Ditto.
	(_ljfault): Restore %fs:0 from jmp_buf.
	(_longjmp): Ditto.

2008-02-29  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_disk_file.cc (fhandler_disk_file::fchmod): Call close_fs
	instead of close to avoid calling close from wrong class when changing
	a file system based device node.
	(fhandler_disk_file::fchown): Ditto.
	(fhandler_disk_file::facl): Ditto.

2008-02-28  Corinna Vinschen  <corinna@vinschen.de>

	* exceptions.cc (_cygtls::handle_exceptions): When being debugged,
	leave through SetThreadContext, too, to keep exception handler stack
	intact.

2008-02-28  Corinna Vinschen  <corinna@vinschen.de>

	* exceptions.cc (open_stackdumpfile): Add comments.

2008-02-28  Corinna Vinschen  <corinna@vinschen.de>

	* exceptions.cc (open_stackdumpfile): Use NtCreateFile to create
	stackdump file.

2008-02-27  Corinna Vinschen  <corinna@vinschen.de>

	* exceptions.cc (stack_info::walk): Fix typo.

2008-02-27  Corinna Vinschen  <corinna@vinschen.de>

	* cygtls.cc (_cygtls::init_exception_handler): Fix comment.

2008-02-27  Corinna Vinschen  <corinna@vinschen.de>

	* (struct __DIR_cache): Switch order of members so that the buffer
	given to NtQueryDirectoryFile is 8 byte aligned.

2008-02-27  Christopher Faylor  <me+cygwin@cgf.cx>

	* cygtls.cc (_cygtls::handle_threadlist_exception): Make it clear that
	the function never actually returns.
	* exceptions.cc (_cygtls::handle_exceptions): Jump out of function
	rather than returning to avoid meddling by previously installed
	exception handlers.

2008-02-25  Corinna Vinschen  <corinna@vinschen.de>

	* dcrt0.cc (initial_env): Only use local buffer "buf" if DEBUGGING is
	enabled.  Replace calls to GetEnvironmentVariable by calls to
	GetEnvironmentVariableA for clarity.  Call GetEnvironmentVariableA
	with NULL buffer.
	(cygbench): Ditto, drop local buffer.
	* environ.cc (getearly): Call GetEnvironmentVariableA.
	(environ_init): Retrieve unicode environment and convert to current
	codepage locally.
	(getwinenveq): Ditto.
	* exceptions.cc (try_to_debug): Accommodate new sys_mbstowcs calling
	convention.
	* fhandler_clipboard.cc (set_clipboard): Call sys_mbstowcs to retrieve
	required buffer length.
	* fork.cc (frok::child): Call GetEnvironmentVariableA.
	* miscfuncs.cc: Accommodate changed arguments in calls to sys_mbstowcs.
	* sec_auth.cc: Ditto.
	* strfuncs.cc (sys_wcstombs_alloc): Fix formatting.
	(sys_mbstowcs): Change arguments to allow specifying a source string
	length.
	(sys_mbstowcs_alloc): Ditto.
	* uinfo.cc (cygheap_user::ontherange): Accommodate changed arguments in
	calls to sys_mbstowcs.
	* winsup.h (sys_mbstowcs): Adjust declaration.
	(sys_mbstowcs_alloc): Ditto.

2008-02-20  Corinna Vinschen  <corinna@vinschen.de>

	* path.cc (cwdstuff::set): Revert error handling change in case
	DuplicateHandle fails, because it breaks Vista/Longhorn workaround.

2008-02-19  Christopher Faylor  <me+cygwin@cgf.cx>

	* sigproc.cc (sig_send): Use sigmask of target thread if it is
	specified otherwise default to main sigmask.

2008-02-16  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler.cc (fhandler_base::fpathconf): Fix _PC_NAME_MAX and
	_PC_PATH_MAX cases.

2008-02-15  Corinna Vinschen  <corinna@vinschen.de>

	* include/sys/cygwin.h (__INT_MAX_PATH): Remove.
	(external_pinfo): Convert program_long to pointer.
	* external.cc (fillout_pinfo): Add buffer for program_long value.

2008-02-15  Corinna Vinschen  <corinna@vinschen.de>

	* include/sys/cygwin.h (__INT_MAX_PATH): Define to 32K.
	(external_pinfo): Set size of program_long to __INT_MAX_PATH.

2008-02-15  Christopher Faylor  <me+cygwin@cgf.cx>

	* include/sys/cygwin.h (external_pinfo): Define program_long size using
	external buffer size rather than cygwin-internal buffer size.

2008-02-15  Christopher Faylor  <me+cygwin@cgf.cx>

	Perform whitespace cleanup throughout.

	* dcrt0.cc (signal_shift_subtract): Eliminate ancient backwards
	compatibility.
	(check_sanity_and_sync): Ditto.
	* winsup.h (SIGTOMASK): Ditto.  Just use constant in signal
	calculation.
	* include/cygwin/version: Remove backwards signal mask compatibility
	define.

	* path.cc (symlink_info::check_sysfile): Cosmetic change.

	* registry.cc (get_registry_hive_path): Remove unneeded variable.

	* exceptions.cc (handle_sigsuspend): Eliminate thread signal mask and
	use either main sigmask or current thread sigmask.
	(set_process_mask): Ditto.
	(sighold): Ditto.
	(sigrelse): Ditto.
	(sigset): Ditto.
	(set_process_mask_delta): Ditto.
	(_cygtls::call_signal_handler): Ditto.
	* fhandler_process.cc (format_process_status): Ditto.
	* fhandler_termios.cc (fhandler_termios::bg_check): Ditto.
	* pinfo.h (class pinfo): Ditto.
	* select.cc (pselect): Ditto.
	* signal.cc (sigprocmask): Ditto.
	(abort): Ditto.
	(sigpause): Ditto.
	(sigsend): Ditto.
	(wait_sig): Ditto.
	* thread.h (pthread::parent_tls): New member.
	* thread.cc (pthread::pthread): Record parent_tls here.
	(pthread::thread_init_wrapper): Initialize sigmask from parent thread.

2008-02-14  Corinna Vinschen  <corinna@vinschen.de>

	* cygheap.cc (cwcsdup): New function.
	(cwcsdup1): New function.
	* cygheap.h (cygheap_user::get_windows_id): New method returning PWCHAR.
	(cwcsdup): Declare.
	(cwcsdup1): Declare.
	* registry.cc (get_registry_hive_path): Use WCHAR instead of char
	throughout.
	(load_registry_hive): Ditto.
	* registry.h (get_registry_hive_path): Change declaration accordingly.
	(load_registry_hive): Ditto.
	* sec_helper.cc (cygpsid::string): New method returning PWCHAR.
	* security.h (cygpsid::string): Declare.
	* syscalls.cc (seteuid32): Convert local name var to WCHAR.
	* uinfo.cc (cygheap_user::env_userprofile): Convert local name buffers
	to WCHAR.  Call sys_wcstombs_alloc to generate puserprof buffer.

	* winsup.h: Fix comment.
	(NT_MAX_PATH): New definition for maximum internal path length.
	Use throughout where appropriate.
	* include/limits.h (PATH_MAX): Set to 4096 as on Linux.

2008-02-13  Christopher Faylor  <me+cygwin@cgf.cx>

	* configure.in: Remove non-working options.
	* configure: Regenerate.

2008-02-13  Christopher Faylor  <me+cygwin@cgf.cx>

	* syscalls.cc (_isatty): Define as an alias to isatty to override
	newlib version.

	* thread.cc (pthread_kill): Deal with signal 0 as per POSIX and also
	avoid manipulating an invalid thread.

2008-02-13  Corinna Vinschen  <corinna@vinschen.de>

	* posix.sgml: Move llrint, llrintf, llrintl, lrintl, rintl, wcstol,
	wcstoll, wcstoul, wcstoull, wcsxfrm from unimplemented to implemented
	POSIX interfaces.
	Change headline of "GNU extensions" to "GNU and Linux extensions".
	Add fgetxattr, flistxattr, fremovexattr, fsetxattr, getxattr, lgetxattr,
	listxattr, llistxattr, lremovexattr, lsetxattr, removexattr, setxattr,
	wcpcpy and wcpncpy to list of implemented GNU functions.

2008-02-13  Corinna Vinschen  <corinna@vinschen.de>

	* cygtls.cc (_cygtls::init_exception_handler): Revert patch
	from 2005-12-02.
	* exceptions.cc (stack_info::walk): Add workaround for NT 5.2
	64 bit OSes.
	* wincap.h (wincaps::has_restricted_stack_args): New element.
	* wincap.cc: Implement above element throughout.
	(wincapc::init): Reset has_restricted_stack_args if not running
	under WOW64.

2008-02-11  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_disk_file.cc (fhandler_disk_file::fgetxattr): Remove unused
	attr.
	(fhandler_disk_file::fsetxattr): Ditto.
	* include/attr/xattr.h: New file.

2008-02-11  Corinna Vinschen  <corinna@vinschen.de>

	* dcrt0.cc (dll_crt0_1): Fix typo in call to sys_wcstombs.
	* miscfuncs.cc (next_char): Initialize ret to keep gcc happy.

2008-02-10  Corinna Vinschen  <corinna@vinschen.de>

	* Makefile.in (DLL_OFILES): Add ntea.o.
	* cygwin.din (getxattr, listxattr, removexattr, setxattr, lgetxattr,
	llistxattr, lremovexattr, lsetxattr, fgetxattr, flistxattr,
	fremovexattr, fsetxattr): Export Linux extended attribute functions.
	Sort.
	* errno.cc (errmap): Add mappings for ERROR_EAS_DIDNT_FIT,
	ERROR_EAS_NOT_SUPPORTED, ERROR_EA_LIST_INCONSISTENT,
	ERROR_EA_TABLE_FULL, ERROR_FILE_CORRUPT, ERROR_INVALID_EA_NAME.
	* fhandler.h (class fhandler_base): Declare new fgetxattr and
	fsetxattr methods.
	(class fhandler_disk_file): Ditto.
	* fhandler.cc (fhandler_base::fgetxattr): New method.
	(fhandler_base::fsetxattr): New method.
	* fhandler_disk_file.cc (fhandler_disk_file::fgetxattr): New method.
	(fhandler_disk_file::fsetxattr): New method.
	* ntdll.h (STATUS_EA_TOO_LARGE): Define.
	(STATUS_NONEXISTENT_EA_ENTRY): Define.
	(STATUS_NO_EAS_ON_FILE): Define.
	* ntea.cc (read_ea): Rewrite for long pathnames and for using with
	Linux extended attribute functions.
	(write_ea): Ditto.
	(getxattr_worker): New static function.
	(getxattr): New function.
	(lgetxattr): New function.
	(fgetxattr): New function.
	(listxattr): New function.
	(llistxattr): New function.
	(flistxattr): New function.
	(setxattr_worker): New static function.
	(setxattr): New function.
	(lsetxattr): New function.
	(fsetxattr): New function.
	(removexattr): New function.
	(lsetxattr): New function.
	(fsetxattr): New function.
	* security.h (read_ea): Change declaration according to above changes.
	(write_ea): Ditto.
	* include/cygwin/version.h: Bump API minor version.

2008-02-10  Corinna Vinschen  <corinna@vinschen.de>

	* libc/ftw.cc (ftw): Allow nfds <= 0 for glibc compatibility.
	* libc/nftw.c (nftw): Ditto.

2008-02-07  Corinna Vinschen  <corinna@vinschen.de>

	* dtable.cc (dtable::init_std_file_from_handle): Set access to
	read/write if handle is connected to a tty or console.
	* fhandler_dsp.cc (fhandler_dev_dsp::dup): Set open flags correctly
	after duplicating from archetype.
	* fhandler_tty.cc (fhandler_tty_slave::dup): Ditto.
	(fhandler_pty_master::dup): Ditto.

2008-02-06  Corinna Vinschen  <corinna@vinschen.de>

	* miscfuncs.cc (next_char): Fix typos in comment.
	* strfuncs.cc: Remove cygserver guards.

2008-02-06  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler.h (fhandler_console::trunc_buf): Add to use as cache for
	truncated multibyte characters on input.
	(fhandler_console::write_replacement_char): Declare new method.
	* fhandler_console.cc (CONVERT_LIMIT): Raise to 64K.
	(fhandler_console::fhandler_console): Initialize trunc_buf.
	(ERR): Define as independent value again.
	(fhandler_console::write_replacement_char): New method to print
	replacement chars.
	(fhandler_console::write_normal): Add handling for truncated multibyte
	sequences.  Call next_char instead of pathetic CharNextExA function.
	Don't change src, rather just work with found later on.
	* miscfuncs.cc (is_cp_multibyte): Move here from strfuncs.cc.
	Don't call Windows function, restrict to well-known ANSI/OEM codepages
	and UTF-8.
	(next_char): Call CharNextExA only for doublebyte codepages.
	Implement for UTF-8 here.
	* strfuncs.cc (is_cp_multibyte): Move to miscfuncs.cc.
	* winsup.h (next_char): Declare.
	* include/limits.h (MB_LEN_MAX): Set to maximum value of MB_CUR_MAX
	as defined by newlib for now.

2008-02-05  Corinna Vinschen  <corinna@vinschen.de>

	* autoload.cc (CharToOemA): Remove.
	(CharNextExA): Define.
	* environ.cc (codepage_init): Un-static.  Set active_codepage to
	active codepage.  Default to ansi regardless of buf pointer.
	* fhandler.h (dev_console::get_console_cp): New method.
	(dev_console::con_to_str): Change declaration according to new
	implementation.
	(dev_console::str_to_con): Ditto.
	* fhandler_console.cc (cp_convert): Remove.
	(dev_console::con_to_str): Redefine to take WCHAR as incoming console
	char.
	(dev_console::get_console_cp): Return correct codepage according to
	alternate_charset_active setting.
	(dev_console::str_to_con): Redefine to create WCHAR buffer for console
	output.
	(fhandler_console::read): Read console input as WCHARs.
	(base_chars): Fix typo in comment.
	(fhandler_console::char_command): Save and restore console output
	buffer using UNICODE functions.
	(fhandler_console::write_normal): Convert to write output in UNICODE.
	Use CharNextExA to recognize multibyte characters in input.  Workaround
	problem with UTF-8 and MultiByteToWideChar.  Simplify the loop for
	printing "normal" characters.
	* strfuncs.cc (active_codepage): New variable to store active codepage.
	(get_cp): Call codepage_init() if active_codepage is uninitialized.
	Just return active_codepage.
	(is_cp_multibyte): New function.
	* winsup.h (active_codepage): Declare.
	(codepage_init): Declare.
	(is_cp_multibyte): Declare.

2008-02-03  Brian Dessent  <brian@dessent.net>

	* smallprint.cc (__small_vsprintf): Use HEAP_NOTHEAP for type.
	* strfuncs.cc (sys_wcstombs_alloc): Guard use of ccalloc
	to !__OUTSIDE_CYGWIN__ for use in cygserver.
	(sys_mbstowcs_alloc): Ditto.

2008-02-01  Corinna Vinschen  <corinna@vinschen.de>

	* miscfuncs.cc (cygwin_wcsncasecmp): Never access more than n
	characters.
	(cygwin_strncasecmp): Ditto.  Fix for strings longer than n.

2008-02-01  Corinna Vinschen  <corinna@vinschen.de>

	* string.h: Re-enable inline strcasematch and strncasematch
	implementations and rename to ascii_strcasematch/ascii_strncasematch.
	* dcrt0.cc: Replace str[n]casematch with ascii_str[n]casematch where
	applicable.
	* environ.cc: Ditto.
	* fhandler_process.cc: Ditto.
	* hookapi.cc: Ditto.
	* path.cc: Ditto.
	* spawn.cc: Ditto.
	* strace.cc: Ditto.
	* syscalls.cc: Ditto.
	* uinfo.cc: Ditto.
	* winf.cc: Ditto.

2008-01-31  Corinna Vinschen  <corinna@vinschen.de>

	* dcrt0.cc (dll_crt0_1): Use GetCommandLineW and convert to current
	codepage.
	* environ.cc (set_file_api_mode): Always set file api to ANSI if not
	using the OEM codepage.
	(codepage_init): Allow "utf8" codepage.
	* fhandler_clipboard.cc (set_clipboard): Convert clipbuf to void and
	cast as needed.  Always convert input to wide char and write
	CF_UNICODETEXT to clipboard.
	(fhandler_dev_clipboard::read): Read CF_UNICODETEXT from clipboard and
	convert to current codepage if CYGWIN_NATIVE format is not available.
	* fhandler_console.cc: Drop redundant undef.
	* smallprint.cc (__small_vsprintf): Convert PWCHAR and UNICODE_STRING
	to current codepage for printing.
	* strfuncs.cc: Use PWCHAR throughout.
	(get_cp): Return CP_UTF8 for utf8_cp codepage setting.
	(sys_wcstombs): Allow NULL target buffer.
	(sys_wcstombs_alloc): New function.
	(sys_mbstowcs_alloc): Ditto.
	* winsup.h (codepage_type): Add utf8_cp.
	(HEAP_NOTHEAP): Define.
	(sys_wcstombs_alloc): Declare.
	(sys_mbstowcs_alloc): Declare.

2008-01-31  Corinna Vinschen  <corinna@vinschen.de>

	* cygheap.h (struct cwdstuff): Add dir member to store cwd handle.
	(cwdstuff::get_handle): New method.
	* path.cc (cwdstuff::set): When doit is true, always try to get
	directory handle.  Fail if duplicating handle fails.  Store handle
	in dir.  Fix potential SEGV when setting drive_length.

2008-01-28  Corinna Vinschen  <corinna@vinschen.de>

	* path.cc: Fix Samba version in comment.

2008-01-24  Corinna Vinschen  <corinna@vinschen.de>

	* path.cc (fs_info::update): Fix old-style Samba test to support
	recent as well as upcoming Samba releases.

2008-01-22  Corinna Vinschen  <corinna@vinschen.de>

	* ntdll.h (struct _FILE_FS_OBJECTID_INFORMATION): Define.
	* path.cc (struct smb_extended_info): Define.
	(fs_info::update): Request object id info to get Samba information.
	Set flags according to new implementation.
	* path.h (struct fs_info): Add samba_version to status_flags.
	Implement flags() and samba_version() using IMPLEMENT_STATUS_FLAG.

2008-01-21  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler_disk_file.cc (fhandler_disk_file::link): Open file with
	READ_CONTROL for Vista/Longhorn's sake.

2008-01-15  Corinna Vinschen  <corinna@vinschen.de>

	* Makefile.in (install-libs): Overwrite newlib's libg.a with symlink
	to libcygwin.a.

2008-01-15  Corinna Vinschen  <corinna@vinschen.de>

	* Makefile.in (DLL_OFILES): Remove memmem.o.
	* memmem.cc: Remove in favor of newlib implementation.

2008-01-07  Corinna Vinschen  <corinna@vinschen.de>

	* fhandler.h: Update copyright.
	* include/limits.h: Ditto.

2008-01-06  Christopher Faylor  <me+cygwin@cgf.cx>

	* fhandler.h (fhandler_base::is_tty): Make bool.
	(fhandler_serial::is_tty): Ditto.
	(fhandler_termios::is_tty): Ditto.
	(fhandler_base::is_slow): Return bool value.
	(fhandler_socket::is_slow): Ditto.
	(fhandler_serial::is_slow): Ditto.
	(fhandler_console::is_slow): Ditto.
	(fhandler_tty_common::is_slow): Ditto.
	(fhandler_tty_master::is_slow): Ditto.
	(fhandler_dev_null::is_slow): Ditto.

2008-01-06  Christopher Faylor  <me+cygwin@cgf.cx>

	* include/limits.h (TTY_NAME_MAX): Increase size to same as linux to
	allow for (at least) null terminating byte for "/dev/console".

2008-01-01  Christopher Faylor  <me+cygwin@cgf.cx>

	* tty.cc: Update copyright.
	* pipe.cc: Ditto.

2008-01-01  Christopher Faylor  <me+cygwin@cgf.cx>

	* newsym: First stab at understanding data as well as functions.

	* pipe.cc (fhandler_pipe::init): Move more intelligence here.
	(fhandler_pipe::create): Simplify based on above change.

	* tty.cc (tty_list::allocate): Remove non-NT code.