diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2008-03-12 15:04:06 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2008-03-12 15:04:06 +0000 |
commit | 31812fc0bce3afa55f2e4f70411d849dac41e1aa (patch) | |
tree | 12cb59dd2592390efd96e05807f4852f12b39680 /winsup | |
parent | 2b2b42cf59bafffa3cd3021090c8e8636985fd48 (diff) | |
download | cygnal-31812fc0bce3afa55f2e4f70411d849dac41e1aa.tar.gz cygnal-31812fc0bce3afa55f2e4f70411d849dac41e1aa.tar.bz2 cygnal-31812fc0bce3afa55f2e4f70411d849dac41e1aa.zip |
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Don't
copy filename twice in the non-managed case.
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_disk_file.cc | 18 |
2 files changed, 16 insertions, 7 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 85ffa11f7..479d144d8 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,10 @@ 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. diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index e364d9f49..061f6ea9a 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -1785,16 +1785,20 @@ fhandler_disk_file::readdir_helper (DIR *dir, dirent *de, DWORD w32_err, } } - char tmp[NAME_MAX + 1]; - sys_wcstombs (tmp, NAME_MAX + 1, fname->Buffer, - fname->Length / sizeof (WCHAR)); if (pc.isencoded ()) - fnunmunge (de->d_name, tmp); + { + char tmp[NAME_MAX + 1]; + sys_wcstombs (tmp, NAME_MAX + 1, fname->Buffer, + fname->Length / sizeof (WCHAR)); + fnunmunge (de->d_name, tmp); + } else - strcpy (de->d_name, tmp); - if (dir->__d_position == 0 && !strcmp (tmp, ".")) + sys_wcstombs (de->d_name, NAME_MAX + 1, fname->Buffer, + fname->Length / sizeof (WCHAR)); + + if (dir->__d_position == 0 && !strcmp (de->d_name, ".")) dir->__flags |= dirent_saw_dot; - else if (dir->__d_position == 1 && !strcmp (tmp, "..")) + else if (dir->__d_position == 1 && !strcmp (de->d_name, "..")) dir->__flags |= dirent_saw_dot_dot; return 0; } |