diff options
-rw-r--r-- | xdg-vfs-gnome/src/xdg_vfs_gnome.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/xdg-vfs-gnome/src/xdg_vfs_gnome.c b/xdg-vfs-gnome/src/xdg_vfs_gnome.c index de13dba..db7c639 100644 --- a/xdg-vfs-gnome/src/xdg_vfs_gnome.c +++ b/xdg-vfs-gnome/src/xdg_vfs_gnome.c @@ -686,14 +686,21 @@ int xdg_vfs_get(const char * text_uri, int opts) if (r==GNOME_VFS_ERROR_EOF) break; /* ok EOF */ return print_and_translate_result(r); } + char outBuf[bytes_read*2]; + int oc=0; for(i=0;i<bytes_read;i++) { int c = (int)buffer[i]; /* escape char */ + /* if (c == escChar && opts & XDGVFS_OPT_DATAESCAPED) putchar(escChar); putchar (c); + */ + if (c == escChar && opts & XDGVFS_OPT_DATAESCAPED) + outBuf[oc++] = escChar; + outBuf[oc++] = (char)c; } - + fwrite (outBuf, 1, oc, stdout); } if (opts & XDGVFS_OPT_DATAESCAPED) { |