Browse Source

Applied Ross's patch
* src/a2netcompat.h
* src/main.cc

Updated man page

Tatsuhiro Tsujikawa 18 years ago
parent
commit
a3afa89941
6 changed files with 221 additions and 268 deletions
  1. 4 0
      ChangeLog
  2. 3 0
      TODO
  3. 45 95
      doc/aria2c.1
  4. 94 97
      doc/aria2c.1.txt
  5. 2 1
      src/a2netcompat.h
  6. 73 75
      src/main.cc

+ 4 - 0
ChangeLog

@@ -64,6 +64,10 @@
 
 	Updated contact info.
 	* src/main.cc
+
+	Applied Ross's patch
+	* src/a2netcompat.h
+	* src/main.cc
 	
 2007-08-02  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
 

+ 3 - 0
TODO

@@ -37,3 +37,6 @@
 * net related headers and compatible macros and definition -> a2netcompat.h
 * time related headers and compatible macros and definition -> a2time.h
 * used globally -> common.h
+
+* replace threw with thrown
+* fix the bug that causes a remote metalink fails.

+ 45 - 95
doc/aria2c.1

@@ -1,11 +1,11 @@
 .\"     Title: aria2c
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets v1.72.0 <http://docbook.sf.net/>
-.\"      Date: 07/09/2007
+.\"      Date: 08/09/2007
 .\"    Manual: 
 .\"    Source: 
 .\"
-.TH "ARIA2C" "1" "07/09/2007" "" ""
+.TH "ARIA2C" "1" "08/09/2007" "" ""
 .\" disable hyphenation
 .nh
 .\" disable justification (adjust text to left margin only)
@@ -30,17 +30,17 @@ Please visit the project web site at http://aria2.sourceforge.net/
 .PP
 \-d, \-\-dir=DIR
 .RS 4
-The directory to store downloaded file.
+The directory to store the downloaded file.
 .RE
 .PP
 \-o, \-\-out=FILE
 .RS 4
-The file name for downloaded file.
+The file name of the downloaded file.
 .RE
 .PP
 \-l, \-\-log=LOG
 .RS 4
-The file path to store log. If
+The file name of the log file. If
 \fI\-\fR
 is specified, log is written to stdout.
 .RE
@@ -67,17 +67,12 @@ connections. Default:
 .PP
 \-\-retry\-wait=SEC
 .RS 4
-Set amount of time in second between requests for errors. Specify a value between
-\fI0\fR
-and
-\fI60\fR. Default:
-\fI5\fR
+Set the seconds to wait to retry after an error has occured. Specify a value between 0 and 60. Default: 5
 .RE
 .PP
 \-t, \-\-timeout=SEC
 .RS 4
-Set timeout in second. Default:
-\fI60\fR
+Set timeout in seconds. Default: 60
 .RE
 .PP
 \-m, \-\-max\-tries=N
@@ -90,27 +85,27 @@ means unlimited. Default:
 .PP
 \-\-http\-proxy=HOST:PORT
 .RS 4
-Use HTTP proxy server. This affects to all URLs.
+Use HTTP proxy server. This affects all URLs.
 .RE
 .PP
 \-\-http\-user=USER
 .RS 4
-Set HTTP user. This affects to all URLs.
+Set HTTP user. This affects all URLs.
 .RE
 .PP
 \-\-http\-passwd=PASSWD
 .RS 4
-Set HTTP password. This affects to all URLs.
+Set HTTP password. This affects all URLs.
 .RE
 .PP
 \-\-http\-proxy\-user=USER
 .RS 4
-Set HTTP proxy user. This affects to all URLs
+Set HTTP proxy user. This affects all URLs.
 .RE
 .PP
 \-\-http\-proxy\-passwd=PASSWD
 .RS 4
-Set HTTP proxy password. This affects to all URLs.
+Set HTTP proxy password. This affects all URLs.
 .RE
 .PP
 \-\-http\-proxy\-method=METHOD
@@ -134,19 +129,17 @@ is the only supported scheme. Default:
 .PP
 \-\-referer=REFERER
 .RS 4
-Set Referer. This affects to all URLs.
+Set Referer. This affects all URLs.
 .RE
 .PP
 \-\-ftp\-user=USER
 .RS 4
-Set FTP user. This affects to all URLs. Default:
-\fIanonymous\fR
+Set FTP user. This affects all URLs. Default: anonymous
 .RE
 .PP
 \-\-ftp\-passwd=PASSWD
 .RS 4
-Set FTP password. This affects to all URLs. Default:
-\fIARIA2USER@\fR
+Set FTP password. This affects all URLs. Default: ARIA2USER@
 .RE
 .PP
 \-\-ftp\-type=TYPE
@@ -177,11 +170,7 @@ or
 .PP
 \-\-lowest\-speed\-limit=SPEED
 .RS 4
-Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not care lowest speed limit. You can append
-\fIK\fR
-or
-\fIM\fR(1K = 1024, 1M = 1024K). This option does not affect BitTorrent download. Default:
-\fI0\fR
+Close connection if download speed is lower than or equal to this value(bytes per sec). 0 means aria2 does not have a lowest speed limit. You can append K or M(1K = 1024, 1M = 1024K). This option does not affect BitTorrent downloads. Default: 0
 .RE
 .PP
 \-\-max\-download\-limit=SPEED
@@ -197,43 +186,34 @@ or
 .PP
 \-\-file\-allocation=METHOD
 .RS 4
-Specify file allocation method.
-\fIMETHOD\fR
-is either
+Specify file allocation method. METHOD is either
 \fInone\fR
 or
 \fIprealloc\fR.
 \fInone\fR
 doesn't pre\-allocate file space.
 \fIprealloc\fR
