Author: jerry
Date: 2005-10-13 15:51:25 +0000 (Thu, 13 Oct 2005)
New Revision: 10964

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10964

Log:
BUG 1051: store the directory path so we can send the full name in the unlink 
call (del tmp\foo)
Modified:
   branches/SAMBA_3_0/source/client/client.c
   branches/SAMBA_3_0/source/include/client.h
   trunk/source/client/client.c
   trunk/source/include/client.h


Changeset:
Modified: branches/SAMBA_3_0/source/client/client.c
===================================================================
--- branches/SAMBA_3_0/source/client/client.c   2005-10-13 15:16:06 UTC (rev 
10963)
+++ branches/SAMBA_3_0/source/client/client.c   2005-10-13 15:51:25 UTC (rev 
10964)
@@ -514,6 +514,14 @@
 
 static void do_list_helper(const char *mntpoint, file_info *f, const char 
*mask, void *state)
 {
+       char *dir_end;
+
+       /* save the directory */
+       pstrcpy( f->dir, mask );
+       if ( (dir_end = strrchr( f->dir, '\\' )) != NULL ) {
+               *dir_end = '\0';
+       }
+
        if (f->mode & aDIR) {
                if (do_list_dirs && do_this_one(f)) {
                        do_list_fn(f);
@@ -1613,8 +1621,7 @@
 {
        pstring mask;
 
-       pstrcpy(mask,cur_dir);
-       pstrcat(mask,finfo->name);
+       pstr_sprintf( mask, "%s\\%s", finfo->dir, finfo->name );
 
        if (finfo->mode & aDIR) 
                return;

Modified: branches/SAMBA_3_0/source/include/client.h
===================================================================
--- branches/SAMBA_3_0/source/include/client.h  2005-10-13 15:16:06 UTC (rev 
10963)
+++ branches/SAMBA_3_0/source/include/client.h  2005-10-13 15:51:25 UTC (rev 
10964)
@@ -44,6 +44,7 @@
        time_t atime;
        time_t ctime;
        pstring name;
+       pstring dir;
        char short_name[13*3]; /* the *3 is to cope with multi-byte */
 } file_info;
 

Modified: trunk/source/client/client.c
===================================================================
--- trunk/source/client/client.c        2005-10-13 15:16:06 UTC (rev 10963)
+++ trunk/source/client/client.c        2005-10-13 15:51:25 UTC (rev 10964)
@@ -514,6 +514,14 @@
 
 static void do_list_helper(const char *mntpoint, file_info *f, const char 
*mask, void *state)
 {
+       char *dir_end;
+
+       /* save the directory */
+       pstrcpy( f->dir, mask );
+       if ( (dir_end = strrchr( f->dir, '\\' )) != NULL ) {
+               *dir_end = '\0';
+       }
+
        if (f->mode & aDIR) {
                if (do_list_dirs && do_this_one(f)) {
                        do_list_fn(f);
@@ -1613,8 +1621,7 @@
 {
        pstring mask;
 
-       pstrcpy(mask,cur_dir);
-       pstrcat(mask,finfo->name);
+       pstr_sprintf( mask, "%s\\%s", finfo->dir, finfo->name );
 
        if (finfo->mode & aDIR) 
                return;

Modified: trunk/source/include/client.h
===================================================================
--- trunk/source/include/client.h       2005-10-13 15:16:06 UTC (rev 10963)
+++ trunk/source/include/client.h       2005-10-13 15:51:25 UTC (rev 10964)
@@ -44,6 +44,7 @@
        time_t atime;
        time_t ctime;
        pstring name;
+       pstring dir;
        char short_name[13*3]; /* the *3 is to cope with multi-byte */
 } file_info;
 

Reply via email to