rendered paste bodyIndex: src/Utils/UriUtils.cs===================================================================--- src/Utils/UriUtils.cs (Revision 4702)+++ src/Utils/UriUtils.cs (Arbeitskopie)@@ -94,6 +94,25 @@ } return s.ToString ();- } + }+ // NOTE: Copied from dbus-sharp/Address.cs: Unescape, which isn't public+ // This is the reverse function of EscapeString+ public static string UnescapeString (string str)+ {+ if (str == null)+ return String.Empty;++ StringBuilder sb = new StringBuilder ();+ int len = str.Length;+ int i = 0;+ while (i != len) {+ if (Uri.IsHexEncoding (str, i))+ sb.Append (Uri.HexUnescape (str, ref i));+ else+ sb.Append (str[i++]);+ }++ return sb.ToString ();+ } } }Index: extensions/Exporters/PicasaWebExport/PicasaWebExport.cs===================================================================--- extensions/Exporters/PicasaWebExport/PicasaWebExport.cs (Revision 4702)+++ extensions/Exporters/PicasaWebExport/PicasaWebExport.cs (Arbeitskopie)@@ -654,12 +654,15 @@ while (photo_index < items.Length) { try { IBrowsableItem item = items[photo_index];+ /* Bug #569460 */+ string prettyname = UriUtils.UnescapeString (item.Name); FileInfo file_info; Console.WriteLine ("uploading {0}", photo_index); + /* Bug #569460 */ progress_dialog.Message = String.Format (Catalog.GetString ("Uploading picture \"{0}\" ({1} of {2})"),- item.Name, photo_index+1, items.Length);+ prettyname, photo_index+1, items.Length); photo_index++; PicasaPicture picture;@@ -672,7 +675,8 @@ else approx_size = sent_bytes * items.Length / (photo_index - 1); - picture = album.UploadPicture (request.Current.LocalPath, Path.ChangeExtension (item.Name, "jpg"), item.Description);+ /* Bug #569460 */+ picture = album.UploadPicture (request.Current.LocalPath, Path.ChangeExtension (prettyname, "jpg"), item.Description); sent_bytes += file_info.Length; } if (Core.Database != null && item is Photo)Index: extensions/Exporters/GalleryExport/GalleryRemote.cs===================================================================--- extensions/Exporters/GalleryExport/GalleryRemote.cs (Revision 4702)+++ extensions/Exporters/GalleryExport/GalleryRemote.cs (Arbeitskopie)@@ -7,6 +7,7 @@ using System.Web; using Mono.Unix; using FSpot;+using FSpot.Utils; using FSpot.UI.Dialog; /* These classes are based off the documentation at@@ -85,6 +86,11 @@ public void Add (FSpot.IBrowsableItem item) {+ /* Bug #569460 */+ // error CS0200: Property or indexer `FSpot.IBrowsableItem.Name' cannot be assigned to (it is read only)+ // How to set Name?+ // item.Name = UriUtils.UnescapeString (item.Name);+ Add (item, item.DefaultVersionUri.LocalPath); } Index: extensions/Exporters/GalleryExport/GalleryExport.cs===================================================================--- extensions/Exporters/GalleryExport/GalleryExport.cs (Revision 4702)+++ extensions/Exporters/GalleryExport/GalleryExport.cs (Arbeitskopie)@@ -773,10 +773,13 @@ while (photo_index < items.Length) { IBrowsableItem item = items [photo_index];+ /* Bug #569460 */+ string prettyname = UriUtils.UnescapeString (item.Name); System.Console.WriteLine ("uploading {0}", photo_index); - progress_dialog.Message = System.String.Format (Catalog.GetString ("Uploading picture \"{0}\""), item.Name);+ /* Bug #569460 */+ progress_dialog.Message = System.String.Format (Catalog.GetString ("Uploading picture \"{0}\""), prettyname); progress_dialog.Fraction = photo_index / (double) items.Length; photo_index++; Index: extensions/Exporters/ZipExport/ZipExport.cs===================================================================--- extensions/Exporters/ZipExport/ZipExport.cs (Revision 4702)+++ extensions/Exporters/ZipExport/ZipExport.cs (Arbeitskopie)@@ -24,6 +24,7 @@ using ICSharpCode.SharpZipLib.Checksums; using ICSharpCode.SharpZipLib.Zip; using ICSharpCode.SharpZipLib.GZip;+using FSpot.Utils; namespace ZipExport { public class Zip : IExporter {@@ -104,7 +105,9 @@ //Pack up for (int i = 0; i < photos.Length; i ++) {- if (progress_dialog.Update (String.Format (Catalog.GetString ("Preparing photo \"{0}\""), photos[i].Name))) {+ /* Bug #569460 */+ string prettyname = UriUtils.UnescapeString (photos [i].Name);+ if (progress_dialog.Update (String.Format (Catalog.GetString ("Preparing photo \"{0}\""), prettyname))) { progress_dialog.Destroy (); return; }@@ -123,7 +126,8 @@ byte [] buffer = new byte [fs.Length]; fs.Read (buffer, 0, buffer.Length);- ZipEntry entry = new ZipEntry (photos [i].Name);+ /* Bug #569460 */+ ZipEntry entry = new ZipEntry (prettyname); entry.DateTime = DateTime.Now; Index: extensions/Exporters/SmugMugExport/SmugMugExport.cs===================================================================--- extensions/Exporters/SmugMugExport/SmugMugExport.cs (Revision 4702)+++ extensions/Exporters/SmugMugExport/SmugMugExport.cs (Arbeitskopie)@@ -558,12 +558,15 @@ while (photo_index < items.Length) { try { IBrowsableItem item = items[photo_index];+ /* Bug #569460 */+ string prettyname = UriUtils.UnescapeString (item.Name); FileInfo file_info; Console.WriteLine ("uploading {0}", photo_index); + /* Bug #569460 */ progress_dialog.Message = String.Format (Catalog.GetString ("Uploading picture \"{0}\" ({1} of {2})"),- item.Name, photo_index+1, items.Length);+ prettyname, photo_index+1, items.Length); progress_dialog.ProgressText = string.Empty; progress_dialog.Fraction = ((photo_index) / (double) items.Length); photo_index++;Index: extensions/Exporters/CDExport/CDExport.cs===================================================================--- extensions/Exporters/CDExport/CDExport.cs (Revision 4702)+++ extensions/Exporters/CDExport/CDExport.cs (Arbeitskopie)@@ -200,6 +200,8 @@ //FIXME need to implement the uniquename as a filter using (FilterRequest request = new FilterRequest (photo.DefaultVersionUri)) {+ /* Bug #569460 */+ string prettyname = UriUtils.UnescapeString (photo.Name); if (rotate) new OrientationFilter ().Convert (request); @@ -210,14 +212,17 @@ Gnome.Vfs.Uri target = dest.Clone (); #endif #if GIO_2_16- GLib.File target = UniqueName (dest, photo.Name);+ /* Bug #569460 */+ GLib.File target = UniqueName (dest, prettyname); FileProgressCallback cb = Progress; #else- target = UniqueName (target, photo.Name);+ /* Bug #569460 */+ target = UniqueName (target, prettyname); Gnome.Vfs.XferProgressCallback cb = new Gnome.Vfs.XferProgressCallback (Progress); #endif - progress_dialog.Message = System.String.Format (Catalog.GetString ("Transferring picture \"{0}\" To CD"), photo.Name);+ /* Bug #569460 */+ progress_dialog.Message = System.String.Format (Catalog.GetString ("Transferring picture \"{0}\" To CD"), prettyname); progress_dialog.Fraction = photo_index / (double) selection.Count; progress_dialog.ProgressText = System.String.Format (Catalog.GetString ("{0} of {1}"), photo_index, selection.Count);Index: extensions/Exporters/FacebookExport/FacebookExport.cs===================================================================--- extensions/Exporters/FacebookExport/FacebookExport.cs (Revision 4702)+++ extensions/Exporters/FacebookExport/FacebookExport.cs (Arbeitskopie)@@ -521,11 +521,14 @@ for (int i = 0; i < items.Length; i++) { try { IBrowsableItem item = items [i];+ /* Bug #569460 */+ string prettyname = UriUtils.UnescapeString (item.Name); FileInfo file_info; Console.WriteLine ("uploading {0}", i); - progress_dialog.Message = String.Format (Catalog.GetString ("Uploading picture \"{0}\" ({1} of {2})"), item.Name, i + 1, items.Length);+ /* Bug #569460 */+ progress_dialog.Message = String.Format (Catalog.GetString ("Uploading picture \"{0}\" ({1} of {2})"), prettyname, i + 1, items.Length); progress_dialog.ProgressText = string.Empty; progress_dialog.Fraction = i / (double) items.Length; Index: extensions/Exporters/FlickrExport/FlickrExport.cs===================================================================--- extensions/Exporters/FlickrExport/FlickrExport.cs (Revision 4702)+++ extensions/Exporters/FlickrExport/FlickrExport.cs (Arbeitskopie)@@ -340,8 +340,10 @@ for (int index = 0; index < photos.Length; index++) { try { IBrowsableItem photo = photos [index];+ /* Bug #569460 */+ string prettyname = UriUtils.UnescapeString (photo.Name); progress_dialog.Message = System.String.Format (- Catalog.GetString ("Uploading picture \"{0}\""), photo.Name);+ Catalog.GetString ("Uploading picture \"{0}\""), prettyname); progress_dialog.Fraction = photo_index / (double)selection.Count; photo_index++;Index: extensions/Exporters/FlickrExport/FlickrRemote.cs===================================================================--- extensions/Exporters/FlickrExport/FlickrRemote.cs (Revision 4702)+++ extensions/Exporters/FlickrExport/FlickrRemote.cs (Arbeitskopie)@@ -177,8 +177,9 @@ tags = taglist.ToString (); } try {+ /* Bug #569460 */ string photoid =- flickr.UploadPicture (path, photo.Name, photo.Description, tags, is_public, is_family, is_friend);+ flickr.UploadPicture (path, UriUtils.UnescapeString (photo.Name), photo.Description, tags, is_public, is_family, is_friend); return photoid; } catch (FlickrNet.FlickrException ex) { Console.WriteLine ("Problems uploading picture: " + ex.ToString());