-pre\-allocates file space before download begins. This may take some time depending on the size of file. Default:
-\fInone\fR
+pre\-allocates file space before download begins. This may take some time depending on the size of the file. Default: none
 .RE
 .PP
 \-\-allow\-overwrite=true|false
 .RS 4
-If this option set to
-\fIfalse\fR, aria2 doesn't download a file which already exists in the file system but its corresponding .aria2 file doesn't exist. Default:
-\fIfalse\fR
+If false, aria2 doesn't download a file which already exists but the corresponding .aria2 file doesn't exist. Default: false
 .RE
 .PP
 \-\-check\-integrity=true|false
 .RS 4
-Check file integrity by validating piece hash. This option makes effect in BitTorrent download and Metalink with chunk checksums. Use this option to redownload a damaged portion of file. You may need to specify
-\fI\-\-allow\-overwrite=true\fR
-option if .aria2 file doesn't exist. Default:
-\fIfalse\fR
+Check file integrity by validating piece hash. This option only affects in BitTorrent downloads and Metalink downloads with chunk checksums. Use this option to re\-download a damaged portion of a file. You may need to specify \-\-allow\-overwrite=true if the .aria2 file doesn't exist. Default: false
 .RE
 .PP
 \-\-realtime\-chunk\-checksum=true|false
 .RS 4
-Validate chunk checksum while downloading a file in Metalink mode. This option makes effect in Metalink with chunk checksums. Default:
-\fItrue\fR
+Validate chunk checksum while downloading a file in Metalink mode. This option on affects Metalink mode with chunk checksums. Default: true
 .RE
 .PP
 \-c, \-\-continue
 .RS 4
-Continue downloading a partially downloaded file. Use this option to resume a download started by web browsers or another programs which download files sequentially from the beginning. Currently this option is applicable to http(s)/ ftp downloads.
+Continue downloading a partially downloaded file. Use this option to resume a download started by a web browser or another program which downloads files sequentially from the beginning. Currently this option is only applicable to http(s)/ftp downloads.
 .RE
 .PP
 \-U, \-\-user\-agent=USER_AGENT
@@ -248,26 +228,19 @@ Disables netrc support.
 .PP
 \-i, \-\-input\-file=FILE
 .RS 4
-Downloads URIs found in
-\fIFILE\fR. You can specify multiple URIs for a single entity: deliminate URIs by Tab in a single line. Reads input from stdin when
+Downloads URIs found in FILE. You can specify multiple URIs for a single entity: separate URIs on a single line using the TAB character. Reads input from stdin when
 \fI\-\fR
 is specified.
 .RE
 .PP
 \-j, \-\-max\-concurrent\-downloads=N
 .RS 4
-Set maximum number of concurrent downloads. It should be used with
-\fI\-i\fR
-option. Default:
-\fI5\fR
+Set maximum number of concurrent downloads. It should be used with the \-i option. Default: 5
 .RE
 .PP
 \-\-load\-cookies=FILE
 .RS 4
-Load cookies from
-\fIFILE\fR. The format of
-\fIFILE\fR
-is one used by Netscape and Mozilla.
+Load cookies from FILE. The format of FILE is the same used by Netscape and Mozilla.
 .RE
 .PP
 \-S, \-\-show\-files
@@ -277,32 +250,24 @@ Print file listing of .torrent or .metalink file and exit.
 .PP
 \-\-select\-file=INDEX\&...
 .RS 4
-Set file to download by specifing its index. You can know file index through
-\fI\-\-show\-files\fR
-option. Multiple indexes can be specified by using
-\fI,\fR
-like "3,6". You can also use
+Set file to download by specifing its index. You can find the file index using the \-\-show\-files option. Multiple indexes can be specified by using
+\fI,\fR, for example: "3,6". You can also use
 \fI\-\fR
-to specify rangelike "1\-5".
+to specify a range: "1\-5".
 \fI,\fR
 and
 \fI\-\fR
-can be used together. When used with \-M option, index may vary depending on the query(see
-\fI\-\-metalink\-*\fR
-options).
+can be used together. When used with the \-M option, index may vary depending on the query(see \-\-metalink\-* options).
 .RE
 .PP
 \-T, \-\-torrent\-file=TORRENT_FILE
 .RS 4
-The file path to .torrent file.
+The path to the .torrent file.
 .RE
 .PP
 \-\-follow\-torrent=true|false
 .RS 4
-Setting this option to
-\fIfalse\fR
-prevents aria2 to enter BitTorrent mode even if the filename of downloaded file ends with .torrent. Default:
-\fItrue\fR
+Set to false to prevent aria2 from entering BitTorrent mode even if the filename of the downloaded file ends with .torrent. Default: true
 .RE
 .PP
 \-\-direct\-file\-mapping=true|false
@@ -313,8 +278,7 @@ Directly read from and write to each file mentioned in .torrent file. Default:
 .PP
 \-\-listen\-port=PORT
 .RS 4
-Set port number to listen to for peer connection. Default:
-\fI6881\-6999\fR
+Set TCP port number for BitTorrent downloads. Default: 6881\-6999
 .RE
 .PP
 \-\-max\-upload\-limit=SPEED
@@ -330,19 +294,12 @@ or
 .PP
 \-\-seed\-time=MINUTES
 .RS 4
-Specify seeding time in minutes. See also
-\fI\-\-seed\-ratio\fR
-option.
+Specify seeding time in minutes. Also see the \-\-seed\-ratio option.
 .RE
 .PP
 \-\-seed\-ratio=RATIO
 .RS 4
