Lintian (on Debian) has been complaining about this for a while but
I didn't bother initially as the groff parser that we use is not
affected by this.
But I have now noticed that the online manpage is affected by it:
https://curl.se/libcurl/c/CURLOPT_WILDCARDMATCH.html
(I'm using double quotes for quoting-only down below)
The section that should be parsed as "'\'" ends up being parsed as
"'´".
This is due to roffit not parsing "'\\'" correctly, which is fine
as the "correct" way of writing "'\'" is "'\e'" instead.
Note that this fix is not enough to fix the online manpage at
curl's website, as roffit seems to parse it wrongly either way.
My intent is to at least fix the manpage so that roffit can
be changed to parse "'\e'" correctly (although I suggest making
roffit parse both ways correctly, since that's what groff does).
More details at:
https://bugs.debian.org/966803
930b18e4b2/tags/a/acute-accent-in-manual-page.tag
Closes #9418
104 lines
3.8 KiB
Groff
104 lines
3.8 KiB
Groff
.\" **************************************************************************
|
|
.\" * _ _ ____ _
|
|
.\" * Project ___| | | | _ \| |
|
|
.\" * / __| | | | |_) | |
|
|
.\" * | (__| |_| | _ <| |___
|
|
.\" * \___|\___/|_| \_\_____|
|
|
.\" *
|
|
.\" * Copyright (C) 1998 - 2022, Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
.\" *
|
|
.\" * This software is licensed as described in the file COPYING, which
|
|
.\" * you should have received as part of this distribution. The terms
|
|
.\" * are also available at https://curl.se/docs/copyright.html.
|
|
.\" *
|
|
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
.\" * copies of the Software, and permit persons to whom the Software is
|
|
.\" * furnished to do so, under the terms of the COPYING file.
|
|
.\" *
|
|
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
.\" * KIND, either express or implied.
|
|
.\" *
|
|
.\" * SPDX-License-Identifier: curl
|
|
.\" *
|
|
.\" **************************************************************************
|
|
.\"
|
|
.TH CURLOPT_WILDCARDMATCH 3 "16 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options"
|
|
.SH NAME
|
|
CURLOPT_WILDCARDMATCH \- directory wildcard transfers
|
|
.SH SYNOPSIS
|
|
.nf
|
|
#include <curl/curl.h>
|
|
|
|
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_WILDCARDMATCH, long onoff);
|
|
.fi
|
|
.SH DESCRIPTION
|
|
Set \fIonoff\fP to 1 if you want to transfer multiple files according to a
|
|
file name pattern. The pattern can be specified as part of the
|
|
\fICURLOPT_URL(3)\fP option, using an fnmatch-like pattern (Shell Pattern
|
|
Matching) in the last part of URL (file name).
|
|
|
|
By default, libcurl uses its internal wildcard matching implementation. You
|
|
can provide your own matching function by the
|
|
\fICURLOPT_FNMATCH_FUNCTION(3)\fP option.
|
|
|
|
A brief introduction of its syntax follows:
|
|
.RS
|
|
.IP "* - ASTERISK"
|
|
\&ftp://example.com/some/path/\fB*.txt\fP (for all txt's from the root
|
|
directory). Only two asterisks are allowed within the same pattern string.
|
|
.RE
|
|
.RS
|
|
.IP "? - QUESTION MARK"
|
|
Question mark matches any (exactly one) character.
|
|
|
|
\&ftp://example.com/some/path/\fBphoto?.jpeg\fP
|
|
.RE
|
|
.RS
|
|
.IP "[ - BRACKET EXPRESSION"
|
|
The left bracket opens a bracket expression. The question mark and asterisk have
|
|
no special meaning in a bracket expression. Each bracket expression ends by the
|
|
right bracket and matches exactly one character. Some examples follow:
|
|
|
|
\fB[a-zA-Z0\-9]\fP or \fB[f\-gF\-G]\fP \- character interval
|
|
|
|
\fB[abc]\fP - character enumeration
|
|
|
|
\fB[^abc]\fP or \fB[!abc]\fP - negation
|
|
|
|
\fB[[:\fP\fIname\fP\fB:]]\fP class expression. Supported classes are
|
|
\fBalnum\fP,\fBlower\fP, \fBspace\fP, \fBalpha\fP, \fBdigit\fP, \fBprint\fP,
|
|
\fBupper\fP, \fBblank\fP, \fBgraph\fP, \fBxdigit\fP.
|
|
|
|
\fB[][-!^]\fP - special case \- matches only '\-', ']', '[', '!' or '^'. These
|
|
characters have no special purpose.
|
|
|
|
\fB[\\[\\]\\\\]\fP - escape syntax. Matches '[', ']' or '\e'.
|
|
|
|
Using the rules above, a file name pattern can be constructed:
|
|
|
|
\&ftp://example.com/some/path/\fB[a-z[:upper:]\\\\].jpeg\fP
|
|
.SH PROTOCOLS
|
|
This feature is only supported for FTP download.
|
|
.SH EXAMPLE
|
|
.nf
|
|
/* initialization of easy handle */
|
|
handle = curl_easy_init();
|
|
|
|
/* turn on wildcard matching */
|
|
curl_easy_setopt(handle, CURLOPT_WILDCARDMATCH, 1L);
|
|
|
|
/* callback is called before download of concrete file started */
|
|
curl_easy_setopt(handle, CURLOPT_CHUNK_BGN_FUNCTION, file_is_coming);
|
|
|
|
/* callback is called after data from the file have been transferred */
|
|
curl_easy_setopt(handle, CURLOPT_CHUNK_END_FUNCTION, file_is_downloaded);
|
|
|
|
/* See more on https://curl.se/libcurl/c/ftp-wildcard.html */
|
|
.fi
|
|
.SH AVAILABILITY
|
|
Added in 7.21.0
|
|
.SH RETURN VALUE
|
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
|
.SH "SEE ALSO"
|
|
.BR CURLOPT_FNMATCH_FUNCTION "(3), " CURLOPT_URL "(3), "
|