diff --git a/.patches/ncpfs-2.2.6-r6/ncpfs-hg-commit-407.patch b/.patches/ncpfs-2.2.6-r6/ncpfs-hg-commit-407.patch new file mode 100644 index 0000000..c03db9e --- /dev/null +++ b/.patches/ncpfs-2.2.6-r6/ncpfs-hg-commit-407.patch @@ -0,0 +1,110 @@ +changeset: 407:8a41f32f7288 +user: Scott Bentley +date: Sun May 22 23:50:08 2005 +0000 +files: util/nwsalvage.c +description: +Add `-r' option for renaming file while salvaging it. + + +diff -r 6af6a89be103 -r 8a41f32f7288 util/nwsalvage.c +--- a/util/nwsalvage.c Sun May 22 23:37:08 2005 +0000 ++++ b/util/nwsalvage.c Sun May 22 23:50:08 2005 +0000 +@@ -35,14 +35,15 @@ static void usage(void) { + "\n" + "-h Print this help text.\n" + "-s Silent mode.\n" +-"-n Namespace for accessing files\n" ++"-n Namespace for accessing files.\n" + " DOS\n" + " LONG - Default\n" + " MAC\n" + " FTAM\n" + " NFS\n" ++"-r Rename the salvaged file. 255 chars max." + "\n" +-"directory Directory in which salvageable file(s) resides.\n" ++"directory Directory in which salvageable file resides.\n" + " Default is current directory.\n" + "\n" + "file_id The file identified by file_id will be salvaged.\n" +@@ -52,13 +53,14 @@ static void usage(void) { + } + + static int g_silent = 0; ++static int g_rename = 0; ++static char* g_newname; + static int g_nwns = NW_NS_LONG; + + static void process_salvage(struct ncp_conn* conn, int volume, u_int32_t directory_id, int file_id) { + struct ncp_deleted_file info; + int found; +- char oldfilename[256]; +- char newfilename[256]; ++ char filename[256]; + + NWCCODE err; + +@@ -66,22 +68,26 @@ static void process_salvage(struct ncp_c + info.seq = -1; + while (!ncp_ns_scan_salvageable_file(conn, g_nwns, + 1, volume, directory_id, NULL, 0, +- &info, oldfilename, sizeof(oldfilename))) { ++ &info, filename, sizeof(filename))) { + + if (info.seq == file_id) { +- strcpy(newfilename, oldfilename); + found++; +- if ((err = ncp_ns_salvage_file(conn, g_nwns, &info, newfilename)) != 0) { ++ ++ if (g_rename) { ++ strcpy(filename, g_newname); ++ } ++ ++ if ((err = ncp_ns_salvage_file(conn, g_nwns, &info, filename)) != 0) { + if (!g_silent) { + if (err == 0x89FE) { + printf(_("%8s%d -- failed (File already exists, or path inaccessible)\n"), "", info.seq); + } else { +- printf(_("%8s%d %s -- failed (%s)\n"), "", info.seq, newfilename, strnwerror(err)); ++ printf(_("%8s%d %s -- failed (%s)\n"), "", info.seq, filename, strnwerror(err)); + } + } + } else { + if (!g_silent) { +- printf(_("%8s%d %s -- salvaged \n"), "", info.seq, newfilename); ++ printf(_("%8s%d %s -- salvaged \n"), "", info.seq, filename); + } + } + break; +@@ -101,12 +107,13 @@ int main(int argc, char* argv[]) { + int err; + int c; + char* opt_n; ++ char* opt_r; + + setlocale(LC_ALL, ""); + bindtextdomain(NCPFS_PACKAGE, LOCALEDIR); + textdomain(NCPFS_PACKAGE); + +- while ((c = getopt(argc, argv, "hsn")) != -1) { ++ while ((c = getopt(argc, argv, "hsnr")) != -1) { + switch (c) { + case '?': + case ':':break; +@@ -130,6 +137,15 @@ int main(int argc, char* argv[]) { + exit(1); + } + break; ++ case 'r': ++ opt_r = argv[optind++]; ++ if (strlen(opt_r) > 255 || strlen(opt_r) < 1) { ++ fprintf(stderr, _("Filename for option '-%c' has invalid length."), c); ++ exit(1); ++ } ++ g_rename = 1; ++ g_newname = opt_r; ++ break; + default: fprintf(stderr, _("Unexpected option `-%c'\n"), c); + break; + } + diff --git a/util/nwsalvage.c b/util/nwsalvage.c index 5edf044..e24ece2 100644 --- a/util/nwsalvage.c +++ b/util/nwsalvage.c @@ -35,14 +35,15 @@ static void usage(void) { "\n" "-h Print this help text.\n" "-s Silent mode.\n" -"-n Namespace for accessing files\n" +"-n Namespace for accessing files.\n" " DOS\n" " LONG - Default\n" " MAC\n" " FTAM\n" " NFS\n" +"-r Rename the salvaged file. 255 chars max." "\n" -"directory Directory in which salvageable file(s) resides.\n" +"directory Directory in which salvageable file resides.\n" " Default is current directory.\n" "\n" "file_id The file identified by file_id will be salvaged.\n" @@ -52,13 +53,14 @@ static void usage(void) { } static int g_silent = 0; +static int g_rename = 0; +static char* g_newname; static int g_nwns = NW_NS_LONG; static void process_salvage(struct ncp_conn* conn, int volume, u_int32_t directory_id, int file_id) { struct ncp_deleted_file info; int found; - char oldfilename[256]; - char newfilename[256]; + char filename[256]; NWCCODE err; @@ -66,22 +68,26 @@ static void process_salvage(struct ncp_conn* conn, int volume, u_int32_t directo info.seq = -1; while (!ncp_ns_scan_salvageable_file(conn, g_nwns, 1, volume, directory_id, NULL, 0, - &info, oldfilename, sizeof(oldfilename))) { + &info, filename, sizeof(filename))) { if (info.seq == file_id) { - strcpy(newfilename, oldfilename); found++; - if ((err = ncp_ns_salvage_file(conn, g_nwns, &info, newfilename)) != 0) { + + if (g_rename) { + strcpy(filename, g_newname); + } + + if ((err = ncp_ns_salvage_file(conn, g_nwns, &info, filename)) != 0) { if (!g_silent) { if (err == 0x89FE) { printf(_("%8s%d -- failed (File already exists, or path inaccessible)\n"), "", info.seq); } else { - printf(_("%8s%d %s -- failed (%s)\n"), "", info.seq, newfilename, strnwerror(err)); + printf(_("%8s%d %s -- failed (%s)\n"), "", info.seq, filename, strnwerror(err)); } } } else { if (!g_silent) { - printf(_("%8s%d %s -- salvaged \n"), "", info.seq, newfilename); + printf(_("%8s%d %s -- salvaged \n"), "", info.seq, filename); } } break; @@ -101,12 +107,13 @@ int main(int argc, char* argv[]) { int err; int c; char* opt_n; + char* opt_r; setlocale(LC_ALL, ""); bindtextdomain(NCPFS_PACKAGE, LOCALEDIR); textdomain(NCPFS_PACKAGE); - while ((c = getopt(argc, argv, "hsn")) != -1) { + while ((c = getopt(argc, argv, "hsnr")) != -1) { switch (c) { case '?': case ':':break; @@ -130,6 +137,15 @@ int main(int argc, char* argv[]) { exit(1); } break; + case 'r': + opt_r = argv[optind++]; + if (strlen(opt_r) > 255 || strlen(opt_r) < 1) { + fprintf(stderr, _("Filename for option '-%c' has invalid length."), c); + exit(1); + } + g_rename = 1; + g_newname = opt_r; + break; default: fprintf(stderr, _("Unexpected option `-%c'\n"), c); break; }