-Specify share ratio. Seed completed torrents until share ratio reaches
-\fIRATIO\fR.
-\fI1.0\fR
-is encouraged. If
-\fI\-\-seed\-time\fR
-option is specified along with this option, seeding ends when at least one of the conditions is satisfied.
+Specify share ratio. Seed completed torrents until share ratio reaches RATIO. 1.0 is encouraged. If \-\-seed\-time option is specified along with this option, seeding ends when at least one of the conditions is satisfied.
 .RE
 .PP
 \-M, \-\-metalink\-file=METALINK_FILE
@@ -358,17 +315,17 @@ The number of servers to connect to simultaneously. Default:
 .PP
 \-\-metalink\-version=VERSION
 .RS 4
-The version of file to download.
+The version of the file to download.
 .RE
 .PP
 \-\-metalink\-language=LANGUAGE
 .RS 4
-The language of file to download.
+The language of the file to download.
 .RE
 .PP
 \-\-metalink\-os=OS
 .RS 4
-The operating system the file is targeted.
+The operating system of the file to download.
 .RE
 .PP
 \-\-metalink\-location=LOCATION
@@ -378,10 +335,7 @@ The location of the prefered server.
 .PP
 \-\-follow\-metalink=true|false
 .RS 4
-Setting this option to
-\fIfalse\fR
-prevents aria2 to enter Metalink mode even if the filename of downloaded file ends with .metalink. Default:
-\fItrue\fR
+Set to false to prevent aria2 from entering Metalink mode even if the filename of the downloaded file ends with .metalink. Default: true
 .RE
 .PP
 \-v, \-\-version
@@ -396,30 +350,26 @@ Print this message and exit.
 .PP
 URL
 .RS 4
-You can specify multiple URLs. All URLs must point to the same file or downloading fails.
+You can specify multiple URLs. All URLs must point to the same file or downloading will fail.
 .RE
 .PP
 FILE
 .RS 4
-Specify files in multi\-file torrent to download. Use conjunction with
-\fI\-T\fR
-option. This arguments are ignored if you specify
-\fI\-\-select\-file\fR
-option.
+Specify files in multi\-file torrent to download. Use in conjunction with the \-T option. This argument is ignored if you specify the \-\-select\-file option.
 .RE
 .SH "EXAMPLES"
 .PP
-Download a file by 1 connection
+Download a file using 1 connection
 .RS 4
 aria2c http://AAA.BBB.CCC/file.zip
 .RE
 .PP
-Download a file by 2 connections
+Download a file using 2 connections
 .RS 4
 aria2c \-s 2 http://AAA.BBB.CCC/file.zip
 .RE
 .PP
-Download a file by 2 connections, each connects to a different server
+Download a file using 2 connections, each connects to a different server
 .RS 4
 aria2c http://AAA.BBB.CCC/file.zip http://DDD.EEE.FFF/GGG/file.zip
 .RE
@@ -449,7 +399,7 @@ Download a torrent
 aria2c \-o test.torrent http://AAA.BBB.CCC/file.torrent
 .RE
 .PP
-Download a torrent using local .torrent file
+Download a torrent using a local .torrent file
 .RS 4
 aria2c \-T test.torrent
 .RE
@@ -474,7 +424,7 @@ Metalink downloading
 aria2c \-\-lowest\-speed\-limit 10K http://AAA.BBB.CCC/file.metalink
 .RE
 .PP
-Download a file using local .metalink file
+Download a file using a local .metalink file
 .RS 4
 aria2c \-M test.metalink
 .RE

+ 94 - 97
doc/aria2c.1.txt

@@ -30,14 +30,13 @@ Please visit the project web site at http://aria2.sourceforge.net/
 OPTIONS
 -------
 -d, --dir=DIR::
-	The directory to store downloaded file.
+	The directory to store the downloaded file.
 
 -o, --out=FILE::
-	The file name for downloaded file.
+	The file name of the downloaded file.
 
 -l, --log=LOG::
-	The file path to store log. If '-' is specified, log is written to
-	stdout.
+	The file name of the log file. If '-' is specified, log is written to stdout.
 
 -D, --daemon::
 	Run as daemon.
@@ -49,32 +48,31 @@ OPTIONS
         Default: '1'
 
 --retry-wait=SEC::
-	Set amount of time in second between requests for errors. Specify a
-	value between '0' and '60'.
-	Default: '5'
+        Set the seconds to wait to retry after an error
+        has occured. Specify a value between 0 and 60.
+        Default: 5
 
 -t, --timeout=SEC::
-        Set timeout in second.
-	Default: '60'
+        Set timeout in seconds. Default: 60
 
  -m, --max-tries=N::
             Set number of tries. '0' means unlimited.
             Default: '5'
 
  --http-proxy=HOST:PORT::
-       Use HTTP proxy server. This affects to all URLs.
+        Use HTTP proxy server. This affects all URLs.
 
  --http-user=USER::
-             Set HTTP user. This affects to all URLs.
+             Set HTTP user. This affects all URLs.
 
  --http-passwd=PASSWD::
-         Set HTTP password. This affects to all URLs.
+         Set HTTP password. This affects all URLs.
 
  --http-proxy-user=USER::
-       Set HTTP proxy user. This affects to all URLs
+       Set HTTP proxy user. This affects all URLs.
 
  --http-proxy-passwd=PASSWD::
-   Set HTTP proxy password. This affects to all URLs.
+   Set HTTP proxy password. This affects all URLs.
 
  --http-proxy-method=METHOD::
     Set the method to use in proxy request.
@@ -87,15 +85,15 @@ OPTIONS
                               Default: 'basic'
 
  --referer=REFERER::
-            Set Referer. This affects to all URLs.
+            Set Referer. This affects all URLs.
 
  --ftp-user=USER::
