]> sjero.net Git - wget/commitdiff
Cleanup/bugfix for tilde patch.
authorMicah Cowan <micah@cowan.name>
Sun, 14 Jun 2009 00:04:31 +0000 (17:04 -0700)
committerMicah Cowan <micah@cowan.name>
Sun, 14 Jun 2009 00:04:31 +0000 (17:04 -0700)
src/ChangeLog
src/init.c

index e519a21c437641e388712c1861066233e3d62bd2..dbbc2c0e4820e817321b606a36331550023bc0ba 100644 (file)
@@ -1,3 +1,9 @@
+2009-06-13  Micah Cowan  <micah@cowan.name>
+
+       * init.c: Rename setval_internal_wrapper to setval_internal_tilde,
+       ensure we don't "replace" the tilde unless it's actually
+       present. Clean up some minor GNU style issues.
+
 2009-06-13  Julien Pichon  <julienpichon7@gmail.com>
 
        * init.c: Handle tilde-expansion in wgetrc commands, without
index da900cce926dcf978f9a50a89cb4bef48e7e5a95..bbe6b585a74926a2a1d9cb0f59e0bd3529a6016b 100644 (file)
@@ -468,7 +468,7 @@ enum parse_line {
 
 static enum parse_line parse_line (const char *, char **, char **, int *);
 static bool setval_internal (int, const char *, const char *);
-static bool setval_internal_wrapper (int, const char *, const char *);
+static bool setval_internal_tilde (int, const char *, const char *);
 
 /* Initialize variables from a wgetrc file.  Returns zero (failure) if
    there were errors in the file.  */
@@ -499,7 +499,7 @@ run_wgetrc (const char *file)
         {
         case line_ok:
           /* If everything is OK, set the value.  */
-          if (!setval_internal_wrapper (comind, com, val))
+          if (!setval_internal_tilde (comind, com, val))
             {
               fprintf (stderr, _("%s: Error in %s at line %d.\n"),
                        exec_name, file, ln);
@@ -679,7 +679,7 @@ setval_internal (int comind, const char *com, const char *val)
 }
 
 static bool
-setval_internal_wrapper (int comind, const char *com, const char *val)
+setval_internal_tilde (int comind, const char *com, const char *val)
 {
   bool ret;
   int homelen;
@@ -689,18 +689,19 @@ setval_internal_wrapper (int comind, const char *com, const char *val)
 
   /* We make tilde expansion for cmd_file and cmd_directory */
   if (((commands[comind].action == cmd_file) ||
-       (commands[comind].action == cmd_directory)) && ret)
+       (commands[comind].action == cmd_directory))
+      && ret && (*val == '~' && ISSEP (val[1])))
     {
       pstring = commands[comind].place;
-      home = home_dir();
+      home = home_dir ();
       if (home)
        {
-         homelen = strlen(home);
-         while (homelen && ISSEP(home[homelen - 1]))
+         homelen = strlen (home);
+         while (homelen && ISSEP (home[homelen - 1]))
             home[--homelen] = '\0';
 
          /* Skip the leading "~/". */
-         for (++val; ISSEP(*val); val++)
+         for (++val; ISSEP (*val); val++)
            ;
          *pstring = concat_strings (home, "/", val, (char *)0);
        }