Re: BUGREPORT/PROBLEM
- From: "Andrew V. Samoilov" <kai cmail ru>
- To: metaf4 pseudonym org
- Cc: mc-devel gnome org
- Subject: Re: BUGREPORT/PROBLEM
- Date: Tue, 15 Jan 2002 10:15:07 +0200
Hi, Thomas!
Thank you for mc - I use it daily ! Sorry, but I probably found a bug.
OS: Linux SuSE 7.2; Kernel 2.4.4-4GB
$ mc --version
The Midnight Commander 4.5.51
. . .
OS: Linux SuSE 6.1; Kernel 2.2.XX
$ mc --version
The Midnight Commander 4.5.25
. . .
It was indeed a bug in src/file.c. You can use attached patch.
Thanks a lot for quality bug report.
Regards,
Andrew.
Index: mc/src/ChangeLog
diff -u mc/src/ChangeLog:1.675 mc/src/ChangeLog:1.676
--- mc/src/ChangeLog:1.675 Wed Jan 9 05:54:13 2002
+++ mc/src/ChangeLog Tue Jan 15 03:01:31 2002
@@ -1,7 +1,12 @@
+2002-01-15 Andrew V. Samoilov <kai cmail ru>
+
+ * file.c (copy_dir_dir): Check the destination is a directory
+ if it exists. Reported by Thomas <metaf4 pseudonym org>.
+
2002-01-09 Andrew V. Samoilov <kai cmail ru>
* util.c (string_perm) [S_IFDOOR]: Support Solaris doors.
- screen.c (string_file_type) [S_IFDOOR]: Likewise.
+ * screen.c (string_file_type) [S_IFDOOR]: Likewise.
2001-12-21 Pavel Roskin <proski gnu org>
Index: mc/src/file.c
diff -u mc/src/file.c:1.71 mc/src/file.c:1.72
--- mc/src/file.c:1.71 Wed Nov 14 18:20:38 2001
+++ mc/src/file.c Tue Jan 15 03:01:29 2002
@@ -97,7 +97,7 @@
/* }}} */
-/* rcsid [] = "$Id: file.c,v 1.71 2001/11/14 23:20:38 proskin Exp $" */
+/* rcsid [] = "$Id: file.c,v 1.72 2002/01/15 08:01:29 andrew Exp $" */
int verbose = 1;
@@ -886,6 +886,7 @@
lp->next = parent_dirs;
parent_dirs = lp;
+ retry_dst_stat:
/* Now, check if the dest dir exists, if not, create it. */
if (mc_stat (d, &buf)){
/* Here the dir doesn't exist : make it !*/
@@ -906,6 +907,13 @@
* so, say /bla exists, if we copy /tmp/\* to /bla, we get /bla/tmp/\*
* or ( /bla doesn't exist ) /tmp/\* to /bla -> /bla/\*
*/
+ if (!S_ISDIR (buf.st_mode)){
+ return_status = file_error (_(" Destination \"%s\" must be a directory \n %s "), d);
+ if (return_status == FILE_RETRY)
+ goto retry_dst_stat;
+ g_free (parent_dirs);
+ return return_status;
+ }
#if 1
/* Again, I'm getting curious. Is not d already what we wanted, incl.
* masked source basename? Is not this just a relict of the past versions?
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]