curl/docs/libcurl/opts/CURLOPT_PREQUOTE.md
Viktor Szakats 513869744f
GHA/checkdocs: verify examples with picky warnings enables, also with clang
Verify example snippets with the picky warning options used when
compiling curl core code and standalone example code. Also test with
clang. Extract picky warnings available via a new, internal, CMake
option.

Also:
- fix issues found.
- tried reproducing #22638 in CI (specifically the casts for `%p`),
  turns out it needs apple clang 17, and no longer reproducing with
  apple clang 21.

Follow-up to 5c61e16869 #22638

Closes #22639
2026-08-26 12:24:41 +02:00

82 lines
1.7 KiB
Markdown

---
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
SPDX-License-Identifier: curl
Title: CURLOPT_PREQUOTE
Section: 3
Source: libcurl
See-also:
- CURLOPT_POSTQUOTE (3)
- CURLOPT_QUOTE (3)
Protocol:
- FTP
Added-in: 7.9.5
---
# NAME
CURLOPT_PREQUOTE - commands to run before an FTP transfer
# SYNOPSIS
~~~c
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PREQUOTE,
struct curl_slist *cmds);
~~~
# DESCRIPTION
Pass a pointer to a linked list of FTP commands to pass to the server after
the transfer type is set. The linked list should be a fully valid list of
struct curl_slist structs properly filled in as described for
CURLOPT_QUOTE(3).
Using this option multiple times makes the last set string override the
previous ones. Set it to NULL to disable its use again.
libcurl does not copy the list, it needs to be kept around until after the
transfer has completed.
While CURLOPT_QUOTE(3) and CURLOPT_POSTQUOTE(3) work for SFTP,
this option does not.
# DEFAULT
NULL
# %PROTOCOLS%
# EXAMPLE
~~~c
int main(void)
{
CURL *curl;
struct curl_slist *cmdlist = NULL;
cmdlist = curl_slist_append(cmdlist, "SYST");
curl = curl_easy_init();
if(curl) {
CURLcode result;
curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/foo.bin");
/* pass in the FTP commands to run */
curl_easy_setopt(curl, CURLOPT_PREQUOTE, cmdlist);
result = curl_easy_perform(curl);
curl_easy_cleanup(curl);
}
curl_slist_free_all(cmdlist);
}
~~~
# %AVAILABILITY%
# RETURN VALUE
curl_easy_setopt(3) returns a CURLcode indicating success or error.
CURLE_OK (0) means everything was OK, non-zero means an error occurred, see
libcurl-errors(3).