-              Set FTP user. This affects to all URLs.
-              Default: 'anonymous'
+              Set FTP user. This affects all URLs.
+                              Default: anonymous
 
  --ftp-passwd=PASSWD::
-          Set FTP password. This affects to all URLs.
-          Default: 'ARIA2USER@'
+          Set FTP password. This affects all URLs.
+                              Default: ARIA2USER@
 
  --ftp-type=TYPE::
               Set FTP transfer type. TYPE is either 'binary'
@@ -111,12 +109,12 @@ OPTIONS
                               Default: 'tunnel'
 
  --lowest-speed-limit=SPEED::
-   Close connection if download speed is lower than
+  Close connection if download speed is lower than
                               or equal to this value(bytes per sec).
-                              0 means aria2 does not care lowest speed limit.
-                              You can append 'K' or 'M'(1K = 1024, 1M = 1024K).
-                              This option does not affect BitTorrent download.
-                              Default: '0'
+                              0 means aria2 does not have a lowest speed limit.
+                              You can append K or M(1K = 1024, 1M = 1024K).
+                              This option does not affect BitTorrent downloads.
+                              Default: 0
 
  --max-download-limit=SPEED::
    Set max download speed in bytes per sec.
@@ -125,43 +123,42 @@ OPTIONS
                               Default: '0'
 
  --file-allocation=METHOD::
-     Specify file allocation method. 'METHOD' is either
-                              'none' or 'prealloc'.
-                              'none' doesn't pre-allocate file space. 'prealloc'
-                              pre-allocates file space before download begins.
-                              This may take some time depending on the size of
-                              file.
-                              Default: 'none'
+     Specify file allocation method. METHOD is either
+                              'none' or 'prealloc'. 'none' doesn't pre-allocate
+                              file space. 'prealloc' pre-allocates file space
+                              before download begins. This may take some time
+                              depending on the size of the file.
+                              Default: none
 
  --allow-overwrite=true|false::
-  If this option set to 'false', aria2 doesn't
-                              download a file which already exists in the file
-                              system but its corresponding .aria2 file doesn't
-                              exist.
-                              Default: 'false'
+  If false, aria2 doesn't download a file which
+                              already exists but the corresponding .aria2 file
+                              doesn't exist.
+                              Default: false
 
  --check-integrity=true|false::
   Check file integrity by validating piece hash.
-                              This option makes effect in BitTorrent download
-                              and Metalink with chunk checksums.
-                              Use this option to redownload a damaged portion of
-                              file.
-                              You may need to specify '--allow-overwrite=true'
-                              option if .aria2 file doesn't exist.
-                              Default: 'false'
+                              This option only affects in BitTorrent downloads
+                              and Metalink downloads with chunk checksums.
+                              Use this option to re-download a damaged portion
+                              of a file.
+                              You may need to specify --allow-overwrite=true
+                              if the .aria2 file doesn't exist.
+                              Default: false
 
  --realtime-chunk-checksum=true|false::
-  Validate chunk checksum while downloading
-                              a file in Metalink mode. This option makes effect
-                              in Metalink with chunk checksums.
-                              Default: 'true'
+   Validate chunk checksum while
+                              downloading a file in Metalink mode. This option
+                              on affects Metalink mode with chunk checksums.
+                              Default: true
 
  -c, --continue::
-               Continue downloading a partially downloaded
-                         file. Use this option to resume a download started                              by web browsers or another programs
-                         which download files sequentially from the beginning.
-                              Currently this option is applicable to http(s)/
-                              ftp downloads.
+              Continue downloading a partially downloaded
+                              file. Use this option to resume a download
+                              started by a web browser or another program
+                              which downloads files sequentially from the
+                              beginning. Currently this option is only
+                              applicable to http(s)/ftp downloads.
 
  -U, --user-agent=USER_AGENT::
   Set user agent for http(s) downloads.
@@ -170,19 +167,19 @@ OPTIONS
                Disables netrc support.
 
  -i, --input-file=FILE::
-        Downloads URIs found in 'FILE'. You can specify
-        multiple URIs for a single entity: deliminate
-        URIs by Tab in a single line.
-        Reads input from stdin when '-' is specified.
+        Downloads URIs found in FILE. You can specify
+                              multiple URIs for a single entity: separate
+                              URIs on a single line using the TAB character.
+                              Reads input from stdin when '-' is specified.
 
  -j, --max-concurrent-downloads=N::
          Set maximum number of concurrent downloads.
-         It should be used with '-i' option.
-         Default: '5'
+                              It should be used with the -i option.
+                              Default: 5
 
  --load-cookies=FILE::
-          Load cookies from 'FILE'. The format of 'FILE' is
-                              one used by Netscape and Mozilla.
+          Load cookies from FILE. The format of FILE is
+                              the same used by Netscape and Mozilla.
 
  -S, --show-files::
      Print file listing of .torrent or .metalink file
@@ -190,31 +187,31 @@ OPTIONS
 
  --select-file=INDEX...::
        Set file to download by specifing its index.
-       You can know file index through '--show-files'
-       option. Multiple indexes can be specified by using
-       ',' like "3,6".
-       You can also use '-' to specify rangelike "1-5".
-       ',' and '-' can be used together.
-       When used with -M option, index may vary depending
-       on the query(see '--metalink-*' options).
+                              You can find the file index using the
+                              --show-files option. Multiple indexes can be
+                              specified by using ',', for example: "3,6".
+                              You can also use '-' to specify a range: "1-5".
+                              ',' and '-' can be used together.
+                              When used with the -M option, index may vary
+                              depending on the query(see --metalink-* options).
 
  -T, --torrent-file=TORRENT_FILE::
