diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile | 2 | ||||
-rwxr-xr-x | src/curl | bin | 1830293 -> 1836849 bytes | |||
-rw-r--r-- | src/hugehelp.c | 351 | ||||
-rw-r--r-- | src/main.c | 13 |
4 files changed, 275 insertions, 91 deletions
diff --git a/src/Makefile b/src/Makefile index a4b373e22..61904fe59 100644 --- a/src/Makefile +++ b/src/Makefile @@ -85,7 +85,7 @@ curl_LDADD = ../lib/libcurl.a curl_DEPENDENCIES = ../lib/libcurl.a BUILT_SOURCES = hugehelp.c CLEANFILES = hugehelp.c -NROFF = /bin/nroff +NROFF = gnroff EXTRA_DIST = mkhelp.pl Makefile.vc6 diff --git a/src/hugehelp.c b/src/hugehelp.c index 390221935..5332776a2 100644 --- a/src/hugehelp.c +++ b/src/hugehelp.c @@ -18,10 +18,10 @@ puts ( "DESCRIPTION\n" " curl is a client to get documents/files from servers, using\n" " any of the supported protocols. The command is designed to\n" -" work without user interaction or any kind of interactivity.\n" +" work without user interaction or any kind of interactivity.\n" "\n" -" curl offers a busload of useful tricks like proxy support,\n" -" user authentication, ftp upload, HTTP post, SSL (https:)\n" +" curl offers a busload of useful tricks like proxy support,\n" +" user authentication, ftp upload, HTTP post, SSL (https:)\n" " connections, cookies, file transfer resume and more.\n" "\n" "URL\n" @@ -33,7 +33,7 @@ puts ( "\n" " http://site.{one,two,three}.com\n" "\n" -" or you can get sequences of alphanumeric series by using []\n" +" or you can get sequences of alphanumeric series by using []\n" " as in:\n" "\n" " ftp://ftp.numericals.com/file[1-100].txt\n" @@ -41,11 +41,11 @@ puts ( " zeros)\n" " ftp://ftp.letters.com/file[a-z].txt\n" "\n" -" It is possible to specify up to 9 sets or series for a URL,\n" +" It is possible to specify up to 9 sets or series for a URL,\n" " but no nesting is supported at the moment:\n" "\n" -" http://www.any.org/archive[1996-1999]/volume[1-\n" -" 4]part{a,b,c,index}.html\n" +" http://www.any.org/archive[1996-1999]/vol\n" +" ume[1-4]part{a,b,c,index}.html\n" "\n" "OPTIONS\n" " -a/--append\n" @@ -54,15 +54,15 @@ puts ( " the file doesn't exist, it will be created.\n" "\n" " -A/--user-agent <agent string>\n" -" (HTTP) Specify the User-Agent string to send to the\n" -" HTTP server. Some badly done CGIs fail if its not set\n" -" to \"Mozilla/4.0\". To encode blanks in the string, sur-\n" -" round the string with single quote marks. This can\n" +" (HTTP) Specify the User-Agent string to send to the\n" +" HTTP server. Some badly done CGIs fail if its not set\n" +" to \"Mozilla/4.0\". To encode blanks in the string, sur\n" +" round the string with single quote marks. This can\n" " also be set with the -H/--header flag of course.\n" " -b/--cookie <name=data>\n" " (HTTP) Pass the data to the HTTP server as a cookie. It\n" -" is supposedly the data previously received from the\n" -" server in a \"Set-Cookie:\" line. The data should be in\n" +" is supposedly the data previously received from the\n" +" server in a \"Set-Cookie:\" line. The data should be in\n" " the format \"NAME1=VALUE1; NAME2=VALUE2\".\n" "\n" " If no '=' letter is used in the line, it is treated as\n" @@ -102,20 +102,20 @@ puts ( " servers.\n" "\n" " -d/--data <data>\n" -" (HTTP) Sends the specified data in a POST request to\n" -" the HTTP server. Note that the data is sent exactly as\n" +" (HTTP) Sends the specified data in a POST request to\n" +" the HTTP server. Note that the data is sent exactly as\n" " specified with no extra processing. The data is\n" -" expected to be \"url-encoded\". This will cause curl to\n" -" pass the data to the server using the content-type\n" +" expected to be \"url-encoded\". This will cause curl to\n" +" pass the data to the server using the content-type\n" " application/x-www-form-urlencoded. Compare to -F.\n" "\n" " If you start the data with the letter @, the rest\n" " should be a file name to read the data from, or - if\n" -" you want curl to read the data from stdin. The con-\n" +" you want curl to read the data from stdin. The con\n" " tents of the file must already be url-encoded.\n" "\n" " -D/--dump-header <file>\n" -" (HTTP/FTP) Write the HTTP headers to this file. Write\n" +" (HTTP/FTP) Write the HTTP headers to this file. Write\n" " the FTP file info to this file if -I/--head is used.\n" "\n" " -e/--referer <URL>\n" @@ -128,17 +128,17 @@ puts ( " file when getting a file with HTTPS. The certificate\n" " must be in PEM format. If the optional password isn't\n" " specified, it will be queried for on the terminal. Note\n" -" that this certificate is the private key and the\n" -" private certificate concatenated!\n" +" that this certificate is the private key and the pri\n" +" vate certificate concatenated!\n" "\n" " -f/--fail\n" -" (HTTP) Fail silently (no output at all) on server\n" -" errors. This is mostly done like this to better enable\n" -" scripts etc to better deal with failed attempts. In\n" -" normal cases when a HTTP server fails to deliver a\n" -" document, it returns a HTML document stating so (which\n" -" often also describes why and more). This flag will\n" -" prevent curl from outputting that and fail silently\n" +" (HTTP) Fail silently (no output at all) on server\n" +" errors. This is mostly done like this to better enable\n" +" scripts etc to better deal with failed attempts. In\n" +" normal cases when a HTTP server fails to deliver a doc\n" +" ument, it returns a HTML document stating so (which\n" +" often also describes why and more). This flag will pre\n" +" vent curl from outputting that and fail silently\n" " instead.\n" "\n" " -F/--form <name=content>\n" @@ -148,7 +148,7 @@ puts ( " according to RFC1867. This enables uploading of binary\n" " files etc. To force the 'content' part to be read from\n" " a file, prefix the file name with an @ sign. Example,\n" -" to send your password file to the server, where 'pass-\n" +" to send your password file to the server, where 'pass\n" " word' is the name of the form-field to which\n" " /etc/passwd will be the input:\n" "\n" @@ -162,24 +162,24 @@ puts ( "\n" " -H/--header <header>\n" " (HTTP) Extra header to use when getting a web page. You\n" -" may specify any number of extra headers. Note that if\n" -" you should add a custom header that has the same name\n" -" as one of the internal ones curl would use, your exter-\n" -" nally set header will be used instead of the internal\n" -" one. This allows you to make even trickier stuff than\n" -" curl would normally do. You should not replace inter-\n" -" nally set headers without knowing perfectly well what\n" +" may specify any number of extra headers. Note that if\n" +" you should add a custom header that has the same name\n" +" as one of the internal ones curl would use, your exter\n" +" nally set header will be used instead of the internal\n" +" one. This allows you to make even trickier stuff than\n" +" curl would normally do. You should not replace inter\n" +" nally set headers without knowing perfectly well what\n" " you're doing.\n" "\n" " -i/--include\n" -" (HTTP) Include the HTTP-header in the output. The\n" -" HTTP-header includes things like server-name, date of\n" -" the document, HTTP-version and more...\n" +" (HTTP) Include the HTTP-header in the output. The HTTP-\n" +" header includes things like server-name, date of the\n" +" document, HTTP-version and more...\n" "\n" " -I/--head\n" -" (HTTP/FTP) Fetch the HTTP-header only! HTTP-servers\n" +" (HTTP/FTP) Fetch the HTTP-header only! HTTP-servers\n" " feature the command HEAD which this uses to get nothing\n" -" but the header of a document. When used on a FTP file,\n" +" but the header of a document. When used on a FTP file,\n" " curl displays the file size only.\n" "\n" " -K/--config <config file>\n" @@ -190,7 +190,7 @@ puts ( " first column of a config line is a '#' character, the\n" " rest of the line will be treated as a comment.\n" "\n" -" Specify the filename as '-' to make curl read the file\n" +" Specify the filename as '-' to make curl read the file\n" " from stdin.\n" "\n" " -l/--list-only\n" @@ -209,22 +209,22 @@ puts ( " shown.\n" "\n" " -m/--max-time <seconds>\n" -" Maximum time in seconds that you allow the whole opera-\n" +" Maximum time in seconds that you allow the whole opera\n" " tion to take. This is useful for preventing your batch\n" -" jobs from hanging for hours due to slow networks or\n" -" links going down. This doesn't work properly in win32\n" +" jobs from hanging for hours due to slow networks or\n" +" links going down. This doesn't work properly in win32\n" " systems.\n" " -M/--manual\n" " Manual. Display the huge help text.\n" "\n" " -n/--netrc\n" -" Makes curl scan the .netrc file in the user's home\n" -" directory for login name and password. This is typi-\n" -" cally used for ftp on unix. If used with http, curl\n" +" Makes curl scan the .netrc file in the user's home\n" +" directory for login name and password. This is typi\n" +" cally used for ftp on unix. If used with http, curl\n" " will enable user authentication. See netrc(4) for\n" -" details on the file format. Curl will not complain if\n" -" that file hasn't the right permissions (it should not\n" -" be world nor group readable). The environment variable\n" +" details on the file format. Curl will not complain if\n" +" that file hasn't the right permissions (it should not\n" +" be world nor group readable). The environment variable\n" " \"HOME\" is used to find the home directory.\n" "\n" " A quick and very simple example of how to setup a\n" @@ -252,7 +252,7 @@ puts ( " the path is cut off.)\n" "\n" " -P/--ftpport <address>\n" -" (FTP) Reverses the initiator/listenor roles when con-\n" +" (FTP) Reverses the initiator/listenor roles when con\n" " necting with ftp. This switch makes Curl use the PORT\n" " command instead of PASV. In practice, PORT tells the\n" " server to connect to the client's specified address and\n" @@ -266,18 +266,24 @@ puts ( " \"-\" - (any single-letter string) to make it pick\n" " the machine's default\n" " -q If used as the first parameter on the command line, the\n" -" $HOME/.curlrc file will not be read and used as a con-\n" +" $HOME/.curlrc file will not be read and used as a con\n" " fig file.\n" "\n" " -Q/--quote <comand>\n" " (FTP) Send an arbitrary command to the remote FTP\n" " server, by using the QUOTE command of the server. Not\n" " all servers support this command, and the set of QUOTE\n" -" commands are server specific!\n" +" commands are server specific! Quote commands are sent\n" +" BEFORE the transfer is taking place. To make commands\n" +" take place after a successful transfer, prefix them\n" +" with a dash '-'. You may specify any amount of commands\n" +" to be run before and after the transfer. If the server\n" +" returns failure for one of the commands, the entire\n" +" operation will be aborted.\n" "\n" " -r/--range <range>\n" -" (HTTP/FTP) Retrieve a byte range (i.e a partial docu-\n" -" ment) from a HTTP/1.1 or FTP server. Ranges can be\n" +" (HTTP/FTP) Retrieve a byte range (i.e a partial docu\n" +" ment) from a HTTP/1.1 or FTP server. Ranges can be\n" " specified in a number of ways.\n" " 0-499 - specifies the first 500 bytes\n" " 500-999 - specifies the second 500 bytes\n" @@ -286,24 +292,24 @@ puts ( " and forward\n" " 0-0,-1 - specifies the first and last byte\n" " only(*)(H)\n" -" 500-700,600-799 - specifies 300 bytes from offset\n" +" 500-700,600-799 - specifies 300 bytes from offset\n" " 500(H)\n" " 100-199,500-599 - specifies two separate 100 bytes\n" " ranges(*)(H)\n" "\n" -" (*) = NOTE that this will cause the server to reply\n" +" (*) = NOTE that this will cause the server to reply\n" " with a multipart response!\n" "\n" " You should also be aware that many HTTP/1.1 servers do\n" " not have this feature enabled, so that when you attempt\n" -" to get a range, you'll instead get the whole document.\n" +" to get a range, you'll instead get the whole document.\n" "\n" -" FTP range downloads only support the simple syntax\n" -" 'start-stop' (optionally with one of the numbers omit-\n" +" FTP range downloads only support the simple syntax\n" +" 'start-stop' (optionally with one of the numbers omit\n" " ted). It depends on the non-RFC command SIZE.\n" "\n" " -s/--silent\n" -" Silent mode. Don't show progress meter or error mes-\n" +" Silent mode. Don't show progress meter or error mes\n" " sages. Makes Curl mute.\n" "\n" " -S/--show-error\n" @@ -311,9 +317,9 @@ puts ( " it fails.\n" "\n" " -t/--upload\n" -" Transfer the stdin data to the specified file. Curl\n" -" will read everything from stdin until EOF and store\n" -" with the supplied name. If this is used on a http(s)\n" +" Transfer the stdin data to the specified file. Curl\n" +" will read everything from stdin until EOF and store\n" +" with the supplied name. If this is used on a http(s)\n" " server, the PUT command will be used.\n" "\n" " -T/--upload-file <file>\n" @@ -334,28 +340,28 @@ puts ( " interactively.\n" "\n" " -U/--proxy-user <user:password>\n" -" Specify user and password to use for Proxy authentica-\n" +" Specify user and password to use for Proxy authentica\n" " tion. If no password is specified, curl will ask for it\n" " interactively.\n" "\n" " -v/--verbose\n" -" Makes the fetching more verbose/talkative. Mostly\n" -" usable for debugging. Lines starting with '>' means\n" +" Makes the fetching more verbose/talkative. Mostly\n" +" usable for debugging. Lines starting with '>' means\n" " data sent by curl, '<' means data received by curl that\n" -" is hidden in normal cases and lines starting with '*'\n" +" is hidden in normal cases and lines starting with '*'\n" " means additional info provided by curl.\n" "\n" " -V/--version\n" -" Displays the full version of curl, libcurl and other\n" +" Displays the full version of curl, libcurl and other\n" " 3rd party libraries linked with the executable.\n" "\n" " -x/--proxy <proxyhost[:port]>\n" -" Use specified proxy. If the port number is not speci-\n" +" Use specified proxy. If the port number is not speci\n" " fied, it is assumed at port 1080.\n" "\n" " -X/--request <command>\n" -" (HTTP) Specifies a custom request to use when communi-\n" -" cating with the HTTP server. The specified request\n" +" (HTTP) Specifies a custom request to use when communi\n" +" cating with the HTTP server. The specified request\n" " will be used instead of the standard GET. Read the HTTP\n" " 1.1 specification for details and explanations.\n" "\n" @@ -363,37 +369,37 @@ puts ( " LIST when doing file lists with ftp.\n" "\n" " -y/--speed-time <speed>\n" -" Speed Limit. If a download is slower than this given\n" -" speed, in bytes per second, for Speed Time seconds it\n" -" gets aborted. Speed Time is set with -Y and is 30 if\n" +" Speed Limit. If a download is slower than this given\n" +" speed, in bytes per second, for Speed Time seconds it\n" +" gets aborted. Speed Time is set with -Y and is 30 if\n" " not set.\n" "\n" " -Y/--speed-limit <time>\n" " Speed Time. If a download is slower than Speed Limit\n" -" bytes per second during a Speed Time period, the down-\n" +" bytes per second during a Speed Time period, the down\n" " load gets aborted. If Speed Time is used, the default\n" " Speed Limit will be 1 unless set with -y.\n" "\n" " -z/--time-cond <date expression>\n" -" (HTTP) Request to get a file that has been modified\n" -" later than the given time and date, or one that has\n" +" (HTTP) Request to get a file that has been modified\n" +" later than the given time and date, or one that has\n" " been modified before that time. The date expression can\n" " be all sorts of date strings or if it doesn't match any\n" -" internal ones, it tries to get the time from a given\n" -" file name instead! See the GNU date(1) man page for\n" +" internal ones, it tries to get the time from a given\n" +" file name instead! See the GNU date(1) man page for\n" " date expression details.\n" "\n" -" Start the date expression with a dash (-) to make it\n" -" request for a document that is older than the given\n" +" Start the date expression with a dash (-) to make it\n" +" request for a document that is older than the given\n" " date/time, default is a document that is newer than the\n" " specified date/time.\n" "\n" " -3/--sslv3\n" -" (HTTPS) Forces curl to use SSL version 3 when negotiat-\n" +" (HTTPS) Forces curl to use SSL version 3 when negotiat\n" " ing with a remote SSL server.\n" "\n" " -2/--sslv2\n" -" (HTTPS) Forces curl to use SSL version 2 when negotiat-\n" +" (HTTPS) Forces curl to use SSL version 2 when negotiat\n" " ing with a remote SSL server.\n" "\n" " -#/--progress-bar\n" @@ -401,7 +407,7 @@ puts ( " bar instead of the default statistics.\n" "\n" " --crlf\n" -" (FTP) Convert LF to CRLF in upload. Useful for MVS\n" +" (FTP) Convert LF to CRLF in upload. Useful for MVS\n" " (OS/390).\n" "\n" " --stderr <file>\n" @@ -413,13 +419,13 @@ puts ( "FILES\n" " ~/.curlrc\n" " Default config file.\n" -"\n" "ENVIRONMENT\n" " HTTP_PROXY [protocol://]<host>[:port]\n" " Sets proxy server to use for HTTP.\n" "\n" " HTTPS_PROXY [protocol://]<host>[:port]\n" " Sets proxy server to use for HTTPS.\n" +"\n" " FTP_PROXY [protocol://]<host>[:port]\n" " Sets proxy server to use for FTP.\n" "\n" @@ -427,12 +433,179 @@ puts ( " Sets proxy server to use for GOPHER.\n" "\n" " ALL_PROXY [protocol://]<host>[:port]\n" -" Sets proxy server to use if no protocol-specific proxy\n" +" Sets proxy server to use if no protocol-specific proxy\n" " is set.\n" "\n" " NO_PROXY <comma-separated list of hosts>\n" " list of host names that shouldn't go through any proxy.\n" -" If se\n" +" If set to a asterisk '*' only, it matches all hosts.\n" +"\n" +" COLUMNS <integer>\n" +" The width of the terminal. This variable only affects\n" +" curl when the --progress-bar option is used.\n" +"\n" +"EXIT CODES\n" +" There exists a bunch of different error codes and their cor\n" +" responding error messages that may appear during bad condi\n" +" tions. At the time of this writing, the exit codes are:\n" +"\n" +" 1 Unsupported protocol. This build of curl has no support\n" +" for this protocol.\n" +"\n" +" 2 Failed to initialize.\n" +"\n" +" 3 URL malformat. The syntax was not correct.\n" +"\n" +" 4 URL user malformatted. The user-part of the URL syntax\n" +" was not correct.\n" +"\n" +" 5 Couldn't resolve proxy. The given proxy host could not\n" +" be resolved.\n" +"\n" +" 6 Couldn't resolve host. The given remote host was not\n" +" resolved.\n" +"\n" +" 7 Failed to connect to host.\n" +"\n" +" 8 FTP weird server reply. The server sent data curl\n" +" couldn't parse.\n" +"\n" +" 9 FTP access denied. The server denied login.\n" +" 10 FTP user/password incorrect. Either one or both were\n" +" not accepted by the server.\n" +"\n" +" 11 FTP weird PASS reply. Curl couldn't parse the reply\n" +" sent to the PASS request.\n" +"\n" +" 12 FTP weird USER reply. Curl couldn't parse the reply\n" +" sent to the USER request.\n" +"\n" +" 13 FTP weird PASV reply, Curl couldn't parse the reply\n" +" sent to the PASV request.\n" +"\n" +" 14 FTP weird 227 formay. Curl couldn't parse the 227-line\n" +" the server sent.\n" +"\n" +" 15 FTP can't get host. Couldn't resolve the host IP we got\n" +" in the 227-line.\n" +"\n" +" 16 FTP can't reconnect. Couldn't connect to the host we\n" +" got in the 227-line.\n" +"\n" +" 17 FTP couldn't set binary. Couldn't change transfer\n" +" method to binary.\n" +"\n" +" 18 Partial file. Only a part of the file was transfered.\n" +"\n" +" 19 FTP couldn't RETR file. The RETR command failed.\n" +"\n" +" 20 FTP write error. The transfer was reported bad by the\n" +" server.\n" +"\n" +" 21 FTP quote error. A quote command returned error from\n" +" the server.\n" +"\n" +" 22 HTTP not found. The requested page was not found. This\n" +" return code only appears if --fail is used.\n" +"\n" +" 23 Write error. Curl couldn't write data to a local\n" +" filesystem or similar.\n" +"\n" +" 24 Malformat user. User name badly specified.\n" +"\n" +" 25 FTP couldn't STOR file. The server denied the STOR\n" +" operation.\n" +"\n" +" 26 Read error. Various reading problems.\n" +"\n" +" 27 Out of memory. A memory allocation request failed.\n" +"\n" +" 28 Operation timeout. The specified time-out period was\n" +" reached according to the conditions.\n" +" 29 FTP couldn't set ASCII. The server returned an unknown\n" +" reply.\n" +"\n" +" 30 FTP PORT failed. The PORT command failed.\n" +"\n" +" 31 FTP couldn't use REST. The REST command failed.\n" +"\n" +" 32 FTP couldn't use SIZE. The SIZE command failed. The\n" +" command is an extension to the original FTP spec RFC\n" +" 959.\n" +"\n" +" 33 HTTP range error. The range \"command\" didn't work.\n" +"\n" +" 34 HTTP post error. Internal post-request generation\n" +" error.\n" +"\n" +" 35 SSL connect error. The SSL handshaking failed.\n" +"\n" +" 36 FTP bad download resume. Couldn't continue an earlier\n" +" aborted download.\n" +"\n" +" 37 FILE couldn't read file. Failed to open the file. Per\n" +" missions?\n" +"\n" +" 38 LDAP cannot bind. LDAP bind operation failed.\n" +"\n" +" 39 LDAP search failed.\n" +"\n" +" 40 Library not found. The LDAP library was not found.\n" +"\n" +" 41 Function not found. A required LDAP function was not\n" +" found.\n" +"\n" +" XX There will appear more error codes here in future\n" +" releases. The existing ones are meant to never change.\n" +"\n" +"BUGS\n" +" If you do find any (or have other suggestions), mail Daniel\n" +" Stenberg <Daniel.Stenberg@haxx.nu>.\n" +"\n" +"AUTHORS / CONTRIBUTORS\n" +" - Daniel Stenberg <Daniel.Stenberg@haxx.nu>\n" +" - Rafael Sagula <sagula@inf.ufrgs.br>\n" +" - Sampo Kellomaki <sampo@iki.fi>\n" +" - Linas Vepstas <linas@linas.org>\n" +" - Bjorn Reese <breese@mail1.stofanet.dk>\n" +" - Johan Anderson <johan@homemail.com>\n" +" - Kjell Ericson <Kjell.Ericson@sth.frontec.se>\n" +" - Troy Engel <tengel@sonic.net>\n" +" - Ryan Nelson <ryan@inch.com>\n" +" - Bjorn Stenberg <Bjorn.Stenberg@sth.frontec.se>\n" +" - Angus Mackay <amackay@gus.ml.org>\n" +" - Eric Young <eay@cryptsoft.com>\n" +" - Simon Dick <simond@totally.irrelevant.org>\n" +" - Oren Tirosh <oren@monty.hishome.net>\n" +" - Steven G. Johnson <stevenj@alum.mit.edu>\n" +" - Gilbert Ramirez Jr. <gram@verdict.uthscsa.edu>\n" +" - Andrés García <ornalux@redestb.es>\n" +" - Douglas E. Wegscheid <wegscd@whirlpool.com>\n" +" - Mark Butler <butlerm@xmission.com>\n" +" - Eric Thelin <eric@generation-i.com>\n" +" - Marc Boucher <marc@mbsi.ca>\n" +" - Greg Onufer <Greg.Onufer@Eng.Sun.COM>\n" +" - Doug Kaufman <dkaufman@rahul.net>\n" +" - David Eriksson <david@2good.com>\n" +" - Ralph Beckmann <rabe@uni-paderborn.de>\n" +" - T. Yamada <tai@imasy.or.jp>\n" +" - Lars J. Aas <larsa@sim.no>\n" +" - Jörn Hartroth <Joern.Hartroth@telekom.de>\n" +" - Matthew Clarke <clamat@van.maves.ca>\n" +" - Linus Nielsen <Linus.Nielsen@haxx.nu>\n" +" - Felix von Leitner <felix@convergence.de>\n" +" - Dan Zitter <dzitter@zitter.net>\n" +" - Jongki Suwandi <Jongki.Suwandi@eng.sun.com>\n" +" - Chris Maltby <chris@aurema.com>\n" +"\n" +"WWW\n" +" http://curl.haxx.nu\n" +"\n" +"FTP\n" +" ftp://ftp.sunet.se/pub/www/utilities/curl/\n" +"\n" +"SEE ALSO\n" +" ftp(1), wget(1), snarf(1)\n" "\n" "LATEST VERSION\n" "\n" diff --git a/src/main.c b/src/main.c index 5666c777e..a5f38138a 100644 --- a/src/main.c +++ b/src/main.c @@ -180,6 +180,7 @@ struct Configurable { FILE *errors; /* if stderr redirect is requested */ struct curl_slist *quote; + struct curl_slist *postquote; long ssl_version; TimeCond timecond; @@ -595,7 +596,14 @@ static int getparameter(char *flag, /* f or -long-flag */ break; case 'Q': /* QUOTE command to send to FTP server */ - config->quote = curl_slist_append(config->quote, nextarg); + if(nextarg[0] == '-') { + /* prefixed with a dash makes it a POST TRANSFER one */ + nextarg++; + config->postquote = curl_slist_append(config->postquote, nextarg); + } + else { + config->quote = curl_slist_append(config->quote, nextarg); + } break; case 'r': /* byte range requested */ @@ -850,8 +858,10 @@ int main(int argc, char *argv[]) "%s", curl_version()); config.showerror=TRUE; config.conf=CONF_DEFAULT; +#if 0 config.crlf=FALSE; config.quote=NULL; +#endif if(argc>1 && (!strnequal("--", argv[1], 2) && (argv[1][0] == '-')) && @@ -1108,6 +1118,7 @@ int main(int argc, char *argv[]) URGTAG_SSLCERTPASSWD, config.cert_passwd, URGTAG_CRLF, config.crlf, URGTAG_QUOTE, config.quote, + URGTAG_POSTQUOTE, config.postquote, URGTAG_WRITEHEADER, headerfilep, URGTAG_COOKIEFILE, config.cookiefile, URGTAG_SSLVERSION, config.ssl_version, |