[Pkg-mc-commits] r85 - in trunk/debian: . patches

winnie at alioth.debian.org winnie at alioth.debian.org
Wed Feb 27 13:04:14 UTC 2008


Author: winnie
Date: 2008-02-27 13:04:13 +0000 (Wed, 27 Feb 2008)
New Revision: 85

Added:
   trunk/debian/patches/62_fix_whitespace_via_fish.patch
Modified:
   trunk/debian/changelog
Log:
Fix #461532


Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog	2008-02-27 12:07:54 UTC (rev 84)
+++ trunk/debian/changelog	2008-02-27 13:04:13 UTC (rev 85)
@@ -6,8 +6,9 @@
     + added as 32_show_hostname.patch (and removed from proposed-patches)
   * Added patch for (un-)escaping foldernames (Closes: #326047, #458403)
   * Don't chmod if preserve Attributes is unchecked (Closes: #466370)
+  * Fix error with files containing a whitespace via ssh. (Closes: #461532) 
 
- -- Patrick Winnertz <winnie at debian.org>  Wed, 27 Feb 2008 11:34:34 +0100
+ -- Patrick Winnertz <winnie at debian.org>  Wed, 27 Feb 2008 14:02:52 +0100
 
 mc (1:4.6.2~pre1-4) experimental; urgency=low
 

Added: trunk/debian/patches/62_fix_whitespace_via_fish.patch
===================================================================
--- trunk/debian/patches/62_fix_whitespace_via_fish.patch	                        (rev 0)
+++ trunk/debian/patches/62_fix_whitespace_via_fish.patch	2008-02-27 13:04:13 UTC (rev 85)
@@ -0,0 +1,183 @@
+Index: fish.c
+===================================================================
+RCS file: /cvsroot/mc/mc/vfs/fish.c,v
+retrieving revision 1.125
+diff -u -r1.125 fish.c
+--- fish.c	2 Nov 2007 14:50:41 -0000	1.125
++++ fish.c	27 Feb 2008 13:02:12 -0000
+@@ -96,6 +96,7 @@
+     return code / 100;
+ }
+ 
++
+ /* Returns a reply code, check /usr/include/arpa/ftp.h for possible values */
+ static int fish_get_reply (struct vfs_class *me, int sock, char *string_buf, int string_len)
+ {
+@@ -366,17 +367,17 @@
+     dir->timestamp.tv_sec += fish_directory_timeout;
+     quoted_path = name_quote (remote_path, 0);
+     fish_command (me, super, NONE,
+-	    "#LIST /%s\n"
+-	    "if ls -1 /%s >/dev/null 2>&1 ;\n"
++	    "#LIST \"/%s\"\n"
++	    "if ls -1 \"/%s\" >/dev/null 2>&1 ;\n"
+ 	    "then\n"
+-	    "ls -lLan /%s 2>/dev/null | grep '^[^cbt]' | (\n"
++	    "ls -lQLan \"/%s\" 2>/dev/null | grep '^[^cbt]' | (\n"
+ 	      "while read p l u g s m d y n; do\n"
+-	        "echo \"P$p $u.$g\nS$s\nd$m $d $y\n:$n\n\"\n"
++	        "echo \"P$p $u.$g\nS$s\nd$m $d $y\n:$n\n\"| sed 's#\\\"##g'\n"
+ 	      "done\n"
+ 	    ")\n"
+-	    "ls -lan /%s 2>/dev/null | grep '^[cb]' | (\n"
++	    "ls -Qlan \"/%s\" 2>/dev/null | grep '^[cb]' | (\n"
+ 	      "while read p l u g a i m d y n; do\n"
+-	        "echo \"P$p $u.$g\nE$a$i\nd$m $d $y\n:$n\n\"\n"
++	        "echo \"P$p $u.$g\nE$a$i\nd$m $d $y\n:$n\n\" | sed 's#\\\"##g'\n"
+ 	      "done\n"
+ 	    ")\n"
+ 	    "echo '### 200'\n"
+@@ -534,9 +535,9 @@
+     /* FIXME: File size is limited to ULONG_MAX */
+     if (!fh->u.fish.append)
+ 	n = fish_command (me, super, WAIT_REPLY,
+-		 "#STOR %lu /%s\n"
++		 "#STOR %lu \"/%s\"\n"
+ 		 "echo '### 001'\n"
+-		 "file=/%s\n"
++		 "file=\"/%s\"\n"
+                  "res=`exec 3>&1\n"
+ 		 "(\n"
+ 		   "head -c %lu -q - || echo DD >&3\n"
+@@ -558,10 +559,10 @@
+ 		 (unsigned long) s.st_size);
+     else
+ 	n = fish_command (me, super, WAIT_REPLY,
+-		 "#STOR %lu /%s\n"
++		 "#STOR %lu \"/%s\"\n"
+ 		 "echo '### 001'\n"
+ 		 "{\n"
+-			"file=/%s\n"
++			"file=\"/%s\"\n"
+ 			"rest=%lu\n"
+ 			"while [ $rest -gt 0 ]\n"
+ 			"do\n"
+@@ -627,7 +628,7 @@
+ 	return 0;
+     quoted_name = name_quote (name, 0);
+     g_free (name);
+-    name = quoted_name;
++    name = unescape_string(quoted_name);
+     fh->u.fish.append = 0;
+ 
+     /*
+@@ -637,15 +638,15 @@
+      * standard output (i.e. over the network).
+      */
+     offset = fish_command (me, FH_SUPER, WANT_STRING,
+-		"#RETR /%s\n"
+-		"if dd if=/%s of=/dev/null bs=1 count=1 2>/dev/null ;\n"
++		"#RETR \"/%s\"\n"
++		"if dd if=\"/%s\" of=/dev/null bs=1 count=1 2>/dev/null ;\n"
+ 		"then\n"
+-		"ls -ln /%s 2>/dev/null | (\n"
++		"ls -ln \"/%s\" 2>/dev/null | (\n"
+ 		  "read p l u g s r\n"
+ 		  "echo \"$s\"\n"
+ 		")\n"
+ 		"echo '### 100'\n"
+-		"cat /%s\n"
++		"cat \"//%s\"\n"
+ 		"echo '### 200'\n"
+ 		"else\n"
+ 		"echo '### 500'\n" 
+@@ -777,7 +778,7 @@
+ fish_chmod (struct vfs_class *me, const char *path, int mode)
+ {
+     PREFIX
+-    g_snprintf(buf, sizeof(buf), "#CHMOD %4.4o /%s\n"
++    g_snprintf(buf, sizeof(buf), "#CHMOD %4.4o \"/%s\"\n"
+ 				 "chmod %4.4o \"/%s\" 2>/dev/null\n"
+ 				 "echo '### 000'\n", 
+ 	    mode & 07777, rpath,
+@@ -811,11 +812,11 @@
+     return fish_send_command(me, super2, buf, OPT_FLUSH); \
+ }
+ 
+-FISH_OP(rename, "#RENAME /%s /%s\n"
+-		"mv /%s /%s 2>/dev/null\n"
++FISH_OP(rename, "#RENAME \"/%s\" \"/%s\"\n"
++		"mv \"/%s\" \"/%s\" 2>/dev/null\n"
+ 		"echo '### 000'" )
+-FISH_OP(link,   "#LINK /%s /%s\n"
+-		"ln /%s /%s 2>/dev/null\n"
++FISH_OP(link,   "#LINK \"/%s\" \"/%s\"\n"
++		"ln \"%s\" \"/%s\" 2>/dev/null\n"
+ 		"echo '### 000'" )
+ 
+ static int fish_symlink (struct vfs_class *me, const char *setto, const char *path)
+@@ -824,8 +825,8 @@
+     PREFIX
+     qsetto = name_quote (setto, 0);
+     g_snprintf(buf, sizeof(buf),
+-            "#SYMLINK %s /%s\n"
+-	    "ln -s %s /%s 2>/dev/null\n"
++            "#SYMLINK \"%s\" \"/%s\"\n"
++	    "ln -s \"%s\" \"/%s\" 2>/dev/null\n"
+ 	    "echo '### 000'\n",
+ 	    qsetto, rpath, qsetto, rpath);
+     g_free (qsetto);
+@@ -850,16 +851,16 @@
+     {
+ 	PREFIX
+ 	g_snprintf (buf, sizeof(buf),
+-    	    "#CHOWN /%s /%s\n"
+-	    "chown %s /%s 2>/dev/null\n"
++    	    "#CHOWN /%s \"/%s\"\n"
++	    "chown %s \"/%s\" 2>/dev/null\n"
+ 	    "echo '### 000'\n", 
+ 	    sowner, rpath,
+ 	    sowner, rpath);
+ 	fish_send_command (me, super, buf, OPT_FLUSH); 
+ 	/* FIXME: what should we report if chgrp succeeds but chown fails? */
+ 	g_snprintf (buf, sizeof(buf),
+-            "#CHGRP /%s /%s\n"
+-	    "chgrp %s /%s 2>/dev/null\n"
++            "#CHGRP /%s \"/%s\"\n"
++	    "chgrp %s \"/%s\" 2>/dev/null\n"
+ 	    "echo '### 000'\n", 
+ 	    sgroup, rpath,
+ 	    sgroup, rpath);
+@@ -872,8 +873,8 @@
+ {
+     PREFIX
+     g_snprintf(buf, sizeof(buf),
+-            "#DELE /%s\n"
+-	    "rm -f /%s 2>/dev/null\n"
++            "#DELE \"/%s\"\n"
++	    "rm -f \"/%s\" 2>/dev/null\n"
+ 	    "echo '### 000'\n",
+ 	    rpath, rpath);
+     POSTFIX(OPT_FLUSH);
+@@ -886,8 +887,8 @@
+     (void) mode;
+ 
+     g_snprintf(buf, sizeof(buf),
+-            "#MKD /%s\n"
+-	    "mkdir /%s 2>/dev/null\n"
++            "#MKD \"/%s\"\n"
++	    "mkdir \"/%s\" 2>/dev/null\n"
+ 	    "echo '### 000'\n",
+ 	    rpath, rpath);
+     POSTFIX(OPT_FLUSH);
+@@ -897,8 +898,8 @@
+ {
+     PREFIX
+     g_snprintf(buf, sizeof(buf),
+-            "#RMD /%s\n"
+-	    "rmdir /%s 2>/dev/null\n"
++            "#RMD \"/%s\"\n"
++	    "rmdir \"/%s\" 2>/dev/null\n"
+ 	    "echo '### 000'\n",
+ 	    rpath, rpath);
+     POSTFIX(OPT_FLUSH);




More information about the Pkg-mc-commits mailing list