-  The file path to .torrent file.
+  The path to the .torrent file.
 
  --follow-torrent=true|false::
-  Setting this option to 'false' prevents aria2 to
-                              enter BitTorrent mode even if the filename of
-                              downloaded file ends with .torrent.
-                              Default: 'true'
+  Set to false to prevent aria2 from
+                              entering BitTorrent mode even if the filename of
+                              the downloaded file ends with .torrent.
+                              Default: true
 
  --direct-file-mapping=true|false::
- Directly read from and write to each file
+         Directly read from and write to each file
                               mentioned in .torrent file.
                               Default: 'true'
 
  --listen-port=PORT::
-           Set port number to listen to for peer connection.
-           Default: '6881-6999'
+         Set TCP port number for BitTorrent downloads.
+                              Default: 6881-6999
 
  --max-upload-limit=SPEED::
      Set max upload speed in bytes per sec.
@@ -223,15 +220,15 @@ OPTIONS
                               Default: '0'
 
  --seed-time=MINUTES::
-          Specify seeding time in minutes. See also
-                              '--seed-ratio' option.
+           Specify seeding time in minutes. Also see the
+                              --seed-ratio option.
 
  --seed-ratio=RATIO::
-           Specify share ratio. Seed completed torrents until
-                              share ratio reaches 'RATIO'. '1.0' is encouraged.
-                              If '--seed-time' option is specified along with
-                              this option, seeding ends when at least one of
-                              the conditions is satisfied.
+           Specify share ratio. Seed completed torrents
+                              until share ratio reaches RATIO. 1.0 is
+                              encouraged. If --seed-time option is specified
+                              along with this option, seeding ends when at
+                              least one of the conditions is satisfied.
 
  -M, --metalink-file=METALINK_FILE::
  The file path to .metalink file.
@@ -242,22 +239,22 @@ OPTIONS
                               Default: '5'
 
  --metalink-version=VERSION::
-   The version of file to download.
+   The version of the file to download.
 
  --metalink-language=LANGUAGE::
- The language of file to download.
+    The language of the file to download.
 
  --metalink-os=OS::
-             The operating system the file is targeted.
+   The operating system of the file to download.
 
  --metalink-location=LOCATION::
  The location of the prefered server.
 
  --follow-metalink=true|false::
-  Setting this option to 'false' prevents aria2 to
-                              enter Metalink mode even if the filename of
-                              downloaded file ends with .metalink.
-                              Default: 'true'
+   Set to false to prevent aria2 from
+                              entering Metalink mode even if the filename of
+                              the downloaded file ends with .metalink.
+                              Default: true
 
  -v, --version::
                 Print the version number and exit.
@@ -267,20 +264,20 @@ OPTIONS
 
 URL::
  You can specify multiple URLs. All URLs must point to the same file
- or downloading fails.
+ or downloading will fail.
 
 FILE::
- Specify files in multi-file torrent to download. Use conjunction with
- '-T' option. This arguments are ignored if you specify '--select-file' option.
+ Specify files in multi-file torrent to download. Use in conjunction with the
+ -T option. This argument is ignored if you specify the --select-file option.
 
 EXAMPLES
 --------
 
- Download a file by 1 connection::
+ Download a file using 1 connection::
   aria2c http://AAA.BBB.CCC/file.zip
- Download a file by 2 connections::
+ Download a file using 2 connections::
   aria2c -s 2 http://AAA.BBB.CCC/file.zip
- Download a file by 2 connections, each connects to a different server::
+ Download a file using 2 connections, each connects to a different server::
   aria2c http://AAA.BBB.CCC/file.zip http://DDD.EEE.FFF/GGG/file.zip
  You can mix up different protocols::
   aria2c http://AAA.BBB.CCC/file.zip ftp://DDD.EEE.FFF/GGG/file.zip
@@ -293,7 +290,7 @@ EXAMPLES
 
  Download a torrent::
   aria2c -o test.torrent http://AAA.BBB.CCC/file.torrent
- Download a torrent using local .torrent file::
+ Download a torrent using a local .torrent file::
   aria2c -T test.torrent
  Download only selected files::
   aria2c -T test.torrent dir/file1.zip dir/file2.zip
@@ -304,7 +301,7 @@ EXAMPLES
 
  Metalink downloading::
   aria2c --lowest-speed-limit 10K http://AAA.BBB.CCC/file.metalink
- Download a file using local .metalink file::
+ Download a file using a local .metalink file::
   aria2c -M test.metalink
  Metalink downloading with preferences::
   aria2c -M test.metalink --metalink-version=1.1.1 --metalink-language=en-US

+ 2 - 1
src/a2netcompat.h

@@ -74,8 +74,9 @@
 
 #ifdef __MINGW32__
 # define SOCKOPT_T const char
-# define HAVE_GETADDRINFO
 # undef HAVE_GETADDRINFO
+# undef HAVE_GAI_STRERROR
+# undef gai_strerror
 #else
 # define SOCKOPT_T socklen_t
 #endif // __MINGW32__

+ 73 - 75
src/main.cc

@@ -71,6 +71,7 @@ extern int optind, opterr, optopt;
 
 #ifdef ENABLE_METALINK
 #include "MetalinkRequestInfo.h"
+#include "Xml2MetalinkProcessor.h"
 #endif
 
 #ifdef HAVE_LIBSSL
