]> sjero.net Git - wget/commitdiff
[svn] Applied Dennis Smit's --preserve-permissions patch.
authorhniksic <devnull@localhost>
Thu, 6 Nov 2003 20:33:20 +0000 (12:33 -0800)
committerhniksic <devnull@localhost>
Thu, 6 Nov 2003 20:33:20 +0000 (12:33 -0800)
src/ChangeLog
src/ftp.c
src/init.c
src/main.c
src/options.h

index 9942941ee469f2093f975fb71b19c1efc3d16042..5c07af86db050dbb172dfd3320a508b3c0a43b43 100644 (file)
@@ -1,3 +1,14 @@
+2003-11-05  Dennis Smit  <ds@nerds-incorporated.org>
+
+       * main.c: (main): added --preserve-permissions option.
+
+       * ftp.c (ftp_retrieve_list): added support for
+       --preserve-permissions option.
+
+       * init.c: added support for --preserve-permission option.
+
+       * option.h: added support for --preserve-permission option.
+
 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
 
        * main.c (init_switches): New function.  Convert option_data to
 2003-11-06  Hrvoje Niksic  <hniksic@xemacs.org>
 
        * main.c (init_switches): New function.  Convert option_data to
index 87bd8668a707b40f199e13ff1119c737c8c1841d..7e878e42c23ac88d76ef91bd94317489ca7dcb31 100644 (file)
--- a/src/ftp.c
+++ b/src/ftp.c
@@ -1630,7 +1630,10 @@ Already have correct symlink %s -> %s\n\n"),
        logprintf (LOG_NOTQUIET, _("%s: corrupt time-stamp.\n"), con->target);
 
       if (f->perms && f->type == FT_PLAINFILE && dlthis)
        logprintf (LOG_NOTQUIET, _("%s: corrupt time-stamp.\n"), con->target);
 
       if (f->perms && f->type == FT_PLAINFILE && dlthis)
-       chmod (con->target, f->perms);
+        {
+         if (opt.preserve_perm)
+           chmod (con->target, f->perms);
+        }
       else
        DEBUGP (("Unrecognized permissions for %s.\n", con->target));
 
       else
        DEBUGP (("Unrecognized permissions for %s.\n", con->target));
 
index c0f260ed4c5c7aba282b589336c607b261819128..abafecddd00d97e4fe42c2a6c8c4b2f8921d7c25 100644 (file)
@@ -185,6 +185,7 @@ static struct {
   { "passwd",          &opt.ftp_pass,          cmd_string },
   { "postdata",                &opt.post_data,         cmd_string },
   { "postfile",                &opt.post_file_name,    cmd_file },
   { "passwd",          &opt.ftp_pass,          cmd_string },
   { "postdata",                &opt.post_data,         cmd_string },
   { "postfile",                &opt.post_file_name,    cmd_file },
+  { "preservepermissions", &opt.preserve_perm,     cmd_boolean },
   { "progress",                &opt.progress_type,     cmd_spec_progress },
   { "proxypasswd",     &opt.proxy_passwd,      cmd_string },
   { "proxyuser",       &opt.proxy_user,        cmd_string },
   { "progress",                &opt.progress_type,     cmd_spec_progress },
   { "proxypasswd",     &opt.proxy_passwd,      cmd_string },
   { "proxyuser",       &opt.proxy_user,        cmd_string },
index 922d605b2f5c28918b3fa5871ece6620f32f37d3..eaeaa77057e4589419a646d54d9623a4c610cb7c 100644 (file)
@@ -212,6 +212,7 @@ struct cmdline_option option_data[] =
     { "passive-ftp", 0, OPT_BOOLEAN, "passiveftp", -1 },
     { "post-data", 0, OPT_VALUE, "postdata", -1 },
     { "post-file", 0, OPT_VALUE, "postfile", -1 },
     { "passive-ftp", 0, OPT_BOOLEAN, "passiveftp", -1 },
     { "post-data", 0, OPT_VALUE, "postdata", -1 },
     { "post-file", 0, OPT_VALUE, "postfile", -1 },
+    { "preserve-permissions", 0, OPT_BOOLEAN, "preservepermissions", -1 },
     { "progress", 0, OPT_VALUE, "progress", -1 },
     { "proxy", 'Y', OPT_BOOLEAN, "useproxy", -1 },
     { "proxy-passwd", 0, OPT_VALUE, "proxypasswd", -1 },
     { "progress", 0, OPT_VALUE, "progress", -1 },
     { "proxy", 'Y', OPT_BOOLEAN, "useproxy", -1 },
     { "proxy-passwd", 0, OPT_VALUE, "proxypasswd", -1 },
@@ -462,14 +463,15 @@ FTP options:\n\
 \n"), stdout);
   fputs (_("\
 Recursive retrieval:\n\
 \n"), stdout);
   fputs (_("\
 Recursive retrieval:\n\
-  -r,  --recursive          recursive download.\n\
-  -l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).\n\
-       --delete-after       delete files locally after downloading them.\n\
-  -k,  --convert-links      convert non-relative links to relative.\n\
-  -K,  --backup-converted   before converting file X, back up as X.orig.\n\
-  -m,  --mirror             shortcut option equivalent to -r -N -l inf -nr.\n\
-  -p,  --page-requisites    get all images, etc. needed to display HTML page.\n\
-       --strict-comments    turn on strict (SGML) handling of HTML comments.\n\
+  -r,  --recursive             recursive download.\n\
+  -l,  --level=NUMBER          maximum recursion depth (inf or 0 for infinite).\n\
+       --delete-after          delete files locally after downloading them.\n\
+  -k,  --convert-links         convert non-relative links to relative.\n\
+  -K,  --backup-converted      before converting file X, back up as X.orig.\n\
+  -m,  --mirror                shortcut option equivalent to -r -N -l inf -nr.\n\
+  -p,  --page-requisites       get all images, etc. needed to display HTML page.\n\
+       --strict-comments       turn on strict (SGML) handling of HTML comments.\n\
+       --preserve-permissions  preserve remote file permissions.\n\
 \n"), stdout);
   fputs (_("\
 Recursive accept/reject:\n\
 \n"), stdout);
   fputs (_("\
 Recursive accept/reject:\n\
index 6adeb6bdd91779d153bed28a3328c01ea68d6ec3..e107fb09987a1a9cbf1dec15537102cc475ba1d8 100644 (file)
@@ -196,6 +196,9 @@ struct options
 
   int strict_comments;         /* whether strict SGML comments are
                                   enforced.  */
 
   int strict_comments;         /* whether strict SGML comments are
                                   enforced.  */
+
+  int preserve_perm;           /* whether remote permissions are used
+                                 or that what is set by umask. */
 };
 
 extern struct options opt;
 };
 
 extern struct options opt;