lintian doesn't like orphan packages with uploaders...
[debian/amanda] / recover-src / display_commands.c
index 92a9e7d20dcf023998a49abb24efdebb23baf5a4..423cfb7e538bd492727c5865766787c04fed5ffb 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Amanda, The Advanced Maryland Automatic Network Disk Archiver
  * Copyright (c) 1991-1998 University of Maryland at College Park
+ * Copyright (c) 2007-2012 Zmanda, Inc.  All Rights Reserved.
  * All Rights Reserved.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -33,6 +34,8 @@
 #include "amrecover.h"
 #include "util.h"
 
+gboolean translate_mode = TRUE;
+
 DIR_ITEM *get_dir_list(void);
 DIR_ITEM *get_next_dir_item(DIR_ITEM *this);
 
@@ -83,6 +86,7 @@ free_dir_item(
         amfree(item->date);
         amfree(item->tape);
         amfree(item->path);
+        amfree(item->tpath);
         amfree(item);
        item = next;
     }
@@ -110,6 +114,7 @@ add_dir_list_item(
     next->tape = stralloc(tape);
     next->fileno = fileno;
     next->path = stralloc(path);
+    next->tpath = translate_octal(g_strdup(path));
 
     next->next = dir_list;
     dir_list = next;
@@ -230,10 +235,11 @@ suck_dir_list_from_server(void)
            continue;
        }
        tape = s - 1;
-       skip_non_whitespace(s, ch);
+       skip_quoted_string(s, ch);
        tape_undo = s - 1;
        tape_undo_ch = *tape_undo;
        *tape_undo = '\0';
+       tape = unquote_string(tape);
 
        if(am_has_feature(indexsrv_features, fe_amindexd_fileno_in_OLSD)) {
            long long fileno_ = (long long)0;
@@ -263,6 +269,7 @@ suck_dir_list_from_server(void)
            dir = stralloc(disk_path_slash_dot);
        }
        add_dir_list_item(date, level, tape, fileno, dir);
+       amfree(tape);
        amfree(dir);
     }
     amfree(disk_path_slash_dot);
@@ -311,11 +318,11 @@ list_directory(void)
        fp = stdout;
     }
     amfree(pager_command);
-    i = strlen(disk_path);
+    i = strlen(disk_tpath);
     if (i != 1)
-       i++;                            /* so disk_path != "/" */
+       i++;                            /* so disk_tpath != "/" */
     for (item = get_dir_list(); item != NULL; item=get_next_dir_item(item)) {
-       quoted = quote_string(item->path + i);
+       quoted = quote_string(item->tpath + i);
        g_fprintf(fp, "%s %s\n", item->date, quoted);
        amfree(quoted);
     }