@@ -125,10 +126,10 @@ void showUsage() {
 #endif // ENABLE_METALINK
   cout << endl;
   cout << _("Options:") << endl;
-  cout << _(" -d, --dir=DIR                The directory to store downloaded file.") << endl;
-  cout << _(" -o, --out=FILE               The file name for downloaded file.") << endl;
-  cout << _(" -l, --log=LOG                The file path to store log. If '-' is specified,\n"
-	    "                              log is written to stdout.") << endl;
+  cout << _(" -d, --dir=DIR                The directory to store the downloaded file.") << endl;
+  cout << _(" -o, --out=FILE               The file name of the downloaded file.") << endl;
+  cout << _(" -l, --log=LOG                The file name of the log file. If '-' is\n"
+	    "                              specified, log is written to stdout.") << endl;
 #ifdef HAVE_DAEMON
   cout << _(" -D, --daemon                 Run as daemon.") << endl;
 #endif // HAVE_DAEMON
@@ -137,10 +138,10 @@ void showUsage() {
 	    "                              Thus, aria2 connects to each URL with\n"
 	    "                              N connections.\n"
 	    "                              Default: 1") << endl;
-  cout << _(" --retry-wait=SEC             Set amount of time in second between requests\n"
-	    "                              for errors. Specify a value between 0 and 60.\n"
+  cout << _(" --retry-wait=SEC             Set the seconds to wait to retry after an error\n"
+	    "                              has occured. Specify a value between 0 and 60.\n"
 	    "                              Default: 5") << endl;
-  cout << _(" -t, --timeout=SEC            Set timeout in second. Default: 60") << endl;
+  cout << _(" -t, --timeout=SEC            Set timeout in seconds. Default: 60") << endl;
   cout << _(" -m, --max-tries=N            Set number of tries. 0 means unlimited.\n"
 	    "                              Default: 5") << endl;
   /*
@@ -149,22 +150,21 @@ void showUsage() {
 	    "                              value must be greater than or equal to\n"
 	    "                              1024. Default: 1M") << endl;
   */
-  cout << _(" --http-proxy=HOST:PORT       Use HTTP proxy server. This affects to all\n"
-	    "                              URLs.") << endl;
-  cout << _(" --http-user=USER             Set HTTP user. This affects to all URLs.") << endl;
-  cout << _(" --http-passwd=PASSWD         Set HTTP password. This affects to all URLs.") << endl;
-  cout << _(" --http-proxy-user=USER       Set HTTP proxy user. This affects to all URLs") << endl;
-  cout << _(" --http-proxy-passwd=PASSWD   Set HTTP proxy password. This affects to all URLs.") << endl;
+  cout << _(" --http-proxy=HOST:PORT       Use HTTP proxy server. This affects all URLs.") << endl;
+  cout << _(" --http-user=USER             Set HTTP user. This affects all URLs.") << endl;
+  cout << _(" --http-passwd=PASSWD         Set HTTP password. This affects all URLs.") << endl;
+  cout << _(" --http-proxy-user=USER       Set HTTP proxy user. This affects all URLs.") << endl;
+  cout << _(" --http-proxy-passwd=PASSWD   Set HTTP proxy password. This affects all URLs.") << endl;
   cout << _(" --http-proxy-method=METHOD   Set the method to use in proxy request.\n"
 	    "                              METHOD is either 'get' or 'tunnel'.\n"
 	    "                              Default: tunnel") << endl;
   cout << _(" --http-auth-scheme=SCHEME    Set HTTP authentication scheme. Currently, basic\n"
 	    "                              is the only supported scheme.\n"
 	    "                              Default: basic") << endl;
-  cout << _(" --referer=REFERER            Set Referer. This affects to all URLs.") << endl;
-  cout << _(" --ftp-user=USER              Set FTP user. This affects to all URLs.\n"
+  cout << _(" --referer=REFERER            Set Referer. This affects all URLs.") << endl;
+  cout << _(" --ftp-user=USER              Set FTP user. This affects all URLs.\n"
 	    "                              Default: anonymous") << endl;
-  cout << _(" --ftp-passwd=PASSWD          Set FTP password. This affects to all URLs.\n"
+  cout << _(" --ftp-passwd=PASSWD          Set FTP password. This affects all URLs.\n"
 	    "                              Default: ARIA2USER@") << endl;
   cout << _(" --ftp-type=TYPE              Set FTP transfer type. TYPE is either 'binary'\n"
 	    "                              or 'ascii'.\n"
@@ -175,105 +175,103 @@ void showUsage() {
 	    "                              Default: tunnel") << endl;
   cout << _(" --lowest-speed-limit=SPEED   Close connection if download speed is lower than\n"
 	    "                              or equal to this value(bytes per sec).\n"
-	    "                              0 means aria2 does not care lowest speed limit.\n"
+	    "                              0 means aria2 does not have a lowest speed limit.\n"
 	    "                              You can append K or M(1K = 1024, 1M = 1024K).\n"
 
-	    "                              This option does not affect BitTorrent download.\n"
+	    "                              This option does not affect BitTorrent downloads.\n"
 	    "                              Default: 0") << endl;
   cout << _(" --max-download-limit=SPEED   Set max download speed in bytes per sec.\n"
 	    "                              0 means unrestricted.\n"
 	    "                              You can append K or M(1K = 1024, 1M = 1024K).\n"
 	    "                              Default: 0") << endl;
   cout << _(" --file-allocation=METHOD     Specify file allocation method. METHOD is either\n"
-	    "                              'none' or 'prealloc'.\n"
-	    "                              'none' doesn't pre-allocate file space. 'prealloc'\n"
-	    "                              pre-allocates file space before download begins.\n"
-	    "                              This may take some time depending on the size of\n"
-	    "                              file.\n"
+	    "                              'none' or 'prealloc'. 'none' doesn't pre-allocate\n"
+	    "                              file space. 'prealloc' pre-allocates file space\n"
+	    "                              before download begins. This may take some time\n"
+	    "                              depending on the size of the file.\n"
 	    "                              Default: none") << endl;
-  cout << _(" --allow-overwrite=true|false  If this option set to false, aria2 doesn't\n"
-	    "                              download a file which already exists in the file\n"
-	    "                              system but its corresponding .aria2 file doesn't\n"
-	    "                              exist.\n"
+  cout << _(" --allow-overwrite=true|false If false, aria2 doesn't download a file which\n"
+  		"                              already exists but the corresponding .aria2 file\n"
+  		"                              doesn't exist.\n"
             "                              Default: false") << endl;
 #ifdef ENABLE_MESSAGE_DIGEST
   cout << _(" --check-integrity=true|false  Check file integrity by validating piece hash.\n"
-	    "                              This option makes effect in BitTorrent download\n"
-	    "                              and Metalink with chunk checksums.\n"
-	    "                              Use this option to redownload a damaged portion of\n"
-	    "                              file.\n"
+	    "                              This option only affects in BitTorrent downloads\n"
+	    "                              and Metalink downloads with chunk checksums.\n"
+	    "                              Use this option to re-download a damaged portion\n"
+	    "                              of a file.\n"
 	    "                              You may need to specify --allow-overwrite=true\n"
-	    "                              option if .aria2 file doesn't exist.\n"
+	    "                              if the .aria2 file doesn't exist.\n"
 	    "                              Default: false") << endl;
-  cout << _(" --realtime-chunk-checksum=true|false  Validate chunk checksum while downloading\n"
-	    "                              a file in Metalink mode. This option makes effect\n"
-	    "                              in Metalink with chunk checksums.\n"
+  cout << _(" --realtime-chunk-checksum=true|false  Validate chunk checksum while\n"
+	    "                              downloading a file in Metalink mode. This option\n"
+	    "                              on affects Metalink mode with chunk checksums.\n"
 	    "                              Default: true") << endl;
 #endif // ENABLE_MESSAGE_DIGEST
   cout << _(" -c, --continue               Continue downloading a partially downloaded\n"
-	    "                              file. Use this option to resume a download started\n"
-	    "                              by web browsers or another programs\n"
-	    "                              which download files sequentially from the\n"
-	    "                              beginning. Currently this option is applicable to\n"
-	    "                              http(s)/ftp downloads.") << endl;
+	    "                              file. Use this option to resume a download\n"
+	    "                              started by a web browser or another program\n"
+	    "                              which downloads files sequentially from the\n"
+	    "                              beginning. Currently this option is only\n"
+	    "                              applicable to http(s)/ftp downloads.") << endl;
   cout << _(" -U, --user-agent=USER_AGENT  Set user agent for http(s) downloads.") << endl;
   cout << _(" -n, --no-netrc               Disables netrc support.") << endl;
   cout << _(" -i, --input-file=FILE        Downloads URIs found in FILE. You can specify\n"
-	    "                              multiple URIs for a single entity: deliminate\n"
-	    "                              URIs by Tab in a single line.\n"
+	    "                              multiple URIs for a single entity: separate\n"
+	    "                              URIs on a single line using the TAB character.\n"
 	    "                              Reads input from stdin when '-' is specified.") << endl;
   cout << _(" -j, --max-concurrent-downloads=N Set maximum number of concurrent downloads.\n"
-	    "                              It should be used with -i option.\n"
+	    "                              It should be used with the -i option.\n"
 	    "                              Default: 5") << endl;
   cout << _(" --load-cookies=FILE          Load cookies from FILE. The format of FILE is\n"
-	    "                              one used by Netscape and Mozilla.") << endl;
+	    "                              the same used by Netscape and Mozilla.") << endl;
 #if defined ENABLE_BITTORRENT || ENABLE_METALINK
   cout << _(" -S, --show-files             Print file listing of .torrent or .metalink file\n"
 	    "                              and exit.") << endl;
   cout << _(" --select-file=INDEX...       Set file to download by specifing its index.\n"
-	    "                              You can know file index through --show-files\n"
-	    "                              option. Multiple indexes can be specified by using\n"
-	    "                              ',' like \"3,6\".\n"
-	    "                              You can also use '-' to specify rangelike \"1-5\".\n"
+	    "                              You can find the file index using the\n"
+	    "                              --show-files option. Multiple indexes can be\n"
+	    "                              specified by using ',', for example: \"3,6\".\n"
+	    "                              You can also use '-' to specify a range: \"1-5\".\n"
 	    "                              ',' and '-' can be used together.\n"
-	    "                              When used with -M option, index may vary depending\n"
-	    "                              on the query(see --metalink-* options).") << endl;
+	    "                              When used with the -M option, index may vary\n"
+	    "                              depending on the query(see --metalink-* options).") << endl;
 #endif // ENABLE_BITTORRENT || ENABLE_METALINK
 #ifdef ENABLE_BITTORRENT
-  cout << _(" -T, --torrent-file=TORRENT_FILE  The file path to .torrent file.") << endl;
-  cout << _(" --follow-torrent=true|false  Setting this option to false prevents aria2 to\n"
-	    "                              enter BitTorrent mode even if the filename of\n"
-	    "                              downloaded file ends with .torrent.\n"
+  cout << _(" -T, --torrent-file=TORRENT_FILE  The path to the .torrent file.") << endl;
+  cout << _(" --follow-torrent=true|false  Set to false to prevent aria2 from\n"
+	    "                              entering BitTorrent mode even if the filename of\n"
+	    "                              the downloaded file ends with .torrent.\n"
 	    "                              Default: true") << endl;
   cout << _(" --direct-file-mapping=true|false Directly read from and write to each file\n"
 	    "                              mentioned in .torrent file.\n"
 	    "                              Default: true") << endl;
-  cout << _(" --listen-port=PORT           Set port number to listen to for peer connection.\n"
+  cout << _(" --listen-port=PORT           Set TCP port number for BitTorrent downloads.\n"
 	    "                              Default: 6881-6999") << endl;
   cout << _(" --max-upload-limit=SPEED     Set max upload speed in bytes per sec.\n"
 	    "                              0 means unrestricted.\n"
 	    "                              You can append K or M(1K = 1024, 1M = 1024K).\n"
 	    "                              Default: 0") << endl;
-  cout << _(" --seed-time=MINUTES          Specify seeding time in minutes. See also\n"
+  cout << _(" --seed-time=MINUTES          Specify seeding time in minutes. Also see the\n"
 	    "                              --seed-ratio option.") << endl;
-  cout << _(" --seed-ratio=RATIO           Specify share ratio. Seed completed torrents until\n"
-	    "                              share ratio reaches RATIO. 1.0 is encouraged.\n"
-	    "                              If --seed-time option is specified along with\n"
-	    "                              this option, seeding ends when at least one of\n"
-	    "                              the conditions is satisfied.") << endl;
+  cout << _(" --seed-ratio=RATIO           Specify share ratio. Seed completed torrents\n"
+	    "                              until share ratio reaches RATIO. 1.0 is\n"
+	    "                              encouraged. If --seed-time option is specified\n"
+	    "                              along with this option, seeding ends when at\n"
+	    "                              least one of the conditions is satisfied.") << endl;
 #endif // ENABLE_BITTORRENT
 #ifdef ENABLE_METALINK
-  cout << _(" -M, --metalink-file=METALINK_FILE The file path to .metalink file.") << endl;
+  cout << _(" -M, --metalink-file=METALINK_FILE The file path to the .metalink file.") << endl;
   cout << _(" -C, --metalink-servers=NUM_SERVERS The number of servers to connect to\n"
 	    "                              simultaneously.\n"
 	    "                              Default: 5") << endl;
-  cout << _(" --metalink-version=VERSION   The version of file to download.") << endl;
-  cout << _(" --metalink-language=LANGUAGE The language of file to download.") << endl;
-  cout << _(" --metalink-os=OS             The operating system the file is targeted.") << endl;
+  cout << _(" --metalink-version=VERSION   The version of the file to download.") << endl;
+  cout << _(" --metalink-language=LANGUAGE The language of the file to download.") << endl;
+  cout << _(" --metalink-os=OS             The operating system of the file to download.") << endl;
   cout << _(" --metalink-location=LOCATION The location of the prefered server.") << endl;
-  cout << _(" --follow-metalink=true|false  Setting this option to false prevents aria2 to\n"
-	    "                              enter Metalink mode even if the filename of\n"
-	    "                              downloaded file ends with .metalink.\n"
+  cout << _(" --follow-metalink=true|false Set to false to prevent aria2 from\n"
+	    "                              entering Metalink mode even if the filename of\n"
+	    "                              the downloaded file ends with .metalink.\n"
 	    "                              Default: true") << endl;
 #endif // ENABLE_METALINK
   cout << _(" -v, --version                Print the version number and exit.") << endl;
@@ -281,20 +279,20 @@ void showUsage() {
   cout << endl;
   cout << "URL:" << endl;
   cout << _(" You can specify multiple URLs. All URLs must point to the same file\n"
-	    " or downloading fails.") << endl;
+	    " or downloading will fail.") << endl;
   cout << endl;
 #ifdef ENABLE_BITTORRENT
   cout << "FILE:" << endl;
-  cout << _(" Specify files in multi-file torrent to download. Use conjunction with\n"
-	    " -T option. This arguments are ignored if you specify --select-file option.") << endl;
+  cout << _(" Specify files in multi-file torrent to download. Use in conjunction with the\n"
+	    " -T option. This argument is ignored if you specify the --select-file option.") << endl;
   cout << endl;
 #endif // ENABLE_BITTORRENT
   cout << _("Examples:") << endl;
-  cout << _(" Download a file by 1 connection:") << endl;
+  cout << _(" Download a file using 1 connection:") << endl;
   cout << "  aria2c http://AAA.BBB.CCC/file.zip" << endl;
-  cout << _(" Download a file by 2 connections:") << endl;
+  cout << _(" Download a file using 2 connections:") << endl;
   cout << "  aria2c -s 2 http://AAA.BBB.CCC/file.zip" << endl;
-  cout << _(" Download a file by 2 connections, each connects to a different server:") << endl;
+  cout << _(" Download a file using 2 connections, each connects to a different server:") << endl;
   cout << "  aria2c http://AAA.BBB.CCC/file.zip http://DDD.EEE.FFF/GGG/file.zip" << endl;
   cout << _(" You can mix up different protocols:") << endl;
   cout << "  aria2c http://AAA.BBB.CCC/file.zip ftp://DDD.EEE.FFF/GGG/file.zip" << endl;
@@ -302,7 +300,7 @@ void showUsage() {
   cout << endl;
   cout << _(" Download a torrent:") << endl;
   cout << "  aria2c -o test.torrent http://AAA.BBB.CCC/file.torrent" << endl;
-  cout << _(" Download a torrent using local .torrent file:") << endl;
+  cout << _(" Download a torrent using a local .torrent file:") << endl;
   cout << "  aria2c -T test.torrent" << endl;
   cout << _(" Download only selected files:") << endl;
   cout << "  aria2c -T test.torrent dir/file1.zip dir/file2.zip" << endl;