/* Read and parse the .netrc file to get hosts, accounts, and passwords.
Copyright (C) 1996, Free Software Foundation, Inc.
-This file is part of Wget.
+This file is part of GNU Wget.
-This program is free software; you can redistribute it and/or modify
+GNU Wget is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
-This program is distributed in the hope that it will be useful,
+GNU Wget is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+along with Wget; if not, write to the Free Software
+Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+In addition, as a special exception, the Free Software Foundation
+gives permission to link the code of its release of Wget with the
+OpenSSL project's "OpenSSL" library (or with modified versions of it
+that use the same license as the "OpenSSL" library), and distribute
+the linked executables. You must obey the GNU General Public License
+in all respects for all of the code used other than "OpenSSL". If you
+modify this file, you may extend this exception to your version of the
+file, but you are not obligated to do so. If you do not wish to do
+so, delete this exception statement from your version. */
/* This file used to be kept in synch with the code in Fetchmail, but
the latter has diverged since. */
/* Acc and password found; all OK. */
if (*acc && *passwd)
return;
- if (!*acc && !slack_default)
- return;
/* Some data not given -- try finding the host. */
for (l = netrc_list; l; l = l->next)
{
null-terminated string once character to the left.
Used in processing \ and " constructs in the netrc file */
static void
-shift_left(char *string){
+shift_left(char *string)
+{
char *p;
for (p=string; *p; ++p)
p = line;
quote = 0;
+ /* Skip leading whitespace. */
+ while (*p && ISSPACE (*p))
+ p ++;
+
/* If the line is empty, then end any macro definition. */
if (last_token == tok_macdef && !*p)
/* End of macro if the line is empty. */
p ++;
}
- /* if field was quoted, squash the trailing quotation mark */
+ /* If field was quoted, squash the trailing quotation mark
+ and reset quote flag. */
if (quote)
- shift_left(p);
+ {
+ shift_left (p);
+ quote = 0;
+ }
/* Null-terminate the token, if it isn't already. */
if (*p)
while (l)
{
t = l->next;
- FREE_MAYBE (l->acc);
- FREE_MAYBE (l->passwd);
- FREE_MAYBE (l->host);
+ xfree_null (l->acc);
+ xfree_null (l->passwd);
+ xfree_null (l->host);
xfree (l);
l = t;
}