From f6f62933e917b8b5c9a9394907ce4b69600214b4 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 12 Aug 2025 13:45:10 +0200 Subject: [PATCH] examples: remove href_extractor.c The library this seems to refer to is no longer there. Closes #18264 --- docs/examples/Makefile.inc | 1 - docs/examples/href_extractor.c | 88 ---------------------------------- 2 files changed, 89 deletions(-) delete mode 100644 docs/examples/href_extractor.c diff --git a/docs/examples/Makefile.inc b/docs/examples/Makefile.inc index c5be0f881b..acec3b9385 100644 --- a/docs/examples/Makefile.inc +++ b/docs/examples/Makefile.inc @@ -148,7 +148,6 @@ COMPLICATED_EXAMPLES = \ evhiperfifo.c \ ghiper.c \ hiperfifo.c \ - href_extractor.c \ htmltidy.c \ htmltitle.cpp \ multi-event.c \ diff --git a/docs/examples/href_extractor.c b/docs/examples/href_extractor.c deleted file mode 100644 index 5c92b0c23f..0000000000 --- a/docs/examples/href_extractor.c +++ /dev/null @@ -1,88 +0,0 @@ -/*************************************************************************** - * _ _ ____ _ - * Project ___| | | | _ \| | - * / __| | | | |_) | | - * | (__| |_| | _ <| |___ - * \___|\___/|_| \_\_____| - * - * Copyright (C) Daniel Stenberg, , 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 - * - ***************************************************************************/ - -/* - * Uses the "Streaming HTML parser" to extract the href pieces in a streaming - * manner from a downloaded HTML. - * - */ -/* - * The HTML parser is found at https://github.com/arjunc77/htmlstreamparser - */ - -#include -#include -#include - - -static size_t write_callback(void *buffer, size_t size, size_t nmemb, - void *hsp) -{ - size_t realsize = size * nmemb, p; - for(p = 0; p < realsize; p++) { - html_parser_char_parse(hsp, ((char *)buffer)[p]); - if(html_parser_cmp_tag(hsp, "a", 1)) - if(html_parser_cmp_attr(hsp, "href", 4)) - if(html_parser_is_in(hsp, HTML_VALUE_ENDED)) { - html_parser_val(hsp)[html_parser_val_length(hsp)] = '\0'; - printf("%s\n", html_parser_val(hsp)); - } - } - return realsize; -} - -int main(int argc, char *argv[]) -{ - char tag[1], attr[4], val[128]; - CURL *curl; - HTMLSTREAMPARSER *hsp; - - if(argc != 2) { - printf("Usage: %s URL\n", argv[0]); - return EXIT_FAILURE; - } - - curl = curl_easy_init(); - - hsp = html_parser_init(); - - html_parser_set_tag_to_lower(hsp, 1); - html_parser_set_attr_to_lower(hsp, 1); - html_parser_set_tag_buffer(hsp, tag, sizeof(tag)); - html_parser_set_attr_buffer(hsp, attr, sizeof(attr)); - html_parser_set_val_buffer(hsp, val, sizeof(val)-1); - - curl_easy_setopt(curl, CURLOPT_URL, argv[1]); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, hsp); - curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); - - curl_easy_perform(curl); - - curl_easy_cleanup(curl); - - html_parser_cleanup(hsp); - - return EXIT_SUCCESS; -} -- 2.47.2