Imported Upstream version 3.2.0
[debian/amanda] / recover-src / display_commands.c
index 1a5b63876c42173cb0b63c0d873d226cea3e18b1..165de61a2c2ddb5f54330b183b38f98bcff83065 100644 (file)
@@ -24,7 +24,7 @@
  * file named AUTHORS, in the root directory of this distribution.
  */
 /*
- * $Id: display_commands.c,v 1.22.2.1 2006/12/22 15:10:26 martinea Exp $
+ * $Id: display_commands.c,v 1.22 2006/07/05 19:42:17 martinea Exp $
  *
  * implements the directory-display related commands in amrecover
  */
@@ -99,9 +99,8 @@ add_dir_list_item(
 {
     DIR_ITEM *next;
 
-    dbprintf(("add_dir_list_item: Adding \"%s\" \"%d\" \"%s\" \""
-             OFF_T_FMT "\" \"%s\"\n",
-             date, level, tape, (OFF_T_FMT_TYPE)fileno, path));
+    dbprintf(_("add_dir_list_item: Adding \"%s\" \"%d\" \"%s\" \"%lld\" \"%s\"\n"),
+             date, level, tape, (long long)fileno, path);
 
     next = (DIR_ITEM *)alloc(sizeof(DIR_ITEM));
     memset(next, 0, sizeof(DIR_ITEM));
@@ -146,7 +145,7 @@ suck_dir_list_from_server(void)
     char *qdisk_path;
 
     if (disk_path == NULL) {
-       printf("Directory must be set before getting listing\n");
+       g_printf(_("Directory must be set before getting listing\n"));
        return;
     } else if(strcmp(disk_path, "/") == 0) {
        disk_path_slash = stralloc(disk_path);
@@ -174,7 +173,7 @@ suck_dir_list_from_server(void)
     {
        amfree(disk_path_slash);
        l = reply_line();
-       printf("%s\n", l);
+       g_printf("%s\n", l);
        return;
     }
     disk_path_slash_dot = stralloc2(disk_path_slash, ".");
@@ -200,20 +199,18 @@ suck_dir_list_from_server(void)
        l = reply_line();
        if (!server_happy())
        {
-           printf("%s\n", l);
+           g_printf("%s\n", l);
            continue;
        }
-#define sc "201-"
-       if (strncmp(l, sc, sizeof(sc)-1) != 0) {
-           err = "bad reply: not 201-";
+       s = l;
+       if (strncmp_const_skip(l, "201-", s, ch) != 0) {
+           err = _("bad reply: not 201-");
            continue;
        }
-       s = l + sizeof(sc)-1;
        ch = *s++;
-#undef sc
        skip_whitespace(s, ch);
        if(ch == '\0') {
-           err = "bad reply: missing date field";
+           err = _("bad reply: missing date field");
            continue;
        }
        date = s - 1;
@@ -222,29 +219,31 @@ suck_dir_list_from_server(void)
 
        skip_whitespace(s, ch);
        if(ch == '\0' || sscanf(s - 1, "%d", &level) != 1) {
-           err = "bad reply: cannot parse level field";
+           err = _("bad reply: cannot parse level field");
            continue;
        }
        skip_integer(s, ch);
 
        skip_whitespace(s, ch);
        if(ch == '\0') {
-           err = "bad reply: missing tape field";
+           err = _("bad reply: missing tape field");
            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;
            skip_whitespace(s, ch);
-           if(ch == '\0' || sscanf(s - 1, OFF_T_FMT,
-                                   (OFF_T_FMT_TYPE *)&fileno) != 1) {
-               err = "bad reply: cannot parse fileno field";
+           if(ch == '\0' || sscanf(s - 1, "%lld", &fileno_) != 1) {
+               err = _("bad reply: cannot parse fileno field");
                continue;
            }
+           fileno = (off_t)fileno_;
            skip_integer(s, ch);
        }
        else {
@@ -253,7 +252,7 @@ suck_dir_list_from_server(void)
 
        skip_whitespace(s, ch);
        if(ch == '\0') {
-           err = "bad reply: missing directory field";
+           err = _("bad reply: missing directory field");
            continue;
        }
        qdir = s - 1;
@@ -265,6 +264,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);
@@ -294,7 +294,7 @@ list_directory(void)
     char *quoted;
 
     if (disk_path == NULL) {
-       printf("Must select a disk before listing files; use the setdisk command.\n");
+       g_printf(_("Must select a disk before listing files; use the setdisk command.\n"));
        return;
     }
 
@@ -309,7 +309,7 @@ list_directory(void)
     pager_command = stralloc2(pager, " ; /bin/cat > /dev/null");
     if ((fp = popen(pager_command, "w")) == NULL)
     {
-       printf("Warning - can't pipe through %s\n", pager);
+       g_printf(_("Warning - can't pipe through %s\n"), pager);
        fp = stdout;
     }
     amfree(pager_command);
@@ -318,7 +318,7 @@ list_directory(void)
        i++;                            /* so disk_path != "/" */
     for (item = get_dir_list(); item != NULL; item=get_next_dir_item(item)) {
        quoted = quote_string(item->path + i);
-       fprintf(fp, "%s %s\n", item->date, quoted);
+       g_fprintf(fp, "%s %s\n", item->date, quoted);
        amfree(quoted);
     }
     apclose(fp);