Projects
Multimedia
cclive
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 6
View file
cclive.changes
Changed
@@ -1,4 +1,40 @@ ------------------------------------------------------------------- +Tue Oct 28 04:16:38 UTC 2014 - avvissu@yandex.ru + +- Update to 0.9.3 (unstable): + * improved option parsing + * improved input parsing + * libquvi 0.9+ support + * licensing changes +- Spec file cleanup + +------------------------------------------------------------------- +Sun Oct 26 16:30:15 UTC 2014 - avvissu@yandex.ru + +- Update to 0.7.16: + * fix network options work only partially or not at all +- Change in 0.7.15: + * add --timestamp: Try to preserve modification time +- Change in 0.7.14: + * --filename-format: Print a notice of deprecated %h sequence + * fix warning message for "--query-formats deprecated" +- Change in 0.7.13: + * add --print-config + * add short-option for --verbose-libcurl + * fix skip transfer with USR1, do not retry transfer +- Change in 0.7.12: + * add quvi compatibility layer + * add short-option -h + * add short-option -v + * deprecate --format, add --stream + * deprecate --query-formats, add --print-streams + * fix do not ignore I/O errors during file transfer +- Change in 0.7.11 (no user-visible changes) +- Change in 0.7.10: + * manual: Revise descriptions for option sections + * fix return non-zero exit status if failure + +------------------------------------------------------------------- Sun Jul 8 09:15:40 UTC 2012 - dnh@opensuse.org - update to 0.7.9
View file
cclive.spec
Changed
@@ -1,19 +1,42 @@ -# vim: set ts=4 sw=4 et: +# +# spec file for package cclive +# +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + Name: cclive -Version: 0.7.9 +Version: 0.9.3 Release: 0 Summary: Command Line Video Extraction Utility -Source: http://sourceforge.net/projects/cclive/files/0.7/cclive-%{version}.tar.bz2 -URL: http://cclive.sourceforge.net/ +License: AGPL-3.0 and GPL-3.0 Group: Productivity/Networking/Other -License: GNU General Public License version 3 (GPL v3) -BuildRoot: %{_tmppath}/build-%{name}-%{version} -BuildRequires: libcurl-devel >= 7.20 +Url: http://cclive.sourceforge.net/ +Source: http://sourceforge.net/projects/cclive/files/0.7/cclive-%{version}.tar.xz +BuildRequires: autoconf +BuildRequires: automake BuildRequires: boost-devel -BuildRequires: pcre-devel >= 8.02 +BuildRequires: gcc-c++ +BuildRequires: glibc-devel +BuildRequires: glibmm2-devel +BuildRequires: libcurl-devel >= 7.20 BuildRequires: libquvi-devel >= 0.2.0 -BuildRequires: gcc-c++ make glibc-devel pkg-config autoconf automake libtool +BuildRequires: libtool +BuildRequires: make +BuildRequires: pcre-devel >= 8.02 +BuildRequires: pkg-config +BuildRoot: %{_tmppath}/%{name}-%{version}-build %description cclive is a command line video extraction utility similar to clive but focuses @@ -28,19 +51,18 @@ %setup -q %build +#autoreconf -fiv %configure make %{?_smp_mflags} V=1 %install -%makeinstall - -%clean -%{?buildroot:%__rm -rf "%{buildroot}"} +make DESTDIR=%{buildroot} install %{?_smp_mflags} %files %defattr(-,root,root) %doc ChangeLog COPYING NEWS README +%{_bindir}/ccl %{_bindir}/cclive %doc %{_mandir}/man1/cclive.1%{ext_man}
View file
cclive-0.7.9.tar.bz2/doc/man1/cclive.1.pod
Deleted
@@ -1,388 +0,0 @@ -=pod - -=head1 NAME - -cclive - media download tool - -=head1 SYNOPSIS - -cclive [options] [url | file...] - -=head1 DESCRIPTION - -cclive is a tool for downloading media from YouTube and similar -websites. It has a low memory footprint compared to other existing -tools. - -=head1 OPTIONS - -Unless an arg is specified in the command line, cclive reads from the -stdin. The command line args may be either URLs or files to read. -If cclive reads from either stdin or files, it expects each URL to be -separated by a newline or whitespace character. - -=head2 --version - -Print version and exit. - -=head2 --help - -Print help and exit. - -=head2 --license - -Print license and exit. - -=head2 --support - -Print supported hosts and exit. - -=head2 --verbose-libcurl - -Turn on libcurl verbose output. - -=head2 -q, --quiet - -Turn off all output to stdout and stderr with the exception of -C<--verbose-libcurl>, if enabled, libcurl will continue to print -messages to stderr. - -=head2 -b, --background - -Go to background after startup. Output will be written to -the file specified with C<--log-file>. - -=head2 -F, --query-formats - -Query available formats to the URL. The returned array is created -from the data returned by the server. You can use the -I<format strings> in this array with C<--format>. - -The available formats are determined by the I<libquvi script> -responsible for parsing the media details. - -See also L</EXAMPLES>, C<--format> and C<--prefer-format>. - -=head2 -f, --format I<arg> (=default) - -Download the format I<arg> of the media. The I<arg> may also be C<default>, -C<best>, C<help> or C<list>. Note, however, that the C<list> and the C<help> -are I<deprecated> and will be removed in the later versions of cclive. -The I<arg> value is used with B<all> of the URLs fed to cclive. - -If the I<arg> is C<best>, the I<libquvi script> responsible for parsing -the media details will determine the C<best> format available to an URL. - -If the I<arg> is C<default> the I<libquvi script> attempts to return an -URL to whatever it deemed to be the C<default> format for the URL. - -The I<libquvi script> will return the C<default> format if the I<arg> -was unrecognized or the requested format was not available. - -You can find more information about the YouTube specific "fmt" IDs at: - <http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs> - -See also L</EXAMPLES>, C<--query-formats> and C<--prefer-format>. - -=head2 -c, --continue - -Resume partially downloaded media. - -=head2 -W, --overwrite - -Overwrite existing media. - -=head2 -O, --output-file I<arg> - -Write media to I<arg>. Overrides C<--filename-format>. - -=head2 -n, --no-download - -Do not download the media, print details only. - -=head2 -r, --no-resolve - -Do not resolve URL redirections. If enabled, breaks the compatibility -with most "shortened" URLs. - -=head2 --no-proxy - -Disable use of HTTP proxy. Overrides both C<--proxy> and http_proxy environment -settings. - -=head2 --log-file I<arg> (=cclive_log) - -Write log output to I<arg>. Ignored unless used with C<--background>. -Overwrites the existing I<arg> file (if any). See also C<--background> -and C<--update-interval>. - -=head2 --config-file I<arg> (=~/.ccliverc) - -Path to a file to read cclive arguments from. - -=head1 OPTIONS - CONFIGURATION - -In addition to the command line, the configurable options may also be read -from the configuration file. See L</FILES>. - -=head2 -p, --prefer-format I<arg> - -Download the I<specified> format of the media when the pattern matches -to the media page URL. - -I<arg> is a B<string pair> of I<pattern> (regular expression) and -I<format>. The character ':' is expected to separate these two -strings, e.g. C<pattern:format>. - -C<--format> overrides C<--prefer-format>. cclive accepts multiple -occurrences of C<--prefer-format>. - -See also L</EXAMPLES>, C<--query-formats> and C<--format>. - -=head2 --progressbar I<arg> (=normal) - -Use the progressbar of type I<arg>. Ignored with C<--background> which -will always use the C<dotline> type. Possible values: - - normal (default) - dotline (implied by --background) - simple (basic) - -=head2 --update-interval I<arg> (=1) - -Specify I<arg> progressbar update interval in seconds. Use of decimal -fractions, e.g. "0.2" or "1.99", is acceptable. - -=head2 --filename-format I<arg> (="%t.%s") - -How the downloaded media file should be named. Each occurence of the -following specifiers will be replaced in the I<arg>: - - %t .. Media title - %i .. Media ID - %h .. Media host ID (e.g. "vimeo") - %s .. Media file suffix (e.g. "flv") - -See also C<--tr>. - -=head2 --output-dir I<arg> - -Write downloaded media to I<arg> directory. - -=head2 -t, --tr I<arg> - -Where I<arg> is a pattern (regular expression). C<--tr> can be used to -translate the characters in the media titles before they are used in -the filenames of the downloaded media. Default is C</(\w|\s)/g>. - -cclive accepts multiple occurrences of C<--tr>. See also L</EXAMPLES>. - -=head2 --exec I<arg> - -Invoke I<arg> after each successfully finished download. Each occurence -of the following specifiers will be replaced in the I<arg>: - - %f .. Full path to the downloaded media file - %n .. Name of the downloaded media file - %t .. Media title (unfiltered) - -The I<arg> is also invoked if the media is fully retrieved already. -cclive accepts multiple occurrences of C<--exec>. See also L</EXAMPLES>. - -=head2 --agent I<arg> (="Mozilla/5.0") - -Identify cclive as I<arg> to the HTTP servers. - -=head2 --proxy I<arg> - -Use I<arg> for HTTP proxy, e.g. "http://foo:1234". Overrides -http_proxy environment setting. - -=head2 --throttle I<arg> (=0, disabled) - -Do not exceed the transfer rate I<arg> KB/s. - -=head2 --connect-timeout I<arg> (=30) - -This option wraps the CURLOPT_CONNECTTIMEOUT (libcurl): - -"Pass a long. It should contain the maximum time in seconds that -you allow the connection to the server to take. - -This only limits the connection phase, once it has connected, -this option is of no more use. Set to zero to disable connection -timeout (it will then only timeout on the system's internal -timeouts). See also the CURLOPT_TIMEOUT option." --- curl_easy_setopt(3) - -=head2 --transfer-timeout I<arg> (=0, disabled) - -This option wraps the CURLOPT_TIMEOUT (libcurl): - -"Pass a long as parameter containing the maximum time in seconds -that you allow the libcurl transfer operation to take. - -Normally, name lookups can take a considerable time and limiting -operations to less than a few minutes risk aborting perfectly -normal operations. This option will cause curl to use the -SIGALRM to enable time-outing system calls." --- curl_easy_setopt(3) - -=head2 --dns-cache-timeout I<arg> (=60) - -This option wraps the CURLOPT_DNS_CACHE_TIMEOUT (libcurl): - -"Pass a long, this sets the timeout in seconds. Name resolves will -be kept in memory for this number of seconds. Set to zero to -completely disable caching, or set to -1 to make the cached -entries remain forever. By default, libcurl caches this info -for 60 seconds. - -The name resolve functions of various libc implementations don't -re-read name server information unless explicitly told so -(for example, by calling res_init(3)). This may cause libcurl -to keep using the older server even if DHCP has updated the -server info, and this may look like a DNS cache issue to the -casual libcurl-app user." -- curl_easy_setopt(3) - -=head2 --max-retries I<arg> (=5, 0=disabled) - -Retry downloading I<arg> times before giving up. - -=head2 --retry-wait I<arg> (=5) - -Wait I<arg> seconds before retrying after a failed attempt. - -=head1 DEPRECATED - -These options are deprecated and will be removed in the later versions -of cclive. - -=head2 --regexp I<arg> (="/(\w|\s)/g") - -Regular expression I<arg> to cleanup the media title before it -is used in the filename. Supports "i" (case-insensitive) and "g" -(global or "find all"). - -Use C<--tr> instead. - -=head2 --subst I<arg> ... - -Replace matched occurences in the media filename after applying -C<--filename-format> and C<--regexp>. To use multiple substitutions, -separate each expression in I<arg> with a whitespace. Supports "i" -(case-insensitive) and "g" (global or "find all"). - -=head3 Supported delimiters - - <> {} () / - -=head3 Note - - s/old/new/ .. Invalid - s/old//new/ .. OK - -Use C<--tr> instead. - -=head1 EXAMPLES - -Always quote the URLs in the command line as seen below. Many URLs -contain parameters that may otherwise cause the shell to behave -with unexpected results. - -=head2 cclive "URL" - -Typical use. - -=head2 cclive -F "URL" - -Query available formats to the URL. You can then use one of the -format strings from the returned array with C<--format>. - -=head2 cclive -f best "URL" - -Download the best available format of the media. - -=head2 cclive -p "^.*youtube.*\.com:fmt43_360p" "YOUTUBE_URL" - -Get the fmt43_360p format of YouTube videos whenever possible. - -=head2 cclive -n "URL" - -Do not download the media, print the details only. - -=head2 cclive "URL" -t 's/foo/bar/g' - -Replace any "foo" substrings with "bar" in the media title before -using it in the output filename. - -=head2 cclive "URL" -b --log-file foo.log - -Go to background, redirect output to C<foo.log>. - -=head2 pkill -USR1 cclive - -Interrupt the current download of all matching cclive processes. Causes -cclive to move onto the next URL in the queue, if any. - -=head2 cclive "URL" --exec 'echo "%f"' --exec 'vlc "%f"' - -Print path to the downloaded media file using echo(1), open the media -file in vlc(1). - -=head2 More examples - -You can find more examples in the project wiki, see L</WWW> for the -URLs. - -=head1 FILES - -=head2 ~/.ccliverc - -Or use C<--config-file>. See C<--help> or L</OPTIONS - CONFIGURATION> -for the configurable options. - -=head3 Example - - filename-format = %h_%i_(%t).%s - proxy = http://foo:1234 - exec = /usr/bin/vlc %f - regexp = /(\w|\pL)/g - progressbar = simple - prefer-format = ^.*youtube.*\.com:fmt43_360p - prefer-format = dailym:best - -=head1 EXIT STATUS - -cclive exits with 0 on success and >0 if an (unrecoverable) error -occurred. - -=head1 DEBUGGING TIPS - -=head2 --verbose-libcurl - -Make libcurl verbose. - -=head1 WWW - - Home : http://cclive.sourceforge.net/ - gitweb: http://repo.or.cz/w/cclive.git - -=head1 BACKGROUND - -The name "clive" originates from the words "command line video extraction", -the prepending "c" refers to C or C++. cclive is a rewrite of clive(1) -in C++. - -=head1 LICENSE - -cclive is free software, licensed under the GPLv3+. - -=head1 AUTHOR - -Toni Gundogdu <legatvs at sign gmail com>. - -Thanks to all those who have contributed to the project by sending -patches, reporting bugs and writing feedback. You know who you are. - -=cut
View file
cclive-0.7.9.tar.bz2/m4/version.m4
Deleted
@@ -1,1 +0,0 @@ -m4_define([_CCLIVE_VERSION], [0.7.9])
View file
cclive-0.7.9.tar.bz2/src/cc/license.cpp
Deleted
@@ -1,41 +0,0 @@ -/* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -namespace cc -{ - -char LICENSE[] = - "/* cclive\n" - " * Copyright (C) 2010,2011 Toni Gundogdu <legatvs@gmail.com>\n" - " *\n" - " * This program is free software: you can redistribute it and/or modify\n" - " * it under the terms of the GNU General Public License as published by\n" - " * the Free Software Foundation, either version 3 of the License, or\n" - " * (at your option) any later version.\n" - " *\n" - " * This program is distributed in the hope that it will be useful,\n" - " * but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - " * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" - " * GNU General Public License for more details.\n" - " *\n" - " * You should have received a copy of the GNU General Public License\n" - " * along with this program. If not, see <http://www.gnu.org/licenses/>.\n" - " */"; - -} // namspace cclive - -// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/log.cpp
Deleted
@@ -1,135 +0,0 @@ -/* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <stdexcept> -#include <cerrno> - -#include <boost/filesystem.hpp> - -#include <ccutil> -#include <cclog> - -namespace cc -{ - -namespace io = boost::iostreams; - -io::filtering_ostream log; - -omit_sink::omit_sink(bool b/*=false*/) : _omit(b) { } - -std::streamsize omit_sink::write(const char *s, std::streamsize n) -{ - if (!_omit) std::clog.write(s,n); - return n; -} - -// Constructor. - -flushable_file_sink::flushable_file_sink( - const std::string& fpath, - const std::ios_base::openmode mode/*=std::ios::trunc|std::ios::out*/) - : _mode(mode), _fpath(fpath) -{ - _open(); -} - -// Copy constructor. - -flushable_file_sink::flushable_file_sink(const flushable_file_sink& f) -{ - _swap(f); -} - -// Copy assignment operator. - -flushable_file_sink& -flushable_file_sink::operator=(const flushable_file_sink& f) -{ - if (this != &f) _swap(f); - return *this; -} - -void flushable_file_sink::_swap(const flushable_file_sink& f) -{ - close(); - _fpath = f._fpath; - _mode = f._mode; - _open(); -} - -bool flushable_file_sink::is_open() const -{ - return _f.is_open(); -} - -std::streamsize -flushable_file_sink::write(const char *s, std::streamsize n) -{ - _f.write(s,n); - return n; -} - -std::streampos flushable_file_sink::seek( - std::streamoff o, - std::ios_base::seekdir d) -{ - _f.seekp(o,d); - _f.seekg(o,d); - return o; -} - -std::streamsize flushable_file_sink::read(char_type *t, std::streamsize n) -{ - _f.read(t,n); - return n; -} - -bool flushable_file_sink::flush() -{ - _f.flush(); - return true; -} - -void flushable_file_sink::close() -{ - flush(); - _f.close(); -} - -namespace fs = boost::filesystem; - -void flushable_file_sink::_open() -{ - _fpath = fs::system_complete(fs::path(_fpath)).string(); - _f.open(_fpath.c_str(), _mode); - if (_f.fail()) - { - std::string s = _fpath + ": "; - - if (errno) - s += cc::perror(); - else - s += "unknown file open error"; - - throw std::runtime_error(s); - } -} - -} // namspace cclive - -// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/options.cpp
Deleted
@@ -1,275 +0,0 @@ -/* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <ccinternal> - -#include <iostream> -#include <fstream> -#include <cstring> - -#include <boost/filesystem.hpp> -#include <boost/foreach.hpp> - -#ifndef foreach -#define foreach BOOST_FOREACH -#endif - -#include <ccre> -#include <ccoptions> - -namespace cc -{ - -namespace opts = boost::program_options; -namespace fs = boost::filesystem; - -typedef std::vector<std::string> vst; - -void options::exec(int argc, char **argv) -{ - // Path to ccliverc. - -#if BOOST_FILESYSTEM_VERSION > 2 - fs::path conf_path(fs::current_path()); -#else - fs::path conf_path(fs::current_path<fs::path>()); -#endif - - const char *home = getenv("HOME"); - - if (home && strlen(home) > 0) - conf_path = fs::system_complete(fs::path(home)); - - conf_path /= -#ifndef _WIN32 - std::string(".") + -#endif - std::string("ccliverc"); - - // Construct options. - - opts::options_description generic; - std::string conf_file; - - generic.add_options() - ("version", - "Print version and exit") - ("help", - "Print help and exit") - ("license", - "Print license and exit") - ("support", - "Print supported websites and exit") - ("verbose-libcurl", - "Turn on libcurl verbose output") - ("quiet,q", - "Turn off all output, excl. errors") -#ifdef HAVE_FORK - ("background,b", - "Go to background") -#endif - ("query-formats,F", - "Query available formats to URL") - ("format,f", - opts::value<std::string>(), - "Download media format") - ("continue,c", - "Resume partially downloaded media") - ("overwrite,W", - "Overwrite existing media") - ("output-file,O", - opts::value<std::string>(), - "Write media to arg") - ("no-download,n", - "Do not download media, print details") - ("no-resolve,r", - "Do not resolve URL redirections") - ("no-proxy", - "Do not use HTTP proxy") - ("log-file", - opts::value<std::string>()->default_value("cclive_log"), - "Write log output to arg") - ("config-file", - opts::value<std::string>(&conf_file)->default_value(conf_path.string()), - "Read args from arg") - ; - - // Config. - - opts::options_description config("Configuration"); - - config.add_options() - ("prefer-format,p", - opts::value<std::vector<std::string> >()->composing(), - "Preferred format [domain:format[,...]]") - ("progressbar", - opts::value<std::string>()->default_value("normal"), - "Use progressbar arg") - ("update-interval", - opts::value<double>()->default_value(1.0), - "Update interval of progressbar") - ("filename-format", - opts::value<std::string>()->default_value("%t.%s"), - "Downloaded media filename format") - ("output-dir", - opts::value<std::string>(), - "Write downloaded media to arg directory") - ("tr,t", - opts::value<vst>()->composing(), - "Translate characters in media title") - ("regexp", - opts::value<std::string>(), - "Regexp to cleanup media title (depr.)") - ("subst", opts::value<std::string>(), - "Replace matched occurences in filename (depr.)") - ("exec", opts::value<vst>()->composing(), - "Invoke arg after each finished download") - ("agent", - opts::value<std::string>()->default_value("Mozilla/5.0"), - "Identify as arg to HTTP servers") - ("proxy", opts::value<std::string>(), - "Use proxy for HTTP connections") - ("throttle", opts::value<int>()->default_value(0), - "Do not exceed transfer rate arg KB/s") - ("connect-timeout", opts::value<int>()->default_value(30), - "Seconds connecting allowed to take") - ("transfer-timeout", opts::value<int>()->default_value(0), - "Seconds transfer allowed to take") - ("dns-cache-timeout", opts::value<int>()->default_value(60), - "Seconds DNS resolves kept in memory") - ("max-retries", opts::value<int>()->default_value(5), - "Max download attempts before giving up") - ("retry-wait", opts::value<int>()->default_value(5), - "Time to wait before retrying") - ; - - // Hidden. - - opts::options_description hidden; - - hidden.add_options() - ("url", opts::value<vst>(), "url"); - - // Visible. - - _visible.add(generic).add(config); - - // Command line options. - - opts::options_description cmdline_options; - cmdline_options.add(generic).add(config).add(hidden); - - // Config file options. - - opts::options_description config_file_options; - config_file_options.add(config); - - // Positional. - - opts::positional_options_description p; - p.add("url", -1); - - // Parse. - - store(opts::command_line_parser(argc,argv) - .options(cmdline_options).positional(p).run(), _map); - notify(_map); - - // Read config. - - std::ifstream ifs(conf_file.c_str()); - - if (ifs) - { - store(parse_config_file(ifs, config_file_options), _map); - notify(_map); - } - - _validate(); -} - -const opts::variables_map& options::map() const -{ - return _map; -} - -std::ostream& operator<<(std::ostream& os, const options& o) -{ - return os << o._visible; -} - -void options::_validate() -{ - std::string empty; - - if (_map.count("tr")) - { - vst v = _map["tr"].as<vst>(); - foreach (const std::string s, v) - { - re::tr(s, empty); - } - } - - if (_map.count("regexp")) // Deprecated. - { - std::clog - << "WARNING --regexp is deprecated and will be removed " - << "in later versions.\nWARNING Use --tr instead." - << std::endl; - - std::string s = _map["regexp"].as<std::string>(); - if (!cc::re::capture(s, empty)) - { - std::stringstream b; - b << "--regexp: expects " - << "`/pattern/flags', for example: \"/(\\w|\\s)/g\""; - throw std::runtime_error(b.str()); - } - } - - if (_map.count("subst")) // Deprecated. - { - std::clog - << "WARNING --subst is deprecated and will be removed " - << "in later versions.\nWARNING Use --tr instead." - << std::endl; - - std::istringstream iss( _map["subst"].as<std::string>()); - vst v; - - std::copy( - std::istream_iterator<std::string >(iss), - std::istream_iterator<std::string >(), - std::back_inserter<vst>(v) - ); - - foreach (const std::string s, v) - { - if (!cc::re::subst(s,empty)) - { - std::stringstream b; - b << "--subst: expects " << "`s{old}{new}flags'"; - throw std::runtime_error(b.str()); - } - } - } -} - -} // namespace cc - -// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/progressbar.cpp
Deleted
@@ -1,427 +0,0 @@ -/* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <ccinternal> - -#include <iomanip> -#include <cstdio> -#include <ctime> - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -#ifdef HAVE_SYS_TYPES_H -#include <sys/types.h> -#endif - -#ifdef HAVE_SIGNAL_H -#include <signal.h> -#endif - -#ifdef HAVE_SYS_IOCTL_H -#include <sys/ioctl.h> -#endif - -#include <boost/date_time/posix_time/posix_time.hpp> -#include <boost/program_options/variables_map.hpp> -#include <boost/filesystem.hpp> - -#include <ccquvi> -#include <ccfile> -#include <cclog> -#include <ccprogressbar> - -#if defined(SIGWINCH) && defined(TIOCGWINSZ) -#define WITH_RESIZE -#endif - -namespace cc -{ -#ifdef WITH_RESIZE -static volatile sig_atomic_t recv_sigwinch; - -static void handle_sigwinch(int s) -{ - recv_sigwinch = 1; -} - -static size_t get_term_width() -{ - const int fd = fileno(stderr); - - winsize wsz; - - if (ioctl(fd, TIOCGWINSZ, &wsz) < 0) - return 0; - - return wsz.ws_col; -} -#endif // WITH_RESIZE - -namespace po = boost::program_options; - -progressbar::progressbar(const file& f, - const quvi::url& u, - const po::variables_map& map) - : _update_interval(1), - _expected_bytes(u.content_length()), - _initial_bytes(f.initial_length()), - _time_started(0), - _last_update(0), - _term_width(0), - _dot_count(0), - _count(0), - _width(0), - _file(f), - _done(false), - _mode(normal) -{ - if (_initial_bytes > _expected_bytes) - _expected_bytes = _initial_bytes; - -#ifdef WITH_RESIZE - signal(SIGWINCH, handle_sigwinch); - - if (!_term_width || recv_sigwinch) - { - _term_width = get_term_width(); - - if (!_term_width) - _term_width = default_term_width; - } -#else - _term_width = default_term_width; -#endif - - _width = _term_width; - - time(&_time_started); - - if (map.count("background")) - _mode = dotline; - else - { - const std::string s = map["progressbar"].as<std::string>(); - if (s == "simple") - _mode = simple; - else if (s == "dotline") - _mode = dotline; - } - - _update_interval = fabs(map["update-interval"].as<double>()); -} - -static double to_mb(const double bytes) -{ - return bytes/(1024*1024); -} - -namespace pt = boost::posix_time; - -static std::string to_s(const int secs) -{ - pt::time_duration td = pt::seconds(secs); - return pt::to_simple_string(td); -} - -static std::string to_unit(double& rate) -{ - std::string units = "K/s"; - if (rate >= 1024.0*1024.0*1024.0) - { - rate /= 1024.0*1024.0*1024.0; - units = "G/s"; - } - else if (rate >= 1024.0*1024.0) - { - rate /= 1024.0*1024.0; - units = "M/s"; - } - else - rate /= 1024.0; - return units; -} - -namespace fs = boost::filesystem; - -void progressbar::update(double now) -{ - time_t tnow; - - time(&tnow); - - const time_t elapsed = tnow - _time_started; - - bool force_update = false; - -#ifdef WITH_RESIZE - if (recv_sigwinch && _mode == normal) - { - const size_t old_term_width = _term_width; - - _term_width = get_term_width(); - - if (!_term_width) - _term_width = default_term_width; - - if (_term_width != old_term_width) - { - _width = _term_width; - force_update = true; - } - - recv_sigwinch = 0; - } -#endif // WITH_RESIZE - - const bool inactive = now == 0; - - if (!_done) - { - if ((elapsed - _last_update) < _update_interval - && !force_update) - { - return; - } - } - else - now = _expected_bytes; - - // Current size. - - const double size = - (!_done) - ? _initial_bytes + now - : now; - - std::stringstream size_s; - - size_s.setf(std::ios::fixed); - - size_s - << std::setprecision(1) - << to_mb(size) - << "M"; - - // Rate. - - double rate = elapsed ? (now/elapsed):0; - - std::stringstream rate_s, eta_s; - - rate_s.setf(std::ios::fixed); - eta_s.setf(std::ios::fixed); - - if (!inactive) - { - // ETA. - - std::string eta; - - if (!_done) - { - const double left = - (_expected_bytes - (now + _initial_bytes)) / rate; - - eta = to_s(static_cast<int>(left+0.5)); - } - else - { - rate = (_expected_bytes - _initial_bytes) / elapsed; - eta = to_s(elapsed); - } - - std::string unit = to_unit(rate); - - rate_s - << std::setw(4) - << std::setprecision(1) - << rate - << unit; - - eta_s - << std::setw(6) - << eta; - } - else // ETA: inactive (default). - { - rate_s << "--.-K/s"; - eta_s << "--:--:--"; - } - - // Percent. - - std::stringstream percent_s; - int percent = 0; - - if (_expected_bytes > 0) - { - percent = static_cast<int>(100.0*size/_expected_bytes); - - if (percent < 100) - percent_s << std::setw(2) << percent << "%"; - else - percent_s << "100%"; - } - - // Filename. - - fs::path p = fs::system_complete(_file.path()); - -#if BOOST_FILESYSTEM_VERSION > 2 - std::string fname = p.filename().string(); -#else - std::string fname = p.filename(); -#endif - - switch (_mode) - { - default: - case normal: - _normal(size_s, rate_s, eta_s, percent, percent_s); - break; - case dotline: - _dotline(size_s, rate_s, eta_s, percent_s); - break; - case simple: - _simple(size_s, percent_s); - break; - } - - _last_update = elapsed; - _count = now; -} - -void progressbar::_normal(const std::stringstream& size_s, - const std::stringstream& rate_s, - const std::stringstream& eta_s, - const int percent, - const std::stringstream& percent_s) -{ - std::stringstream info; - - info.setf(std::ios::fixed); - - info - << " " - << percent_s.str() - << " " - << std::setw(4) - << size_s.str() - << " " - << rate_s.str() - << " " - << eta_s.str(); - - const size_t space_left = _width - info.str().length() - 1; - - if (_width <= space_left) - return; - - std::stringstream bar; - - _render_meter(bar, percent, space_left); - - bar << info.str(); - - cc::log << bar.str() << "\r" << std::flush; -} - -void progressbar::_dotline(const std::stringstream& size_s, - const std::stringstream& rate_s, - const std::stringstream& eta_s, - const std::stringstream& percent_s) -{ -#define details \ - " " \ - << std::setw(6) \ - << size_s.str() \ - << " " \ - << rate_s.str() \ - << " " \ - << eta_s.str() \ - << " " \ - << percent_s.str() - -#define dot \ - do { \ - cc::log \ - << "." \ - << (_dot_count % 3 == 0 ? " ":"") \ - << std::flush; \ - } while (0) - - ++_dot_count; - - if (_done) - { - for (; _dot_count < 31; ++_dot_count) dot; - cc::log << details << std::flush; - return; - } - if (_dot_count >= 31) - { - cc::log << details << std::endl; - _dot_count = 0; - } -#undef details - else - dot; -#undef dot -} - -void progressbar::_simple(const std::stringstream& size_s, - const std::stringstream& percent_s) const -{ - cc::log << percent_s.str() - << " - " - << size_s.str() - << " received\r" - << std::flush; -} - -void progressbar::_render_meter(std::stringstream& bar, - const int percent, - const size_t space_left) -{ - const int m = static_cast<int>(space_left*percent/100.0); - bar << "["; - int i = 0; - while (bar.str().length() < space_left) - { - bar << (i<m ? "#":"-"); - ++i; - } - bar << "]"; -} - -void progressbar::finish() -{ - if (_expected_bytes > 0 - && _count + _initial_bytes > _expected_bytes) - { - _expected_bytes = _initial_bytes + _count; - } - - _done = true; - update(-1); -} - -} // namespace cc - -// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/quvi
Deleted
-(directory)
View file
cclive-0.7.9.tar.bz2/src/quvi/ccquvi.h
Deleted
@@ -1,177 +0,0 @@ -/* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef cclive_ccquvi_h -#define cclive_ccquvi_h - -#include <string> -#include <vector> -#include <map> - -#include <quvi/quvi.h> - -namespace quvi -{ - -class options; -class query; -class media; -class error; -class url; - -// Version. - -std::string version(); -std::string version_long(); - -// To string. - -std::string support_to_s(const std::map<std::string,std::string>&); - -// Options. - -class options -{ - friend class query; - friend class error; -public: - options(); - options(const options&); - options& operator=(const options&); - virtual ~options(); -public: - void statusfunc(quvi_callback_status); - void format(const std::string&); - void resolve(const bool); - void verify(const bool); -private: - void _swap(const options&); -private: - quvi_callback_status _statusfunc; - std::string _format; - bool _resolve; - bool _verify; -}; - -// Query. - -class query -{ -public: - query(); - query(const query&); - query& operator=(const query&); - virtual ~query(); -public: - std::string formats(const std::string& url, const options&) const; - media parse(const std::string& url, const options&) const; - std::map<std::string,std::string> support() const; - void* curlHandle() const; -private: - void _set_opts(const options&) const; - void _init(); - void _close(); -private: - quvi_t _quvi; - void*_curl; -}; - -// Link. - -class url -{ -public: - url(); - url(quvi_media_t); - url(const url&); - url& operator=(const url&); - virtual ~url(); -public: - const std::string& content_type() const; - const std::string& media_url() const; - const std::string& suffix() const; - double content_length() const; - bool ok() const; -private: - void _swap(const url&); -private: - std::string _contentType; - double _contentLength; - std::string _suffix; - std::string _url; -}; - -// Media. - -class media -{ - friend std::ostream& operator<<(std::ostream&, const media&); -public: - media(); - media(quvi_media_t); - media(const media&); - media& operator=(const media&); - virtual ~media(); -public: - const std::string& title() const; - const std::string& host() const; - const std::string& url() const; - const std::string& id() const; - const std::string& format() const; - void print(std::ostream&); - long http_code() const; - quvi::url next_url(); - std::string to_s(); -private: - void _swap(const media&); -private: - std::vector<quvi::url>::const_iterator _current_url; - std::vector<quvi::url> _urls; - std::string _format; - std::string _title; - std::string _host; - std::string _url; - std::string _id; - long _http_code; -}; - -// Error. - -class error -{ -public: - error(quvi_t, QUVIcode); - error(const error&); - error& operator=(const error&); - virtual ~error(); -public: - const std::string& what() const; - long response_code() const; - QUVIcode quvi_code() const; -private: - void _swap(const error&); -private: - QUVIcode _quvi_code; - std::string _what; - long _resp_code; -}; - -} // namespace quvi - -#endif // cclive_quvi_h - -// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/quvi/err.cpp
Deleted
@@ -1,81 +0,0 @@ -/* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <ccquvi> - -namespace quvi -{ - -// Constructor. - -error::error(quvi_t q, QUVIcode c) - : _quvi_code(QUVI_OK), _resp_code(0) -{ - // Friend of quvi::error class -> clean API. - _what = quvi_strerror(q, c); - quvi_getinfo(q, QUVIINFO_RESPONSECODE, &_resp_code); -} - -// Copy constructor. - -error::error(const error& e) - : _quvi_code(QUVI_OK), _resp_code(0) -{ - _swap(e); -} - -// Copy assignment operator. - -error& error::operator=(const error& e) -{ - if (this != &e) - _swap(e); - return *this; -} - -// Destructor. -error::~error() { } - -// Swap. - -void error::_swap(const error& e) -{ - _quvi_code = e._quvi_code; - _resp_code = e._resp_code; - _what = e._what; -} - -// Get. - -const std::string& error::what() const -{ - return _what; -} - -long error::response_code() const -{ - return _resp_code; -} - -QUVIcode error::quvi_code() const -{ - return _quvi_code; -} - -} // namespace quvi - -// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/quvi/media.cpp
Deleted
@@ -1,186 +0,0 @@ -/* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <sstream> -#include <iomanip> - -#include <ccquvi> - -namespace quvi -{ - -// Constructors. - -media::media() - : _current_url( _urls.begin() ), _http_code(-1) -{ } - -media::media(quvi_media_t qv) - : _current_url( _urls.begin() ), _http_code(-1) -{ -#define _wrap(id,dst,type) \ - do { \ - type tmp; \ - quvi_getprop(qv,id,&tmp); \ - dst = tmp; \ - } while (0) - _wrap(QUVIPROP_HOSTID, _host, char*); - _wrap(QUVIPROP_PAGEURL, _url, char*); - _wrap(QUVIPROP_PAGETITLE, _title, char*); - _wrap(QUVIPROP_MEDIAID, _id, char*); - _wrap(QUVIPROP_FORMAT, _format, char*); -#undef _wrap - - do - { - _urls.push_back( quvi::url(qv) ); - } - while (quvi_next_media_url(qv) == QUVI_OK); - - _current_url = _urls.begin(); -} - -// Copy constructor. - -media::media(const media& v) - : _current_url( _urls.begin() ), _http_code(-1) -{ - _swap(v); -} - -// Copy assignment operator. - -media& media::operator=(const media& v) -{ - if (this != &v) - _swap(v); - return *this; -} - -// Destructor. - -media::~media() { } - -// Swap. - -void media::_swap(const media& v) -{ - _urls = v._urls; - _title = v._title; - _host = v._host; - _url = v._url; - _id = v._id; - _format = v._format; - _http_code = v._http_code; - _current_url = _urls.begin(); -} - -// Get. - -const std::string& media::title() const -{ - return _title; -} - -const std::string& media::host() const -{ - return _host; -} - -const std::string& media::url() const -{ - return _url; -} - -const std::string& media::id() const -{ - return _id; -} - -const std::string& media::format() const -{ - return _format; -} - -long media::http_code() const -{ - return _http_code; -} - -// Next URL. - -quvi::url media::next_url() -{ - if (_current_url == _urls.end()) - { - _current_url = _urls.begin(); - return quvi::url(); - } - return *(_current_url)++; -} - -// To string. Emulates quvi command's behaviour. - -std::string media::to_s() -{ - std::stringstream b; - - b.setf(std::ios::fixed); - - b << "title\t: " << _title << "\n" - << "host\t: " << _host << "\n" - << "url\t: " << _url << "\n" - << "id\t: " << _id << "\n" - << "format\t: " << _format << "\n" - << "httpcode: " << _http_code << "\n"; - - for (int i=0;; ++i) - { - const quvi::url u = next_url(); - - if (!u.ok()) break; - - b << "url #" - << i - << "\t: " - << u.media_url() - << "\n:: length\t: " - << std::setprecision(0) - << u.content_length() - << "\n:: content-type\t: " - << u.content_type() - << "\n:: suffix\t: " - << u.suffix() - << "\n"; - } - - return b.str(); -} - -std::ostream& operator<<(std::ostream& os, media& v) -{ - return os << v.to_s(); -} - -void media::print(std::ostream& os) -{ - os << to_s(); -} - -} // namespace quvi - -// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/quvi/misc.cpp
Deleted
@@ -1,60 +0,0 @@ -/* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <pcrecpp.h> -#include <sstream> - -#include <ccquvi> - -namespace quvi -{ - -// Version. - -std::string version() -{ - return quvi_version(QUVI_VERSION); -} - -std::string version_long() -{ - return quvi_version(QUVI_VERSION_LONG); -} - -typedef std::map<std::string,std::string>::const_iterator smci; - -static const std::string _domain_patt_to_s(smci i) -{ - std::string d = (*i).first; - pcrecpp::RE("%w\\+").GlobalReplace("com", &d); - pcrecpp::RE("%").GlobalReplace("", &d); - return d; -} - -std::string support_to_s(const std::map<std::string,std::string>& map) -{ - std::stringstream b; - - for (smci iter = map.begin(); iter != map.end(); ++iter) - b << _domain_patt_to_s(iter) << "\n"; - - return b.str(); -} - -} // namespace quvi - -// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/quvi/opts.cpp
Deleted
@@ -1,94 +0,0 @@ -/* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <cassert> -#include <iostream> - -#include <ccquvi> - -namespace quvi -{ - -options::options() - : _statusfunc(NULL), - _format("default"), - _resolve(true), - _verify(true) -{ } - -// Copy constructor. - -options::options(const options& opts) - : _statusfunc(NULL), - _format("default"), - _resolve(true), - _verify(true) -{ - _swap(opts); -} - -// Copy assignment operator. - -options& options::operator=(const options& qo) -{ - if (this != &qo) - _swap(qo); - return *this; -} - -// Destructor. - -options::~options() -{ - _statusfunc = NULL; -} - -// Swap. - -void options::_swap(const options& qo) -{ - _format = qo._format; - _verify = qo._verify; - _resolve = qo._resolve; - _statusfunc = qo._statusfunc; -} - -// Set. - -void options::format(const std::string& fmt) -{ - _format = fmt; -} - -void options::verify(const bool b) -{ - _verify = b; -} - -void options::resolve(const bool b) -{ - _resolve = b; -} - -void options::statusfunc(quvi_callback_status cb) -{ - _statusfunc = cb; -} - -} // namespace quvi - -// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/quvi/query.cpp
Deleted
@@ -1,180 +0,0 @@ -/* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <cassert> - -#include <ccquvi> - -namespace quvi -{ - -// Constructor. - -query::query() - : _quvi(NULL), _curl(NULL) -{ - _init(); -} - -// Copy constructor. - -query::query(const query& q) - : _quvi(NULL), _curl(NULL) -{ - _init(); -} - -// Copy assignment operator. - -query& query::operator=(const query& q) -{ - if (this != &q) - { - _close(); - _init(); - } - return *this; -} - -// Destructor. - -query::~query() -{ - _close(); -} - -// Init. - -void query::_init() -{ - - const QUVIcode rc = quvi_init(&_quvi); - - if (rc != QUVI_OK) - throw error(_quvi,rc); - - assert(_quvi != NULL); - - quvi_getinfo(_quvi, QUVIINFO_CURL, &_curl); - assert(_curl != NULL); -} - -// Close. - -void query::_close() -{ - if (_quvi) - quvi_close(&_quvi); // Resets to NULL. - assert(_quvi == NULL); - _curl = NULL; -} - -// Set common libquvi options. - -void query::_set_opts(const options& opts) const -{ - // Friend of quvi::options class -> clean API. - - if (!opts._format.empty()) - quvi_setopt(_quvi, QUVIOPT_FORMAT, opts._format.c_str()); - - quvi_setopt(_quvi, QUVIOPT_STATUSFUNCTION, opts._statusfunc); -#ifdef _0 - quvi_setopt(_quvi, QUVIOPT_NOVERIFY, opts._verify ? 1L:0L); -#endif - - quvi_setopt(_quvi, QUVIOPT_NORESOLVE, opts._resolve ? 1L:0L); - quvi_setopt(_quvi, QUVIOPT_CATEGORY, QUVIPROTO_HTTP); -} - -// Query formats. - -std::string query::formats(const std::string& url, - const options& opts) const -{ - _set_opts(opts); - - char *formats = NULL; - - QUVIcode rc = quvi_query_formats(_quvi, - const_cast<char*>(url.c_str()), - &formats); - if (rc != QUVI_OK) - throw error(_quvi,rc); - - std::string r = formats; - quvi_free(formats); - - return r; -} - - -// Parse. - -media query::parse(const std::string& pageURL, const options& opts) const -{ - _set_opts(opts); - - quvi_media_t qm; - - QUVIcode rc = - quvi_parse(_quvi, const_cast<char*>(pageURL.c_str()), &qm); - - if (rc != QUVI_OK) - throw error(_quvi,rc); - - assert(qm != NULL); - - media m(qm); - quvi_parse_close(&qm); - - return m; -} - -// Get. - -void* query::curlHandle() const -{ - return _curl; -} - -// Support. - -std::map<std::string,std::string> query::support() const -{ - std::map<std::string,std::string> map; - char *d=NULL, *f=NULL; - - // cclive handles HTTP stream URLs only. Ignore all other - // categories but HTTP. - quvi_setopt(_quvi, QUVIOPT_CATEGORY, QUVIPROTO_HTTP); - - while (quvi_next_supported_website(_quvi, &d, &f) == QUVI_OK) - { - map[d] = f; - quvi_free(d); - d = NULL; - quvi_free(f); - f = NULL; - } - - return map; -} - -} // namespace quvi - -// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/quvi/url.cpp
Deleted
@@ -1,106 +0,0 @@ -/* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <ccquvi> - -namespace quvi -{ - -// Constructors. - -url::url() - : _contentLength(-1) -{ -} - -url::url(quvi_media_t qv) - : _contentLength(-1) -{ -#define _wrap(id,dst,type) \ - do { \ - type tmp; \ - quvi_getprop(qv,id,&tmp); \ - dst = tmp; \ - } while (0) - _wrap(QUVIPROP_MEDIAURL, _url, char*); - _wrap(QUVIPROP_MEDIACONTENTTYPE, _contentType, char*); - _wrap(QUVIPROP_MEDIACONTENTLENGTH, _contentLength, double); - _wrap(QUVIPROP_FILESUFFIX, _suffix, char*); -#undef _wrap -} - -// Copy constructor. - -url::url(const url& u) - : _contentLength(-1) -{ - _swap(u); -} - -// Copy assignment operator. - -url& url::operator=(const url& u) -{ - if (this != &u) - _swap(u); - return *this; -} - -// Destructor. - -url::~url() { } - -// Swap. - -void url::_swap(const url& u) -{ - _contentLength = u._contentLength; - _contentType = u._contentType; - _suffix = u._suffix; - _url = u._url; -} - -// Get. - -const std::string& url::content_type() const -{ - return _contentType; -} - -const std::string& url::suffix() const -{ - return _suffix; -} - -const std::string& url::media_url() const -{ - return _url; -} - -double url::content_length() const -{ - return _contentLength; -} - -bool url::ok() const -{ - return _contentLength > -1; -} - -} // namespace quvi - -// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/AUTHORS
Added
@@ -0,0 +1,1 @@ +Toni Gundogdu <legatvs at sign gmail com>
View file
cclive-0.7.9.tar.bz2/COPYING -> cclive-0.9.3.tar.xz/COPYING
Changed
@@ -1,5 +1,5 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies @@ -7,17 +7,15 @@ Preamble - The GNU General Public License is a free, copyleft license for -software and other kinds of works. + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to +our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. +software for all its users. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you @@ -26,44 +24,34 @@ want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. The precise terms and conditions for copying, distribution and modification follow. @@ -72,7 +60,7 @@ 0. Definitions. - "This License" refers to version 3 of the GNU General Public License. + "This License" refers to version 3 of the GNU Affero General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. @@ -549,35 +537,45 @@ the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. - 13. Use with the GNU Affero General Public License. + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single +under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General +Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published +GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's +versions of the GNU Affero General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. @@ -635,40 +633,29 @@ Copyright (C) <year> <name of author> This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by + it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + GNU Affero General Public License for more details. - You should have received a copy of the GNU General Public License + You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. Also add information on how to contact you by electronic and paper mail. - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - <program> Copyright (C) <year> <name of author> - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see +For more information on this, and how to apply and follow the GNU AGPL, see <http://www.gnu.org/licenses/>. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -<http://www.gnu.org/philosophy/why-not-lgpl.html>.
View file
cclive-0.7.9.tar.bz2/ChangeLog -> cclive-0.9.3.tar.xz/ChangeLog
Changed
@@ -1,3 +1,2955 @@ +commit 9f77d01 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-11-23 + + Update NEWS for v0.9.3 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +NEWS + +commit 02ce85f +Merge: 4389ac9 17a0e27 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-11-14 + + Merge branch 'tg/next__improvements_round#1' into next + +commit 17a0e27 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-11-12 + + cc::input: Reduce duplicate code + + * Rename `read_from_escaped_uri' function + * Introduce `determine_input' function + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/input.h + +commit 34026cb +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-11-09 + + cc::input: Do not unescape input URIs + + Rationale: + - This was previously done because quvi-dump(1) escaped the entire URLs + (incl. the "reserved chars") + + - cclive uses Glib::uri_parse_scheme to determine the action it should + take with the input URL which would fail with the completely escaped + URIs + + - Applications would typically leave the "reserved chars" unescaped, + e.g. the web browsers + + See also: + - https://tools.ietf.org/html/rfc3986#section-2.2 + - https://en.wikipedia.org/wiki/Percent-encoding + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/input.h + +commit 8a60f4e +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-11-09 + + cc::log: Rewrite, make header-only + + Other notable changes: + * Relocate cc::log (boost::iostreams::filtering_ostream) to cc::var + * Remove cc_debug and cc::_debug + * Add cc::sink namespace + * Rename sinks + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am +src/cc/application.cpp +src/cc/background.cpp +src/cc/log.cpp +src/cc/log.h +src/cc/var.h + +commit 2dbbdf0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-18 + + Rename cc::progressbar::mode + + * Make it part of cc::options + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/options.h + +commit 711dc10 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-11-04 + + cc::file: Rewrite for cc::sig (sigusr1) + + Notable changes: + * Do not setup/handle SIGUSR1, leave all that to cc::sig + + Other: + * SIGUSR1 handler is now set only once, not everytime a transfer begins + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp + +commit 8236649 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-18 + + cc::file: Use updated cc::progressbar + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp + +commit c723e66 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-14 + + cc::file: Make "exists" a static member function + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp +src/cc/file.h + +commit fdf4565 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-14 + + cc::file::_init: Rewrite/cleanup + + Address any remaining inefficiencies, avoid code-duplication and improve + code readability. + + Other notable changes: + * Remove (BOOST_FILESYSTEM_VERSION >2) if-else -blocks (Boost v1.49+ have v3) + * Rewrite `output_dir' as `output_fpath' (return output-dir + filename) + * Add cc::file::store_path + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp +src/cc/file.h + +commit 91f9c52 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-11 + + cc::file: Remove unused macro definition + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp + +commit 5431098 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-18 + + cc::progressbar: Rewrite, make header-only + + * Remove bloat and reorganize + * Use IEEE-1541 symbols + * Use cc::sig + + Other: + * SIGWINCH handler is now set only once, not everytime progressbar is created + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am +src/cc/progressbar.cpp +src/cc/progressbar.h + +commit 378f9be +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-14 + + cc::progressbar: Remove unused code + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/progressbar.cpp + +commit 5ecfac5 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-18 + + cc::fstream: Rename shared_ptr type + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/fstream.h + +commit 211924a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-11-01 + + Add cc::var + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am +src/cc/main.cpp +src/cc/var.h +src/ccvar + +commit b3dfaf2 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-15 + + Add cc::sig + + This (header-only) implementation is intended to replace the previously + used handling code for SIG{WINCH,USR1}. + + Notable changes: + * Add cc::sig namespace with terminal related functions + * Use sigaction(2) instead of signal(2) + * Add cc::sigwinch <class> + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac +src/Makefile.am +src/cc/application.cpp +src/cc/sig.h +src/ccsig + +commit bcc631a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-11 + + Move non-critical exceptions from "cc::error" + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/error.h +src/cc/file.cpp +src/cc/main.cpp +src/cc/options.h + +commit 8faea34 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-11 + + Rewrite cc::nothing_todo_error as cc::error::nothing_todo + + * Derive from the Boost.Exception (boost::exception) + * Use the BOOST_THROW_EXCEPTION macro to throw + * Move to the cc::error namespace + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/error.h +src/cc/file.cpp +src/cc/util.h + +commit c2256f4 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-11 + + Use a vector reference with BOOST_FOREACH + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/exec.cpp + +commit a02114c +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-11 + + Use a string reference with BOOST_FOREACH + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/options.h + +commit c80e398 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-08 + + Move cc::fstream::error to cc::error as fstream + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/error.h +src/cc/fstream.h + +commit dc132f7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + cc::re: Throw Boost.Exception based exception + + Modify cc::re to throw a Boost.Exception (cc::error::tuple) instead of + the std::runtime_error. + + Other: + * Update cc::options::tr to modify the thrown exception + * Rename _check_re_error + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/options.h +src/cc/re.cpp + +commit fc7455f +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + Move cc::options exceptions to cc::error + + Other: + * Add cc::error::config + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/error.h +src/cc/main.cpp +src/cc/options.h + +commit 1bf67ec +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + cc::application: Revise parse_prefer_format + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit cb8922d +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + cc::application: Rename vst to vs (std::vector<std::string>) + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit 4389ac9 +Merge: c6591e6 fef8987 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-11-03 + + Merge https://github.com/luolimao/cclive into next + +commit fef8987 +Author: Limao Luo <luolimao@gmail.com> +Date: 2013-11-02 + + %e has been renamed to %s + +src/cc/options.h + +commit c6591e6 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-26 + + AC_PREREQ: Bump to 2.69 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac + +commit 15a94c5 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-08 + + Update NEWS for v0.9.2 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +NEWS + +commit 86978ab +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-08 + + Bump the required Boost version to v1.49 + + Filesystem of Boost v1.42 is outdated and without the much improved v3. + It's time to move on. + + Debian Wheezy packages Boost v1.49 which is why this version was chosen. + Squeeze packages Boost v1.42. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +README +configure.ac + +commit 01f93de +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-08 + + Use HAVE_WORKING_(V)FORK blocks instead of HAVE_FORK + + With some configurations AC_FUNC_FORK would set only HAVE_VFORK causing + cclive to be compiled (incorrectly) without the --background option. + + * Check for HAVE_WORKING_(V)FORK instead of just HAVE_FORK + * Define 'vfork' as 'fork' + + Links: + [1]: http://is.gd/lPa836 (AC_FUNC_FORK) + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/background.cpp +src/cc/internal.h +src/cc/options.h + +commit 1a56f54 +Merge: ac7250d 1af4d95 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + Merge branch 'tg/next__redo_input' into next + +commit 1af4d95 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + DOC: INPUT: Add a "file://" note + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 6db9fc4 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + Update main for rewritten cc::input + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/main.cpp + +commit bfe9c04 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + Update cc::applications for rewritten cc::input + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit 81303f9 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + Improve cc::input (complete rewrite) + + Instead of testing whether the input URL is a "regular file" and + throwing (an obscure) "not an URL or a file" warning: + + * Check the URL for an URI scheme, append (unless a "file") + + * If none was found, try opening it (as a file), and if that fails + - Throw an error (with a system provided errno-based message) + + Other notable changes: + * More informative error messages + * New prerequisite for glibmm + * Make cc::input header-only + * Add support for "file://" + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/input.h + +commit bf400e7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + Remove cc/input.cpp + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am +src/cc/input.cpp + +commit f9268c0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + Add cc::fstream + + This is a drop-in (header-only) replacement for the STL file streams. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am +src/cc/fstream.h +src/ccfstream + +commit 363a69e +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + src/Makefile.am: Add glibmm_{CFLAGS,LIBS} + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am + +commit bdcec97 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + configure.ac: Add PKG_CHECK_MODULES([glibmm]) + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac + +commit 8d00c05 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-07 + + README: Add glibmm to Requirements + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +README + +commit ac7250d +Merge: 50213d7 6eaeeb7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-05 + + Merge branch 'tg/next__redo_opts' into next + +commit 6eaeeb7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + [DOC] Network: Reorganize options into alphabetical order + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit b9a5c78 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + [DOC] Output: Reorganize options into alphabetical order + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 30afedc +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + [DOC] Informative: Reorganize options into alphabetical order + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 87d9723 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + [DOC] Core: Reorganize options into alphabetical order + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit b28e1f7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + [DOC] Add new option short names + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 1b5b6d1 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + [DOC] --retry-wait: Add a note about value 0 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 6426f8f +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + [DOC] --update-interval: Accepts now integers only + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 2d0b4f6 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + [DOC] Move --agent to Network section + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 70e9043 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + [DOC] Move --progressbar, --update-interval to Output section + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 83b7050 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-03 + + [DOC] --stream: Add missing "config:" + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit e43eada +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + main: Use cc::error, catch cc::options::exit_program + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/main.cpp + +commit 9cfb2fb +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + Update quvi::query (of compat) for rewritten cc:options + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/query.h +src/compat/query_pt4.cpp +src/compat/query_pt9.cpp + +commit df0f625 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + Update util.h for rewritten cc::options + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/util.h + +commit e086cde +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + Update cc::application for rewritten cc::options + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/application.h + +commit 888d42a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + Update cc::progressbar for rewritten cc::options + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/progressbar.cpp +src/cc/progressbar.h + +commit 551a9b0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + Update cc::input for rewritten cc::options + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/input.cpp +src/cc/input.h + +commit 5864990 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + Update cc::get for rewritten cc::options + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/get.cpp + +commit 38605f2 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + Update cc::file for rewritten cc::options + + Other: + * Leave CURLOPT_MAX_RECV_SPEED_LARGE for curl_setup + * Rely cc::options for setting default values (e.g. --tr) + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp +src/cc/file.h + +commit 3d1b858 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + Update cc/exec.cpp for rewritten cc::options + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/exec.cpp + +commit 4938205 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + Update cc/curl.cpp for rewritten cc::options + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/curl.cpp + +commit c0cb7ec +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + Add cc::error (cc/error.h) + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am +src/cc/error.h +src/ccerror + +commit 8c27a3a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + internal.h: Add Boost.PO version check, if(n)_optsw_given macros + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/internal.h + +commit 314e722 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-08-02 + + Improve cc:options (complete rewrite) + + This rewrite addresses some of the inefficiencies of using the + Boost.Program_Options. + + Notable changes: + + * Add a workaround for the Boost.PO "error: multiple occurrences" bug + - Some versions of Boost (confirmed: v1.49) PO do not provide the + option name with the "multiple occurrences" error. + + * cc::options now checks and warns if the option is deprecated + + * Improved option grouping which benefits the --help output + + * More informative parser error messages that indicate: + - If the error occurred while parsing the config or cmdline + - If value (e.g. type) validation failed + + * The use of "flags" (added in v0.7.12) was replaced with + .bool_switch() and .as<bool>() + + * A short-option name was added for for-each option + + * cc::options is now header-only + + Backwards-compatibility breaking changes: + + * --update-interval now accepts integers only + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am +src/cc/options.cpp +src/cc/options.h + +commit 50213d7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-07-27 + + Add --timestamp: Try to preserve modification time (PORT) + + Try to preserve the file modification time (as returned by the server, + if any). Using this option will cause the program to change the + modification time of the file to that of returned by the server. + + NOTE: libcurl will parse this value from the returned "Last-Modified" + HTTP header. This header may not always be present in which case + the program will quietly ignore this option. + + Ported from maint-0.7: + * Add --timestamp: Try to preserve modification time (357e4acff) + * DOC: cclive(1): Document --timestamp (4799c210b) + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt +src/cc/file.cpp +src/cc/options.cpp +src/cc/options.h + +commit e8a092c +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-07-16 + + Update NEWS for v0.9.1 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +NEWS + +commit 7ab7c41 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-07-16 + + FIX: cc/input.cpp: error: "clog" is not a member of "std" + + Include iostream to fix this with some configurations. + (found on Debian Squeeze, gcc 4.4.5, Boost 1.42) + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/input.cpp + +commit eb19265 +Merge: 0019e62 65f8373 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-07-16 + + Merge branch 'tg/next__ext__version_output' into next + +commit 65f8373 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-07-16 + + --version: Add CXX and CXXFLAGS to the output + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit 50a98b1 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-07-16 + + configure.ac: AC_DEFINE_UNQUOTED: CXXFLAGS and CXX + + Other: + * Remove unused AC_DEFINE_UNQUOTED([CANONICAL_HOST]) + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac + +commit 9e6e50e +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-07-16 + + --version: Provide additional info about libquvi + + When built with libquvi: + * 0.9: Append {time,target,(cc)flags,...} to the output + * 0.4: Use QUVI_VERSION_LONG instead of QUVI_VERSION + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/util.cpp + +commit 0019e62 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-07-09 + + FIX: configure.ac: AS_IF for date(1) + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac + +commit f19cfc1 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-07-09 + + configure.ac: Require a2x when building from git + + Copied over from libquvi {6cdebfd, 6612228}. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac + +commit 2294e93 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-06-30 + + --print-streams: Make output similar to quvi(1) 0.9+ + + The new output format is cleaner and makes better use of the space. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit ed145f4 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-06-28 + + main: catch boost::exception + + * Implement a static function `print' that dumps the boost::exception + * Catch the boost::exception in `main' + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/main.cpp + +commit f045a69 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-06-28 + + cc::options::parse: throw error with file name + + Make a distiction of "command line" and "config file" parsing error. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/options.cpp + +commit ad214c7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-06-27 + + --filename-format: Remove depr. support for %h sequence + + libquvi 0.9+ removes the "host ID" media property, remove the support + for the %h sequence from cclive. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp + +commit 993a0be +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-06-27 + + Make --stream configurable + + Add support for reading the "stream" from the configuration file. The + deprecated "prefer-format" value will now only be used if "stream" is + "default". + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/options.cpp + +commit 75b56d7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-06-27 + + DOC: Move --prefer-format under Deprecated section + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit f55f70d +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-06-27 + + Deprecate --prefer-format in favor of --stream with libquvi 0.9+ + + Add a notice to suggest using "--stream" instead of "--prefer-format" + when cclive was built with libquvi 0.9+. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/options.cpp + +commit 6c1f678 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-06-27 + + --version: Print copyr notice to stderr instead of stdout + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit 7d94207 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-06-27 + + Rewrite status_callback for libquvi v0.9.2 + + libquvi v0.9.2 adds "user_data" to the quvi_callback_status. Adapt to + the changes. + + Other: + * Rename the parameters + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit 4ed85b9 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-06-27 + + compat: Use quvi_errcode added in libquvi v0.9.2 + + libquvi v0.9.2 removes the QUVI_INFO_ERROR_CODE and adds the + quvi_errcode. Use it, instead. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/error_pt9.cpp + +commit 3adb977 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-06-07 + + FIX: compat: media_impl inherits media_base + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/media.h + +commit 61da6e7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-31 + + Throw "no input URL" from cc::input + + The exception (std::runtime_error) will be caught in the `main' function. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/input.cpp + +commit 3d35e5e +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-31 + + Move --support implementation to print_support + + This allows us to initialize libquvi after parsing the input URLs. The + rationale behind this is that it is pointless to initialize libquvi + unless we have input. + + `--support' on the other hand requires this immediately, therefore + dedicate the `print_support' function for this purpose. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit 6c86374 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-31 + + Catch cc::options thrown exception in main + + Do not catch the std::exception thrown from `cc::options::parse' in + `cc::application::exec', catch it in the `main' function instead. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/main.cpp + +commit fecf98f +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-31 + + Rename cc::options::exec to cc::options::parse + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/options.cpp +src/cc/options.h + +commit 4c02ae4 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-31 + + FIX: Create cc::input instance once + + Do not create a cc::input instance more than once. + + Other: + * Set n to input_urls.size only once + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit 225f032 +Merge: 47b5258 75d1b5c +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + Merge branch 'tg/next__improve_input_parsing' into next + +commit 75d1b5c +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + DOC: cclive(1): Revise INPUT section + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit b27e939 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + cc::application: Remove unused functions {read_from,is_url} + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit 57184a0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + cc::application: Use cc:input + + * Remove unused function `make_unique' + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit ad1f2e6 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + Add cc::input -- improve input parsing + + The new implementation improves the input parsing: + * Support reading RFC2483 (making it possible to use with quvi 0.9+) + * Input URLs are now properly unescaped automagically + + The command will read stdin by default. The input is expected to contain + URLs. The command arguments are expected to be either URLs or file + paths. If the input is read from either stdin or a file, the contents + are read as RFC2483. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am +src/cc/input.cpp +src/cc/input.h +src/ccinput + +commit 47b5258 +Merge: 5ea120c 3ebdc5b +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + Merge branch 'tg/next__add_prerequisite_glib' into next + +commit 3ebdc5b +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + README: Add GLib to Requirements + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +README + +commit b421eb4 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + Makefile.am: {CPPFLAGS,LDADD}: Add glib + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am + +commit 0eb3280 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + configure.ac: Check for glib + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac + +commit 5ea120c +Merge: 8992391 768b0d5 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + Merge branch 'tg/next__relicense_under_agplv3' into next + +commit 768b0d5 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + COPYING: Update for AGPLv3+ + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +COPYING + +commit d10c844 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + DOC: cclive(1): Update LICENSE section for AGPLv3+ + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 15b7a45 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + shell scripts: Update license headers for AGPLv3+ + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +bootstrap.sh +gen-news.sh +gen-ver.sh + +commit 1044c88 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + README: Update "License" for AGPLv3+ + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +README + +commit 6bdfdc1 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + cc: Relicense under AGPLv3+ + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/application.h +src/cc/background.cpp +src/cc/curl.cpp +src/cc/error.cpp +src/cc/exec.cpp +src/cc/file.cpp +src/cc/file.h +src/cc/get.cpp +src/cc/internal.h +src/cc/log.cpp +src/cc/log.h +src/cc/main.cpp +src/cc/options.cpp +src/cc/options.h +src/cc/progressbar.cpp +src/cc/progressbar.h +src/cc/re.cpp +src/cc/re.h +src/cc/util.h +src/cc/wait.cpp + +commit 3f384e5 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + compat: Relicense under AGPLv3+ + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/error.h +src/compat/error_pt4.cpp +src/compat/error_pt9.cpp +src/compat/media.h +src/compat/media_pt4.cpp +src/compat/media_pt9.cpp +src/compat/options.h +src/compat/query.h +src/compat/query_pt4.cpp +src/compat/query_pt9.cpp +src/compat/util.cpp +src/compat/util.h + +commit 6643a0c +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + ccquvi: Relicense under AGPLv3+ + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/ccquvi + +commit 8992391 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-30 + + Remove unused depr_msg + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit 64e80a7 +Merge: 9dcf432 5314a8a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-26 + + Merge branch 'tg/next__doc_revise' into next + +commit 5314a8a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-26 + + DOC: --print-streams: Use word "Print" instead of "Query" + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 239d901 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-26 + + DOC: EXAMPLES: Add --stream with libquvi 0.9+ + +doc/man1/cclive.1.txt + +commit 7f16389 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-26 + + DOC: EXAMPLES: Remove note about quotation marks + +doc/man1/cclive.1.txt + +commit 401e8c0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-26 + + DOC: Revise --stream description + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 9dcf432 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-25 + + Update NEWS for v0.9.0 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +NEWS + +commit 8e3aa76 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-24 + + cc::application: Remove unused _close function + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/application.h + +commit 4cc2af0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-24 + + status callbacks: Remove all randomness + + Decorative. Bloat. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit c470070 +Merge: ca5e80f ff2f805 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-24 + + Merge branch 'tg/next__remove_depr_features' into next + +commit ff2f805 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-24 + + cc/options.cpp: Remove unused warn_depr function + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/options.cpp + +commit 8d2ac37 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-24 + + Remove depr. --subst + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt +src/cc/file.cpp +src/cc/options.cpp + +commit 0392fb0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-24 + + Remove depr. --regexp + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt +src/cc/file.cpp +src/cc/options.cpp + +commit e8114a0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-24 + + Remove depr. --query-formats + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt +src/cc/application.cpp +src/cc/options.cpp +src/cc/options.h + +commit e32fc26 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-24 + + Remove depr. --format + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt +src/cc/application.cpp +src/cc/options.cpp + +commit ca5e80f +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-24 + + Add build time to --version output + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac +src/cc/application.cpp + +commit 474c143 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-24 + + Merge --version and --license options + + Add a brief license notice to the --version output. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt +src/Makefile.am +src/cc/application.cpp +src/cc/license.cpp +src/cc/options.cpp +src/cc/options.h + +commit 293dbc9 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-24 + + FIX: Skip transfer with USR1, do not retry transfer + + Sending the USR1 signal to the program should cause the program to + skip the transfer, not retry it. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp + +commit 3642730 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-23 + + Add config.aux/ar-lib to .gitignore + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +.gitignore + +commit e80cdf2 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-23 + + Workaround: AM_PROG_AR + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac + +commit 4ed1530 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-23 + + README: Revise adding aptitude examples + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +README + +commit b57e47b +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-22 + + FIX: Regression in retrying introduced by 4b118378 + + The commit 4b118378 introduced a case of an "if-statement with an empty + body", causing the program to attempt retrying with both succeeded and + failed transfers (when --no-download was not used). In doing so, the + program would also completely skip invoking the --exec command with the + succeeded transfers (when retried). + + Affected versions: + v0.7.12 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/get.cpp + +commit 982bbc7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-21 + + Update m4/boost.m4 to the latest + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +m4/boost.m4 + +commit 2d00a4a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-21 + + DOC: cclive(1): Uncomment any 0.9+ related text + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit 3edb4b0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-05-19 + + gen-news.sh: Do not print release author + + Trivial information. Release date matters. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +gen-news.sh + +commit 925976d +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-04-16 + + gen-news.sh: Do not print commits with >1 one parent + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +gen-news.sh + +commit 8232fc2 +Merge: 90d8d38 3eda725 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-04-14 + + Merge branch 'tg/next/0.7__extend_libquvi_compat_to_0.9' into next + +commit 3eda725 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + cc: application.cpp: Revise for libquvi 0.9 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit cf0f430 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + cc: curl_setup: Set CURLOPT_USERAGENT if libquvi 0.4 + + Set CURLOPT_USERAGENT only if we're compiling cclive with libquvi 0.4. + + While it is possible to set CURLOPT_USERAGENT with libquvi 0.9, the + preferred method is setting QUVI_OPTION_USER_AGENT. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/curl.cpp + +commit d26dee7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + cc: application.cpp: Reuse libquvi created curl handle + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit a847638 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + cc::file: _restore: Revise + + Restore {progress,write,encoding} options for curl. Setting + CURLOPT_HEADER to 1L is unneccessary. Remove it. Disable throttling for + media page fetches. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp + +commit 6a02958 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + cc: Remove curl_{new,free} functions + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/curl.cpp +src/cc/util.h + +commit f534845 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + compat: quvi::options: add useragent + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/options.h + +commit f09799d +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + compat: setup_curl: return curl handle + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/query.h +src/compat/query_pt4.cpp +src/compat/query_pt9.cpp + +commit 234aa3b +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + compat: query.h: Add class query_pt9 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/query.h + +commit 17e96d2 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + compat: media.h: Add class media_pt9 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/media.h + +commit 85b01db +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + compat: error.h: Add class error_pt9 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/error.h + +commit 3b2d591 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + compat: Add query_pt9.cpp + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/query_pt9.cpp + +commit 1c3980b +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + compat: Add media_pt9.cpp + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/media_pt9.cpp + +commit 99d60f5 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + compat: Add error_pt9.cpp + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/compat/error_pt9.cpp + +commit a41b8c6 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + src/Makefile.am: Add HAVE_LIBQUVI_0_9 block + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am + +commit d2fa54b +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + Update ccquvi header for libquvi 0.9+ + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/ccquvi + +commit 99b47eb +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + README: Bump libquvi prereq. to 0.4.0+ + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +README + +commit d2cc174 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + configure.ac: Check for libquvi 0.9+ + + Drop check for libquvi 0.2.16.x which has been abandoned + for quite sometime now. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac + +commit 90d8d38 +Merge: 923878a 0684782 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-26 + + Merge branch 'tg/next/0.7__asciidoc.conf' into next + +commit 0684782 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-26 + + man1: cclive.1.txt: Revise for asciidoc.conf + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit c1dc8ac +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-26 + + man1: Makefile.am: Use ASCIIDOC_OPTS with a2x + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/Makefile.am + +commit ff426b7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-26 + + doc: Add asciidoc.conf + + This file adds the linkman macro. See the comment field for the + instructions. This is a modified version from the pacman (of Arch Linux) + source tree uses to produce the manpages: this macro does not insert + <date>. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/Makefile.am +doc/asciidoc.conf + +commit 923878a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-23 + + FIX: ‘cc::write_data::f’ will be initialized after ... + + Fixes the error: + src/cc/file.cpp:146: error: ‘cc::write_data::f’ will be initialized after + src/cc/file.cpp:145: error: ‘std::ofstream* cc::write_data::o’ + src/cc/file.cpp:116: error: when initialized here + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp + +commit 239ea61 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-06 + + Add short-option for --verbose-libcurl + +doc/man1/cclive.1.txt +src/cc/options.cpp + +commit 7d8d0d9 +Merge: 8a0f7fe 15b64d6 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-07 + + Merge branch 'tg/next/0.7__print_config' into next + +commit 15b64d6 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-06 + + default values to switches that should show with --print-config + + Add the default values to the switches that should show up + in the --print-config output. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/options.cpp + +commit cc2a163 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-06 + + cclive.1: Add --print-config + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.txt + +commit bf22b60 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-03-06 + + Add --print-config + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/options.cpp +src/cc/options.h + +commit 8a0f7fe +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-10 + + Update news for v0.7.12 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +NEWS + +commit 6f2e711 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-03 + + FIX: Do not ignore I/O errors during file transfer + + Confirm that each data chunk was properly written to the file, and + stop the transfer if an error (e.g. device runs out of space) occurs. + + Other: + * Encapsulate the file stream opening/closing (`write_data' class) + + See also: + * http://bugs.debian.org/699484 + + Reported-by: Jakub Wilk <jwilk@debian.org> + Relayed-by: Ansgar Burchardt <ansgar@debian.org> + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp +src/cc/file.h + +commit 066b4c2 +Merge: adb2531 cf71189 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-02 + + Merge branch 'tg/next/0.7/__pod_to_asciidoc' into next + +commit cf71189 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-02 + + Remove doc/man1/cclive.1 from .gitignore + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +.gitignore + +commit f47073b +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-02 + + boostrap.sh: Remove gen_manual + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +bootstrap.sh + +commit 4fe8056 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-02 + + Installation from the repo: Add asciidoc prereq + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +README + +commit c100a94 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-02 + + man: Switch from pod to asciidoc + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/Makefile.am +doc/man1/cclive.1.pod +doc/man1/cclive.1.txt + +commit b9e212b +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-02 + + Makefile.am: Add "doc" target + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +Makefile.am + +commit 878a46f +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-02 + + configure.ac: Add a2x check + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac + +commit adb2531 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-02 + + Rename autogen.sh -> bootstrap.sh + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +README +autogen.sh +bootstrap.sh + +commit c296f59 +Merge: dc08e4c 949d476 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-02 + + Merge branch 'tg/next/0.7__depr_format_related_opts' into next + +commit 949d476 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-10 + + Deprecate --format, add --stream + + libquvi 0.9: + * will refer to the media streams by their IDs + (not as "media formats") + + As a result of this: + * Deprecate `--format' + * Add `--stream' + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/options.cpp + +commit 7188199 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-10 + + Deprecate --query-formats, add --print-streams + + libquvi 0.9: + * will refer to the media streams by their IDs + (not as "media formats") + + As a result of this: + * Deprecate `--query-formats' + * Add `--print-streams' + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/options.cpp +src/cc/options.h + +commit dc08e4c +Merge: 7ae4605 4b11837 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-02-02 + + Merge branch 'tg/next/0.7__add_quvi_compat_layer' into next + +commit 4b11837 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Use quvi compatibility layer + + Other notable changes: + + * multi-segmented media is no longer supported + (unused and deprecated, libquvi 0.9 will no longer support + this, either) + + * --filename-format: %h sequence has been removed + (removed also in libquvi 0.9) + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/background.cpp +src/cc/file.cpp +src/cc/file.h +src/cc/get.cpp +src/cc/progressbar.cpp +src/cc/progressbar.h +src/cc/util.h +src/cc/wait.cpp + +commit cda6cc4 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Add quvi compatibility layer + + The purpose of this layer is to provide a common interface for + cclive to work together with both 0.4 and 0.9 release of libquvi. + cclive may be compiled with either one, not both. + + 0.9 support remains to be implemented. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am +src/ccquvi +src/compat/error.h +src/compat/error_pt4.cpp +src/compat/media.h +src/compat/media_pt4.cpp +src/compat/options.h +src/compat/query.h +src/compat/query_pt4.cpp +src/compat/util.cpp +src/compat/util.h + +commit 231156b +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Remove src/quvi/ + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/quvi/ccquvi.h +src/quvi/err.cpp +src/quvi/media.cpp +src/quvi/misc.cpp +src/quvi/opts.cpp +src/quvi/query.cpp +src/quvi/url.cpp + +commit 7ae4605 +Merge: c436150 b14b764 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-13 + + Merge branch 'tg/next/0.7__cleanup' into next + +commit b14b764 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-12 + + options: Add warn_depr + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/options.cpp + +commit a0f2897 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Include ccinternal + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/exec.cpp +src/cc/license.cpp +src/cc/log.cpp +src/cc/main.cpp +src/cc/re.cpp + +commit ec969f1 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-10 + + Add short-option -v + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.pod +src/cc/options.cpp + +commit 717a79d +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + --help: exit with application::ok + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit 899d45a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-12-09 + + cc/license.cpp: Revise + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/license.cpp + +commit ea1ae0e +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + configure.ac: Add AC_C_INLINE + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac + +commit e0d86ed +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + configure.ac: AC_CHECK_FUNCS: Add memset, setlocale + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +configure.ac + +commit eed0806 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Inline cc::options::operator<< function + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/options.cpp +src/cc/options.h + +commit 4a6c089 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Inline cc::log + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/log.cpp +src/cc/log.h + +commit 5beb251 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Inline cc::file + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp +src/cc/file.h + +commit 8a279a6 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Add short-option -h + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.pod +src/cc/options.cpp + +commit d751efb +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Add cc::curl_* functions + + Add a set of cc::curl_{new,free,setup} functions. + + Do not reuse the libcURL handle from libquvi, create a new one instead. + Remove quvi::query::curlHandle function, altogether. + + Remove CURLOPT_{DNS_CACHE,CONNECT}TIMEOUT from cc::file::_set, they are + now set in cc::curl_setup. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/Makefile.am +src/cc/application.cpp +src/cc/application.h +src/cc/curl.cpp +src/cc/file.cpp +src/cc/util.h +src/quvi/ccquvi.h +src/quvi/query.cpp + +commit 8491607 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + get: Pass libcURL handle instead of quvi::query ref + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/file.cpp +src/cc/file.h +src/cc/get.cpp +src/cc/util.h + +commit bd240e9 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + file: Add _set and _restore + + Have these two functions wrap the libcURL options. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp + +commit 7786de9 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + get: Move retry increment line + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/get.cpp + +commit 0d65568 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + progressbar::update: return int + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/progressbar.cpp +src/cc/progressbar.h + +commit 01b4e33 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-12-08 + + Add cc_debug + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/log.cpp +src/cc/log.h + +commit 277bf7a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Set locale to LC_ALL + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/main.cpp + +commit e41612d +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Return application:ok + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp + +commit c436150 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Upgrade boost.m4 to the latest + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +m4/boost.m4 + +commit 1ff4021 +Merge: 3c3b208 777d82a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + Merge branch 'tg/next/0.7_config_flags' into next + +commit 777d82a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + doc: Revise manual + + Move the now configurable 'continue' and 'no-resolve' options under + the OPTIONS - CONFIGURATION section. Revise the configuration file + example. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +doc/man1/cclive.1.pod + +commit 4afab3e +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + options: Make 'no-resolve' configurable + + Allow specifying the value for the 'no-resolve' in + the configuration file. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/options.cpp + +commit 92bd61f +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + options: Make 'continue' configurable + + Allow specifying the value for the 'continue' in + the configuration file. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/options.cpp + +commit a1ae52c +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + main.cpp: include stdexcept + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/main.cpp + +commit a50702f +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + progressbar: Revise to use the global cc::opts + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/progressbar.cpp +src/cc/progressbar.h + +commit 02b94a1 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + get: Revise to use the global cc::opts + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/get.cpp + +commit 415f47a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + file: Revise to use the global cc::opts + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/file.cpp +src/cc/file.h + +commit 9971de0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + exec: Revise to use the global cc::opts + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/exec.cpp + +commit 29e460c +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + util.h: Revise removing variables_map + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/util.h + +commit 97c2497 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + application: Revise to use the global cc::opts + + Use the flag values instead. Make _tweak_curl_opts and _set_format_string + functions static functions. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/application.cpp +src/cc/application.h + +commit 84c49fd +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2013-01-09 + + options: Read cmdline flags into bool variables + + Read flags (or switches) into boolean variables instead of using + boost::program_options::variables_map for storage, making it possible to + read the same variables from the configuration file with the expected + results. + + For example: + $ grep < ~/.ccliverc cont + continue = {1,true,0,false} # boost::program_options would parse all + # four as "continue=1" + + By forcing the use of "zero_tokens" and reading the value into a boolean + variable, we get the expected results: + continue = {0,false} # continue=0 + continue = {1,true} # continue=1 + + Other: + Add cc::opts (an instance of cc::options) as a global variable which + may be accessed from other modules, making it possible to get away + without having to write a more complete cc::flags class to be passed + by reference along with boost::program_options::variables_map. + + Inline the cc::options::map function. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +src/cc/options.cpp +src/cc/options.h + +commit 3c3b208 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-12-12 + + Update NEWS for v0.7.11 + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +NEWS + +commit dcc4a72 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-12-12 + + FIX: gen-news.sh: Find the closest tagname + + Replaces the buggy tagname extraction with a proper one. + + Signed-off-by: Toni Gundogdu <legatvs@gmail.com> + +gen-news.sh + +commit 39b76b5 +Merge: e3e3117 03d69e0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-12-10 + + Merge branch 'as/next/0.7_regex_fixes' into next + +commit 03d69e0 +Author: Adam Sampson <ats@offog.org> +Date: 2012-11-24 + + Check .error() for user-provided regexps + + Without this, a regexp that PCRE can't compile will be accepted. + + (The one that made me spot this was actually a built-in default regexp that + used \pL, since I was testing with a version of PCRE without \p support; the + result was that title strings were silently cleared.) + +src/cc/re.cpp + +commit 5325ecc +Author: Adam Sampson <ats@offog.org> +Date: 2012-11-24 + + Copy strings passed to StringPiece + + PCRE's StringPiece doesn't copy the string it's given, so you shouldn't mutate + it afterwards. + +src/cc/re.cpp + +commit e3e3117 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-28 + + Remove examples/ subdir from repo + +examples/config + +commit d74a486 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-28 + + Update NEWS for v0.7.10 + +NEWS + +commit b93d7a7 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-28 + + gen-news.sh: Produce stats + +gen-news.sh + +commit 99bd1b2 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-27 + + main: Use exit_status, have caught exceptions set exit status + +src/cc/main.cpp + +commit af6c35e +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-25 + + Remove scripts/ from the repo + +scripts/astyle_cpp.sh + +commit 063ee3e +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + DOC: Manual: Minor changes + +doc/man1/cclive.1.pod + +commit fe31766 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + DOC: Manual: Revise description for option sections + + Revise the description: + * Options - command line + * Options - configuration + + Add: + * Input section + +doc/man1/cclive.1.pod + +commit da6c39a +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + configure.ac: Add AC_PROG_LN_S + +configure.ac + +commit 4acb634 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + AC_MSG_NOTICE: Revise output + +configure.ac + +commit def80d8 +Merge: 4bec9c3 c34c302 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + Merge branch 'tg/0.7/enable_ccl_by_default' into next + +commit c34c302 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + README: configure: Revise option descriptions + +README + +commit e394f71 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + install-exec-hook: Remove ccl if it exists + + Remove ccl symlink if it exists already, and then add a new symlink. + +src/Makefile.am + +commit 9ecaaf8 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + configure.ac: Install ccl symlink by default + +configure.ac + +commit 4bec9c3 +Merge: 1044d88 0f39e93 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + Merge branch 'tg/0.7/modernize_autotools_integration' into next + +commit 0f39e93 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + configure.ac: Modernize libtool options + +configure.ac + +commit e8689b0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + Add missing AUTHORS file + +AUTHORS + +commit 76fd2d0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + configure.ac: Modernize AM_INIT options + +configure.ac + +commit 59fce53 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + configure.ac: Replace deprecated macros + + * AC_CANONICAL_SYSTEM -> AC_CANONICAL_TARGET + * AC_GNU_SOURCE -> AC_USE_SYSTEM_EXTENSIONS + +configure.ac + +commit dff9e6e +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + Remove INSTALL file from the repo + +.gitignore +INSTALL + +commit a90c854 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + Append contents of INSTALL file to README file + + Leave the INSTALL file for GNU Autotools to produce. + +README + +commit 1044d88 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-24 + + boost.m4: Update to the most recent + + src: http://github.com/tsuna/boost.m4/raw/master/build-aux/boost.m4 + ref: https://github.com/tsuna/boost.m4 + +m4/boost.m4 + +commit 8b95bd1 +Merge: eba5bdd 5e9b65c +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + Merge branch 'tg/0.7/revise_autogen.sh' into next + +commit eba5bdd +Merge: a3690b0 6690303 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + Merge branch 'tg/0.7/fix_exit_status' into next + +commit 5e9b65c +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + autogen.sh: Add copyright notice + +autogen.sh + +commit a3690b0 +Merge: e317832 8bc2479 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + Merge branch 'tg/0.7/new_gen-ver.sh' into next + +commit 6690303 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + DOC: Rewrite EXIT STATUS section + +doc/man1/cclive.1.pod + +commit 80dad48 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + autogen.sh: Revise the displayed warning + +autogen.sh + +commit 8bc2479 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + autogen.sh: gen_manual: Use gen-ver.sh value + +autogen.sh + +commit 980792e +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + Replace "invalid_option" with "error" + +src/cc/application.cpp + +commit be9d1b0 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + autogen.sh: Run podchecker on manual POD + +autogen.sh + +commit 4f0d4a8 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + configure.ac: Run gen-ver.sh to get version value + + Use the gen-ver.sh returned value with AC_INIT. Replace project URLs + with new ones. + +configure.ac + +commit 36158a1 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + go_background: Return application:error instead + +src/cc/background.cpp + +commit 99e88a6 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + autogen.sh: +x mode + +autogen.sh + +commit 3f36f24 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + gen-ver.sh: Remove -m option + +gen-ver.sh + +commit 4d3c506 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + FIX: Return non-zero exit status if failure (#18) + + Return a non-zero value if an error occurred. + + ref: http://sourceforge.net/apps/trac/cclive/ticket/18 + +src/cc/application.cpp + +commit d1e6bae +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + Remove version.m4 + +m4/version.m4 + +commit 20cbf6d +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + exit_status: Redefine as ok and error + + Report success and failure in broad manner, using application::ok + (EXIT_SUCCESS) for success and application::error (EXIT_FAILURE) + for failure. + +src/cc/application.h + +commit df0a4ce +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-08-23 + + gen-ver.sh: Rewrite completely + + * Use dirname(1) output + * Add support for -c and -m options + * Do not extract version from m4/version.m4 + +gen-ver.sh + +commit e317832 +Author: Toni Gundogdu <legatvs@gmail.com> +Date: 2012-04-03 + + Lower AC_PREREQ to 2.67 + +configure.ac + commit ec42b14 Author: Toni Gundogdu <legatvs@gmail.com> Date: 2012-03-03
View file
cclive-0.7.9.tar.bz2/INSTALL -> cclive-0.9.3.tar.xz/INSTALL
Changed
@@ -1,38 +1,370 @@ +Installation Instructions +************************* +Copyright (C) 1994-1996, 1999-2002, 2004-2011 Free Software Foundation, +Inc. -Prerequisites -------------- + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. -* libquvi (0.2.16.1+) -* libboost (1.42.0+) -* libpcre(cpp) (8.02+) -* libcurl (7.20.0+) +Basic Installation +================== -Note that cclive may or may not compile with earlier versions. -The above versions are the ones that I've tested. + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). -Installation from source ------------------------- + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. -"./configure && make install", typically. See also "./configure --help". -If you are compiling cclive from the development code from the git -repository, see "Installation from development code", instead. + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. - --enable-ccl Make a symbolic link from 'cclive' (binary) to 'ccl' - --without-manual Do not install manual page(s) + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + The simplest way to compile this package is: -Installation from development code ----------------------------------- + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. -If you are compiling cclive from the development code, run "autogen.sh", -first. This generates the configuration files that are not in the git -repository. You will need: + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. - * Perl (with pod2man) - * GNU autoconf - * GNU automake + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + HP-UX `make' updates targets which have the same time stamps as +their prerequisites, which makes it generally unusable when shipped +generated files such as `configure' are involved. Use GNU `make' +instead. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `<wchar.h>' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. -Once the files have been generated, follow the instructions in "Installation -from source" above.
View file
cclive-0.7.9.tar.bz2/Makefile.am -> cclive-0.9.3.tar.xz/Makefile.am
Changed
@@ -6,7 +6,7 @@ SUBDIRS+= doc endif -.PHONY: ChangeLog VERSION +.PHONY: ChangeLog VERSION doc VERSION: @if test -d "$(top_srcdir)/.git" -o -f "$(top_srcdir)/.git"; then \ @@ -19,4 +19,7 @@ --after="Thu Aug 12 15:54:58 2010" > $@; \ fi +doc: + @make -C $(top_builddir)/doc/man1/ doc + dist-hook: ChangeLog VERSION
View file
cclive-0.7.9.tar.bz2/Makefile.in -> cclive-0.9.3.tar.xz/Makefile.in
Changed
@@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.11.3 from Makefile.am. +# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -15,6 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -38,16 +55,15 @@ subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/config.h.in \ - $(top_srcdir)/configure COPYING ChangeLog INSTALL NEWS \ - config.aux/config.guess config.aux/config.sub \ - config.aux/depcomp config.aux/install-sh config.aux/ltmain.sh \ - config.aux/missing + $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ + config.aux/ar-lib config.aux/config.guess \ + config.aux/config.sub config.aux/depcomp config.aux/install-sh \ + config.aux/ltmain.sh config.aux/missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/boost.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/version.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @@ -71,6 +87,11 @@ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ @@ -113,12 +134,13 @@ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" -DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 $(distdir).tar.xz GZIP_ENV = --best +DIST_ARCHIVES = $(distdir).tar.xz distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print +A2X = @A2X@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -155,6 +177,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ @@ -232,6 +255,10 @@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +glib_CFLAGS = @glib_CFLAGS@ +glib_LIBS = @glib_LIBS@ +glibmm_CFLAGS = @glibmm_CFLAGS@ +glibmm_LIBS = @glibmm_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -285,15 +312,15 @@ @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ - echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ - $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign Makefile + $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -507,13 +534,10 @@ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ @@ -546,6 +570,7 @@ dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) + dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__remove_distdir) @@ -575,8 +600,6 @@ $(am__remove_distdir) dist dist-all: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz - tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__remove_distdir) @@ -602,7 +625,7 @@ *.zip*) \ unzip $(distdir).zip ;;\ esac - chmod -R a-w $(distdir); chmod a+w $(distdir) + chmod -R a-w $(distdir); chmod u+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) @@ -792,7 +815,7 @@ uninstall uninstall-am -.PHONY: ChangeLog VERSION +.PHONY: ChangeLog VERSION doc VERSION: @if test -d "$(top_srcdir)/.git" -o -f "$(top_srcdir)/.git"; then \ @@ -805,6 +828,9 @@ --after="Thu Aug 12 15:54:58 2010" > $@; \ fi +doc: + @make -C $(top_builddir)/doc/man1/ doc + dist-hook: ChangeLog VERSION # Tell versions [3.59,3.63) of GNU make to not export all variables.
View file
cclive-0.7.9.tar.bz2/NEWS -> cclive-0.9.3.tar.xz/NEWS
Changed
@@ -1,3 +1,142 @@ +v0.9.3 [2013-11-23] + +Limao Luo: + - %e has been renamed to %s (--help) [fef8987] +Toni Gundogdu: + - AC_PREREQ: Bump to 2.69 [c6591e6] + - Cleanup and devise more C++ eloquence + - Add cc::sig [b3dfaf2] + - Setup sig{winch,usr1} handlers only once + - Use sigaction(2) instead of signal(2) + - cc::file + - Rewrite for cc::sig (sigusr1) [711dc10] + - Use updated cc::progressbar [8236649] + - _init: Rewrite/cleanup [fdf4565] + - cc::input: Do not unescape input URIs [34026cb] + - Reduce duplicate code [17a0e27] + - cc::log: Rewrite, make header-only [8a60f4e] + - cc::progressbar: Rewrite, make header-only [5431098] + - Rewrite for cc::sig (sigwinch) + - Use IEEE-1541 symbols + - cc::re: Throw Boost.Exception based exception [dc132f7] + + 22 files changed, 773 insertions(+), 859 deletions(-) + + +v0.9.2 [2013-08-08] + +Toni Gundogdu: + [!] glibmm 2.24+ is now a prerequisite + - Add --timestamp: Try to preserve modification time (PORT) [50213d7] + - Bump the required Boost version to v1.49 [86978ab] + - [DOC] --update-interval: Accepts now integers only [6426f8f] + - Improve cc::input (complete rewrite) [81303f9] + - Improve cc:options (complete rewrite) [314e722] + + 28 files changed, 1434 insertions(+), 873 deletions(-) + + +v0.9.1 [2013-07-16] + +Toni Gundogdu: + [!] GLib 2.24+ is now a prerequisite + [!] Relicense under AGPLv3+ + - Add cc::input -- improve input parsing [ad1f2e6] + - DOC: cclive(1): Revise INPUT section [75d1b5c] + - DOC: Revise --stream description [401e8c0] + - FIX: configure.ac: AS_IF for date(1) [0019e62] + - Deprecate --prefer-format in favor of --stream with libquvi 0.9+ [f55f70d] + - Rewrite status_callback for libquvi v0.9.2 [7d94207] + - Make --stream configurable [993a0be] + - Move --support implementation to print_support [3d35e5e] + - --filename-format: Remove depr. support for %h sequence [ad214c7] + - --print-streams: Make output similar to quvi(1) 0.9+ [2294e93] + - --version: Add CXX and CXXFLAGS to the output [65f8373] + - --version: Print copyr notice to stderr instead of stdout [6c1f678] + - --version: Provide additional info about libquvi [9e6e50e] + + 45 files changed, 976 insertions(+), 616 deletions(-) + + +v0.9.0 [2013-05-25] + +Toni Gundogdu: + - Add libquvi 0.9+ compatibility layer + - Add --print-config [bf22b60] + - Add short-option for --verbose-libcurl [239ea61] + - Drop libquvi 0.2.16.x support + - README: Bump libquvi prereq. to 0.4.0+ [99b47eb] + - FIX: Regression in retrying introduced by 4b118378 [b57e47b] + - FIX: Skip transfer with USR1, do not retry transfer [293dbc9] + - Merge --version and --license options [474c143] + - Add build time to --version output [ca5e80f] + - Remove all deprecated options/features + - Remove depr. --format [e32fc26] + - Remove depr. --query-formats [e8114a0] + - Remove depr. --regexp [0392fb0] + - Remove depr. --subst [8d2ac37] + - Update m4/boost.m4 to the latest [982bbc7] + + 28 files changed, 782 insertions(+), 422 deletions(-) + + +v0.7.12 -- [2013-02-10, r:Toni Gundogdu] + +Toni Gundogdu: + - Add quvi compatibility layer [cda6cc4] + - Add short-option -h [8a279a6] + - Add short-option -v [ec969f1] + - Deprecate --format, add --stream [949d476] + - Deprecate --query-formats, add --print-streams [7188199] + - doc: Revise manual [777d82a] + - FIX: Do not ignore I/O errors during file transfer [6f2e711] + - options: Make 'continue' configurable [92bd61f] + - options: Make 'no-resolve' configurable [4afab3e] + - Upgrade boost.m4 to the latest [c436150] + +See ChangeLog for a more detailed list of changes. + + 47 files changed, 1881 insertions(+), 1993 deletions(-) + + +v0.7.11 -- [2012-12-12, r:Toni Gundogdu] + +Adam Sampson: + - Check .error() for user-provided regexps [03d69e0] + - Copy strings passed to StringPiece [5325ecc] + + 3 files changed, 31 insertions(+), 19 deletions(-) + + +v0.7.10 (2012-08-28) / Toni Gundogdu + +Toni Gundogdu: + - Append contents of INSTALL file to README file [a90c854] + - README file will contain the cclive specific information + - INSTALL file will now be provided by GNU Autotools + - configure.ac: Add AC_PROG_LN_S [da6c39a] + - configure.ac: Install ccl symlink by default [9ecaaf8] + - configure.ac: Lower AC_PREREQ to 2.67 [e317832] + - configure.ac: Modernize AM_INIT options [76fd2d0] + - configure.ac: Modernize libtool options [0f39e93] + - configure.ac: Replace deprecated macros [59fce53] + - configure.ac: Run gen-ver.sh to get version value [4f0d4a8] + - DOC: Manual: Revise descriptions for option sections [fe31766] + - DOC: Rewrite EXIT STATUS section [6690303] + - FIX: Return non-zero exit status if failure (#18) [4d3c506] + - exit_status: Redefine as ok (EXIT_SUCCESS) and error (EXIT_FAILURE) [20cbf6d] + - Replace "invalid_option" with "error" [980792e] + - main: Use exit_status, have caught exceptions set exit status [99bd1b2] + - gen-ver.sh: Rewrite completely [df0a4ce] + - go_background: Return application::error instead [36158a1] + - Install ccl symlink now by default, see --disable-ccl in README + - install-exec-hook: Remove the 'ccl' symlink [e394f71] + - m4/boost.m4: Update to the most recent [1044d88] + - m4/version.m4: Remove the file [d1e6bae] + + 17 files changed, 206 insertions(+), 139 deletions(-) + + v0.7.9 (2012-03-03) / Toni Gundogdu Toni Gundogdu:
View file
cclive-0.7.9.tar.bz2/README -> cclive-0.9.3.tar.xz/README
Changed
@@ -1,3 +1,5 @@ +General +======= cclive is a tool for downloading media from YouTube and similar websites. It has a low memory footprint compared to other existing @@ -5,3 +7,104 @@ Home : http://cclive.sourceforge.net/ gitweb: http://repo.or.cz/w/cclive.git + +Installation +============ + +Notes +----- + +* This document does not cover how to use GNU Autotools for building + and installing software, instead, refer to the GNU Autotools + documentation, the INSTALL file and the "configure --help" output for + more information. + +* If you're not familiar with GNU Autotools and/or installing software + from the source code, you may prefer to install cclive using a binary + package, instead. You can find cclive packaged for many distros + already. + +* If you have previously installed cclive from the source code to your + system, the recommended practice is to uninstall the previous + installation first, before you continue with the new one. You would, + typically, run "make uninstall" (as root if necessary) from the same + directory you ran "make install" from. + +* If you are building cclive from the git repository code, run the + `bootstrap.sh' first. This generates the configuration files. See also + the -h output for any additional info. + + +Simple install procedure +------------------------ + + % ./configure && make + + [ Become root if necessary ] + % make install + +The configure script supports also the following options which are +relevant to the installation: + + --with(out)-manual + Install the manual page for cclive + + --(enable|disable)-ccl (default:yes) + Make a symbolic link from 'cclive' (executable) to 'ccl'. + + +Requirements +------------ + +* libquvi 0.4 + http://quvi.sourceforge.net/ + $ sudo aptitude install libquvi-dev + +* libpcre 8.02 + http://pcre.org + $ sudo aptitude install libpcre3-dev + +* libboost 1.49.0 + http://www.boost.org/ + $ sudo aptitude install libboost-program-options-dev libboost-system-dev \ + libboost-filesystem-dev libboost-iostreams-dev \ + libboost-date-time-dev + +* libcurl 7.20.0 + http://curl.haxx.se/ + $ sudo aptitude install libcurl4-gnutls-dev + (or libcurl4-openssl-dev) + +* glibmm 2.24.2 + http://library.gnome.org/devel/glibmm/ + $ sudo aptitude install libglibmm-2.4-dev + +* GLib 2.24.2 + http://library.gnome.org/devel/glib/ + $ sudo aptitude install libglib2.0-dev + +* pkg-config for tracking the compilation flags needed for libraries + http://www.freedesktop.org/software/pkgconfig/ + $ sudo aptitude install build-essential + +* GNU make is recommended + http://www.gnu.org/software/make/ + $ sudo aptitude install build-essential + + +How to report bugs +================== + +Please see: http://cclive.sourceforge.net/#bugs + + +Patches +======= + +Please see: http://cclive.sourceforge.net/contrib/ + + +License +======= + +cclive is Free Software, licensed under the GNU Affero GPLv3+.
View file
cclive-0.7.9.tar.bz2/VERSION -> cclive-0.9.3.tar.xz/VERSION
Changed
@@ -1,1 +1,1 @@ -v0.7.9 +v0.9.3
View file
cclive-0.7.9.tar.bz2/aclocal.m4 -> cclive-0.9.3.tar.xz/aclocal.m4
Changed
@@ -1,4 +1,4 @@ -# generated automatically by aclocal 1.11.3 -*- Autoconf -*- +# generated automatically by aclocal 1.11.6 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, # 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, @@ -14,8 +14,8 @@ m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],, -[m4_warning([this file was generated for autoconf 2.68. +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically `autoreconf'.])]) @@ -198,7 +198,7 @@ [am__api_version='1.11' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.3], [], +m4_if([$1], [1.11.6], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -214,11 +214,72 @@ # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.3])dnl +[AM_AUTOMAKE_VERSION([1.11.6])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +# Copyright (C) 2011 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_PROG_AR([ACT-IF-FAIL]) +# ------------------------- +# Try to determine the archiver interface, and trigger the ar-lib wrapper +# if it is needed. If the detection of archiver interface fails, run +# ACT-IF-FAIL (default is to abort configure with a proper error message). +AC_DEFUN([AM_PROG_AR], +[AC_BEFORE([$0], [LT_INIT])dnl +AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([ar-lib])dnl +AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) +: ${AR=ar} + +AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], + [am_cv_ar_interface=ar + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], + [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + ]) + ]) + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + m4_default([$1], + [AC_MSG_ERROR([could not determine $AR interface])]) + ;; +esac +AC_SUBST([AR])dnl +]) + # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. @@ -918,6 +979,25 @@ AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) +# Copyright (C) 2001, 2003, 2005, 2011 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
View file
cclive-0.9.3.tar.xz/config.aux/ar-lib
Added
@@ -0,0 +1,270 @@ +#! /bin/sh +# Wrapper for Microsoft lib.exe + +me=ar-lib +scriptversion=2012-03-01.08; # UTC + +# Copyright (C) 2010, 2012 Free Software Foundation, Inc. +# Written by Peter Rosin <peda@lysator.liu.se>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to <bug-automake@gnu.org> or send patches to +# <automake-patches@gnu.org>. + + +# func_error message +func_error () +{ + echo "$me: $1" 1>&2 + exit 1 +} + +file_conv= + +# func_file_conv build_file +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv in + mingw) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_at_file at_file operation archive +# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE +# for each of them. +# When interpreting the content of the @FILE, do NOT use func_file_conv, +# since the user would need to supply preconverted file names to +# binutils ar, at least for MinGW. +func_at_file () +{ + operation=$2 + archive=$3 + at_file_contents=`cat "$1"` + eval set x "$at_file_contents" + shift + + for member + do + $AR -NOLOGO $operation:"$member" "$archive" || exit $? + done +} + +case $1 in + '') + func_error "no command. Try '$0 --help' for more information." + ;; + -h | --h*) + cat <<EOF +Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...] + +Members may be specified in a file named with @FILE. +EOF + exit $? + ;; + -v | --v*) + echo "$me, version $scriptversion" + exit $? + ;; +esac + +if test $# -lt 3; then + func_error "you must specify a program, an action and an archive" +fi + +AR=$1 +shift +while : +do + if test $# -lt 2; then + func_error "you must specify a program, an action and an archive" + fi + case $1 in + -lib | -LIB \ + | -ltcg | -LTCG \ + | -machine* | -MACHINE* \ + | -subsystem* | -SUBSYSTEM* \ + | -verbose | -VERBOSE \ + | -wx* | -WX* ) + AR="$AR $1" + shift + ;; + *) + action=$1 + shift + break + ;; + esac +done +orig_archive=$1 +shift +func_file_conv "$orig_archive" +archive=$file + +# strip leading dash in $action +action=${action#-} + +delete= +extract= +list= +quick= +replace= +index= +create= + +while test -n "$action" +do + case $action in + d*) delete=yes ;; + x*) extract=yes ;; + t*) list=yes ;; + q*) quick=yes ;; + r*) replace=yes ;; + s*) index=yes ;; + S*) ;; # the index is always updated implicitly + c*) create=yes ;; + u*) ;; # TODO: don't ignore the update modifier + v*) ;; # TODO: don't ignore the verbose modifier + *) + func_error "unknown action specified" + ;; + esac + action=${action#?} +done + +case $delete$extract$list$quick$replace,$index in + yes,* | ,yes) + ;; + yesyes*) + func_error "more than one action specified" + ;; + *) + func_error "no action specified" + ;; +esac + +if test -n "$delete"; then + if test ! -f "$orig_archive"; then + func_error "archive not found" + fi + for member + do + case $1 in + @*) + func_at_file "${1#@}" -REMOVE "$archive" + ;; + *) + func_file_conv "$1" + $AR -NOLOGO -REMOVE:"$file" "$archive" || exit $? + ;; + esac + done + +elif test -n "$extract"; then + if test ! -f "$orig_archive"; then + func_error "archive not found" + fi + if test $# -gt 0; then + for member + do + case $1 in + @*) + func_at_file "${1#@}" -EXTRACT "$archive" + ;; + *) + func_file_conv "$1" + $AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $? + ;; + esac + done + else + $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member + do + $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $? + done + fi + +elif test -n "$quick$replace"; then + if test ! -f "$orig_archive"; then + if test -z "$create"; then + echo "$me: creating $orig_archive" + fi + orig_archive= + else + orig_archive=$archive + fi + + for member + do + case $1 in + @*) + func_file_conv "${1#@}" + set x "$@" "@$file" + ;; + *) + func_file_conv "$1" + set x "$@" "$file" + ;; + esac + shift + shift + done + + if test -n "$orig_archive"; then + $AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $? + else + $AR -NOLOGO -OUT:"$archive" "$@" || exit $? + fi + +elif test -n "$list"; then + if test ! -f "$orig_archive"; then + func_error "archive not found" + fi + $AR -NOLOGO -LIST "$archive" || exit $? +fi
View file
cclive-0.7.9.tar.bz2/config.aux/config.guess -> cclive-0.9.3.tar.xz/config.aux/config.guess
Changed
@@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. -timestamp='2012-01-01' +timestamp='2012-02-10' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -17,9 +17,7 @@ # General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -863,6 +861,13 @@ i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-gnu + exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; @@ -1320,6 +1325,9 @@ i*86:AROS:*:*) echo ${UNAME_MACHINE}-pc-aros exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2
View file
cclive-0.7.9.tar.bz2/config.aux/config.sub -> cclive-0.9.3.tar.xz/config.aux/config.sub
Changed
@@ -4,7 +4,7 @@ # 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # 2011, 2012 Free Software Foundation, Inc. -timestamp='2012-01-01' +timestamp='2012-04-18' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software @@ -21,9 +21,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. +# along with this program; if not, see <http://www.gnu.org/licenses/>. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -132,6 +130,10 @@ os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; *) basic_machine=`echo $1 | sed 's/-[^-]*$//'` if [ $basic_machine != $1 ] @@ -223,6 +225,12 @@ -isc*) basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; -lynx*) os=-lynxos ;; @@ -247,6 +255,7 @@ # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ + | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ @@ -319,7 +328,7 @@ c6x) basic_machine=tic6x-unknown ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) basic_machine=$basic_machine-unknown os=-none ;; @@ -332,7 +341,10 @@ strongarm | thumb | xscale) basic_machine=arm-unknown ;; - + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; xscaleeb) basic_machine=armeb-unknown ;; @@ -355,6 +367,7 @@ # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ + | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ @@ -1530,6 +1543,9 @@ c4x-* | tic4x-*) os=-coff ;; + hexagon-*) + os=-elf + ;; tic54x-*) os=-coff ;;
View file
cclive-0.7.9.tar.bz2/config.aux/depcomp -> cclive-0.9.3.tar.xz/config.aux/depcomp
Changed
@@ -1,10 +1,10 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2011-12-04.11; # UTC +scriptversion=2012-03-27.16; # UTC # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010, -# 2011 Free Software Foundation, Inc. +# 2011, 2012 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -28,7 +28,7 @@ case $1 in '') - echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) @@ -40,8 +40,8 @@ Environment variables: depmode Dependency tracking mode. - source Source file read by `PROGRAMS ARGS'. - object Object file output by `PROGRAMS ARGS'. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. @@ -57,6 +57,12 @@ ;; esac +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' + if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 @@ -102,6 +108,12 @@ depmode=msvc7 fi +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what @@ -156,15 +168,14 @@ ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" -## This next piece of magic avoids the `deleted header file' problem. +## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. - tr ' ' ' -' < "$tmpdepfile" | -## Some versions of gcc put a space before the `:'. On the theory + tr ' ' "$nl" < "$tmpdepfile" | +## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. @@ -203,18 +214,15 @@ # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; - # the IRIX cc adds comments like `#:fec' to the end of the + # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. - tr ' ' ' -' < "$tmpdepfile" \ + tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ - tr ' -' ' ' >> "$depfile" + tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. - tr ' ' ' -' < "$tmpdepfile" \ + tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else @@ -226,10 +234,17 @@ rm -f "$tmpdepfile" ;; +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the - # current directory. Also, the AIX compiler puts `$object:' at the + # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` @@ -259,12 +274,11 @@ test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then - # Each line is of the form `foo.o: dependent.h'. + # Each line is of the form 'foo.o: dependent.h'. # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. + # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile @@ -275,23 +289,26 @@ ;; icc) - # Intel's C compiler understands `-MD -MF file'. However on - # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. + # However on + # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h - # which is wrong. We want: + # which is wrong. We want # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h - # and will wrap long lines using \ : + # and will wrap long lines using '\': # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... - + # tcc 0.9.26 (FIXME still under development at the moment of writing) + # will emit a similar output, but also prepend the continuation lines + # with horizontal tabulation characters. "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : @@ -300,15 +317,21 @@ exit $stat fi rm -f "$depfile" - # Each line is of the form `foo.o: dependent.h', - # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Each line is of the form 'foo.o: dependent.h', + # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. # Do two passes, one to just change these to - # `$object: dependent.h' and one to simply `dependent.h:'. - sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" - # Some versions of the HPUX 10.20 sed can't process this invocation - # correctly. Breaking it into two sed invocations is a workaround. - sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | - sed -e 's/$/ :/' >> "$depfile" + # '$object: dependent.h' and one to simply 'dependent.h:'. + sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ + < "$tmpdepfile" > "$depfile" + sed ' + s/[ '"$tab"'][ '"$tab"']*/ /g + s/^ *// + s/ *\\*$// + s/^[^:]*: *// + /^$/d + /:$/d + s/$/ :/ + ' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; @@ -344,7 +367,7 @@ done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" - # Add `dependent.h:' lines. + # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// @@ -359,9 +382,9 @@ tru64) # The Tru64 compiler uses -MD to generate dependencies as a side - # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put - # dependencies in `foo.d' instead, so we check for that too. + # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= @@ -407,8 +430,7 @@ done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" - # That's a tab and a space in the []. - sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi @@ -443,11 +465,11 @@ p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g -s/\(.*\)/ \1 \\/p +s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { - s/.*/ / + s/.*/'"$tab"'/ G p }' >> "$depfile" @@ -478,7 +500,7 @@ shift fi - # Remove `-o $object'. + # Remove '-o $object'. IFS=" " for arg do @@ -498,15 +520,14 @@ done test -z "$dashmflag" && dashmflag=-M - # Require at least two characters before searching for `:' + # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: - # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | - sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" - tr ' ' ' -' < "$tmpdepfile" | \ + tr ' ' "$nl" < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" @@ -562,8 +583,7 @@ # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" - sed '1,2d' "$tmpdepfile" | tr ' ' ' -' | \ + sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" @@ -583,7 +603,7 @@ shift fi - # Remove `-o $object'. + # Remove '-o $object'. IFS=" " for arg do @@ -652,8 +672,8 @@ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" - sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" - echo " " >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;;
View file
cclive-0.7.9.tar.bz2/config.aux/ltmain.sh -> cclive-0.9.3.tar.xz/config.aux/ltmain.sh
Changed
@@ -70,7 +70,7 @@ # compiler: $LTCC # compiler flags: $LTCFLAGS # linker: $LD (gnu? $with_gnu_ld) -# $progname: (GNU libtool) 2.4.2 +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.1 # automake: $automake_version # autoconf: $autoconf_version # @@ -80,7 +80,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION=2.4.2 +VERSION="2.4.2 Debian-2.4.2-1.1" TIMESTAMP="" package_revision=1.3337 @@ -6124,7 +6124,10 @@ case $pass in dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; - link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; esac fi if test "$linkmode,$pass" = "lib,dlpreopen"; then @@ -6444,19 +6447,19 @@ # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done elif test "$linkmode" != prog && test "$linkmode" != lib; then func_fatal_error "\`$lib' is not a convenience library" fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs="$deplib $deplibs" - if $opt_preserve_dup_deps ; then - case "$tmp_libs " in - *" $deplib "*) func_append specialdeplibs " $deplib" ;; - esac - fi - func_append tmp_libs " $deplib" - done continue fi # $pass = conv @@ -7349,6 +7352,9 @@ revision="$number_minor" lt_irix_increment=no ;; + *) + func_fatal_configuration "$modename: unknown library version type \`$version_type'" + ;; esac ;; no)
View file
cclive-0.7.9.tar.bz2/config.h.in -> cclive-0.9.3.tar.xz/config.h.in
Changed
@@ -1,11 +1,17 @@ /* config.h.in. Generated from configure.ac by autoheader. */ -/* ... */ -#undef CANONICAL_HOST +/* We have build time */ +#undef BUILD_TIME -/* ... */ +/* Define to canonical target */ #undef CANONICAL_TARGET +/* Define to compiler */ +#undef CXX + +/* Define to compiler flags */ +#undef CXXFLAGS + /* Defined if the requested minimum BOOST version is satisfied */ #undef HAVE_BOOST @@ -46,14 +52,20 @@ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H -/* We have libquvi 0.4.0+ */ -#undef HAVE_LIBQUVI_0_4_0 +/* We have libquvi 0.9 */ +#undef HAVE_LIBQUVI_0_9 /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H -/* Define to 1 if you have the `signal' function. */ -#undef HAVE_SIGNAL +/* Define to 1 if you have the `memset' function. */ +#undef HAVE_MEMSET + +/* Define to 1 if you have the `setlocale' function. */ +#undef HAVE_SETLOCALE + +/* Define to 1 if you have the `sigaction' function. */ +#undef HAVE_SIGACTION /* Define to 1 if you have the <signal.h> header file. */ #undef HAVE_SIGNAL_H @@ -178,6 +190,12 @@ /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + /* Define to `int' if <sys/types.h> does not define. */ #undef pid_t
View file
cclive-0.7.9.tar.bz2/configure -> cclive-0.9.3.tar.xz/configure
Changed
@@ -1,13 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for cclive 0.7.9. +# Generated by GNU Autoconf 2.69 for cclive 0.9.3. # -# Report bugs to <http://sourceforge.net/apps/trac/cclive>. +# Report bugs to <http://cclive.sf.net/bugs/>. # # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -136,6 +134,31 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -169,7 +192,8 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -222,21 +246,25 @@ if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -247,10 +275,10 @@ $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and -$0: http://sourceforge.net/apps/trac/cclive about your -$0: system, including any error possibly output before this -$0: message. Then install a modern shell, or manually run -$0: the script under such a shell if you do have one." +$0: http://cclive.sf.net/bugs/ about your system, including +$0: any error possibly output before this message. Then +$0: install a modern shell, or manually run the script +$0: under such a shell if you do have one." fi exit 1 fi @@ -339,6 +367,14 @@ } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -460,6 +496,10 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -494,16 +534,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -515,28 +555,8 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -570,10 +590,10 @@ # Identity of this package. PACKAGE_NAME='cclive' PACKAGE_TARNAME='cclive' -PACKAGE_VERSION='0.7.9' -PACKAGE_STRING='cclive 0.7.9' -PACKAGE_BUGREPORT='http://sourceforge.net/apps/trac/cclive' -PACKAGE_URL='http://cclive.sourceforge.net/' +PACKAGE_VERSION='0.9.3' +PACKAGE_STRING='cclive 0.9.3' +PACKAGE_BUGREPORT='http://cclive.sf.net/bugs/' +PACKAGE_URL='http://cclive.sf.net/' ac_unique_file="src/cc/application.cpp" # Factoring default headers for most tests. @@ -639,17 +659,27 @@ BOOST_CPPFLAGS DISTCHECK_CONFIGURE_FLAGS BOOST_ROOT +glib_LIBS +glib_CFLAGS +glibmm_LIBS +glibmm_CFLAGS libpcrecpp_LIBS libpcrecpp_CFLAGS libpcre_LIBS libpcre_CFLAGS libcurl_LIBS libcurl_CFLAGS +HAVE_LIBQUVI_0_9_FALSE +HAVE_LIBQUVI_0_9_TRUE libquvi_LIBS libquvi_CFLAGS PKG_CONFIG_LIBDIR PKG_CONFIG_PATH PKG_CONFIG +HAVE_A2X_FALSE +HAVE_A2X_TRUE +A2X +DATE CXXCPP am__fastdepCXX_FALSE am__fastdepCXX_TRUE @@ -664,8 +694,6 @@ DSYMUTIL MANIFEST_TOOL RANLIB -ac_ct_AR -AR DLLTOOL OBJDUMP LN_S @@ -676,6 +704,8 @@ FGREP SED LIBTOOL +ac_ct_AR +AR AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V @@ -778,8 +808,8 @@ enable_option_checking enable_dependency_tracking enable_silent_rules -enable_shared enable_static +enable_shared with_pic enable_fast_install with_gnu_ld @@ -814,6 +844,10 @@ libpcre_LIBS libpcrecpp_CFLAGS libpcrecpp_LIBS +glibmm_CFLAGS +glibmm_LIBS +glib_CFLAGS +glib_LIBS BOOST_ROOT' @@ -1270,8 +1304,6 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1357,7 +1389,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures cclive 0.7.9 to adapt to many kinds of systems. +\`configure' configures cclive 0.9.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1428,7 +1460,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of cclive 0.7.9:";; + short | recursive ) echo "Configuration of cclive 0.9.3:";; esac cat <<\_ACEOF @@ -1440,15 +1472,15 @@ --enable-dependency-tracking do not reject slow dependency extractors --enable-silent-rules less verbose build output (undo: `make V=1') --disable-silent-rules verbose build output (undo: `make V=0') + --enable-static[=PKGS] build static libraries [default=no] --enable-shared[=PKGS] build shared libraries [default=yes] - --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-static-boost Prefer the static boost libraries over the shared ones [no] - --enable-ccl Make a symbolic link from 'cclive' to 'ccl' - [default=no] + --enable-ccl Symlink from 'cclive' executable to 'ccl' + [default=yes] Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1458,7 +1490,7 @@ --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot=DIR Search for dependent libraries within DIR (or the compiler's sysroot if not specified). - --with-boost=DIR prefix of Boost 1.42.0 [guess] + --with-boost=DIR prefix of Boost 1.49.0 [guess] --with-manual Install manual page(s) [default=yes] Some influential environment variables: @@ -1494,13 +1526,18 @@ C compiler flags for libpcrecpp, overriding pkg-config libpcrecpp_LIBS linker flags for libpcrecpp, overriding pkg-config + glibmm_CFLAGS + C compiler flags for glibmm, overriding pkg-config + glibmm_LIBS linker flags for glibmm, overriding pkg-config + glib_CFLAGS C compiler flags for glib, overriding pkg-config + glib_LIBS linker flags for glib, overriding pkg-config BOOST_ROOT Location of Boost installation Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. -Report bugs to <http://sourceforge.net/apps/trac/cclive>. -cclive home page: <http://cclive.sourceforge.net/>. +Report bugs to <http://cclive.sf.net/bugs/>. +cclive home page: <http://cclive.sf.net/>. _ACEOF ac_status=$? fi @@ -1563,10 +1600,10 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -cclive configure 0.7.9 -generated by GNU Autoconf 2.68 +cclive configure 0.9.3 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1722,9 +1759,9 @@ $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ------------------------------------------------------ ## -## Report this to http://sourceforge.net/apps/trac/cclive ## -## ------------------------------------------------------ ##" +( $as_echo "## ----------------------------------------- ## +## Report this to http://cclive.sf.net/bugs/ ## +## ----------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac @@ -1843,7 +1880,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -2031,7 +2068,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -2120,9 +2157,9 @@ $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} -( $as_echo "## ------------------------------------------------------ ## -## Report this to http://sourceforge.net/apps/trac/cclive ## -## ------------------------------------------------------ ##" +( $as_echo "## ----------------------------------------- ## +## Report this to http://cclive.sf.net/bugs/ ## +## ----------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac @@ -2244,8 +2281,8 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by cclive $as_me 0.7.9, which was -generated by GNU Autoconf 2.68. Invocation command line was +It was created by cclive $as_me 0.9.3, which was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2737,7 +2774,6 @@ test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- - ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -2760,7 +2796,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2800,7 +2836,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2853,7 +2889,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2894,7 +2930,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -2952,7 +2988,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2996,7 +3032,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3442,8 +3478,7 @@ /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -3683,7 +3718,7 @@ for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -3749,7 +3784,7 @@ for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -3956,8 +3991,8 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -# define __EXTENSIONS__ 1 - $ac_includes_default +# define __EXTENSIONS__ 1 + $ac_includes_default int main () { @@ -3989,17 +4024,11 @@ - cat >>confdefs.h <<_ACEOF #define CANONICAL_TARGET "$target" _ACEOF -cat >>confdefs.h <<_ACEOF -#define CANONICAL_HOST "$host" -_ACEOF - - am__api_version='1.11' # Find a good install program. We prefer a C program (faster), @@ -4039,7 +4068,7 @@ # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -4208,7 +4237,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4248,7 +4277,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4299,7 +4328,7 @@ test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ @@ -4352,7 +4381,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4501,7 +4530,7 @@ # Define the identity of the package. PACKAGE='cclive' - VERSION='0.7.9' + VERSION='0.9.3' cat >>confdefs.h <<_ACEOF @@ -4535,7 +4564,88 @@ # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5 +$as_echo_n "checking how to create a ustar tar archive... " >&6; } +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar plaintar pax cpio none' +_am_tools=${am_cv_prog_tar_ustar-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x ustar -w "$$tardir"' + am__tar_='pax -L -x ustar -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H ustar -L' + am__tar_='find "$tardir" -print | cpio -o -H ustar -L' + am__untar='cpio -i -H ustar -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_ustar}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5 + ($am__untar <conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +if ${am_cv_prog_tar_ustar+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_prog_tar_ustar=$_am_tool +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5 +$as_echo "$am_cv_prog_tar_ustar" >&6; } @@ -4709,6 +4819,169 @@ AM_BACKSLASH='\' +# GNU Automake 1.12 requires this macro. Earlier versions do not +# recognize this macro. Work around this. +if test -n "$ac_tool_prefix"; then + for ac_prog in ar lib "link -lib" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar lib "link -lib" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 +$as_echo_n "checking the archiver ($AR) interface... " >&6; } +if ${am_cv_ar_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + am_cv_ar_interface=ar + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int some_variable = 0; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 +$as_echo "$am_cv_ar_interface" >&6; } + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + as_fn_error $? "could not determine $AR interface" "$LINENO" 5 + ;; +esac + + case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 @@ -4825,7 +5098,7 @@ for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue + as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in @@ -4904,7 +5177,7 @@ for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue + as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in @@ -5160,7 +5433,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5204,7 +5477,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5628,7 +5901,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5668,7 +5941,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5794,10 +6067,6 @@ fi ;; -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - haiku*) lt_cv_deplibs_check_method=pass_all ;; @@ -5836,11 +6105,11 @@ ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; -netbsd*) +netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else @@ -5974,7 +6243,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6014,7 +6283,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6117,7 +6386,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6161,7 +6430,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6286,7 +6555,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6326,7 +6595,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6385,7 +6654,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6425,7 +6694,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7074,7 +7343,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7114,7 +7383,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7194,7 +7463,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7234,7 +7503,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7286,7 +7555,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7326,7 +7595,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7378,7 +7647,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7418,7 +7687,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7470,7 +7739,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7510,7 +7779,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7562,7 +7831,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7602,7 +7871,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7819,36 +8088,27 @@ # Set options - - - - enable_dlopen=no - - - enable_win32_dll=no - - - # Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; p=${PACKAGE-default} +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} case $enableval in - yes) enable_shared=yes ;; - no) enable_shared=no ;; + yes) enable_static=yes ;; + no) enable_static=no ;; *) - enable_shared=no + enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then - enable_shared=yes + enable_static=yes fi done IFS="$lt_save_ifs" ;; esac else - enable_shared=yes + enable_static=no fi @@ -7859,27 +8119,34 @@ - # Check whether --enable-static was given. -if test "${enable_static+set}" = set; then : - enableval=$enable_static; p=${PACKAGE-default} + + enable_dlopen=no + + + enable_win32_dll=no + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} case $enableval in - yes) enable_static=yes ;; - no) enable_static=no ;; + yes) enable_shared=yes ;; + no) enable_shared=no ;; *) - enable_static=no + enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," for pkg in $enableval; do IFS="$lt_save_ifs" if test "X$pkg" = "X$p"; then - enable_static=yes + enable_shared=yes fi done IFS="$lt_save_ifs" ;; esac else - enable_static=yes + enable_shared=yes fi @@ -7891,6 +8158,7 @@ + # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} @@ -8495,7 +8763,7 @@ lt_prog_compiler_static='-non_shared' ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) @@ -8973,6 +9241,9 @@ openbsd*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; esac ld_shlibs=yes @@ -9194,7 +9465,7 @@ fi ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -9371,6 +9642,7 @@ if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi + link_all_deplibs=no else # not using gcc if test "$host_cpu" = ia64; then @@ -9824,7 +10096,7 @@ link_all_deplibs=yes ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -10661,17 +10933,6 @@ esac ;; -gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no @@ -10788,7 +11049,7 @@ ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no @@ -10852,6 +11113,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -11853,7 +12126,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -11897,7 +12170,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -13019,9 +13292,6 @@ ld_shlibs_CXX=yes ;; - gnu*) - ;; - haiku*) archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes @@ -13183,7 +13453,7 @@ inherit_rpath_CXX=yes ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler @@ -14043,7 +14313,7 @@ ;; esac ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler @@ -14107,7 +14377,7 @@ ;; esac ;; - netbsd*) + netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -14478,6 +14748,9 @@ ;; esac ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs_CXX=no + ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -14912,17 +15185,6 @@ esac ;; -gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no @@ -15039,7 +15301,7 @@ ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no @@ -15103,6 +15365,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -15431,7 +15705,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -15471,7 +15745,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -15524,7 +15798,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -15565,7 +15839,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -15623,7 +15897,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -15667,7 +15941,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -15863,8 +16137,7 @@ /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -16086,9 +16359,137 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + + + +cat >>confdefs.h <<_ACEOF +#define CXXFLAGS "$CXXFLAGS" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define CXX "$CXX" +_ACEOF + + +# Extract the first word of "date", so it can be a program name with args. +set dummy date; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DATE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DATE in + [\\/]* | ?:[\\/]*) + ac_cv_path_DATE="$DATE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DATE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_DATE" && ac_cv_path_DATE="no" + ;; +esac +fi +DATE=$ac_cv_path_DATE +if test -n "$DATE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5 +$as_echo "$DATE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test x"$DATE" != "xno"; then : + build_time=`$DATE +"%F %T %z"` +fi + +cat >>confdefs.h <<_ACEOF +#define BUILD_TIME "$build_time" +_ACEOF + + +# Extract the first word of "a2x", so it can be a program name with args. +set dummy a2x; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_A2X+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $A2X in + [\\/]* | ?:[\\/]*) + ac_cv_path_A2X="$A2X" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_A2X="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_A2X" && ac_cv_path_A2X="no" + ;; +esac +fi +A2X=$ac_cv_path_A2X +if test -n "$A2X"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $A2X" >&5 +$as_echo "$A2X" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test x"$A2X" != "xno"; then + HAVE_A2X_TRUE= + HAVE_A2X_FALSE='#' +else + HAVE_A2X_TRUE='#' + HAVE_A2X_FALSE= +fi + + + +if test x"$A2X" = "xno" && test -d "$srcdir/.git"; then : + as_fn_error $? "a2x is required to create man pages when building from git" "$LINENO" 5] +fi # Checks for libraries. +have_libquvi_0_9= @@ -16116,7 +16517,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -16159,7 +16560,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -16218,12 +16619,12 @@ pkg_cv_libquvi_CFLAGS="$libquvi_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi >= 0.4.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libquvi >= 0.4.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi-0.9 >= 0.9\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libquvi-0.9 >= 0.9") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_libquvi_CFLAGS=`$PKG_CONFIG --cflags "libquvi >= 0.4.0" 2>/dev/null` + pkg_cv_libquvi_CFLAGS=`$PKG_CONFIG --cflags "libquvi-0.9 >= 0.9" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -16235,12 +16636,12 @@ pkg_cv_libquvi_LIBS="$libquvi_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi >= 0.4.0\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libquvi >= 0.4.0") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi-0.9 >= 0.9\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libquvi-0.9 >= 0.9") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_libquvi_LIBS=`$PKG_CONFIG --libs "libquvi >= 0.4.0" 2>/dev/null` + pkg_cv_libquvi_LIBS=`$PKG_CONFIG --libs "libquvi-0.9 >= 0.9" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -16261,9 +16662,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - libquvi_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libquvi >= 0.4.0" 2>&1` + libquvi_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libquvi-0.9 >= 0.9" 2>&1` else - libquvi_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libquvi >= 0.4.0" 2>&1` + libquvi_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libquvi-0.9 >= 0.9" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$libquvi_PKG_ERRORS" >&5 @@ -16277,12 +16678,12 @@ pkg_cv_libquvi_CFLAGS="$libquvi_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi >= 0.2.16.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libquvi >= 0.2.16.1") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi >= 0.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libquvi >= 0.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_libquvi_CFLAGS=`$PKG_CONFIG --cflags "libquvi >= 0.2.16.1" 2>/dev/null` + pkg_cv_libquvi_CFLAGS=`$PKG_CONFIG --cflags "libquvi >= 0.4" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -16294,12 +16695,12 @@ pkg_cv_libquvi_LIBS="$libquvi_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi >= 0.2.16.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libquvi >= 0.2.16.1") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi >= 0.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libquvi >= 0.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_libquvi_LIBS=`$PKG_CONFIG --libs "libquvi >= 0.2.16.1" 2>/dev/null` + pkg_cv_libquvi_LIBS=`$PKG_CONFIG --libs "libquvi >= 0.4" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -16320,14 +16721,14 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - libquvi_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libquvi >= 0.2.16.1" 2>&1` + libquvi_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libquvi >= 0.4" 2>&1` else - libquvi_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libquvi >= 0.2.16.1" 2>&1` + libquvi_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libquvi >= 0.4" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$libquvi_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (libquvi >= 0.2.16.1) were not met: + as_fn_error $? "Package requirements (libquvi >= 0.4) were not met: $libquvi_PKG_ERRORS @@ -16371,12 +16772,12 @@ pkg_cv_libquvi_CFLAGS="$libquvi_CFLAGS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi >= 0.2.16.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libquvi >= 0.2.16.1") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi >= 0.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libquvi >= 0.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_libquvi_CFLAGS=`$PKG_CONFIG --cflags "libquvi >= 0.2.16.1" 2>/dev/null` + pkg_cv_libquvi_CFLAGS=`$PKG_CONFIG --cflags "libquvi >= 0.4" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -16388,12 +16789,12 @@ pkg_cv_libquvi_LIBS="$libquvi_LIBS" elif test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG" && \ - { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi >= 0.2.16.1\""; } >&5 - ($PKG_CONFIG --exists --print-errors "libquvi >= 0.2.16.1") 2>&5 + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libquvi >= 0.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libquvi >= 0.4") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - pkg_cv_libquvi_LIBS=`$PKG_CONFIG --libs "libquvi >= 0.2.16.1" 2>/dev/null` + pkg_cv_libquvi_LIBS=`$PKG_CONFIG --libs "libquvi >= 0.4" 2>/dev/null` test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes @@ -16414,14 +16815,14 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - libquvi_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libquvi >= 0.2.16.1" 2>&1` + libquvi_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libquvi >= 0.4" 2>&1` else - libquvi_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libquvi >= 0.2.16.1" 2>&1` + libquvi_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libquvi >= 0.4" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$libquvi_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (libquvi >= 0.2.16.1) were not met: + as_fn_error $? "Package requirements (libquvi >= 0.4) were not met: $libquvi_PKG_ERRORS @@ -16459,10 +16860,22 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } -$as_echo "#define HAVE_LIBQUVI_0_4_0 1" >>confdefs.h +$as_echo "#define HAVE_LIBQUVI_0_9 1" >>confdefs.h + + have_libquvi_0_9=yes + +fi + if test x"$have_libquvi_0_9" = "xyes"; then + HAVE_LIBQUVI_0_9_TRUE= + HAVE_LIBQUVI_0_9_FALSE='#' +else + HAVE_LIBQUVI_0_9_TRUE='#' + HAVE_LIBQUVI_0_9_FALSE= fi + + pkg_failed=no { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libcurl" >&5 $as_echo_n "checking for libcurl... " >&6; } @@ -16736,9 +17149,191 @@ fi -echo "$as_me: this is boost.m4 serial 16" >&5 +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glibmm" >&5 +$as_echo_n "checking for glibmm... " >&6; } + +if test -n "$glibmm_CFLAGS"; then + pkg_cv_glibmm_CFLAGS="$glibmm_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glibmm-2.4 >= 2.24\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glibmm-2.4 >= 2.24") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_glibmm_CFLAGS=`$PKG_CONFIG --cflags "glibmm-2.4 >= 2.24" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$glibmm_LIBS"; then + pkg_cv_glibmm_LIBS="$glibmm_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glibmm-2.4 >= 2.24\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glibmm-2.4 >= 2.24") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_glibmm_LIBS=`$PKG_CONFIG --libs "glibmm-2.4 >= 2.24" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + glibmm_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glibmm-2.4 >= 2.24" 2>&1` + else + glibmm_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glibmm-2.4 >= 2.24" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$glibmm_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (glibmm-2.4 >= 2.24) were not met: + +$glibmm_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables glibmm_CFLAGS +and glibmm_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables glibmm_CFLAGS +and glibmm_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details" "$LINENO" 5; } +else + glibmm_CFLAGS=$pkg_cv_glibmm_CFLAGS + glibmm_LIBS=$pkg_cv_glibmm_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib" >&5 +$as_echo_n "checking for glib... " >&6; } + +if test -n "$glib_CFLAGS"; then + pkg_cv_glib_CFLAGS="$glib_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.24\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.24") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_glib_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.24" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$glib_LIBS"; then + pkg_cv_glib_LIBS="$glib_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.24\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.24") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_glib_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.24" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + glib_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.24" 2>&1` + else + glib_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.24" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$glib_PKG_ERRORS" >&5 + + as_fn_error $? "Package requirements (glib-2.0 >= 2.24) were not met: + +$glib_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +Alternatively, you may set the environment variables glib_CFLAGS +and glib_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +Alternatively, you may set the environment variables glib_CFLAGS +and glib_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details. + +To get pkg-config, see <http://pkg-config.freedesktop.org/>. +See \`config.log' for more details" "$LINENO" 5; } +else + glib_CFLAGS=$pkg_cv_glib_CFLAGS + glib_LIBS=$pkg_cv_glib_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + +echo "$as_me: this is boost.m4 serial 18" >&5 boost_save_IFS=$IFS -boost_version_req=1.42.0 +boost_version_req=1.49.0 IFS=. set x $boost_version_req 0 0 0 IFS=$boost_save_IFS @@ -16994,6 +17589,8 @@ # I'm not sure about my test for `il' (be careful: Intel's ICC pre-defines # the same defines as GCC's). for i in \ + "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 8 && !defined __ICC @ gcc48" \ + "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 7 && !defined __ICC @ gcc47" \ "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 6 && !defined __ICC @ gcc46" \ "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 5 && !defined __ICC @ gcc45" \ "defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ == 4 && !defined __ICC @ gcc44" \ @@ -17290,7 +17887,69 @@ LDFLAGS=$boost_save_LDFLAGS LIBS=$boost_save_LIBS if test x"$boost_cv_lib_date_time" = xyes; then - boost_cv_lib_date_time_LDFLAGS="-L$boost_ldpath -Wl,-R$boost_ldpath" + # Check or used cached result of whether or not using -R or -rpath makes sense. + # Some implementations of ld, such as for Mac OSX, require -rpath but + # -R is the flag known to work on other systems. + # https://github.com/tsuna/boost.m4/issues/19 + if ${boost_cv_rpath_link_ldflag+:} false; then : + $as_echo_n "(cached) " >&6 +else + for boost_cv_rpath_link_ldflag in -Wl,-R, -Wl,-rpath,; do + LDFLAGS="$boost_save_LDFLAGS -L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" + LIBS="$boost_save_LIBS $boost_cv_lib_date_time_LIBS" + rm -f conftest$ac_exeext +boost_save_ac_ext=$ac_ext +boost_use_source=: +# If we already have a .o, re-use it. We change $ac_ext so that $ac_link +# tries to link the existing object file instead of compiling from source. +test -f conftest.$ac_objext && ac_ext=$ac_objext && boost_use_source=false && + $as_echo "$as_me:${as_lineno-$LINENO}: re-using the existing conftest.$ac_objext" >&5 +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_executable_p conftest$ac_exeext + }; then : + boost_rpath_link_ldflag_found=yes + break +else + if $boost_use_source; then + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi + boost_rpath_link_ldflag_found=no +fi +ac_objext=$boost_save_ac_objext +ac_ext=$boost_save_ac_ext +rm -f core conftest.err conftest_ipa8_conftest.oo \ + conftest$ac_exeext + done + if test "x$boost_rpath_link_ldflag_found" != "xyes"; then : + as_fn_error $? "Unable to determine whether to use -R or -rpath" "$LINENO" 5 +fi + LDFLAGS=$boost_save_LDFLAGS + LIBS=$boost_save_LIBS + +fi + + boost_cv_lib_date_time_LDFLAGS="-L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" boost_cv_lib_date_time_LDPATH="$boost_ldpath" break 6 else @@ -17508,7 +18167,69 @@ LDFLAGS=$boost_save_LDFLAGS LIBS=$boost_save_LIBS if test x"$boost_cv_lib_program_options" = xyes; then - boost_cv_lib_program_options_LDFLAGS="-L$boost_ldpath -Wl,-R$boost_ldpath" + # Check or used cached result of whether or not using -R or -rpath makes sense. + # Some implementations of ld, such as for Mac OSX, require -rpath but + # -R is the flag known to work on other systems. + # https://github.com/tsuna/boost.m4/issues/19 + if ${boost_cv_rpath_link_ldflag+:} false; then : + $as_echo_n "(cached) " >&6 +else + for boost_cv_rpath_link_ldflag in -Wl,-R, -Wl,-rpath,; do + LDFLAGS="$boost_save_LDFLAGS -L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" + LIBS="$boost_save_LIBS $boost_cv_lib_program_options_LIBS" + rm -f conftest$ac_exeext +boost_save_ac_ext=$ac_ext +boost_use_source=: +# If we already have a .o, re-use it. We change $ac_ext so that $ac_link +# tries to link the existing object file instead of compiling from source. +test -f conftest.$ac_objext && ac_ext=$ac_objext && boost_use_source=false && + $as_echo "$as_me:${as_lineno-$LINENO}: re-using the existing conftest.$ac_objext" >&5 +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_executable_p conftest$ac_exeext + }; then : + boost_rpath_link_ldflag_found=yes + break +else + if $boost_use_source; then + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi + boost_rpath_link_ldflag_found=no +fi +ac_objext=$boost_save_ac_objext +ac_ext=$boost_save_ac_ext +rm -f core conftest.err conftest_ipa8_conftest.oo \ + conftest$ac_exeext + done + if test "x$boost_rpath_link_ldflag_found" != "xyes"; then : + as_fn_error $? "Unable to determine whether to use -R or -rpath" "$LINENO" 5 +fi + LDFLAGS=$boost_save_LDFLAGS + LIBS=$boost_save_LIBS + +fi + + boost_cv_lib_program_options_LDFLAGS="-L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" boost_cv_lib_program_options_LDPATH="$boost_ldpath" break 6 else @@ -17726,7 +18447,69 @@ LDFLAGS=$boost_save_LDFLAGS LIBS=$boost_save_LIBS if test x"$boost_cv_lib_iostreams" = xyes; then - boost_cv_lib_iostreams_LDFLAGS="-L$boost_ldpath -Wl,-R$boost_ldpath" + # Check or used cached result of whether or not using -R or -rpath makes sense. + # Some implementations of ld, such as for Mac OSX, require -rpath but + # -R is the flag known to work on other systems. + # https://github.com/tsuna/boost.m4/issues/19 + if ${boost_cv_rpath_link_ldflag+:} false; then : + $as_echo_n "(cached) " >&6 +else + for boost_cv_rpath_link_ldflag in -Wl,-R, -Wl,-rpath,; do + LDFLAGS="$boost_save_LDFLAGS -L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" + LIBS="$boost_save_LIBS $boost_cv_lib_iostreams_LIBS" + rm -f conftest$ac_exeext +boost_save_ac_ext=$ac_ext +boost_use_source=: +# If we already have a .o, re-use it. We change $ac_ext so that $ac_link +# tries to link the existing object file instead of compiling from source. +test -f conftest.$ac_objext && ac_ext=$ac_objext && boost_use_source=false && + $as_echo "$as_me:${as_lineno-$LINENO}: re-using the existing conftest.$ac_objext" >&5 +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_executable_p conftest$ac_exeext + }; then : + boost_rpath_link_ldflag_found=yes + break +else + if $boost_use_source; then + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi + boost_rpath_link_ldflag_found=no +fi +ac_objext=$boost_save_ac_objext +ac_ext=$boost_save_ac_ext +rm -f core conftest.err conftest_ipa8_conftest.oo \ + conftest$ac_exeext + done + if test "x$boost_rpath_link_ldflag_found" != "xyes"; then : + as_fn_error $? "Unable to determine whether to use -R or -rpath" "$LINENO" 5 +fi + LDFLAGS=$boost_save_LDFLAGS + LIBS=$boost_save_LIBS + +fi + + boost_cv_lib_iostreams_LDFLAGS="-L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" boost_cv_lib_iostreams_LDPATH="$boost_ldpath" break 6 else @@ -17948,7 +18731,69 @@ LDFLAGS=$boost_save_LDFLAGS LIBS=$boost_save_LIBS if test x"$boost_cv_lib_system" = xyes; then - boost_cv_lib_system_LDFLAGS="-L$boost_ldpath -Wl,-R$boost_ldpath" + # Check or used cached result of whether or not using -R or -rpath makes sense. + # Some implementations of ld, such as for Mac OSX, require -rpath but + # -R is the flag known to work on other systems. + # https://github.com/tsuna/boost.m4/issues/19 + if ${boost_cv_rpath_link_ldflag+:} false; then : + $as_echo_n "(cached) " >&6 +else + for boost_cv_rpath_link_ldflag in -Wl,-R, -Wl,-rpath,; do + LDFLAGS="$boost_save_LDFLAGS -L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" + LIBS="$boost_save_LIBS $boost_cv_lib_system_LIBS" + rm -f conftest$ac_exeext +boost_save_ac_ext=$ac_ext +boost_use_source=: +# If we already have a .o, re-use it. We change $ac_ext so that $ac_link +# tries to link the existing object file instead of compiling from source. +test -f conftest.$ac_objext && ac_ext=$ac_objext && boost_use_source=false && + $as_echo "$as_me:${as_lineno-$LINENO}: re-using the existing conftest.$ac_objext" >&5 +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_executable_p conftest$ac_exeext + }; then : + boost_rpath_link_ldflag_found=yes + break +else + if $boost_use_source; then + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi + boost_rpath_link_ldflag_found=no +fi +ac_objext=$boost_save_ac_objext +ac_ext=$boost_save_ac_ext +rm -f core conftest.err conftest_ipa8_conftest.oo \ + conftest$ac_exeext + done + if test "x$boost_rpath_link_ldflag_found" != "xyes"; then : + as_fn_error $? "Unable to determine whether to use -R or -rpath" "$LINENO" 5 +fi + LDFLAGS=$boost_save_LDFLAGS + LIBS=$boost_save_LIBS + +fi + + boost_cv_lib_system_LDFLAGS="-L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" boost_cv_lib_system_LDPATH="$boost_ldpath" break 6 else @@ -18171,7 +19016,69 @@ LDFLAGS=$boost_save_LDFLAGS LIBS=$boost_save_LIBS if test x"$boost_cv_lib_filesystem" = xyes; then - boost_cv_lib_filesystem_LDFLAGS="-L$boost_ldpath -Wl,-R$boost_ldpath" + # Check or used cached result of whether or not using -R or -rpath makes sense. + # Some implementations of ld, such as for Mac OSX, require -rpath but + # -R is the flag known to work on other systems. + # https://github.com/tsuna/boost.m4/issues/19 + if ${boost_cv_rpath_link_ldflag+:} false; then : + $as_echo_n "(cached) " >&6 +else + for boost_cv_rpath_link_ldflag in -Wl,-R, -Wl,-rpath,; do + LDFLAGS="$boost_save_LDFLAGS -L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" + LIBS="$boost_save_LIBS $boost_cv_lib_filesystem_LIBS" + rm -f conftest$ac_exeext +boost_save_ac_ext=$ac_ext +boost_use_source=: +# If we already have a .o, re-use it. We change $ac_ext so that $ac_link +# tries to link the existing object file instead of compiling from source. +test -f conftest.$ac_objext && ac_ext=$ac_objext && boost_use_source=false && + $as_echo "$as_me:${as_lineno-$LINENO}: re-using the existing conftest.$ac_objext" >&5 +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_executable_p conftest$ac_exeext + }; then : + boost_rpath_link_ldflag_found=yes + break +else + if $boost_use_source; then + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi + boost_rpath_link_ldflag_found=no +fi +ac_objext=$boost_save_ac_objext +ac_ext=$boost_save_ac_ext +rm -f core conftest.err conftest_ipa8_conftest.oo \ + conftest$ac_exeext + done + if test "x$boost_rpath_link_ldflag_found" != "xyes"; then : + as_fn_error $? "Unable to determine whether to use -R or -rpath" "$LINENO" 5 +fi + LDFLAGS=$boost_save_LDFLAGS + LIBS=$boost_save_LIBS + +fi + + boost_cv_lib_filesystem_LDFLAGS="-L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" boost_cv_lib_filesystem_LDPATH="$boost_ldpath" break 6 else @@ -18395,7 +19302,69 @@ LDFLAGS=$boost_save_LDFLAGS LIBS=$boost_save_LIBS if test x"$boost_cv_lib_system" = xyes; then - boost_cv_lib_system_LDFLAGS="-L$boost_ldpath -Wl,-R$boost_ldpath" + # Check or used cached result of whether or not using -R or -rpath makes sense. + # Some implementations of ld, such as for Mac OSX, require -rpath but + # -R is the flag known to work on other systems. + # https://github.com/tsuna/boost.m4/issues/19 + if ${boost_cv_rpath_link_ldflag+:} false; then : + $as_echo_n "(cached) " >&6 +else + for boost_cv_rpath_link_ldflag in -Wl,-R, -Wl,-rpath,; do + LDFLAGS="$boost_save_LDFLAGS -L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" + LIBS="$boost_save_LIBS $boost_cv_lib_system_LIBS" + rm -f conftest$ac_exeext +boost_save_ac_ext=$ac_ext +boost_use_source=: +# If we already have a .o, re-use it. We change $ac_ext so that $ac_link +# tries to link the existing object file instead of compiling from source. +test -f conftest.$ac_objext && ac_ext=$ac_objext && boost_use_source=false && + $as_echo "$as_me:${as_lineno-$LINENO}: re-using the existing conftest.$ac_objext" >&5 +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_executable_p conftest$ac_exeext + }; then : + boost_rpath_link_ldflag_found=yes + break +else + if $boost_use_source; then + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + fi + boost_rpath_link_ldflag_found=no +fi +ac_objext=$boost_save_ac_objext +ac_ext=$boost_save_ac_ext +rm -f core conftest.err conftest_ipa8_conftest.oo \ + conftest$ac_exeext + done + if test "x$boost_rpath_link_ldflag_found" != "xyes"; then : + as_fn_error $? "Unable to determine whether to use -R or -rpath" "$LINENO" 5 +fi + LDFLAGS=$boost_save_LDFLAGS + LIBS=$boost_save_LIBS + +fi + + boost_cv_lib_system_LDFLAGS="-L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" boost_cv_lib_system_LDPATH="$boost_ldpath" break 6 else @@ -18458,60 +19427,60 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ -#include <stdbool.h> -#ifndef bool - "error: bool is not defined" -#endif -#ifndef false - "error: false is not defined" -#endif -#if false - "error: false is not 0" -#endif -#ifndef true - "error: true is not defined" -#endif -#if true != 1 - "error: true is not 1" -#endif -#ifndef __bool_true_false_are_defined - "error: __bool_true_false_are_defined is not defined" -#endif - - struct s { _Bool s: 1; _Bool t; } s; - - char a[true == 1 ? 1 : -1]; - char b[false == 0 ? 1 : -1]; - char c[__bool_true_false_are_defined == 1 ? 1 : -1]; - char d[(bool) 0.5 == true ? 1 : -1]; - /* See body of main program for 'e'. */ - char f[(_Bool) 0.0 == false ? 1 : -1]; - char g[true]; - char h[sizeof (_Bool)]; - char i[sizeof s.t]; - enum { j = false, k = true, l = false * true, m = true * 256 }; - /* The following fails for - HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ - _Bool n[m]; - char o[sizeof n == m * sizeof n[0] ? 1 : -1]; - char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; - /* Catch a bug in an HP-UX C compiler. See - http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html - http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html - */ - _Bool q = true; - _Bool *pq = &q; + #include <stdbool.h> + #ifndef bool + "error: bool is not defined" + #endif + #ifndef false + "error: false is not defined" + #endif + #if false + "error: false is not 0" + #endif + #ifndef true + "error: true is not defined" + #endif + #if true != 1 + "error: true is not 1" + #endif + #ifndef __bool_true_false_are_defined + "error: __bool_true_false_are_defined is not defined" + #endif + + struct s { _Bool s: 1; _Bool t; } s; + + char a[true == 1 ? 1 : -1]; + char b[false == 0 ? 1 : -1]; + char c[__bool_true_false_are_defined == 1 ? 1 : -1]; + char d[(bool) 0.5 == true ? 1 : -1]; + /* See body of main program for 'e'. */ + char f[(_Bool) 0.0 == false ? 1 : -1]; + char g[true]; + char h[sizeof (_Bool)]; + char i[sizeof s.t]; + enum { j = false, k = true, l = false * true, m = true * 256 }; + /* The following fails for + HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ + _Bool n[m]; + char o[sizeof n == m * sizeof n[0] ? 1 : -1]; + char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; + /* Catch a bug in an HP-UX C compiler. See + http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html + http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html + */ + _Bool q = true; + _Bool *pq = &q; int main () { - bool e = &s; - *pq |= q; - *pq |= ! q; - /* Refer to every declared value, to avoid compiler optimizations. */ - return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l - + !m + !n + !o + !p + !q + !pq); + bool e = &s; + *pq |= q; + *pq |= ! q; + /* Refer to every declared value, to avoid compiler optimizations. */ + return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + + !m + !n + !o + !p + !q + !pq); ; return 0; @@ -18526,7 +19495,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } -ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" + ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF @@ -18536,6 +19505,7 @@ fi + if test $ac_cv_header_stdbool_h = yes; then $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h @@ -18564,9 +19534,51 @@ fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + # Checks for library functions. -for ac_func in strerror strstr getpid signal +for ac_func in strerror strstr getpid sigaction memset setlocale do : as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" @@ -18920,7 +19932,7 @@ # Version. -VN=`$srcdir/gen-ver.sh $srcdir` +VN=`$srcdir/gen-ver.sh` cat >>confdefs.h <<_ACEOF #define VN "$VN" @@ -18950,10 +19962,10 @@ if test "${enable_ccl+set}" = set; then : enableval=$enable_ccl; else - enable_ccl=no + enable_ccl=yes fi - if test x"$enable_ccl" != "xno"; then + if test x"$enable_ccl" = "xyes"; then ENABLE_CCL_TRUE= ENABLE_CCL_FALSE='#' else @@ -19094,6 +20106,14 @@ as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${HAVE_A2X_TRUE}" && test -z "${HAVE_A2X_FALSE}"; then + as_fn_error $? "conditional \"HAVE_A2X\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_LIBQUVI_0_9_TRUE}" && test -z "${HAVE_LIBQUVI_0_9_FALSE}"; then + as_fn_error $? "conditional \"HAVE_LIBQUVI_0_9\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${WITH_MANUAL_TRUE}" && test -z "${WITH_MANUAL_FALSE}"; then as_fn_error $? "conditional \"WITH_MANUAL\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -19400,16 +20420,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -19469,28 +20489,16 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -19511,8 +20519,8 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by cclive $as_me 0.7.9, which was -generated by GNU Autoconf 2.68. Invocation command line was +This file was extended by cclive $as_me 0.9.3, which was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -19571,18 +20579,18 @@ Configuration commands: $config_commands -Report bugs to <http://sourceforge.net/apps/trac/cclive>. -cclive home page: <http://cclive.sourceforge.net/>." +Report bugs to <http://cclive.sf.net/bugs/>. +cclive home page: <http://cclive.sf.net/>." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -cclive config.status 0.7.9 -configured by $0, generated by GNU Autoconf 2.68, +cclive config.status 0.9.3 +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -19673,7 +20681,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' @@ -19709,8 +20717,8 @@ delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' -enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' @@ -20837,12 +21845,12 @@ macro_version=$macro_version macro_revision=$macro_revision -# Whether or not to build shared libraries. -build_libtool_libs=$enable_shared - # Whether or not to build static libraries. build_old_libs=$enable_static +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + # What type of objects to build. pic_mode=$pic_mode @@ -21616,14 +22624,28 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: - cclive version: ${VERSION} (${VN}) - host setup: ${host} - prefix: ${prefix} - install manual: ${with_manual}" >&5 + version: ${VERSION} + prefix: ${prefix} + compiler: ${CXX} + flags: ${CXXFLAGS} +System types: + target ${target} + build ${build} + host ${host} +Options: + add ccl symlink: ${enable_ccl} + install manual : ${with_manual}" >&5 $as_echo "$as_me: - cclive version: ${VERSION} (${VN}) - host setup: ${host} - prefix: ${prefix} - install manual: ${with_manual}" >&6;} + version: ${VERSION} + prefix: ${prefix} + compiler: ${CXX} + flags: ${CXXFLAGS} +System types: + target ${target} + build ${build} + host ${host} +Options: + add ccl symlink: ${enable_ccl} + install manual : ${with_manual}" >&6;} # vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/configure.ac -> cclive-0.9.3.tar.xz/configure.ac
Changed
@@ -1,46 +1,70 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -AC_PREREQ([2.68]) +AC_PREREQ([2.69]) -m4_include([m4/version.m4]) - -AC_INIT([cclive], [_CCLIVE_VERSION], - [http://sourceforge.net/apps/trac/cclive], [], - [http://cclive.sourceforge.net/]) +AC_INIT([cclive], m4_esyscmd([./gen-ver.sh -c | tr -d '\n']), + [http://cclive.sf.net/bugs/],[],[http://cclive.sf.net/]) AC_CONFIG_SRCDIR([src/cc/application.cpp]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR([config.aux]) AC_CONFIG_MACRO_DIR([m4]) -AC_CANONICAL_SYSTEM -AC_GNU_SOURCE +AC_CANONICAL_TARGET +AC_USE_SYSTEM_EXTENSIONS -AC_DEFINE_UNQUOTED([CANONICAL_TARGET], "$target", [...]) -AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [...]) +AC_DEFINE_UNQUOTED([CANONICAL_TARGET], "$target", + [Define to canonical target]) -AM_INIT_AUTOMAKE([-Wall -Werror foreign dist-bzip2 dist-xz]) +AM_INIT_AUTOMAKE([1.11.1 -Wall -Werror dist-xz no-dist-gzip tar-ustar]) AM_SILENT_RULES([yes]) -LT_INIT() -LT_PREREQ([2.2]) +# GNU Automake 1.12 requires this macro. Earlier versions do not +# recognize this macro. Work around this. +m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) + +LT_INIT([disable-static]) +LT_PREREQ([2.2.6]) # Checks for programs. AC_PROG_CXX AC_PROG_CC AC_PROG_CPP +AC_PROG_LN_S + +AC_DEFINE_UNQUOTED([CXXFLAGS], "$CXXFLAGS", [Define to compiler flags]) +AC_DEFINE_UNQUOTED([CXX], "$CXX", [Define to compiler]) + +AC_PATH_PROG([DATE], [date], [no]) +AS_IF([test x"$DATE" != "xno"], [build_time=`$DATE +"%F %T %z"`]) +AC_DEFINE_UNQUOTED([BUILD_TIME], ["$build_time"], [We have build time]) + +AC_PATH_PROG([A2X], [a2x], [no]) +AM_CONDITIONAL([HAVE_A2X], [test x"$A2X" != "xno"]) +AC_SUBST([A2X]) + +AS_IF([test x"$A2X" = "xno" && test -d "$srcdir/.git"], + AC_MSG_ERROR([a2x is required to create man pages when building from git])]) # Checks for libraries. -PKG_CHECK_MODULES([libquvi], [libquvi >= 0.4.0], - [AC_DEFINE([HAVE_LIBQUVI_0_4_0], [1], [We have libquvi 0.4.0+])], - [PKG_CHECK_MODULES([libquvi], [libquvi >= 0.2.16.1])]) +have_libquvi_0_9= +PKG_CHECK_MODULES([libquvi], [libquvi-0.9 >= 0.9], + [ + AC_DEFINE([HAVE_LIBQUVI_0_9], [1], [We have libquvi 0.9]) + have_libquvi_0_9=yes + ], + [PKG_CHECK_MODULES([libquvi], [libquvi >= 0.4])]) +AM_CONDITIONAL([HAVE_LIBQUVI_0_9], [test x"$have_libquvi_0_9" = "xyes"]) + PKG_CHECK_MODULES([libcurl], [libcurl >= 7.18.0]) PKG_CHECK_MODULES([libpcre], [libpcre >= 8.02]) PKG_CHECK_MODULES([libpcrecpp], [libpcrecpp >= 8.02]) +PKG_CHECK_MODULES([glibmm], [glibmm-2.4 >= 2.24]) +PKG_CHECK_MODULES([glib], [glib-2.0 >= 2.24]) -BOOST_REQUIRE([1.42.0]) +BOOST_REQUIRE([1.49.0]) # Boost: Header-only libs BOOST_FOREACH BOOST_FORMAT @@ -58,15 +82,16 @@ AC_HEADER_STDBOOL AC_TYPE_SIZE_T AC_TYPE_PID_T +AC_C_INLINE # Checks for library functions. -AC_CHECK_FUNCS([strerror strstr getpid signal]) +AC_CHECK_FUNCS([strerror strstr getpid sigaction memset setlocale]) AC_FUNC_ERROR_AT_LINE AC_FUNC_STRERROR_R AC_FUNC_FORK # Version. -VN=`$srcdir/gen-ver.sh $srcdir` +VN=`$srcdir/gen-ver.sh` AC_DEFINE_UNQUOTED([VN],["$VN"], [We have version number from gen-ver.sh]) # --with-manual @@ -80,10 +105,10 @@ # --enable-ccl AC_ARG_ENABLE([ccl], [AS_HELP_STRING([--enable-ccl], - [Make a symbolic link from 'cclive' to 'ccl' @<:@default=no@:>@])], + [Symlink from 'cclive' executable to 'ccl' @<:@default=yes@:>@])], [], - [enable_ccl=no]) -AM_CONDITIONAL([ENABLE_CCL], [test x"$enable_ccl" != "xno"]) + [enable_ccl=yes]) +AM_CONDITIONAL([ENABLE_CCL], [test x"$enable_ccl" = "xyes"]) AC_CONFIG_FILES([ Makefile @@ -95,9 +120,16 @@ AC_OUTPUT AC_MSG_NOTICE([ - cclive version: ${VERSION} (${VN}) - host setup: ${host} - prefix: ${prefix} - install manual: ${with_manual}]) + version: ${VERSION} + prefix: ${prefix} + compiler: ${CXX} + flags: ${CXXFLAGS} +System types: + target ${target} + build ${build} + host ${host} +Options: + add ccl symlink: ${enable_ccl} + install manual : ${with_manual}]) # vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/doc/Makefile.am -> cclive-0.9.3.tar.xz/doc/Makefile.am
Changed
@@ -1,1 +1,2 @@ -SUBDIRS= man1 +EXTRA_DIST=asciidoc.conf +SUBDIRS=man1
View file
cclive-0.7.9.tar.bz2/doc/Makefile.in -> cclive-0.9.3.tar.xz/doc/Makefile.in
Changed
@@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.11.3 from Makefile.am. +# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -15,6 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -40,8 +57,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/boost.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/version.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -63,6 +79,11 @@ install-pdf-recursive install-ps-recursive install-recursive \ installcheck-recursive installdirs-recursive pdf-recursive \ ps-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ @@ -97,6 +118,7 @@ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" +A2X = @A2X@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -133,6 +155,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ @@ -210,6 +233,10 @@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +glib_CFLAGS = @glib_CFLAGS@ +glib_LIBS = @glib_LIBS@ +glibmm_CFLAGS = @glibmm_CFLAGS@ +glibmm_LIBS = @glibmm_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -250,6 +277,7 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ +EXTRA_DIST = asciidoc.conf SUBDIRS = man1 all: all-recursive @@ -263,9 +291,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign doc/Makefile + $(AUTOMAKE) --gnu doc/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -458,13 +486,10 @@ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ - test -d "$(distdir)/$$subdir" \ - || $(MKDIR_P) "$(distdir)/$$subdir" \ - || exit 1; \ - fi; \ - done - @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ - if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \
View file
cclive-0.9.3.tar.xz/doc/asciidoc.conf
Added
@@ -0,0 +1,64 @@ +## linkman: macro +# Inspired by/borrowed from the pacman source tree at doc/asciidoc.conf +# +# Usage: linkman:command[manpage-section] +# +# Note, {0} is the manpage section, while {target} is the command. +# +# Show man link as: <command>(<section>); if section is defined, else just show +# the command. + +[macros] +(?su)[\\]?(?P<name>linkman):(?P<target>\S*?)\[(?P<attrlist>.*?)\]= + +[attributes] +asterisk=* +plus=+ +caret=^ +startsb=[ +endsb=] +backslash=\ +tilde=~ +apostrophe=' +backtick=` +litdd=-- + +ifdef::backend-docbook[] +[linkman-inlinemacro] +{0%{target}} +{0#<citerefentry>} +{0#<refentrytitle>{target}</refentrytitle><manvolnum>{0}</manvolnum>} +{0#</citerefentry>} +endif::backend-docbook[] + +ifdef::backend-docbook[] +ifndef::docbook-xsl-172[] +# "unbreak" docbook-xsl v1.68 for manpages. v1.69 works with or without this. +# v1.72 breaks with this because it replaces dots not in roff requests. +[listingblock] +<example><title>{title}</title> +<literallayout> +| +</literallayout> +{title#}</example> +endif::docbook-xsl-172[] +endif::backend-docbook[] + +ifdef::doctype-manpage[] +ifdef::backend-docbook[] +[header] +template::[header-declarations] +<refentry> +<refmeta> +<refentrytitle>{mantitle}</refentrytitle> +<manvolnum>{manvolnum}</manvolnum> +<refmiscinfo class="source">cclive</refmiscinfo> +<refmiscinfo class="version">{cclive_version}</refmiscinfo> +<refmiscinfo class="manual">cclive Manual</refmiscinfo> +</refmeta> +<refnamediv> + <refname>{manname}</refname> + <refpurpose>{manpurpose}</refpurpose> +</refnamediv> +endif::backend-docbook[] +endif::doctype-manpage[]
View file
cclive-0.7.9.tar.bz2/doc/man1/Makefile.am -> cclive-0.9.3.tar.xz/doc/man1/Makefile.am
Changed
@@ -1,2 +1,24 @@ -EXTRA_DIST= cclive.1.pod -dist_man_MANS= cclive.1 +MAN1_TXT=cclive.1.txt +DOC_MAN1=cclive.1 + +MAN_TXT=$(MAN1_TXT) + +ASCIIDOC_OPTS=\ + -f $(top_srcdir)/doc/asciidoc.conf\ + -a cclive_version="$(VERSION)" + +if HAVE_A2X +$(DOC_MAN1): + $(AM_V_GEN)$(A2X) -f manpage --asciidoc-opts="$(ASCIIDOC_OPTS)" \ + -D $(builddir) $(srcdir)/$@.txt +doc: $(DOC_MAN1) +else +doc: + @echo configure did not find a2x +endif # HAVE_A2X + +MOSTLYCLEANFILES=$(DOC_MAN1) +dist_man_MANS=$(DOC_MAN1) +EXTRA_DIST=$(MAN_TXT) + +# vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/doc/man1/Makefile.in -> cclive-0.9.3.tar.xz/doc/man1/Makefile.in
Changed
@@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.11.3 from Makefile.am. +# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -15,6 +15,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -41,8 +58,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/boost.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/version.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -57,6 +73,11 @@ am__v_at_0 = @ SOURCES = DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -89,6 +110,7 @@ NROFF = nroff MANS = $(dist_man_MANS) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +A2X = @A2X@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -125,6 +147,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ @@ -202,6 +225,10 @@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +glib_CFLAGS = @glib_CFLAGS@ +glib_LIBS = @glib_LIBS@ +glibmm_CFLAGS = @glibmm_CFLAGS@ +glibmm_LIBS = @glibmm_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -242,8 +269,16 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = cclive.1.pod -dist_man_MANS = cclive.1 +MAN1_TXT = cclive.1.txt +DOC_MAN1 = cclive.1 +MAN_TXT = $(MAN1_TXT) +ASCIIDOC_OPTS = \ + -f $(top_srcdir)/doc/asciidoc.conf\ + -a cclive_version="$(VERSION)" + +MOSTLYCLEANFILES = $(DOC_MAN1) +dist_man_MANS = $(DOC_MAN1) +EXTRA_DIST = $(MAN_TXT) all: all-am .SUFFIXES: @@ -256,9 +291,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/man1/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/man1/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign doc/man1/Makefile + $(AUTOMAKE) --gnu doc/man1/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -285,11 +320,18 @@ -rm -rf .libs _libs install-man1: $(dist_man_MANS) @$(NORMAL_INSTALL) - test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)" - @list=''; test -n "$(man1dir)" || exit 0; \ - { for i in $$list; do echo "$$i"; done; \ - l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \ - sed -n '/\.1[a-z]*$$/p'; \ + @list1=''; \ + list2='$(dist_man_MANS)'; \ + test -n "$(man1dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.1[a-z]*$$/p'; \ + fi; \ } | while read p; do \ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; echo "$$p"; \ @@ -396,6 +438,7 @@ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: + -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: @@ -489,6 +532,15 @@ uninstall uninstall-am uninstall-man uninstall-man1 +@HAVE_A2X_TRUE@$(DOC_MAN1): +@HAVE_A2X_TRUE@ $(AM_V_GEN)$(A2X) -f manpage --asciidoc-opts="$(ASCIIDOC_OPTS)" \ +@HAVE_A2X_TRUE@ -D $(builddir) $(srcdir)/$@.txt +@HAVE_A2X_TRUE@doc: $(DOC_MAN1) +@HAVE_A2X_FALSE@doc: +@HAVE_A2X_FALSE@ @echo configure did not find a2x + +# vim: set ts=2 sw=2 tw=72 expandtab: + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT:
View file
cclive-0.7.9.tar.bz2/doc/man1/cclive.1 -> cclive-0.9.3.tar.xz/doc/man1/cclive.1
Changed
@@ -1,485 +1,967 @@ -.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) +'\" t +.\" Title: cclive +.\" Author: [see the "Authors" section] +.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/> +.\" Date: 11/23/2013 +.\" Manual: cclive Manual +.\" Source: cclive 0.9.3 +.\" Language: English .\" -.\" Standard preamble: -.\" ======================================================================== -.de Sp \" Vertical space (when we can't use .PP) -.if t .sp .5v -.if n .sp -.. -.de Vb \" Begin verbatim text -.ft CW -.nf -.ne \\$1 -.. -.de Ve \" End verbatim text -.ft R -.fi -.. -.\" Set up some character translations and predefined strings. \*(-- will -.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left -.\" double quote, and \*(R" will give a right double quote. \*(C+ will -.\" give a nicer C++. Capital omega is used to do unbreakable dashes and -.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, -.\" nothing in troff, for use with C<>. -.tr \(*W- -.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' -.ie n \{\ -. ds -- \(*W- -. ds PI pi -. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch -. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch -. ds L" "" -. ds R" "" -. ds C` "" -. ds C' "" -'br\} -.el\{\ -. ds -- \|\(em\| -. ds PI \(*p -. ds L" `` -. ds R" '' -'br\} -.\" -.\" Escape single quotes in literal strings from groff's Unicode transform. +.TH "CCLIVE" "1" "11/23/2013" "cclive 0\&.9\&.3" "cclive Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' -.\" -.\" If the F register is turned on, we'll generate index entries on stderr for -.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index -.\" entries marked with X<> in POD. Of course, you'll have to process the -.\" output yourself in some meaningful fashion. -.ie \nF \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" -.. -. nr % 0 -. rr F -.\} -.el \{\ -. de IX -.. -.\} -.\" -.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). -.\" Fear. Run. Save yourself. No user-serviceable parts. -. \" fudge factors for nroff and troff -.if n \{\ -. ds #H 0 -. ds #V .8m -. ds #F .3m -. ds #[ \f1 -. ds #] \fP -.\} -.if t \{\ -. ds #H ((1u-(\\\\n(.fu%2u))*.13m) -. ds #V .6m -. ds #F 0 -. ds #[ \& -. ds #] \& -.\} -. \" simple accents for nroff and troff -.if n \{\ -. ds ' \& -. ds ` \& -. ds ^ \& -. ds , \& -. ds ~ ~ -. ds / -.\} -.if t \{\ -. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" -. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' -. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' -. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' -. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' -. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' -.\} -. \" troff and (daisy-wheel) nroff accents -.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' -.ds 8 \h'\*(#H'\(*b\h'-\*(#H' -.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] -.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' -.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' -.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] -.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] -.ds ae a\h'-(\w'a'u*4/10)'e -.ds Ae A\h'-(\w'A'u*4/10)'E -. \" corrections for vroff -.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' -.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' -. \" for low resolution devices (crt and lpr) -.if \n(.H>23 .if \n(.V>19 \ -\{\ -. ds : e -. ds 8 ss -. ds o a -. ds d- d\h'-1'\(ga -. ds D- D\h'-1'\(hy -. ds th \o'bp' -. ds Th \o'LP' -. ds ae ae -. ds Ae AE -.\} -.rm #[ #] #H #V #F C -.\" ======================================================================== -.\" -.IX Title "cclive 1" -.TH cclive 1 "2011-11-26" "0.7.9" "cclive manual" -.\" For nroff, turn off justification. Always turn off hyphenation; it makes -.\" way too many mistakes in technical documents. -.if n .ad l +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation .nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- .SH "NAME" -cclive \- media download tool +cclive \- media stream extraction tool .SH "SYNOPSIS" -.IX Header "SYNOPSIS" -cclive [options] [url | file...] +.sp +.nf +\fIcclive\fR [OPTIONS] [URL|FILE \&...] +.fi .SH "DESCRIPTION" -.IX Header "DESCRIPTION" -cclive is a tool for downloading media from YouTube and similar -websites. It has a low memory footprint compared to other existing -tools. +.sp +cclive is a command line tool for downloading media streams from YouTube and similar websites\&. +.SH "INPUT" +.sp +The command will read stdin by default\&. The input is expected to contain URLs\&. The command arguments are expected to be either URLs or file paths\&. If the input is read from either stdin or a file, the contents are read as RFC2483\&. The input may also contain URIs (file://) to local files\&. .SH "OPTIONS" -.IX Header "OPTIONS" -Unless an arg is specified in the command line, cclive reads from the -stdin. The command line args may be either URLs or files to read. -If cclive reads from either stdin or files, it expects each \s-1URL\s0 to be -separated by a newline or whitespace character. -.SS "\-\-version" -.IX Subsection "--version" -Print version and exit. -.SS "\-\-help" -.IX Subsection "--help" -Print help and exit. -.SS "\-\-license" -.IX Subsection "--license" -Print license and exit. -.SS "\-\-support" -.IX Subsection "--support" -Print supported hosts and exit. -.SS "\-\-verbose\-libcurl" -.IX Subsection "--verbose-libcurl" -Turn on libcurl verbose output. -.SS "\-q, \-\-quiet" -.IX Subsection "-q, --quiet" -Turn off all output to stdout and stderr with the exception of -\&\f(CW\*(C`\-\-verbose\-libcurl\*(C'\fR, if enabled, libcurl will continue to print -messages to stderr. -.SS "\-b, \-\-background" -.IX Subsection "-b, --background" -Go to background after startup. Output will be written to -the file specified with \f(CW\*(C`\-\-log\-file\*(C'\fR. -.SS "\-F, \-\-query\-formats" -.IX Subsection "-F, --query-formats" -Query available formats to the \s-1URL\s0. The returned array is created -from the data returned by the server. You can use the -\&\fIformat strings\fR in this array with \f(CW\*(C`\-\-format\*(C'\fR. -.PP -The available formats are determined by the \fIlibquvi script\fR -responsible for parsing the media details. -.PP -See also \*(L"\s-1EXAMPLES\s0\*(R", \f(CW\*(C`\-\-format\*(C'\fR and \f(CW\*(C`\-\-prefer\-format\*(C'\fR. -.SS "\-f, \-\-format \fIarg\fP (=default)" -.IX Subsection "-f, --format arg (=default)" -Download the format \fIarg\fR of the media. The \fIarg\fR may also be \f(CW\*(C`default\*(C'\fR, -\&\f(CW\*(C`best\*(C'\fR, \f(CW\*(C`help\*(C'\fR or \f(CW\*(C`list\*(C'\fR. Note, however, that the \f(CW\*(C`list\*(C'\fR and the \f(CW\*(C`help\*(C'\fR -are \fIdeprecated\fR and will be removed in the later versions of cclive. -The \fIarg\fR value is used with \fBall\fR of the URLs fed to cclive. -.PP -If the \fIarg\fR is \f(CW\*(C`best\*(C'\fR, the \fIlibquvi script\fR responsible for parsing -the media details will determine the \f(CW\*(C`best\*(C'\fR format available to an \s-1URL\s0. -.PP -If the \fIarg\fR is \f(CW\*(C`default\*(C'\fR the \fIlibquvi script\fR attempts to return an -\&\s-1URL\s0 to whatever it deemed to be the \f(CW\*(C`default\*(C'\fR format for the \s-1URL\s0. -.PP -The \fIlibquvi script\fR will return the \f(CW\*(C`default\*(C'\fR format if the \fIarg\fR -was unrecognized or the requested format was not available. -.PP -You can find more information about the YouTube specific \*(L"fmt\*(R" IDs at: - <http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs> -.PP -See also \*(L"\s-1EXAMPLES\s0\*(R", \f(CW\*(C`\-\-query\-formats\*(C'\fR and \f(CW\*(C`\-\-prefer\-format\*(C'\fR. -.SS "\-c, \-\-continue" -.IX Subsection "-c, --continue" -Resume partially downloaded media. -.SS "\-W, \-\-overwrite" -.IX Subsection "-W, --overwrite" -Overwrite existing media. -.SS "\-O, \-\-output\-file \fIarg\fP" -.IX Subsection "-O, --output-file arg" -Write media to \fIarg\fR. Overrides \f(CW\*(C`\-\-filename\-format\*(C'\fR. -.SS "\-n, \-\-no\-download" -.IX Subsection "-n, --no-download" -Do not download the media, print details only. -.SS "\-r, \-\-no\-resolve" -.IX Subsection "-r, --no-resolve" -Do not resolve \s-1URL\s0 redirections. If enabled, breaks the compatibility -with most \*(L"shortened\*(R" URLs. -.SS "\-\-no\-proxy" -.IX Subsection "--no-proxy" -Disable use of \s-1HTTP\s0 proxy. Overrides both \f(CW\*(C`\-\-proxy\*(C'\fR and http_proxy environment -settings. -.SS "\-\-log\-file \fIarg\fP (=cclive_log)" -.IX Subsection "--log-file arg (=cclive_log)" -Write log output to \fIarg\fR. Ignored unless used with \f(CW\*(C`\-\-background\*(C'\fR. -Overwrites the existing \fIarg\fR file (if any). See also \f(CW\*(C`\-\-background\*(C'\fR -and \f(CW\*(C`\-\-update\-interval\*(C'\fR. -.SS "\-\-config\-file \fIarg\fP (=~/.ccliverc)" -.IX Subsection "--config-file arg (=~/.ccliverc)" -Path to a file to read cclive arguments from. -.SH "OPTIONS \- CONFIGURATION" -.IX Header "OPTIONS - CONFIGURATION" -In addition to the command line, the configurable options may also be read -from the configuration file. See \*(L"\s-1FILES\s0\*(R". -.SS "\-p, \-\-prefer\-format \fIarg\fP" -.IX Subsection "-p, --prefer-format arg" -Download the \fIspecified\fR format of the media when the pattern matches -to the media page \s-1URL\s0. -.PP -\&\fIarg\fR is a \fBstring pair\fR of \fIpattern\fR (regular expression) and -\&\fIformat\fR. The character ':' is expected to separate these two -strings, e.g. \f(CW\*(C`pattern:format\*(C'\fR. -.PP -\&\f(CW\*(C`\-\-format\*(C'\fR overrides \f(CW\*(C`\-\-prefer\-format\*(C'\fR. cclive accepts multiple -occurrences of \f(CW\*(C`\-\-prefer\-format\*(C'\fR. -.PP -See also \*(L"\s-1EXAMPLES\s0\*(R", \f(CW\*(C`\-\-query\-formats\*(C'\fR and \f(CW\*(C`\-\-format\*(C'\fR. -.SS "\-\-progressbar \fIarg\fP (=normal)" -.IX Subsection "--progressbar arg (=normal)" -Use the progressbar of type \fIarg\fR. Ignored with \f(CW\*(C`\-\-background\*(C'\fR which -will always use the \f(CW\*(C`dotline\*(C'\fR type. Possible values: -.PP -.Vb 3 -\& normal (default) -\& dotline (implied by \-\-background) -\& simple (basic) -.Ve -.SS "\-\-update\-interval \fIarg\fP (=1)" -.IX Subsection "--update-interval arg (=1)" -Specify \fIarg\fR progressbar update interval in seconds. Use of decimal -fractions, e.g. \*(L"0.2\*(R" or \*(L"1.99\*(R", is acceptable. -.ie n .SS "\-\-filename\-format \fIarg\fP (=""%t.%s"")" -.el .SS "\-\-filename\-format \fIarg\fP (=``%t.%s'')" -.IX Subsection "--filename-format arg (=%t.%s)" -How the downloaded media file should be named. Each occurence of the -following specifiers will be replaced in the \fIarg\fR: -.PP -.Vb 4 -\& %t .. Media title -\& %i .. Media ID -\& %h .. Media host ID (e.g. "vimeo") -\& %s .. Media file suffix (e.g. "flv") -.Ve -.PP -See also \f(CW\*(C`\-\-tr\*(C'\fR. -.SS "\-\-output\-dir \fIarg\fP" -.IX Subsection "--output-dir arg" -Write downloaded media to \fIarg\fR directory. -.SS "\-t, \-\-tr \fIarg\fP" -.IX Subsection "-t, --tr arg" -Where \fIarg\fR is a pattern (regular expression). \f(CW\*(C`\-\-tr\*(C'\fR can be used to -translate the characters in the media titles before they are used in -the filenames of the downloaded media. Default is \f(CW\*(C`/(\ew|\es)/g\*(C'\fR. -.PP -cclive accepts multiple occurrences of \f(CW\*(C`\-\-tr\*(C'\fR. See also \*(L"\s-1EXAMPLES\s0\*(R". -.SS "\-\-exec \fIarg\fP" -.IX Subsection "--exec arg" -Invoke \fIarg\fR after each successfully finished download. Each occurence -of the following specifiers will be replaced in the \fIarg\fR: -.PP -.Vb 3 -\& %f .. Full path to the downloaded media file -\& %n .. Name of the downloaded media file -\& %t .. Media title (unfiltered) -.Ve -.PP -The \fIarg\fR is also invoked if the media is fully retrieved already. -cclive accepts multiple occurrences of \f(CW\*(C`\-\-exec\*(C'\fR. See also \*(L"\s-1EXAMPLES\s0\*(R". -.ie n .SS "\-\-agent \fIarg\fP (=""Mozilla/5.0"")" -.el .SS "\-\-agent \fIarg\fP (=``Mozilla/5.0'')" -.IX Subsection "--agent arg (=Mozilla/5.0)" -Identify cclive as \fIarg\fR to the \s-1HTTP\s0 servers. -.SS "\-\-proxy \fIarg\fP" -.IX Subsection "--proxy arg" -Use \fIarg\fR for \s-1HTTP\s0 proxy, e.g. \*(L"http://foo:1234\*(R". Overrides -http_proxy environment setting. -.SS "\-\-throttle \fIarg\fP (=0, disabled)" -.IX Subsection "--throttle arg (=0, disabled)" -Do not exceed the transfer rate \fIarg\fR KB/s. -.SS "\-\-connect\-timeout \fIarg\fP (=30)" -.IX Subsection "--connect-timeout arg (=30)" -This option wraps the \s-1CURLOPT_CONNECTTIMEOUT\s0 (libcurl): -.PP -"Pass a long. It should contain the maximum time in seconds that -you allow the connection to the server to take. -.PP -This only limits the connection phase, once it has connected, -this option is of no more use. Set to zero to disable connection -timeout (it will then only timeout on the system's internal -timeouts). See also the \s-1CURLOPT_TIMEOUT\s0 option." -\&\*(-- \fIcurl_easy_setopt\fR\|(3) -.SS "\-\-transfer\-timeout \fIarg\fP (=0, disabled)" -.IX Subsection "--transfer-timeout arg (=0, disabled)" -This option wraps the \s-1CURLOPT_TIMEOUT\s0 (libcurl): -.PP -"Pass a long as parameter containing the maximum time in seconds -that you allow the libcurl transfer operation to take. -.PP -Normally, name lookups can take a considerable time and limiting -operations to less than a few minutes risk aborting perfectly -normal operations. This option will cause curl to use the -\&\s-1SIGALRM\s0 to enable time-outing system calls." -\&\*(-- \fIcurl_easy_setopt\fR\|(3) -.SS "\-\-dns\-cache\-timeout \fIarg\fP (=60)" -.IX Subsection "--dns-cache-timeout arg (=60)" -This option wraps the \s-1CURLOPT_DNS_CACHE_TIMEOUT\s0 (libcurl): -.PP -"Pass a long, this sets the timeout in seconds. Name resolves will -be kept in memory for this number of seconds. Set to zero to -completely disable caching, or set to \-1 to make the cached -entries remain forever. By default, libcurl caches this info -for 60 seconds. -.PP -The name resolve functions of various libc implementations don't -re-read name server information unless explicitly told so -(for example, by calling \fIres_init\fR\|(3)). This may cause libcurl -to keep using the older server even if \s-1DHCP\s0 has updated the -server info, and this may look like a \s-1DNS\s0 cache issue to the -casual libcurl-app user." \*(-- \fIcurl_easy_setopt\fR\|(3) -.SS "\-\-max\-retries \fIarg\fP (=5, 0=disabled)" -.IX Subsection "--max-retries arg (=5, 0=disabled)" -Retry downloading \fIarg\fR times before giving up. -.SS "\-\-retry\-wait \fIarg\fP (=5)" -.IX Subsection "--retry-wait arg (=5)" -Wait \fIarg\fR seconds before retrying after a failed attempt. -.SH "DEPRECATED" -.IX Header "DEPRECATED" -These options are deprecated and will be removed in the later versions -of cclive. -.ie n .SS "\-\-regexp \fIarg\fP (=""/(\ew|\es)/g"")" -.el .SS "\-\-regexp \fIarg\fP (=``/(\ew|\es)/g'')" -.IX Subsection "--regexp arg (=/(w|s)/g)" -Regular expression \fIarg\fR to cleanup the media title before it -is used in the filename. Supports \*(L"i\*(R" (case-insensitive) and \*(L"g\*(R" -(global or \*(L"find all\*(R"). -.PP -Use \f(CW\*(C`\-\-tr\*(C'\fR instead. -.SS "\-\-subst \fIarg\fP ..." -.IX Subsection "--subst arg ..." -Replace matched occurences in the media filename after applying -\&\f(CW\*(C`\-\-filename\-format\*(C'\fR and \f(CW\*(C`\-\-regexp\*(C'\fR. To use multiple substitutions, -separate each expression in \fIarg\fR with a whitespace. Supports \*(L"i\*(R" -(case-insensitive) and \*(L"g\*(R" (global or \*(L"find all\*(R"). -.PP -\fISupported delimiters\fR -.IX Subsection "Supported delimiters" -.PP -.Vb 1 -\& <> {} () / -.Ve -.PP -\fINote\fR -.IX Subsection "Note" -.PP -.Vb 2 -\& s/old/new/ .. Invalid -\& s/old//new/ .. OK -.Ve -.PP -Use \f(CW\*(C`\-\-tr\*(C'\fR instead. +.SS "Core" +.PP +\-b, \-\-background +.RS 4 +Go to background after startup\&. The output written to stdout will be written to the file specified with \-\-log\-file\&. +.RE +.PP +\-F, \-\-config\-file <arg> +.RS 4 +Read the program arguments from the specified file instead of the default ~/\&.ccliverc file\&. See also +the section called \(lqFILES\(rq\&. +.RE +.PP +\-c, \-\-continue +.RS 4 +Resume partially downloaded media\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + continue = {true|false} +.fi +.if n \{\ +.RE +.\} +.PP +\-e, \-\-exec <arg> +.RS 4 +Invoke the specified command after each successfully finished download\&. The command is also invoked if the media is fully retrieved already\&. This option may be specified multiple times\&. See also +the section called \(lqEXAMPLES\(rq\&. + +All occurences of the following sequences will be replaced in the +\fIarg\fR: +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf + %f \&.\&. Full path to the downloaded media file + %n \&.\&. Name of the downloaded media file + %t \&.\&. Unfiltered media title + +config: + exec = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-n, \-\-no\-download +.RS 4 +Do not download the media, print the details only\&. +.RE +.PP +\-s, \-\-stream <ID> +.RS 4 +Download the specified media stream\&. By default the program will get the +\fIdefault\fR +stream\&. The stream selection with +\fBlibquvi\fR(3) +0\&.4 is basic at most, whereas +\fBlibquvi\fR(3) +0\&.9+ provides a more advanced facility for this\&. + +\fBlibquvi\fR(3) +0\&.9+ treats the ID value as a regex PATTERN and matches it against the +\fBlibquvi-scripts\fR(7) +returned media stream IDs\&. Additionally, the value of ID may be a +\fIcomma\-separated list\fR +of regex PATTERNs\&. + +In comparison, +\fBlibquvi\fR(3) +0\&.4 only checks whether the strings (the value of ID and the returned media stream ID) are equal\&. + +The ID value may also contain the following reserved keywords: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} + +\fIcroak\fR +\- tell +\fBlibquvi\fR(3) +(0\&.9+) to exit with an error when reached +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} + +\fIbest\fR +\- tell +\fBlibquvi\fR(3) +to choose the best quality stream +.RE +.sp +The +\fIbest\fR +quality is determined by +\fBlibquvi-scripts\fR(7)\&. The method varies, depending on the +\fBlibquvi\fR(3) +version and the website\&. +.sp +For example, +\fBlibquvi-scripts\fR(7) +0\&.9+ would typically compare the media quality properties (e\&.g\&. the video height property)\&. In reality, the method will vary depending on the data provided by the media hosting service, and the implementation of the support script that was written for the website\&. +.sp +See the \-\-version output to confirm whether cclive was built with +\fBlibquvi\fR(3) +0\&.9 or later\&. See also +the section called \(lqEXAMPLES\(rq\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + stream = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-N, \-\-timestamp +.RS 4 +Try to preserve the file modification time (as returned by the server, if any)\&. Using this option will cause the program to change the modification time of the file to that of returned by the server\&. +.if n \{\ +.sp +.\} +.RS 4 +.it 1 an-trap +.nr an-no-space-flag 1 +.nr an-break-flag 1 +.br +.ps +1 +\fBNote\fR +.ps -1 +.br +libcurl will parse this value from the returned "Last\-Modified" HTTP header\&. This header may not always be present in which case the program will quietly ignore this option\&. +.sp .5v +.RE +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + timestamp = {true|false} +.fi +.if n \{\ +.RE +.\} +.SS "Informative" +.PP +\-h, \-\-help +.RS 4 +Print help and exit\&. +.RE +.PP +\-S, \-\-print\-streams +.RS 4 +Print the available media streams\&. The printed values (media stream IDs) may be used with \-\-stream and \-\-prefer\-format options\&. The available streams are determined by +\fBlibquvi\fR(3) +and +\fBlibquvi-scripts\fR(7)\&. +.RE +.PP +\-D, \-\-print\-config +.RS 4 +Print the value of all defined configuration options to stdout\&. +.RE +.PP +\-u, \-\-support +.RS 4 +Print the supported website domains and exit\&. +.RE +.PP +\-v, \-\-version +.RS 4 +Print the program version and exit\&. +.RE +.SS "Output" +.PP +\-f, \-\-filename\-format <arg> +.RS 4 +Specify how the downloaded media file should be named\&. All occurences of the following sequences will be replaced in the +\fIarg\fR: +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf + %t \&.\&. Media title (after applying \-\-tr) + %s \&.\&. Media file extension + %i \&.\&. Media ID +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +The default value is "%t\&.%s"\&. +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + filename\-format = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-l, \-\-log\-file <arg> +.RS 4 +Write log output to the specified file\&. The program will ignore this option value unless it is being used together with \-\-background\&. The existing log file will be ovewritten\&. By default, the program will use "cclive_log" as the log file name\&. +.RE +.PP +\-d, \-\-output\-dir <arg> +.RS 4 +Write downloaded media to the specified directory\&. By default, the program will write the media to the current working directory\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + output\-dir = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-O, \-\-output\-file <arg> +.RS 4 +Write media to the specified file\&. Overrides \-\-filename\-format\&. +.RE +.PP +\-W, \-\-overwrite +.RS 4 +Overwrite existing media files\&. +.RE +.PP +\-R, \-\-progressbar <arg> +.RS 4 +Use the progressbar of the specified type\&. The program will ignore the value of this option with \-\-background\&. The arg may be one of the following values: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +dotline (also implied by \-\-background) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +normal (default) +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +simple +.RE +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + progressbar = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-q, \-\-quiet +.RS 4 +Turn off all output to stdout and stderr with the exception of \-\-verbose\-libcurl\&. +.RE +.PP +\-t, \-\-tr <arg> +.RS 4 +Specify to translate the characters in the media titles before they are used in the media file names\&. The +\fIarg\fR +is a regular expression pattern\&. The default value is "/(\ew|\es)/g"\&. This option may be specified multiple times\&. See also +the section called \(lqEXAMPLES\(rq\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + tr = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-i, \-\-update\-interval <arg> +.RS 4 +Specify the progressbar update interval in seconds\&. The default value is 1\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + update\-interval = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-B, \-\-verbose\-libcurl +.RS 4 +Enable libcURL verbose output\&. +.RE +.SS "Network" +.PP +\-a, \-\-agent <arg> +.RS 4 +Identify cclive as +\fIarg\fR +to the HTTP servers\&. The default value is "Mozilla/5\&.0"\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + agent = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-C, \-\-connect\-timeout <arg> +.RS 4 +Maximum time in seconds that the program should allow the connection to the server to take\&. This only limits the connection phase, once it has connected, this option is no more of use\&. Set to 0 to disable connection timeout (it will then only timeout on the system\(cqs internal timeouts)\&. The default is 30\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + connect\-time = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-A, \-\-dns\-cache\-timeout <arg> +.RS 4 +The name resolves will be kept in the memory for this number of seconds\&. Set to 0 to completely disable DNS caching, or to \-1 to make the cached entries to remain in the memory forever\&. The default is 60\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + dns\-cache\-timeout = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-m, \-\-max\-retries <arg> +.RS 4 +Specify the number of downloading retries before giving up\&. Set to 0 to disable\&. The default is 5\&. + +Note that the program will skip retrying altogether if the server returned HTTP 400 (and over), or if +\fBlibquvi\fR(3) +returned an unrecoverable error (e\&.g\&. missing +\fBlibquvi-scripts\fR(7))\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + max\-retries = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-X, \-\-no\-proxy +.RS 4 +Disable use of HTTP proxy\&. Overrides \-\-proxy and http_proxy environment settings\&. +.RE +.PP +\-r, \-\-no\-resolve +.RS 4 +Do not resolve HTTP URL redirections\&. Using this option will result in the program not being able to follow URL redirections which are often used by different URL shortening services\&. + +When libquvi 0\&.9 or later is being used with cclive, this option will be ignored\&. The library will always resolve any URL redirections\&. See \-\-version output to see if cclive was compiled with libquvi 0\&.9+\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + no\-resolve = {true|false} +.fi +.if n \{\ +.RE +.\} +.PP +\-x, \-\-proxy I<arg> +.RS 4 +Use the specified proxy address (e\&.g\&. +http://foo:1234) for HTTP connections\&. By default, libcURL (which cclive and +\fBlibquvi\fR(3) +use) will use the value of http_proxy\&. Using this option will override the http_proxy environment value\&. + +See +\fBcurl\fR(1) +for more information about the supported environment variables\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + proxy = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-w, \-\-retry\-wait <arg> +.RS 4 +Wait the specified number of seconds before retrying after a failed attempt\&. The default is 5\&. If the value is 0, the program will skip this step\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + retry\-wait = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-H, \-\-throttle <arg> +.RS 4 +Do not exceed the specified transfer rate (Ki/s)\&. If +\fIarg\fR +is 0 (default), the throttling will be disabled\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + throttle = arg +.fi +.if n \{\ +.RE +.\} +.PP +\-T, \-\-transfer\-timeout <arg> +.RS 4 +Maximum time in seconds that the program should allow the transfer operation to take\&. Normally, name lookups can take a considerable amount of time, and limiting operations to less than a few minutes will risk aborting perfectly normal operations\&. This option will cause libcURL to use the SIGALRM to enable the timeout system calls\&. The default is 0 (disabled)\&. +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + transfer\-timeout = arg +.fi +.if n \{\ +.RE +.\} +.SS "Deprecated" +.sp +These options will be removed eventually in the later versions of cclive\&. +.PP +\-p, \-\-prefer\-format <arg> +.RS 4 +The +\fI\-\-stream\fR +is intended to replace this option, eventually\&. The stream selection will be provided by libquvi 0\&.9+\&. This was done previously by cclive\&. See also +the section called \(lqEXAMPLES\(rq\&. + +Have the program choose the format (media stream) to download by matching the regular expression pattern match to the media URL as specified in the +\fIarg\fR\&. + +This option may be specified multiple times\&. The use of \-\-stream will override the rules specified using this option\&. + +The +\fIarg\fR +is a +\fIstring pair\fR +separated by a colon\&. The +\fIstring pair\fR +consists of: +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +a regular expression pattern +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +format (media stream) to download +.RE +.RE +.sp +.if n \{\ +.RS 4 +.\} +.nf +config: + prefer\-format = arg +.fi +.if n \{\ +.RE +.\} .SH "EXAMPLES" -.IX Header "EXAMPLES" -Always quote the URLs in the command line as seen below. Many URLs -contain parameters that may otherwise cause the shell to behave -with unexpected results. -.ie n .SS "cclive ""\s-1URL\s0""" -.el .SS "cclive ``\s-1URL\s0''" -.IX Subsection "cclive URL" -Typical use. -.ie n .SS "cclive \-F ""\s-1URL\s0""" -.el .SS "cclive \-F ``\s-1URL\s0''" -.IX Subsection "cclive -F URL" -Query available formats to the \s-1URL\s0. You can then use one of the -format strings from the returned array with \f(CW\*(C`\-\-format\*(C'\fR. -.ie n .SS "cclive \-f best ""\s-1URL\s0""" -.el .SS "cclive \-f best ``\s-1URL\s0''" -.IX Subsection "cclive -f best URL" -Download the best available format of the media. -.ie n .SS "cclive \-p ""^.*youtube.*\e.com:fmt43_360p"" ""\s-1YOUTUBE_URL\s0""" -.el .SS "cclive \-p ``^.*youtube.*\e.com:fmt43_360p'' ``\s-1YOUTUBE_URL\s0''" -.IX Subsection "cclive -p ^.*youtube.*.com:fmt43_360p YOUTUBE_URL" -Get the fmt43_360p format of YouTube videos whenever possible. -.ie n .SS "cclive \-n ""\s-1URL\s0""" -.el .SS "cclive \-n ``\s-1URL\s0''" -.IX Subsection "cclive -n URL" -Do not download the media, print the details only. -.ie n .SS "cclive ""\s-1URL\s0"" \-t 's/foo/bar/g'" -.el .SS "cclive ``\s-1URL\s0'' \-t 's/foo/bar/g'" -.IX Subsection "cclive URL -t 's/foo/bar/g'" -Replace any \*(L"foo\*(R" substrings with \*(L"bar\*(R" in the media title before -using it in the output filename. -.ie n .SS "cclive ""\s-1URL\s0"" \-b \-\-log\-file foo.log" -.el .SS "cclive ``\s-1URL\s0'' \-b \-\-log\-file foo.log" -.IX Subsection "cclive URL -b --log-file foo.log" -Go to background, redirect output to \f(CW\*(C`foo.log\*(C'\fR. -.SS "pkill \-USR1 cclive" -.IX Subsection "pkill -USR1 cclive" -Interrupt the current download of all matching cclive processes. Causes -cclive to move onto the next \s-1URL\s0 in the queue, if any. -.ie n .SS "cclive ""\s-1URL\s0"" \-\-exec 'echo ""%f""' \-\-exec 'vlc ""%f""'" -.el .SS "cclive ``\s-1URL\s0'' \-\-exec 'echo ``%f''' \-\-exec 'vlc ``%f'''" -.IX Subsection "cclive URL --exec 'echo %f' --exec 'vlc %f'" -Print path to the downloaded media file using \fIecho\fR\|(1), open the media -file in \fIvlc\fR\|(1). -.SS "More examples" -.IX Subsection "More examples" -You can find more examples in the project wiki, see \*(L"\s-1WWW\s0\*(R" for the -URLs. +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Typical use: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ cclive "URL" +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Query the available media streams: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ cclive \-S "URL" +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Download the best quality media stream: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ cclive \-s best "URL" +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +With +\fBlibquvi\fR(3) +0\&.9+, you can pass a list of stream ID patterns to match: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ cclive \-s foo,baz,best "URL" +.fi +.if n \{\ +.RE +.\} +.sp +See the \-\-stream description for more details\&. +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Replace all occurences of +\fIfoo\fR +with +\fIbar\fR +in the media title before it is used in the media file name: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ cclive \-t \*(Aqs/foo/bar/g\*(Aq "URL" +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Go to background, redirect output to +\fIfoo\&.log\fR +file: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ cclive \-b \-\-log\-file foo\&.log "URL" +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Interrupt the current transfer of all of the matching processes, this (USR1) will cause cclive to move onto the next URL in the batch: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ pkill \-USR1 cclive +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Print the path to the downloaded media file using +\fBecho\fR(1) +and open the media file in +\fBtotem\fR(1): +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ cclive \-\-exec \*(Aqecho "%f"\*(Aq \-\-exec \*(Aqtotem "%f"\*(Aq "URL" +.fi +.if n \{\ +.RE +.\} +.RE +.sp +.RS 4 +.ie n \{\ +\h'-04'\(bu\h'+03'\c +.\} +.el \{\ +.sp -1 +.IP \(bu 2.3 +.\} +Process a batch of media URLs: +.sp +.if n \{\ +.RS 4 +.\} +.nf +$ cat URLs +http://foo +http://bar +http://baz +http://qux +$ cat URLs | cclive +$ cclive < URLs +$ cclive URLs +.fi +.if n \{\ +.RE +.\} +.RE .SH "FILES" -.IX Header "FILES" -.SS "~/.ccliverc" -.IX Subsection "~/.ccliverc" -Or use \f(CW\*(C`\-\-config\-file\*(C'\fR. See \f(CW\*(C`\-\-help\*(C'\fR or \*(L"\s-1OPTIONS\s0 \- \s-1CONFIGURATION\s0\*(R" -for the configurable options. -.PP -\fIExample\fR -.IX Subsection "Example" -.PP -.Vb 7 -\& filename\-format = %h_%i_(%t).%s -\& proxy = http://foo:1234 -\& exec = /usr/bin/vlc %f -\& regexp = /(\ew|\epL)/g -\& progressbar = simple -\& prefer\-format = ^.*youtube.*\e.com:fmt43_360p -\& prefer\-format = dailym:best -.Ve +.PP +~/\&.ccliverc +.RS 4 +The program will read this location by default\&. A different location may be defined with \-\-config\-file\&. +.RE +.SS "Example" +.sp +.if n \{\ +.RS 4 +.\} +.nf +prefer\-format = ^\&.*youtube\&.*\e\&.com:fmt43_360p +prefer\-format = dailym:best +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +filename\-format = %i_(%t)\&.%s +tr = /(\ew)/g +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +progressbar = simple +continue = true +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +proxy = http://foo:1234 +no\-resolve = false +.fi +.if n \{\ +.RE +.\} +.sp +.if n \{\ +.RS 4 +.\} +.nf +exec = /usr/bin/totem %f +.fi +.if n \{\ +.RE +.\} +.SH "STREAMS" +.sp +The availability and the identification of the media streams is determined by \fBlibquvi\fR(3) and \fBlibquvi-scripts\fR(7)\&. +.SS "YouTube" +.sp +\fBlibquvi-scripts\fR(7) returns the media stream IDs containing the \fIitag\fR value so that they can be referred to as such using the \-\-stream or \-\-prefer\-format options\&. The \-\-print\-streams may be used to get a list of the available media streams\&. +.PP +libquvi\-scripts 0\&.4 +.RS 4 +The +\fIfmt\fR +prefix is used to identify the streams\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +itag: 22 +quvi: fmt22_720p +.fi +.if n \{\ +.RE +.\} +.RE +.PP +libquvi\-scripts 0\&.9 and later +.RS 4 +The +\fIiXX\fR +prefix is used in the media stream IDs\&. For example: +.sp +.if n \{\ +.RS 4 +.\} +.nf +itag: 22 +quvi: hd720_mp4_i22_720p +.fi +.if n \{\ +.RE +.\} +.RE +.sp +For more information about the YouTube video quality and codecs, visit http://en\&.wikipedia\&.org/wiki/YouTube#Quality_and_codecs\&. .SH "EXIT STATUS" -.IX Header "EXIT STATUS" -cclive exits with 0 on success and >0 if an (unrecoverable) error -occurred. -.SH "DEBUGGING TIPS" -.IX Header "DEBUGGING TIPS" -.SS "\-\-verbose\-libcurl" -.IX Subsection "--verbose-libcurl" -Make libcurl verbose. -.SH "WWW" -.IX Header "WWW" -.Vb 2 -\& Home : http://cclive.sourceforge.net/ -\& gitweb: http://repo.or.cz/w/cclive.git -.Ve -.SH "BACKGROUND" -.IX Header "BACKGROUND" -The name \*(L"clive\*(R" originates from the words \*(L"command line video extraction\*(R", -the prepending \*(L"c\*(R" refers to C or \*(C+. cclive is a rewrite of \fIclive\fR\|(1) -in \*(C+. +.sp +The program will exit with EXIT_SUCCESS (on POSIX systems this is 0) on success, and with EXIT_FAILURE (on POSIX systems this is 1) if an error occurred\&. +.SH "FURTHER RESOURCES" +.sp +The development code may be cloned from git://repo\&.or\&.cz/cclive\&.git\&. The gitweb is accessible at http://repo\&.or\&.cz/w/cclive\&.git\&. +.SH "AUTHORS" +.PP +Toni Gundogdu <legatvs@gmail\&.com> +.RS 4 +Author\&. +.RE +.SH "REPORTING BUGS" +.sp +Report bugs to the cclive\-devel mailing list <cclive\-devel@lists\&.sourceforge\&.net> where the development and the maintenance is primarily done\&. You do not have to be subscribed to the list to send a message there\&. .SH "LICENSE" -.IX Header "LICENSE" -cclive is free software, licensed under the GPLv3+. -.SH "AUTHOR" -.IX Header "AUTHOR" -Toni Gundogdu <legatvs at sign gmail com>. -.PP -Thanks to all those who have contributed to the project by sending -patches, reporting bugs and writing feedback. You know who you are. +.sp +cclive is Free Software, licensed under the GNU Affero GPLv3+\&. +.SH "SEE ALSO" +.sp +\fBlibquvi-scripts\fR(7), \fBlibquvi\fR(3)
View file
cclive-0.9.3.tar.xz/doc/man1/cclive.1.txt
Added
@@ -0,0 +1,496 @@ +cclive(1) +========= + +NAME +---- +cclive - media stream extraction tool + +SYNOPSIS +-------- +[verse] +'cclive' [OPTIONS] [URL|FILE ...] + +DESCRIPTION +----------- +cclive is a command line tool for downloading media streams from YouTube +and similar websites. + +INPUT +----- +The command will read stdin by default. The input is expected to contain +URLs. The command arguments are expected to be either URLs or file +paths. If the input is read from either stdin or a file, the contents +are read as RFC2483. The input may also contain URIs (file://) to local +files. + +OPTIONS +------- + +Core +~~~~ + +-b, --background:: + Go to background after startup. The output written to stdout + will be written to the file specified with --log-file. + +-F, --config-file <arg>:: + Read the program arguments from the specified file instead of the + default ~/.ccliverc file. See also <<FILES>>. + +-c, --continue:: + Resume partially downloaded media. +---- +config: + continue = {true|false} +---- + +-e, --exec <arg>:: + Invoke the specified command after each successfully finished + download. The command is also invoked if the media is fully + retrieved already. This option may be specified multiple times. + See also <<EXAMPLES>>. + + + All occurences of the following sequences will be replaced + in the 'arg': +---- + %f .. Full path to the downloaded media file + %n .. Name of the downloaded media file + %t .. Unfiltered media title + +config: + exec = arg +---- + +-n, --no-download:: + Do not download the media, print the details only. + +-s, --stream <ID>:: + Download the specified media stream. By default the program will get + the 'default' stream. The stream selection with linkman:libquvi[3] 0.4 + is basic at most, whereas linkman:libquvi[3] 0.9+ provides a more + advanced facility for this. + + + linkman:libquvi[3] 0.9+ treats the ID value as a regex PATTERN and + matches it against the linkman:libquvi-scripts[7] returned media + stream IDs. Additionally, the value of ID may be a 'comma-separated + list' of regex PATTERNs. + + + In comparison, linkman:libquvi[3] 0.4 only checks whether the strings + (the value of ID and the returned media stream ID) are equal. + + + The ID value may also contain the following reserved keywords: ++ +- 'croak' - tell linkman:libquvi[3] (0.9+) to exit with an error + when reached +- 'best' - tell linkman:libquvi[3] to choose the best quality stream + ++ +The 'best' quality is determined by linkman:libquvi-scripts[7]. The +method varies, depending on the linkman:libquvi[3] version and the +website. ++ +For example, linkman:libquvi-scripts[7] 0.9+ would typically compare the +media quality properties (e.g. the video height property). In reality, +the method will vary depending on the data provided by the media hosting +service, and the implementation of the support script that was written +for the website. ++ +See the --version output to confirm whether cclive was built with +linkman:libquvi[3] 0.9 or later. See also <<EXAMPLES>>. +---- +config: + stream = arg +---- + +-N, --timestamp:: + Try to preserve the file modification time (as returned by the server, + if any). Using this option will cause the program to change the + modification time of the file to that of returned by the server. ++ +NOTE: libcurl will parse this value from the returned "Last-Modified" + HTTP header. This header may not always be present in which case + the program will quietly ignore this option. +---- +config: + timestamp = {true|false} +---- + +Informative +~~~~~~~~~~~ + +-h, --help:: + Print help and exit. + +-S, --print-streams:: + Print the available media streams. The printed values (media stream + IDs) may be used with --stream and --prefer-format options. The + available streams are determined by linkman:libquvi[3] and + linkman:libquvi-scripts[7]. + +-D, --print-config:: + Print the value of all defined configuration options to stdout. + +-u, --support:: + Print the supported website domains and exit. + +-v, --version:: + Print the program version and exit. + +Output +~~~~~~ + +-f, --filename-format <arg>:: + Specify how the downloaded media file should be named. All occurences + of the following sequences will be replaced in the 'arg': +---- + %t .. Media title (after applying --tr) + %s .. Media file extension + %i .. Media ID +---- + The default value is "%t.%s". +---- +config: + filename-format = arg +---- + +-l, --log-file <arg>:: + Write log output to the specified file. The program will ignore this + option value unless it is being used together with --background. The + existing log file will be ovewritten. By default, the program will use + "cclive_log" as the log file name. + +-d, --output-dir <arg>:: + Write downloaded media to the specified directory. By default, the + program will write the media to the current working directory. +---- +config: + output-dir = arg +---- + +-O, --output-file <arg>:: + Write media to the specified file. Overrides --filename-format. + +-W, --overwrite:: + Overwrite existing media files. + +-R, --progressbar <arg>:: + Use the progressbar of the specified type. The program will ignore + the value of this option with --background. The arg may be one of the + following values: + * dotline (also implied by --background) + * normal (default) + * simple +---- +config: + progressbar = arg +---- + +-q, --quiet:: + Turn off all output to stdout and stderr with the exception of + --verbose-libcurl. + +-t, --tr <arg>:: + Specify to translate the characters in the media titles before they + are used in the media file names. The 'arg' is a regular expression + pattern. The default value is "/(\w|\s)/g". This option may be + specified multiple times. See also <<EXAMPLES>>. +---- +config: + tr = arg +---- + +-i, --update-interval <arg>:: + Specify the progressbar update interval in seconds. The default value + is 1. +---- +config: + update-interval = arg +---- + +-B, --verbose-libcurl:: + Enable libcURL verbose output. + +Network +~~~~~~~ + +-a, --agent <arg>:: + Identify cclive as 'arg' to the HTTP servers. The default value is + "Mozilla/5.0". +---- +config: + agent = arg +---- + +-C, --connect-timeout <arg>:: + Maximum time in seconds that the program should allow the connection + to the server to take. This only limits the connection phase, once it + has connected, this option is no more of use. Set to 0 to disable + connection timeout (it will then only timeout on the system's internal + timeouts). The default is 30. +---- +config: + connect-time = arg +---- + +-A, --dns-cache-timeout <arg>:: + The name resolves will be kept in the memory for this number of + seconds. Set to 0 to completely disable DNS caching, or to -1 to make + the cached entries to remain in the memory forever. The default is 60. +---- +config: + dns-cache-timeout = arg +---- + +-m, --max-retries <arg>:: + Specify the number of downloading retries before giving up. Set to 0 + to disable. The default is 5. + + + Note that the program will skip retrying altogether if the server + returned HTTP 400 (and over), or if linkman:libquvi[3] returned an + unrecoverable error (e.g. missing linkman:libquvi-scripts[7]). +---- +config: + max-retries = arg +---- + +-X, --no-proxy:: + Disable use of HTTP proxy. Overrides --proxy and http_proxy environment + settings. + +-r, --no-resolve:: + Do not resolve HTTP URL redirections. Using this option will result in + the program not being able to follow URL redirections which are often + used by different URL shortening services. + + + When libquvi 0.9 or later is being used with cclive, this option will + be ignored. The library will always resolve any URL redirections. See + --version output to see if cclive was compiled with libquvi 0.9+. +---- +config: + no-resolve = {true|false} +---- + +-x, --proxy I<arg>:: + Use the specified proxy address (e.g. http://foo:1234) for HTTP + connections. By default, libcURL (which cclive and linkman:libquvi[3] + use) will use the value of http_proxy. Using this option will override + the http_proxy environment value. + + + See linkman:curl[1] for more information about the supported + environment variables. +---- +config: + proxy = arg +---- + +-w, --retry-wait <arg>:: + Wait the specified number of seconds before retrying after a failed + attempt. The default is 5. If the value is 0, the program will skip + this step. +---- +config: + retry-wait = arg +---- + +-H, --throttle <arg>:: + Do not exceed the specified transfer rate (Ki/s). If 'arg' is 0 + (default), the throttling will be disabled. +---- +config: + throttle = arg +---- + +-T, --transfer-timeout <arg>:: + Maximum time in seconds that the program should allow the transfer + operation to take. Normally, name lookups can take a considerable + amount of time, and limiting operations to less than a few minutes + will risk aborting perfectly normal operations. This option will cause + libcURL to use the SIGALRM to enable the timeout system calls. The + default is 0 (disabled). +---- +config: + transfer-timeout = arg +---- + +Deprecated +~~~~~~~~~~ + +These options will be removed eventually in the later versions of +cclive. + +-p, --prefer-format <arg>:: + The '--stream' is intended to replace this option, eventually. The + stream selection will be provided by libquvi 0.9+. This was done + previously by cclive. See also <<EXAMPLES>>. + + + Have the program choose the format (media stream) to download by + matching the regular expression pattern match to the media URL as + specified in the 'arg'. + + + This option may be specified multiple times. The use of --stream will + override the rules specified using this option. + + + The 'arg' is a 'string pair' separated by a colon. The 'string pair' + consists of: + * a regular expression pattern + * format (media stream) to download +---- +config: + prefer-format = arg +---- + +[[EXAMPLES]] +EXAMPLES +-------- + +* Typical use: ++ +---- +$ cclive "URL" +---- + +* Query the available media streams: ++ +---- +$ cclive -S "URL" +---- + +* Download the best quality media stream: ++ +---- +$ cclive -s best "URL" +---- + +* With linkman:libquvi[3] 0.9+, you can pass a list of stream ID + patterns to match: ++ +---- +$ cclive -s foo,baz,best "URL" +---- ++ +See the --stream description for more details. + +* Replace all occurences of 'foo' with 'bar' in the media title before + it is used in the media file name: ++ +---- +$ cclive -t 's/foo/bar/g' "URL" +---- + +* Go to background, redirect output to 'foo.log' file: ++ +---- +$ cclive -b --log-file foo.log "URL" +---- + +* Interrupt the current transfer of all of the matching processes, + this (USR1) will cause cclive to move onto the next URL in the batch: ++ +---- +$ pkill -USR1 cclive +---- + +* Print the path to the downloaded media file using linkman:echo[1] and + open the media file in linkman:totem[1]: ++ +---- +$ cclive --exec 'echo "%f"' --exec 'totem "%f"' "URL" +---- + +* Process a batch of media URLs: ++ +---- +$ cat URLs +http://foo +http://bar +http://baz +http://qux +$ cat URLs | cclive +$ cclive < URLs +$ cclive URLs +---- + +[[FILES]] +FILES +----- + +~/.ccliverc:: + The program will read this location by default. A different location + may be defined with --config-file. + +Example +~~~~~~~ + + prefer-format = ^.*youtube.*\.com:fmt43_360p + prefer-format = dailym:best + + filename-format = %i_(%t).%s + tr = /(\w)/g + + progressbar = simple + continue = true + + proxy = http://foo:1234 + no-resolve = false + + exec = /usr/bin/totem %f + +[[STREAMS]] +STREAMS +------- +The availability and the identification of the media streams is +determined by linkman:libquvi[3] and linkman:libquvi-scripts[7]. + +YouTube +~~~~~~~ + +linkman:libquvi-scripts[7] returns the media stream IDs containing the +'itag' value so that they can be referred to as such using the --stream +or --prefer-format options. The --print-streams may be used to get a +list of the available media streams. + +libquvi-scripts 0.4:: + The 'fmt' prefix is used to identify the streams. For example: + + itag: 22 + quvi: fmt22_720p + +libquvi-scripts 0.9 and later:: + The 'iXX' prefix is used in the media stream IDs. For example: + + itag: 22 + quvi: hd720_mp4_i22_720p + +For more information about the YouTube video quality and codecs, visit +`http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs`. + +EXIT STATUS +----------- +The program will exit with EXIT_SUCCESS (on POSIX systems this is 0) on +success, and with EXIT_FAILURE (on POSIX systems this is 1) if an error +occurred. + +FURTHER RESOURCES +----------------- +The development code may be cloned from `git://repo.or.cz/cclive.git`. +The gitweb is accessible at `http://repo.or.cz/w/cclive.git`. + +Authors +------- +Toni Gundogdu <legatvs@gmail.com>:: + Author. + +Reporting bugs +-------------- +Report bugs to the cclive-devel mailing list +<cclive-devel@lists.sourceforge.net> where the development and the +maintenance is primarily done. You do not have to be subscribed to the +list to send a message there. + +LICENSE +------- +cclive is Free Software, licensed under the GNU Affero GPLv3+. + +SEE ALSO +-------- +linkman:libquvi-scripts[7], linkman:libquvi[3]
View file
cclive-0.7.9.tar.bz2/gen-ver.sh -> cclive-0.9.3.tar.xz/gen-ver.sh
Changed
@@ -1,53 +1,70 @@ #!/bin/sh -# gen-ver.sh for cclive. +# +# cclive +# Copyright (C) 2012 Toni Gundogdu <legatvs@gmail.com> +# +# This file is part of cclive <http://cclive.sourceforge.net/>. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public +# License along with this program. If not, see +# <http://www.gnu.org/licenses/>. +# +dir=`dirname $0` +o= +# flags: +c= # strip off the 'v' prefix -from_file() +# VERSION file is part of the dist tarball. +from_VERSION_file() { - VN=`cat $1 2>/dev/null` - if test -n "$VN"; then - echo $VN - exit 0 - fi + o=`cat "$dir/VERSION" 2>/dev/null` } -gen_version() # $1=path to top source dir +from_git_describe() { - path=$1 ; [ -z $path ] && path=. - - # First check if the version file exists and use its value - versionfn="$path/VERSION" - [ -f "$versionfn" ] && from_file "$versionfn" - - # If that file is not found, or fails (e.g. empty), parse from m4/version.m4 - m4="$path/m4/version.m4" - VN=`perl -ne'/(\d+)\.(\d+)\.(\d+)/ && print "$1.$2.$3"' < "$m4"` - [ -z $VN ] && exit $? - - # Use the "git describe" instead, if .git is present - if test -d "$path/.git" -o -f "$path/.git" ; then - _VN=`git describe --match "v[0-9]*" --abbrev=4 HEAD 2>/dev/null` - [ -n "$_VN" ] && VN=$_VN - fi + [ -d "$dir/.git" -o -f "$dir/.git" ] && { + o=`git describe --match "v[0-9]*" --abbrev=4 HEAD 2>/dev/null` + } +} - echo $VN +dump_vn() +{ + [ -n "$c" ] && o=${o#v} # strip off the 'v' prefix. + echo $o + exit 0 } help() { - echo "Usage: $0 [-h] [top_srcdir] + echo "$0 [OPTIONS] -h Show this help and exit -Run without options to print version. Define top_srcdir if run outside -the top source directory." +-c Strip off the 'v' prefix from the output" exit 0 } while [ $# -gt 0 ] do case "$1" in + -c) c=1;; -h) help;; - *) break;; + *) break;; esac shift done -gen_version $1 +from_VERSION_file +[ -z "$o" ] && from_git_describe +[ -n "$o" ] && dump_vn +exit 1 + +# vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/m4/boost.m4 -> cclive-0.9.3.tar.xz/m4/boost.m4
Changed
@@ -22,7 +22,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. m4_define([_BOOST_SERIAL], [m4_translit([ -# serial 16 +# serial 18 ], [# ], [])]) @@ -227,7 +227,7 @@ # on the command line, static versions of the libraries will be looked up. AC_DEFUN([BOOST_STATIC], [AC_ARG_ENABLE([static-boost], - [AC_HELP_STRING([--enable-static-boost], + [AS_HELP_STRING([--enable-static-boost], [Prefer the static boost libraries over the shared ones [no]])], [enable_static_boost=yes], [enable_static_boost=no])])# BOOST_STATIC @@ -403,7 +403,25 @@ LDFLAGS=$boost_save_LDFLAGS LIBS=$boost_save_LIBS if test x"$Boost_lib" = xyes; then - Boost_lib_LDFLAGS="-L$boost_ldpath -Wl,-R$boost_ldpath" + # Check or used cached result of whether or not using -R or -rpath makes sense. + # Some implementations of ld, such as for Mac OSX, require -rpath but + # -R is the flag known to work on other systems. + # https://github.com/tsuna/boost.m4/issues/19 + AC_CACHE_VAL([boost_cv_rpath_link_ldflag], + [for boost_cv_rpath_link_ldflag in -Wl,-R, -Wl,-rpath,; do + LDFLAGS="$boost_save_LDFLAGS -L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" + LIBS="$boost_save_LIBS $Boost_lib_LIBS" + _BOOST_AC_LINK_IFELSE([], + [boost_rpath_link_ldflag_found=yes + break], + [boost_rpath_link_ldflag_found=no]) + done + AS_IF([test "x$boost_rpath_link_ldflag_found" != "xyes"], + [AC_MSG_ERROR([Unable to determine whether to use -R or -rpath])]) + LDFLAGS=$boost_save_LDFLAGS + LIBS=$boost_save_LIBS + ]) + Boost_lib_LDFLAGS="-L$boost_ldpath $boost_cv_rpath_link_ldflag$boost_ldpath" Boost_lib_LDPATH="$boost_ldpath" break 6 else @@ -502,8 +520,8 @@ AC_SUBST([BOOST_FILESYSTEM_LIBS], ["$BOOST_FILESYSTEM_LIBS $BOOST_SYSTEM_LIBS"]) fi LIBS=$boost_filesystem_save_LIBS -LDFLAGS=$boost_filesystem_save_LDFLAGS - +LDFLAGS=$boost_filesystem_save_LDFLAGS + ])# BOOST_CHRONO @@ -516,6 +534,14 @@ ])# BOOST_CONVERSION +# BOOST_CRC() +# ----------- +# Look for Boost.CRC +BOOST_DEFUN([CRC], +[BOOST_FIND_HEADER([boost/crc.hpp]) +])# BOOST_CRC + + # BOOST_DATE_TIME([PREFERRED-RT-OPT]) # ----------------------------------- # Look for Boost.Date_Time. For the documentation of PREFERRED-RT-OPT, see the @@ -580,6 +606,14 @@ [BOOST_FIND_HEADER([boost/function.hpp])]) +# BOOST_GEOMETRY() +# ---------------- +# Look for Boost.Geometry (new since 1.47.0). +BOOST_DEFUN([Geometry], +[BOOST_FIND_HEADER([boost/geometry.hpp]) +])# BOOST_GEOMETRY + + # BOOST_GRAPH([PREFERRED-RT-OPT]) # ------------------------------- # Look for Boost.Graphs. For the documentation of PREFERRED-RT-OPT, see the @@ -775,6 +809,14 @@ ])# BOOST_SIGNALS +# BOOST_SIGNALS2() +# ---------------- +# Look for Boost.Signals2 (new since 1.39.0). +BOOST_DEFUN([Signals2], +[BOOST_FIND_HEADER([boost/signals2.hpp]) +])# BOOST_SIGNALS2 + + # BOOST_SMART_PTR() # ----------------- # Look for Boost.SmartPtr @@ -851,8 +893,23 @@ # is not turned on. Please set the correct command line options for # threading: -pthread (Linux), -pthreads (Solaris) or -mthreads (Mingw32)" CPPFLAGS="$CPPFLAGS $boost_cv_pthread_flag" -BOOST_FIND_LIB([thread], [$1], - [boost/thread.hpp], [boost::thread t; boost::mutex m;]) + +# When compiling for the Windows platform, the threads library is named +# differently. +case $host_os in + (*mingw*) + BOOST_FIND_LIB([thread_win32], [$1], + [boost/thread.hpp], [boost::thread t; boost::mutex m;]) + BOOST_THREAD_LDFLAGS=$BOOST_THREAD_WIN32_LDFLAGS + BOOST_THREAD_LDPATH=$BOOST_THREAD_WIN32_LDPATH + BOOST_THREAD_LIBS=$BOOST_THREAD_WIN32_LIBS + ;; + (*) + BOOST_FIND_LIB([thread], [$1], + [boost/thread.hpp], [boost::thread t; boost::mutex m;]) + ;; +esac + BOOST_THREAD_LIBS="$BOOST_THREAD_LIBS $BOOST_SYSTEM_LIBS $boost_cv_pthread_flag" BOOST_THREAD_LDFLAGS="$BOOST_SYSTEM_LDFLAGS" BOOST_CPPFLAGS="$BOOST_CPPFLAGS $boost_cv_pthread_flag" @@ -907,6 +964,17 @@ [BOOST_FIND_HEADER([boost/variant/variant_fwd.hpp]) BOOST_FIND_HEADER([boost/variant.hpp])]) +# BOOST_POINTERCONTAINER() +# ------------------------ +# Look for Boost.PointerContainer +BOOST_DEFUN([Pointer_Container], +[BOOST_FIND_HEADER([boost/ptr_container/ptr_deque.hpp]) +BOOST_FIND_HEADER([boost/ptr_container/ptr_list.hpp]) +BOOST_FIND_HEADER([boost/ptr_container/ptr_vector.hpp]) +BOOST_FIND_HEADER([boost/ptr_container/ptr_array.hpp]) +BOOST_FIND_HEADER([boost/ptr_container/ptr_set.hpp]) +BOOST_FIND_HEADER([boost/ptr_container/ptr_map.hpp]) +])# BOOST_POINTERCONTAINER # BOOST_WAVE([PREFERRED-RT-OPT]) # ------------------------------ @@ -1042,6 +1110,8 @@ # I'm not sure about my test for `il' (be careful: Intel's ICC pre-defines # the same defines as GCC's). for i in \ + _BOOST_gcc_test(4, 8) \ + _BOOST_gcc_test(4, 7) \ _BOOST_gcc_test(4, 6) \ _BOOST_gcc_test(4, 5) \ _BOOST_gcc_test(4, 4) \
View file
cclive-0.7.9.tar.bz2/m4/libtool.m4 -> cclive-0.9.3.tar.xz/m4/libtool.m4
Changed
@@ -2512,17 +2512,6 @@ esac ;; -gnu*) - version_type=linux # correct to gnu/linux during the next big refactor - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' - soname_spec='${libname}${release}${shared_ext}$major' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - hardcode_into_libs=yes - ;; - haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no @@ -2639,7 +2628,7 @@ ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no @@ -2684,6 +2673,18 @@ dynamic_linker='GNU/Linux ld.so' ;; +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no @@ -3243,10 +3244,6 @@ fi ;; -gnu*) - lt_cv_deplibs_check_method=pass_all - ;; - haiku*) lt_cv_deplibs_check_method=pass_all ;; @@ -3285,11 +3282,11 @@ ;; # This must be glibc/ELF. -linux* | k*bsd*-gnu | kopensolaris*-gnu) +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; -netbsd*) +netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else @@ -4037,7 +4034,7 @@ ;; esac ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler @@ -4101,7 +4098,7 @@ ;; esac ;; - netbsd*) + netbsd* | netbsdelf*-gnu) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise @@ -4336,7 +4333,7 @@ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64 which still supported -KPIC. ecc*) @@ -4578,6 +4575,9 @@ ;; esac ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; @@ -4640,6 +4640,9 @@ openbsd*) with_gnu_ld=no ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes @@ -4861,7 +4864,7 @@ fi ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= @@ -5038,6 +5041,7 @@ if test "$aix_use_runtimelinking" = yes; then shared_flag="$shared_flag "'${wl}-G' fi + _LT_TAGVAR(link_all_deplibs, $1)=no else # not using gcc if test "$host_cpu" = ia64; then @@ -5342,7 +5346,7 @@ _LT_TAGVAR(link_all_deplibs, $1)=yes ;; - netbsd*) + netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else @@ -6222,9 +6226,6 @@ _LT_TAGVAR(ld_shlibs, $1)=yes ;; - gnu*) - ;; - haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes @@ -6386,7 +6387,7 @@ _LT_TAGVAR(inherit_rpath, $1)=yes ;; - linux* | k*bsd*-gnu | kopensolaris*-gnu) + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler
View file
cclive-0.7.9.tar.bz2/src/Makefile.am -> cclive-0.9.3.tar.xz/src/Makefile.am
Changed
@@ -1,44 +1,67 @@ -src= \ - cc/error.cpp \ - cc/main.cpp \ - cc/log.cpp \ - cc/background.cpp \ - cc/exec.cpp \ - cc/file.cpp \ - cc/license.cpp \ - cc/wait.cpp \ - cc/progressbar.cpp \ - cc/options.cpp \ - cc/re.cpp \ - cc/get.cpp \ - cc/application.cpp \ - quvi/err.cpp \ - quvi/query.cpp \ - quvi/misc.cpp \ - quvi/url.cpp \ - quvi/opts.cpp \ - quvi/media.cpp +src=\ + cc/application.cpp\ + cc/background.cpp\ + cc/curl.cpp\ + cc/error.cpp\ + cc/exec.cpp\ + cc/file.cpp\ + cc/get.cpp\ + cc/main.cpp\ + cc/re.cpp\ + cc/wait.cpp -hdr= \ - ccoptions \ - ccinternal \ - ccapplication \ - ccquvi \ - ccprogressbar \ - cclog \ - ccutil \ - ccfile \ - ccre \ - cc/progressbar.h \ - cc/options.h \ - cc/application.h \ - cc/file.h \ - cc/util.h \ - cc/internal.h \ - cc/log.h \ - cc/re.h \ - quvi/ccquvi.h +if HAVE_LIBQUVI_0_9 +src+=\ + compat/error_pt9.cpp\ + compat/media_pt9.cpp\ + compat/query_pt9.cpp +else +src+=\ + compat/error_pt4.cpp\ + compat/media_pt4.cpp\ + compat/query_pt4.cpp +endif +src+=\ + compat/util.cpp + +hdr=\ + ccapplication\ + ccerror\ + ccfile\ + ccfstream\ + ccinput\ + ccinternal\ + cclog\ + ccoptions\ + ccprogressbar\ + ccquvi\ + ccre\ + ccsig\ + ccutil\ + ccvar + +hdr+=\ + cc/application.h\ + cc/error.h\ + cc/file.h\ + cc/fstream.h\ + cc/input.h\ + cc/internal.h\ + cc/log.h\ + cc/options.h\ + cc/progressbar.h\ + cc/re.h\ + cc/sig.h\ + cc/util.h\ + cc/var.h + +hdr+=\ + compat/error.h\ + compat/media.h\ + compat/options.h\ + compat/query.h\ + compat/util.h bin_PROGRAMS= cclive cclive_SOURCES= $(src) $(hdr) @@ -48,6 +71,8 @@ AM_CPPFLAGS+= $(libcurl_CFLAGS) AM_CPPFLAGS+= $(libpcre_CFLAGS) AM_CPPFLAGS+= $(libpcrepp_CFLAGS) +AM_CPPFLAGS+= $(glibmm_CFLAGS) +AM_CPPFLAGS+= $(glib_CFLAGS) AM_CPPFLAGS+= $(BOOST_CPPFLAGS) cclive_LDFLAGS= $(BOOST_DATE_TIME_LDFLAGS) @@ -60,6 +85,8 @@ cclive_LDADD+= $(libcurl_LIBS) cclive_LDADD+= $(libpcre_LIBS) cclive_LDADD+= $(libpcrecpp_LIBS) +cclive_LDADD+= $(glibmm_LIBS) +cclive_LDADD+= $(glib_LIBS) cclive_LDADD+= $(BOOST_DATE_TIME_LIBS) cclive_LDADD+= $(BOOST_PROGRAM_OPTIONS_LIBS) cclive_LDADD+= $(BOOST_IOSTREAMS_LIBS) @@ -68,7 +95,7 @@ install-exec-hook: if ENABLE_CCL - cd $(DESTDIR)$(bindir) && \ + cd $(DESTDIR)$(bindir) && rm -f ccl$(EXEEXT) && \ $(LN_S) cclive$(EXEEXT) ccl$(EXEEXT) endif
View file
cclive-0.7.9.tar.bz2/src/Makefile.in -> cclive-0.9.3.tar.xz/src/Makefile.in
Changed
@@ -1,4 +1,4 @@ -# Makefile.in generated by automake 1.11.3 from Makefile.am. +# Makefile.in generated by automake 1.11.6 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, @@ -16,6 +16,23 @@ @SET_MAKE@ VPATH = @srcdir@ +am__make_dryrun = \ + { \ + am__dry=no; \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ + | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ + *) \ + for am__flg in $$MAKEFLAGS; do \ + case $$am__flg in \ + *=*|--*) ;; \ + *n*) am__dry=yes; break;; \ + esac; \ + done;; \ + esac; \ + test $$am__dry = yes; \ + } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -35,6 +52,16 @@ build_triplet = @build@ host_triplet = @host@ target_triplet = @target@ +@HAVE_LIBQUVI_0_9_TRUE@am__append_1 = \ +@HAVE_LIBQUVI_0_9_TRUE@ compat/error_pt9.cpp\ +@HAVE_LIBQUVI_0_9_TRUE@ compat/media_pt9.cpp\ +@HAVE_LIBQUVI_0_9_TRUE@ compat/query_pt9.cpp + +@HAVE_LIBQUVI_0_9_FALSE@am__append_2 = \ +@HAVE_LIBQUVI_0_9_FALSE@ compat/error_pt4.cpp\ +@HAVE_LIBQUVI_0_9_FALSE@ compat/media_pt4.cpp\ +@HAVE_LIBQUVI_0_9_FALSE@ compat/query_pt4.cpp + bin_PROGRAMS = cclive$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in @@ -42,8 +69,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/boost.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ - $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/version.m4 \ - $(top_srcdir)/configure.ac + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) mkinstalldirs = $(install_sh) -d @@ -52,20 +78,35 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) -am__objects_1 = error.$(OBJEXT) main.$(OBJEXT) log.$(OBJEXT) \ - background.$(OBJEXT) exec.$(OBJEXT) file.$(OBJEXT) \ - license.$(OBJEXT) wait.$(OBJEXT) progressbar.$(OBJEXT) \ - options.$(OBJEXT) re.$(OBJEXT) get.$(OBJEXT) \ - application.$(OBJEXT) err.$(OBJEXT) query.$(OBJEXT) \ - misc.$(OBJEXT) url.$(OBJEXT) opts.$(OBJEXT) media.$(OBJEXT) -am__objects_2 = -am_cclive_OBJECTS = $(am__objects_1) $(am__objects_2) +am__cclive_SOURCES_DIST = cc/application.cpp cc/background.cpp \ + cc/curl.cpp cc/error.cpp cc/exec.cpp cc/file.cpp cc/get.cpp \ + cc/main.cpp cc/re.cpp cc/wait.cpp compat/error_pt9.cpp \ + compat/media_pt9.cpp compat/query_pt9.cpp compat/error_pt4.cpp \ + compat/media_pt4.cpp compat/query_pt4.cpp compat/util.cpp \ + ccapplication ccerror ccfile ccfstream ccinput ccinternal \ + cclog ccoptions ccprogressbar ccquvi ccre ccsig ccutil ccvar \ + cc/application.h cc/error.h cc/file.h cc/fstream.h cc/input.h \ + cc/internal.h cc/log.h cc/options.h cc/progressbar.h cc/re.h \ + cc/sig.h cc/util.h cc/var.h compat/error.h compat/media.h \ + compat/options.h compat/query.h compat/util.h +@HAVE_LIBQUVI_0_9_TRUE@am__objects_1 = error_pt9.$(OBJEXT) \ +@HAVE_LIBQUVI_0_9_TRUE@ media_pt9.$(OBJEXT) query_pt9.$(OBJEXT) +@HAVE_LIBQUVI_0_9_FALSE@am__objects_2 = error_pt4.$(OBJEXT) \ +@HAVE_LIBQUVI_0_9_FALSE@ media_pt4.$(OBJEXT) \ +@HAVE_LIBQUVI_0_9_FALSE@ query_pt4.$(OBJEXT) +am__objects_3 = application.$(OBJEXT) background.$(OBJEXT) \ + curl.$(OBJEXT) error.$(OBJEXT) exec.$(OBJEXT) file.$(OBJEXT) \ + get.$(OBJEXT) main.$(OBJEXT) re.$(OBJEXT) wait.$(OBJEXT) \ + $(am__objects_1) $(am__objects_2) util.$(OBJEXT) +am__objects_4 = +am_cclive_OBJECTS = $(am__objects_3) $(am__objects_4) cclive_OBJECTS = $(am_cclive_OBJECTS) am__DEPENDENCIES_1 = cclive_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ $(am__DEPENDENCIES_1) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) @@ -116,10 +157,16 @@ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; SOURCES = $(cclive_SOURCES) -DIST_SOURCES = $(cclive_SOURCES) +DIST_SOURCES = $(am__cclive_SOURCES_DIST) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +A2X = @A2X@ ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ @@ -156,6 +203,7 @@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ +DATE = @DATE@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DISTCHECK_CONFIGURE_FLAGS = @DISTCHECK_CONFIGURE_FLAGS@ @@ -233,6 +281,10 @@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ +glib_CFLAGS = @glib_CFLAGS@ +glib_LIBS = @glib_LIBS@ +glibmm_CFLAGS = @glibmm_CFLAGS@ +glibmm_LIBS = @glibmm_LIBS@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ @@ -273,57 +325,27 @@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -src = \ - cc/error.cpp \ - cc/main.cpp \ - cc/log.cpp \ - cc/background.cpp \ - cc/exec.cpp \ - cc/file.cpp \ - cc/license.cpp \ - cc/wait.cpp \ - cc/progressbar.cpp \ - cc/options.cpp \ - cc/re.cpp \ - cc/get.cpp \ - cc/application.cpp \ - quvi/err.cpp \ - quvi/query.cpp \ - quvi/misc.cpp \ - quvi/url.cpp \ - quvi/opts.cpp \ - quvi/media.cpp - -hdr = \ - ccoptions \ - ccinternal \ - ccapplication \ - ccquvi \ - ccprogressbar \ - cclog \ - ccutil \ - ccfile \ - ccre \ - cc/progressbar.h \ - cc/options.h \ - cc/application.h \ - cc/file.h \ - cc/util.h \ - cc/internal.h \ - cc/log.h \ - cc/re.h \ - quvi/ccquvi.h - +src = cc/application.cpp cc/background.cpp cc/curl.cpp cc/error.cpp \ + cc/exec.cpp cc/file.cpp cc/get.cpp cc/main.cpp cc/re.cpp \ + cc/wait.cpp $(am__append_1) $(am__append_2) compat/util.cpp +hdr = ccapplication ccerror ccfile ccfstream ccinput ccinternal cclog \ + ccoptions ccprogressbar ccquvi ccre ccsig ccutil ccvar \ + cc/application.h cc/error.h cc/file.h cc/fstream.h cc/input.h \ + cc/internal.h cc/log.h cc/options.h cc/progressbar.h cc/re.h \ + cc/sig.h cc/util.h cc/var.h compat/error.h compat/media.h \ + compat/options.h compat/query.h compat/util.h cclive_SOURCES = $(src) $(hdr) AM_CPPFLAGS = -I$(top_srcdir)/src $(libquvi_CFLAGS) $(libcurl_CFLAGS) \ - $(libpcre_CFLAGS) $(libpcrepp_CFLAGS) $(BOOST_CPPFLAGS) + $(libpcre_CFLAGS) $(libpcrepp_CFLAGS) $(glibmm_CFLAGS) \ + $(glib_CFLAGS) $(BOOST_CPPFLAGS) cclive_LDFLAGS = $(BOOST_DATE_TIME_LDFLAGS) \ $(BOOST_PROGRAM_OPTIONS_LDFLAGS) $(BOOST_IOSTREAMS_LDFLAGS) \ $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_SYSTEM_LDFLAGS) cclive_LDADD = $(libquvi_LIBS) $(libcurl_LIBS) $(libpcre_LIBS) \ - $(libpcrecpp_LIBS) $(BOOST_DATE_TIME_LIBS) \ - $(BOOST_PROGRAM_OPTIONS_LIBS) $(BOOST_IOSTREAMS_LIBS) \ - $(BOOST_FILESYSTEM_LIBS) $(BOOST_SYSTEM_LIBS) + $(libpcrecpp_LIBS) $(glibmm_LIBS) $(glib_LIBS) \ + $(BOOST_DATE_TIME_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS) \ + $(BOOST_IOSTREAMS_LIBS) $(BOOST_FILESYSTEM_LIBS) \ + $(BOOST_SYSTEM_LIBS) all: all-am .SUFFIXES: @@ -337,9 +359,9 @@ exit 1;; \ esac; \ done; \ - echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \ $(am__cd) $(top_srcdir) && \ - $(AUTOMAKE) --foreign src/Makefile + $(AUTOMAKE) --gnu src/Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ @@ -360,8 +382,11 @@ $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) - test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)" @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ + fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p || test -f $$p1; \ @@ -413,22 +438,20 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/application.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/background.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/err.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/curl.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error_pt4.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error_pt9.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/exec.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/license.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/media.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opts.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progressbar.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/query.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/media_pt4.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/media_pt9.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/query_pt4.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/query_pt9.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/re.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/url.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/util.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait.Po@am__quote@ .cpp.o: @@ -452,47 +475,19 @@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $< -error.o: cc/error.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT error.o -MD -MP -MF $(DEPDIR)/error.Tpo -c -o error.o `test -f 'cc/error.cpp' || echo '$(srcdir)/'`cc/error.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/error.Tpo $(DEPDIR)/error.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/error.cpp' object='error.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o error.o `test -f 'cc/error.cpp' || echo '$(srcdir)/'`cc/error.cpp - -error.obj: cc/error.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT error.obj -MD -MP -MF $(DEPDIR)/error.Tpo -c -o error.obj `if test -f 'cc/error.cpp'; then $(CYGPATH_W) 'cc/error.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/error.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/error.Tpo $(DEPDIR)/error.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/error.cpp' object='error.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o error.obj `if test -f 'cc/error.cpp'; then $(CYGPATH_W) 'cc/error.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/error.cpp'; fi` - -main.o: cc/main.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT main.o -MD -MP -MF $(DEPDIR)/main.Tpo -c -o main.o `test -f 'cc/main.cpp' || echo '$(srcdir)/'`cc/main.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/main.Tpo $(DEPDIR)/main.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/main.cpp' object='main.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o main.o `test -f 'cc/main.cpp' || echo '$(srcdir)/'`cc/main.cpp - -main.obj: cc/main.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT main.obj -MD -MP -MF $(DEPDIR)/main.Tpo -c -o main.obj `if test -f 'cc/main.cpp'; then $(CYGPATH_W) 'cc/main.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/main.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/main.Tpo $(DEPDIR)/main.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/main.cpp' object='main.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o main.obj `if test -f 'cc/main.cpp'; then $(CYGPATH_W) 'cc/main.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/main.cpp'; fi` - -log.o: cc/log.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT log.o -MD -MP -MF $(DEPDIR)/log.Tpo -c -o log.o `test -f 'cc/log.cpp' || echo '$(srcdir)/'`cc/log.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/log.Tpo $(DEPDIR)/log.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/log.cpp' object='log.o' libtool=no @AMDEPBACKSLASH@ +application.o: cc/application.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT application.o -MD -MP -MF $(DEPDIR)/application.Tpo -c -o application.o `test -f 'cc/application.cpp' || echo '$(srcdir)/'`cc/application.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/application.Tpo $(DEPDIR)/application.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/application.cpp' object='application.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o log.o `test -f 'cc/log.cpp' || echo '$(srcdir)/'`cc/log.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o application.o `test -f 'cc/application.cpp' || echo '$(srcdir)/'`cc/application.cpp -log.obj: cc/log.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT log.obj -MD -MP -MF $(DEPDIR)/log.Tpo -c -o log.obj `if test -f 'cc/log.cpp'; then $(CYGPATH_W) 'cc/log.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/log.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/log.Tpo $(DEPDIR)/log.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/log.cpp' object='log.obj' libtool=no @AMDEPBACKSLASH@ +application.obj: cc/application.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT application.obj -MD -MP -MF $(DEPDIR)/application.Tpo -c -o application.obj `if test -f 'cc/application.cpp'; then $(CYGPATH_W) 'cc/application.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/application.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/application.Tpo $(DEPDIR)/application.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/application.cpp' object='application.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o log.obj `if test -f 'cc/log.cpp'; then $(CYGPATH_W) 'cc/log.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/log.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o application.obj `if test -f 'cc/application.cpp'; then $(CYGPATH_W) 'cc/application.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/application.cpp'; fi` background.o: cc/background.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT background.o -MD -MP -MF $(DEPDIR)/background.Tpo -c -o background.o `test -f 'cc/background.cpp' || echo '$(srcdir)/'`cc/background.cpp @@ -508,6 +503,34 @@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o background.obj `if test -f 'cc/background.cpp'; then $(CYGPATH_W) 'cc/background.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/background.cpp'; fi` +curl.o: cc/curl.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT curl.o -MD -MP -MF $(DEPDIR)/curl.Tpo -c -o curl.o `test -f 'cc/curl.cpp' || echo '$(srcdir)/'`cc/curl.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/curl.Tpo $(DEPDIR)/curl.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/curl.cpp' object='curl.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o curl.o `test -f 'cc/curl.cpp' || echo '$(srcdir)/'`cc/curl.cpp + +curl.obj: cc/curl.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT curl.obj -MD -MP -MF $(DEPDIR)/curl.Tpo -c -o curl.obj `if test -f 'cc/curl.cpp'; then $(CYGPATH_W) 'cc/curl.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/curl.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/curl.Tpo $(DEPDIR)/curl.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/curl.cpp' object='curl.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o curl.obj `if test -f 'cc/curl.cpp'; then $(CYGPATH_W) 'cc/curl.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/curl.cpp'; fi` + +error.o: cc/error.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT error.o -MD -MP -MF $(DEPDIR)/error.Tpo -c -o error.o `test -f 'cc/error.cpp' || echo '$(srcdir)/'`cc/error.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/error.Tpo $(DEPDIR)/error.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/error.cpp' object='error.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o error.o `test -f 'cc/error.cpp' || echo '$(srcdir)/'`cc/error.cpp + +error.obj: cc/error.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT error.obj -MD -MP -MF $(DEPDIR)/error.Tpo -c -o error.obj `if test -f 'cc/error.cpp'; then $(CYGPATH_W) 'cc/error.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/error.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/error.Tpo $(DEPDIR)/error.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/error.cpp' object='error.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o error.obj `if test -f 'cc/error.cpp'; then $(CYGPATH_W) 'cc/error.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/error.cpp'; fi` + exec.o: cc/exec.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT exec.o -MD -MP -MF $(DEPDIR)/exec.Tpo -c -o exec.o `test -f 'cc/exec.cpp' || echo '$(srcdir)/'`cc/exec.cpp @am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/exec.Tpo $(DEPDIR)/exec.Po @@ -536,61 +559,33 @@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o file.obj `if test -f 'cc/file.cpp'; then $(CYGPATH_W) 'cc/file.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/file.cpp'; fi` -license.o: cc/license.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT license.o -MD -MP -MF $(DEPDIR)/license.Tpo -c -o license.o `test -f 'cc/license.cpp' || echo '$(srcdir)/'`cc/license.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/license.Tpo $(DEPDIR)/license.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/license.cpp' object='license.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o license.o `test -f 'cc/license.cpp' || echo '$(srcdir)/'`cc/license.cpp - -license.obj: cc/license.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT license.obj -MD -MP -MF $(DEPDIR)/license.Tpo -c -o license.obj `if test -f 'cc/license.cpp'; then $(CYGPATH_W) 'cc/license.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/license.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/license.Tpo $(DEPDIR)/license.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/license.cpp' object='license.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o license.obj `if test -f 'cc/license.cpp'; then $(CYGPATH_W) 'cc/license.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/license.cpp'; fi` - -wait.o: cc/wait.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT wait.o -MD -MP -MF $(DEPDIR)/wait.Tpo -c -o wait.o `test -f 'cc/wait.cpp' || echo '$(srcdir)/'`cc/wait.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wait.Tpo $(DEPDIR)/wait.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/wait.cpp' object='wait.o' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o wait.o `test -f 'cc/wait.cpp' || echo '$(srcdir)/'`cc/wait.cpp - -wait.obj: cc/wait.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT wait.obj -MD -MP -MF $(DEPDIR)/wait.Tpo -c -o wait.obj `if test -f 'cc/wait.cpp'; then $(CYGPATH_W) 'cc/wait.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/wait.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wait.Tpo $(DEPDIR)/wait.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/wait.cpp' object='wait.obj' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o wait.obj `if test -f 'cc/wait.cpp'; then $(CYGPATH_W) 'cc/wait.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/wait.cpp'; fi` - -progressbar.o: cc/progressbar.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT progressbar.o -MD -MP -MF $(DEPDIR)/progressbar.Tpo -c -o progressbar.o `test -f 'cc/progressbar.cpp' || echo '$(srcdir)/'`cc/progressbar.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/progressbar.Tpo $(DEPDIR)/progressbar.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/progressbar.cpp' object='progressbar.o' libtool=no @AMDEPBACKSLASH@ +get.o: cc/get.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT get.o -MD -MP -MF $(DEPDIR)/get.Tpo -c -o get.o `test -f 'cc/get.cpp' || echo '$(srcdir)/'`cc/get.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/get.Tpo $(DEPDIR)/get.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/get.cpp' object='get.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o progressbar.o `test -f 'cc/progressbar.cpp' || echo '$(srcdir)/'`cc/progressbar.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o get.o `test -f 'cc/get.cpp' || echo '$(srcdir)/'`cc/get.cpp -progressbar.obj: cc/progressbar.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT progressbar.obj -MD -MP -MF $(DEPDIR)/progressbar.Tpo -c -o progressbar.obj `if test -f 'cc/progressbar.cpp'; then $(CYGPATH_W) 'cc/progressbar.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/progressbar.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/progressbar.Tpo $(DEPDIR)/progressbar.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/progressbar.cpp' object='progressbar.obj' libtool=no @AMDEPBACKSLASH@ +get.obj: cc/get.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT get.obj -MD -MP -MF $(DEPDIR)/get.Tpo -c -o get.obj `if test -f 'cc/get.cpp'; then $(CYGPATH_W) 'cc/get.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/get.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/get.Tpo $(DEPDIR)/get.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/get.cpp' object='get.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o progressbar.obj `if test -f 'cc/progressbar.cpp'; then $(CYGPATH_W) 'cc/progressbar.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/progressbar.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o get.obj `if test -f 'cc/get.cpp'; then $(CYGPATH_W) 'cc/get.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/get.cpp'; fi` -options.o: cc/options.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT options.o -MD -MP -MF $(DEPDIR)/options.Tpo -c -o options.o `test -f 'cc/options.cpp' || echo '$(srcdir)/'`cc/options.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/options.Tpo $(DEPDIR)/options.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/options.cpp' object='options.o' libtool=no @AMDEPBACKSLASH@ +main.o: cc/main.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT main.o -MD -MP -MF $(DEPDIR)/main.Tpo -c -o main.o `test -f 'cc/main.cpp' || echo '$(srcdir)/'`cc/main.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/main.Tpo $(DEPDIR)/main.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/main.cpp' object='main.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o options.o `test -f 'cc/options.cpp' || echo '$(srcdir)/'`cc/options.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o main.o `test -f 'cc/main.cpp' || echo '$(srcdir)/'`cc/main.cpp -options.obj: cc/options.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT options.obj -MD -MP -MF $(DEPDIR)/options.Tpo -c -o options.obj `if test -f 'cc/options.cpp'; then $(CYGPATH_W) 'cc/options.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/options.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/options.Tpo $(DEPDIR)/options.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/options.cpp' object='options.obj' libtool=no @AMDEPBACKSLASH@ +main.obj: cc/main.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT main.obj -MD -MP -MF $(DEPDIR)/main.Tpo -c -o main.obj `if test -f 'cc/main.cpp'; then $(CYGPATH_W) 'cc/main.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/main.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/main.Tpo $(DEPDIR)/main.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/main.cpp' object='main.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o options.obj `if test -f 'cc/options.cpp'; then $(CYGPATH_W) 'cc/options.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/options.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o main.obj `if test -f 'cc/main.cpp'; then $(CYGPATH_W) 'cc/main.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/main.cpp'; fi` re.o: cc/re.cpp @am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT re.o -MD -MP -MF $(DEPDIR)/re.Tpo -c -o re.o `test -f 'cc/re.cpp' || echo '$(srcdir)/'`cc/re.cpp @@ -606,117 +601,117 @@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o re.obj `if test -f 'cc/re.cpp'; then $(CYGPATH_W) 'cc/re.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/re.cpp'; fi` -get.o: cc/get.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT get.o -MD -MP -MF $(DEPDIR)/get.Tpo -c -o get.o `test -f 'cc/get.cpp' || echo '$(srcdir)/'`cc/get.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/get.Tpo $(DEPDIR)/get.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/get.cpp' object='get.o' libtool=no @AMDEPBACKSLASH@ +wait.o: cc/wait.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT wait.o -MD -MP -MF $(DEPDIR)/wait.Tpo -c -o wait.o `test -f 'cc/wait.cpp' || echo '$(srcdir)/'`cc/wait.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wait.Tpo $(DEPDIR)/wait.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/wait.cpp' object='wait.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o get.o `test -f 'cc/get.cpp' || echo '$(srcdir)/'`cc/get.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o wait.o `test -f 'cc/wait.cpp' || echo '$(srcdir)/'`cc/wait.cpp -get.obj: cc/get.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT get.obj -MD -MP -MF $(DEPDIR)/get.Tpo -c -o get.obj `if test -f 'cc/get.cpp'; then $(CYGPATH_W) 'cc/get.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/get.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/get.Tpo $(DEPDIR)/get.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/get.cpp' object='get.obj' libtool=no @AMDEPBACKSLASH@ +wait.obj: cc/wait.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT wait.obj -MD -MP -MF $(DEPDIR)/wait.Tpo -c -o wait.obj `if test -f 'cc/wait.cpp'; then $(CYGPATH_W) 'cc/wait.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/wait.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/wait.Tpo $(DEPDIR)/wait.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/wait.cpp' object='wait.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o get.obj `if test -f 'cc/get.cpp'; then $(CYGPATH_W) 'cc/get.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/get.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o wait.obj `if test -f 'cc/wait.cpp'; then $(CYGPATH_W) 'cc/wait.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/wait.cpp'; fi` -application.o: cc/application.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT application.o -MD -MP -MF $(DEPDIR)/application.Tpo -c -o application.o `test -f 'cc/application.cpp' || echo '$(srcdir)/'`cc/application.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/application.Tpo $(DEPDIR)/application.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/application.cpp' object='application.o' libtool=no @AMDEPBACKSLASH@ +error_pt9.o: compat/error_pt9.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT error_pt9.o -MD -MP -MF $(DEPDIR)/error_pt9.Tpo -c -o error_pt9.o `test -f 'compat/error_pt9.cpp' || echo '$(srcdir)/'`compat/error_pt9.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/error_pt9.Tpo $(DEPDIR)/error_pt9.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/error_pt9.cpp' object='error_pt9.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o application.o `test -f 'cc/application.cpp' || echo '$(srcdir)/'`cc/application.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o error_pt9.o `test -f 'compat/error_pt9.cpp' || echo '$(srcdir)/'`compat/error_pt9.cpp -application.obj: cc/application.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT application.obj -MD -MP -MF $(DEPDIR)/application.Tpo -c -o application.obj `if test -f 'cc/application.cpp'; then $(CYGPATH_W) 'cc/application.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/application.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/application.Tpo $(DEPDIR)/application.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='cc/application.cpp' object='application.obj' libtool=no @AMDEPBACKSLASH@ +error_pt9.obj: compat/error_pt9.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT error_pt9.obj -MD -MP -MF $(DEPDIR)/error_pt9.Tpo -c -o error_pt9.obj `if test -f 'compat/error_pt9.cpp'; then $(CYGPATH_W) 'compat/error_pt9.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/error_pt9.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/error_pt9.Tpo $(DEPDIR)/error_pt9.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/error_pt9.cpp' object='error_pt9.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o application.obj `if test -f 'cc/application.cpp'; then $(CYGPATH_W) 'cc/application.cpp'; else $(CYGPATH_W) '$(srcdir)/cc/application.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o error_pt9.obj `if test -f 'compat/error_pt9.cpp'; then $(CYGPATH_W) 'compat/error_pt9.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/error_pt9.cpp'; fi` -err.o: quvi/err.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT err.o -MD -MP -MF $(DEPDIR)/err.Tpo -c -o err.o `test -f 'quvi/err.cpp' || echo '$(srcdir)/'`quvi/err.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/err.Tpo $(DEPDIR)/err.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/err.cpp' object='err.o' libtool=no @AMDEPBACKSLASH@ +media_pt9.o: compat/media_pt9.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT media_pt9.o -MD -MP -MF $(DEPDIR)/media_pt9.Tpo -c -o media_pt9.o `test -f 'compat/media_pt9.cpp' || echo '$(srcdir)/'`compat/media_pt9.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/media_pt9.Tpo $(DEPDIR)/media_pt9.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/media_pt9.cpp' object='media_pt9.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o err.o `test -f 'quvi/err.cpp' || echo '$(srcdir)/'`quvi/err.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o media_pt9.o `test -f 'compat/media_pt9.cpp' || echo '$(srcdir)/'`compat/media_pt9.cpp -err.obj: quvi/err.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT err.obj -MD -MP -MF $(DEPDIR)/err.Tpo -c -o err.obj `if test -f 'quvi/err.cpp'; then $(CYGPATH_W) 'quvi/err.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/err.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/err.Tpo $(DEPDIR)/err.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/err.cpp' object='err.obj' libtool=no @AMDEPBACKSLASH@ +media_pt9.obj: compat/media_pt9.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT media_pt9.obj -MD -MP -MF $(DEPDIR)/media_pt9.Tpo -c -o media_pt9.obj `if test -f 'compat/media_pt9.cpp'; then $(CYGPATH_W) 'compat/media_pt9.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/media_pt9.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/media_pt9.Tpo $(DEPDIR)/media_pt9.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/media_pt9.cpp' object='media_pt9.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o err.obj `if test -f 'quvi/err.cpp'; then $(CYGPATH_W) 'quvi/err.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/err.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o media_pt9.obj `if test -f 'compat/media_pt9.cpp'; then $(CYGPATH_W) 'compat/media_pt9.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/media_pt9.cpp'; fi` -query.o: quvi/query.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT query.o -MD -MP -MF $(DEPDIR)/query.Tpo -c -o query.o `test -f 'quvi/query.cpp' || echo '$(srcdir)/'`quvi/query.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/query.Tpo $(DEPDIR)/query.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/query.cpp' object='query.o' libtool=no @AMDEPBACKSLASH@ +query_pt9.o: compat/query_pt9.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT query_pt9.o -MD -MP -MF $(DEPDIR)/query_pt9.Tpo -c -o query_pt9.o `test -f 'compat/query_pt9.cpp' || echo '$(srcdir)/'`compat/query_pt9.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/query_pt9.Tpo $(DEPDIR)/query_pt9.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/query_pt9.cpp' object='query_pt9.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o query.o `test -f 'quvi/query.cpp' || echo '$(srcdir)/'`quvi/query.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o query_pt9.o `test -f 'compat/query_pt9.cpp' || echo '$(srcdir)/'`compat/query_pt9.cpp -query.obj: quvi/query.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT query.obj -MD -MP -MF $(DEPDIR)/query.Tpo -c -o query.obj `if test -f 'quvi/query.cpp'; then $(CYGPATH_W) 'quvi/query.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/query.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/query.Tpo $(DEPDIR)/query.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/query.cpp' object='query.obj' libtool=no @AMDEPBACKSLASH@ +query_pt9.obj: compat/query_pt9.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT query_pt9.obj -MD -MP -MF $(DEPDIR)/query_pt9.Tpo -c -o query_pt9.obj `if test -f 'compat/query_pt9.cpp'; then $(CYGPATH_W) 'compat/query_pt9.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/query_pt9.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/query_pt9.Tpo $(DEPDIR)/query_pt9.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/query_pt9.cpp' object='query_pt9.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o query.obj `if test -f 'quvi/query.cpp'; then $(CYGPATH_W) 'quvi/query.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/query.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o query_pt9.obj `if test -f 'compat/query_pt9.cpp'; then $(CYGPATH_W) 'compat/query_pt9.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/query_pt9.cpp'; fi` -misc.o: quvi/misc.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT misc.o -MD -MP -MF $(DEPDIR)/misc.Tpo -c -o misc.o `test -f 'quvi/misc.cpp' || echo '$(srcdir)/'`quvi/misc.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/misc.Tpo $(DEPDIR)/misc.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/misc.cpp' object='misc.o' libtool=no @AMDEPBACKSLASH@ +error_pt4.o: compat/error_pt4.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT error_pt4.o -MD -MP -MF $(DEPDIR)/error_pt4.Tpo -c -o error_pt4.o `test -f 'compat/error_pt4.cpp' || echo '$(srcdir)/'`compat/error_pt4.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/error_pt4.Tpo $(DEPDIR)/error_pt4.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/error_pt4.cpp' object='error_pt4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o misc.o `test -f 'quvi/misc.cpp' || echo '$(srcdir)/'`quvi/misc.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o error_pt4.o `test -f 'compat/error_pt4.cpp' || echo '$(srcdir)/'`compat/error_pt4.cpp -misc.obj: quvi/misc.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT misc.obj -MD -MP -MF $(DEPDIR)/misc.Tpo -c -o misc.obj `if test -f 'quvi/misc.cpp'; then $(CYGPATH_W) 'quvi/misc.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/misc.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/misc.Tpo $(DEPDIR)/misc.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/misc.cpp' object='misc.obj' libtool=no @AMDEPBACKSLASH@ +error_pt4.obj: compat/error_pt4.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT error_pt4.obj -MD -MP -MF $(DEPDIR)/error_pt4.Tpo -c -o error_pt4.obj `if test -f 'compat/error_pt4.cpp'; then $(CYGPATH_W) 'compat/error_pt4.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/error_pt4.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/error_pt4.Tpo $(DEPDIR)/error_pt4.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/error_pt4.cpp' object='error_pt4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o misc.obj `if test -f 'quvi/misc.cpp'; then $(CYGPATH_W) 'quvi/misc.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/misc.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o error_pt4.obj `if test -f 'compat/error_pt4.cpp'; then $(CYGPATH_W) 'compat/error_pt4.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/error_pt4.cpp'; fi` -url.o: quvi/url.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT url.o -MD -MP -MF $(DEPDIR)/url.Tpo -c -o url.o `test -f 'quvi/url.cpp' || echo '$(srcdir)/'`quvi/url.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/url.Tpo $(DEPDIR)/url.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/url.cpp' object='url.o' libtool=no @AMDEPBACKSLASH@ +media_pt4.o: compat/media_pt4.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT media_pt4.o -MD -MP -MF $(DEPDIR)/media_pt4.Tpo -c -o media_pt4.o `test -f 'compat/media_pt4.cpp' || echo '$(srcdir)/'`compat/media_pt4.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/media_pt4.Tpo $(DEPDIR)/media_pt4.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/media_pt4.cpp' object='media_pt4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o url.o `test -f 'quvi/url.cpp' || echo '$(srcdir)/'`quvi/url.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o media_pt4.o `test -f 'compat/media_pt4.cpp' || echo '$(srcdir)/'`compat/media_pt4.cpp -url.obj: quvi/url.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT url.obj -MD -MP -MF $(DEPDIR)/url.Tpo -c -o url.obj `if test -f 'quvi/url.cpp'; then $(CYGPATH_W) 'quvi/url.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/url.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/url.Tpo $(DEPDIR)/url.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/url.cpp' object='url.obj' libtool=no @AMDEPBACKSLASH@ +media_pt4.obj: compat/media_pt4.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT media_pt4.obj -MD -MP -MF $(DEPDIR)/media_pt4.Tpo -c -o media_pt4.obj `if test -f 'compat/media_pt4.cpp'; then $(CYGPATH_W) 'compat/media_pt4.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/media_pt4.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/media_pt4.Tpo $(DEPDIR)/media_pt4.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/media_pt4.cpp' object='media_pt4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o url.obj `if test -f 'quvi/url.cpp'; then $(CYGPATH_W) 'quvi/url.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/url.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o media_pt4.obj `if test -f 'compat/media_pt4.cpp'; then $(CYGPATH_W) 'compat/media_pt4.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/media_pt4.cpp'; fi` -opts.o: quvi/opts.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT opts.o -MD -MP -MF $(DEPDIR)/opts.Tpo -c -o opts.o `test -f 'quvi/opts.cpp' || echo '$(srcdir)/'`quvi/opts.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/opts.Tpo $(DEPDIR)/opts.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/opts.cpp' object='opts.o' libtool=no @AMDEPBACKSLASH@ +query_pt4.o: compat/query_pt4.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT query_pt4.o -MD -MP -MF $(DEPDIR)/query_pt4.Tpo -c -o query_pt4.o `test -f 'compat/query_pt4.cpp' || echo '$(srcdir)/'`compat/query_pt4.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/query_pt4.Tpo $(DEPDIR)/query_pt4.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/query_pt4.cpp' object='query_pt4.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o opts.o `test -f 'quvi/opts.cpp' || echo '$(srcdir)/'`quvi/opts.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o query_pt4.o `test -f 'compat/query_pt4.cpp' || echo '$(srcdir)/'`compat/query_pt4.cpp -opts.obj: quvi/opts.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT opts.obj -MD -MP -MF $(DEPDIR)/opts.Tpo -c -o opts.obj `if test -f 'quvi/opts.cpp'; then $(CYGPATH_W) 'quvi/opts.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/opts.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/opts.Tpo $(DEPDIR)/opts.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/opts.cpp' object='opts.obj' libtool=no @AMDEPBACKSLASH@ +query_pt4.obj: compat/query_pt4.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT query_pt4.obj -MD -MP -MF $(DEPDIR)/query_pt4.Tpo -c -o query_pt4.obj `if test -f 'compat/query_pt4.cpp'; then $(CYGPATH_W) 'compat/query_pt4.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/query_pt4.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/query_pt4.Tpo $(DEPDIR)/query_pt4.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/query_pt4.cpp' object='query_pt4.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o opts.obj `if test -f 'quvi/opts.cpp'; then $(CYGPATH_W) 'quvi/opts.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/opts.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o query_pt4.obj `if test -f 'compat/query_pt4.cpp'; then $(CYGPATH_W) 'compat/query_pt4.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/query_pt4.cpp'; fi` -media.o: quvi/media.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT media.o -MD -MP -MF $(DEPDIR)/media.Tpo -c -o media.o `test -f 'quvi/media.cpp' || echo '$(srcdir)/'`quvi/media.cpp -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/media.Tpo $(DEPDIR)/media.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/media.cpp' object='media.o' libtool=no @AMDEPBACKSLASH@ +util.o: compat/util.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT util.o -MD -MP -MF $(DEPDIR)/util.Tpo -c -o util.o `test -f 'compat/util.cpp' || echo '$(srcdir)/'`compat/util.cpp +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/util.Tpo $(DEPDIR)/util.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/util.cpp' object='util.o' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o media.o `test -f 'quvi/media.cpp' || echo '$(srcdir)/'`quvi/media.cpp +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o util.o `test -f 'compat/util.cpp' || echo '$(srcdir)/'`compat/util.cpp -media.obj: quvi/media.cpp -@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT media.obj -MD -MP -MF $(DEPDIR)/media.Tpo -c -o media.obj `if test -f 'quvi/media.cpp'; then $(CYGPATH_W) 'quvi/media.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/media.cpp'; fi` -@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/media.Tpo $(DEPDIR)/media.Po -@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='quvi/media.cpp' object='media.obj' libtool=no @AMDEPBACKSLASH@ +util.obj: compat/util.cpp +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT util.obj -MD -MP -MF $(DEPDIR)/util.Tpo -c -o util.obj `if test -f 'compat/util.cpp'; then $(CYGPATH_W) 'compat/util.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/util.cpp'; fi` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/util.Tpo $(DEPDIR)/util.Po +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(AM_V_CXX)source='compat/util.cpp' object='util.obj' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o media.obj `if test -f 'quvi/media.cpp'; then $(CYGPATH_W) 'quvi/media.cpp'; else $(CYGPATH_W) '$(srcdir)/quvi/media.cpp'; fi` +@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o util.obj `if test -f 'compat/util.cpp'; then $(CYGPATH_W) 'compat/util.cpp'; else $(CYGPATH_W) '$(srcdir)/compat/util.cpp'; fi` mostlyclean-libtool: -rm -f *.lo @@ -933,7 +928,7 @@ install-exec-hook: -@ENABLE_CCL_TRUE@ cd $(DESTDIR)$(bindir) && \ +@ENABLE_CCL_TRUE@ cd $(DESTDIR)$(bindir) && rm -f ccl$(EXEEXT) && \ @ENABLE_CCL_TRUE@ $(LN_S) cclive$(EXEEXT) ccl$(EXEEXT) uninstall-hook:
View file
cclive-0.7.9.tar.bz2/src/cc/application.cpp -> cclive-0.9.3.tar.xz/src/cc/application.cpp
Changed
@@ -1,18 +1,21 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2010-2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ #include <ccinternal> @@ -23,39 +26,29 @@ #include <boost/algorithm/string/classification.hpp> // is_any_of #include <boost/algorithm/string/split.hpp> +#include <boost/scoped_ptr.hpp> #include <boost/foreach.hpp> -#include <boost/random.hpp> - -#include <curl/curl.h> - -#ifndef foreach -#define foreach BOOST_FOREACH -#endif +#include <boost/format.hpp> -#include <ccapplication> #include <ccquvi> +#include <ccapplication> +#include <ccoptions> +#include <ccinput> #include <ccutil> #include <cclog> +#include <ccsig> #include <ccre> namespace cc { -static boost::mt19937 _rng; - -static void rand_decor() -{ - boost::uniform_int<> r(2,5); - boost::variate_generator<boost::mt19937&, boost::uniform_int<> > v(_rng,r); - - const int n = v(); - for (int i=0; i<n; ++i) cc::log << "."; -} - static void handle_fetch(const quvi_word type, void*) { - rand_decor(); +#ifdef HAVE_LIBQUVI_0_9 + if (type == QUVI_CALLBACK_STATUS_DONE) +#else if (type == QUVISTATUSTYPE_DONE) +#endif cc::log << " "; } @@ -66,27 +59,51 @@ static void handle_verify(const quvi_word type) { - rand_decor(); +#ifdef HAVE_LIBQUVI_0_9 + if (type == QUVI_CALLBACK_STATUS_DONE) +#else if (type == QUVISTATUSTYPE_DONE) +#endif print_done(); } static void handle_resolve(const quvi_word type) { - rand_decor(); +#ifdef HAVE_LIBQUVI_0_9 + if (type == QUVI_CALLBACK_STATUS_DONE) +#else if (type == QUVISTATUSTYPE_DONE) +#endif cc::log << " "; } -static int status_callback(long param, void *ptr) +#ifdef HAVE_LIBQUVI_0_9 +static void status_callback_pt9(const quvi_word status, const quvi_word type, + void *data, void *userdata) { - const quvi_word status = quvi_loword(param); - const quvi_word type = quvi_hiword(param); - + cc::log << "."; switch (status) { - case QUVISTATUS_FETCH : - handle_fetch(type,ptr); + case QUVI_CALLBACK_STATUS_FETCH: + handle_fetch(type, data); + break; + case QUVI_CALLBACK_STATUS_HTTP_QUERY_METAINFO: + handle_verify(type); + break; + case QUVI_CALLBACK_STATUS_RESOLVE: + handle_resolve(type); + break; + } +} +#else +static void status_callback_pt4(const quvi_word status, const quvi_word type, + void *data) +{ + cc::log << "."; + switch (status) + { + case QUVISTATUS_FETCH: + handle_fetch(type, data); break; case QUVISTATUS_VERIFY: handle_verify(type); @@ -95,24 +112,28 @@ handle_resolve(type); break; } +} +#endif + +#ifdef HAVE_LIBQUVI_0_9 +static int status_callback(long status_type, void *data, void *userdata) +#else +static int status_callback(long status_type, void *data) +#endif +{ + const quvi_word status = quvi_loword(status_type); + const quvi_word type = quvi_hiword(status_type); +#ifdef HAVE_LIBQUVI_0_9 + status_callback_pt9(status, type, data, userdata); +#else + status_callback_pt4(status, type, data); +#endif cc::log << std::flush; return QUVI_OK; } -template<class Iterator> -static Iterator make_unique(Iterator first, Iterator last) -{ - while (first != last) - { - Iterator next(first); - last = std::remove(++next, last, *first); - first = next; - } - return last; -} - static void print_retrying(const int retry, const int max_retries, const int retry_wait) @@ -142,314 +163,136 @@ cc::log << "libquvi: error: " << e.what() << std::endl; } -static void check_quvi_error(const quvi::error& e) -{ - const long resp_code = e.response_code(); - - if (resp_code >= 400 && resp_code <= 500) - throw e; - - else - { - switch (e.quvi_code()) - { - case QUVI_CALLBACK: - print_quvi_error(e); - break; // Retry. - - default: - throw e; - } - } -} - -static const char depr_msg[] = - "WARNING '--format list' is deprecated and will be removed in the later\n" - "WARNING versions. Use --query-formats instead."; - -static const char format_usage[] = - "Usage:\n" - " --format arg get format arg of media\n" - " --format list print domains with formats\n" - " --format list arg match arg to supported domain names\n" - "Examples:\n" - " --format list youtube print youtube formats\n" - " --format fmt34_360p get format fmt34_360p of media"; - -static application::exit_status print_format_help() -{ - std::cout << format_usage << "\n" << depr_msg << std::endl; - return application::ok; -} - -typedef std::map<std::string,std::string> map_ss; - -static void print_host(const map_ss::value_type& t) -{ - std::cout - << t.first - << ":\n " - << t.second - << "\n" - << std::endl; -} - namespace po = boost::program_options; +typedef std::vector<std::string> vs; -typedef std::vector<std::string> vst; - -static application::exit_status handle_format_list( - const po::variables_map& map, - const quvi::query& query) +static std::string format_streams(const std::string& s) { - map_ss m = query.support(); + vs v; + boost::split(v, s, boost::is_any_of("|,")); + const size_t m = v.size(); - // -f list <pattern> + if (m ==0) + v.push_back("default"); - if (map.count("url")) - { - const std::string arg0 = map["url"].as<vst>()[0]; - foreach (map_ss::value_type& t, m) - { - if (t.first.find(arg0) != std::string::npos) - print_host(t); - } - } - - // -f list + std::stringstream r; + r << "\n"; - else - { - foreach (map_ss::value_type& t, m) + size_t i = 0, c = 0; + BOOST_FOREACH(const std::string& a, v) + { + r << boost::format("%|22s|") % a; + ++c; + if (++i ==3) { - print_host(t); + if (c <m) + r << "\n"; + i = 0; } - } - - std::cout << depr_msg << std::endl; - - return application::ok; + } + return r.str(); } -static application::exit_status query_formats( - const quvi::query& query, - const quvi::options &opts, - const vst& input) +static application::exit_status +print_streams(const quvi::query& query, const quvi::options &qopts, + const vs& input_urls, const po::variables_map& vm) { - const size_t n = input.size(); + const size_t n = input_urls.size(); size_t i = 0; - foreach (std::string url, input) + BOOST_FOREACH(const std::string& url, input_urls) { - ++i; - try { - print_checking(i,n); - - const std::string formats = query.formats(url, opts); + print_checking(++i,n); + query.setup_curl(vm); + const std::string r = query.streams(url, qopts); print_done(); - cc::log - << std::setw(10) - << formats - << " : " - << url - << std::endl; + cc::log << "streams (found):" << format_streams(r) << std::endl; } catch(const quvi::error& e) { print_quvi_error(e); + return application::error; } } return application::ok; } -static void read_from(std::istream& is, vst& dst) +static void parse_prefer_format(const std::string& url, std::string& fmt, + const po::variables_map& vm) { - std::string s; - char ch = 0; - - while (is.get(ch)) - s += ch; - - std::istringstream iss(s); - std::copy( - std::istream_iterator<std::string >(iss), - std::istream_iterator<std::string >(), - std::back_inserter<vst>(dst) - ); + const vs& va = vm[OPT__PREFER_FORMAT].as<vs>(); + BOOST_FOREACH(const std::string& s, va) + { + static vs vb; + boost::split(vb, s, boost::is_any_of(":")); + if (vb.size() == 2) // vb[0]=pattern, vb[1]=format + { + if (cc::re::grep(vb[0], url)) + { + fmt = vb[1]; + return; + } + } + vb.clear(); + } } -static bool is_url(const std::string& s) +static void set_stream(const std::string& url, quvi::options& qopts, + const po::variables_map& vm) { - return strstr(const_cast<char*>(s.c_str()), "://") != NULL; + std::string r = vm[OPT__STREAM].as<std::string>(); + if (r == "default" && vm.count(OPT__PREFER_FORMAT)) + parse_prefer_format(url, r, vm); + qopts.stream = r; } -extern char LICENSE[]; // cclive/license.cpp - -application::exit_status application::exec(int argc, char **argv) +application::exit_status application::exec(int const argc, char const **argv) { - try - { - _opts.exec(argc,argv); - } - catch(const std::exception& e) - { - std::clog << "error: " << e.what() << std::endl; - return invalid_option; - } - - const po::variables_map map = _opts.map(); - - // Dump and terminate options. - - if (map.count("help")) - { - std::cout << _opts << std::flush; - return ok; - } - - if (map.count("version")) - { - std::cout - << "cclive " -#ifdef VN - << VN -#else - << PACKAGE_VERSION -#endif - << " for " << CANONICAL_TARGET - << "\n libquvi " - << quvi_version(QUVI_VERSION_LONG) -#ifdef HAVE_LIBQUVI_0_4_0 - << "\n libquvi-scripts " - << quvi_version(QUVI_VERSION_SCRIPTS) -#endif - << std::endl; - return ok; - } - - if (map.count("license")) - { - std::cout << LICENSE << std::endl; - return ok; - } - - // --support - - quvi::query query; // Throws quvi::error caught in main.cpp - - if (map.count("support")) - { - std::cout << quvi::support_to_s(query.support()) << std::flush; - return ok; - } - - // --format [<id> | [<help> | <list> [<pattern]]] - - if (map.count("format")) - { - const std::string format = map["format"].as<std::string>(); - - if (format == "help") - return print_format_help(); - - else if (format == "list") - return handle_format_list(map, query); - } + const boost::scoped_ptr<cc::options> o(new cc::options(argc, argv)); + const po::variables_map vm = o->values(); // Parse input. - vst input; - - if (map.count("url") == 0) - read_from(std::cin, input); - else - { - vst args = map["url"].as< vst >(); - foreach(std::string arg, args) - { - if (!is_url(arg)) - { - std::ifstream f(arg.c_str()); - if (f.is_open()) - read_from(f, input); - else - { - std::clog - << "error: " - << arg - << ": " - << cc::perror("unable to open") - << std::endl; - } - } - else - input.push_back(arg); - } - } - - if (input.size() == 0) - { - std::clog << "error: no input urls" << std::endl; - return invalid_option; - } - - // Remove duplicates. - - input.erase(make_unique(input.begin(), input.end()), input.end()); - - // Turn on libcurl verbose output. - - if (map.count("verbose-libcurl")) - curl_easy_setopt(query.curlHandle(), CURLOPT_VERBOSE, 1L); + const vs& input_urls = cc::input::parse(vm); + const size_t n = input_urls.size(); // Set up quvi. - _tweak_curl_opts(query, map); + quvi::query query; // Throws quvi::error caught in main.cpp quvi::options qopts; - qopts.statusfunc(status_callback); -#ifdef _0 - qopts.verify(map.count("no-verify")); -#endif - qopts.resolve(map.count("no-resolve")); - - // Seed random generator. - - _rng.seed(static_cast<unsigned int>(std::time(0))); + qopts.useragent = vm[OPT__AGENT].as<std::string>(); /* libquvi 0.9+ */ + qopts.resolve = ! vm[OPT__NO_RESOLVE].as<bool>(); + qopts.statusfunc = status_callback; // Omit flag. - bool omit = map.count("quiet"); + bool omit = vm[OPT__QUIET].as<bool>(); // Go to background. -#ifdef HAVE_FORK - const bool background_given = map.count("background"); - +#if defined(HAVE_WORKING_FORK) || defined(HAVE_WORKING_VFORK) + const bool background_given = vm[OPT__BACKGROUND].as<bool>(); if (background_given) - { - - // (Boost) Throws std::runtime_error if fails. - - cc::go_background(map["log-file"].as<std::string>(), omit); - } + cc::go_background(vm[OPT__LOG_FILE].as<std::string>(), omit); #endif // Omit std output. Note that --background flips this above. - cc::log.push(cc::omit_sink(omit)); + cc::log.push(cc::sink::omit(omit)); cc::log.setf(std::ios::fixed); - // Query formats. + // Print streams. - if (map.count("query-formats")) - return query_formats(query, qopts, input); + if_optsw_given(vm, OPT__PRINT_STREAMS) + return print_streams(query, qopts, input_urls, vm); -#if defined (HAVE_FORK) && defined (HAVE_GETPID) +#if defined(HAVE_WORKING_FORK) || defined(HAVE_WORKING_VFORK) + #ifdef HAVE_GETPID if (background_given) { cc::log @@ -458,17 +301,24 @@ << ")." << std::endl; } + #endif #endif + // Setup signal handlers. + + cc::sigwinch_handler_scptr sw(new cc::type_sigwinch); + cc::sigusr1_handler_scptr su(new cc::type_sigusr1); + // For each input URL. - const size_t n = input.size(); size_t i = 0; - const int max_retries = map["max-retries"].as<int>(); - const int retry_wait = map["retry-wait"].as<int>(); + const int max_retries = vm[OPT__MAX_RETRIES].as<cc::max_retries>().value(); + const int retry_wait = vm[OPT__RETRY_WAIT].as<cc::retry_wait>().value(); + + exit_status es = ok; - foreach(std::string url, input) + BOOST_FOREACH(const std::string& url, input_urls) { ++i; @@ -486,99 +336,37 @@ try { - _set_format_string(url, qopts, map); + set_stream(url, qopts, vm); + _curl = query.setup_curl(vm); m = query.parse(url, qopts); } catch(const quvi::error& e) { - check_quvi_error(e); + if (e.cannot_retry()) + throw e; + else + print_quvi_error(e); } - cc::get(query, m, map); - + cc::get(m, _curl, vm); break; // Stop retrying. } + es = ok; } catch(const quvi::error& e) { print_quvi_error(e); + es = application::error; } catch(const std::runtime_error& e) { cc::log << "error: " << e.what() << std::endl; + es = application::error; } } - - return ok; -} - -void application::_tweak_curl_opts(const quvi::query& query, - const po::variables_map& map) -{ - CURL *curl = query.curlHandle(); - - curl_easy_setopt(curl, CURLOPT_USERAGENT, - map["agent"].as<std::string>().c_str()); - - if (map.count("verbose-curl")) - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); - - if (map.count("proxy")) - { - curl_easy_setopt(curl, CURLOPT_PROXY, - map["proxy"].as<std::string>().c_str()); - } - - if (map.count("no-proxy")) - curl_easy_setopt(curl, CURLOPT_PROXY, ""); - - if (map.count("throttle")) - { - curl_off_t limit = map["throttle"].as<int>()*1024; - curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, limit); - } - - curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, - map["connect-timeout"].as<int>()); -} - -static void parse_prefer_format(const po::variables_map& map, - const std::string& url, - std::string& fmt) -{ - vst vb, va = map["prefer-format"].as<vst>(); - foreach (const std::string s, va) - { - boost::split(vb, s, boost::is_any_of(":")); - if (vb.size() == 2) - { - // vb[0] = pattern - // vb[1] = format - if (cc::re::grep(vb[0], url)) - { - fmt = vb[1]; - return; - } - } - vb.clear(); - } -} - -void application::_set_format_string(const std::string& url, - quvi::options& qopts, - const po::variables_map& map) -{ - std::string fmt = "default"; - if (map.count("format")) // --format takes precedence - fmt = map["format"].as<std::string>(); - else - { - if (map.count("prefer-format")) - parse_prefer_format(map, url, fmt); - } - qopts.format(fmt); + return es; } } // namespace cc
View file
cclive-0.7.9.tar.bz2/src/cc/application.h -> cclive-0.9.3.tar.xz/src/cc/application.h
Changed
@@ -1,30 +1,27 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2010-2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ #ifndef cclive_application_h #define cclive_application_h -#include <ccoptions> - -namespace quvi -{ -class options; -class query; -} +#include <cstdlib> namespace cc { @@ -32,17 +29,14 @@ class application { public: - typedef enum { ok=0, invalid_option, system } exit_status; + typedef enum {ok=EXIT_SUCCESS, error=EXIT_FAILURE} exit_status; public: - exit_status exec(int,char **); -private: - void _tweak_curl_opts(const quvi::query&, - const boost::program_options::variables_map&); - void _set_format_string(const std::string&, - quvi::options&, - const boost::program_options::variables_map&); + inline application():_curl(NULL) { } + inline virtual ~application() { } +public: + exit_status exec(int const, char const**); private: - cc::options _opts; + void *_curl; }; } // namespace cc
View file
cclive-0.7.9.tar.bz2/src/cc/background.cpp -> cclive-0.9.3.tar.xz/src/cc/background.cpp
Changed
@@ -1,18 +1,21 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2010-2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ #include <ccinternal> @@ -27,6 +30,7 @@ #include <boost/iostreams/tee.hpp> +#include <ccquvi> #include <ccutil> #include <ccapplication> #include <cclog> @@ -36,15 +40,15 @@ namespace io = boost::iostreams; +#if defined(HAVE_WORKING_FORK) || defined(HAVE_WORKING_VFORK) void go_background(const std::string& log_file, bool& omit) { -#ifdef HAVE_FORK const pid_t pid = fork(); if (pid < 0) { cc::perror("fork"); - exit(application::system); + exit(application::error); } else if (pid != 0) { @@ -70,11 +74,12 @@ freopen("/dev/null", "r", stdin); // Redirect output to log file. - cc::log.push(io::tee(cc::flushable_file_sink(log_file))); + cc::log.push(io::tee(cc::sink::flushable_file(log_file))); + // Omit output to stderr (using cc::log). omit = true; -#endif // HAVE_FORK } +#endif // HAVE_WORKING_(V)FORK } // namespace cc
View file
cclive-0.9.3.tar.xz/src/cc/curl.cpp
Added
@@ -0,0 +1,75 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#include <ccinternal> + +#include <curl/curl.h> + +#include <ccquvi> +#include <ccoptions> +#include <ccutil> + +namespace cc +{ + +namespace po = boost::program_options; + +static void _set_proxy(CURL *c, const po::variables_map& vm) +{ + if (vm.count(OPT__PROXY)) + { + curl_easy_setopt(c, CURLOPT_PROXY, + vm[OPT__PROXY].as<std::string>().c_str()); + } + if_optsw_given(vm, OPT__NO_PROXY) + curl_easy_setopt(c, CURLOPT_PROXY, ""); +} + +void curl_setup(CURL *c, const po::variables_map& vm) +{ + const int n = vm[OPT__THROTTLE].as<throttle>().value() * 1024; + const curl_off_t t = static_cast<curl_off_t>(n); + + curl_easy_setopt(c, CURLOPT_MAX_RECV_SPEED_LARGE, t); + curl_easy_setopt(c, CURLOPT_FOLLOWLOCATION, 1L); + + if_optsw_given(vm, OPT__VERBOSE_LIBCURL) + curl_easy_setopt(c, CURLOPT_VERBOSE, 1L); + +#ifndef HAVE_LIBQUVI_0_9 + curl_easy_setopt(c, CURLOPT_USERAGENT, + vm[OPT__AGENT].as<std::string>().c_str()); +#endif + + curl_easy_setopt(c, CURLOPT_DNS_CACHE_TIMEOUT, + vm[OPT__DNS_CACHE_TIMEOUT].as<dns_cache_timeout>().value()); + + curl_easy_setopt(c, CURLOPT_CONNECTTIMEOUT, + vm[OPT__CONNECT_TIMEOUT].as<connect_timeout>().value()); + + curl_easy_setopt(c, CURLOPT_TIMEOUT, + vm[OPT__TRANSFER_TIMEOUT].as<transfer_timeout>().value()); + + _set_proxy(c, vm); +} + +} // namespace cc + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/error.cpp -> cclive-0.9.3.tar.xz/src/cc/error.cpp
Changed
@@ -1,18 +1,21 @@ /* cclive * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ #include <ccinternal>
View file
cclive-0.9.3.tar.xz/src/cc/error.h
Added
@@ -0,0 +1,104 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef cc__error_h +#define cc__error_h + +#include <ccinternal> + +#include <boost/exception/diagnostic_information.hpp> +#include <boost/exception/errinfo_file_name.hpp> +#include <boost/exception/get_error_info.hpp> +#include <boost/exception/errinfo_errno.hpp> +#include <boost/tuple/tuple.hpp> +#include <cerrno> + +namespace cc +{ + +namespace error +{ + +static inline std::string strerror(const int ec) +{ + char buf[256]; + return strerror_r(ec, buf, sizeof(buf)); +} + +static inline std::string strerror() { return strerror(errno); } + +typedef boost::tuple<std::string,std::string> type_tuple; +typedef boost::error_info<struct tag_tuple,type_tuple> errinfo_tuple; + +static inline int print(const boost::exception& x) +{ + std::clog << "error: "; + + if (std::string const *s = + boost::get_error_info<boost::errinfo_file_name>(x)) + { + std::clog << *s << ": "; + } + + bool print_what = true; + if (int const *n = + boost::get_error_info<boost::errinfo_errno>(x)) + { + std::clog << cc::error::strerror(*n) << " (" << *n << ")"; + print_what = false; + } + + if (type_tuple const *t = boost::get_error_info<errinfo_tuple>(x)) + { + std::clog << boost::get<0>(*t) << ": " << boost::get<1>(*t); + print_what = false; + } + + try + { + throw; + } + catch (const std::exception& x) + { + if (print_what) + std::clog << x.what(); + } + catch (...) + { + std::clog << boost::diagnostic_information(x); + } + std::clog << std::endl; + return EXIT_FAILURE; +} + +struct no_input : virtual std::exception, virtual boost::exception { }; +struct fstream : virtual std::exception, virtual boost::exception { }; +struct config : virtual std::exception, virtual boost::exception { }; +struct tuple : virtual std::exception, virtual boost::exception { }; + +} // namespace error + +struct exit_program : virtual std::exception, virtual boost::exception { }; +struct nothing_todo : virtual std::exception, virtual boost::exception { }; + +} // namespace cc +#endif // cc__error_h + +/* vim: set ts=2 sw=2 tw=72 expandtab: */
View file
cclive-0.7.9.tar.bz2/src/cc/exec.cpp -> cclive-0.9.3.tar.xz/src/cc/exec.cpp
Changed
@@ -1,20 +1,25 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2010-2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ +#include <ccinternal> + #include <stdexcept> #include <sstream> #include <cstdio> @@ -26,11 +31,8 @@ #include <boost/foreach.hpp> #include <pcrecpp.h> -#ifndef foreach -#define foreach BOOST_FOREACH -#endif - #include <ccquvi> +#include <ccoptions> #include <ccfile> #include <ccre> #include <ccutil> @@ -39,9 +41,9 @@ namespace cc { -typedef std::vector<std::string> vst; +typedef std::vector<std::string> vs; -static int invoke_exec(const vst& args) +static int invoke_exec(const vs& args) { const size_t sz = args.size(); const char **argv = new const char* [sz+2]; @@ -99,7 +101,7 @@ static void tokenize(const std::string& r, const std::string& s, - vst& dst) + vs& dst) { pcrecpp::StringPiece sp(s); pcrecpp::RE rx(r); @@ -114,16 +116,16 @@ namespace po = boost::program_options; -void exec(const file& file, const po::variables_map& map) +void exec(const file& file, const po::variables_map& vm) { - const vst m = map["exec"].as<vst>(); - foreach (std::string e, m) + const vs& m = vm[OPT__EXEC].as<vs>(); + BOOST_FOREACH(std::string e, m) { pcrecpp::RE("%f").GlobalReplace(file.path(), &e); pcrecpp::RE("%n").GlobalReplace(file.name(), &e); pcrecpp::RE("%t").GlobalReplace(file.title(), &e); - vst args; + vs args; tokenize("([\"'](.*?)[\"']|\\S+)", e, args); invoke_exec(args); }
View file
cclive-0.7.9.tar.bz2/src/cc/file.cpp -> cclive-0.9.3.tar.xz/src/cc/file.cpp
Changed
@@ -1,52 +1,43 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2010-2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ #include <ccinternal> #include <stdexcept> #include <fstream> -#include <sstream> #include <iomanip> #ifdef HAVE_UNISTD_H #include <unistd.h> #endif -#ifdef HAVE_SIGNAL_H -#include <signal.h> -#endif - -#if defined (HAVE_SIGNAL_H) && defined (HAVE_SIGNAL) -#define WITH_SIGNAL -#endif - #include <boost/program_options/variables_map.hpp> #include <boost/filesystem.hpp> #include <boost/foreach.hpp> #include <boost/format.hpp> -#ifndef foreach -#define foreach BOOST_FOREACH -#endif - #include <curl/curl.h> #include <pcrecpp.h> #include <ccquvi> +#include <ccoptions> #include <ccprogressbar> #include <ccre> #include <ccutil> @@ -56,50 +47,21 @@ namespace cc { -file::file() - : _initial_length(0), _nothing_todo(false) -{ -} - namespace po = boost::program_options; -file::file(const quvi::media& media, - const quvi::url& url, - const int n, - const po::variables_map& map) +file::file(const quvi::media& media, const po::variables_map& vm) : _initial_length(0), _nothing_todo(false) { try { - _init(media, url, n, map); + _init(media, vm); } - catch (const cc::nothing_todo_error&) + catch (const cc::nothing_todo&) { _nothing_todo = true; } } -file::file(const file& f) - : _initial_length(0), _nothing_todo(false) -{ - _swap(f); -} - -file& file::operator=(const file& f) -{ - if (this != &f) _swap(f); - return *this; -} - -void file::_swap(const file& f) -{ - _title = f._title; - _name = f._name; - _path = f._path; - _initial_length = f._initial_length; - _nothing_todo = f._nothing_todo; -} - #define E "server response code %ld, expected 200 or 206 (conn_code=%ld)" static std::string format_unexpected_http_error( @@ -123,128 +85,151 @@ #undef E -static size_t write_cb(void *data, size_t size, size_t nmemb, void *ptr) +static std::string io_error(const std::string& fpath) { - std::ofstream *o = reinterpret_cast<std::ofstream*>(ptr); - const size_t rsize = size*nmemb; - o->write(static_cast<char*>(data), rsize); - o->flush(); - return rsize; + std::string s = fpath + ": "; + if (errno) + s += cc::perror(); + else + s += "unknown i/o error"; + return (s); } -#ifdef WITH_SIGNAL -static volatile sig_atomic_t recv_usr1; - -static void handle_usr1(int s) +static std::string io_error(const cc::file& f) { - if (s == SIGUSR1) - recv_usr1 = 1; + return io_error(f.path()); } -#endif -static int progress_cb(void *ptr, double, double now, double, double) +class write_data { -#ifdef WITH_SIGNAL - if (recv_usr1) - { - recv_usr1 = 0; - return 1; // Return a non-zero value to abort this transfer. - } -#endif - reinterpret_cast<progressbar*>(ptr)->update(now); - return 0; -} +public: + inline write_data(cc::file *f, const po::variables_map& vm) + : vm(vm), o(NULL), f(f) { } + inline ~write_data() + { + if (o == NULL) + return; + + o->flush(); + o->close(); + + delete o; + o = NULL; + } + inline void open_file() + { + std::ios_base::openmode mode = std::ofstream::binary; + + if_optsw_given(vm, OPT__OVERWRITE) + mode |= std::ofstream::trunc; + else + { + if (f->should_continue()) + mode |= std::ofstream::app; + } -bool file::write(const quvi::query& q, - const quvi::url& u, - const po::variables_map& map) const + o = new std::ofstream(f->path().c_str(), mode); + if (o->fail()) + throw std::runtime_error(io_error(*f)); + } +public: + po::variables_map vm; + std::ofstream *o; + cc::file *f; +}; + +static size_t write_cb(void *ptr, size_t size, size_t nmemb, void *userdata) { - CURL *curl = q.curlHandle(); + write_data *w = reinterpret_cast<write_data*>(userdata); + const size_t rsize = size*nmemb; - curl_easy_setopt(curl, CURLOPT_URL, u.media_url().c_str()); - curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_cb); + w->o->write(static_cast<char*>(ptr), rsize); + if (w->o->fail()) + return w->f->set_errmsg(io_error(*w->f)); - std::ios_base::openmode mode = std::ofstream::binary; + w->o->flush(); + if (w->o->fail()) + return w->f->set_errmsg(io_error(*w->f)); - if (map.count("overwrite")) - mode |= std::ofstream::trunc; - else + return rsize; +} + +static int progress_cb(void *ptr, double, double now, double, double) +{ + if (cc::var::recv_sigusr1) { - if (_should_continue()) - mode |= std::ofstream::app; + cc::var::recv_sigusr1 = 0; + return 1; // Return a non-zero value to abort this transfer. } + return reinterpret_cast<cc::progressbar*>(ptr)->update(now); +} - std::ofstream out(_path.c_str(), mode); +static void _set(write_data *w, const quvi::media& m, CURL *c, + cc::progressbar *pb, const double initial_length, + const po::variables_map& vm) +{ + curl_easy_setopt(c, CURLOPT_URL, m.stream_url().c_str()); - if (out.fail()) - { - std::string s = _path + ": "; + curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, write_cb); + curl_easy_setopt(c, CURLOPT_WRITEDATA, w); - if (errno) - s += cc::perror(); - else - s += "unknown file open error"; + curl_easy_setopt(c, CURLOPT_PROGRESSFUNCTION, progress_cb); + curl_easy_setopt(c, CURLOPT_PROGRESSDATA, pb); + curl_easy_setopt(c, CURLOPT_NOPROGRESS, 0L); - throw std::runtime_error(s); - } + curl_easy_setopt(c, CURLOPT_ENCODING, "identity"); + curl_easy_setopt(c, CURLOPT_HEADER, 0L); - curl_easy_setopt(curl, CURLOPT_WRITEDATA, &out); + if_optsw_given(vm, OPT__TIMESTAMP) + curl_easy_setopt(c, CURLOPT_FILETIME, 1L); - curl_easy_setopt(curl, CURLOPT_ENCODING, "identity"); - curl_easy_setopt(curl, CURLOPT_HEADER, 0L); + curl_easy_setopt(c, CURLOPT_RESUME_FROM_LARGE, + static_cast<curl_off_t>(initial_length)); +} - progressbar pb(*this, u, map); - curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, &pb); - curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0L); - curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_cb); +static void _restore(CURL *c) +{ + curl_easy_setopt(c, CURLOPT_WRITEFUNCTION, NULL); + curl_easy_setopt(c, CURLOPT_ENCODING, ""); - curl_off_t resume_from = static_cast<curl_off_t>(_initial_length); - curl_easy_setopt(curl, CURLOPT_RESUME_FROM_LARGE, resume_from); + curl_easy_setopt(c, CURLOPT_PROGRESSFUNCTION, NULL); + curl_easy_setopt(c, CURLOPT_PROGRESSDATA, NULL); + curl_easy_setopt(c, CURLOPT_NOPROGRESS, 1L); - curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, - map["connect-timeout"].as<int>()); + curl_easy_setopt(c, CURLOPT_RESUME_FROM_LARGE, 0L); +} - curl_easy_setopt(curl, CURLOPT_TIMEOUT, - map["transfer-timeout"].as<int>()); +namespace fs = boost::filesystem; - curl_easy_setopt(curl, CURLOPT_DNS_CACHE_TIMEOUT, - map["dns-cache-timeout"].as<int>()); +bool file::write(const quvi::media& m, CURL *curl, + const po::variables_map& vm) const +{ + write_data w(const_cast<cc::file*>(this), vm); + w.open_file(); - curl_off_t throttle = map["throttle"].as<int>()*1024; - curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, throttle); + cc::progressbar *pb = new cc::progressbar(vm, m, _initial_length); + _set(&w, m, curl, pb, _initial_length, vm); -#ifdef WITH_SIGNAL - recv_usr1 = 0; - if (signal(SIGUSR1, handle_usr1) == SIG_ERR) - { - cc::log << "warning: "; - if (errno) - cc::log << cc::perror(); - else - cc::log << "unable to catch SIGUSR1"; - cc::log << std::endl; - } -#endif + boost::scoped_ptr<cc::progressbar> sc_pb(pb); const CURLcode rc = curl_easy_perform(curl); + _restore(curl); // Restore curl settings. curl_easy_setopt(curl, CURLOPT_HEADER, 1L); + curl_easy_setopt(curl, CURLOPT_FILETIME, 0L); curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L); curl_easy_setopt(curl, CURLOPT_RESUME_FROM_LARGE, 0L); curl_easy_setopt(curl, CURLOPT_MAX_RECV_SPEED_LARGE, static_cast<curl_off_t>(0L)); - out.flush(); - out.close(); - long resp_code = 0; long conn_code = 0; - curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp_code); curl_easy_getinfo(curl, CURLINFO_HTTP_CONNECTCODE, &conn_code); + curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp_code); std::string error; @@ -254,248 +239,121 @@ error = format_unexpected_http_error(resp_code, conn_code); } else - error = format_error(rc, resp_code, conn_code); - - if (!error.empty()) { - cc::log << std::endl; - - if (resp_code >= 400 && resp_code <= 500) - throw std::runtime_error(error); + if (CURLE_WRITE_ERROR == rc) // write_cb returned != rsize + error = _errmsg; else - { -#ifdef WITH_SIGNAL - if (rc == 42) - { - // 42 = Operation aborted by callback. - error = "sigusr1 received: interrupt current download"; - } -#endif - cc::log << "error: " << error << std::endl; - } - - return false; // Retry. + error = format_error(rc, resp_code, conn_code); } - pb.finish(); + if (!error.empty()) + return pb->print_error(resp_code, rc, error); - cc::log << std::endl; + if_optsw_given(vm, OPT__TIMESTAMP) + { + long ft = -1; + curl_easy_getinfo(curl, CURLINFO_FILETIME, &ft); + if (ft >=0) + fs::last_write_time(_path, ft); + } return true; } -double file::initial_length() const -{ - return _initial_length; -} - -const std::string& file::title() const -{ - return _title; -} - -const std::string& file::path() const -{ - return _path; -} - -const std::string& file::name() const -{ - return _name; -} - -const bool file::nothing_todo() const -{ - return _nothing_todo; -} - -bool file::_should_continue() const -{ - return _initial_length > 0; -} - static double to_mb(const double bytes) { return bytes/(1024*1024); } -std::string file::to_s(const quvi::url& url) const +std::string file::to_s(const quvi::media& m) const { - const double length = to_mb(url.content_length()); + const double length = to_mb(m.content_length()); boost::format fmt = boost::format("%s %.2fM [%s]") - % _name % length % url.content_type(); + % _name % length % m.content_type(); return fmt.str(); } -namespace fs = boost::filesystem; - -static fs::path output_dir(const po::variables_map& map) +static fs::path output_fpath(const po::variables_map& vm, + const std::string& fname) { - fs::path dir; - if (map.count("output-dir")) - dir = map["output-dir"].as<std::string>(); - return fs::system_complete(dir); + const fs::path& r = + fs::system_complete(vm[OPT__OUTPUT_DIR].as<std::string>()); + return r / fname; } -typedef std::vector<std::string> vst; - -void file::_init(const quvi::media& media, - const quvi::url& url, - const int n, - const po::variables_map& map) +void file::_init(const quvi::media& media, const po::variables_map& vm) { _title = media.title(); - if (map.count("output-file")) - { - // Overrides --filename-format. - - fs::path p = output_dir(map); + // NOTE: output-file overrides the filename-format. - p /= map["output-file"].as<std::string>(); + if (vm.count(OPT__OUTPUT_FILE)) + { + const std::string& ofname = vm[OPT__OUTPUT_FILE].as<std::string>(); + store_path(output_fpath(vm, ofname)); -#if BOOST_FILESYSTEM_VERSION > 2 - _name = p.filename().string(); -#else - _name = p.filename(); -#endif - _path = p.string(); - _initial_length = file::exists(_path); + _initial_length = cc::file::exists(_path); - if ( _initial_length >= url.content_length() - && !map.count("overwrite") ) + if ( _initial_length >= media.content_length() + && ! vm[OPT__OVERWRITE].as<bool>()) { - throw cc::nothing_todo_error(); + BOOST_THROW_EXCEPTION(cc::nothing_todo()); } } - - else + else // Use filename-format. { - // Cleanup media title. + std::string fname_fmt = vm[OPT__FILENAME_FORMAT].as<std::string>(); + pcrecpp::RE("%s").GlobalReplace(media.file_ext(), &fname_fmt); + pcrecpp::RE("%i").GlobalReplace(media.id(), &fname_fmt); - std::string title = media.title(); - vst tr; + // Cleanup media title before applying it to the filename-format. - if (map.count("tr")) - tr = map["tr"].as<vst>(); - else // Use built-in default value. - { - if (map.count("regexp")) // Deprecated. - cc::re::capture(map["regexp"].as<std::string>(), title); - else - tr.push_back("/(\\w|\\pL|\\s)/g"); - } + const cc::vtr& tr = vm[OPT__TR].as<cc::vtr>(); + std::string s = media.title(); - foreach (const std::string r, tr) - { - cc::re::tr(r, title); - } - cc::re::trim(title); + BOOST_FOREACH(const cc::tr& t, tr) + cc::re::tr(t.str(), s); + cc::re::trim(s); - // --filename-format + pcrecpp::RE("%t").GlobalReplace(s, &fname_fmt); - std::string fname_format = - map["filename-format"].as<std::string>(); + // output-dir - pcrecpp::RE("%i").GlobalReplace(media.id(), &fname_format); - pcrecpp::RE("%t").GlobalReplace(title, &fname_format); - pcrecpp::RE("%s").GlobalReplace(url.suffix(), &fname_format); - pcrecpp::RE("%h").GlobalReplace(media.host(), &fname_format); + const fs::path& base_fpath = output_fpath(vm, fname_fmt); + store_path(base_fpath); - if (map.count("subst")) // Deprecated. - { - std::istringstream iss(map["subst"].as<std::string>()); - vst v; - - std::copy( - std::istream_iterator<std::string >(iss), - std::istream_iterator<std::string >(), - std::back_inserter<vst>(v) - ); - - foreach (const std::string s, v) - { - cc::re::subst(s, fname_format); - } - } - - std::stringstream b; - - b << fname_format; - - // A multi-segment media. - - if (n > 1) b << "_" << n; - - // Output dir. - - const fs::path out_dir = output_dir(map); - fs::path templ_path = out_dir; - - templ_path /= b.str(); - - // Path, name. - - fs::path p = fs::system_complete(templ_path); - -#if BOOST_FILESYSTEM_VERSION > 2 - _name = p.filename().string(); -#else - _name = p.filename(); -#endif - _path = p.string(); - - if (!map.count("overwrite")) + ifn_optsw_given(vm, OPT__OVERWRITE) { for (int i=0; i<INT_MAX; ++i) { - _initial_length = file::exists(_path); - - if (_initial_length == 0) - break; - - else if (_initial_length >= url.content_length()) - throw cc::nothing_todo_error(); + _initial_length = cc::file::exists(_path); + if (_initial_length ==0) + break; // Start from offset 0. + else if (_initial_length >=media.content_length()) + BOOST_THROW_EXCEPTION(cc::nothing_todo()); else { - if (map.count("continue")) - break; + if_optsw_given(vm, OPT__CONTINUE) + break; // Try to resume the transfer. } - boost::format fmt = - boost::format("%1%.%2%") % templ_path.string() % i; + // Append a digit to the (base) file name. - p = fs::system_complete(fmt.str()); + const std::string& s = + (boost::format("%1%.%2%") % base_fpath.string() % i).str(); -#if BOOST_FILESYSTEM_VERSION > 2 - _name = p.filename().string(); -#else - _name = p.filename(); -#endif - _path = p.string(); + store_path(fs::system_complete(s)); } } } - if ( map.count("overwrite") ) + if_optsw_given(vm, OPT__OVERWRITE) _initial_length = 0; } -double file::exists(const std::string& path) -{ - fs::path p( fs::system_complete(path) ); - - double size = 0; - - if (fs::exists(p)) - size = static_cast<double>(fs::file_size(p)); - - return size; -} - } // namespace cc // vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/file.h -> cclive-0.9.3.tar.xz/src/cc/file.h
Changed
@@ -1,30 +1,27 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2010-2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ #ifndef cclive_file_h #define cclive_file_h -namespace boost -{ -namespace program_options -{ -class variables_map; -} -} +namespace fs = boost::filesystem; namespace cc { @@ -32,35 +29,56 @@ class file { public: - file(); - file(const quvi::media&, - const quvi::url&, - const int, - const boost::program_options::variables_map&); - file(const file&); - file& operator=(const file&); -public: - bool write(const quvi::query&, - const quvi::url&, - const boost::program_options::variables_map&) const; + file(const quvi::media&, const po::variables_map&); + + inline file(): _initial_length(0), _nothing_todo(false) { } + + inline file(const file& f): _initial_length(0), _nothing_todo(false) + { + _swap(f); + } + + inline file& operator=(const file& f) + { + if (this != &f) _swap(f); + return *this; + } public: - std::string to_s(const quvi::url&) const; - const std::string& title() const; - const std::string& path() const; - const std::string& name() const; - const bool nothing_todo() const; - double initial_length() const; + bool write(const quvi::media&, void*, const po::variables_map&) const; public: - static double exists(const std::string&); + std::string to_s(const quvi::media&) const; + inline const std::string& title() const { return _title; } + inline const std::string& path() const { return _path; } + inline const std::string& name() const { return _name; } + inline const bool nothing_todo() const { return _nothing_todo; } + inline double initial_length() const { return _initial_length; } + inline bool should_continue() const { return _initial_length >0; } + inline int set_errmsg(const std::string& e) { _errmsg = e; return 0; } private: - void _init(const quvi::media&, - const quvi::url&, - const int, - const boost::program_options::variables_map&); - bool _should_continue() const; - void _swap(const file&); + void _init(const quvi::media&, const po::variables_map&); + + inline void _swap(const file& f) + { + _title = f._title; + _name = f._name; + _path = f._path; + _initial_length = f._initial_length; + _nothing_todo = f._nothing_todo; + } + inline void store_path(const fs::path& p) + { + _name = p.filename().string(); + _path = p.string(); + } + static inline double exists(const std::string& fpath) + { + if (fs::exists(fpath)) + return static_cast<double>(fs::file_size(fpath)); + return 0; + } private: double _initial_length; + std::string _errmsg; bool _nothing_todo; std::string _title; std::string _name;
View file
cclive-0.9.3.tar.xz/src/cc/fstream.h
Added
@@ -0,0 +1,141 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef cc__fstream_h +#define cc__fstream_h + +#include <ccinternal> + +#include <boost/exception/errinfo_errno.hpp> +#include <boost/filesystem.hpp> +#include <boost/shared_ptr.hpp> +#include <algorithm> +#include <fstream> + +namespace cc +{ + +struct fstream; +typedef boost::shared_ptr<fstream> fstream_shptr; + +struct fstream : boost::noncopyable +{ + inline fstream(const std::string& fpath, + const std::ios_base::openmode& m=std::ofstream::binary) + { + _o = boost::shared_ptr<std::ofstream>(new std::ofstream(fpath.c_str(),m)); + if (_o->fail()) + { + BOOST_THROW_EXCEPTION(cc::error::fstream() + << boost::errinfo_file_name(fpath) + << boost::errinfo_errno(errno)); + } + _fpath = fpath; + } + + static inline fstream_shptr create(const std::string& fpath) + { + return fstream_shptr(new fstream(fpath, std::ofstream::trunc)); + } + + static inline fstream_shptr append(const std::string& fpath) + { + return fstream_shptr(new fstream(fpath, std::ofstream::app)); + } + + static inline fstream_shptr determine_mode(const std::string& fpath, + uintmax_t& n) + { + boost::system::error_code ec; // Throw nothing. + n = boost::filesystem::file_size(fpath, ec); + return (n >0) ? append(fpath) : create(fpath); + } + + static inline std::string read_ignore_errors(const std::string& fpath) + { + return read_contents(fpath, false); + } + + static inline std::string read(const std::string& fpath) + { + return read_contents(fpath); + } + + inline size_t write(const char *data, const size_t size) + { + _o->write(data, size); + if (_o->fail()) + { + BOOST_THROW_EXCEPTION(cc::error::fstream() + << boost::errinfo_file_name(_fpath) + << boost::errinfo_errno(errno)); + } + _o->flush(); + if (_o->fail()) + { + BOOST_THROW_EXCEPTION(cc::error::fstream() + << boost::errinfo_file_name(_fpath) + << boost::errinfo_errno(errno)); + } + return size; + } + +private: + static inline std::string read_contents(const std::string& fpath, + const bool throws_if_fails=true) + { + const fs::path p = fs::system_complete(fpath); + + boost::system::error_code ec; + if (fs::is_directory(p, ec)) + { + BOOST_THROW_EXCEPTION(cc::error::tuple() + << cc::error::errinfo_tuple( + boost::make_tuple(p.string(), "is a directory"))); + } + + std::ifstream f(p.string().c_str()); + std::string r; + if (!f) + { + if (throws_if_fails) + { + BOOST_THROW_EXCEPTION(cc::error::fstream() + << boost::errinfo_file_name(fpath) + << boost::errinfo_errno(errno)); + } + return r; + } + std::copy(std::istreambuf_iterator<char>(f), + std::istreambuf_iterator<char>(), + std::back_inserter(r)); + return r; + } + +private: + boost::shared_ptr<std::ofstream> _o; + std::string _fpath; +}; + +} // namespace cc + +#endif // cc__fstream_h + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/get.cpp -> cclive-0.9.3.tar.xz/src/cc/get.cpp
Changed
@@ -1,25 +1,30 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2010-2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ -#include <iostream> +#include <ccinternal> +#include <iostream> #include <boost/program_options/variables_map.hpp> #include <ccquvi> +#include <ccoptions> #include <cclog> #include <ccfile> #include <ccutil> @@ -29,70 +34,57 @@ namespace po = boost::program_options; -void get(const quvi::query& query, - quvi::media& media, - const po::variables_map& map) +void get(quvi::media& media, void *curl, const po::variables_map& vm) { - const bool no_download = map.count("no-download"); - const bool exec = map.count("exec"); - - const int max_retries = map["max-retries"].as<int>(); - const int retry_wait = map["retry-wait"].as<int>(); + const int max_retries = vm[OPT__MAX_RETRIES].as<cc::max_retries>().value(); + const int retry_wait = vm[OPT__RETRY_WAIT].as<cc::retry_wait>().value(); - int n = 0; + const bool no_download = vm[OPT__NO_DOWNLOAD].as<bool>(); + const bool exec = vm.count(OPT__EXEC); - quvi::url url; + int retry = 0; - while ((url = media.next_url()).ok()) + while (retry <= max_retries) { - ++n; + cc::file file(media, vm); - int retry = 0; - - while (retry <= max_retries) + if (file.nothing_todo()) { - cc::file file(media, url, n, map); - - if (file.nothing_todo()) - { - if (exec) - cc::exec(file, map); - + if (exec) + cc::exec(file, vm); #define E_NOTHING_TODO "media retrieved completely already" - throw std::runtime_error(E_NOTHING_TODO); + throw std::runtime_error(E_NOTHING_TODO); #undef E_NOTHING_TODO - } - - // Download media. - - if (retry > 0) - { - cc::log - << "Retrying " - << retry - << " of " - << max_retries - << " ... " - << std::flush; - - cc::wait(retry_wait); - } + } - ++retry; + // Download media. - cc::log << file.to_s(url) << std::endl; + if (retry > 0) + { + cc::log + << "Retrying " + << retry + << " of " + << max_retries + << " ... " + << std::flush; + + cc::wait(retry_wait); + } - if (!no_download) - { - if (!file.write(query, url, map)) - continue; // Retry. + cc::log << file.to_s(media) << std::endl; + ++retry; - if (exec) - cc::exec(file, map); - } + if (!no_download) + { + if (!file.write(media, curl, vm)) + continue; // Retry. - break; // Stop retrying. + if (exec) + cc::exec(file, vm); } + + break; // Stop retrying. } }
View file
cclive-0.9.3.tar.xz/src/cc/input.h
Added
@@ -0,0 +1,152 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef cc__input_h +#define cc__input_h + +#include <ccinternal> + +#include <istream> +#include <sstream> + +#include <boost/noncopyable.hpp> +#include <glibmm.h> + +#include <ccoptions> +#include <ccfstream> +#include <ccerror> + +namespace cc +{ + +namespace po = boost::program_options; + +struct input : boost::noncopyable +{ + typedef std::vector<std::string> vs; + + static inline vs parse(const po::variables_map& vm) + { + vs r; + (vm.count("url") ==0) + ? parse_without_rargs(vm,r) + : parse_with_rargs(vm,r); + return remove_duplicates(r); + } + +private: + template<class T> static T duplicates(T first, T last) + { + while (first != last) + { + T next(first); + last = std::remove(++next, last, *first); + first = next; + } + return last; + } + + static inline const vs& remove_duplicates(vs& r) + { + r.erase(duplicates(r.begin(), r.end()), r.end()); + if (r.size() ==0) + BOOST_THROW_EXCEPTION(cc::error::no_input()); + return r; + } + + static inline const vs& parse_without_rargs(const po::variables_map& vm, + vs& dst) + { + return extract_uris(dst, read_stdin()); + } + + static inline const vs& parse_with_rargs(const po::variables_map& vm, + vs& dst) + { + BOOST_FOREACH(const std::string& s, vm["url"].as<vs>()) + determine_input(dst, s, true, "neither a valid URI or a local file"); + return dst; + } + + static inline const vs& extract_uris(vs& dst, const std::string& s) + { + gchar **r = g_uri_list_extract_uris(s.c_str()); + for (int i=0; r[i] != NULL; ++i) + { + try + { determine_input(dst, r[i], false, "an invalid URI"); } + catch (...) + { + g_strfreev(r); + throw; + } + } + g_strfreev(r); + return dst; + } + + static inline const vs& read_from_uri(vs& dst, const std::string& s) + { + try + { + const std::string r = Glib::filename_from_uri(s); + extract_uris(dst, cc::fstream::read(r)); + } + catch (const Glib::ConvertError& x) + { + BOOST_THROW_EXCEPTION(cc::error::tuple() + << cc::error::errinfo_tuple(boost::make_tuple(s, x.what()))); + } + return dst; + } + + static inline void determine_input(vs& dst, const std::string& s, + const bool try_read_as_file, + const std::string& emsg) + { + const std::string& c = Glib::uri_parse_scheme(s); + if (c.length() ==0 && try_read_as_file) + extract_uris(dst, cc::fstream::read(s)); + else if (c == "http" || c == "https") + dst.push_back(s); + else if (c == "file") + read_from_uri(dst, s); + else + { + BOOST_THROW_EXCEPTION(cc::error::tuple() + << cc::error::errinfo_tuple(boost::make_tuple(s, emsg))); + } + } + + static inline std::string read_stdin() + { + std::stringstream s; + char c; + while (std::cin.get(c)) + s << c; + return s.str(); + } +}; + +} // namespace cc + +#endif // cc__input_h + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/internal.h -> cclive-0.9.3.tar.xz/src/cc/internal.h
Changed
@@ -1,38 +1,69 @@ /* cclive - * Copyright (C) 2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2011,2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ -// Include this header instead of 'config.h'. +// NOTE: Include this header instead of 'config.h' -#ifndef cclive_internal_h -#define cclive_internal_h +#ifndef cc__internal_h +#define cc__internal_h #include <boost/version.hpp> - #include "config.h" +// Boost.Program_Options + +#if (BOOST_VERSION <= 104900) + // There is a bug in Boost.Program_Options (1.49 at least, possibly + // earlier) that causes the library to provide an incomplete error + // message when an option is given multiple times (and this isn't + // acceptable). 1.53+ appears to work OK, 1.50-1.52 unconfirmed. + #ifndef HAVE_BUG__BOOST_PO__MULTIPLE_OCCURRENCES + #define HAVE_BUG__BOOST_PO__MULTIPLE_OCCURRENCES + #endif +#endif + +// Boost.Filesystem + #define BOOST_FILESYSTEM_NO_DEPRECATED -// Boost 1.44+ -#if (BOOST_VERSION >= 104400) -#ifndef BOOST_FILESYSTEM_VERSION -#define BOOST_FILESYSTEM_VERSION 3 // Default in 1.46.0 +#if (BOOST_VERSION >= 104400) // Boost 1.44+ + #ifndef BOOST_FILESYSTEM_VERSION + #define BOOST_FILESYSTEM_VERSION 3 // Default in 1.46.0 + #endif #endif + +#ifndef if_optsw_given + #define if_optsw_given(__varmap,__varname)\ + if (__varmap[__varname].as<bool>()) +#endif + +#ifndef ifn_optsw_given + #define ifn_optsw_given(__varmap,__varname)\ + if (! __varmap[__varname].as<bool>()) +#endif + +#if defined(HAVE_WORKING_FORK) || defined(HAVE_WORKING_VFORK) + #ifdef HAVE_VFORK + #define vfork fork + #endif #endif -#endif // cclive_internal_h +#endif // cc__internal_h /* vim: set ts=2 sw=2 tw=72 expandtab: */
View file
cclive-0.7.9.tar.bz2/src/cc/log.h -> cclive-0.9.3.tar.xz/src/cc/log.h
Changed
@@ -1,76 +1,149 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ -#ifndef cclive_log_h -#define cclive_log_h +#ifndef cc__log_h +#define cc__log_h -#include <iostream> -#include <fstream> +#include <ccinternal> #include <boost/iostreams/filtering_stream.hpp> +#include <boost/filesystem.hpp> +#include <fstream> + +#include <ccerror> namespace cc { extern boost::iostreams::filtering_ostream log; -struct omit_sink : public boost::iostreams::sink +namespace sink { - std::streamsize write(const char *s, std::streamsize n); - explicit omit_sink(bool b=false); + +struct omit : boost::iostreams::sink +{ + inline std::streamsize write(const char *s, std::streamsize n) + { + if (!_omit) std::clog.write(s, n); + return n; + } + + inline explicit omit(bool omit=false): _omit(omit) { } + private: bool _omit; }; -struct flushable_file_sink +namespace fs = boost::filesystem; + +struct flushable_file : boost::noncopyable { typedef char char_type; - struct category : + struct category : boost::noncopyable, boost::iostreams::output_seekable, - boost::iostreams::device_tag, + boost::iostreams::flushable_tag, boost::iostreams::closable_tag, - boost::iostreams::flushable_tag {}; + boost::iostreams::device_tag { }; - flushable_file_sink( - const std::string&, - const std::ios_base::openmode mode = std::ios::trunc|std::ios::out); +#define DEFAULT_MODE std::ios::trunc|std::ios::out + inline flushable_file(const std::string& fpath, + const std::ios_base::openmode m = DEFAULT_MODE) + : _mode(m), _fpath(fpath) + { + _open(); + } +#undef DEFAULT_MODE - flushable_file_sink& operator=(const flushable_file_sink&); - flushable_file_sink(const flushable_file_sink&); + inline flushable_file(const flushable_file& o) { _copy(o); } - std::streampos seek(std::streamoff, std::ios_base::seekdir); - std::streamsize write(const char *, std::streamsize); - std::streamsize read(char_type *, std::streamsize); + inline flushable_file& operator=(const flushable_file& o) + { + if (this != &o) _copy(o); + return *this; + } + + inline std::streampos seek(std::streamoff n, std::ios_base::seekdir s) + { + _s.seekp(n, s); + _s.seekg(n, s); + return n; + } + + inline std::streamsize write(const char *s, std::streamsize n) + { + _s.write(s, n); + return n; + } + + inline std::streamsize read(char_type *t, std::streamsize n) + { + _s.read(t, n); + return n; + } + + inline bool is_open() const { return _s.is_open(); } + + inline bool flush() + { + _s.flush(); + return true; + } + + inline void close() + { + flush(); + _s.close(); + } - bool is_open() const; - bool flush(); - void close(); private: - void _swap(const flushable_file_sink&); - void _open(); + inline void _copy(const flushable_file& o) + { + close(); + _fpath = o._fpath; + _mode = o._mode; + _open(); + } + + inline void _open() + { + _fpath = fs::system_complete(fs::path(_fpath)).string(); + _s.open(_fpath.c_str(), _mode); + if (_s.fail()) + { + BOOST_THROW_EXCEPTION(cc::error::fstream() + << boost::errinfo_file_name(_fpath) + << boost::errinfo_errno(errno)); + } + } + private: std::ios_base::openmode _mode; - mutable std::fstream _f; std::string _fpath; + std::fstream _s; }; +} // namespace log + } // namespace cc -#endif // cclive_log_h +#endif // vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/main.cpp -> cclive-0.9.3.tar.xz/src/cc/main.cpp
Changed
@@ -1,50 +1,79 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2010-2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ +#include <ccinternal> + +#include <boost/exception/diagnostic_information.hpp> +#include <boost/exception/errinfo_file_name.hpp> +#include <boost/exception/get_error_info.hpp> +#include <boost/exception/errinfo_errno.hpp> + +#include <stdexcept> #include <iostream> +#include <clocale> #include <ccapplication> #include <ccquvi> +#include <ccoptions> +#include <ccutil> +#include <ccvar> using namespace cc; -int main(int argc, char *argv[]) +int main(int const argc, char const **argv) { - application app; - int rc = 0; // OK. - + setlocale(LC_ALL, ""); + application::exit_status es = application::ok; try { - rc = app.exec(argc,argv); + application app; + es = app.exec(argc, argv); } - - // Thrown by quvi::query constructor (e.g. quvi_init failure). + // --version, --help, etc. + catch (const cc::exit_program&) + { + // Fall through. + } + catch (const cc::error::no_input&) + { + std::clog << "error: no input URL" << std::endl; + es = application::error; + } + // Thrown by quvi::query constructor (e.g. quvi_init, quvi_new). catch (const quvi::error& e) { std::clog << "libquvi: error: " << e.what() << std::endl; + es = application::error; } - // Thrown by boost (e.g. cc::go_background failure). catch (const std::runtime_error& e) { std::clog << "error: " << e.what() << std::endl; + es = application::error; } - - return rc; + // Thrown by boost::program_options (cc::options). + catch (const boost::exception& x) + { + es = static_cast<application::exit_status>(cc::error::print(x)); + } + return es; } // vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/options.h -> cclive-0.9.3.tar.xz/src/cc/options.h
Changed
@@ -1,43 +1,792 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ -#ifndef cclive_options_h -#define cclive_options_h +#ifndef cc__options_h +#define cc__options_h + +#include <ccinternal> + +#include <boost/program_options/options_description.hpp> +#include <boost/program_options/positional_options.hpp> +#include <boost/program_options/variables_map.hpp> +#include <boost/program_options/parsers.hpp> +#include <boost/exception/diagnostic_information.hpp> +#include <boost/exception/errinfo_file_name.hpp> +#include <boost/exception/errinfo_errno.hpp> +#include <boost/exception/info.hpp> +#include <boost/algorithm/string/join.hpp> +#include <boost/noncopyable.hpp> +#include <boost/tuple/tuple.hpp> +#include <boost/filesystem.hpp> +#include <boost/foreach.hpp> +#include <boost/format.hpp> +#include <fstream> + +#include <ccerror> +#include <ccre> + +// Core + +#define OPT__CONFIG_FILE "config-file" +#define OPT__NO_DOWNLOAD "no-download" +#define OPT__BACKGROUND "background" + +// Core -- configurable + +#define OPT__TIMESTAMP "timestamp" +#define OPT__CONTINUE "continue" +#define OPT__STREAM "stream" +#define OPT__EXEC "exec" + +// Informative + +#define OPT__PRINT_STREAMS "print-streams" +#define OPT__PRINT_CONFIG "print-config" +#define OPT__SUPPORT "support" +#define OPT__VERSION "version" +#define OPT__HELP "help" + +// Output + +#define OPT__VERBOSE_LIBCURL "verbose-libcurl" +#define OPT__OUTPUT_FILE "output-file" +#define OPT__OVERWRITE "overwrite" +#define OPT__LOG_FILE "log-file" +#define OPT__QUIET "quiet" + +// Output -- configurable + +#define OPT__FILENAME_FORMAT "filename-format" +#define OPT__UPDATE_INTERVAL "update-interval" +#define OPT__PROGRESSBAR "progressbar" +#define OPT__OUTPUT_DIR "output-dir" +#define OPT__TR "tr" + +// Network + +#define OPT__NO_PROXY "no-proxy" + +// Network -- configurable + +#define OPT__DNS_CACHE_TIMEOUT "dns-cache-timeout" +#define OPT__TRANSFER_TIMEOUT "transfer-timeout" +#define OPT__CONNECT_TIMEOUT "connect-timeout" +#define OPT__MAX_RETRIES "max-retries" +#define OPT__RETRY_WAIT "retry-wait" +#define OPT__NO_RESOLVE "no-resolve" +#define OPT__THROTTLE "throttle" +#define OPT__AGENT "agent" +#define OPT__PROXY "proxy" -#include <boost/program_options.hpp> +// Deprecated -- configurable + +#define OPT__PREFER_FORMAT "prefer-format" + +// Hidden (positional) + +#define OPT__URL "url" namespace cc { -class options +namespace po = boost::program_options; +namespace fs = boost::filesystem; + +typedef std::vector<std::string> vs; +typedef std::ostream ostr; + +struct tr +{ + inline friend ostr& operator<<(ostr& o, const tr& r) { return o<<r.str(); } + explicit inline tr(const std::string& s) + { + try + { + std::string empty; + re::tr(s, empty); + } + catch (const cc::error::tuple& x) + { + cc::error::type_tuple const *t = + boost::get_error_info<cc::error::errinfo_tuple>(x); + + const std::string& w = boost::get<1>(*t); + + const std::string& m = + (boost::format("invalid option value: %1%: %2%") % s % w).str(); + + BOOST_THROW_EXCEPTION(cc::error::tuple() + << cc::error::errinfo_tuple(boost::make_tuple(OPT__TR, m))); + } + _str = s; + } + inline const std::string& str() const { return _str; } +private: + std::string _str; +}; + +typedef std::vector<tr> vtr; + +inline static void validate(boost::any& v, + const std::vector<std::string>& values, + tr*, int) +{ + po::validators::check_first_occurrence(v); + const std::string& s = po::validators::get_single_string(values); + v = boost::any(tr(s)); +} + +struct progressbar_mode +{ + typedef enum {normal, simple, dotline} mode_type; + + inline friend ostr& operator<<(ostr& o, const progressbar_mode& r) + { return o << r.str(); } + explicit inline progressbar_mode(const std::string& s) + : _mode(normal) + { + if (s == "normal") + _mode = normal; + else if (s == "dotline") + _mode = dotline; + else if (s == "simple") + _mode = simple; + else + { + const std::string& m = + (boost::format("invalid option value (`%1%')") % s).str(); + + BOOST_THROW_EXCEPTION(cc::error::tuple() + << cc::error::errinfo_tuple(boost::make_tuple(OPT__PROGRESSBAR,m))); + } + _str = s; + } + inline const std::string& str() const { return _str; } + inline mode_type value() const { return _mode; } +private: + std::string _str; + mode_type _mode; +}; + +inline static void validate(boost::any& v, + const std::vector<std::string>& values, + progressbar_mode*, int) +{ + po::validators::check_first_occurrence(v); + const std::string& s = po::validators::get_single_string(values); + v = boost::any(progressbar_mode(s)); +} + +struct integer +{ + inline friend ostr& operator<<(ostr& o, const integer& r) + { return o << r._value; } + inline int value() const { return _value; } +protected: + explicit inline integer(): _value(0) { } + inline static int cast(const std::string& optname, const std::string& s) + { + int r = 0; + try + { + r = boost::lexical_cast<int>(s); + } + catch (const boost::bad_lexical_cast&) + { + const std::string& m = (boost::format("invalid option value: " + "not an integer (`%1%')") + % s).str(); + integer::failed(optname, m); + } + return r; + } + inline static void failed(const std::string& optname, const std::string& m) + { + BOOST_THROW_EXCEPTION(cc::error::tuple() + << cc::error::errinfo_tuple(boost::make_tuple(optname, m))); + } + virtual void set(const std::string&, const std::string&) = 0; + virtual void set(const int, const std::string&) = 0; +protected: + int _value; +}; + +struct integer_ge0 : integer // integer is greater than or equal to 0 +{ +protected: + explicit inline integer_ge0(const std::string& optname,const std::string& s) + : integer() { set(optname, s); } + // _optname remains unset -- intended to be used by default_value only: + explicit inline integer_ge0(const int n): integer() { set(n); } +private: + inline void set(const std::string& optname, const std::string& s) + { set(integer::cast(optname, s), optname); } + inline void set(const int n, const std::string& optname="") + { + if (n <0) + { + const std::string& m = + (boost::format("invalid option value (%1% < 0)") % n).str(); + + integer::failed(optname, m); + } + _value = n; + } +}; + +struct dns_cache_timeout : integer_ge0 +{ + explicit inline dns_cache_timeout(int n): integer_ge0(n) { } + explicit inline dns_cache_timeout(const std::string& s) + : integer_ge0(OPT__DNS_CACHE_TIMEOUT, s) { } +}; + +struct transfer_timeout : integer_ge0 +{ + explicit inline transfer_timeout(int n): integer_ge0(n) { } + explicit inline transfer_timeout(const std::string& s) + : integer_ge0(OPT__TRANSFER_TIMEOUT, s) { } +}; + +struct connect_timeout : integer_ge0 +{ + explicit inline connect_timeout(int n): integer_ge0(n) { } + explicit inline connect_timeout(const std::string& s) + : integer_ge0(OPT__CONNECT_TIMEOUT, s) { } +}; + +struct max_retries : integer_ge0 +{ + explicit inline max_retries(int n): integer_ge0(n) { } + explicit inline max_retries(const std::string& s) + : integer_ge0(OPT__MAX_RETRIES, s) { } +}; + +struct retry_wait : integer_ge0 +{ + explicit inline retry_wait(int n): integer_ge0(n) { } + explicit inline retry_wait(const std::string& s) + : integer_ge0(OPT__RETRY_WAIT, s) { } +}; + +struct throttle : integer_ge0 +{ + explicit inline throttle(int n): integer_ge0(n) { } + explicit inline throttle(const std::string& s) + : integer_ge0(OPT__THROTTLE, s) { } +}; + +template <class T> +inline static void integer_helper(boost::any& v, + const std::vector<std::string>& values) +{ + po::validators::check_first_occurrence(v); + const std::string& s = po::validators::get_single_string(values); + v = boost::any(T(s)); +} + +inline static void validate(boost::any& v, + const std::vector<std::string>& values, + dns_cache_timeout*, int) +{ + integer_helper<dns_cache_timeout>(v, values); +} + +inline static void validate(boost::any& v, + const std::vector<std::string>& values, + transfer_timeout*, int) +{ + integer_helper<transfer_timeout>(v, values); +} + +inline static void validate(boost::any& v, + const std::vector<std::string>& values, + connect_timeout*, int) +{ + integer_helper<connect_timeout>(v, values); +} + +inline static void validate(boost::any& v, + const std::vector<std::string>& values, + max_retries*, int) +{ + integer_helper<max_retries>(v, values); +} + +inline static void validate(boost::any& v, + const std::vector<std::string>& values, + retry_wait*, int) +{ + integer_helper<retry_wait>(v, values); +} + +inline static void validate(boost::any& v, + const std::vector<std::string>& values, + throttle*, int) { - friend std::ostream& operator<<(std::ostream&, const options&); -public: - const boost::program_options::variables_map& map() const; - void exec(int argc, char **argv); + integer_helper<throttle>(v, values); +} + +struct integer_gt0 : integer // integer is greater than 0 +{ +protected: + explicit inline integer_gt0(const std::string& optname,const std::string& s) + : integer() { set(optname, s); } + // _optname remains unset -- intended to be used by default_value only: + explicit inline integer_gt0(const int n): integer() { set(n); } +private: + inline void set(const std::string& optname, const std::string& s) + { set(integer::cast(optname, s), optname); } + inline void set(const int n, const std::string& optname="") + { + if (n <=0) + { + const std::string& m = + (boost::format("invalid option value (%1% < 1)") % n).str(); + + integer::failed(optname, m); + } + _value = n; + } +}; + +struct update_interval : integer_gt0 +{ + explicit inline update_interval(int n): integer_gt0(n) { } + explicit inline update_interval(const std::string& s) + : integer_gt0(OPT__UPDATE_INTERVAL, s) { } +}; + +inline static void validate(boost::any& v, + const std::vector<std::string>& values, + update_interval*, int) +{ + integer_helper<update_interval>(v, values); +} + +struct options : boost::noncopyable +{ + explicit inline options(int const argc, char const **argv) + { + fs::path cwd(fs::current_path()); + fs::path fpath(cwd); + + const char *h = getenv("HOME"); + if (h && strlen(h) >0) + fpath = fs::system_complete(fs::path(h) / ".ccliverc"); + + const std::string default_config = fpath.string(); + std::string config; + + po::options_description podc("Core"); + + podc.add_options() + (OPT__CONFIG_FILE",F", + po::value<std::string>(&config)->default_value(fpath.string()), + "Initialization file to read") + (OPT__NO_DOWNLOAD",n", + po::bool_switch(), + "Skip download, print media details only") +#if defined(HAVE_WORKING_FORK) || defined(HAVE_WORKING_VFORK) + (OPT__BACKGROUND",b", + po::bool_switch(), + "Go to background after startup") +#endif + ; + + po::options_description podcc("Core -- Configurable"); + + podcc.add_options() + (OPT__TIMESTAMP",N", + po::bool_switch(), + "Try to preserve file modification time") + (OPT__CONTINUE",c", + po::bool_switch(), + "Try to resume partially downloaded media") + (OPT__STREAM",s", + po::value<std::string>()->default_value("default"), + "Select media stream to download") + (OPT__EXEC",e", + po::value<vs>(), "Execute child program after download") + ; + + po::options_description podi("Informative"); + + podi.add_options() + (OPT__PRINT_STREAMS",S", + po::bool_switch(), + "Print available media streams for media URL") + (OPT__PRINT_CONFIG",D", + po::bool_switch(), + "Print value of defined config options and exit") + (OPT__SUPPORT",u", + po::value<bool>()->zero_tokens()->implicit_value(true) + ->notifier(print_support), + "Print supported media host domains and exit") + (OPT__VERSION",v", + po::value<bool>()->zero_tokens()->implicit_value(true) + ->notifier(print_version), + "Print version information and exit") + (OPT__HELP",h", + po::bool_switch(), + "Print help and exit") + ; + + po::options_description podo("Output"); + + podo.add_options() + (OPT__VERBOSE_LIBCURL",B", + po::bool_switch(), + "Enable verbose output for libcurl") + (OPT__OUTPUT_FILE",O", + po::value<std::string>(), + "Write downloaded media to file") + (OPT__OVERWRITE",W", + po::bool_switch(), + "Overwrite existing files") + (OPT__LOG_FILE",l", + po::value<std::string>()->default_value("cclive_log"), + "Write log output to file") + (OPT__QUIET",q", + po::bool_switch(), + "Turn off all output but errors/libcurl") + ; + + po::options_description podoc("Output -- Configurable"); + + const vtr _default_tr = default_tr(); + + podoc.add_options() + (OPT__FILENAME_FORMAT",f", + po::value<std::string>()->default_value("%t.%s"), + "Format of media file name") + (OPT__UPDATE_INTERVAL",i", + po::value<update_interval>()->default_value(update_interval(1)), + "Progressbar update interval in seconds") + (OPT__PROGRESSBAR",R", + po::value<progressbar_mode>() + ->default_value(progressbar_mode("normal")), + "Use progressbar mode") + (OPT__OUTPUT_DIR",d", + po::value<std::string>()->default_value(cwd.string()), + "Write downloaded media to directory") + (OPT__TR",t", + po::value<vtr>() + ->default_value(_default_tr, _default_tr[0].str()), + "Translate characters in media title") + ; + + po::options_description podn("Network"); + + podn.add_options() + (OPT__NO_PROXY",X", + po::bool_switch(), + "Disable use of HTTP proxy") + ; + + po::options_description podnc("Network -- Configurable"); + + podnc.add_options() + (OPT__DNS_CACHE_TIMEOUT",A", + po::value<dns_cache_timeout>()->default_value(dns_cache_timeout(60)), + "Seconds DNS resolves kept in memory") + (OPT__TRANSFER_TIMEOUT",T", + po::value<transfer_timeout>()->default_value(transfer_timeout(0),"off"), + "Seconds transfer allowed to take") + (OPT__CONNECT_TIMEOUT",C", + po::value<connect_timeout>()->default_value(connect_timeout(30)), + "Seconds connecting allowed to take") + (OPT__MAX_RETRIES",m", + po::value<max_retries>()->default_value(max_retries(5)), + "Max download attempts before giving up") + (OPT__RETRY_WAIT",w", + po::value<retry_wait>()->default_value(retry_wait(5)), + "Time to wait before retrying") + (OPT__NO_RESOLVE",r", + po::bool_switch(), + "Do not resolve HTTP URL redirections") + (OPT__THROTTLE",H", + po::value<throttle>()->default_value(throttle(0),"off"), + "Do not exceed transfer rate (KB/s)") + (OPT__AGENT",a", + po::value<std::string>()->default_value("Mozilla/5.0"), + "Identify as arg to HTTP servers") + (OPT__PROXY",x", + po::value<std::string>(), + "Use proxy for HTTP connections") + ; + + po::options_description poddc("Deprecated -- Configurable"); + + poddc.add_options() + (OPT__PREFER_FORMAT",p", + po::value<vs>(), + "Specify preferred stream for media hosts") + ; + + // Visible. + + po::options_description podv; + podv.add(podc).add(podcc).add(podi).add(podo).add(podoc) + .add(podn).add(podnc).add(poddc); + + // Hidden. + + po::options_description podh; + podh.add_options()(OPT__URL, po::value<vs>()); + + // Command line. + + po::options_description podl; + podl.add(podv).add(podh); + + // Config. + + po::options_description podf; + podf.add(podcc).add(podoc).add(podnc).add(poddc); + + // URL. + + po::positional_options_description ppod; + ppod.add(OPT__URL, -1); + + try + { + store(po::command_line_parser(argc, argv) + .options(podl).positional(ppod).run(), _vm); + notify(_vm); + } +#ifdef HAVE_BUG__BOOST_PO__MULTIPLE_OCCURRENCES + catch (const po::multiple_occurrences& x) + { + BOOST_THROW_EXCEPTION(cc::error::tuple() + << cc::error::errinfo_tuple( + boost::make_tuple(x.get_option_name(), x.what()))); + } +#endif + catch (...) + { + throw; + } + + if_optsw_given(_vm, OPT__HELP) + { + std::cout + << boost::format("Usage: %1% [options] [args]") % PACKAGE_NAME + << "\n" << podv << std::endl; + BOOST_THROW_EXCEPTION(cc::exit_program()); + } + + fpath = fs::system_complete(config); + + std::ifstream ifs(fpath.string().c_str()); + if (ifs) + { + try + { + store(parse_config_file(ifs, podf), _vm); + notify(_vm); + } +#ifdef HAVE_BUG__BOOST_PO__MULTIPLE_OCCURRENCES + catch (const po::multiple_occurrences& x) + { + BOOST_THROW_EXCEPTION(cc::error::tuple() + << cc::error::errinfo_tuple( + boost::make_tuple(x.get_option_name(), x.what())) + << boost::errinfo_file_name(fpath.string())); + } +#endif + catch (const boost::exception& x) + { + x << boost::errinfo_file_name(fpath.string()); + throw; + } + } + else + { + // Unless this is the default config, raise an error if open failed. + if (default_config != fpath) + { + BOOST_THROW_EXCEPTION(cc::error::config() + << boost::errinfo_file_name(fpath.string()) + << boost::errinfo_errno(errno)); + } + } + + if_optsw_given(_vm, OPT__PRINT_CONFIG) + dump(); + + chk_depr(); + } + + inline const po::variables_map& values() const { return _vm; } + private: - void _validate(); + inline void dump() + { + for (po::variables_map::iterator i = _vm.begin(); i != _vm.end(); ++i) + { + const po::variable_value &v = i->second; + + if (v.empty()) + continue; + + const std::type_info &t = v.value().type(); + bool nl = true; + + if (t == typeid(bool)) + { + std::cout << boost::format("%1% is %2%") + % i->first + % ((v.as<bool>() ? "set" : "unset")); + } + else if (t == typeid(vs)) + { + const vs& values = v.as<vs>(); + BOOST_FOREACH(const std::string& s, values) + std::cout << i->first << "=" << s << "\n"; + nl = false; + } + else if (t == typeid(vtr)) + { + const vtr& values = v.as<vtr>(); + BOOST_FOREACH(const tr& r, values) + std::cout << i->first << "=" << r << "\n"; + nl = false; + } + else + { + std::cout << i->first << "="; + if (t == typeid(dns_cache_timeout)) + std::cout << v.as<dns_cache_timeout>(); + else if (t == typeid(progressbar_mode)) + std::cout << v.as<progressbar_mode>(); + else if (t == typeid(transfer_timeout)) + std::cout << v.as<transfer_timeout>(); + else if (t == typeid(update_interval)) + std::cout << v.as<update_interval>(); + else if (t == typeid(connect_timeout)) + std::cout << v.as<connect_timeout>(); + else if (t == typeid(max_retries)) + std::cout << v.as<max_retries>(); + else if (t == typeid(retry_wait)) + std::cout << v.as<retry_wait>(); + else if (t == typeid(std::string)) + std::cout << v.as<std::string>(); + else if (t == typeid(throttle)) + std::cout << v.as<throttle>(); + else if (t == typeid(double)) + std::cout << v.as<double>(); + else if (t == typeid(int)) + std::cout << v.as<int>(); + else if (t == typeid(tr)) + std::cout << v.as<tr>(); + else + std::cout << "skipped: an unknown option type"; + } + + if (!nl) + std::cout << std::flush; + else + std::cout << std::endl; + } + BOOST_THROW_EXCEPTION(cc::exit_program()); + } + + inline static void depr_msg(const std::string& depr_optname, + const std::string& repl_optname) + { + std::clog << boost::format("[!] Option `--%1%' is deprecated and " + "will be removed later") % depr_optname; + if (repl_optname.length() >0) + { + std::clog << boost::format("\n[!] Consider using the option " + "`--%1%', instead") % repl_optname; + } + std::clog << std::endl; + } + +#define if_given(o) if (_vm.count(o)) +#define was_given_norepl(o) if_given(o) depr_msg(o,"") +#define was_given(o,r) if_given(o) depr_msg(o,r) + inline void chk_depr() + { +#ifdef HAVE_LIBQUVI_0_9 + was_given("prefer-format", "stream"); +#endif + } +#undef was_given_norepl +#undef was_given +#undef if_given + + inline static void print_version(const bool&) + { + std::cout << PACKAGE_NAME" " +#ifdef VN + << VN +#else + << PACKAGE_VERSION +#endif + << "\n built on " << BUILD_TIME + << " for " << CANONICAL_TARGET + << "\n with " << CXX", "CXXFLAGS + << "\n libquvi " << quvi::version() + << "\n libquvi-scripts " + << quvi_version(QUVI_VERSION_SCRIPTS) + << std::endl; + + static const char copyr[] = + "\nCopyright (C) 2010-2013 Toni Gundogdu <legatvs@gmail.com>\n" + PACKAGE_NAME + " comes with ABSOLUTELY NO WARRANTY. You may redistribute copies of\n" + PACKAGE_NAME + " under the terms of the GNU Affero General Public License version\n" + "3 or later. For more information, see " + "<http://www.gnu.org/licenses/agpl.html>.\n\n" + "To contact the developers, please mail to " + "<cclive-devel@lists.sourceforge.net>"; + + std::cerr << copyr << std::endl; + BOOST_THROW_EXCEPTION(cc::exit_program()); + } + + inline static void print_support(const int&) + { + quvi::query q; + std::cout << quvi::support_to_s(q.support()) << std::flush; + BOOST_THROW_EXCEPTION(cc::exit_program()); + } + + static vtr default_tr() + { + vtr r; + r.push_back(tr("/(\\w|\\pL|\\s)/g")); + return r; + } + private: - boost::program_options::options_description _visible; - boost::program_options::variables_map _map; + po::variables_map _vm; }; } // namespace cc -#endif // cclive_options_h +#endif // cc__options_h // vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/progressbar.h -> cclive-0.9.3.tar.xz/src/cc/progressbar.h
Changed
@@ -1,74 +1,362 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ -#ifndef cclive_progressbar_h -#define cclive_progressbar_h +#ifndef cc__progressbar_h +#define cc__progressbar_h + +#include <ccinternal> + +#include <boost/date_time/posix_time/posix_time.hpp> +#include <boost/format.hpp> -#include <ccfile> +#include <ccsig> +#include <cclog> namespace cc { -class progressbar +static inline std::string ieee_1541_symbol(double& n) +{ + typedef enum {Ki=1024, Mi=1048576, Gi=1073741824} ieee_1541; + int i = 0; + if (n >=Gi) + { + n /= Gi; + i = 2; + } + else if (n >=Mi) + { + n /= Mi; + i = 1; + } + else + n /= Ki; +#define _s(n) #n + static const char *r[] = {_s(Ki), _s(Mi), _s(Gi), NULL}; +#undef _s + return r[i]; +} + +namespace po = boost::program_options; +namespace pt = boost::posix_time; + +struct progressbar : boost::noncopyable { - enum { default_term_width=80 }; -public: - enum mode { normal = 0, dotline, simple }; -public: - progressbar(const file&, - const quvi::url&, - const boost::program_options::variables_map&); - void update(double); - void finish(); + progressbar(const po::variables_map& vm, const quvi::media& qm, + const double initial_length) + { + _length_bytes.content = qm.content_length(); + _length_bytes.initial = initial_length; + + _cntrs.time_started = pt::microsec_clock::universal_time(); + _cntrs.bytes_received = 0; + _cntrs.num_dots = 0; + + _flags.failed = false; + _flags.done = false; + + _opts.update_interval = + vm[OPT__UPDATE_INTERVAL].as<update_interval>().value(); + + ifn_optsw_given(vm, OPT__BACKGROUND) + _opts.mode = vm[OPT__PROGRESSBAR].as<cc::progressbar_mode>().value(); + else + _opts.mode = cc::progressbar_mode::dotline; + } + + inline virtual ~progressbar() { finish(); } + + inline int update(double dlnow) + { + if (dlnow ==0 || _flags.failed) + return 0; + + const pt::time_duration& td = + pt::microsec_clock::universal_time() - _cntrs.time_started; + + if (_flags.done) + dlnow = _length_bytes.content; + else + { + const double diff = + td.total_microseconds() - _cntrs.last_update.total_microseconds(); + + if (diff < (_opts.update_interval*1e+6)) + return 0; + } + + double elapsed = td.total_seconds(); + if (elapsed ==0) + elapsed = 1e+4; + + const bool inactive = (dlnow ==0); + double rate = (elapsed >0) ? (dlnow/elapsed):0; + + std::string eta, rate_symbol; + if (! inactive) + { + if (! _flags.done) + { + const double left = + (_length_bytes.content - (dlnow + _length_bytes.initial)) /rate; + eta = eta_from_seconds(left+.5); + } + else + { + rate = (_length_bytes.content - _length_bytes.initial) / elapsed; + eta = eta_from_seconds(elapsed); + } + rate_symbol = ieee_1541_symbol(rate); + } + else + { + rate_symbol = "--.-"; + eta = "--:--"; + } + + double size = dlnow; + if (! _flags.done) + size += _length_bytes.initial; + + int percent = 0; + if (_length_bytes.content >0) + { + percent = (100.0 * size / _length_bytes.content); + if (percent >= 100) + percent = 100; + } + + _cntrs.bytes_received = dlnow; + _cntrs.last_update = td; + + switch (_opts.mode) + { + case cc::progressbar_mode::dotline: + return render_dotline(rate_symbol, eta, percent, rate, size); + case cc::progressbar_mode::simple: + return render_simple(percent, size); + case cc::progressbar_mode::normal: + default: + return render_normal(rate_symbol, eta, percent, rate, size); + } + } + + inline bool print_error(const long resp_code, const CURLcode rc, + std::string& errmsg) + { + _flags.failed = true; + + // Do not retry if this is an "unrecoverable" error. + if (resp_code >= 400 && resp_code <= 500) + { + clear_line(errmsg); + BOOST_THROW_EXCEPTION(std::runtime_error(errmsg)); + } + + bool r = false; // Retry by default. + if (rc == 42) // 42=Operation aborted by callback (libcurl). + { + errmsg = "sigusr1 received: interrupt current download"; + r = true; // Skip - do not attempt to retry. + } + + cc::log << clear_line((boost::format("error: %s") % errmsg).str()) + << std::endl; + + return r; + } + private: - void _normal(const std::stringstream& size_s, - const std::stringstream& rate_s, - const std::stringstream& eta_s, - const int percent, - const std::stringstream& percent_s); - - void _dotline(const std::stringstream& size_s, - const std::stringstream& rate_s, - const std::stringstream& eta_s, - const std::stringstream& percent_s); - - void _simple(const std::stringstream& size_s, - const std::stringstream& percent_s) const; - - void _render_meter(std::stringstream& bar, - const int percent, - const size_t space_left); + inline void finish() + { + if (_length_bytes.content >0 + && ((_cntrs.bytes_received + _length_bytes.initial) + >_length_bytes.content)) + { + _length_bytes.content = _length_bytes.initial + _cntrs.bytes_received; + } + + if (! _flags.failed) + { + _flags.done = true; + update(-1); + } + } + + inline void dotline_render_dot() const + { cc::log << "." << ( (_cntrs.num_dots%3 ==0) ? " ":"") << std::flush; } + + inline void dotline_render_info(const std::string& rate_symbol, + const std::string& eta, + const double percent, + const double rate, + double size, + const bool nl=false) const + { + const std::string& size_symbol = ieee_1541_symbol(size); + + const std::string& s = + (boost::format(" %6.1f%s %6.1f%s/s %4s %3.0f%%%s") + % size + % size_symbol + % rate + % rate_symbol + % eta + % percent + % (nl ? "\n":"") + ).str(); + + cc::log << s << std::flush; + } + + inline int render_dotline(const std::string& rate_symbol, + const std::string& eta, + const double percent, + const double rate, + double size) + { + ++_cntrs.num_dots; + + if (_flags.done) + { + while (_cntrs.num_dots < 31) + { + dotline_render_dot(); + ++_cntrs.num_dots; + } + dotline_render_info(rate_symbol, eta, percent, rate, size); + return 0; + } + + if (_cntrs.num_dots >= 31) + { + dotline_render_info(rate_symbol, eta, percent, rate, size, true); + _cntrs.num_dots = 0; + } + else + dotline_render_dot(); + + return 0; + } + + inline int render_simple(const double percent, double size) const + { + const std::string& size_symbol = ieee_1541_symbol(size); + + const std::string& s = + (boost::format(" %3.0f%% %6.1f%s received\r") + % percent + % size + % size_symbol + ).str(); + + cc::log << s << std::flush; + return 0; + } + + inline int render_normal(const std::string& rate_symbol, + const std::string& eta, + const double percent, + const double rate, + double size) const + { + const std::string& size_symbol = ieee_1541_symbol(size); + + const std::string& s = + (boost::format(" %3.0f%% %6.1f%s %6.1f%s/s %4s") + % percent + % size + % size_symbol + % rate + % rate_symbol + % eta + ).str(); + + const long l = s.length(); + size_t term_width; + + const size_t space_left = cc::sig::calc_term_spaceleft(l, term_width); + if (term_width > space_left) + { + cc::log << render_meter(percent, space_left) + << s << (_flags.done ? "\n":"\r") + << std::flush; + } + return 0; + } + + static inline std::string render_meter(const double percent, + const long space_left) + { + std::ostringstream o; + o << ("["); + const int m = static_cast<int>(space_left * percent / 100.0); + for (int i=0; (o.tellp() < space_left); ++i) + o << (i<m ? "#" : "-"); + o << "]"; + return o.str(); + } + + static inline std::string eta_from_seconds(const double s) + { + const pt::time_duration& td = pt::seconds(s); + return pt::to_simple_string(td); + } + + static inline const std::string& clear_line(const std::string& errmsg) + { + const long term_width = cc::sig::query_term_width(); + std::ostringstream o; + for (int i=0; (o.tellp() < term_width); ++i) + o << " "; + cc::log << o.str() << "\r" << std::flush; + return errmsg; + } + private: - double _update_interval; - double _expected_bytes; - double _initial_bytes; - time_t _time_started; - time_t _last_update; - size_t _term_width; - int _dot_count; - double _count; - size_t _width; - file _file; - bool _done; - mode _mode; + struct + { + double content; // total media content length + double initial; // >0 if a resumed transfer + } _length_bytes; + struct + { + cc::progressbar_mode::mode_type mode; + int update_interval; + } _opts; + struct + { + pt::time_duration last_update; + pt::ptime time_started; + double bytes_received; + int num_dots; + } _cntrs; + struct + { + bool failed; + bool done; + } _flags; }; -} // cclive namespace +} // namespace cc -#endif // cclive_progressbar_h +#endif // cc__progressbar_h // vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/re.cpp -> cclive-0.9.3.tar.xz/src/cc/re.cpp
Changed
@@ -1,32 +1,47 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2010,2011,2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ -#include <sstream> +#include <ccinternal> #include <boost/format.hpp> #include <pcrecpp.h> +#include <ccerror> #include <ccre> namespace cc { + namespace re { +static void chk_err(const pcrecpp::RE& re) +{ + if (re.error().length() >0) + { + BOOST_THROW_EXCEPTION(cc::error::tuple() + << cc::error::errinfo_tuple( + boost::make_tuple(re.pattern(), re.error()))); + } +} + static pcrecpp::RE_Options _init_re_opts(const std::string& flags) { pcrecpp::RE_Options opts; @@ -55,6 +70,7 @@ pcrecpp::RE_Options opts = _init_re_opts(flags); pcrecpp::RE subs(pat, opts); + chk_err(subs); (strstr(flags.c_str(), "g")) ? subs.GlobalReplace(sub, &src) @@ -78,8 +94,10 @@ pcrecpp::RE_Options opts = _init_re_opts(flags); if (strstr(flags.c_str(), "g") != 0) { - pcrecpp::StringPiece sp(src); + std::string orig(src); + pcrecpp::StringPiece sp(orig); pcrecpp::RE re(pat, opts); + chk_err(re); src.clear(); std::string s; @@ -90,7 +108,9 @@ { std::string tmp = src; src.clear(); - pcrecpp::RE(pat, opts).PartialMatch(tmp, &src); + pcrecpp::RE re(pat, opts); + chk_err(re); + re.PartialMatch(tmp, &src); } return true; } @@ -99,19 +119,25 @@ bool grep(const std::string& r, const std::string& s) { - return pcrecpp::RE(r, pcrecpp::UTF8()).PartialMatch(s); + pcrecpp::RE re(r, pcrecpp::UTF8()); + chk_err(re); + return re.PartialMatch(s); } static void tr_subst(const std::string& r, std::string& s) { - pcrecpp::RE rx("^s\\/(.*)\\/(.*)\\/(.*)$", pcrecpp::UTF8()); + static const char pattern[] = "^s\\/(.*)\\/(.*)\\/(.*)$"; + + pcrecpp::RE rx(pattern, pcrecpp::UTF8()); std::string pat, sub, flags; - if (!rx.PartialMatch(r, &pat, &sub, &flags)) + if (! rx.PartialMatch(r, &pat, &sub, &flags)) { - std::stringstream b; - b << "--tr: " << "no idea what to do with `" << r << "'"; - throw std::runtime_error(b.str()); + const std::string& m = + (boost::format("nothing matched `%1%'") % pattern).str(); + + BOOST_THROW_EXCEPTION(cc::error::tuple() + << cc::error::errinfo_tuple(boost::make_tuple(r, m))); } if (s.empty()) // Validate regexp only. @@ -119,6 +145,7 @@ pcrecpp::RE_Options o = _init_re_opts(flags); pcrecpp::RE subs(pat, o); + chk_err(subs); (strstr(flags.c_str(), "g")) ? subs.GlobalReplace(sub, &s) @@ -127,14 +154,18 @@ static void tr_filter(const std::string& r, std::string& s) { - pcrecpp::RE rx("^\\/(.*)\\/(.*)$", pcrecpp::UTF8()); + static const char pattern[] = "^\\/(.*)\\/(.*)$"; + + pcrecpp::RE rx(pattern, pcrecpp::UTF8()); std::string pat, flags; - if (!rx.PartialMatch(r, &pat, &flags)) + if (! rx.PartialMatch(r, &pat, &flags)) { - std::stringstream b; - b << "--tr: " << "no idea what to do with `" << r << "'"; - throw std::runtime_error(b.str()); + const std::string& m = + (boost::format("nothing matched `%1%'") % pattern).str(); + + BOOST_THROW_EXCEPTION(cc::error::tuple() + << cc::error::errinfo_tuple(boost::make_tuple(r, m))); } if (s.empty()) // Validate regexp only. @@ -144,20 +175,24 @@ if (strstr(flags.c_str(), "g") != 0) { - pcrecpp::StringPiece sp(s); + std::string orig(s); + pcrecpp::StringPiece sp(orig); s.clear(); - rx = pcrecpp::RE(pat, o); + pcrecpp::RE re(pat, o); + chk_err(re); std::string tmp; - while (rx.FindAndConsume(&sp, &tmp)) + while (re.FindAndConsume(&sp, &tmp)) s += tmp; } else { std::string tmp = s; s.clear(); - pcrecpp::RE(pat, o).PartialMatch(tmp, &s); + pcrecpp::RE re(pat, o); + chk_err(re); + re.PartialMatch(tmp, &s); } }
View file
cclive-0.7.9.tar.bz2/src/cc/re.h -> cclive-0.9.3.tar.xz/src/cc/re.h
Changed
@@ -1,18 +1,21 @@ /* cclive * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ #ifndef cclive_re_h
View file
cclive-0.9.3.tar.xz/src/cc/sig.h
Added
@@ -0,0 +1,129 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef cc__sig_h +#define cc__sig_h + +#include <boost/noncopyable.hpp> +#include <boost/scoped_ptr.hpp> +#include <sys/ioctl.h> +#include <sys/types.h> +#include <unistd.h> +#include <csignal> +#include <cstdio> + +namespace cc +{ + +namespace var +{ +extern volatile sig_atomic_t recv_sigwinch; +extern volatile sig_atomic_t recv_sigusr1; +extern size_t max_width; +} + +namespace sig +{ + +namespace cv = cc::var; + +static inline void default_handler(int n) +{ + switch (n) + { + case SIGWINCH: + cv::recv_sigwinch = 1; + break; + case SIGUSR1: + cv::recv_sigusr1 = 1; + break; + default: + std::clog << __PRETTY_FUNCTION__ << ": warning: unhandled signal `" + << n << "'" << std::endl; + } +} + +static inline size_t query_term_width() +{ + struct winsize w; + if (ioctl(fileno(stderr), TIOCGWINSZ, &w) <0) + return 0; + return w.ws_col; +} + +static inline size_t calc_term_spaceleft(const size_t len, size_t& curr_width) +{ + static const size_t default_term_width = 80; + if (cv::max_width ==0 || cv::recv_sigwinch ==1) + { + cv::max_width = query_term_width(); + if (cv::max_width ==0) + cv::max_width = default_term_width; + } + curr_width = cv::max_width; + return (cv::max_width-len-1); +} + +static inline size_t calc_term_spaceleft(const size_t len) +{ + size_t curr; + return calc_term_spaceleft(len, curr); +} + +} // namespace sig + +template<int T> +struct sighandler : boost::noncopyable +{ + inline virtual ~sighandler() { reset(); } + inline sighandler() { setup(); } +private: + inline void setup() + { + ours.sa_handler = cc::sig::default_handler; + sigemptyset(&ours.sa_mask); + ours.sa_flags = 0; + + sigaction(T, NULL, &theirs); + + if (theirs.sa_handler != SIG_IGN) + sigaction(T, &ours, NULL); + } + inline void reset() const + { + if (theirs.sa_handler != SIG_IGN) + sigaction(T, &theirs, NULL); + } +private: + struct sigaction theirs; + struct sigaction ours; +}; + +typedef struct sighandler<SIGWINCH> type_sigwinch; +typedef struct sighandler<SIGUSR1> type_sigusr1; + +typedef boost::scoped_ptr<type_sigwinch> sigwinch_handler_scptr; +typedef boost::scoped_ptr<type_sigusr1> sigusr1_handler_scptr; + +} // namespace cc + +#endif // cc__sigwinch_h + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/util.h -> cclive-0.9.3.tar.xz/src/cc/util.h
Changed
@@ -1,18 +1,21 @@ /* cclive - * Copyright (C) 2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2011-2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ #ifndef cclive_util_h @@ -20,33 +23,22 @@ namespace boost { -namespace program_options -{ -class variables_map; -} + namespace program_options + { + class variables_map; + } } -namespace quvi -{ -class query; -class media; -class url; -} // namespace quvi - namespace cc { -class nothing_todo_error { -public: - nothing_todo_error() { } -}; - +namespace po = boost::program_options; class file; -void exec(const file&, const boost::program_options::variables_map& map); -void get(const quvi::query&, - quvi::media&, - const boost::program_options::variables_map& map); +void get(quvi::media&, void*, const po::variables_map&); +void exec(const file&, const po::variables_map&); +void curl_setup(void*, const po::variables_map&); + void go_background(const std::string&, bool&); std::string perror(const std::string& p=""); void wait(const int);
View file
cclive-0.9.3.tar.xz/src/cc/var.h
Added
@@ -0,0 +1,40 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef cc__var_h +#define cc__var_h + +#include <boost/iostreams/filtering_stream.hpp> +#include <csignal> + +namespace cc +{ + boost::iostreams::filtering_ostream log; + namespace var + { + volatile sig_atomic_t recv_sigwinch = 0; + volatile sig_atomic_t recv_sigusr1 = 0; + size_t max_width = 0; + } // namespace sig +} // namespace cc + +#endif // cc__var_h + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.7.9.tar.bz2/src/cc/wait.cpp -> cclive-0.9.3.tar.xz/src/cc/wait.cpp
Changed
@@ -1,18 +1,21 @@ /* cclive - * Copyright (C) 2010-2011 Toni Gundogdu <legatvs@gmail.com> + * Copyright (C) 2010-2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. * * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. */ #include <ccinternal> @@ -28,8 +31,9 @@ #define sleep(n) Sleep(n*1000) #endif -#include <cclog> +#include <ccquvi> #include <ccutil> +#include <cclog> namespace cc {
View file
cclive-0.9.3.tar.xz/src/ccerror
Added
@@ -0,0 +1,1 @@ +#include "cc/error.h"
View file
cclive-0.9.3.tar.xz/src/ccfstream
Added
@@ -0,0 +1,1 @@ +#include "cc/fstream.h"
View file
cclive-0.9.3.tar.xz/src/ccinput
Added
@@ -0,0 +1,1 @@ +#include "cc/input.h"
View file
cclive-0.7.9.tar.bz2/src/ccquvi -> cclive-0.9.3.tar.xz/src/ccquvi
Changed
@@ -1,1 +1,43 @@ -#include "quvi/ccquvi.h" +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef ccquvi +#define ccquvi + +#include "config.h" + +#include <vector> +#include <string> +#include <map> + +#ifdef HAVE_LIBQUVI_0_9 +#include <quvi.h> +#else +#include <quvi/quvi.h> +#endif + +#include <compat/options.h> +#include <compat/media.h> +#include <compat/error.h> +#include <compat/query.h> +#include <compat/util.h> +#endif // ccquvi + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/ccsig
Added
@@ -0,0 +1,1 @@ +#include "cc/sig.h"
View file
cclive-0.9.3.tar.xz/src/ccvar
Added
@@ -0,0 +1,1 @@ +#include "cc/var.h"
View file
cclive-0.9.3.tar.xz/src/compat
Added
+(directory)
View file
cclive-0.9.3.tar.xz/src/compat/error.h
Added
@@ -0,0 +1,136 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef compat_error_h +#define compat_error_h + +namespace quvi +{ + +class error_base +{ + virtual void _init(quvi_t) = 0; +public: + virtual bool cannot_retry() const = 0; + virtual std::string to_s() const = 0; +protected: + inline virtual ~error_base() { } +}; + +class error_impl : error_base +{ +protected: + inline error_impl(const error_impl& a): _resp_code(0), _quvi_code(0) + { + _copy(a); + } + inline error_impl(): _resp_code(0), _quvi_code(0) { } + inline virtual ~error_impl() { } + inline error_impl& operator=(const error_impl& a) + { + if (this != &a) + _copy(a); + return *this; + } + inline void _copy(const error_impl& a) + { + _resp_code = a._resp_code; + _quvi_code = a._quvi_code; + _what = a._what; + } +public: + inline const std::string& what() const + { + return _what; + } + inline long response_code() const + { + return _resp_code; + } + inline long quvi_code() const + { + return _quvi_code; + } +protected: + std::string _what; + long _resp_code; + long _quvi_code; +}; + +class error_pt4 : public error_impl +{ + void _init(quvi_t); +public: + inline error_pt4(): error_impl() { } + inline error_pt4(const error_pt4& a): error_impl(a) { } + inline ~error_pt4() { } + inline error_pt4(quvi_t q, const long qc): error_impl() + { + _quvi_code = qc; + _init(q); + } + inline error_pt4& operator=(const error_pt4& a) + { + if (this != &a) + _copy(a); + return *this; + } + inline bool cannot_retry() const + { + return (_resp_code >= 400 || _quvi_code != QUVI_OK); + } + std::string to_s() const; +}; + +class error_pt9 : public error_impl +{ + void _init(quvi_t); +public: + inline error_pt9(): error_impl() { } + inline error_pt9(const error_pt9& a): error_impl(a) { } + inline ~error_pt9() { } + inline error_pt9(quvi_t q, const long qc=-1): error_impl() + { + _init(q); // Sets _quvi_code + } + inline error_pt9& operator=(const error_pt9& a) + { + if (this != &a) + _copy(a); + return *this; + } + inline bool cannot_retry() const + { + return (_resp_code >= 400 || _quvi_code != QUVI_OK); + } + std::string to_s() const; +}; + +#ifdef HAVE_LIBQUVI_0_9 +typedef class error_pt9 error; +#else +typedef class error_pt4 error; +#endif + +} // namespace quvi + +#endif // compat_error_h + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/compat/error_pt4.cpp
Added
@@ -0,0 +1,43 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#include <boost/format.hpp> +#include <ccquvi> + +namespace quvi +{ + +void error_pt4::_init(quvi_t q) +{ + _what = quvi_strerror(q, static_cast<QUVIcode>(_quvi_code)); + quvi_getinfo(q, QUVIINFO_RESPONSECODE, &_resp_code); +} + +std::string error_pt4::to_s() const +{ + return (boost::format("what=%s, resp_code=%ld, quvi_code=%ld") + % _what.c_str() + % _resp_code + % _quvi_code).str(); +} + +} // namespace quvi + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/compat/error_pt9.cpp
Added
@@ -0,0 +1,44 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#include <boost/format.hpp> +#include <ccquvi> + +namespace quvi +{ + +void error_pt9::_init(quvi_t q) +{ + _what = quvi_errmsg(q); + quvi_get(q, QUVI_INFO_RESPONSE_CODE, &_resp_code); + _quvi_code = quvi_errcode(q); +} + +std::string error_pt9::to_s() const +{ + return (boost::format("what=%s, resp_code=%ld, quvi_code=%ld") + % _what.c_str() + % _resp_code + % _quvi_code).str(); +} + +} // namespace quvi + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/compat/media.h
Added
@@ -0,0 +1,113 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef compat_media_h +#define compat_media_h + +namespace quvi { + +class media_base +{ + virtual void _init(quvi_t, quvi_media_t) = 0; +protected: + inline virtual ~media_base() { } +}; + +class media_impl : media_base +{ +protected: + std::string _content_type; + std::string _stream_url; + std::string _file_ext; + std::string _title; + std::string _id; + double _content_length; +protected: + inline media_impl(const media_impl& a): _content_length(0) { _copy(a); } + inline media_impl(): _content_length(0) { } + inline virtual ~media_impl() { } + inline media_impl& operator=(const media_impl& a) + { + if (this != &a) + _copy(a); + return *this; + } + inline void _copy(const media_impl& a) + { + _content_type = a._content_type; + _stream_url = a._stream_url; + _file_ext = a._file_ext; + _title = a._title; + _id = a._id; + + _content_length = a._content_length; + } +public: + inline const std::string& content_type() const { return _content_type; } + inline const std::string& stream_url() const { return _stream_url; } + inline const std::string& file_ext() const { return _file_ext; } + inline const std::string& title() const { return _title; } + inline const std::string& id() const { return _id; } + inline double content_length() const { return _content_length; } +}; + +class media_pt4 : public media_impl +{ + void _init(quvi_t, quvi_media_t); +public: + inline media_pt4(const media_pt4& a): media_impl(a) { } + inline media_pt4(quvi_t q, quvi_media_t qm): media_impl() { _init(q, qm); } + inline media_pt4(): media_impl() { } + inline virtual ~media_pt4() { } + inline media_pt4& operator=(const media_pt4& a) + { + if (this != &a) + _copy(a); + return *this; + } +}; + +class media_pt9 : public media_impl +{ + void _init(quvi_t, quvi_media_t); +public: + inline media_pt9(const media_pt9& a): media_impl(a) { } + inline media_pt9(quvi_t q, quvi_media_t qm): media_impl() { _init(q, qm); } + inline media_pt9(): media_impl() { } + inline virtual ~media_pt9() { } + inline media_pt9& operator=(const media_pt9& a) + { + if (this != &a) + _copy(a); + return *this; + } +}; + +#ifdef HAVE_LIBQUVI_0_9 +typedef class media_pt9 media; +#else +typedef class media_pt4 media; +#endif + +} // namespace quvi + +#endif // compat_media_h + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/compat/media_pt4.cpp
Added
@@ -0,0 +1,50 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#include <cstring> +#include <ccquvi> + +namespace quvi +{ + +static void _get_s(quvi_media_t qm, QUVIproperty qp, std::string& dst) +{ + char *s; + + dst.clear(); + quvi_getprop(qm, qp, &s); + + if (strlen(s) >0) + dst = s; +} + +void media_pt4::_init(quvi_t, quvi_media_t qm) +{ + quvi_getprop(qm, QUVIPROP_MEDIACONTENTLENGTH, &_content_length); + _get_s(qm, QUVIPROP_MEDIACONTENTTYPE, _content_type); + _get_s(qm, QUVIPROP_FILESUFFIX, _file_ext); + _get_s(qm, QUVIPROP_MEDIAURL, _stream_url); + _get_s(qm, QUVIPROP_PAGETITLE, _title); + _get_s(qm, QUVIPROP_MEDIAID, _id); +} + +} // namespace quvi + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/compat/media_pt9.cpp
Added
@@ -0,0 +1,75 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#include <cstring> +#include <ccquvi> + +namespace quvi +{ + +static void _get_s(quvi_media_t qm, QuviMediaProperty qmp, std::string& dst) +{ + char *s = NULL; + + dst.clear(); + quvi_media_get(qm, qmp, &s); + + if (s != NULL && strlen(s) >0) + dst = s; +} + +static void _qmi_s(quvi_http_metainfo_t qmi, + const QuviHTTPMetaInfoProperty qmip, + std::string& dst) +{ + char *s = NULL; + + dst.clear(); + quvi_http_metainfo_get(qmi, qmip, &s); + + if (s != NULL && strlen(s) >0) + dst = s; +} + +void media_pt9::_init(quvi_t q, quvi_media_t qm) +{ + _get_s(qm, QUVI_MEDIA_STREAM_PROPERTY_URL, _stream_url); + _get_s(qm, QUVI_MEDIA_PROPERTY_TITLE, _title); + _get_s(qm, QUVI_MEDIA_PROPERTY_ID, _id); + + quvi_http_metainfo_t qmi = quvi_http_metainfo_new(q, _stream_url.c_str()); + if (quvi_ok(q) == QUVI_FALSE) + { + quvi_http_metainfo_free(qmi); + throw error(q); + } + + quvi_http_metainfo_get(qmi, QUVI_HTTP_METAINFO_PROPERTY_LENGTH_BYTES, + &_content_length); + + _qmi_s(qmi, QUVI_HTTP_METAINFO_PROPERTY_CONTENT_TYPE, _content_type); + _qmi_s(qmi, QUVI_HTTP_METAINFO_PROPERTY_FILE_EXTENSION, _file_ext); + + quvi_http_metainfo_free(qmi); +} + +} // namespace quvi + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/compat/options.h
Added
@@ -0,0 +1,56 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef compat_options_h +#define compat_options_h + +namespace quvi { + +class options +{ + inline void _copy(const options& a) + { + statusfunc = a.statusfunc; + useragent = a.useragent; + resolve = a.resolve; + stream = a.stream; + } +public: + inline options(const options& a):statusfunc(NULL), resolve(true) { _copy(a); } + inline options():statusfunc(NULL), resolve(true) { } + inline options& operator=(const options& a) + { + if (this != &a) + _copy(a); + return *this; + } + inline virtual ~options() { statusfunc=NULL; } +public: + quvi_callback_status statusfunc; + std::string useragent; + std::string stream; + bool resolve; +}; + +} // namespace quvi + +#endif // compat_options_h + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/compat/query.h
Added
@@ -0,0 +1,120 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef compat_query_h +#define compat_query_h + +namespace boost +{ + namespace program_options + { + class variables_map; + } +} + +namespace po = boost::program_options; + +namespace quvi { + +class query_base +{ + virtual std::string streams(const std::string&, const quvi::options&) const = 0; + virtual media parse(const std::string&, const quvi::options&) const = 0; + virtual std::map<std::string,std::string> support() const = 0; + virtual void _configure(const quvi::options&) const = 0; + virtual void *setup_curl(const po::variables_map&) const = 0; + virtual void _close() = 0; + virtual void _init() = 0; +protected: + inline virtual ~query_base() { } +}; + +class query_impl : query_base +{ +protected: + inline query_impl(const query_impl&): _quvi(0) {} + inline query_impl(): _quvi(0) {} + inline query_impl& operator=(const query_impl&) { return *this; } + inline virtual ~query_impl() {} +protected: + quvi_t _quvi; +}; + +class query_pt4 : public query_impl +{ + void _configure(const quvi::options&) const; + void _close(); + void _init(); +public: + inline query_pt4(const query_pt4& a): query_impl(a) { _init(); } + inline query_pt4(): query_impl() { _init(); } + inline virtual ~query_pt4() { _close(); } + inline query_pt4& operator=(const query_pt4& a) + { + if (this != &a) + { + _close(); + _init(); + } + return *this; + } +public: + std::string streams(const std::string&, const quvi::options&) const; + media parse(const std::string&, const quvi::options&) const; + std::map<std::string,std::string> support() const; + void *setup_curl(const po::variables_map&) const; +}; + +class query_pt9 : public query_impl +{ + void _configure(const quvi::options&) const; + void _close(); + void _init(); +public: + inline query_pt9(const query_pt9& a): query_impl(a) { _init(); } + inline query_pt9(): query_impl() { _init(); } + inline virtual ~query_pt9() { _close(); } + inline query_pt9& operator=(const query_pt9& a) + { + if (this != &a) + { + _close(); + _init(); + } + return *this; + } +public: + std::string streams(const std::string&, const quvi::options&) const; + media parse(const std::string&, const quvi::options&) const; + std::map<std::string,std::string> support() const; + void *setup_curl(const po::variables_map&) const; +}; + +#ifdef HAVE_LIBQUVI_0_9 +typedef class query_pt9 query; +#else +typedef class query_pt4 query; +#endif + +} // namespace quvi + +#endif // compat_query_h + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/compat/query_pt4.cpp
Added
@@ -0,0 +1,116 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#include <curl/curl.h> + +#include <ccquvi> +#include <ccutil> + +namespace quvi +{ + +void query_pt4::_init() +{ + const QUVIcode qc = quvi_init(&_quvi); + if (qc != QUVI_OK) + throw error(_quvi, qc); +} + +void query_pt4::_close() +{ + if (_quvi != NULL) + { + quvi_close(&_quvi); + _quvi = NULL; + } +} + +void query_pt4::_configure(const quvi::options& opts) const +{ + if (! opts.stream.empty()) + quvi_setopt(_quvi, QUVIOPT_FORMAT, opts.stream.c_str()); + + quvi_setopt(_quvi, QUVIOPT_STATUSFUNCTION, opts.statusfunc); + quvi_setopt(_quvi, QUVIOPT_NORESOLVE, opts.resolve ? 0L:1L); + quvi_setopt(_quvi, QUVIOPT_CATEGORY, QUVIPROTO_HTTP); +} + +void *query_pt4::setup_curl(const po::variables_map& vm) const +{ + CURL *c; + quvi_getinfo(_quvi, QUVIINFO_CURL, &c); + cc::curl_setup(c, vm); + return c; +} + +std::string query_pt4::streams(const std::string& url, + const quvi::options& opts) const +{ + _configure(opts); + + char *fmts; + + const QUVIcode qc = + quvi_query_formats(_quvi, const_cast<char*>(url.c_str()), &fmts); + + if (qc != QUVI_OK) + throw error(_quvi, qc); + + std::string r = fmts; + quvi_free(fmts); + + return r; +} + +media query_pt4::parse(const std::string& url, const options& opts) const +{ + _configure(opts); + + quvi_media_t qm; + QUVIcode qc = quvi_parse(_quvi, const_cast<char*>(url.c_str()), &qm); + + if (qc != QUVI_OK) + throw error(_quvi, qc); + + media r(_quvi, qm); + quvi_parse_close(&qm); + + return r; +} + +std::map<std::string,std::string> query_pt4::support() const +{ + quvi_setopt(_quvi, QUVIOPT_CATEGORY, QUVIPROTO_HTTP); + + std::map<std::string,std::string> r; + char *a, *b; + + while (quvi_next_supported_website(_quvi, &a, &b) == QUVI_OK) + { + r[a] = b; + quvi_free(a); + quvi_free(b); + } + return r; +} + +} // namespace quvi + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/compat/query_pt9.cpp
Added
@@ -0,0 +1,122 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#include <curl/curl.h> + +#include <cstring> +#include <sstream> + +#include <ccquvi> +#include <ccutil> + +namespace quvi +{ + +void query_pt9::_init() +{ + _quvi = quvi_new(); + if (quvi_ok(_quvi) == QUVI_FALSE) + throw error(_quvi); +} + +void query_pt9::_close() +{ + quvi_free(_quvi); + _quvi = NULL; +} + +void query_pt9::_configure(const quvi::options& qopts) const +{ + quvi_set(_quvi, QUVI_OPTION_USER_AGENT, qopts.useragent.c_str()); + quvi_set(_quvi, QUVI_OPTION_CALLBACK_STATUS, qopts.statusfunc); +} + +void *query_pt9::setup_curl(const po::variables_map& vm) const +{ + CURL *c; + quvi_get(_quvi, QUVI_INFO_CURL_HANDLE, &c); + cc::curl_setup(c, vm); + return c; +} + +std::string query_pt9::streams(const std::string& url, + const quvi::options& opts) const +{ + _configure(opts); + + quvi_media_t qm = quvi_media_new(_quvi, url.c_str()); + if (quvi_ok(_quvi) == QUVI_FALSE) + { + quvi_media_free(qm); + throw error(_quvi); + } + + std::stringstream ss; + char *id; + + while (quvi_media_stream_next(qm) == QUVI_TRUE) + { + quvi_media_get(qm, QUVI_MEDIA_STREAM_PROPERTY_ID, &id); + if (strlen(id) >0) + { + if (ss.str().length() >0) + ss << ","; + ss << id; + } + } + quvi_media_free(qm); + return ss.str(); +} + +media query_pt9::parse(const std::string& url, + const quvi::options& opts) const +{ + _configure(opts); + + quvi_media_t qm = quvi_media_new(_quvi, url.c_str()); + if (quvi_ok(_quvi) == QUVI_FALSE) + throw error(_quvi); + + if (! opts.stream.empty()) + quvi_media_stream_select(qm, opts.stream.c_str()); + + media r(_quvi, qm); + quvi_media_free(qm); + + return r; +} + +std::map<std::string,std::string> query_pt9::support() const +{ + std::map<std::string,std::string> r; + char *v; + + while (quvi_script_next(_quvi, QUVI_SCRIPT_TYPE_MEDIA) == QUVI_TRUE) + { + quvi_script_get(_quvi, QUVI_SCRIPT_TYPE_MEDIA, + QUVI_SCRIPT_PROPERTY_DOMAINS, &v); + r[v] = ""; + } + return r; +} + +} // namespace quvi + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/compat/util.cpp
Added
@@ -0,0 +1,70 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#include <pcrecpp.h> +#include <sstream> + +#include <ccquvi> + +namespace quvi +{ + +// Version. + +std::string version() +{ +#ifdef HAVE_LIBQUVI_0_9 + std::stringstream s; + s << quvi_version(QUVI_VERSION) << "\n " + << " built on " << quvi_version(QUVI_VERSION_BUILD_TIME) << " " + << "for " << quvi_version(QUVI_VERSION_BUILD_TARGET) << "\n " + << " with " << quvi_version(QUVI_VERSION_BUILD_CC_CFLAGS) << "\n " + << "configuration: " << quvi_version(QUVI_VERSION_CONFIGURATION); + return s.str(); +#else + return quvi_version(QUVI_VERSION_LONG); +#endif +} + +typedef std::map<std::string,std::string>::const_iterator smci; + +static const std::string _domain_patt_to_s(smci i) +{ + std::string d = (*i).first; +#ifndef HAVE_LIBQUVI_0_9 /* Only libquvi 0.4 needs this. */ + pcrecpp::RE("%w\\+").GlobalReplace("com", &d); + pcrecpp::RE("%").GlobalReplace("", &d); +#endif + return d; +} + +std::string support_to_s(const std::map<std::string,std::string>& map) +{ + std::stringstream b; + + for (smci iter = map.begin(); iter != map.end(); ++iter) + b << _domain_patt_to_s(iter) << "\n"; + + return b.str(); +} + +} // namespace quvi + +// vim: set ts=2 sw=2 tw=72 expandtab:
View file
cclive-0.9.3.tar.xz/src/compat/util.h
Added
@@ -0,0 +1,32 @@ +/* cclive + * Copyright (C) 2013 Toni Gundogdu <legatvs@gmail.com> + * + * This file is part of cclive <http://cclive.sourceforge.net/>. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/>. + */ + +#ifndef compat_util_h +#define compat_util_h + +namespace quvi +{ +std::string support_to_s(const std::map<std::string,std::string>&); +std::string version(); +} // namespace quvi + +#endif // compat_util_h + +// vim: set ts=2 sw=2 tw=72 expandtab:
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.