mirror of
https://github.com/xroche/httrack.git
synced 2026-05-17 16:36:07 +03:00
Compare commits
428 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1dd36157c9 | ||
|
|
9f21da0f1b | ||
|
|
a68ec9ad2a | ||
|
|
f912d9f024 | ||
|
|
8b8cce197a | ||
|
|
e8188eb243 | ||
|
|
f59bc8a790 | ||
|
|
854b7fe18e | ||
|
|
920d51082c | ||
|
|
e35b329c50 | ||
|
|
1ff6c081f1 | ||
|
|
7503937d76 | ||
|
|
23fa293e9e | ||
|
|
25c278b599 | ||
|
|
721da33d81 | ||
|
|
c0165072d6 | ||
|
|
ebd4d34b7b | ||
|
|
047c6b726b | ||
|
|
aecd9a41ea | ||
|
|
46a9b89dd3 | ||
|
|
b6ba5073a5 | ||
|
|
5eb5b0891d | ||
|
|
afff7dc033 | ||
|
|
69a93698dc | ||
|
|
68d81080b3 | ||
|
|
a431fcf717 | ||
|
|
c722368dc0 | ||
|
|
b1367feade | ||
|
|
5882b122d1 | ||
|
|
f27a5f58be | ||
|
|
d0d62c0598 | ||
|
|
027fe3a5ee | ||
|
|
8b05179083 | ||
|
|
522af8962f | ||
|
|
96a727e4fb | ||
|
|
4c876451be | ||
|
|
c5003322b7 | ||
|
|
8e72bb5deb | ||
|
|
2e6a99ce09 | ||
|
|
218f6e2cd9 | ||
|
|
967932e75d | ||
|
|
42bb06703a | ||
|
|
3bb87c123a | ||
|
|
eeaa956588 | ||
|
|
7925eccecd | ||
|
|
60ee0687d5 | ||
|
|
8b3af0d585 | ||
|
|
028f23ca6f | ||
|
|
bf40691b62 | ||
|
|
dc21c7f595 | ||
|
|
4461278b80 | ||
|
|
95480e8d16 | ||
|
|
b10df97dd0 | ||
|
|
7a1e4b8265 | ||
|
|
6c2120e053 | ||
|
|
7a261eec39 | ||
|
|
dbd99bb365 | ||
|
|
e0fe304f0b | ||
|
|
84632e7bb6 | ||
|
|
a4f1156edc | ||
|
|
1e87dc455f | ||
|
|
c0a31f2656 | ||
|
|
2e59d67d7a | ||
|
|
713b83f7b4 | ||
|
|
82e61ae9d6 | ||
|
|
d2103fce8a | ||
|
|
93ae992d7b | ||
|
|
49dd329a09 | ||
|
|
185b664930 | ||
|
|
3a7441b57b | ||
|
|
eeee43acb7 | ||
|
|
91946b7834 | ||
|
|
1af7fd8c5d | ||
|
|
f509bed5be | ||
|
|
6d1544383e | ||
|
|
cd268fd39e | ||
|
|
113fb00073 | ||
|
|
4608b62e2e | ||
|
|
3f1e6ac8cd | ||
|
|
bfdc88cb0b | ||
|
|
a911bcf0c9 | ||
|
|
49691770a9 | ||
|
|
1a683c668a | ||
|
|
dc49da62a1 | ||
|
|
018832a18b | ||
|
|
7ec5e6e7e4 | ||
|
|
8c1e9ef23d | ||
|
|
073a55ab1c | ||
|
|
9ff2518be6 | ||
|
|
f78d271246 | ||
|
|
344d47e632 | ||
|
|
d068a8f3ff | ||
|
|
e64f9a8929 | ||
|
|
2d2ec627b4 | ||
|
|
40f237fe9c | ||
|
|
04cfb2db0e | ||
|
|
bdbf66b45c | ||
|
|
6bace27858 | ||
|
|
7d3d496a7f | ||
|
|
7826a49f59 | ||
|
|
ed79961b7a | ||
|
|
d3c14c9d1f | ||
|
|
7026ba7c7b | ||
|
|
abe98f238d | ||
|
|
8dd39bc909 | ||
|
|
17ec3ecd6b | ||
|
|
c7636d4f90 | ||
|
|
3a7e594166 | ||
|
|
b88395a16c | ||
|
|
4f5776a8fa | ||
|
|
8adeadbdb6 | ||
|
|
c64b8d6e88 | ||
|
|
194ebad4c6 | ||
|
|
ae6d05fbb3 | ||
|
|
803f7b5a33 | ||
|
|
f919aab408 | ||
|
|
0238301aca | ||
|
|
3864a45388 | ||
|
|
5e248cc4e3 | ||
|
|
473baf7f95 | ||
|
|
27752e368c | ||
|
|
37187f967f | ||
|
|
1d07610320 | ||
|
|
49304bbe8f | ||
|
|
11e069aa07 | ||
|
|
0c7a0274ca | ||
|
|
f3a4a20750 | ||
|
|
e090cd9ccf | ||
|
|
1bebff2697 | ||
|
|
c7fac4dbca | ||
|
|
0b52cac218 | ||
|
|
43b457203b | ||
|
|
fdcff762f6 | ||
|
|
c3987aca71 | ||
|
|
f67a86657b | ||
|
|
01edfd6d1e | ||
|
|
a300785d5e | ||
|
|
5364514f34 | ||
|
|
f078a39677 | ||
|
|
65454f4ff1 | ||
|
|
15813b5380 | ||
|
|
033ce293b8 | ||
|
|
d1913325e4 | ||
|
|
882578ed9a | ||
|
|
1ec8b5fb9e | ||
|
|
796c62f07c | ||
|
|
cefcc04266 | ||
|
|
6ba50a2001 | ||
|
|
9315f64b6e | ||
|
|
feb2a02cc2 | ||
|
|
24ff04fdb7 | ||
|
|
72e0c0601b | ||
|
|
b72741ddc9 | ||
|
|
1edfda507d | ||
|
|
4a62c84479 | ||
|
|
595d446470 | ||
|
|
0474c596b6 | ||
|
|
9f23ea7980 | ||
|
|
fe1ec5b0f6 | ||
|
|
fd1ab669ad | ||
|
|
34788bb7f6 | ||
|
|
03edb3eac8 | ||
|
|
fe7ea8b140 | ||
|
|
1fd27d74af | ||
|
|
08a17f31d4 | ||
|
|
6c8b76e531 | ||
|
|
66c8cc32aa | ||
|
|
2209c7bdd8 | ||
|
|
cb0460ddcb | ||
|
|
fb9e02ffb9 | ||
|
|
ac779cb6a0 | ||
|
|
0073d3ad05 | ||
|
|
638cc96917 | ||
|
|
c6e0ad4bce | ||
|
|
c457788a14 | ||
|
|
216005d33a | ||
|
|
59008af067 | ||
|
|
3059bd6f53 | ||
|
|
e5b3c85156 | ||
|
|
843faaf83d | ||
|
|
75969b1147 | ||
|
|
6ad604624d | ||
|
|
c05f54ae04 | ||
|
|
ae1db762e7 | ||
|
|
16aec722bf | ||
|
|
4ff55249ed | ||
|
|
fea8122ed3 | ||
|
|
7323230eb3 | ||
|
|
c9f656fdeb | ||
|
|
042525a1db | ||
|
|
3fde59c090 | ||
|
|
edaaa73328 | ||
|
|
cc424a4503 | ||
|
|
1f18c67f8a | ||
|
|
a016accc4b | ||
|
|
1315e03cc5 | ||
|
|
917d6bd3c4 | ||
|
|
a085b2b2fa | ||
|
|
67b8737ed4 | ||
|
|
9d67ab4cf0 | ||
|
|
b331963ba6 | ||
|
|
f48114006d | ||
|
|
9208228e2d | ||
|
|
9a17499b99 | ||
|
|
91714c7a28 | ||
|
|
3a3d27386c | ||
|
|
d59341813d | ||
|
|
65eb4e58e5 | ||
|
|
7e75314395 | ||
|
|
5ff78eebd0 | ||
|
|
76dc4d04fc | ||
|
|
5b0c24aa71 | ||
|
|
ba35564fac | ||
|
|
0db2125bdc | ||
|
|
032be64885 | ||
|
|
b41e6dc3af | ||
|
|
a798cd3a8d | ||
|
|
d2435b1b5e | ||
|
|
213359b3db | ||
|
|
3b1bf0b8af | ||
|
|
6aef8ee820 | ||
|
|
ac6cc76bab | ||
|
|
a3fb178b10 | ||
|
|
b1fa75dfe0 | ||
|
|
4da59a6399 | ||
|
|
44688bdbdf | ||
|
|
6ce91ec1f3 | ||
|
|
95b9374ff3 | ||
|
|
c7edfe0f5f | ||
|
|
381eebc056 | ||
|
|
5544f503bf | ||
|
|
b3fa8537c4 | ||
|
|
aafafee47e | ||
|
|
632befbd53 | ||
|
|
908f3ac832 | ||
|
|
d46e835fc2 | ||
|
|
1f6b64f81a | ||
|
|
24eee92311 | ||
|
|
75b5002c63 | ||
|
|
792311df15 | ||
|
|
3e63dbc69c | ||
|
|
589b5ed78f | ||
|
|
015cff31b9 | ||
|
|
8e0c4ab867 | ||
|
|
919030900d | ||
|
|
859f4625cb | ||
|
|
0985f4c014 | ||
|
|
21debe05da | ||
|
|
d0d9660ac9 | ||
|
|
2fe3a96b09 | ||
|
|
ef647e9136 | ||
|
|
159e3d0017 | ||
|
|
9661b389d9 | ||
|
|
80c61e94f7 | ||
|
|
e8f4361fbc | ||
|
|
0df1c16c79 | ||
|
|
c7b0023dd7 | ||
|
|
70a44456fb | ||
|
|
dce3642432 | ||
|
|
91c6288d40 | ||
|
|
eb93fb8a2e | ||
|
|
6523d94ee3 | ||
|
|
1e6399e37b | ||
|
|
5bfb2e60b1 | ||
|
|
7cc1dc33d5 | ||
|
|
20253490d4 | ||
|
|
acef5cc38c | ||
|
|
3664cd1ae4 | ||
|
|
06b9b88365 | ||
|
|
61ee568eda | ||
|
|
3c68700357 | ||
|
|
b70ff055c4 | ||
|
|
943bb355f9 | ||
|
|
f358fabf0c | ||
|
|
0e16f522c8 | ||
|
|
9a58582853 | ||
|
|
8bfa3841fa | ||
|
|
57cc0da6cc | ||
|
|
70185ab310 | ||
|
|
008601e493 | ||
|
|
c95ab92329 | ||
|
|
903450d453 | ||
|
|
f967595e08 | ||
|
|
ee04f0c687 | ||
|
|
b772388bbd | ||
|
|
d88b5f9b27 | ||
|
|
e34523ab27 | ||
|
|
08741a5938 | ||
|
|
b32b41cf08 | ||
|
|
4d94eb7643 | ||
|
|
df46fbe8d5 | ||
|
|
c11fe60bee | ||
|
|
011ba96d53 | ||
|
|
d7cc6f5b55 | ||
|
|
62247b4d5c | ||
|
|
47f244e22c | ||
|
|
3b40219431 | ||
|
|
9f0340968f | ||
|
|
a8e34d6f1f | ||
|
|
a7de9c6e7d | ||
|
|
cc8a7a4077 | ||
|
|
60644a7309 | ||
|
|
afea93461d | ||
|
|
4961951ca6 | ||
|
|
8789dedb58 | ||
|
|
a7753d1697 | ||
|
|
b68cef069a | ||
|
|
da8ba57520 | ||
|
|
c0154f5e77 | ||
|
|
bd28ac98de | ||
|
|
fa1e5e3113 | ||
|
|
fd69106947 | ||
|
|
5bd7e12eae | ||
|
|
c24f80f50c | ||
|
|
8b7c561b9f | ||
|
|
d4453441f1 | ||
|
|
96e6c1e205 | ||
|
|
600b76ca4b | ||
|
|
9067f94db3 | ||
|
|
a5d9076a99 | ||
|
|
30455d9d66 | ||
|
|
2d6017ad06 | ||
|
|
e002254001 | ||
|
|
5ab61bd6e3 | ||
|
|
1e12f60120 | ||
|
|
d99ea7fb86 | ||
|
|
a4ce809b06 | ||
|
|
82a30ce1b4 | ||
|
|
fe1a951c09 | ||
|
|
ce17800658 | ||
|
|
ffefedefa9 | ||
|
|
84cdc70b4a | ||
|
|
ea741caba7 | ||
|
|
8fd32cb662 | ||
|
|
86035dd001 | ||
|
|
b85c807544 | ||
|
|
a0a9c07027 | ||
|
|
9468c3ee82 | ||
|
|
d6d3802dcc | ||
|
|
ffd4bfe568 | ||
|
|
47f23cda40 | ||
|
|
4e903579b2 | ||
|
|
e77141ceae | ||
|
|
9caffeb8ae | ||
|
|
dc202c3f51 | ||
|
|
6c0e97adfd | ||
|
|
ba04076ef5 | ||
|
|
1d684d2c65 | ||
|
|
0bdb3d3506 | ||
|
|
857a799f83 | ||
|
|
c2caf1c8e7 | ||
|
|
3f2e30924e | ||
|
|
fd8f99609a | ||
|
|
683668120e | ||
|
|
724dad4380 | ||
|
|
e72170d412 | ||
|
|
a228111f97 | ||
|
|
5237bd6f13 | ||
|
|
8eaf0a1e18 | ||
|
|
6516c4f306 | ||
|
|
818001ba76 | ||
|
|
b4c15a3b3b | ||
|
|
7f8131f249 | ||
|
|
4c3c704fb7 | ||
|
|
f9086f5849 | ||
|
|
d9b93413c1 | ||
|
|
496a08ec7d | ||
|
|
7d8c7064c2 | ||
|
|
482e33c0fc | ||
|
|
4c6c2fa349 | ||
|
|
1ed1ddf658 | ||
|
|
676776e99b | ||
|
|
98ea5be208 | ||
|
|
931062d509 | ||
|
|
942bebf4b2 | ||
|
|
e4b71bb7d4 | ||
|
|
39501c8aeb | ||
|
|
d03d97a163 | ||
|
|
f154d0e78c | ||
|
|
358cd09f71 | ||
|
|
9674c7f418 | ||
|
|
de1c1d80a9 | ||
|
|
538c049521 | ||
|
|
1f2aa72a82 | ||
|
|
b838c92227 | ||
|
|
b6ee0d8d5d | ||
|
|
57c732da58 | ||
|
|
87c2781ecc | ||
|
|
b44edd5116 | ||
|
|
e5d811f51e | ||
|
|
0ae8baf47b | ||
|
|
3ea9e69625 | ||
|
|
f8569c130c | ||
|
|
1fb810430a | ||
|
|
01f22fb1ec | ||
|
|
33e87222df | ||
|
|
c7d33c0a8e | ||
|
|
3d542bbc82 | ||
|
|
01553e56bd | ||
|
|
f776329ee6 | ||
|
|
2e88036808 | ||
|
|
d2a3d7a3ff | ||
|
|
00fe2d4432 | ||
|
|
ed28e87267 | ||
|
|
235f1881dd | ||
|
|
97a9679c0b | ||
|
|
62fdaaf4eb | ||
|
|
7d27b60e55 | ||
|
|
4e0f29cc07 | ||
|
|
f7de42a81a | ||
|
|
f281133bfe | ||
|
|
f96bff35ae | ||
|
|
638a9b6df7 | ||
|
|
a835ee13e3 | ||
|
|
b5e663cd80 | ||
|
|
588d526aed | ||
|
|
9c3e5b43bd | ||
|
|
9090ee17b3 | ||
|
|
9e61bc36f3 | ||
|
|
a01be59015 | ||
|
|
4c904ad7fa | ||
|
|
99b25bcd84 | ||
|
|
74d06310eb | ||
|
|
f7446a3c57 | ||
|
|
0817df2fb6 | ||
|
|
f42a5fa5dd | ||
|
|
b2a632795b | ||
|
|
4352498227 |
@@ -134,6 +134,7 @@ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
|
||||
distcleancheck_listfiles = find . -type f -print
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
@@ -142,14 +143,12 @@ AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_CFLAGS = @DEFAULT_CFLAGS@
|
||||
DEFAULT_LDFLAGS = @DEFAULT_LDFLAGS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
@@ -163,6 +162,7 @@ EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
HTTPS_SUPPORT = @HTTPS_SUPPORT@
|
||||
ICONV_LIBS = @ICONV_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -218,7 +218,6 @@ abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
|
||||
2
README
2
README
@@ -1,5 +1,5 @@
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
Welcome to HTTrack Website Copier!
|
||||
|
||||
|
||||
343
compile
Executable file
343
compile
Executable file
@@ -0,0 +1,343 @@
|
||||
#! /bin/sh
|
||||
# Wrapper for compilers which do not understand '-c -o'.
|
||||
|
||||
scriptversion=2012-03-05.13; # UTC
|
||||
|
||||
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
|
||||
# Software Foundation, Inc.
|
||||
# Written by Tom Tromey <tromey@cygnus.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 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>.
|
||||
|
||||
nl='
|
||||
'
|
||||
|
||||
# We need space, tab and new line, in precisely that order. Quoting is
|
||||
# there to prevent tools from complaining about whitespace usage.
|
||||
IFS=" "" $nl"
|
||||
|
||||
file_conv=
|
||||
|
||||
# func_file_conv build_file lazy
|
||||
# Convert a $build file to $host form and store it in $file
|
||||
# Currently only supports Windows hosts. If the determined conversion
|
||||
# type is listed in (the comma separated) LAZY, no conversion will
|
||||
# take place.
|
||||
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/,$2, in
|
||||
*,$file_conv,*)
|
||||
;;
|
||||
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_cl_dashL linkdir
|
||||
# Make cl look for libraries in LINKDIR
|
||||
func_cl_dashL ()
|
||||
{
|
||||
func_file_conv "$1"
|
||||
if test -z "$lib_path"; then
|
||||
lib_path=$file
|
||||
else
|
||||
lib_path="$lib_path;$file"
|
||||
fi
|
||||
linker_opts="$linker_opts -LIBPATH:$file"
|
||||
}
|
||||
|
||||
# func_cl_dashl library
|
||||
# Do a library search-path lookup for cl
|
||||
func_cl_dashl ()
|
||||
{
|
||||
lib=$1
|
||||
found=no
|
||||
save_IFS=$IFS
|
||||
IFS=';'
|
||||
for dir in $lib_path $LIB
|
||||
do
|
||||
IFS=$save_IFS
|
||||
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.dll.lib
|
||||
break
|
||||
fi
|
||||
if test -f "$dir/$lib.lib"; then
|
||||
found=yes
|
||||
lib=$dir/$lib.lib
|
||||
break
|
||||
fi
|
||||
done
|
||||
IFS=$save_IFS
|
||||
|
||||
if test "$found" != yes; then
|
||||
lib=$lib.lib
|
||||
fi
|
||||
}
|
||||
|
||||
# func_cl_wrapper cl arg...
|
||||
# Adjust compile command to suit cl
|
||||
func_cl_wrapper ()
|
||||
{
|
||||
# Assume a capable shell
|
||||
lib_path=
|
||||
shared=:
|
||||
linker_opts=
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.[oO][bB][jJ])
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fo"$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
func_file_conv "$2"
|
||||
set x "$@" -Fe"$file"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
-I)
|
||||
eat=1
|
||||
func_file_conv "$2" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-I*)
|
||||
func_file_conv "${1#-I}" mingw
|
||||
set x "$@" -I"$file"
|
||||
shift
|
||||
;;
|
||||
-l)
|
||||
eat=1
|
||||
func_cl_dashl "$2"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-l*)
|
||||
func_cl_dashl "${1#-l}"
|
||||
set x "$@" "$lib"
|
||||
shift
|
||||
;;
|
||||
-L)
|
||||
eat=1
|
||||
func_cl_dashL "$2"
|
||||
;;
|
||||
-L*)
|
||||
func_cl_dashL "${1#-L}"
|
||||
;;
|
||||
-static)
|
||||
shared=false
|
||||
;;
|
||||
-Wl,*)
|
||||
arg=${1#-Wl,}
|
||||
save_ifs="$IFS"; IFS=','
|
||||
for flag in $arg; do
|
||||
IFS="$save_ifs"
|
||||
linker_opts="$linker_opts $flag"
|
||||
done
|
||||
IFS="$save_ifs"
|
||||
;;
|
||||
-Xlinker)
|
||||
eat=1
|
||||
linker_opts="$linker_opts $2"
|
||||
;;
|
||||
-*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||
func_file_conv "$1"
|
||||
set x "$@" -Tp"$file"
|
||||
shift
|
||||
;;
|
||||
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||
func_file_conv "$1" mingw
|
||||
set x "$@" "$file"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
if test -n "$linker_opts"; then
|
||||
linker_opts="-link$linker_opts"
|
||||
fi
|
||||
exec "$@" $linker_opts
|
||||
exit 1
|
||||
}
|
||||
|
||||
eat=
|
||||
|
||||
case $1 in
|
||||
'')
|
||||
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||
exit 1;
|
||||
;;
|
||||
-h | --h*)
|
||||
cat <<\EOF
|
||||
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||
|
||||
Wrapper for compilers which do not understand '-c -o'.
|
||||
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||
arguments, and rename the output as expected.
|
||||
|
||||
If you are trying to build a whole package this is not the
|
||||
right script to run: please start by reading the file 'INSTALL'.
|
||||
|
||||
Report bugs to <bug-automake@gnu.org>.
|
||||
EOF
|
||||
exit $?
|
||||
;;
|
||||
-v | --v*)
|
||||
echo "compile $scriptversion"
|
||||
exit $?
|
||||
;;
|
||||
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
||||
func_cl_wrapper "$@" # Doesn't return...
|
||||
;;
|
||||
esac
|
||||
|
||||
ofile=
|
||||
cfile=
|
||||
|
||||
for arg
|
||||
do
|
||||
if test -n "$eat"; then
|
||||
eat=
|
||||
else
|
||||
case $1 in
|
||||
-o)
|
||||
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||
# So we strip '-o arg' only if arg is an object.
|
||||
eat=1
|
||||
case $2 in
|
||||
*.o | *.obj)
|
||||
ofile=$2
|
||||
;;
|
||||
*)
|
||||
set x "$@" -o "$2"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
*.c)
|
||||
cfile=$1
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
set x "$@" "$1"
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if test -z "$ofile" || test -z "$cfile"; then
|
||||
# If no '-o' option was seen then we might have been invoked from a
|
||||
# pattern rule where we don't need one. That is ok -- this is a
|
||||
# normal compilation that the losing compiler can handle. If no
|
||||
# '.c' file was seen then we are probably linking. That is also
|
||||
# ok.
|
||||
exec "$@"
|
||||
fi
|
||||
|
||||
# Name of file we expect compiler to create.
|
||||
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||
|
||||
# Create the lock directory.
|
||||
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||
# that we are using for the .o file. Also, base the name on the expected
|
||||
# object file name, since that is what matters with a parallel build.
|
||||
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||
while true; do
|
||||
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
# FIXME: race condition here if user kills between mkdir and trap.
|
||||
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||
|
||||
# Run the compile.
|
||||
"$@"
|
||||
ret=$?
|
||||
|
||||
if test -f "$cofile"; then
|
||||
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||
elif test -f "${cofile}bj"; then
|
||||
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||
fi
|
||||
|
||||
rmdir "$lockdir"
|
||||
exit $ret
|
||||
|
||||
# Local Variables:
|
||||
# mode: shell-script
|
||||
# sh-indentation: 2
|
||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||
# time-stamp-start: "scriptversion="
|
||||
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||
# time-stamp-time-zone: "UTC"
|
||||
# time-stamp-end: "; # UTC"
|
||||
# End:
|
||||
22
config.h.in
22
config.h.in
@@ -6,6 +6,9 @@
|
||||
/* Check for ftime */
|
||||
#undef FTIME
|
||||
|
||||
/* Define if pointers to integers require aligned access */
|
||||
#undef HAVE_ALIGNED_ACCESS_REQUIRED
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
@@ -42,6 +45,10 @@
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#undef HAVE_UNISTD_H
|
||||
|
||||
/* Define to 1 or 0, depending whether the compiler supports simple visibility
|
||||
declarations. */
|
||||
#undef HAVE_VISIBILITY
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function. */
|
||||
#undef HAVE_VSNPRINTF
|
||||
|
||||
@@ -63,16 +70,13 @@
|
||||
/* Check for libsocket */
|
||||
#undef LIBSOCKET
|
||||
|
||||
/* LLint format */
|
||||
#undef LLINT_FORMAT
|
||||
|
||||
/* LLint type */
|
||||
#undef LLINT_TYPE
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#undef LT_OBJDIR
|
||||
|
||||
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
||||
#undef NO_MINUS_C_MINUS_O
|
||||
|
||||
/* Name of package */
|
||||
#undef PACKAGE
|
||||
|
||||
@@ -114,3 +118,9 @@
|
||||
|
||||
/* Version number of package */
|
||||
#undef VERSION
|
||||
|
||||
/* in_port_t */
|
||||
#undef in_port_t
|
||||
|
||||
/* sa_family_t */
|
||||
#undef sa_family_t
|
||||
|
||||
167
configure.ac
167
configure.ac
@@ -1,18 +1,45 @@
|
||||
AC_INIT([httrack], [3.47.19], [roche+packaging@httrack.com], [httrack], [http://www.httrack.com/])
|
||||
AC_PREREQ(2.59)
|
||||
|
||||
AC_INIT([httrack], [3.48.17], [roche+packaging@httrack.com], [httrack], [http://www.httrack.com/])
|
||||
AC_COPYRIGHT([
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
- We hereby ask people using this source NOT to use it in purpose of grabbing
|
||||
emails addresses, or collecting any other private information on persons.
|
||||
This would disgrace our work, and spoil the many hours we spent on it.
|
||||
|
||||
Please visit our Website: http://www.httrack.com
|
||||
])
|
||||
|
||||
AC_CONFIG_SRCDIR(src/httrack.c)
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_CONFIG_HEADERS(config.h)
|
||||
AM_INIT_AUTOMAKE
|
||||
VERSION_INFO="2:47:0"
|
||||
AM_INIT_AUTOMAKE([subdir-objects])
|
||||
VERSION_INFO="2:48:0"
|
||||
AM_MAINTAINER_MODE
|
||||
|
||||
AC_PREREQ(2.50)
|
||||
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
AM_PROG_CC_C_O
|
||||
AC_STDC_HEADERS
|
||||
AM_PROG_LIBTOOL
|
||||
LT_INIT
|
||||
AC_PROG_LN_S
|
||||
AM_PROG_LIBTOOL
|
||||
|
||||
# Export LD_LIBRARY_PATH name or equivalent.
|
||||
AC_SUBST(SHLIBPATH_VAR,$shlibpath_var)
|
||||
@@ -20,13 +47,40 @@ AC_SUBST(SHLIBPATH_VAR,$shlibpath_var)
|
||||
# Export .libs or equivalent.
|
||||
AC_SUBST(LT_CV_OBJDIR,$lt_cv_objdir)
|
||||
|
||||
### Default CFLAGS
|
||||
DEFAULT_CFLAGS="-Wall -Wcast-align -Wstrict-prototypes \
|
||||
-Wmissing-prototypes -Wmissing-declarations -Wpointer-arith \
|
||||
-Wnested-externs -D_REENTRANT"
|
||||
AC_SUBST(DEFAULT_CFLAGS)
|
||||
# Export version info
|
||||
AC_SUBST(VERSION_INFO)
|
||||
|
||||
### Default CFLAGS
|
||||
DEFAULT_CFLAGS="-Wall -Wformat -Wformat-security \
|
||||
-Wmultichar -Wwrite-strings -Wcast-qual -Wcast-align \
|
||||
-Wstrict-prototypes -Wmissing-prototypes \
|
||||
-Wmissing-declarations -Wdeclaration-after-statement \
|
||||
-Wpointer-arith -Wsequence-point -Wnested-externs \
|
||||
-D_REENTRANT"
|
||||
AC_SUBST(DEFAULT_CFLAGS)
|
||||
DEFAULT_LDFLAGS=""
|
||||
AC_SUBST(DEFAULT_LDFLAGS)
|
||||
|
||||
### Additional flags (if supported)
|
||||
AX_CHECK_COMPILE_FLAG([-Wparentheses], [DEFAULT_CFLAGS="$DEFAULT_CFLAGS -Wparentheses"])
|
||||
AX_CHECK_COMPILE_FLAG([-Winit-self], [DEFAULT_CFLAGS="$DEFAULT_CFLAGS -Winit-self"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wunused-but-set-parameter], [DEFAULT_CFLAGS="$DEFAULT_CFLAGS -Wunused-but-set-parameter"])
|
||||
AX_CHECK_COMPILE_FLAG([-Waddress], [DEFAULT_CFLAGS="$DEFAULT_CFLAGS -Waddress"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wuninitialized], [DEFAULT_CFLAGS="$DEFAULT_CFLAGS -Wuninitialized"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wformat=2], [DEFAULT_CFLAGS="$DEFAULT_CFLAGS -Wformat=2"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wformat-nonliteral], [DEFAULT_CFLAGS="$DEFAULT_CFLAGS -Wformat-nonliteral"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wmissing-parameter-type], [DEFAULT_CFLAGS="$DEFAULT_CFLAGS -Wmissing-parameter-type"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wold-style-definition], [DEFAULT_CFLAGS="$DEFAULT_CFLAGS -Wold-style-definition"])
|
||||
AX_CHECK_COMPILE_FLAG([-Wignored-qualifiers], [DEFAULT_CFLAGS="$DEFAULT_CFLAGS -Wignored-qualifiers"])
|
||||
AX_CHECK_COMPILE_FLAG([-fstrict-aliasing -Wstrict-aliasing], [DEFAULT_CFLAGS="$DEFAULT_CFLAGS -fstrict-aliasing -Wstrict-aliasing"])
|
||||
AX_CHECK_LINK_FLAG([-Wl,--discard-all], [DEFAULT_LDLAGS="$DEFAULT_LDLAGS -Wl,--discard-all"])
|
||||
AX_CHECK_LINK_FLAG([-Wl,--no-undefined], [DEFAULT_LDLAGS="$DEFAULT_LDLAGS -Wl,--no-undefined"])
|
||||
|
||||
### Check for -fvisibility=hidden support
|
||||
gl_VISIBILITY
|
||||
AM_CFLAGS="$AM_CFLAGS $CFLAG_VISIBILITY"
|
||||
AC_SUBST([AM_CFLAGS])
|
||||
|
||||
### Check for platform
|
||||
#case $host in
|
||||
#AIX) AC_DEFINE(HTS_PLATFORM, 1, [Defined to build under AIX]);;
|
||||
@@ -39,83 +93,28 @@ AC_SUBST(VERSION_INFO)
|
||||
AC_CHECK_SIZEOF(long)
|
||||
AC_CHECK_SIZEOF(long long)
|
||||
|
||||
### Check LLint format
|
||||
if test x"$ac_cv_sizeof_long" = x"8"; then
|
||||
AC_MSG_CHECKING(long printf format)
|
||||
AC_TRY_RUN([#include <stdio.h>
|
||||
main() { long int c = -1, d = -1; char* f = "%ld"; sscanf("1234", f, &c, &d);
|
||||
exit (c != 1234 || d != -1); }
|
||||
],
|
||||
[AC_MSG_RESULT(found)
|
||||
AC_DEFINE(LLINT_FORMAT,"%ld",[LLint format])
|
||||
AC_DEFINE(LLINT_TYPE,long int,[LLint type])
|
||||
],
|
||||
[
|
||||
AC_TRY_RUN([#include <stdio.h>
|
||||
main() { long int c = -1, d = -1; char* f = "%d"; sscanf("1234", f, &c, &d);
|
||||
exit (c != 1234 || d != -1); }
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT(found)
|
||||
AC_DEFINE(LLINT_FORMAT,"%d",[LLint format])
|
||||
AC_DEFINE(LLINT_TYPE,long int,[LLint type])
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT(no)
|
||||
AC_MSG_RESULT(assuming not on target machine)
|
||||
AC_DEFINE(LLINT_FORMAT,"%d",[LLint format])
|
||||
AC_DEFINE(LLINT_TYPE,int,[LLint type])
|
||||
])
|
||||
])
|
||||
elif test x"$ac_cv_sizeof_long_long" = x"8"; then
|
||||
AC_MSG_CHECKING(long long printf format)
|
||||
AC_TRY_RUN([#include <stdio.h>
|
||||
main() { long long int c = -1, d = -1; char* f = "%lld"; sscanf("1234", f, &c, &d);
|
||||
exit (c != 1234 || d != -1); }
|
||||
],
|
||||
[AC_MSG_RESULT(found)
|
||||
AC_DEFINE(LLINT_FORMAT,"%lld",[LLint format])
|
||||
AC_DEFINE(LLINT_TYPE,long long int,[LLint type])
|
||||
],
|
||||
[
|
||||
AC_TRY_RUN([#include <stdio.h>
|
||||
main() { long long int c = -1, d = -1; char* f = "%ld"; sscanf("1234", f, &c, &d);
|
||||
exit (c != 1234 || d != -1); }
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT(found)
|
||||
AC_DEFINE(LLINT_FORMAT,"%ld",[LLint format])
|
||||
AC_DEFINE(LLINT_TYPE,long long int,[LLint type])
|
||||
],
|
||||
[
|
||||
AC_TRY_RUN([#include <stdio.h>
|
||||
main() { long long int c = -1, d = -1; char* f = "%d"; sscanf("1234", f, &c, &d);
|
||||
exit (c != 1234 || d != -1); }
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT(found)
|
||||
AC_DEFINE(LLINT_FORMAT,"%d",[LLint format])
|
||||
AC_DEFINE(LLINT_TYPE,long long int,[LLint type])
|
||||
],
|
||||
[
|
||||
AC_MSG_RESULT(no)
|
||||
AC_MSG_RESULT(assuming not on target machine)
|
||||
AC_DEFINE(LLINT_FORMAT,"%d",[LLint format])
|
||||
AC_DEFINE(LLINT_TYPE,int,[LLint type])
|
||||
])
|
||||
])
|
||||
])
|
||||
else
|
||||
AC_DEFINE(LLINT_FORMAT,"%d",[LLint format])
|
||||
AC_DEFINE(LLINT_TYPE,int,[LLint type])
|
||||
fi
|
||||
|
||||
### check for in_addr_t
|
||||
AC_CHECK_TYPE(in_addr_t,
|
||||
AC_DEFINE(HTS_DO_NOT_REDEFINE_in_addr_t,,[Check for in_addr_t]),
|
||||
AC_MSG_WARN([*** in_addr_t not found]),
|
||||
[#include <sys/types.h>
|
||||
#include <netinet/in.h>])
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>])
|
||||
|
||||
# check for in_port_
|
||||
AC_CHECK_TYPE(in_port_t, [], [AC_DEFINE([in_port_t], [uint16_t], [in_port_t])], [
|
||||
#include <sys/types.h>
|
||||
#include <netinet/in.h>
|
||||
])
|
||||
|
||||
# check for sa_family_t
|
||||
AC_CHECK_TYPE(sa_family_t, [], [AC_DEFINE([sa_family_t], [uint16_t], [sa_family_t])], [
|
||||
#include <sys/types.h>
|
||||
#include <netinet/in.h>
|
||||
])
|
||||
|
||||
# check wether misaligned access is possible or not
|
||||
AX_CHECK_ALIGNED_ACCESS_REQUIRED
|
||||
|
||||
### zlib
|
||||
CHECK_ZLIB()
|
||||
|
||||
191
debian/changelog
vendored
191
debian/changelog
vendored
@@ -1,3 +1,194 @@
|
||||
httrack (3.48.17-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.17 (3.48-17)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Sat, 12 Jul 2014 15:21:14 +0200
|
||||
|
||||
httrack (3.48.16-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.16 (3.48-16)
|
||||
fixed FTBFS on ARM/MIPS again
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Wed, 09 Jul 2014 07:02:08 +0200
|
||||
|
||||
httrack (3.48.15-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.15 (3.48-15)
|
||||
fixed FTBFS on ARM/MIPS
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Tue, 08 Jul 2014 22:05:14 +0200
|
||||
|
||||
httrack (3.48.14-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.14 (3.48-14)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Tue, 08 Jul 2014 20:36:55 +0200
|
||||
|
||||
httrack (3.48.13-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.13 (3.48-13)
|
||||
closes:#750931
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Sun, 08 Jun 2014 16:22:13 +0200
|
||||
|
||||
httrack (3.48.12-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.12 (3.48-12)
|
||||
Should fix missing/broken .h for libhttrack-dev
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Sun, 08 Jun 2014 13:19:49 +0200
|
||||
|
||||
httrack (3.48.11-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.11 (3.48-11)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Fri, 06 Jun 2014 17:58:12 +0200
|
||||
|
||||
httrack (3.48.10-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.10 (3.48-10)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Wed, 04 Jun 2014 19:00:07 +0200
|
||||
|
||||
httrack (3.48.9-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.9 (3.48-9)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Wed, 21 May 2014 19:22:04 +0200
|
||||
|
||||
httrack (3.48.8-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.8 (3.48-8)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Thu, 15 May 2014 19:21:21 +0200
|
||||
|
||||
httrack (3.48.7-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.7 (3.48-7)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Wed, 14 May 2014 19:51:57 +0200
|
||||
|
||||
httrack (3.48.6-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.6 (3.48-6)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Tue, 13 May 2014 21:23:02 +0200
|
||||
|
||||
httrack (3.48.5-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.5 (3.48-5)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Fri, 02 May 2014 16:37:08 +0200
|
||||
|
||||
httrack (3.48.4-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.4 (3.48-4)
|
||||
closes:#746173
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Sun, 27 Apr 2014 18:48:57 +0200
|
||||
|
||||
httrack (3.48.3-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.3 (3.48-3)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Fri, 11 Apr 2014 20:31:21 +0200
|
||||
|
||||
httrack (3.48.2-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.2 (3.48-2)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Thu, 10 Apr 2014 18:30:08 +0200
|
||||
|
||||
httrack (3.48.1-5) unstable; urgency=low
|
||||
|
||||
* Really call dh_autoreconf, fix configure dependencies.
|
||||
|
||||
-- Matthias Klose <doko@ubuntu.com> Wed, 16 Apr 2014 14:46:20 +0200
|
||||
|
||||
httrack (3.48.1-4) unstable; urgency=low
|
||||
|
||||
* Cleanup in dependencies
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Tue, 15 Apr 2014 22:13:19 +0200
|
||||
|
||||
httrack (3.48.1-3) unstable; urgency=low
|
||||
|
||||
* Fixed FTBFS due to a missing Build-Depends: dh-autoreconf
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Tue, 15 Apr 2014 21:32:03 +0200
|
||||
|
||||
httrack (3.48.1-2) unstable; urgency=low
|
||||
|
||||
* Fixed removal of .a files even on architectures where .a are libraries
|
||||
closes:#744594
|
||||
Enable verosity of unit tests
|
||||
Call dh_autoreconf_clean before dh_clean
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Tue, 15 Apr 2014 21:02:14 +0200
|
||||
|
||||
httrack (3.48.1-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.48.1 (3.48-1)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Wed, 09 Apr 2014 21:02:08 +0200
|
||||
|
||||
httrack (3.47.27-3) unstable; urgency=low
|
||||
|
||||
* Do not depend on automake1.9 but on automake instead
|
||||
see: http://lists.debian.org/debian-devel/2013/05/msg01459.html
|
||||
closes:#724390
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Thu, 26 Sep 2013 20:09:12 +0200
|
||||
|
||||
httrack (3.47.27-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.47.27 (3.47-27)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Sun, 15 Sep 2013 10:59:50 +0200
|
||||
|
||||
httrack (3.47.26-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.47.26 (3.47-26)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Fri, 06 Sep 2013 21:51:28 +0200
|
||||
|
||||
httrack (3.47.25-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.47.25 (3.47-25)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Sun, 01 Sep 2013 16:47:55 +0200
|
||||
|
||||
httrack (3.47.24-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.47.24 (3.47-24)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Fri, 23 Aug 2013 09:45:34 +0200
|
||||
|
||||
httrack (3.47.23-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.47.23 (3.47-23)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Sat, 17 Aug 2013 12:15:37 +0200
|
||||
|
||||
httrack (3.47.22-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.47.22 (3.47-22)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Sun, 11 Aug 2013 21:50:49 +0200
|
||||
|
||||
httrack (3.47.21-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.47.21 (3.47-21)
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Fri, 05 Jul 2013 20:12:25 +0200
|
||||
|
||||
httrack (3.47.20-1) unstable; urgency=low
|
||||
|
||||
* Updated to 3.47.20 (3.47-20)
|
||||
Mostly typos, and lintian fixes
|
||||
|
||||
-- Xavier Roche <xavier@debian.org> Fri, 28 Jun 2013 19:46:33 +0200
|
||||
|
||||
httrack (3.47.19-3) unstable; urgency=low
|
||||
|
||||
* Updated to 3.47.19 (3.47-19)
|
||||
|
||||
6
debian/control
vendored
6
debian/control
vendored
@@ -2,9 +2,11 @@ Source: httrack
|
||||
Section: web
|
||||
Priority: optional
|
||||
Maintainer: Xavier Roche <roche@httrack.com>
|
||||
Standards-Version: 3.9.4
|
||||
Build-Depends: debhelper (>= 8.0.0), zlib1g-dev, libssl-dev, autotools-dev, autoconf, automake1.9, libtool
|
||||
Standards-Version: 3.9.5
|
||||
Build-Depends: debhelper (>= 8.0.0), dh-autoreconf, autotools-dev, autoconf, autoconf-archive, automake, libtool, zlib1g-dev, libssl-dev
|
||||
Homepage: http://www.httrack.com
|
||||
Vcs-Svn: http://httrack.googlecode.com/svn/trunk
|
||||
Vcs-Browser: https://code.google.com/p/httrack/source/browse/trunk/src
|
||||
|
||||
Package: httrack
|
||||
Architecture: any
|
||||
|
||||
10
debian/copyright
vendored
10
debian/copyright
vendored
@@ -5,12 +5,12 @@ The current Debian maintainer is Xavier Roche <xavier@debian.org>
|
||||
|
||||
Upstream author: Xavier Roche <roche@httrack.com>
|
||||
|
||||
Copyright: 1998-2013 Xavier Roche and other contributors
|
||||
Copyright: 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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.
|
||||
|
||||
On Debian systems, the complete text of the GNU General Public
|
||||
License can be found in /usr/share/common-licenses/GPL file.
|
||||
|
||||
4
debian/libhttrack2.files
vendored
4
debian/libhttrack2.files
vendored
@@ -1,5 +1,5 @@
|
||||
usr/lib/libhttrack.so.2.0.47
|
||||
usr/lib/libhttrack.so.2.0.48
|
||||
usr/lib/libhttrack.so.2
|
||||
usr/lib/libhtsjava.so.2.0.47
|
||||
usr/lib/libhtsjava.so.2.0.48
|
||||
usr/lib/libhtsjava.so.2
|
||||
usr/share/httrack/templates
|
||||
|
||||
19
debian/rules
vendored
19
debian/rules
vendored
@@ -23,11 +23,16 @@ ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
|
||||
INSTALL_PROGRAM += -s
|
||||
endif
|
||||
|
||||
# as suggested by Simon McVittie
|
||||
# (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=744380)
|
||||
override_dh_auto_test:
|
||||
VERBOSE=1 dh_auto_test
|
||||
|
||||
configure: configure-stamp
|
||||
configure-stamp:
|
||||
dh_testdir
|
||||
|
||||
autoreconf -v -i
|
||||
dh_autoreconf
|
||||
# note: dpkg-buildflags to be removed when compat=9
|
||||
dh_auto_configure -- --enable-online-unit-tests=auto $(shell dpkg-buildflags --export=configure)
|
||||
|
||||
@@ -50,6 +55,7 @@ clean:
|
||||
dh_testroot
|
||||
rm -f build-stamp configure-stamp
|
||||
dh_auto_clean
|
||||
dh_autoreconf_clean
|
||||
dh_clean
|
||||
|
||||
install: build
|
||||
@@ -79,10 +85,17 @@ install: build
|
||||
mkdir -p $(CURDIR)/debian/httrack/usr/lib/httrack/
|
||||
mv $(CURDIR)/debian/httrack/usr/bin/htsserver \
|
||||
$(CURDIR)/debian/httrack/usr/lib/httrack/
|
||||
rm -f $(CURDIR)/debian/httrack/usr/lib/*.a
|
||||
# remove *.la (https://wiki.debian.org/ReleaseGoals/LAFileRemoval)
|
||||
rm -f $(CURDIR)/debian/httrack/usr/lib/*.la
|
||||
rm -f $(CURDIR)/debian/httrack/usr/lib/httrack/*.a
|
||||
rm -f $(CURDIR)/debian/httrack/usr/lib/httrack/*.la
|
||||
# remove *.a unless we do not have *.so files
|
||||
# see BUG #744594
|
||||
if ls $(CURDIR)/debian/httrack/usr/lib/*.so >/dev/null 2>/dev/null ; then \
|
||||
rm -f $(CURDIR)/debian/httrack/usr/lib/*.a ; \
|
||||
fi
|
||||
if ls $(CURDIR)/debian/httrack/usr/lib/httrack/*.so >/dev/null 2>/dev/null ; then \
|
||||
rm -f $(CURDIR)/debian/httrack/usr/lib/httrack/*.a ; \
|
||||
fi
|
||||
mv $(CURDIR)/debian/httrack/usr/lib/httrack/lib* \
|
||||
$(CURDIR)/debian/httrack/usr/share/httrack/libtest/
|
||||
mkdir -p $(CURDIR)/debian/httrack/usr/lib/httrack/libtest
|
||||
|
||||
2
debian/source/options
vendored
2
debian/source/options
vendored
@@ -1 +1 @@
|
||||
extend-diff-ignore="(^|/)(config\.sub|config\.guess|test-driver|Makefile)$"
|
||||
extend-diff-ignore="(^|/)(config\.sub|config\.guess|test-driver|Makefile|.*\.in|aclocal\.m4|configure)$"
|
||||
|
||||
58
history.txt
58
history.txt
@@ -4,7 +4,49 @@ HTTrack Website Copier release history:
|
||||
|
||||
This file lists all changes and fixes that have been made for HTTrack.
|
||||
|
||||
3.47-19
|
||||
3.48-17
|
||||
+ Fixed: URL list not working anymore (tom swift)
|
||||
+ Fixed: FTBFS on ARM
|
||||
+ Fixed: buggy FFFD (replacement character) in place of leading non-ascii character such as Chinese ones (aballboy)
|
||||
+ Fixed: FTBFS when compiling with zlib versions < 1.2.70 (sammyx)
|
||||
+ Fixed: buggy SVG (Smiling Spectre)
|
||||
+ Fixed: do not uncompress .tgz advertised as "streamed" (Smiling Spectre)
|
||||
+ Fixed: NULL pointer dereferencing in back_unserialize (htsback.c:976)
|
||||
+ Fixed: library development files
|
||||
+ Fixed: --advanced-maxlinks broken (Localhost)
|
||||
+ Fixed: -devel package should now be standalone
|
||||
+ Fixed: assertion failure at htscore.c:244 (len + liensbuf->string_buffer_size < liensbuf->string_buffer_capa)
|
||||
+ Fixed: injection-proof templates
|
||||
+ Fixed: htshash.c:330 assertion failure ("error invalidating hash entry") (Sergey)
|
||||
+ Fixed: Windows 2000 regression (fantozzi.usenet)
|
||||
+ Fixed: code cleanup (aliasing issues, const correctness, safe strings)
|
||||
+ New: handle --advanced-maxlinks=0 to disable maximum link limits
|
||||
+ New: updated ZIP routines (zlib 1.2.8)
|
||||
+ Fixed: broken 32-bit version
|
||||
+ Fixed: assertion "segOutputSize < segSize assertion fails at htscharset.c:993"
|
||||
+ Fixed: new zlib version fixing CVE-2004-0797 and CVE-2005-2096
|
||||
+ Fixed: more reliable crash reporting
|
||||
+ Fixed: fixed infamous "hashtable internal error: cuckoo/stash collision" errors
|
||||
+ Fixed: safety cleanup in many strings operations
|
||||
+ Fixed: buggy option pannels
|
||||
+ New: Enforce check against CVE-2014-0160
|
||||
+ New: improved hashtables to speedup large mirrors
|
||||
+ New: added unit tests
|
||||
+ New: Added %a option, allowing to define the "Accept:" header line.
|
||||
+ New: Added %X option, to define additional request header lines.
|
||||
+ New: Added option '-%t', preserving the original file type (which may produce non-browseable file locally)
|
||||
+ Fixed: remove scope id (% character) in dotted address resolution (especially for catchurl proxy)
|
||||
+ Fixed: build fixes, including for Android, non-SSL releases
|
||||
+ Fixed: buggy keep-alive handling, leading to waste connections
|
||||
+ Fixed: removed chroot and setuid features (this is definitely not our business)
|
||||
+ Fixed: removed MMS (Microsoft Media Server) ripping code (mmsrip) (dead protocol, unmaintained code, licensing issues)
|
||||
+ Fixed: type mishandling when processing a redirect (such as a .PDF redirecting to another .PDF, with a text/html type tagged in the redirect message)
|
||||
+ Fixed: infinite loop when attempting to download a file:/// directory on Unix (gp)<br/>
|
||||
+ Fixed: removed background DNS resolution, prone to bugs
|
||||
+ Fixed: do not choke on Windows 2000 because of missing SetDllDirectory() (Andy Hewitt)
|
||||
+ Fixed: %h custom build structure parameter not taken in account (William Clark)
|
||||
|
||||
3.47-27
|
||||
+ New: support for IDNA / RFC 3492 (punycode) handling
|
||||
+ New: openssl is no longer dynamically probed at stratup, but dynamically linked
|
||||
+ Fixed: random closing of files/sockets, leading to "zip_zipWriteInFileInZip_failed" assertion, "bogus state" messages, or random garbage in downloaded files
|
||||
@@ -34,6 +76,20 @@ This file lists all changes and fixes that have been made for HTTrack.
|
||||
+ Fixed: more windows-specific fixes regarding 260-character path limit
|
||||
+ Fixed: escaping issue in top index
|
||||
+ Fixed: Linux build cleanup (gentoo patches merge, lintian fixes et al.)
|
||||
+ Fixed: Fixed div-by-zero when specifying more than 1000 connections per seconds (probably not very common)
|
||||
+ Fixed: Mishandling of '+' in URLs introduced in 3.47-15 (sarclaudio)
|
||||
+ Fixed: "Wildcard domains in cookies do not match" (alexei dot co at gmail dot com )
|
||||
+ Fixed: buggy referer while parsing: the referer of all links in the page is the current page being parsed, NOT the parent page. (alexei dot com at gmail dot com)
|
||||
+ Fixed: Russian translation fixes by Oleg Komarov (komoleg at mail dot ru)
|
||||
+ New: Added .torrent => application/x-bittorrent built-in MIME type (alexei dot co at gmail dot com)
|
||||
+ Fixed: unable to download an URL whose filename embeds special characters such as # (lugusto)
|
||||
+ New: Croatian translation by Dominko Aždajić (domazd at mail dot ru)
|
||||
+ Fixed: url-escaping regression introduced in the previous subrelease
|
||||
+ Fixed: content-disposition NOT taken in account (Stephan Matthiesen)
|
||||
+ Fixed: buggy DNS cache leading to random crashes
|
||||
+ Fixed: fixed logging not displaying robots.txt rules limits by default
|
||||
+ Fixed: license year and GPL link, libtool fixes (cicku)
|
||||
+ Fixed: Keywords field in desktop files (Sebastian Pipping)
|
||||
|
||||
3.46-1
|
||||
* New: Unicode filenames handling
|
||||
|
||||
@@ -115,6 +115,7 @@ DATA = $(HelpHtml_DATA) $(HelpHtmlTxt_DATA) $(HelpHtmldiv_DATA) \
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
@@ -123,14 +124,12 @@ AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_CFLAGS = @DEFAULT_CFLAGS@
|
||||
DEFAULT_LDFLAGS = @DEFAULT_LDFLAGS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
@@ -144,6 +143,7 @@ EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
HTTPS_SUPPORT = @HTTPS_SUPPORT@
|
||||
ICONV_LIBS = @ICONV_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -199,7 +199,6 @@ abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
|
||||
@@ -375,7 +375,7 @@ example: httrack --continue
|
||||
continues a mirror in the current folder
|
||||
|
||||
HTTrack version 3.03BETAo4 (compiled Jul 1 2001)
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2013 Xavier Roche and other contributors
|
||||
[compiled: Linux linux 2.2.18 #9 SMP Sat Dec 30 09:51:39 CET 2000 i586 unknown]
|
||||
|
||||
</pre>
|
||||
|
||||
@@ -52,8 +52,7 @@ offline browser : copy websites to a local directory</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>httrack [
|
||||
url ]... [ −filter ]... [ +filter ]... [ −O,
|
||||
−−path</b> ] [ <b>−%O,
|
||||
−−chroot</b> ] [ <b>−w,
|
||||
−−path</b> ] [ <b>−w,
|
||||
−−mirror</b> ] [ <b>−W,
|
||||
−−mirror−wizard</b> ] [ <b>−g,
|
||||
−−get−files</b> ] [ <b>−i,
|
||||
@@ -70,15 +69,13 @@ url ]... [ −filter ]... [ +filter ]... [ −O,
|
||||
−−max−rate[=N]</b> ] [ <b>−%cN,
|
||||
−−connection−per−second[=N]</b> ] [
|
||||
<b>−GN, −−max−pause[=N]</b> ] [
|
||||
<b>−%mN,
|
||||
−−max−mms−time[=N]</b> ] [
|
||||
<b>−cN, −−sockets[=N]</b> ] [
|
||||
<b>−TN, −−timeout</b> ] [ <b>−RN,
|
||||
−−retries[=N]</b> ] [ <b>−JN,
|
||||
−−min−rate[=N]</b> ] [ <b>−HN,
|
||||
−−host−control[=N]</b> ] [ <b>−%P,
|
||||
−−extended−parsing[=N]</b> ] [
|
||||
<b>−n, −−near</b> ] [ <b>−t,
|
||||
<b>−TN, −−timeout[=N]</b> ] [
|
||||
<b>−RN, −−retries[=N]</b> ] [
|
||||
<b>−JN, −−min−rate[=N]</b> ] [
|
||||
<b>−HN, −−host−control[=N]</b> ] [
|
||||
<b>−%P, −−extended−parsing[=N]</b> ]
|
||||
[ <b>−n, −−near</b> ] [ <b>−t,
|
||||
−−test</b> ] [ <b>−%L,
|
||||
−−list</b> ] [ <b>−%S,
|
||||
−−urllist</b> ] [ <b>−NN,
|
||||
@@ -111,7 +108,9 @@ url ]... [ −filter ]... [ +filter ]... [ −O,
|
||||
−−referer</b> ] [ <b>−%E,
|
||||
−−from</b> ] [ <b>−%F,
|
||||
−−footer</b> ] [ <b>−%l,
|
||||
−−language</b> ] [ <b>−C,
|
||||
−−language</b> ] [ <b>−%a,
|
||||
−−accept</b> ] [ <b>−%X,
|
||||
−−headers</b> ] [ <b>−C,
|
||||
−−cache[=N]</b> ] [ <b>−k,
|
||||
−−store−all−in−cache</b> ] [
|
||||
<b>−%n, −−do−not−recatch</b> ]
|
||||
@@ -144,8 +143,7 @@ url ]... [ −filter ]... [ +filter ]... [ −O,
|
||||
<b>−%!,
|
||||
−−disable−security−limits</b> ] [
|
||||
<b>−V, −−userdef−cmd</b> ] [
|
||||
<b>−%U, −−user</b> ] [ <b>−%W,
|
||||
−−callback</b> ] [ <b>−K,
|
||||
<b>−%W, −−callback</b> ] [ <b>−K,
|
||||
−−keep−links[=N]</b> ] [</p>
|
||||
|
||||
<h2>DESCRIPTION
|
||||
@@ -227,29 +225,17 @@ options:</b></p>
|
||||
cellspacing="0" cellpadding="0">
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="4%">
|
||||
<td width="3%">
|
||||
|
||||
|
||||
<p>−O</p></td>
|
||||
<td width="7%"></td>
|
||||
<td width="8%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>path for mirror/logfiles+cache (−O path
|
||||
mirror[,path cache and logfiles]) (−−path
|
||||
<param>)</p> </td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="4%">
|
||||
|
||||
|
||||
<p>−%O</p></td>
|
||||
<td width="7%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>chroot path to, must be r00t (−%O root path)
|
||||
(−−chroot <param>)</p></td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Action
|
||||
@@ -475,19 +461,6 @@ hour) (−−max−time[=N])</p></td></tr>
|
||||
|
||||
<p>pause transfer if N bytes reached, and wait until lock
|
||||
file is deleted (−−max−pause[=N])</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="9%">
|
||||
|
||||
|
||||
<p>−%mN</p></td>
|
||||
<td width="2%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>maximum mms stream download time in seconds (60=1
|
||||
minute, 3600=1 hour)
|
||||
(−−max−mms−time[=N])</p> </td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Flow
|
||||
@@ -518,7 +491,7 @@ control:</b></p>
|
||||
|
||||
|
||||
<p>timeout, number of seconds after a non−responding
|
||||
link is shutdown (−−timeout)</p></td></tr>
|
||||
link is shutdown (−−timeout[=N])</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="4%">
|
||||
@@ -1049,6 +1022,32 @@ HTTP headers (−F "user−agent name")
|
||||
|
||||
<p>preffered language (−%l "fr, en, jp, *"
|
||||
(−−language <param>)</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="4%">
|
||||
|
||||
|
||||
<p>−%a</p></td>
|
||||
<td width="7%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>accepted formats (−%a
|
||||
"text/html,image/png;q=0.9,*/*;q=0.1"
|
||||
(−−accept <param>)</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="4%">
|
||||
|
||||
|
||||
<p>−%X</p></td>
|
||||
<td width="7%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>additional HTTP header line (−%X
|
||||
"X−Magic: 42" (−−headers
|
||||
<param>)</p> </td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Log, index,
|
||||
@@ -1632,18 +1631,6 @@ memory boundary checks)
|
||||
|
||||
<p>generate transfer rate statictics every minutes
|
||||
(−−debug−ratestats)</p> </td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="6%">
|
||||
|
||||
|
||||
<p>−#!</p></td>
|
||||
<td width="5%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>execute a shell command (−#! "echo
|
||||
hello") (−−exec <param>)</p></td></tr>
|
||||
</table>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em"><b>Dangerous
|
||||
@@ -1707,25 +1694,13 @@ specific options:</b></p>
|
||||
|
||||
|
||||
<p style="margin-top: 1em">execute system command after
|
||||
each files ($0 is the filename: −V "rm ")
|
||||
each files ($0 is the filename: −V "rm \$0")
|
||||
(−−userdef−cmd <param>)</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="4%">
|
||||
|
||||
|
||||
<p>−%U</p></td>
|
||||
<td width="7%"></td>
|
||||
<td width="78%">
|
||||
|
||||
|
||||
<p>run the engine with another id when called as root
|
||||
(−%U smith) (−−user <param>)</p></td></tr>
|
||||
<tr valign="top" align="left">
|
||||
<td width="11%"></td>
|
||||
<td width="4%">
|
||||
|
||||
|
||||
<p>−%W</p></td>
|
||||
<td width="7%"></td>
|
||||
<td width="78%">
|
||||
@@ -2311,13 +2286,13 @@ other information you deem necessary.</p>
|
||||
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">Copyright (C)
|
||||
Xavier Roche and other contributors</p>
|
||||
1998-2014 Xavier Roche and other contributors</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">This program is
|
||||
free software; you can redistribute it and/or modify it
|
||||
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 any later version.</p>
|
||||
published by the Free Software Foundation, either version 3
|
||||
of the License, or (at your option) any later version.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">This program is
|
||||
distributed in the hope that it will be useful, but WITHOUT
|
||||
@@ -2327,9 +2302,8 @@ GNU General Public License for more details.</p>
|
||||
|
||||
<p style="margin-left:11%; margin-top: 1em">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., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
USA.</p>
|
||||
this program. If not, see
|
||||
<http://www.gnu.org/licenses/>.</p>
|
||||
|
||||
<h2>AVAILABILITY
|
||||
<a name="AVAILABILITY"></a>
|
||||
|
||||
@@ -5,5 +5,6 @@ Categories=Network;
|
||||
Terminal=false
|
||||
Name=Browse Mirrored Websites
|
||||
Comment=Browse Websites Mirrored by WebHTTrack
|
||||
Keywords=browse mirrored;
|
||||
Exec=webhttrack browse
|
||||
Icon=httrack
|
||||
|
||||
@@ -5,5 +5,6 @@ Categories=Network;
|
||||
Terminal=false
|
||||
Name=WebHTTrack Website Copier
|
||||
Comment=Copy websites to your computer
|
||||
Keywords=copy website;backup website;capture website;offline browser;surf offline;mirror;mirroring;archiving;forensics;crawl;preservation;
|
||||
Exec=webhttrack
|
||||
Icon=httrack
|
||||
|
||||
18
lang.def
18
lang.def
@@ -54,6 +54,8 @@ Bulgarian
|
||||
LANGUAGE_27
|
||||
Finnish
|
||||
LANGUAGE_28
|
||||
Croatian
|
||||
LANGUAGE_29
|
||||
LANGUAGE_NAME
|
||||
LANGUAGE_NAME
|
||||
LANGUAGE_FILE
|
||||
@@ -428,6 +430,8 @@ LANG_I6
|
||||
Create a Start Page
|
||||
LANG_I6b
|
||||
Create a word database of all html pages
|
||||
LANG_I6c
|
||||
Build a complete RFC822 mail (MHT/EML) archive of the mirror
|
||||
LANG_I7
|
||||
Create error logging and report files
|
||||
LANG_I8
|
||||
@@ -476,6 +480,12 @@ LANG_I23
|
||||
Browser identity
|
||||
LANG_I23b
|
||||
Comment to be placed in each HTML file
|
||||
LANG_I23c
|
||||
Languages accepted by the browser
|
||||
LANG_I23d
|
||||
Additional HTTP headers to be sent in each requests
|
||||
LANG_I23e
|
||||
HTTP referer to be sent for initial URLs
|
||||
LANG_I24
|
||||
Back to starting page
|
||||
LANG_I25
|
||||
@@ -536,6 +546,8 @@ LANG_I35
|
||||
Make an index
|
||||
LANG_I35b
|
||||
Make a word database
|
||||
LANG_I35c
|
||||
Build a mail archive
|
||||
LANG_I36
|
||||
Log files
|
||||
LANG_I37
|
||||
@@ -564,6 +576,12 @@ LANG_I43
|
||||
Identity
|
||||
LANG_I43b
|
||||
HTML footer
|
||||
LANG_I43c
|
||||
Languages
|
||||
LANG_I43d
|
||||
Additional HTTP Headers
|
||||
LANG_I43e
|
||||
Default referer URL
|
||||
LANG_I44
|
||||
N# connections
|
||||
LANG_I45
|
||||
|
||||
13
lang.indexes
13
lang.indexes
@@ -1,8 +1,9 @@
|
||||
bg:27
|
||||
es:3
|
||||
cz:21
|
||||
ct:14
|
||||
cs:13
|
||||
cs:21
|
||||
zh_tw:14
|
||||
zh:13
|
||||
hr:29
|
||||
da:15
|
||||
de:4
|
||||
et:16
|
||||
@@ -11,13 +12,13 @@ fi:28
|
||||
fr:2
|
||||
el:26
|
||||
it:9
|
||||
jp:19
|
||||
ja:19
|
||||
mk:18
|
||||
hu:11
|
||||
nl:5
|
||||
no:23
|
||||
pl:6
|
||||
pt:12
|
||||
pt_br:12
|
||||
pt:7
|
||||
ro:25
|
||||
ru:8
|
||||
@@ -25,4 +26,4 @@ sk:20
|
||||
si:24
|
||||
sv:17
|
||||
tr:10
|
||||
ua:22
|
||||
uk:22
|
||||
|
||||
@@ -3,7 +3,7 @@ LANGUAGE_NAME
|
||||
LANGUAGE_FILE
|
||||
Cesky
|
||||
LANGUAGE_ISO
|
||||
cz
|
||||
cs
|
||||
LANGUAGE_AUTHOR
|
||||
Antonín Matìjèík (matejcik@volny.cz) \r \n
|
||||
LANGUAGE_CHARSET
|
||||
|
||||
@@ -3,7 +3,7 @@ Chinese-BIG5
|
||||
LANGUAGE_FILE
|
||||
Chinese-BIG5
|
||||
LANGUAGE_ISO
|
||||
ct
|
||||
zh_TW
|
||||
LANGUAGE_AUTHOR
|
||||
David Hing Cheong Hung (DAVEHUNG@mtr.com.hk)\r\n
|
||||
LANGUAGE_CHARSET
|
||||
|
||||
@@ -3,7 +3,7 @@ Chinese-Simplified
|
||||
LANGUAGE_FILE
|
||||
Chinese-Simplified
|
||||
LANGUAGE_ISO
|
||||
cs
|
||||
zh
|
||||
LANGUAGE_AUTHOR
|
||||
Brook Qin (brookqwr at sina.com) \r\n
|
||||
LANGUAGE_CHARSET
|
||||
|
||||
932
lang/Croatian.txt
Executable file
932
lang/Croatian.txt
Executable file
@@ -0,0 +1,932 @@
|
||||
LANGUAGE_NAME
|
||||
Hrvatski
|
||||
LANGUAGE_FILE
|
||||
Croatian
|
||||
LANGUAGE_ISO
|
||||
hr
|
||||
LANGUAGE_AUTHOR
|
||||
Dominko Aždajiæ (domazd@mail.ru) \r\n
|
||||
LANGUAGE_CHARSET
|
||||
ISO-8859-2
|
||||
LANGUAGE_WINDOWSID
|
||||
Croatian
|
||||
OK
|
||||
U redu
|
||||
Cancel
|
||||
Odustati
|
||||
Exit
|
||||
Svršetak
|
||||
Close
|
||||
Zatvoriti
|
||||
Cancel changes
|
||||
Opozvati izmjene
|
||||
Click to confirm
|
||||
Preuzeti izmjene
|
||||
Click to get help!
|
||||
Kliknuti za pomoæ!
|
||||
Click to return to previous screen
|
||||
Kliknuti za povratak na prethodni prikaz
|
||||
Click to go to next screen
|
||||
Kliknuti za povratak na slijedeæi prikaz
|
||||
Hide password
|
||||
Sakriti lozinku
|
||||
Save project
|
||||
Pohraniti projekt
|
||||
Close current project?
|
||||
Zatvoriti tekuæi projekt?
|
||||
Delete this project?
|
||||
Izbrisati taj projekt?
|
||||
Delete empty project %s?
|
||||
Izbrisati prazni projekt %s?
|
||||
Action not yet implemented
|
||||
Funkcija još nije raspoloživa
|
||||
Error deleting this project
|
||||
Pogreška tijekom brisanja tog projekta
|
||||
Select a rule for the filter
|
||||
Izaberite neko pravilo za taj filtar
|
||||
Enter keywords for the filter
|
||||
Unesite kljuène rijeèi za taj filtar
|
||||
Cancel
|
||||
Odustati
|
||||
Add this rule
|
||||
Dodati to pravilo
|
||||
Please enter one or several keyword(s) for the rule
|
||||
Unesite molim jednu ili više kljuènih rijeèi za to pravilo
|
||||
Add Scan Rule
|
||||
Dodati pravilo filtriranja
|
||||
Criterion
|
||||
Pravilo filtra:
|
||||
String
|
||||
Unesite rijeè:
|
||||
Add
|
||||
Dodati
|
||||
Scan Rules
|
||||
Pravila filtriranja
|
||||
Use wildcards to exclude or include URLs or links.\nYou can put several scan strings on the same line.\nUse spaces as separators.\n\nExample: +*.zip -www.*.com -www.*.edu/cgi-bin/*.cgi
|
||||
Koristite višeznaènik za ukljuèivanje ili iskljuèivanje mrežnih adresa ili poveznica.\nU isti redak možete staviti i nekoliko filtarskih pravila uzastopno.\nUpotrijebite praznine kao razdjelnike.\n\nPrimjerice: +*.zip -www.*.com -www.*.edu/cgi-bin/*.cgi
|
||||
Exclude links
|
||||
Izuzete poveznice
|
||||
Include link(s)
|
||||
Obuhvaæene poveznice
|
||||
Tip: To have ALL GIF files included, use something like +www.someweb.com/*.gif. \n(+*.gif / -*.gif will include/exclude ALL GIFs from ALL sites)
|
||||
Preporuka: Za obuhvaæanje SVIH datoteka GIF, upotrijebite nešto poput +www.neka-mreža.com/*.gif. \n(+*.gif / -*.gif æe ukljuèivat/iskljuèivati SVE GIF-ove sa SVIH stranica)
|
||||
Save prefs
|
||||
Pohraniti postavke
|
||||
Matching links will be excluded:
|
||||
Shodne poveznice æe biti izuzete:
|
||||
Matching links will be included:
|
||||
Shodne poveznice æe biti obuhvaæene:
|
||||
Example:
|
||||
Primjer:
|
||||
gif\r\nWill match all GIF files
|
||||
gif\r\nPronalazi sve datoteke GIF
|
||||
blue\r\nWill find all files with a matching 'blue' sub-string such as 'bluesky-small.jpeg'
|
||||
blue\r\nPronalazi sve datoteke koje sadržavaju 'blue' kao primjerice 'bluesky-small.jpeg'
|
||||
bigfile.mov\r\nWill match the file 'bigfile.mov', but not 'bigfile2.mov'
|
||||
bigfile.mov\r\Pronalazi sve datoteke 'bigfile.mov', ali ne i 'bigfile2.mov'
|
||||
cgi\r\nWill find links with folder name matching sub-string 'cgi' such as /cgi-bin/somecgi.cgi
|
||||
cgi\r\nPronalazi sve poveznice s mapama koje u nazivu sadrže 'cgi' kao primjerice /cgi-bin/somecgi.cgi
|
||||
cgi-bin\r\nWill find links with folder name matching whole 'cgi-bin' string (but not cgi-bin-2, for example)
|
||||
cgi-bin\r\nPronalazi poveznice prema mapama koje u nazivu sadrže cijeli niz 'cgi-bin' (ali ne i primjerice cgi-bin-2)
|
||||
someweb.com\r\nWill find links with matching sub-string such as www.someweb.com, private.someweb.com etc.
|
||||
someweb.com\r\nPronalazi poveznice s pod-nizovima poput www.neka-mreža.com, privatno.neka-mreža.com itd.
|
||||
someweb\r\nWill find links with matching folder sub-string such as www.someweb.com, www.someweb.edu, private.someweb.otherweb.com etc.
|
||||
someweb\r\nPronalazi poveznice sa shodnim pod-nizom poput www.neka-mreža.com, www.neka-mreža.edu, private.neka-mreža.druga-mreža.com itd.
|
||||
www.someweb.com\r\nWill find links matching whole 'www.someweb.com' sub-string (but not links such as private.someweb.com/..)
|
||||
www.someweb.com\r\nPronalazi poveznice koje u nazivu sadrže cijeli pod-niz 'www.neka-mreža.com' (ali ne i poveznice poput privatno.neka-mreža.com/..)
|
||||
someweb\r\nWill find any links with matching sub-string such as www.someweb.com/.., www.test.abc/fromsomeweb/index.html, www.test.abc/test/someweb.html etc.
|
||||
someweb\r\nPronalazi bilo koju poveznicu sa shodnim pod-nizom poput www.neka-mreža.com/.., www.primjer.abc/s-neke-mreže/kazalo.html, www.primjer.abc/primjer/neka-mreža.html itd.
|
||||
www.test.com/test/someweb.html\r\nWill only find the 'www.test.com/test/someweb.html' file. Note that you have to type the complete path (URL + site path)
|
||||
www.test.com/test/someweb.html\r\nPronalazi samo datoteku 'www.primjer.com/primjer/neka-mreža.html'. Imajte na umu da morate unijeti potpunu putanju (URL + putanja do mrežnog mjesta)
|
||||
All links will match
|
||||
Obuhvaæene su sve poveznice
|
||||
Add exclusion filter
|
||||
Pridodati filtar izuzimanja
|
||||
Add inclusion filter
|
||||
Pridodati filtar obuhvaæanja
|
||||
Existing filters
|
||||
Postojeæi filtri
|
||||
Cancel changes
|
||||
Opozvati izmjene
|
||||
Save current preferences as default values
|
||||
Tekuæe postavke pohraniti kao polazne vrijednosti
|
||||
Click to confirm
|
||||
Kliknite za potvrðivanje
|
||||
No log files in %s!
|
||||
U %s nema datoteka zapisnika!
|
||||
No 'index.html' file in %s!
|
||||
U %s nema datoteke 'index.html'!
|
||||
Click to quit WinHTTrack Website Copier
|
||||
Kliknite za okonèavanje rada s WinHTTrack Website Copierom
|
||||
View log files
|
||||
Prikazati zapisnièke datoteke
|
||||
Browse HTML start page
|
||||
Prikazati poèetnu stranicu HTML-a
|
||||
End of mirror
|
||||
Zrcaljenje sadržaja je završeno
|
||||
View log files
|
||||
Prikazati zapisnièke datoteke
|
||||
Browse Mirrored Website
|
||||
Prikazati zrcaljene sadržaje
|
||||
New project...
|
||||
Novi projekt...
|
||||
View error and warning reports
|
||||
Prikazati izvješæa o pogreškama i upozorenjima
|
||||
View report
|
||||
Prikaz izvješæa
|
||||
Close the log file window
|
||||
Zatvoriti okno zapisnièke datoteke
|
||||
Info type:
|
||||
Vrsta informacija:
|
||||
Errors
|
||||
Pogreške
|
||||
Infos
|
||||
Informacije
|
||||
Find
|
||||
Pronaæi
|
||||
Find a word
|
||||
Pronaæi rijeè
|
||||
Info log file
|
||||
Zapisnièka info-datoteka
|
||||
Warning/Errors log file
|
||||
Datoteka zapisa o upozorenjima/pogreškama
|
||||
Unable to initialize the OLE system
|
||||
Sustav OLE-a nije mogao biti pokrenut
|
||||
WinHTTrack could not find any interrupted download file cache in the specified folder!
|
||||
WinHTTrack u navedenoj mapi nije mogao pronaæi meðupohranu nikakvog prekinutog preuzimanja datoteka!
|
||||
Could not connect to provider
|
||||
Povezivanje s dobavljaèem nije uspjelo
|
||||
receive
|
||||
zaprimiti
|
||||
request
|
||||
zatražiti
|
||||
connect
|
||||
povezati
|
||||
search
|
||||
tražiti
|
||||
ready
|
||||
gotovo
|
||||
error
|
||||
pogreška
|
||||
Receiving files..
|
||||
Zaprimanje datoteka..
|
||||
Parsing HTML file..
|
||||
Rašèlanjivanje datoteke HTML-a..
|
||||
Purging files..
|
||||
Èišæenje datoteka..
|
||||
Loading cache in progress..
|
||||
U tijeku je uèitavanje meðuspremnika..
|
||||
Parsing HTML file (testing links)..
|
||||
Rašèlanjivanje datoteke HTML-a (provjeravanje poveznica)..
|
||||
Pause - Toggle [Mirror]/[Pause download] to resume operation
|
||||
Stanka - Nastavak putem izbornièkih naredbi [Zrcaljenje]/[Stanka preuzimanja]
|
||||
Finishing pending transfers - Select [Cancel] to stop now!
|
||||
Završavaju se tekuæi prijenosi - Trenutna obustava pomoæu [Odustati]
|
||||
scanning
|
||||
pregledavanje
|
||||
Waiting for scheduled time..
|
||||
Èeka se zadano vrijeme..
|
||||
Transferring data..
|
||||
Prenošenje podataka..
|
||||
Connecting to provider
|
||||
Povezivanje s dobavljaèem
|
||||
[%d seconds] to go before start of operation
|
||||
[%d sekundi] do poèetka radnje
|
||||
Site mirroring in progress [%s, %s bytes]
|
||||
Zrcaljenje sadržaja je u tijeku [%s, %s bajta]
|
||||
Site mirroring finished!
|
||||
Zrcaljenje sadržaja je završeno!
|
||||
A problem occured during the mirroring operation\n
|
||||
Tijekom zrcaljenja je nastao jedan problem\n
|
||||
\nDuring:\n
|
||||
\nTrajanje:\n
|
||||
\nSee the log file if necessary.\n\nClick FINISH to quit WinHTTrack Website Copier.\n\nThanks for using WinHTTrack!
|
||||
\nPojedinosti po potrebi pogledajte u zapisnièkoj datoteci.\n\nKliknite na ZAVRŠITI za okonèavanje rada WinHTTrack Website Copiera.\n\nHvala Vam na uporabi WinHTTracka!
|
||||
Mirroring operation complete.\nClick Exit to quit WinHTTrack.\nSee log file(s) if necessary to ensure that everything is OK.\n\nThanks for using WinHTTrack!
|
||||
Zrcaljenje je dovršeno.\nKliknite na Svršetak za okonèavanje rada s WinHTTrackom.\nPogledajte po potrebi u zapisnik(e) kako bi se uvjerili da je sve u redu.\n\nHvala Vam na uporabi WinHTTracka!!
|
||||
* * MIRROR ABORTED! * *\r\nThe current temporary cache is required for any update operation and only contains data downloaded during the present aborted session.\r\nThe former cache might contain more complete information; if you do not want to lose that information, you have to restore it and delete the current cache.\r\n[Note: This can easily be done here by erasing the hts-cache/new.* files]\r\n\r\nDo you think the former cache might contain more complete information, and do you want to restore it?
|
||||
* * ZRCALJENJE JE PREKINUTO! * *\r\nTekuæi privremeni meðuspremnik æe biti potreban za neku buduæu aktualizaciju i sadrži samo podatke, koji su preuzeti tijekom upravo prekinutog zasjedanja.\r\nPrethodni meðuspremnik možda sadrži potpunije podatke; ukoliko te podatke ne želite izgubiti, morate ih ponovno uspostaviti i izbrisati tekuæi meðuspremnik.\r\n[Napomena: To se jednostavno može napraviti brisanjem datoteka hts-cache/new.*]\r\n\r\nMislite li da ovom zasjedanju prethodeæi meðuspremnik može sadržavati potpunije podatke, i želite li ga ponovno uspostaviti?
|
||||
* * MIRROR ERROR! * *\r\nHTTrack has detected that the current mirror is empty. If it was an update, the previous mirror has been restored.\r\nReason: the first page(s) either could not be found, or a connection problem occured.\r\n=> Ensure that the website still exists, and/or check your proxy settings! <=
|
||||
* * POGREŠKA PRI ZRCALJENJU! * *\r\nHTTrack je zapazio da je tekuæe zrcalo prazno. Ukoliko je to bila neka dogradnja, onda je prethodno zrcalo ponovno uspostavljeno.\r\nRazlog: ili prva stranica nije mogla biti pronaðena, ili se pak pojavio neki problem.\r\n=> Uvjerite se da dotièno mrežno mjesto još uvijek postoji, i/ili provjerite postavke Vašeg usmjerivaèa! <=
|
||||
\n\nTip: Click [View log file] to see warning or error messages
|
||||
\n\nPreporuka: Kliknite na [Prikazati zapisnièke datoteke], kako bi vidjeli upozorenja ili dojave pogreški
|
||||
Error deleting a hts-cache/new.* file, please do it manually
|
||||
Pogreška pri brisanju datoteke hts-cache/new.*, molim obavite to ruèno
|
||||
Do you really want to quit WinHTTrack Website Copier?
|
||||
Doista želite okonèati rad s WinHTTrack Website Copierom?
|
||||
- Mirroring Mode -\n\nEnter address(es) in URL box
|
||||
- Stanje zrcaljenja -\n\nUnesite adresu(-e) u polje URL-a
|
||||
- Interactive Wizard Mode (questions) -\n\nEnter address(es) in URL box
|
||||
- Interaktivno stanje vodièa s povratnim pitanjima -\n\nUnesite adresu(-e) u polje URL-a
|
||||
- File Download Mode -\n\nEnter file address(es) in URL box
|
||||
- Stanje preuzimanja datoteka -\n\nUnesite adresu(-e) datoteke u polje URL-a
|
||||
- Link Testing Mode -\n\nEnter Web address(es) with links to test in URL box
|
||||
- Stanje provjere poveznica -\n\nUnesite spletnu adresu(-e) s poveznicama za provjeravanje u polje URL-a
|
||||
- Update Mode -\n\nVerify address(es) in URL box, check parameters if necessary then click on 'NEXT' button
|
||||
- Stanje nadograðivanja -\n\nOvjerite adresu(-e) u polje URL-a, provjerite po potrebi parametre a zatim kliknite na gumb 'SLIJEDEÆE'
|
||||
- Resume Mode (Interrupted Operation) -\n\nVerify address(es) in URL box, check parameters if necessary then click on 'NEXT' button
|
||||
- Stanje nadovezivanja (prekinute radnje) -\n\nOvjerite adresu(-e) u polje URL-a, provjerite po potrebi parametre a zatim kliknite na gumb 'SLIJEDEÆE'
|
||||
Log files Path
|
||||
Putanja zapisnièkih datoteka
|
||||
Path
|
||||
Putanja
|
||||
- Links List Mode -\n\nUse URL box to enter address(es) of page(s) containing links to mirror
|
||||
- Stanje nabrajanja poveznica -\n\nKoristite okvir URL-a za unos adrese(-a) stranice(-a) koje sadrže dotiène poveznice
|
||||
New project / Import?
|
||||
Novi projekat / Uvoz?
|
||||
Choose criterion
|
||||
Odaberite kriterij
|
||||
Maximum link scanning depth
|
||||
Maksimum dubine grananja poveznica
|
||||
Enter address(es) here
|
||||
Ovdje unijeti adresu(-e)
|
||||
Define additional filtering rules
|
||||
Odrediti dodatna pravila filtriranja
|
||||
Proxy Name (if needed)
|
||||
Naziv posrednièkog raèunalo (po potrebi)
|
||||
Proxy Port
|
||||
Posrednièki port
|
||||
Define proxy settings
|
||||
Odredite postavke posrednika
|
||||
Use standard HTTP proxy as FTP proxy
|
||||
Koristiti standardni posrednik HTTP-a kao posrednik FTP-a
|
||||
Path
|
||||
Putanja
|
||||
Select Path
|
||||
Odabrati putanju
|
||||
Path
|
||||
Putanja
|
||||
Select Path
|
||||
Odabrati putanju
|
||||
Quit WinHTTrack Website Copier
|
||||
Okonèati rad WinHTTrack Website Copiera
|
||||
About WinHTTrack
|
||||
O programu WinHTTrack
|
||||
Save current preferences as default values
|
||||
Tekuæe postavke pohraniti kao polazne vrijednosti
|
||||
Click to continue
|
||||
Kliknite ovdje za nastavak
|
||||
Click to define options
|
||||
Kliknite ovdje za odreðivanje moguænosti
|
||||
Click to add a URL
|
||||
Kliknite ovdje za dodavanje URL-a
|
||||
Load URL(s) from text file
|
||||
URL(-e) uèitati iz tekstualne datoteke
|
||||
WinHTTrack preferences (*.opt)|*.opt||
|
||||
Postavke WinHTTracka (*.opt)|*.opt||
|
||||
Address List text file (*.txt)|*.txt||
|
||||
Tekstualna datoteka sa spiskom adresa (*.txt)|*.txt||
|
||||
File not found!
|
||||
Datoteka nije pronaðena!
|
||||
Do you really want to change the project name/path?
|
||||
Doista želite izmijeniti naziv i putanju projekta?
|
||||
Load user-default options?
|
||||
Uèitati korisnikom zadane polazne moguænosti?
|
||||
Save user-default options?
|
||||
Pohraniti korisnikom zadane polazne moguænosti?
|
||||
Reset all default options?
|
||||
Sve moguænosti vratiti na polazno?
|
||||
Welcome to WinHTTrack!
|
||||
Dobrodošli u WinHTTrack!
|
||||
Action:
|
||||
Radnja:
|
||||
Max Depth
|
||||
Maksimum dubine
|
||||
Maximum external depth:
|
||||
Maksimum vanjske dubine:
|
||||
Filters (refuse/accept links) :
|
||||
Filtri (odbiti/pohraniti poveznice) :
|
||||
Paths
|
||||
Putanje
|
||||
Save prefs
|
||||
Postavke pohraniti
|
||||
Define..
|
||||
Odrediti..
|
||||
Set options..
|
||||
Postaviti moguænosti..
|
||||
Preferences and mirror options:
|
||||
Postavke i moguænosti zrcaljenja:
|
||||
Project name
|
||||
Naziv projekta
|
||||
Add a URL...
|
||||
Dodati mrežnu adresu...
|
||||
Web Addresses: (URL)
|
||||
Mrežne adrese: (URL)
|
||||
Stop WinHTTrack?
|
||||
Zaustaviti WinHTTrack?
|
||||
No log files in %s!
|
||||
U %s nema zapisnièkih datoteka!
|
||||
Pause Download?
|
||||
Napraviti stanku preuzimanja?
|
||||
Stop the mirroring operation
|
||||
Zaustaviti postupak zrcaljenja
|
||||
Minimize to System Tray
|
||||
Minimizirati u sustavnu traku odlaganja
|
||||
Click to skip a link or stop parsing
|
||||
Kliknite za preskok poveznice ili zaustavljanje rašèlanjivanja
|
||||
Click to skip a link
|
||||
Kliknite za preskok poveznice
|
||||
Bytes saved
|
||||
Pohranjeno bajta
|
||||
Links scanned
|
||||
Obraðene poveznice
|
||||
Time:
|
||||
Vrijeme:
|
||||
Connections:
|
||||
Veze:
|
||||
Running:
|
||||
Djelatno:
|
||||
Hide
|
||||
Sakriti
|
||||
Transfer rate
|
||||
Stopa prijenosa
|
||||
SKIP
|
||||
PRESKOÈITI
|
||||
Information
|
||||
Informacija
|
||||
Files written:
|
||||
Zapisano datoteka:
|
||||
Files updated:
|
||||
Aktualizirano datoteka:
|
||||
Errors:
|
||||
Pogreške:
|
||||
In progress:
|
||||
U tijeku:
|
||||
Follow external links
|
||||
Slijediti vanjske poveznice
|
||||
Test all links in pages
|
||||
Na stranicama provjeriti sve poveznice
|
||||
Try to ferret out all links
|
||||
Pokušati slijediti sve poveznice
|
||||
Download HTML files first (faster)
|
||||
Najprije preuzimati datoteke HTML-a (brže)
|
||||
Choose local site structure
|
||||
Odaberite mjesnu strukturu sadržaja
|
||||
Set user-defined structure on disk
|
||||
Sâmi odredite strukturu na disku
|
||||
Use a cache for updates and retries
|
||||
Za dogradnje i ponavljanja koristiti meðuspremnik
|
||||
Do not update zero size or user-erased files
|
||||
Ne nadopunjavati datoteke koje su prazne ili one koje je korisnik izbrisao
|
||||
Create a Start Page
|
||||
Napraviti poèetnu stranicu
|
||||
Create a word database of all html pages
|
||||
Napraviti spisak rijeèi sa svih stranica HTML-a
|
||||
Create error logging and report files
|
||||
Napraviti datoteke zapisnika pogrešaka i izvješæa o tijeku postupka
|
||||
Generate DOS 8-3 filenames ONLY
|
||||
Generirati nazive datoteka SAMO sukladno DOS-u 8-3
|
||||
Generate ISO9660 filenames ONLY for CDROM medias
|
||||
Generirati nazive datoteka SAMO sukladno ISO9660 za medije CDROM-a
|
||||
Do not create HTML error pages
|
||||
Ne stvarati stranice pogrešaka HTML-a
|
||||
Select file types to be saved to disk
|
||||
Odaberite vrste datoteka, koje treba pohranjivati na disku
|
||||
Select parsing direction
|
||||
Odaberite smjer rašèlanjivanja
|
||||
Select global parsing direction
|
||||
Odaberite opæi smjer rašèlanjivanja
|
||||
Setup URL rewriting rules for internal links (downloaded ones) and external links (not downloaded ones)
|
||||
Postavke pravila prilagoðavanja URL-a za unutarnje (jednom veæ preuzimane) i vanjske (ni jednom nisu preuzimane) poveznice
|
||||
Max simultaneous connections
|
||||
Maksimum istovremenih prikljuèivanja/veza
|
||||
File timeout
|
||||
Vrijeme èekanja na datoteke
|
||||
Cancel all links from host if timeout occurs
|
||||
Pri prekoraèenju vremena èekanja prekinuti sve poveznice prema dotiènom raèunalu
|
||||
Minimum admissible transfer rate
|
||||
Najniža podnošljiva stopa prijenosa
|
||||
Cancel all links from host if too slow
|
||||
Prekinuti sve poveznice prema ugostiteljskom raèunalu ako je presporo
|
||||
Maximum number of retries on non-fatal errors
|
||||
Najviši broj pokušaja ponavljanja pri ne-fatalnim pogreškama
|
||||
Maximum size for any single HTML file
|
||||
Vrhunac velièine neke pojedinaène datoteke HTML-a
|
||||
Maximum size for any single non-HTML file
|
||||
Vrhunac velièine neke pojedinaène datoteke ne-HTML-a
|
||||
Maximum amount of bytes to retrieve from the Web
|
||||
Vrhunac iznosa u bajtima za dobaviti s mrežnih mjesta
|
||||
Make a pause after downloading this amount of bytes
|
||||
Napraviti stanku nakon preuzimanja tog iznosa u bajtima
|
||||
Maximum duration time for the mirroring operation
|
||||
Vrhunac vremena trajanja za postupak zrcaljenja
|
||||
Maximum transfer rate
|
||||
Vrhunac stope prijenosa
|
||||
Maximum connections/seconds (avoid server overload)
|
||||
Najviši broj veza/sekundi (sprjeèava preoptereæivanje poslužitelja)
|
||||
Maximum number of links that can be tested (not saved!)
|
||||
Najviši broj poveznica, koje mogu biti provjeravane (za pohranjivanje nema ogranièenja!)
|
||||
Browser identity
|
||||
Preglednièko obilježje
|
||||
Comment to be placed in each HTML file
|
||||
Komentar koji æe biti smješten u svakoj datoteci HTML-a
|
||||
Back to starting page
|
||||
Natrag na poèetnu stranicu
|
||||
Save current preferences as default values
|
||||
Tekuæe postavke pohraniti kao polazne vrijednosti
|
||||
Click to continue
|
||||
Kliknite za nastavak
|
||||
Click to cancel changes
|
||||
Kliknuti za opoziv izmjena
|
||||
Follow local robots rules on sites
|
||||
Na mrežnim mjestima slijediti pravila mjesnih robota
|
||||
Links to non-localised external pages will produce error pages
|
||||
Poveznice prema nepreslikanim vanjskim stranicama æe stvarati stranice pogreški
|
||||
Do not erase obsolete files after update
|
||||
Nakon dogradnje ne brisati zastarjele datoteke
|
||||
Accept cookies?
|
||||
Prihvatiti kolaèiæ?
|
||||
Check document type when unknown?
|
||||
Provjeravati vrstu datoteke ukoliko je nepoznata?
|
||||
Parse java applets to retrieve included files that must be downloaded?
|
||||
Rašèlanjivati java applete radi pronalaženja obuhvaæenih datoteka, koje još moraju biti preuzete?
|
||||
Store all files in cache instead of HTML only
|
||||
Spremati sve datoteke u meðuspremnik a ne samo one u HTML-u
|
||||
Log file type (if generated)
|
||||
Vrsta datoteke zapisnika (ukoliko je naèinjen)
|
||||
Maximum mirroring depth from root address
|
||||
Najveæa dubina zrcaljenja od prve adrese
|
||||
Maximum mirroring depth for external/forbidden addresses (0, that is, none, is the default)
|
||||
Najveæa dubina zrcaljenja za vanjske/zabranjene adrese (polazno je 0, tj. bez vanjskog preuzimanja)
|
||||
Create a debugging file
|
||||
Naèiniti datoteku za traženje pogrešaka
|
||||
Use non-standard requests to get round some server bugs
|
||||
Koristiti nestandardne zahtjeve, kako bi se zaobišle neke poslužiteljske pogreške
|
||||
Use old HTTP/1.0 requests (limits engine power!)
|
||||
Koristiti zahtjeve starog HTTP/1.0 (ogranièava brzinu rada!)
|
||||
Attempt to limit retransfers through several tricks (file size test..)
|
||||
Raznim varkama pokušati ogranièiti opetovanja prijenosa (provjera velièine datoteka..)
|
||||
Attempt to limit the number of links by skipping similar URLs (www.foo.com==foo.com, http=https ..)
|
||||
Preskakanjem sliènih URL-a (www.foo.com==foo.com, http=https ..) pokušati ogranièiti broj poveznica
|
||||
Write external links without login/password
|
||||
Vanjske poveznice zapisivati bez prijave/lozinke
|
||||
Write internal links without query string
|
||||
Unutarnje poveznice zapisivati bez teksta za upite
|
||||
Get non-HTML files related to a link, eg external .ZIP or pictures
|
||||
Dobavljati datoteke ne-HTML-a, združene s poveznicom (primjerice vanjski .ZIP ili slike)
|
||||
Test all links (even forbidden ones)
|
||||
Provjeravati sve poveznice (èak i one zabranjene)
|
||||
Try to catch all URLs (even in unknown tags/code)
|
||||
Pokušati pronaæi sve URL-e (èak i u nepoznatim oznakama/skriptama)
|
||||
Get HTML files first!
|
||||
Dobaviti najprije datoteke HTML-a!
|
||||
Structure type (how links are saved)
|
||||
Vrsta strukture (kako se pohranjuju poveznice)
|
||||
Use a cache for updates
|
||||
Za dogradnje koristiti meðuspremnik
|
||||
Do not re-download locally erased files
|
||||
Ne preuzimati ponovno datoteke, koje su veæ mjesno izbrisane
|
||||
Make an index
|
||||
Napraviti kazalo
|
||||
Make a word database
|
||||
Napraviti spisak rijeèi
|
||||
Log files
|
||||
Zapisnièke datoteke
|
||||
DOS names (8+3)
|
||||
Nazivi sukladno DOS-u (8+3)
|
||||
ISO9660 names (CDROM)
|
||||
Nazivi prema ISO9660 (CDROM)
|
||||
No error pages
|
||||
Bez stranica pogrešaka
|
||||
Primary Scan Rule
|
||||
Glavno pravilo filtra
|
||||
Travel mode
|
||||
Naèin traženja
|
||||
Global travel mode
|
||||
Globalni naèin traženja
|
||||
These options should be modified only exceptionally
|
||||
Ove moguænosti bi trebale biti preinaèavane samo iznimno
|
||||
Activate Debugging Mode (winhttrack.log)
|
||||
Aktivirati postupak traženja pogrešaka (winhttrack.log)
|
||||
Rewrite links: internal / external
|
||||
Prilagoditi poveznièke adrese: unutarnje / vanjske
|
||||
Flow control
|
||||
Nadzor toka
|
||||
Limits
|
||||
Granice
|
||||
Identity
|
||||
Obilježje
|
||||
HTML footer
|
||||
Podnožje HTML-a
|
||||
N# connections
|
||||
Broj veza
|
||||
Abandon host if error
|
||||
Pri pogreškama napustiti ugostitelja
|
||||
Minimum transfer rate (B/s)
|
||||
Minimum stope prijenosa (B/s)
|
||||
Abandon host if too slow
|
||||
Napustiti ugostitelja ukoliko je prespor
|
||||
Configure
|
||||
Prilagoditi
|
||||
Use proxy for ftp transfers
|
||||
Koristiti posrednika za prijenose putem FTP-a
|
||||
TimeOut(s)
|
||||
Vremenska ogranièenja
|
||||
Persistent connections (Keep-Alive)
|
||||
Održavati veze (Keep-Alive)
|
||||
Reduce connection time and type lookup time using persistent connections
|
||||
Održavane veze smanjuju vrijeme povezivanja i vrijeme za traženje vrsta
|
||||
Retries
|
||||
Opetovanja
|
||||
Size limit
|
||||
Ogranièenje velièine
|
||||
Max size of any HTML file (B)
|
||||
Najviši broj bajta u datotekama HTML-a
|
||||
Max size of any non-HTML file
|
||||
Najveæa velièina datoteka ne-HTML-a
|
||||
Max site size
|
||||
Najveæa velièina sadržaja
|
||||
Max time
|
||||
Najduže vrijeme
|
||||
Save prefs
|
||||
Pohraniti postavke
|
||||
Max transfer rate
|
||||
Vrhunac stope prijenosa
|
||||
Follow robots.txt
|
||||
Slijediti robots.txt
|
||||
No external pages
|
||||
Bez vanjskih stranica
|
||||
Do not purge old files
|
||||
Ne brisati stare datoteke
|
||||
Accept cookies
|
||||
Prihvaæati kolaèiæe
|
||||
Check document type
|
||||
Provjeravati vrstu dokumenata
|
||||
Parse java files
|
||||
Rašèlanjivati datoteke Java
|
||||
Store ALL files in cache
|
||||
Spremati SVE datoteke u meðuspremnik
|
||||
Tolerant requests (for servers)
|
||||
Snošljivi zahtjevi (za poslužitelje)
|
||||
Update hack (limit re-transfers)
|
||||
Iznuda dogradnji (ogranièava opetovane prijenose)
|
||||
URL hacks (join similar URLs)
|
||||
URL hacks (združuje sliène URL-e)
|
||||
Force old HTTP/1.0 requests (no 1.1)
|
||||
Nametati zahtjeve starog HTTP/1.0 (ne 1.1)
|
||||
Max connections / seconds
|
||||
Najviši broj veza / sekundi
|
||||
Maximum number of links
|
||||
Najviši broj poveznica
|
||||
Pause after downloading..
|
||||
Èekati nakon preuzimanja..
|
||||
Hide passwords
|
||||
Sakriti lozinke
|
||||
Hide query strings
|
||||
Sakriti tekst za upite
|
||||
Links
|
||||
Poveznice
|
||||
Build
|
||||
Graða
|
||||
Experts Only
|
||||
Samo za struènjake
|
||||
Flow Control
|
||||
Nadzor toka
|
||||
Limits
|
||||
Ogranièenja
|
||||
Browser ID
|
||||
Preglednièki ID
|
||||
Scan Rules
|
||||
Pravila filtriranja
|
||||
Spider
|
||||
Pauk
|
||||
Log, Index, Cache
|
||||
Zapisnik, Kazalo, Meðuspremnik
|
||||
Proxy
|
||||
Posrednik
|
||||
MIME Types
|
||||
Vrste MIME
|
||||
Do you really want to quit WinHTTrack Website Copier?
|
||||
Doista želite okonèati rad WinHTTrack Website Copiera?
|
||||
Do not connect to a provider (already connected)
|
||||
Ne povezivati s dobaviteljem (veæ je povezano)
|
||||
Do not use remote access connection
|
||||
Ne koristiti vezu daljinskog pristupa
|
||||
Schedule the mirroring operation
|
||||
Odrediti vrijeme zrcaljenja
|
||||
Quit WinHTTrack Website Copier
|
||||
Okonèati rad WinHTTrack Website Copiera
|
||||
Back to starting page
|
||||
Natrag na poèetnu stranicu
|
||||
Click to start!
|
||||
Kliknite za poèetak!
|
||||
No saved password for this connection!
|
||||
Za tu vezu nema pohranjene lozinke!
|
||||
Can not get remote connection settings
|
||||
Ne mogu se dobiti postavke daljinske veze
|
||||
Select a connection provider
|
||||
Odaberite dobavitelja veze
|
||||
Start
|
||||
Zapoèeti
|
||||
Please adjust connection parameters if necessary,\nthen press FINISH to launch the mirroring operation.
|
||||
Po potrebi prilagodite molim parametre veze,\na zatim stisnite ZAVRŠITI kako bi pokrenuli zrcaljenje.
|
||||
Save settings only, do not launch download now.
|
||||
Samo pohraniti postavke, preuzimanje ne pokretati sada.
|
||||
On hold
|
||||
Na èekanju
|
||||
Transfer scheduled for: (hh/mm/ss)
|
||||
Prijenos je predviðen za: (hh/mm/ss)
|
||||
Start
|
||||
Zapoèeti
|
||||
Connect to provider (RAS)
|
||||
Povezati s dobavljaèem (RAS)
|
||||
Connect to this provider
|
||||
Povezati s tim dobavljaèem
|
||||
Disconnect when finished
|
||||
Prekinuti vezu kada bude gotovo
|
||||
Disconnect modem on completion
|
||||
Po dovršetku odvojiti modemsku vezu
|
||||
\r\n(Please notify us of any bug or problem)\r\n\r\nDevelopment:\r\nInterface (Windows): Xavier Roche\r\nSpider: Xavier Roche\r\nJavaParserClasses: Yann Philippot\r\n\r\n(C)1998-2003 Xavier Roche and other contributors\r\nMANY THANKS for translation tips to:\r\nRobert Lagadec (rlagadec@yahoo.fr)
|
||||
\r\n(Molimo da nas obavijestite o svim pogreškama i poteškoæama)\r\n\r\nRazvoj:\r\nSuèelje (Windows): Xavier Roche\r\nPauk: Xavier Roche\r\nRazrediRašèlanjivaèaJave: Yann Philippot\r\n\r\n(C)1998-2003 Xavier Roche i drugi suradnici\r\nPUNO HVALA za prijevodne preporuke upuæujemo:\r\nRobert Lagadec (rlagadec@yahoo.fr)
|
||||
About WinHTTrack Website Copier
|
||||
O programu WinHTTrack Website Copier
|
||||
Please visit our Web page
|
||||
Molimo da posjetite našu spletnu stranicu
|
||||
Wizard query
|
||||
Upit vodièa
|
||||
Your answer:
|
||||
Vaš odgovor:
|
||||
Link detected..
|
||||
Pronaðena je poveznica..
|
||||
Choose a rule
|
||||
Birajte pravilo
|
||||
Ignore this link
|
||||
Zanemariti tu poveznicu
|
||||
Ignore directory
|
||||
Zanemariti mape
|
||||
Ignore domain
|
||||
Zanemariti domenu
|
||||
Catch this page only
|
||||
Dobaviti samo tu stranicu
|
||||
Mirror site
|
||||
Sadržaj zrcaljenja
|
||||
Mirror domain
|
||||
Domena zrcaljenja
|
||||
Ignore all
|
||||
Bez poveznica
|
||||
Wizard query
|
||||
Upit vodièa
|
||||
NO
|
||||
NE
|
||||
File
|
||||
Datoteka
|
||||
Options
|
||||
Moguænosti
|
||||
Log
|
||||
Zapisnik
|
||||
Window
|
||||
Okno
|
||||
Help
|
||||
Pomoæ
|
||||
Pause transfer
|
||||
Napraviti stanku prijenosa
|
||||
Exit
|
||||
Svršetak
|
||||
Modify options
|
||||
Izmijeniti moguænosti
|
||||
View log
|
||||
Prikazati zapisnik
|
||||
View error log
|
||||
Prikazati zapisnik pogrešaka
|
||||
View file transfers
|
||||
Prikazati prijenose datoteka
|
||||
Hide
|
||||
Sakriti
|
||||
About WinHTTrack Website Copier
|
||||
O programu WinHTTrack Website Copier
|
||||
Check program updates...
|
||||
Potražiti programske dogradnje...
|
||||
&Toolbar
|
||||
&Traka alatki
|
||||
&Status Bar
|
||||
&Traka stanja
|
||||
S&plit
|
||||
Raz&dijeliti
|
||||
File
|
||||
Datoteka
|
||||
Preferences
|
||||
Postavke
|
||||
Mirror
|
||||
Zrcalo
|
||||
Log
|
||||
Zapisnik
|
||||
Window
|
||||
Okno
|
||||
Help
|
||||
Pomoæ
|
||||
Exit
|
||||
Svršetak
|
||||
Load default options
|
||||
Uèitati polazne moguænosti
|
||||
Save default options
|
||||
Pohraniti polazne moguænosti
|
||||
Reset to default options
|
||||
Vratiti polazne moguænosti
|
||||
Load options...
|
||||
Uèitati moguænosti...
|
||||
Save options as...
|
||||
Moguænosti pohraniti kao...
|
||||
Language preference...
|
||||
Jeziène postavke...
|
||||
Contents...
|
||||
Sadržaji...
|
||||
About WinHTTrack...
|
||||
O programu WinHTTrack...
|
||||
New project\tCtrl+N
|
||||
Novi projekat\tCtrl+N
|
||||
&Open...\tCtrl+O
|
||||
&Otvoriti...\tCtrl+O
|
||||
&Save\tCtrl+S
|
||||
&Pohraniti\tCtrl+S
|
||||
Save &As...
|
||||
Pohraniti &kao...
|
||||
&Delete...
|
||||
&Izbrisati...
|
||||
&Browse sites...
|
||||
&Pregledati sadržaje...
|
||||
User-defined structure
|
||||
Korisnikom odreðena struktura
|
||||
%n\tName of file without file type (ex: image)\r\n%N\tName of file including file type (ex: image.gif)\r\n%t\tFile type only (ex: gif)\r\n%p\tPath [without ending /] (ex: /someimages)\r\n%h\tHost name (ex: www.someweb.com)\r\n%M\tMD5 URL (128 bits, 32 ascii bytes)\r\n%Q\tMD5 query string (128 bits, 32 ascii bytes)\r\n%q\tMD5 small query string (16 bits, 4 ascii bytes)\r\n\r\n%s?\tShort name (ex: %sN)
|
||||
%n\tNaziv datoteke bez nastavka (npr. slika)\r\n%N\tNaziv datoteke s nastavkom (npr. slika.gif)\r\n%t\tSamo nastavak naziva datoteke (npr. gif)\r\n%p\tPutanja [bez svršetka /] (npr. /nekeslike)\r\n%h\tNaziv ugostitelja (npr. www.nekisplet.com)\r\n%M\tMD5 URL (128 bita, 32 ascii bajta)\r\n%Q\tTekst upita MD5 (128 bita, 32 ascii bajta)\r\n%q\tKratki tekst upita MD5 (16 bita, 4 ascii bajta)\r\n\r\n%s?\tKratki naziv (npr. %sN)
|
||||
Example:\t%h%p/%n%q.%t\n->\t\tc:\\mirror\\www.someweb.com\\someimages\\image.gif
|
||||
Primjerice:\t%h%p/%n%q.%t\n->\t\tc:\\zrcaljenje\\www.nekisplet.com\\nekeslike\\slika.gif
|
||||
Proxy settings
|
||||
Postavke posrednika
|
||||
Proxy address:
|
||||
Adresa posrednika:
|
||||
Proxy port:
|
||||
Port posrednika:
|
||||
Authentication (only if needed)
|
||||
Ovjeravanje (samo po potrebi)
|
||||
Login
|
||||
Prijava
|
||||
Password
|
||||
Lozinka
|
||||
Enter proxy address here
|
||||
Ovdje unesite adresu posrednika
|
||||
Enter proxy port here
|
||||
Ovdje unesite port posrednika
|
||||
Enter proxy login
|
||||
Unesite prijavu na posredniku
|
||||
Enter proxy password
|
||||
Unesite lozinku na posredniku
|
||||
Enter project name here
|
||||
Ovdje unesite naziv projekta
|
||||
Enter saving path here
|
||||
Ovdje unesite putanju za pohranjivanje
|
||||
Select existing project to update
|
||||
Birajte postojeæi projekt za dogradnju
|
||||
Click here to select path
|
||||
Ovdje kliknite za izbor putanje
|
||||
Select or create a new category name, to sort your mirrors in categories
|
||||
Odaberite ili nadjenite neki naziv novoj kategoriji, kako bi Vaša zrcaljenja svrstali u kategorije
|
||||
HTTrack Project Wizard...
|
||||
Pomoènik za projekte HTTracka...
|
||||
New project name:
|
||||
Naziv novog projekta:
|
||||
Existing project name:
|
||||
Naziv postojeæeg projekta:
|
||||
Project name:
|
||||
Naziv projekta:
|
||||
Base path:
|
||||
Osnovna putanja:
|
||||
Project category:
|
||||
Kategorija projekta:
|
||||
C:\\My Web Sites
|
||||
C:\\Moji spletni sadržaji
|
||||
Type a new project name, \r\nor select existing project to update/resume
|
||||
Utipkajte naziv novog projekta, \r\nili odaberite postojeæi projekat za dograditi/nadovezati
|
||||
New project
|
||||
Novi projekat
|
||||
Insert URL
|
||||
Umetnite URL
|
||||
URL:
|
||||
URL:
|
||||
Authentication (only if needed)
|
||||
Ovjeravanje (samo ako je nužno)
|
||||
Login
|
||||
Prijava
|
||||
Password
|
||||
Lozinka
|
||||
Forms or complex links:
|
||||
Obrasci ili kompleksne poveznice:
|
||||
Capture URL...
|
||||
Zahvatiti URL...
|
||||
Enter URL address(es) here
|
||||
Ovdje unesite adresu(-e) URL-a
|
||||
Enter site login
|
||||
Unesite prijavu za to mrežno mjesto
|
||||
Enter site password
|
||||
Unesite lozinku za to mrežno mjesto
|
||||
Use this capture tool for links that can only be accessed through forms or javascript code
|
||||
Koristite ovu funkciju za dobavu povezanih sadržaja, kojima se inaèe može pristupiti samo putem obrazaca ili kôda JavaScript
|
||||
Choose language according to preference
|
||||
Izaberite jezik
|
||||
Catch URL!
|
||||
Dobaviti URL!
|
||||
Please set temporary browser proxy settings to the following values (Copy/Paste Proxy Address and Port).\nThen click on the Form SUBMIT button in your browser page, or click on the specific link you want to capture.
|
||||
Molimo da privremeno izmijenite preglednikove postavke posrednièkog poslužitelja na slijedeæe vrijednosti (Adresu i port posrednika odavdje preslikati).\nKliknite zatim na stranici obrasca u Vašem pregledniku na gumb SUBMIT/POSLATI ili pak na odreðenu poveznicu, koju želite dobaviti.
|
||||
This will send the desired link from your browser to WinHTTrack.
|
||||
Time æe željena poveznica iz Vašeg preglednika biti poslana u WinHTTrack.
|
||||
ABORT
|
||||
PREKINUTI
|
||||
Copy/Paste the temporary proxy parameters here
|
||||
Privremene postavke posrednièkog poslužitelja preslikati odavdje
|
||||
Cancel
|
||||
Odustati
|
||||
Unable to find Help files!
|
||||
Nije bilo moguæe pronaæi datoteke Pomoæi!
|
||||
Unable to save parameters!
|
||||
Nije bilo moguæe pohraniti parametre!
|
||||
Please drag only one folder at a time
|
||||
Povucite mišom molim samo jednu mapu istovremeno
|
||||
Please drag only folders, not files
|
||||
Povucite mišom molim samo mape, ne datoteke
|
||||
Please drag folders only
|
||||
Povucite mišom molim samo mape
|
||||
Select user-defined structure?
|
||||
Za preslik sadržaja odabrati korisnikom odreðenu strukturu?
|
||||
Please ensure that the user-defined-string is correct,\notherwise filenames will be bogus!
|
||||
Provjerite molim je li korisnikom odreðeni znakovni niz ispravan,\nu suprotnom æe nastati iskrivljeni nazivi datoteka!
|
||||
Do you really want to use a user-defined structure?
|
||||
Doista želite koristiti korisnikom odreðenu strukturu?
|
||||
Too manu URLs, cannot handle so many links!!
|
||||
Previše je URL-a, ne mogu obraðivati toliko poveznica!!
|
||||
Not enough memory, fatal internal error..
|
||||
Nema dovoljno spremnika, fatalna unutarnja pogreška..
|
||||
Unknown operation!
|
||||
Nepoznata operacija!
|
||||
Add this URL?\r\n
|
||||
Dodati taj URL?\r\n
|
||||
Warning: main process is still not responding, cannot add URL(s)..
|
||||
Warning: main process is still not responding, cannot add URL(s)..
|
||||
Type/MIME associations
|
||||
Type/MIME associations
|
||||
File types:
|
||||
Vrste datoteka:
|
||||
MIME identity:
|
||||
Istovjetnost MIME:
|
||||
Select or modify your file type(s) here
|
||||
Ovdje birajte ili izmijenite Vaše vrste datoteka
|
||||
Select or modify your MIME type(s) here
|
||||
Ovdje birajte ili izmijenite Vaše vrste MIME
|
||||
Go up
|
||||
Na gore
|
||||
Go down
|
||||
Na dolje
|
||||
File download information
|
||||
Informacije o preuzimanju datoteka
|
||||
Freeze Window
|
||||
Uglaviti okno
|
||||
More information:
|
||||
Više informacija:
|
||||
Welcome to WinHTTrack Website Copier!\n\nPlease click on the NEXT button to\n\n- start a new project\n- or resume a partial download
|
||||
Dobrodošli u program WinHTTrack Website Copier!\n\nKliknite molim na gumb SLIJEDEÆE kako bi\n\n- zapoèeli novi projekat\n- ili nastavili nedovršeno preuzimanje
|
||||
File names with extension:\nFile names containing:\nThis file name:\nFolder names containing:\nThis folder name:\nLinks on this domain:\nLinks on domains containing:\nLinks from this host:\nLinks containing:\nThis link:\nALL LINKS
|
||||
Nazivi datoteka s proširenjem:\nNazivi datoteka sadržavaju:\nTaj naziv datoteke:\nNazivi mapa sadržavaju:\nTaj naziv mape:\nPoveznice u toj domeni:\nPoveznice u domenama sadržavaju:\nPoveznice s tog ugostitelja:\nPoveznice sadržavaju:\nTa poveznica:\nSVE POVEZNICE
|
||||
Show all\nHide debug\nHide infos\nHide debug and infos
|
||||
Prikazati sve\nSakriti debug\nSakriti informacije\nSakriti debug i informacije
|
||||
Site-structure (default)\nHtml in web/, images/other files in web/images/\nHtml in web/html, images/other in web/images\nHtml in web/, images/other in web/\nHtml in web/, images/other in web/xxx, where xxx is the file extension\nHtml in web/html, images/other in web/xxx\nSite-structure, without www.domain.xxx/\nHtml in site_name/, images/other files in site_name/images/\nHtml in site_name/html, images/other in site_name/images\nHtml in site_name/, images/other in site_name/\nHtml in site_name/, images/other in site_name/xxx\nHtml in site_name/html, images/other in site_name/xxx\nAll files in web/, with random names (gadget !)\nAll files in site_name/, with random names (gadget !)\nUser-defined structure..
|
||||
Struktura sadržaja (polazno)\nHTML u spletu/, slike/ostale datoteke u spletu/slike/\nHTML u spletu/html, slike/ostalo u spletu/slike\nHTML u spletu/, slike/ostalo u spletu/\nHTML u spletu/, slike/ostalo u spletu/xxx, pri èemu je xxx proširenje naziva datoteke\nHTML u spletu/html, slike/ostalo u spletu/xxx\nStruktura sadržaja, bez www.domena.xxx/\nHTML u naziv_sadržaja/, slike/ostale datoteke u nazivu_sadržaja/slike/\nHTML u naziv_sadržaja/html, slike/ostalo u naziv_sadržaja/slike\nHTML u naziv_sadržaja/, slike/ostalo u naziv_sadržaja/\nHTML u naziv_sadržaja/, slike/ostalo u naziv_sadržaja/xxx\nHTML u naziv_sadržaja/html, slike/ostalo u naziv_sadržaja/xxx\nSve datoteke u spletu/, s nasumiènim nazivima (gadget !)\nSve datoteke u naziv_sadržaja/, s nasumiènim nazivima (gadget !)\nKorisnikom odreðena struktura..
|
||||
Just scan\nStore html files\nStore non html files\nStore all files (default)\nStore html files first
|
||||
Samo pregledati poveznice\nStpremiti datoteke HTML-a\nStpremiti datoteke ne-HTML-a\nSpremiti sve datoteke (polazno)\nSpremiti najprije datoteke HTML-a
|
||||
Stay in the same directory\nCan go down (default)\nCan go up\nCan both go up & down
|
||||
Ostati u istoj mapi\nMože iæi dolje (polazno)\nMože iæi gore\nMože iæi i gore i dolje
|
||||
Stay on the same address (default)\nStay on the same domain\nStay on the same top level domain\nGo everywhere on the web
|
||||
Ostati na istoj adresi (polazno)\nOstati u istoj domeni\nOstati u istoj demeni vršne razine\nIæi posvuda po spletu
|
||||
Never\nIf unknown (except /)\nIf unknown
|
||||
Nikada\nUkoliko je nepoznato (izuzev /)\nUkoliko je nepoznato
|
||||
no robots.txt rules\nrobots.txt except wizard\nfollow robots.txt rules
|
||||
bez pravila iz robots.txt\nslijediti pravila iz robots.txt s izuzetkom pomoènika\nslijediti pravila iz robots.txt
|
||||
normal\nextended\ndebug
|
||||
uobièajeno\nprošireno\ndebug
|
||||
Download web site(s)\nDownload web site(s) + questions\nGet individual files\nDownload all sites in pages (multiple mirror)\nTest links in pages (bookmark test)\n* Continue interrupted download\n* Update existing download
|
||||
Preuzimanje spletnih sadržaja\nPreuzimanje spletnih sadržaja + pitanja\nDobavljanje pojedinih datoteka\nPreuzimanje svih sadržaja sa stranica (višestruko zrcaljenje)\nProvjeriti poveznice u stranicama (provjera poveznica)\n* Nastaviti prekinuto preuzimanje\n* Aktualizirati postojeæe preuzimanje
|
||||
Relative URI / Absolute URL (default)\nAbsolute URL / Absolute URL\nAbsolute URI / Absolute URL\nOriginal URL / Original URL
|
||||
Relativni URI / Apsolutni URL (polazno)\nApsolutni URL / Apsolutni URL\nApsolutni URI / Apsolutni URL\nIzvorni URL / Izvorni URL
|
||||
Open Source offline browser
|
||||
Open Source offline browser
|
||||
Website Copier/Offline Browser. Copy remote websites to your computer. Free.
|
||||
Preslikavatelj spletnih sadržaja/Preglednik mjesnih sadržaja. Preslikavanje internetskih sadržaja na Vaše raèunalo. Besplatno.
|
||||
httrack, winhttrack, webhttrack, offline browser
|
||||
httrack, winhttrack, webhttrack, offline browser
|
||||
URL list (.txt)
|
||||
Spisak URL-a (.txt)
|
||||
Previous
|
||||
Prethodno
|
||||
Next
|
||||
Slijedeæe
|
||||
URLs
|
||||
URL-i
|
||||
Warning
|
||||
Upozorenje
|
||||
Your browser does not currently support javascript. For better results, please use a javascript-aware browser.
|
||||
Vaš preglednik trenutno ne podržava JavaScript. Za bolje rezultate koristite molim preglednik koji ovladava JavaScript.
|
||||
Thank you
|
||||
Hvala Vam
|
||||
You can now close this window
|
||||
Sada možete zatvoriti ovo okno
|
||||
Server terminated
|
||||
Poslužitelj je razriješen
|
||||
A fatal error has occured during this mirror
|
||||
Tijekom ovog zrcaljenja je nastala fatalna pogreška
|
||||
@@ -711,9 +711,9 @@ Log
|
||||
Window
|
||||
A&ken
|
||||
Help
|
||||
&Abi
|
||||
Abi
|
||||
Exit
|
||||
&Välju
|
||||
Välju
|
||||
Load default options
|
||||
Laadi vaikimisi seaded
|
||||
Save default options
|
||||
|
||||
@@ -372,6 +372,8 @@ Create a Start Page
|
||||
Create a Start Page
|
||||
Create a word database of all html pages
|
||||
Create a word database of all html pages
|
||||
Build a complete RFC822 mail (MHT/EML) archive of the mirror
|
||||
Build a complete RFC822 mail (MHT/EML) archive of the mirror
|
||||
Create error logging and report files
|
||||
Create error logging and report files
|
||||
Generate DOS 8-3 filenames ONLY
|
||||
@@ -420,6 +422,12 @@ Browser identity
|
||||
Browser identity
|
||||
Comment to be placed in each HTML file
|
||||
Comment to be placed in each HTML file
|
||||
Languages accepted by the browser
|
||||
Languages accepted by the browser
|
||||
Additional HTTP headers to be sent in each requests
|
||||
Additional HTTP headers to be sent in each requests
|
||||
HTTP referer to be sent for initial URLs
|
||||
HTTP referer to be sent for initial URLs
|
||||
Back to starting page
|
||||
Back to starting page
|
||||
Save current preferences as default values
|
||||
@@ -480,6 +488,8 @@ Make an index
|
||||
Make an index
|
||||
Make a word database
|
||||
Make a word database
|
||||
Build a mail archive
|
||||
Build a mail archive
|
||||
Log files
|
||||
Log files
|
||||
DOS names (8+3)
|
||||
@@ -508,6 +518,12 @@ Identity
|
||||
Identity
|
||||
HTML footer
|
||||
HTML footer
|
||||
Languages
|
||||
Languages
|
||||
Additional HTTP Headers
|
||||
Additional HTTP Headers
|
||||
Default referer URL
|
||||
Default referer URL
|
||||
N# connections
|
||||
N# connections
|
||||
Abandon host if error
|
||||
@@ -930,3 +946,33 @@ Server terminated
|
||||
Server terminated
|
||||
A fatal error has occured during this mirror
|
||||
A fatal error has occured during this mirror
|
||||
View Documentation
|
||||
View Documentation
|
||||
Go To HTTrack Website
|
||||
Go To HTTrack Website
|
||||
Go To HTTrack Forum
|
||||
Go To HTTrack Forum
|
||||
View License
|
||||
View License
|
||||
Beware: you local browser might be unable to browse files with embedded filenames
|
||||
Beware: you local browser might be unable to browse files with embedded filenames
|
||||
Recreated HTTrack internal cached resources
|
||||
Recreated HTTrack internal cached resources
|
||||
Could not create internal cached resources
|
||||
Could not create internal cached resources
|
||||
Could not get the system external storage directory
|
||||
Could not get the system external storage directory
|
||||
Could not write to:
|
||||
Could not write to:
|
||||
Read-only media (SDCARD)
|
||||
Read-only media (SDCARD)
|
||||
No storage media (SDCARD)
|
||||
No storage media (SDCARD)
|
||||
HTTrack may not be able to download websites until this problem is fixed
|
||||
HTTrack may not be able to download websites until this problem is fixed
|
||||
HTTrack: mirror '%s' stopped!
|
||||
HTTrack: mirror '%s' stopped!
|
||||
Click on this notification to restart the interrupted mirror
|
||||
Click on this notification to restart the interrupted mirror
|
||||
HTTrack: could not save profile for '%s'!
|
||||
HTTrack: could not save profile for '%s'!
|
||||
|
||||
@@ -671,7 +671,7 @@ EI
|
||||
File
|
||||
&Tiedosto
|
||||
Options
|
||||
&Valinnat
|
||||
Valinnat
|
||||
Log
|
||||
&Loki
|
||||
Window
|
||||
@@ -681,7 +681,7 @@ O&hje
|
||||
Pause transfer
|
||||
Pysäytä siirto
|
||||
Exit
|
||||
&Poistu
|
||||
Poistu
|
||||
Modify options
|
||||
&Muokkaa valintoja
|
||||
View log
|
||||
@@ -713,9 +713,9 @@ Log
|
||||
Window
|
||||
&Ikkuna
|
||||
Help
|
||||
O&hje
|
||||
Ohje
|
||||
Exit
|
||||
&Poistu
|
||||
Poistu
|
||||
Load default options
|
||||
&Lataa vakioasetukset
|
||||
Save default options
|
||||
|
||||
@@ -420,6 +420,10 @@ Browser identity
|
||||
Identifiants du Navigateur Internet
|
||||
Comment to be placed in each HTML file
|
||||
Commentaire de page placé dans chaque fichier HTML
|
||||
Languages accepted by the browser
|
||||
Langues acceptée par le navigateur
|
||||
Additional HTTP headers to be sent in each requests
|
||||
En-têtes HTTP additionnels à envoyer dans chaque requête
|
||||
Back to starting page
|
||||
Retour à la page de démarrage
|
||||
Save current preferences as default values
|
||||
@@ -508,6 +512,10 @@ Identity
|
||||
Identification
|
||||
HTML footer
|
||||
En-tête HTML
|
||||
Languages
|
||||
Langues
|
||||
Additional HTTP Headers
|
||||
En têtes HTTP additionnels
|
||||
N# connections
|
||||
Nombre de connexions
|
||||
Abandon host if error
|
||||
@@ -721,7 +729,7 @@ Utiliser les options par d
|
||||
Save default options
|
||||
Enregistrer en tant qu'options par défaut
|
||||
Reset to default options
|
||||
Charger les options par défaut
|
||||
Initialiser les options par défaut
|
||||
Load options...
|
||||
Charger les options
|
||||
Save options as...
|
||||
@@ -743,7 +751,7 @@ Enregistrer &sous...
|
||||
&Delete...
|
||||
&Effacer...
|
||||
&Browse sites...
|
||||
&Browse sites...
|
||||
&Explorer sites...
|
||||
User-defined structure
|
||||
Définir une structure personnalisée
|
||||
%n\tName of file without file type (ex: image)\r\n%N\tName of file including file type (ex: image.gif)\r\n%t\tFile type only (ex: gif)\r\n%p\tPath [without ending /] (ex: /someimages)\r\n%h\tHost name (ex: www.someweb.com)\r\n%M\tMD5 URL (128 bits, 32 ascii bytes)\r\n%Q\tMD5 query string (128 bits, 32 ascii bytes)\r\n%q\tMD5 small query string (16 bits, 4 ascii bytes)\r\n\r\n%s?\tShort name (ex: %sN)
|
||||
@@ -930,3 +938,41 @@ Server terminated
|
||||
Serveur arrêté
|
||||
A fatal error has occured during this mirror
|
||||
Une erreur critique est intervenue durant l'aspiration
|
||||
View Documentation
|
||||
Lire la documentation
|
||||
Go To HTTrack Website
|
||||
Visiter le site de HTTrack
|
||||
Go To HTTrack Forum
|
||||
Visiter le forum de HTTrack
|
||||
View License
|
||||
Lire la license
|
||||
Beware: you local browser might be unable to browse files with embedded filenames
|
||||
Attention: il se pourrait que votre navigateur soit incapable de lire les fichiers contenant des espaces
|
||||
Recreated HTTrack internal cached resources
|
||||
Cache des ressources interne recréé
|
||||
Could not create internal cached resources
|
||||
Impossible de créer le cache des ressources interne
|
||||
Could not get the system external storage directory
|
||||
Impossible de localuser le système de stockage externe
|
||||
Could not write to:
|
||||
Impossible d'écrire dans:
|
||||
Read-only media (SDCARD)
|
||||
Média en lecture seule (SDCARD)
|
||||
No storage media (SDCARD)
|
||||
Pas de média (SDCARD)
|
||||
HTTrack may not be able to download websites until this problem is fixed
|
||||
Il se peut que HTTrack soit incapable de télécharger des sites tant que ce problème n'est pas réglé
|
||||
HTTrack: mirror '%s' stopped!
|
||||
HTTrack: miroir '%s' stoppé!
|
||||
Click on this notification to restart the interrupted mirror
|
||||
Cliquez sur cette notification pour redémarrer la copie interrompue
|
||||
HTTrack: could not save profile for '%s'!
|
||||
HTTrack: impossible de sauver le profil pour '%s'
|
||||
Build a complete RFC822 mail (MHT/EML) archive of the mirror
|
||||
Construire une archive email complète (MHT/EML) au format RFC822
|
||||
HTTP referer to be sent for initial URLs
|
||||
Champ HTTP referer a envoyer pour les URL initiales
|
||||
Build a mail archive
|
||||
Construire une archive mail
|
||||
Default referer URL
|
||||
Champ referer par défaut
|
||||
|
||||
@@ -3,7 +3,7 @@ Japanese
|
||||
LANGUAGE_FILE
|
||||
Japanese
|
||||
LANGUAGE_ISO
|
||||
jp
|
||||
ja
|
||||
LANGUAGE_AUTHOR
|
||||
TAPKAL\r\n
|
||||
LANGUAGE_CHARSET
|
||||
|
||||
@@ -104,6 +104,7 @@ DATA = $(lang_DATA) $(langroot_DATA)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
@@ -112,14 +113,12 @@ AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_CFLAGS = @DEFAULT_CFLAGS@
|
||||
DEFAULT_LDFLAGS = @DEFAULT_LDFLAGS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
@@ -133,6 +132,7 @@ EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
HTTPS_SUPPORT = @HTTPS_SUPPORT@
|
||||
ICONV_LIBS = @ICONV_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -188,7 +188,6 @@ abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
|
||||
@@ -3,7 +3,7 @@ Portugu
|
||||
LANGUAGE_FILE
|
||||
Portugues-Brasil
|
||||
LANGUAGE_ISO
|
||||
pt
|
||||
pt_BR
|
||||
LANGUAGE_AUTHOR
|
||||
Paulo Neto (layoutbr at lexxa.com.br) \r\n
|
||||
LANGUAGE_CHARSET
|
||||
|
||||
108
lang/Russian.txt
108
lang/Russian.txt
@@ -11,7 +11,7 @@ windows-1251
|
||||
LANGUAGE_WINDOWSID
|
||||
Russian
|
||||
OK
|
||||
LANGUAGE_WINDOWSID
|
||||
OK
|
||||
Cancel
|
||||
Îòìåíà
|
||||
Exit
|
||||
@@ -89,7 +89,7 @@ cgi\r\n
|
||||
cgi-bin\r\nWill find links with folder name matching whole 'cgi-bin' string (but not cgi-bin-2, for example)
|
||||
cgi-bin\r\nÎòëîâèò àäðåñà, ñîäåðæàùèå êàòàëîã 'cgi-bin' (íî íå cgi-bin-2, íàïðèìåð)
|
||||
someweb.com\r\nWill find links with matching sub-string such as www.someweb.com, private.someweb.com etc.
|
||||
someweb.com\r\nÎòëîâèò òàêèå ëèíêè, êàê www.someweb.com, private.someweb.com è ò.ï..
|
||||
someweb.com\r\nÎòëîâèò òàêèå ëèíêè, êàê www.someweb.com, private.someweb.com è ò.ï.
|
||||
someweb\r\nWill find links with matching folder sub-string such as www.someweb.com, www.someweb.edu, private.someweb.otherweb.com etc.
|
||||
someweb\r\nÎòëîâèò àäðåñà òèïà www.someweb.com, www.someweb.edu, private.someweb.otherweb.com è ò.ä.\r\n
|
||||
www.someweb.com\r\nWill find links matching whole 'www.someweb.com' sub-string (but not links such as private.someweb.com/..)
|
||||
@@ -155,7 +155,7 @@ Unable to initialize the OLE system
|
||||
WinHTTrack could not find any interrupted download file cache in the specified folder!
|
||||
 óêàçàííîì êàòàëîãå WinHTTrack íå ìîæåò íàéòè íè îäíîãî êýøà ïðåðâàííîé çàêà÷êè!
|
||||
Could not connect to provider
|
||||
Íå âîçìîæíî ñîåäèíèòüñÿ ñ ïðîâàéäåðîì
|
||||
Íåâîçìîæíî ñîåäèíèòüñÿ ñ ïðîâàéäåðîì
|
||||
receive
|
||||
ïîëó÷åíèå
|
||||
request
|
||||
@@ -169,7 +169,7 @@ ready
|
||||
error
|
||||
îøèáêà
|
||||
Receiving files..
|
||||
Ïîëó÷àåì ôàéëû
|
||||
Ïîëó÷àåì ôàéëû..
|
||||
Parsing HTML file..
|
||||
Ðàçáîð HTML ôàéëà...
|
||||
Purging files..
|
||||
@@ -179,13 +179,13 @@ Loading cache in progress..
|
||||
Parsing HTML file (testing links)..
|
||||
Àíàëèçèðóåì HTML ôàéë (ïðîâåðÿåì ëèíêè)...
|
||||
Pause - Toggle [Mirror]/[Pause download] to resume operation
|
||||
Îñòàíîâëåíî (äëÿ ïðîäîëæåíèÿ âûáåðåòå [Çåðêàëî]/[Ïðèîñòàíîâèòü çàêà÷êó] )
|
||||
Îñòàíîâëåíî (äëÿ ïðîäîëæåíèÿ âûáåðèòå [Çåðêàëî]/[Ïðèîñòàíîâèòü çàêà÷êó])
|
||||
Finishing pending transfers - Select [Cancel] to stop now!
|
||||
Çàâåðøàþòñÿ îòëîæåííûå çàêà÷êè - ÷òîáû ïðåðâàòü, íàæìèòå Cancel!
|
||||
scanning
|
||||
ñêàíèðóåì
|
||||
Waiting for scheduled time..
|
||||
Îæèäàåì çàäàííîå âðåìÿ íà÷àëà
|
||||
Îæèäàåì çàäàííîå âðåìÿ íà÷àëà..
|
||||
Connecting to provider
|
||||
Ñîåäèíÿåìñÿ ñ ïðîâàéäåðîì
|
||||
[%d seconds] to go before start of operation
|
||||
@@ -197,43 +197,43 @@ Site mirroring finished!
|
||||
A problem occured during the mirroring operation\n
|
||||
 ïðîöåññå çàêà÷êè ïðîèçîøëà îøèáêà\n
|
||||
\nDuring:\n
|
||||
 òå÷åíèè:\n
|
||||
 òå÷åíèå:\n
|
||||
\nSee the log file if necessary.\n\nClick FINISH to quit WinHTTrack Website Copier.\n\nThanks for using WinHTTrack!
|
||||
 ñëó÷àå íåîáõîäèìîñòè, ñìîòðè ëîã ôàéë.\n\nÄëÿ âûõîäà èç WinHTTrack íàæìèòå êíîïêó OK.\n\nÑïàñèáî çà èñïîëüçîâàíèå WinHTTrack!
|
||||
Mirroring operation complete.\nClick Exit to quit WinHTTrack.\nSee log file(s) if necessary to ensure that everything is OK.\n\nThanks for using WinHTTrack!
|
||||
Ñîçäàíèå çåðêàëà çàâåðøåíî.\nÄëÿ âûõîäà èç ïðîãðàììû íàæìèòå êíîïêó OK.\nÄëÿ ïðîâåðêè óñïåøíîñòè çàêà÷êè ïîñìîòðèòå ëîã ôàéë(û).\n\nÑïàñèáî çà èñïîëüçîâàíèå WinHTTrack!
|
||||
* * MIRROR ABORTED! * *\r\nThe current temporary cache is required for any update operation and only contains data downloaded during the present aborted session.\r\nThe former cache might contain more complete information; if you do not want to lose that information, you have to restore it and delete the current cache.\r\n[Note: This can easily be done here by erasing the hts-cache/new.* files]\r\n\r\nDo you think the former cache might contain more complete information, and do you want to restore it?
|
||||
* * ÇÀÊÀ×ÊÀ ÏÐÅÐÂÀÍÀ! * *\r\nÂðåìåííûé êýø, ñîçäàííûé âî âðåìÿ òåêóùåé ñåññèé, ñîäåðæèò äàííûå, çàãðóæåííûå òîëüêî âî âðåìÿ äàííîé ñåññèè è ïîòðåáóåòñÿ òîëüêî â ñëó÷àå âîçîáíîâëåíèÿ çàêà÷êè.\r\nÎäíàêî, ïðåäûäóùèé êýø ìîæåò ñîäåðæàòü áîëåå ïîëíóþ èíôîðìàöèþ. Åñëè âû íå õîòèòå ïîòåðÿòü ýòè äàííûå, âàì íóæíî óäàëèòü òåêóùèé êýø è âîçîáíîâèòü ïðåäûäóùèé.\r\n(Ýòî ìîæíî ëåãêî ñäåëàòü ïðÿìî çäåñü, óäàëèâ ôàéëû hts-cache/new.]\r\n\r\nÑ÷èòàåò-ëè âû, ÷òî ïðåäûäóùèé êýø ìîæåò ñîäåðæàòü áîëåå ïîëíóþ èíôîðìàöèþ, è õîòèòå ëè âû âîññòàíîâèòü åãî?
|
||||
* * ÇÀÊÀ×ÊÀ ÏÐÅÐÂÀÍÀ! * *\r\nÂðåìåííûé êýø, ñîçäàííûé âî âðåìÿ òåêóùåé ñåññèé, ñîäåðæèò äàííûå, çàãðóæåííûå òîëüêî âî âðåìÿ äàííîé ñåññèè è ïîòðåáóåòñÿ òîëüêî â ñëó÷àå âîçîáíîâëåíèÿ çàêà÷êè.\r\nÎäíàêî, ïðåäûäóùèé êýø ìîæåò ñîäåðæàòü áîëåå ïîëíóþ èíôîðìàöèþ. Åñëè âû íå õîòèòå ïîòåðÿòü ýòè äàííûå, âàì íóæíî óäàëèòü òåêóùèé êýø è âîçîáíîâèòü ïðåäûäóùèé.\r\n(Ýòî ìîæíî ëåãêî ñäåëàòü ïðÿìî çäåñü, óäàëèâ ôàéëû hts-cache/new.]\r\n\r\nÑ÷èòàåòå ëè âû, ÷òî ïðåäûäóùèé êýø ìîæåò ñîäåðæàòü áîëåå ïîëíóþ èíôîðìàöèþ, è õîòèòå ëè âû âîññòàíîâèòü åãî?
|
||||
* * MIRROR ERROR! * *\r\nHTTrack has detected that the current mirror is empty. If it was an update, the previous mirror has been restored.\r\nReason: the first page(s) either could not be found, or a connection problem occured.\r\n=> Ensure that the website still exists, and/or check your proxy settings! <=
|
||||
* * ÎØÈÁÊÀ! * *\r\nÒåêóùåå çåðêàëî - ïóñòî. Åñëè ýòî áûëî îáíîâëåíèå, ïðåäûäóùàÿ âåðñèÿ çåðêàëà âîññòàíîâëåíà.\r\nÏðè÷èíà: ïåðâàÿ ñòðàíèöà(û) èëè íå íàéäåíà, èëè áûëè ïðîáëåìû ñ ñîåäèíåíèåì.\r\n=> Óáåäèòåñü, ÷òî âåáñàéò âñå-åùå ñóùåñòâóåò, è/èëè ïðîâåðüòå óñòàíîâêè ïðîêñè-ñåðâåðà! <=
|
||||
* * ÎØÈÁÊÀ! * *\r\nÒåêóùåå çåðêàëî - ïóñòî. Åñëè ýòî áûëî îáíîâëåíèå, ïðåäûäóùàÿ âåðñèÿ çåðêàëà âîññòàíîâëåíà.\r\nÏðè÷èíà: ïåðâàÿ ñòðàíèöà(û) èëè íå íàéäåíà, èëè áûëè ïðîáëåìû ñ ñîåäèíåíèåì.\r\n=> Óáåäèòåñü, ÷òî âåáñàéò âñå åùå ñóùåñòâóåò, è/èëè ïðîâåðüòå óñòàíîâêè ïðîêñè-ñåðâåðà! <=
|
||||
\n\nTip: Click [View log file] to see warning or error messages
|
||||
\nÏîäñêàçêà:Äëÿ ïðîñìîòðà ñîîáùåíèé îá îøèáêàõ è ïðåäóïðåæäåíèé íàæìèòå [Ïðîñìîòð ëîã ôàéëà]
|
||||
\nÏîäñêàçêà: Äëÿ ïðîñìîòðà ñîîáùåíèé îá îøèáêàõ è ïðåäóïðåæäåíèé íàæìèòå [Ïðîñìîòð ëîã ôàéëà]
|
||||
Error deleting a hts-cache/new.* file, please do it manually
|
||||
Îøèáêà óäàëåíèÿ ôàéëà hts-cache/new.* , ïîæàëóéñòà, óäàëèòå åãî ðó÷êàìè.\r\n
|
||||
Îøèáêà óäàëåíèÿ ôàéëà hts-cache/new.* , ïîæàëóéñòà, óäàëèòå åãî âðó÷íóþ.\r\n
|
||||
Do you really want to quit WinHTTrack Website Copier?
|
||||
Âû äåéñòâèòåëüíî õîòèòå âûéòè èç WinHTTrack?
|
||||
- Mirroring Mode -\n\nEnter address(es) in URL box
|
||||
- Ìîäà çåðêàëèçàöèè -\n\nÂâåäèòå àäðåñ(à) â ïîëå URL.
|
||||
- Ðåæèì çåðêàëèðîâàíèÿ -\n\nÂâåäèòå àäðåñ(à) â ïîëå URL.
|
||||
- Interactive Wizard Mode (questions) -\n\nEnter address(es) in URL box
|
||||
- Èíòåðàêòèâíàÿ ìîäà - Ìàñòåð ñîçäàíèÿ çåðêàëà (áóäóò çàäàíû âîïðîñû) -\n\nÂâåäèòå àäðåñ(à) â ïîëå URL.
|
||||
- Èíòåðàêòèâíûé ðåæèì - Ìàñòåð ñîçäàíèÿ çåðêàëà (áóäóò çàäàíû âîïðîñû) -\n\nÂâåäèòå àäðåñ(à) â ïîëå URL.
|
||||
- File Download Mode -\n\nEnter file address(es) in URL box
|
||||
- Ìîäà çàêà÷êè îòäåëüíûõ ôàéëîâ -\n\nÂâåäèòå àäðåñ(à) ôàéëîâ â ïîëå URL.
|
||||
- Ðåæèì çàêà÷êè îòäåëüíûõ ôàéëîâ -\n\nÂâåäèòå àäðåñ(à) ôàéëîâ â ïîëå URL.
|
||||
- Link Testing Mode -\n\nEnter Web address(es) with links to test in URL box
|
||||
- Ìîäà òåñòèðîâàíèÿ ëèíêîâ -\n\nÂâåäèòå àäðåñ(à) ñòðàíèö, ñîäåðæàùèõ URL'û, êîòîðûå âû õîòèòå ïðîòåñòèðîâàòü.
|
||||
- Ðåæèì òåñòèðîâàíèÿ ëèíêîâ -\n\nÂâåäèòå àäðåñ(à) ñòðàíèö, ñîäåðæàùèõ URL'û, êîòîðûå âû õîòèòå ïðîòåñòèðîâàòü.
|
||||
- Update Mode -\n\nVerify address(es) in URL box, check parameters if necessary then click on 'NEXT' button
|
||||
- Ìîäà îáíîâëåíèÿ -\n\nÏðîâåðüòå àäðåñ(à) â ïîëå URL, çàòåì íàæìèòå êíîïêó 'ÄÀËÅÅ' è ïðîâåðüòå ïàðàìåòðû.
|
||||
- Ðåæèì îáíîâëåíèÿ -\n\nÏðîâåðüòå àäðåñ(à) â ïîëå URL, çàòåì íàæìèòå êíîïêó 'ÄÀËÅÅ' è ïðîâåðüòå ïàðàìåòðû.
|
||||
- Resume Mode (Interrupted Operation) -\n\nVerify address(es) in URL box, check parameters if necessary then click on 'NEXT' button
|
||||
- Ìîäà ïðîäîëæåíèÿ ðàíåå ïðåðâàííîãî ñîçäàíèÿ çåðêàëà -\n\nÏðîâåðüòå àäðåñ(à) â ïîëå URL, çàòåì íàæìèòå êíîïêó 'ÄÀËÅÅ' è ïðîâåðüòå ïàðàìåòðû.
|
||||
- Ðåæèì ïðîäîëæåíèÿ ðàíåå ïðåðâàííîãî ñîçäàíèÿ çåðêàëà -\n\nÏðîâåðüòå àäðåñ(à) â ïîëå URL, çàòåì íàæìèòå êíîïêó 'ÄÀËÅÅ' è ïðîâåðüòå ïàðàìåòðû.
|
||||
Log files Path
|
||||
Ïóòü ê ëîã ôàéëàì
|
||||
Path
|
||||
Ïóòü
|
||||
- Links List Mode -\n\nUse URL box to enter address(es) of page(s) containing links to mirror
|
||||
Ìîäà ñîçäàíèÿ çåðêàë èç ñïèñêà-\n\n ïîëå URL çàïîëíèòå àäðåñà ñòðàíèö, ñîäåðæàùèõ URL'û, êîòîðûå âû õîòèòå çåðêàëèçîâàòü.
|
||||
Ðåæèì ñîçäàíèÿ çåðêàë èç ñïèñêà-\n\n ïîëå URL ââåäèòå àäðåñ(à) ñòðàíèö(û) ñ ëèíêàìè äëÿ ñîçäàíèÿ çåðêàëà.
|
||||
New project / Import?
|
||||
Íîâûé ïðîåêò / èìïîðòèðîâàòü?
|
||||
Choose criterion
|
||||
Âûáåðåòå äåéñòâèå
|
||||
Âûáåðèòå äåéñòâèå
|
||||
Maximum link scanning depth
|
||||
Ìàêñ.ãëóáèíà ñêàíèðîâàíèÿ
|
||||
Enter address(es) here
|
||||
@@ -251,11 +251,11 @@ Use standard HTTP proxy as FTP proxy
|
||||
Path
|
||||
Ïóòü
|
||||
Select Path
|
||||
Âûáåðåòå ïóòü
|
||||
Âûáåðèòå ïóòü
|
||||
Path
|
||||
Ïóòü
|
||||
Select Path
|
||||
Âûáåðåòå ïóòü
|
||||
Âûáåðèòå ïóòü
|
||||
Quit WinHTTrack Website Copier
|
||||
Âûéòè èç WinHTTrack Website Copier
|
||||
About WinHTTrack
|
||||
@@ -303,7 +303,7 @@ Define..
|
||||
Set options..
|
||||
Çàäàòü ïàðàìåòðû...
|
||||
Preferences and mirror options:
|
||||
Íàñòðîéêè ïàðàìåòðîâ çàêà÷êè::
|
||||
Íàñòðîéêè ïàðàìåòðîâ çàêà÷êè:
|
||||
Project name
|
||||
Íàçâàíèå ïðîåêòà
|
||||
Add a URL...
|
||||
@@ -369,7 +369,7 @@ Do not update zero size or user-erased files
|
||||
Create a Start Page
|
||||
Ñîçäàòü íà÷àëüíóþ ñòðàíèöó
|
||||
Create a word database of all html pages
|
||||
óÏÚÄÁÔØ ÂÁÚÕ ÄÁÎÎÙÈ ÓÌÏ×, ÓÏÄÅÒÖÁÝÉÈÓÑ × html-ÓÔÒÁÎÉÃÁÈ
|
||||
Ñîçäàòü áàçó äàííûõ ñëîâ, ñîäåðæàùèõñÿ â html-ñòðàíèöàõ
|
||||
Create error logging and report files
|
||||
Ñîçäàòü ëîã ôàéëû ñ èíôîðìàöèåé î ðàáîòå è îøèáêàõ
|
||||
Generate DOS 8-3 filenames ONLY
|
||||
@@ -379,41 +379,41 @@ Generate ISO9660 filenames ONLY for CDROM medias
|
||||
Do not create HTML error pages
|
||||
Íå çàïèñûâàòü ôàéëû html-îøèáîê
|
||||
Select file types to be saved to disk
|
||||
Âûáåðåòå òèïû ôàéëîâ, ñîõðàíÿåìûõ íà äèñêå
|
||||
Âûáåðèòå òèïû ôàéëîâ, ñîõðàíÿåìûõ íà äèñêå
|
||||
Select parsing direction
|
||||
Âûáåðåòå íàïðàâëåíèå ïðîäâèæåíèÿ ïî ñàéòó
|
||||
Âûáåðèòå íàïðàâëåíèå ïðîäâèæåíèÿ ïî ñàéòó
|
||||
Select global parsing direction
|
||||
Âûáåðåòå ãëîáàëüíîå íàïðàâëåíèå ïðîäâèæåíèÿ ïî ñàéòó
|
||||
Âûáåðèòå ãëîáàëüíîå íàïðàâëåíèå ïðîäâèæåíèÿ ïî ñàéòó
|
||||
Setup URL rewriting rules for internal links (downloaded ones) and external links (not downloaded ones)
|
||||
Óñòàíîâèòü ïðàâèëà ïåðåèìåíîâàíèÿ ëèíêîâ êàê äëÿ âíóòðåííèõ (çàêà÷èâàåìûõ) òàê è äëÿ âíåøíèõ (íå çàãðóæàåìûõ) àäðåñîâ
|
||||
Max simultaneous connections
|
||||
Maêñèìàëüíîå ÷èñëî ñîåäèíåíèé
|
||||
Ìàêñèìàëüíîå ÷èñëî ñîåäèíåíèé
|
||||
File timeout
|
||||
Maêñèìàëüíîå âðåìÿ íå àêòèâíîñòè çàêà÷êè
|
||||
Ìàêñèìàëüíîå âðåìÿ íå àêòèâíîñòè çàêà÷êè
|
||||
Cancel all links from host if timeout occurs
|
||||
 ñëó÷àå ïðåâûøåíèÿ âðåìåíè îæèäàíèÿ îòìåíèòü âñå ëèíêè ñ äàííîãî õîñòà
|
||||
Minimum admissible transfer rate
|
||||
Mèíèìàëüíî äîïóñòèìàÿ ñêîðîñòü çàêà÷êè
|
||||
Ìèíèìàëüíî äîïóñòèìàÿ ñêîðîñòü çàêà÷êè
|
||||
Cancel all links from host if too slow
|
||||
 ñëó÷àå, åñëè õîñò ñëèøêîì ìåäëåííûé, îòìåíèòü âñå ëèíêè ñ äàííîãî õîñòà
|
||||
Maximum number of retries on non-fatal errors
|
||||
Maêñèìàëüíîå ÷èñëî ïîâòîðíûõ ïîïûòîê, â ñëó÷àå íå ôàòàëüíûõ îøèáîê.
|
||||
Ìàêñèìàëüíîå ÷èñëî ïîâòîðíûõ ïîïûòîê, â ñëó÷àå íå ôàòàëüíûõ îøèáîê.
|
||||
Maximum size for any single HTML file
|
||||
Maêñèìàëüíûé ðàçìåð ëþáîãî html-ôàéëà
|
||||
Ìàêñèìàëüíûé ðàçìåð ëþáîãî html-ôàéëà
|
||||
Maximum size for any single non-HTML file
|
||||
Maêñèìàëüíûé ðàçìåð ëþáîãî íå HTML-ôàéëà
|
||||
Ìàêñèìàëüíûé ðàçìåð ëþáîãî íå HTML-ôàéëà
|
||||
Maximum amount of bytes to retrieve from the Web
|
||||
Maêñèìàëüíîå êîëè÷åñòâî áàéò, äîïóñòèìûõ äëÿ çàêà÷êè
|
||||
Ìàêñèìàëüíîå êîëè÷åñòâî áàéò, äîïóñòèìûõ äëÿ çàêà÷êè
|
||||
Make a pause after downloading this amount of bytes
|
||||
Ïîñëå çàãðóçêè óêàçàííîãî ÷èñëà áàéòîâ, ñäåëàòü ïàóçó
|
||||
Maximum duration time for the mirroring operation
|
||||
Maêñ. ïðîäîëæèòåëüíîñòü çåðêàëèçàöèè
|
||||
Ìàêñ. ïðîäîëæèòåëüíîñòü çåðêàëèçàöèè
|
||||
Maximum transfer rate
|
||||
Ìàêñ. ñêîðîñòü çàêà÷êè
|
||||
Maximum connections/seconds (avoid server overload)
|
||||
Ìàêñ. êîëè÷åñòâî ñîåäèíåíèé â ñåêóíäó (íå ïåðåãðóæàòü ñåðâåð)
|
||||
Maximum number of links that can be tested (not saved!)
|
||||
íÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ÔÅÓÔÉÒÕÅÍÙÈ ÌÉÎËÏ× (ÔÅÓÔÉÒÕÅÍÙÈ, Á ÎÅ ÓÏÈÒÁÎÑÅÍÙÈ!)
|
||||
Ìàêñèìàëüíîå ÷èñëî òåñòèðóåìûõ ëèíêîâ (òåñòèðóåìûõ, à íå ñîõðàíÿåìûõ!)
|
||||
Browser identity
|
||||
Èäåíòèôèêàöèÿ áðîóçåðà (ñòðîêà User-Agent)
|
||||
Comment to be placed in each HTML file
|
||||
@@ -477,7 +477,7 @@ Do not re-download locally erased files
|
||||
Make an index
|
||||
Ñîçäàòü èíäåêñ
|
||||
Make a word database
|
||||
óÏÚÄÁÔØ ÂÁÚÕ ÄÁÎÎÙÈ ÓÌÏ×
|
||||
Ñîçäàòü áàçó äàííûõ ñëîâ
|
||||
Log files
|
||||
Log ôàéëû
|
||||
DOS names (8+3)
|
||||
@@ -489,13 +489,13 @@ No error pages
|
||||
Primary Scan Rule
|
||||
Îñíîâíîé ôèëüòð
|
||||
Travel mode
|
||||
Ìîäà ñêàíèðîâàíèÿ
|
||||
Ðåæèì ñêàíèðîâàíèÿ
|
||||
Global travel mode
|
||||
Ãëîáàëüíàÿ ìîäà ñêàíèðîâàíèÿ
|
||||
Ðåæèì ãëîáàëüíîãî ñêàíèðîâàíèÿ
|
||||
These options should be modified only exceptionally
|
||||
Êàê ïðàâèëî, ýòè íàñòðîéêè èçìåíÿòü íå ñëåäóåò
|
||||
Activate Debugging Mode (winhttrack.log)
|
||||
Âêëþ÷èòü ìîäó îòëàäêè (winhttrack.log)
|
||||
Âêëþ÷èòü ðåæèì îòëàäêè (winhttrack.log)
|
||||
Rewrite links: internal / external
|
||||
Ïåðåèìåíîâàòü ëèíêè: âíóòðåííèå/âíåøíèå
|
||||
Flow control
|
||||
@@ -511,7 +511,7 @@ N#
|
||||
Abandon host if error
|
||||
Ïðåêðàòèòü çàêà÷êó ñ õîñòà, â ñëó÷àå îøèáêè
|
||||
Minimum transfer rate (B/s)
|
||||
Mèíèìàëüíàÿ ñêîðîñòü çàêà÷êè (B/s)
|
||||
Ìèíèìàëüíàÿ ñêîðîñòü çàêà÷êè (B/s)
|
||||
Abandon host if too slow
|
||||
Ïðåêðàòèòü çàêà÷êó ñ õîñòà, åñëè îíà ñëèøêîì ìåäëåííàÿ
|
||||
Configure
|
||||
@@ -557,15 +557,15 @@ Store ALL files in cache
|
||||
Tolerant requests (for servers)
|
||||
Òîëåðàíòíûå çàïðîñû (ê ñåðâåðàì)
|
||||
Update hack (limit re-transfers)
|
||||
Update hack (îãðàíè÷åíèå ïîâòîðíûõ çàêà÷åê)
|
||||
Update hack (îãðàíè÷åíèå ïîâòîðíûõ çàêà÷åê)
|
||||
URL hacks (join similar URLs)
|
||||
Õàê URL (îáúåäåíèòü àíàëîãè÷íûå URLs)
|
||||
Õàê URL (îáúåäåíèòü àíàëîãè÷íûå URLs)
|
||||
Force old HTTP/1.0 requests (no 1.1)
|
||||
Èñïîëüçîâàòü ñòàðûé ïðîòîêîë HTTP/1.0 (íå 1.1)
|
||||
Max connections / seconds
|
||||
Ìàêñ. ÷èñëî ñîåäèíåíèé/ñåê.
|
||||
Maximum number of links
|
||||
íÁËÓÉÍÁÌØÎÏÅ ÞÍÓÌÏ ÌÉÎËÏ×
|
||||
Ìàêñèìàëüíîå ÷èñëî ëèíêîâ
|
||||
Pause after downloading..
|
||||
Ïàóçà ïîñëå çàãðóçêè...
|
||||
Hide passwords
|
||||
@@ -613,7 +613,7 @@ No saved password for this connection!
|
||||
Can not get remote connection settings
|
||||
Íå ìîãó ïîëó÷èòü óñòàíîâêè óäàëåííîãî ñîåäèíåíèÿ
|
||||
Select a connection provider
|
||||
Âûáåðåòå ïðîâàéäåðà, ê êîòîðîìó óñòàíîâèòü ñîåäèíåíèå
|
||||
Âûáåðèòå ïðîâàéäåðà, ê êîòîðîìó óñòàíîâèòü ñîåäèíåíèå
|
||||
Start
|
||||
Íà÷àòü
|
||||
Please adjust connection parameters if necessary,\nthen press FINISH to launch the mirroring operation.
|
||||
@@ -645,9 +645,9 @@ Wizard query
|
||||
Your answer:
|
||||
Âàø îòâåò:
|
||||
Link detected..
|
||||
Íàéäåí ëèíê
|
||||
Íàéäåí ëèíê..
|
||||
Choose a rule
|
||||
Âûáåðåòå ïðàâèëî
|
||||
Âûáåðèòå ïðàâèëî
|
||||
Ignore this link
|
||||
Èãíîðèðîâàòü ýòîò ëèíê
|
||||
Ignore directory
|
||||
@@ -773,7 +773,7 @@ Enter project name here
|
||||
Enter saving path here
|
||||
Óêàæèòå êàòàëîã äëÿ ñîõðàíåíèÿ ïðîåêòà
|
||||
Select existing project to update
|
||||
Äëÿ îáíîâëåíèÿ ïðîåêòà, âûáåðåòå åãî èç ñïèñêà
|
||||
Äëÿ îáíîâëåíèÿ ïðîåêòà, âûáåðèòå åãî èç ñïèñêà
|
||||
Click here to select path
|
||||
Âûáðàòü êàòàëîã ïðîåêòà
|
||||
Select or create a new category name, to sort your mirrors in categories
|
||||
@@ -793,7 +793,7 @@ Project category:
|
||||
C:\\My Web Sites
|
||||
C:\\Ìîè Web Ñàéòû
|
||||
Type a new project name, \r\nor select existing project to update/resume
|
||||
Çàäàéòå íàçâàíèå íîâîãî ïðîåêòà, \r\nèëè âûáåðåòå ñóùåñòâóþùèé ïðîåêò äëÿ åãî àêòóàëèçàöèè/ïðîäîëæåíèÿ
|
||||
Çàäàéòå íàçâàíèå íîâîãî ïðîåêòà, \r\nèëè âûáåðèòå ñóùåñòâóþùèé ïðîåêò äëÿ åãî àêòóàëèçàöèè/ïðîäîëæåíèÿ
|
||||
New project
|
||||
Íîâûé ïðîåêò
|
||||
Insert URL
|
||||
@@ -835,7 +835,7 @@ Cancel
|
||||
Unable to find Help files!
|
||||
Íå íàéäåíû ôàéëû ïîìîùè!
|
||||
Unable to save parameters!
|
||||
Íå âîçìîæíî ñîõðàíèòü ïàðàìåòðû!
|
||||
Íåâîçìîæíî ñîõðàíèòü ïàðàìåòðû!
|
||||
Please drag only one folder at a time
|
||||
Ïîæàëóéñòà, ïåðåòàñêèâàéòå òîëüêî îäíó ïàïêó
|
||||
Please drag only folders, not files
|
||||
@@ -851,13 +851,13 @@ Do you really want to use a user-defined structure?
|
||||
Too manu URLs, cannot handle so many links!!
|
||||
Ñëèøêîì ìíîãî URL'îâ, íå ìîãó îáðàáîòàòü òàêîå êîëè÷åñòâî ëèíêîâ!
|
||||
Not enough memory, fatal internal error..
|
||||
Íå äîñòàòî÷íî ïàìÿòè, ôàòàëüíàÿ âíóòðåííÿÿ îøèáêà...
|
||||
Íåäîñòàòî÷íî ïàìÿòè, ôàòàëüíàÿ âíóòðåííÿÿ îøèáêà...
|
||||
Unknown operation!
|
||||
Íåèçâåñòíàÿ îïåðàöèÿ
|
||||
Add this URL?\r\n
|
||||
Äîáàâèòü ýòîò URL?\r\n
|
||||
Warning: main process is still not responding, cannot add URL(s)..
|
||||
Âíèìàíèå: ïðîãðàììà íå îòâå÷àåò íà çàïðîñû, íå âîçìîæíî äîáàâèòü URL'û...
|
||||
Âíèìàíèå: ïðîãðàììà íå îòâå÷àåò íà çàïðîñû, íåâîçìîæíî äîáàâèòü URL'û...
|
||||
Type/MIME associations
|
||||
Ñîîòâåòñâèå òèïó ôàéëîâ (Type/MIME)
|
||||
File types:
|
||||
@@ -891,7 +891,7 @@ Just scan\nStore html files\nStore non html files\nStore all files (default)\nSt
|
||||
Stay in the same directory\nCan go down (default)\nCan go up\nCan both go up & down
|
||||
Îñòàâàòüñÿ â òîéæå äèðåêòîðèè\nÌîæíî äâèãàòüñÿ âíèç (ïî óìîë÷àíèþ)\nÌîæíî äâèãàòüñÿ ââåðõ\nÌîæíî äâèãàòüñÿ ââåðõ è âíèç
|
||||
Stay on the same address (default)\nStay on the same domain\nStay on the same top level domain\nGo everywhere on the web
|
||||
Îñòàâàòüñÿ íà òîì æå àäðåñå (ïî óìîë÷àíèþt)\nÎñòàâàòüñÿ íà òîì æå äîìåíå\nÎñòàâàòüñÿ íà òîì äå äîìåíå âåðõíåãî óðîâíÿ\nÈäòè êóäà óãîäíî
|
||||
Îñòàâàòüñÿ íà òîì æå àäðåñå (ïî óìîë÷àíèþ)\nÎñòàâàòüñÿ íà òîì æå äîìåíå\nÎñòàâàòüñÿ íà òîì æå äîìåíå âåðõíåãî óðîâíÿ\nÈäòè êóäà óãîäíî
|
||||
Never\nIf unknown (except /)\nIf unknown
|
||||
Íèêîãäà\nÅñëè íåèçâåñòíî (êðîìå /)\nÅñëè íåèçâåñòíî
|
||||
no robots.txt rules\nrobots.txt except wizard\nfollow robots.txt rules
|
||||
@@ -901,7 +901,7 @@ normal\nextended\ndebug
|
||||
Download web site(s)\nDownload web site(s) + questions\nGet individual files\nDownload all sites in pages (multiple mirror)\nTest links in pages (bookmark test)\n* Continue interrupted download\n* Update existing download
|
||||
Çàãðóçèòü ñàéò(û)\nÇàãðóçèòü ñàéò(û) +âîïðîñû\nÇàãðóçèòü îòäåëüíûå ôàéëû\nÇàãðóçèòü âñå ñàéòû ñî ñòðàíèöû (íåñêîëüêî çåðêàë)\nÒåñòèðîâàòü ëèíêè ñî ñòðàíèöû (òåñò çàêëàäîê)\n* Ïðîäîëæèòü ïðåðâàííóþ çàãðóçêó\n* Îáíîâèòü ñóùåñòâóþùóþ çàêà÷êó
|
||||
Relative URI / Absolute URL (default)\nAbsolute URL / Absolute URL\nAbsolute URI / Absolute URL\nOriginal URL / Original URL
|
||||
Îòíîñèòåëüíûé URI / Àáñîëþòíûé URL (ïî-óìîë÷àíèþ)\nÀáñîëþòíûé URL / Àáñîëþòíûé URL\nÀáñîëþòíûé URI / Àáñîëþòíûé URL\nÏåðâîíà÷àëüíûé URL / Ïåðâîíà÷àëüíûé URL
|
||||
Îòíîñèòåëüíûé URI / Àáñîëþòíûé URL (ïî óìîë÷àíèþ)\nÀáñîëþòíûé URL / Àáñîëþòíûé URL\nÀáñîëþòíûé URI / Àáñîëþòíûé URL\nÏåðâîíà÷àëüíûé URL / Ïåðâîíà÷àëüíûé URL
|
||||
Open Source offline browser
|
||||
Open Source îôôëàéí áðàóçåð
|
||||
Website Copier/Offline Browser. Copy remote websites to your computer. Free.
|
||||
@@ -919,7 +919,7 @@ URLs
|
||||
Warning
|
||||
Ïðåäóïðåæäåíèå
|
||||
Your browser does not currently support javascript. For better results, please use a javascript-aware browser.
|
||||
Âàø áðàóçåð èëè íå ïîääåðæèâàåò javascript èëè åãî ïîääåðæêà âûêëþ÷åíà. Äëÿ ïîëó÷åíèÿ íàèëó÷øåãî ðåçóëüòàòà àêòèâèçèðóéòå ïîääåðæêó javascript.
|
||||
Âàø áðàóçåð èëè íå ïîääåðæèâàåò javascript èëè åãî ïîääåðæêà âûêëþ÷åíà. Äëÿ ïîëó÷åíèÿ íàèëó÷øåãî ðåçóëüòàòà àêòèâèçèðóéòå ïîääåðæêó javascript.
|
||||
Thank you
|
||||
Ñïàñèáî
|
||||
You can now close this window
|
||||
|
||||
@@ -3,7 +3,7 @@ Ukrainian
|
||||
LANGUAGE_FILE
|
||||
Ukrainian
|
||||
LANGUAGE_ISO
|
||||
ua
|
||||
uk
|
||||
LANGUAGE_AUTHOR
|
||||
Andrij Shevchuk (http://programy.com.ua, http://vic-info.com.ua) \r\n
|
||||
LANGUAGE_CHARSET
|
||||
|
||||
@@ -3,7 +3,7 @@ exemplesdir = $(datadir)/httrack/libtest
|
||||
exemples_DATA = *.c *.h *.txt
|
||||
EXTRA_DIST = $(exemples_DATA)
|
||||
|
||||
INCLUDES = \
|
||||
AM_CPPFLAGS = \
|
||||
@DEFAULT_CFLAGS@ \
|
||||
@THREADS_CFLAGS@ \
|
||||
@V6_FLAG@ \
|
||||
@@ -13,7 +13,7 @@ INCLUDES = \
|
||||
-DDATADIR=\""$(datadir)"\" \
|
||||
-DLIBDIR=\""$(libdir)"\"
|
||||
|
||||
AM_CPPFLAGS = -I../src
|
||||
AM_CPPFLAGS += -I../src
|
||||
AM_LDFLAGS = -L../src
|
||||
|
||||
# Examples
|
||||
|
||||
@@ -201,6 +201,7 @@ CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
@@ -209,14 +210,12 @@ AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_CFLAGS = @DEFAULT_CFLAGS@
|
||||
DEFAULT_LDFLAGS = @DEFAULT_LDFLAGS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
@@ -230,6 +229,7 @@ EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
HTTPS_SUPPORT = @HTTPS_SUPPORT@
|
||||
ICONV_LIBS = @ICONV_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -285,7 +285,6 @@ abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
@@ -335,17 +334,9 @@ top_srcdir = @top_srcdir@
|
||||
exemplesdir = $(datadir)/httrack/libtest
|
||||
exemples_DATA = *.c *.h *.txt
|
||||
EXTRA_DIST = $(exemples_DATA)
|
||||
INCLUDES = \
|
||||
@DEFAULT_CFLAGS@ \
|
||||
@THREADS_CFLAGS@ \
|
||||
@V6_FLAG@ \
|
||||
@LFS_FLAG@ \
|
||||
-DPREFIX=\""$(prefix)"\" \
|
||||
-DSYSCONFDIR=\""$(sysconfdir)"\" \
|
||||
-DDATADIR=\""$(datadir)"\" \
|
||||
-DLIBDIR=\""$(libdir)"\"
|
||||
|
||||
AM_CPPFLAGS = -I../src
|
||||
AM_CPPFLAGS = @DEFAULT_CFLAGS@ @THREADS_CFLAGS@ @V6_FLAG@ @LFS_FLAG@ \
|
||||
-DPREFIX=\""$(prefix)"\" -DSYSCONFDIR=\""$(sysconfdir)"\" \
|
||||
-DDATADIR=\""$(datadir)"\" -DLIBDIR=\""$(libdir)"\" -I../src
|
||||
AM_LDFLAGS = -L../src
|
||||
|
||||
# Examples
|
||||
@@ -485,22 +476,25 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/callbacks-example-simple.Plo@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
@@ -100,9 +100,9 @@ EXTERNAL_FUNCTION int hts_plug(httrackp * opt, const char *argv) {
|
||||
if (arg == NULL)
|
||||
arg = "log-wrapper-info";
|
||||
hts_log(opt, arg, "* plugging functions");
|
||||
CHAIN_FUNCTION(opt, check_html, process_file, (char *) arg);
|
||||
CHAIN_FUNCTION(opt, start, start_of_mirror, (char *) arg);
|
||||
CHAIN_FUNCTION(opt, end, end_of_mirror, (char *) arg);
|
||||
CHAIN_FUNCTION(opt, check_html, process_file, (void *) (uintptr_t) arg);
|
||||
CHAIN_FUNCTION(opt, start, start_of_mirror, (void *) (uintptr_t) arg);
|
||||
CHAIN_FUNCTION(opt, end, end_of_mirror, (void *) (uintptr_t) arg);
|
||||
|
||||
hts_log(opt, arg, "* module successfully plugged");
|
||||
return 1; /* success */
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
#include "htsdefines.h"
|
||||
|
||||
/* Local definitions */
|
||||
#include "example.h"
|
||||
#include "example-main.h"
|
||||
|
||||
/*
|
||||
* Name: main
|
||||
@@ -20,7 +20,7 @@ Copyright (C) Xavier Roche and other contributors
|
||||
|
||||
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
|
||||
as published by the Free Software Foundation; either version 2
|
||||
of the License, or any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
|
||||
13
license.txt
13
license.txt
@@ -1,12 +1,12 @@
|
||||
HTTrack Website Copier License Agreement:
|
||||
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
In addition, as a special exception, Xavier Roche gives permission to
|
||||
link the code of this program with the openSSL library (or with
|
||||
|
||||
@@ -74,6 +74,7 @@ am__can_run_installinfo = \
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
@@ -82,14 +83,12 @@ AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_CFLAGS = @DEFAULT_CFLAGS@
|
||||
DEFAULT_LDFLAGS = @DEFAULT_LDFLAGS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
@@ -103,6 +102,7 @@ EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
HTTPS_SUPPORT = @HTTPS_SUPPORT@
|
||||
ICONV_LIBS = @ICONV_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -158,7 +158,6 @@ abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
|
||||
@@ -1,27 +1,26 @@
|
||||
dnl @synopsis CHECK_ZLIB()
|
||||
dnl
|
||||
dnl This macro searches for an installed zlib library. If nothing was
|
||||
dnl specified when calling configure, it searches first in /usr/local
|
||||
dnl This macro searches for an installed zlib library. If nothing
|
||||
dnl was specified when calling configure, it searches first in /usr/local
|
||||
dnl and then in /usr. If the --with-zlib=DIR is specified, it will try
|
||||
dnl to find it in DIR/include/zlib.h and DIR/lib/libz.a. If
|
||||
dnl --without-zlib is specified, the library is not searched at all.
|
||||
dnl to find it in DIR/include/zlib.h and DIR/lib/libz.a. If --without-zlib
|
||||
dnl is specified, the library is not searched at all.
|
||||
dnl
|
||||
dnl If either the header file (zlib.h) or the library (libz) is not
|
||||
dnl found, the configuration exits on error, asking for a valid zlib
|
||||
dnl installation directory or --without-zlib.
|
||||
dnl found, the configuration exits on error, asking for a valid
|
||||
dnl zlib installation directory or --without-zlib.
|
||||
dnl
|
||||
dnl The macro defines the symbol HAVE_LIBZ if the library is found. You
|
||||
dnl should use autoheader to include a definition for this symbol in a
|
||||
dnl config.h file. Sample usage in a C/C++ source is as follows:
|
||||
dnl The macro defines the symbol HAVE_LIBZ if the library is found. You should
|
||||
dnl use autoheader to include a definition for this symbol in a config.h
|
||||
dnl file. Sample usage in a C/C++ source is as follows:
|
||||
dnl
|
||||
dnl #ifdef HAVE_LIBZ
|
||||
dnl #include <zlib.h>
|
||||
dnl #endif /* HAVE_LIBZ */
|
||||
dnl
|
||||
dnl @category InstalledPackages
|
||||
dnl @version $Id$
|
||||
dnl @author Loic Dachary <loic@senga.org>
|
||||
dnl @version 2004-09-20
|
||||
dnl @license GPLWithACException
|
||||
dnl
|
||||
|
||||
AC_DEFUN([CHECK_ZLIB],
|
||||
#
|
||||
@@ -34,21 +33,17 @@ AC_ARG_WITH(zlib,
|
||||
--without-zlib to disable zlib usage completely],
|
||||
[if test "$withval" != no ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
if test -d "$withval"
|
||||
then
|
||||
ZLIB_HOME="$withval"
|
||||
else
|
||||
AC_MSG_WARN([Sorry, $withval does not exist, checking usual places])
|
||||
fi
|
||||
ZLIB_HOME="$withval"
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
fi])
|
||||
|
||||
fi], [
|
||||
AC_MSG_RESULT(yes)
|
||||
ZLIB_HOME=/usr/local
|
||||
if test ! -f "${ZLIB_HOME}/include/zlib.h"
|
||||
then
|
||||
ZLIB_HOME=/usr
|
||||
fi
|
||||
])
|
||||
|
||||
#
|
||||
# Locate zlib, if wanted
|
||||
|
||||
@@ -105,6 +105,7 @@ MANS = $(man_MANS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
@@ -113,14 +114,12 @@ AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_CFLAGS = @DEFAULT_CFLAGS@
|
||||
DEFAULT_LDFLAGS = @DEFAULT_LDFLAGS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
@@ -134,6 +133,7 @@ EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
HTTPS_SUPPORT = @HTTPS_SUPPORT@
|
||||
ICONV_LIBS = @ICONV_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -189,7 +189,6 @@ abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
|
||||
@@ -35,12 +35,12 @@ Please reports bugs to
|
||||
.B <bugs@httrack.com>.
|
||||
Include a complete, self-contained example that will allow the bug to be reproduced, and say which version of (web)httrack you are using. Do not forget to detail options used, OS version, and any other information you deem necessary.
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2013 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -48,8 +48,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
.SH AVAILABILITY
|
||||
The most recent released version of (web)httrack can be found at:
|
||||
.B http://www.httrack.com
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
.\" Process this file with
|
||||
.\" groff -man -Tascii httrack.1
|
||||
.\"
|
||||
.TH httrack 1 "May 2013" "httrack website copier"
|
||||
.TH httrack 1 "12 July 2014" "httrack website copier"
|
||||
.SH NAME
|
||||
httrack \- offline browser : copy websites to a local directory
|
||||
.SH SYNOPSIS
|
||||
.B httrack [ url ]... [ \-filter ]... [ +filter ]... [
|
||||
.B \-O, \-\-path
|
||||
] [
|
||||
.B \-%O, \-\-chroot
|
||||
] [
|
||||
.B \-w, \-\-mirror
|
||||
] [
|
||||
.B \-W, \-\-mirror\-wizard
|
||||
@@ -42,11 +40,9 @@ httrack \- offline browser : copy websites to a local directory
|
||||
] [
|
||||
.B \-GN, \-\-max\-pause[=N]
|
||||
] [
|
||||
.B \-%mN, \-\-max\-mms\-time[=N]
|
||||
] [
|
||||
.B \-cN, \-\-sockets[=N]
|
||||
] [
|
||||
.B \-TN, \-\-timeout
|
||||
.B \-TN, \-\-timeout[=N]
|
||||
] [
|
||||
.B \-RN, \-\-retries[=N]
|
||||
] [
|
||||
@@ -122,6 +118,10 @@ httrack \- offline browser : copy websites to a local directory
|
||||
] [
|
||||
.B \-%l, \-\-language
|
||||
] [
|
||||
.B \-%a, \-\-accept
|
||||
] [
|
||||
.B \-%X, \-\-headers
|
||||
] [
|
||||
.B \-C, \-\-cache[=N]
|
||||
] [
|
||||
.B \-k, \-\-store\-all\-in\-cache
|
||||
@@ -174,8 +174,6 @@ httrack \- offline browser : copy websites to a local directory
|
||||
] [
|
||||
.B \-V, \-\-userdef\-cmd
|
||||
] [
|
||||
.B \-%U, \-\-user
|
||||
] [
|
||||
.B \-%W, \-\-callback
|
||||
] [
|
||||
.B \-K, \-\-keep\-links[=N]
|
||||
@@ -214,9 +212,6 @@ mirror[,path
|
||||
cache
|
||||
and
|
||||
logfiles]) (\-\-path <param>)
|
||||
.IP \-%O
|
||||
chroot path to, must be r00t (\-%O root
|
||||
path) (\-\-chroot <param>)
|
||||
|
||||
.SS Action options:
|
||||
.IP \-w
|
||||
@@ -257,14 +252,12 @@ maximum transfer rate in bytes/seconds (1000=1KB/s max) (\-\-max\-rate[=N])
|
||||
maximum number of connections/seconds (*%c10) (\-\-connection\-per\-second[=N])
|
||||
.IP \-GN
|
||||
pause transfer if N bytes reached, and wait until lock file is deleted (\-\-max\-pause[=N])
|
||||
.IP \-%mN
|
||||
maximum mms stream download time in seconds (60=1 minute, 3600=1 hour) (\-\-max\-mms\-time[=N])
|
||||
|
||||
.SS Flow control:
|
||||
.IP \-cN
|
||||
number of multiple connections (*c8) (\-\-sockets[=N])
|
||||
.IP \-TN
|
||||
timeout, number of seconds after a non\-responding link is shutdown (\-\-timeout)
|
||||
timeout, number of seconds after a non\-responding link is shutdown (\-\-timeout[=N])
|
||||
.IP \-RN
|
||||
number of retries, in case of timeout or non\-fatal errors (*R1) (\-\-retries[=N])
|
||||
.IP \-JN
|
||||
@@ -353,6 +346,10 @@ from email address sent in HTTP headers (\-\-from <param>)
|
||||
footer string in Html code (\-%F "Mirrored [from host %s [file %s [at %s]]]" (\-\-footer <param>)
|
||||
.IP \-%l
|
||||
preffered language (\-%l "fr, en, jp, *" (\-\-language <param>)
|
||||
.IP \-%a
|
||||
accepted formats (\-%a "text/html,image/png;q=0.9,*/*;q=0.1" (\-\-accept <param>)
|
||||
.IP \-%X
|
||||
additional HTTP header line (\-%X "X\-Magic: 42" (\-\-headers <param>)
|
||||
|
||||
.SS Log, index, cache
|
||||
.IP \-C
|
||||
@@ -455,8 +452,6 @@ generate transfer ops. log every minutes (\-\-debug\-xfrstats)
|
||||
wait time (\-\-advanced\-wait)
|
||||
.IP \-#Z
|
||||
generate transfer rate statictics every minutes (\-\-debug\-ratestats)
|
||||
.IP \-#!
|
||||
execute a shell command (\-#! "echo hello") (\-\-exec <param>)
|
||||
|
||||
.SS Dangerous options: (do NOT use unless you exactly know what you are doing)
|
||||
.IP \-%!
|
||||
@@ -468,9 +463,7 @@ IT WITH EXTREME CARE
|
||||
|
||||
.SS Command\-line specific options:
|
||||
.IP \-V
|
||||
execute system command after each files ($0 is the filename: \-V "rm \$0") (\-\-userdef\-cmd <param>)
|
||||
.IP \-%U
|
||||
run the engine with another id when called as root (\-%U smith) (\-\-user <param>)
|
||||
execute system command after each files ($0 is the filename: \-V "rm \\$0") (\-\-userdef\-cmd <param>)
|
||||
.IP \-%W
|
||||
use an external library function as a wrapper (\-%W myfoo.so[,myparameters]) (\-\-callback <param>)
|
||||
|
||||
@@ -617,12 +610,12 @@ Please reports bugs to
|
||||
.B <bugs@httrack.com>.
|
||||
Include a complete, self-contained example that will allow the bug to be reproduced, and say which version of httrack you are using. Do not forget to detail options used, OS version, and any other information you deem necessary.
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -630,8 +623,8 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
.SH AVAILABILITY
|
||||
The most recent released version of httrack can be found at:
|
||||
.B http://www.httrack.com
|
||||
|
||||
@@ -25,12 +25,12 @@ Please reports bugs to
|
||||
.B <bugs@httrack.com>.
|
||||
Include a complete, self-contained example that will allow the bug to be reproduced, and say which version of (web)httrack you are using. Do not forget to detail options used, OS version, and any other information you deem necessary.
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2013 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -38,8 +38,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
.SH AVAILABILITY
|
||||
The most recent released version of (web)httrack can be found at:
|
||||
.B http://www.httrack.com
|
||||
|
||||
@@ -36,12 +36,12 @@ Please reports bugs to
|
||||
.B <bugs@httrack.com>.
|
||||
Include a complete, self-contained example that will allow the bug to be reproduced, and say which version of (web)httrack you are using. Do not forget to detail options used, OS version, and any other information you deem necessary.
|
||||
.SH COPYRIGHT
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2013 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -49,8 +49,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
.SH AVAILABILITY
|
||||
The most recent released version of (web)httrack can be found at:
|
||||
.B http://www.httrack.com
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#SUBDIRS = swf
|
||||
|
||||
DevIncludesdir = $(includedir)/httrack
|
||||
DevIncludes_DATA = \
|
||||
httrack-library.h \
|
||||
@@ -10,10 +8,14 @@ DevIncludes_DATA = \
|
||||
../config.h \
|
||||
htsmodules.h \
|
||||
htsbasenet.h \
|
||||
htsnet.h \
|
||||
htsbauth.h \
|
||||
htsdefines.h
|
||||
htsdefines.h \
|
||||
htsstrings.h \
|
||||
htsarrays.h \
|
||||
htssafe.h
|
||||
|
||||
INCLUDES = \
|
||||
AM_CPPFLAGS = \
|
||||
@DEFAULT_CFLAGS@ \
|
||||
@THREADS_CFLAGS@ \
|
||||
@V6_FLAG@ \
|
||||
@@ -28,45 +30,44 @@ bin_PROGRAMS = proxytrack httrack htsserver
|
||||
httrack_LDADD = $(THREADS_LIBS) libhttrack.la
|
||||
htsserver_LDADD = $(THREADS_LIBS) $(SOCKET_LIBS) libhttrack.la
|
||||
proxytrack_LDADD = $(THREADS_LIBS) $(SOCKET_LIBS)
|
||||
proxytrack_CFLAGS = $(AM_CFLAGS) -DNO_MALLOCT
|
||||
proxytrack_CFLAGS = $(AM_CFLAGS) -DNO_MALLOCT -DZLIB_CONST -DHTS_INTHASH_USES_MD5
|
||||
htsserver_CFLAGS = $(AM_CFLAGS) -DZLIB_CONST -DHTS_INTHASH_USES_MD5
|
||||
|
||||
lib_LTLIBRARIES = libhttrack.la libhtsjava.la
|
||||
|
||||
htsserver_SOURCES = htsserver.c htsserver.h htsweb.c htsweb.h
|
||||
proxytrack_SOURCES = proxy/main.c \
|
||||
proxy/proxytrack.c proxy/store.c \
|
||||
htsinthash.c htsmd5.c md5.c \
|
||||
coucal.c htsmd5.c md5.c \
|
||||
minizip/ioapi.c minizip/mztools.c minizip/unzip.c minizip/zip.c
|
||||
|
||||
whttrackrundir = $(bindir)
|
||||
whttrackrun_SCRIPTS = webhttrack
|
||||
|
||||
libhttrack_la_SOURCES = htscore.c htsparse.c htsback.c htscache.c \
|
||||
htscatchurl.c htsfilters.c htsftp.c htshash.c htsinthash.c \
|
||||
htscatchurl.c htsfilters.c htsftp.c htshash.c coucal.c \
|
||||
htshelp.c htslib.c htscoremain.c \
|
||||
htsname.c htsrobots.c htstools.c htswizard.c \
|
||||
htsalias.c htsthread.c htsindex.c htsbauth.c \
|
||||
htsmd5.c htszlib.c htswrap.c \
|
||||
htsmd5.c htszlib.c htswrap.c htsconcat.c \
|
||||
htsmodules.c htscharset.c punycode.c htsencoding.c \
|
||||
md5.c \
|
||||
htsmms.c \
|
||||
minizip/ioapi.c minizip/mztools.c minizip/unzip.c minizip/zip.c \
|
||||
mmsrip/error.c mmsrip/mms.c \
|
||||
hts-indextmpl.h htsalias.h htsback.h htsbase.h \
|
||||
hts-indextmpl.h htsalias.h htsback.h htsbase.h htssafe.h \
|
||||
htsbasenet.h htsbauth.h htscache.h htscatchurl.h \
|
||||
htsconfig.h htscore.h htsparse.h htscoremain.h htsdefines.h \
|
||||
htsfilters.h htsftp.h htsglobal.h htshash.h htsinthash.h \
|
||||
htsfilters.h htsftp.h htsglobal.h htshash.h coucal.h \
|
||||
htshelp.h htsindex.h htslib.h htsmd5.h \
|
||||
htsmodules.h htsname.h htsnet.h \
|
||||
htsopt.h htsrobots.h htsthread.h \
|
||||
htstools.h htswizard.h htswrap.h htszlib.h \
|
||||
htsstrings.h httrack-library.h htscharset.h punycode.h htsencoding.h \
|
||||
htsentities.h htsentities.sh \
|
||||
md5.h \
|
||||
htsmms.h \
|
||||
minizip/crypt.h minizip/ioapi.h minizip/mztools.h minizip/unzip.h minizip/zip.h \
|
||||
mmsrip/error.h mmsrip/mms.h
|
||||
htsstrings.h htsarrays.h httrack-library.h \
|
||||
htscharset.h punycode.h htsencoding.h \
|
||||
htsentities.h htsentities.sh htsbasiccharsets.sh htscodepages.h \
|
||||
md5.h murmurhash3.h \
|
||||
minizip/crypt.h minizip/ioapi.h minizip/mztools.h minizip/unzip.h minizip/zip.h
|
||||
libhttrack_la_LIBADD = $(THREADS_LIBS) $(ZLIB_LIBS) $(OPENSSL_LIBS) $(DL_LIBS) $(SOCKET_LIBS) $(ICONV_LIBS)
|
||||
libhttrack_la_CFLAGS = $(AM_CFLAGS) -DLIBHTTRACK_EXPORTS -DZLIB_CONST
|
||||
libhttrack_la_LDFLAGS = -version-info $(VERSION_INFO)
|
||||
|
||||
libhtsjava_la_SOURCES = htsjava.c htsjava.h
|
||||
@@ -74,16 +75,22 @@ libhtsjava_la_LIBADD = $(THREADS_LIBS) $(DL_LIBS) libhttrack.la
|
||||
libhtsjava_la_LDFLAGS = -version-info $(VERSION_INFO)
|
||||
|
||||
EXTRA_DIST = httrack.h webhttrack \
|
||||
minizip/ChangeLogUnzip \
|
||||
murmurhash3.h.diff \
|
||||
murmurhash3.h.orig \
|
||||
minizip/iowin32.c \
|
||||
minizip/iowin32.h \
|
||||
mmsrip/common.h \
|
||||
mmsrip/main.c \
|
||||
mmsrip/COPYING \
|
||||
mmsrip/AUTHORS \
|
||||
mmsrip/NEWS \
|
||||
mmsrip/README \
|
||||
mmsrip/ChangeLog \
|
||||
minizip/ioapi.c.diff \
|
||||
minizip/ioapi.h.diff \
|
||||
minizip/zip.c.diff \
|
||||
minizip/zip.h.diff \
|
||||
minizip/mztools.c.diff \
|
||||
minizip/ioapi.c.orig \
|
||||
minizip/ioapi.h.orig \
|
||||
minizip/mztools.c.orig \
|
||||
minizip/zip.c.orig \
|
||||
minizip/zip.h.orig \
|
||||
minizip/MiniZip64_Changes.txt \
|
||||
minizip/MiniZip64_info.txt \
|
||||
proxy/AUTHORS \
|
||||
proxy/COPYING \
|
||||
proxy/changelog.txt \
|
||||
|
||||
722
src/Makefile.in
722
src/Makefile.in
@@ -15,8 +15,6 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
#SUBDIRS = swf
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -112,31 +110,49 @@ libhtsjava_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
libhttrack_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
|
||||
am_libhttrack_la_OBJECTS = htscore.lo htsparse.lo htsback.lo \
|
||||
htscache.lo htscatchurl.lo htsfilters.lo htsftp.lo htshash.lo \
|
||||
htsinthash.lo htshelp.lo htslib.lo htscoremain.lo htsname.lo \
|
||||
htsrobots.lo htstools.lo htswizard.lo htsalias.lo htsthread.lo \
|
||||
htsindex.lo htsbauth.lo htsmd5.lo htszlib.lo htswrap.lo \
|
||||
htsmodules.lo htscharset.lo punycode.lo htsencoding.lo md5.lo \
|
||||
htsmms.lo ioapi.lo mztools.lo unzip.lo zip.lo error.lo mms.lo
|
||||
am__dirstamp = $(am__leading_dot)dirstamp
|
||||
am_libhttrack_la_OBJECTS = libhttrack_la-htscore.lo \
|
||||
libhttrack_la-htsparse.lo libhttrack_la-htsback.lo \
|
||||
libhttrack_la-htscache.lo libhttrack_la-htscatchurl.lo \
|
||||
libhttrack_la-htsfilters.lo libhttrack_la-htsftp.lo \
|
||||
libhttrack_la-htshash.lo libhttrack_la-coucal.lo \
|
||||
libhttrack_la-htshelp.lo libhttrack_la-htslib.lo \
|
||||
libhttrack_la-htscoremain.lo libhttrack_la-htsname.lo \
|
||||
libhttrack_la-htsrobots.lo libhttrack_la-htstools.lo \
|
||||
libhttrack_la-htswizard.lo libhttrack_la-htsalias.lo \
|
||||
libhttrack_la-htsthread.lo libhttrack_la-htsindex.lo \
|
||||
libhttrack_la-htsbauth.lo libhttrack_la-htsmd5.lo \
|
||||
libhttrack_la-htszlib.lo libhttrack_la-htswrap.lo \
|
||||
libhttrack_la-htsconcat.lo libhttrack_la-htsmodules.lo \
|
||||
libhttrack_la-htscharset.lo libhttrack_la-punycode.lo \
|
||||
libhttrack_la-htsencoding.lo libhttrack_la-md5.lo \
|
||||
minizip/libhttrack_la-ioapi.lo \
|
||||
minizip/libhttrack_la-mztools.lo \
|
||||
minizip/libhttrack_la-unzip.lo minizip/libhttrack_la-zip.lo
|
||||
libhttrack_la_OBJECTS = $(am_libhttrack_la_OBJECTS)
|
||||
libhttrack_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(libhttrack_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(libhttrack_la_CFLAGS) \
|
||||
$(CFLAGS) $(libhttrack_la_LDFLAGS) $(LDFLAGS) -o $@
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am_htsserver_OBJECTS = htsserver.$(OBJEXT) htsweb.$(OBJEXT)
|
||||
am_htsserver_OBJECTS = htsserver-htsserver.$(OBJEXT) \
|
||||
htsserver-htsweb.$(OBJEXT)
|
||||
htsserver_OBJECTS = $(am_htsserver_OBJECTS)
|
||||
htsserver_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
|
||||
libhttrack.la
|
||||
htsserver_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(htsserver_CFLAGS) \
|
||||
$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
httrack_SOURCES = httrack.c
|
||||
httrack_OBJECTS = httrack.$(OBJEXT)
|
||||
httrack_DEPENDENCIES = $(am__DEPENDENCIES_1) libhttrack.la
|
||||
am_proxytrack_OBJECTS = proxytrack-main.$(OBJEXT) \
|
||||
proxytrack-proxytrack.$(OBJEXT) proxytrack-store.$(OBJEXT) \
|
||||
proxytrack-htsinthash.$(OBJEXT) proxytrack-htsmd5.$(OBJEXT) \
|
||||
proxytrack-md5.$(OBJEXT) proxytrack-ioapi.$(OBJEXT) \
|
||||
proxytrack-mztools.$(OBJEXT) proxytrack-unzip.$(OBJEXT) \
|
||||
proxytrack-zip.$(OBJEXT)
|
||||
am_proxytrack_OBJECTS = proxy/proxytrack-main.$(OBJEXT) \
|
||||
proxy/proxytrack-proxytrack.$(OBJEXT) \
|
||||
proxy/proxytrack-store.$(OBJEXT) proxytrack-coucal.$(OBJEXT) \
|
||||
proxytrack-htsmd5.$(OBJEXT) proxytrack-md5.$(OBJEXT) \
|
||||
minizip/proxytrack-ioapi.$(OBJEXT) \
|
||||
minizip/proxytrack-mztools.$(OBJEXT) \
|
||||
minizip/proxytrack-unzip.$(OBJEXT) \
|
||||
minizip/proxytrack-zip.$(OBJEXT)
|
||||
proxytrack_OBJECTS = $(am_proxytrack_OBJECTS)
|
||||
proxytrack_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
|
||||
proxytrack_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
|
||||
@@ -171,6 +187,7 @@ CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMTAR = @AMTAR@
|
||||
AM_CFLAGS = @AM_CFLAGS@
|
||||
AR = @AR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
@@ -179,14 +196,12 @@ AWK = @AWK@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CFLAG_VISIBILITY = @CFLAG_VISIBILITY@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DEFAULT_CFLAGS = @DEFAULT_CFLAGS@
|
||||
DEFAULT_LDFLAGS = @DEFAULT_LDFLAGS@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
@@ -200,6 +215,7 @@ EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
HAVE_VISIBILITY = @HAVE_VISIBILITY@
|
||||
HTTPS_SUPPORT = @HTTPS_SUPPORT@
|
||||
ICONV_LIBS = @ICONV_LIBS@
|
||||
INSTALL = @INSTALL@
|
||||
@@ -255,7 +271,6 @@ abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
@@ -312,10 +327,14 @@ DevIncludes_DATA = \
|
||||
../config.h \
|
||||
htsmodules.h \
|
||||
htsbasenet.h \
|
||||
htsnet.h \
|
||||
htsbauth.h \
|
||||
htsdefines.h
|
||||
htsdefines.h \
|
||||
htsstrings.h \
|
||||
htsarrays.h \
|
||||
htssafe.h
|
||||
|
||||
INCLUDES = \
|
||||
AM_CPPFLAGS = \
|
||||
@DEFAULT_CFLAGS@ \
|
||||
@THREADS_CFLAGS@ \
|
||||
@V6_FLAG@ \
|
||||
@@ -328,58 +347,63 @@ INCLUDES = \
|
||||
httrack_LDADD = $(THREADS_LIBS) libhttrack.la
|
||||
htsserver_LDADD = $(THREADS_LIBS) $(SOCKET_LIBS) libhttrack.la
|
||||
proxytrack_LDADD = $(THREADS_LIBS) $(SOCKET_LIBS)
|
||||
proxytrack_CFLAGS = $(AM_CFLAGS) -DNO_MALLOCT
|
||||
proxytrack_CFLAGS = $(AM_CFLAGS) -DNO_MALLOCT -DZLIB_CONST -DHTS_INTHASH_USES_MD5
|
||||
htsserver_CFLAGS = $(AM_CFLAGS) -DZLIB_CONST -DHTS_INTHASH_USES_MD5
|
||||
lib_LTLIBRARIES = libhttrack.la libhtsjava.la
|
||||
htsserver_SOURCES = htsserver.c htsserver.h htsweb.c htsweb.h
|
||||
proxytrack_SOURCES = proxy/main.c \
|
||||
proxy/proxytrack.c proxy/store.c \
|
||||
htsinthash.c htsmd5.c md5.c \
|
||||
coucal.c htsmd5.c md5.c \
|
||||
minizip/ioapi.c minizip/mztools.c minizip/unzip.c minizip/zip.c
|
||||
|
||||
whttrackrundir = $(bindir)
|
||||
whttrackrun_SCRIPTS = webhttrack
|
||||
libhttrack_la_SOURCES = htscore.c htsparse.c htsback.c htscache.c \
|
||||
htscatchurl.c htsfilters.c htsftp.c htshash.c htsinthash.c \
|
||||
htscatchurl.c htsfilters.c htsftp.c htshash.c coucal.c \
|
||||
htshelp.c htslib.c htscoremain.c \
|
||||
htsname.c htsrobots.c htstools.c htswizard.c \
|
||||
htsalias.c htsthread.c htsindex.c htsbauth.c \
|
||||
htsmd5.c htszlib.c htswrap.c \
|
||||
htsmd5.c htszlib.c htswrap.c htsconcat.c \
|
||||
htsmodules.c htscharset.c punycode.c htsencoding.c \
|
||||
md5.c \
|
||||
htsmms.c \
|
||||
minizip/ioapi.c minizip/mztools.c minizip/unzip.c minizip/zip.c \
|
||||
mmsrip/error.c mmsrip/mms.c \
|
||||
hts-indextmpl.h htsalias.h htsback.h htsbase.h \
|
||||
hts-indextmpl.h htsalias.h htsback.h htsbase.h htssafe.h \
|
||||
htsbasenet.h htsbauth.h htscache.h htscatchurl.h \
|
||||
htsconfig.h htscore.h htsparse.h htscoremain.h htsdefines.h \
|
||||
htsfilters.h htsftp.h htsglobal.h htshash.h htsinthash.h \
|
||||
htsfilters.h htsftp.h htsglobal.h htshash.h coucal.h \
|
||||
htshelp.h htsindex.h htslib.h htsmd5.h \
|
||||
htsmodules.h htsname.h htsnet.h \
|
||||
htsopt.h htsrobots.h htsthread.h \
|
||||
htstools.h htswizard.h htswrap.h htszlib.h \
|
||||
htsstrings.h httrack-library.h htscharset.h punycode.h htsencoding.h \
|
||||
htsentities.h htsentities.sh \
|
||||
md5.h \
|
||||
htsmms.h \
|
||||
minizip/crypt.h minizip/ioapi.h minizip/mztools.h minizip/unzip.h minizip/zip.h \
|
||||
mmsrip/error.h mmsrip/mms.h
|
||||
htsstrings.h htsarrays.h httrack-library.h \
|
||||
htscharset.h punycode.h htsencoding.h \
|
||||
htsentities.h htsentities.sh htsbasiccharsets.sh htscodepages.h \
|
||||
md5.h murmurhash3.h \
|
||||
minizip/crypt.h minizip/ioapi.h minizip/mztools.h minizip/unzip.h minizip/zip.h
|
||||
|
||||
libhttrack_la_LIBADD = $(THREADS_LIBS) $(ZLIB_LIBS) $(OPENSSL_LIBS) $(DL_LIBS) $(SOCKET_LIBS) $(ICONV_LIBS)
|
||||
libhttrack_la_CFLAGS = $(AM_CFLAGS) -DLIBHTTRACK_EXPORTS -DZLIB_CONST
|
||||
libhttrack_la_LDFLAGS = -version-info $(VERSION_INFO)
|
||||
libhtsjava_la_SOURCES = htsjava.c htsjava.h
|
||||
libhtsjava_la_LIBADD = $(THREADS_LIBS) $(DL_LIBS) libhttrack.la
|
||||
libhtsjava_la_LDFLAGS = -version-info $(VERSION_INFO)
|
||||
EXTRA_DIST = httrack.h webhttrack \
|
||||
minizip/ChangeLogUnzip \
|
||||
murmurhash3.h.diff \
|
||||
murmurhash3.h.orig \
|
||||
minizip/iowin32.c \
|
||||
minizip/iowin32.h \
|
||||
mmsrip/common.h \
|
||||
mmsrip/main.c \
|
||||
mmsrip/COPYING \
|
||||
mmsrip/AUTHORS \
|
||||
mmsrip/NEWS \
|
||||
mmsrip/README \
|
||||
mmsrip/ChangeLog \
|
||||
minizip/ioapi.c.diff \
|
||||
minizip/ioapi.h.diff \
|
||||
minizip/zip.c.diff \
|
||||
minizip/zip.h.diff \
|
||||
minizip/mztools.c.diff \
|
||||
minizip/ioapi.c.orig \
|
||||
minizip/ioapi.h.orig \
|
||||
minizip/mztools.c.orig \
|
||||
minizip/zip.c.orig \
|
||||
minizip/zip.h.orig \
|
||||
minizip/MiniZip64_Changes.txt \
|
||||
minizip/MiniZip64_info.txt \
|
||||
proxy/AUTHORS \
|
||||
proxy/COPYING \
|
||||
proxy/changelog.txt \
|
||||
@@ -456,6 +480,20 @@ clean-libLTLIBRARIES:
|
||||
done
|
||||
libhtsjava.la: $(libhtsjava_la_OBJECTS) $(libhtsjava_la_DEPENDENCIES) $(EXTRA_libhtsjava_la_DEPENDENCIES)
|
||||
$(libhtsjava_la_LINK) -rpath $(libdir) $(libhtsjava_la_OBJECTS) $(libhtsjava_la_LIBADD) $(LIBS)
|
||||
minizip/$(am__dirstamp):
|
||||
@$(MKDIR_P) minizip
|
||||
@: > minizip/$(am__dirstamp)
|
||||
minizip/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) minizip/$(DEPDIR)
|
||||
@: > minizip/$(DEPDIR)/$(am__dirstamp)
|
||||
minizip/libhttrack_la-ioapi.lo: minizip/$(am__dirstamp) \
|
||||
minizip/$(DEPDIR)/$(am__dirstamp)
|
||||
minizip/libhttrack_la-mztools.lo: minizip/$(am__dirstamp) \
|
||||
minizip/$(DEPDIR)/$(am__dirstamp)
|
||||
minizip/libhttrack_la-unzip.lo: minizip/$(am__dirstamp) \
|
||||
minizip/$(DEPDIR)/$(am__dirstamp)
|
||||
minizip/libhttrack_la-zip.lo: minizip/$(am__dirstamp) \
|
||||
minizip/$(DEPDIR)/$(am__dirstamp)
|
||||
libhttrack.la: $(libhttrack_la_OBJECTS) $(libhttrack_la_DEPENDENCIES) $(EXTRA_libhttrack_la_DEPENDENCIES)
|
||||
$(libhttrack_la_LINK) -rpath $(libdir) $(libhttrack_la_OBJECTS) $(libhttrack_la_LIBADD) $(LIBS)
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@@ -506,10 +544,30 @@ clean-binPROGRAMS:
|
||||
rm -f $$list
|
||||
htsserver$(EXEEXT): $(htsserver_OBJECTS) $(htsserver_DEPENDENCIES) $(EXTRA_htsserver_DEPENDENCIES)
|
||||
@rm -f htsserver$(EXEEXT)
|
||||
$(LINK) $(htsserver_OBJECTS) $(htsserver_LDADD) $(LIBS)
|
||||
$(htsserver_LINK) $(htsserver_OBJECTS) $(htsserver_LDADD) $(LIBS)
|
||||
httrack$(EXEEXT): $(httrack_OBJECTS) $(httrack_DEPENDENCIES) $(EXTRA_httrack_DEPENDENCIES)
|
||||
@rm -f httrack$(EXEEXT)
|
||||
$(LINK) $(httrack_OBJECTS) $(httrack_LDADD) $(LIBS)
|
||||
proxy/$(am__dirstamp):
|
||||
@$(MKDIR_P) proxy
|
||||
@: > proxy/$(am__dirstamp)
|
||||
proxy/$(DEPDIR)/$(am__dirstamp):
|
||||
@$(MKDIR_P) proxy/$(DEPDIR)
|
||||
@: > proxy/$(DEPDIR)/$(am__dirstamp)
|
||||
proxy/proxytrack-main.$(OBJEXT): proxy/$(am__dirstamp) \
|
||||
proxy/$(DEPDIR)/$(am__dirstamp)
|
||||
proxy/proxytrack-proxytrack.$(OBJEXT): proxy/$(am__dirstamp) \
|
||||
proxy/$(DEPDIR)/$(am__dirstamp)
|
||||
proxy/proxytrack-store.$(OBJEXT): proxy/$(am__dirstamp) \
|
||||
proxy/$(DEPDIR)/$(am__dirstamp)
|
||||
minizip/proxytrack-ioapi.$(OBJEXT): minizip/$(am__dirstamp) \
|
||||
minizip/$(DEPDIR)/$(am__dirstamp)
|
||||
minizip/proxytrack-mztools.$(OBJEXT): minizip/$(am__dirstamp) \
|
||||
minizip/$(DEPDIR)/$(am__dirstamp)
|
||||
minizip/proxytrack-unzip.$(OBJEXT): minizip/$(am__dirstamp) \
|
||||
minizip/$(DEPDIR)/$(am__dirstamp)
|
||||
minizip/proxytrack-zip.$(OBJEXT): minizip/$(am__dirstamp) \
|
||||
minizip/$(DEPDIR)/$(am__dirstamp)
|
||||
proxytrack$(EXEEXT): $(proxytrack_OBJECTS) $(proxytrack_DEPENDENCIES) $(EXTRA_proxytrack_DEPENDENCIES)
|
||||
@rm -f proxytrack$(EXEEXT)
|
||||
$(proxytrack_LINK) $(proxytrack_OBJECTS) $(proxytrack_LDADD) $(LIBS)
|
||||
@@ -551,178 +609,411 @@ uninstall-whttrackrunSCRIPTS:
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
-rm -f minizip/libhttrack_la-ioapi.$(OBJEXT)
|
||||
-rm -f minizip/libhttrack_la-ioapi.lo
|
||||
-rm -f minizip/libhttrack_la-mztools.$(OBJEXT)
|
||||
-rm -f minizip/libhttrack_la-mztools.lo
|
||||
-rm -f minizip/libhttrack_la-unzip.$(OBJEXT)
|
||||
-rm -f minizip/libhttrack_la-unzip.lo
|
||||
-rm -f minizip/libhttrack_la-zip.$(OBJEXT)
|
||||
-rm -f minizip/libhttrack_la-zip.lo
|
||||
-rm -f minizip/proxytrack-ioapi.$(OBJEXT)
|
||||
-rm -f minizip/proxytrack-mztools.$(OBJEXT)
|
||||
-rm -f minizip/proxytrack-unzip.$(OBJEXT)
|
||||
-rm -f minizip/proxytrack-zip.$(OBJEXT)
|
||||
-rm -f proxy/proxytrack-main.$(OBJEXT)
|
||||
-rm -f proxy/proxytrack-proxytrack.$(OBJEXT)
|
||||
-rm -f proxy/proxytrack-store.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsalias.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsback.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsbauth.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htscache.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htscatchurl.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htscharset.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htscore.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htscoremain.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsencoding.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsfilters.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsftp.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htshash.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htshelp.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsindex.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsinthash.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsjava.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htslib.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsmd5.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsmms.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsmodules.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsname.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsparse.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsrobots.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsserver.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsthread.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htstools.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsweb.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htswizard.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htswrap.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htszlib.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsserver-htsserver.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/htsserver-htsweb.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/httrack.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ioapi.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mms.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mztools.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxytrack-htsinthash.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-coucal.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsalias.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsback.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsbauth.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htscache.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htscatchurl.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htscharset.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsconcat.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htscore.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htscoremain.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsencoding.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsfilters.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsftp.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htshash.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htshelp.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsindex.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htslib.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsmd5.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsmodules.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsname.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsparse.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsrobots.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htsthread.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htstools.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htswizard.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htswrap.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-htszlib.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-md5.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libhttrack_la-punycode.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxytrack-coucal.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxytrack-htsmd5.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxytrack-ioapi.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxytrack-main.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxytrack-md5.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxytrack-mztools.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxytrack-proxytrack.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxytrack-store.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxytrack-unzip.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/proxytrack-zip.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/punycode.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unzip.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/zip.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@minizip/$(DEPDIR)/libhttrack_la-ioapi.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@minizip/$(DEPDIR)/libhttrack_la-mztools.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@minizip/$(DEPDIR)/libhttrack_la-unzip.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@minizip/$(DEPDIR)/libhttrack_la-zip.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@minizip/$(DEPDIR)/proxytrack-ioapi.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@minizip/$(DEPDIR)/proxytrack-mztools.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@minizip/$(DEPDIR)/proxytrack-unzip.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@minizip/$(DEPDIR)/proxytrack-zip.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@proxy/$(DEPDIR)/proxytrack-main.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@proxy/$(DEPDIR)/proxytrack-proxytrack.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@proxy/$(DEPDIR)/proxytrack-store.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@am__fastdepCC_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
ioapi.lo: minizip/ioapi.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ioapi.lo -MD -MP -MF $(DEPDIR)/ioapi.Tpo -c -o ioapi.lo `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/ioapi.Tpo $(DEPDIR)/ioapi.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/ioapi.c' object='ioapi.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
libhttrack_la-htscore.lo: htscore.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htscore.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htscore.Tpo -c -o libhttrack_la-htscore.lo `test -f 'htscore.c' || echo '$(srcdir)/'`htscore.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htscore.Tpo $(DEPDIR)/libhttrack_la-htscore.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htscore.c' object='libhttrack_la-htscore.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ioapi.lo `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htscore.lo `test -f 'htscore.c' || echo '$(srcdir)/'`htscore.c
|
||||
|
||||
mztools.lo: minizip/mztools.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mztools.lo -MD -MP -MF $(DEPDIR)/mztools.Tpo -c -o mztools.lo `test -f 'minizip/mztools.c' || echo '$(srcdir)/'`minizip/mztools.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mztools.Tpo $(DEPDIR)/mztools.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/mztools.c' object='mztools.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
libhttrack_la-htsparse.lo: htsparse.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsparse.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsparse.Tpo -c -o libhttrack_la-htsparse.lo `test -f 'htsparse.c' || echo '$(srcdir)/'`htsparse.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsparse.Tpo $(DEPDIR)/libhttrack_la-htsparse.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsparse.c' object='libhttrack_la-htsparse.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mztools.lo `test -f 'minizip/mztools.c' || echo '$(srcdir)/'`minizip/mztools.c
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsparse.lo `test -f 'htsparse.c' || echo '$(srcdir)/'`htsparse.c
|
||||
|
||||
unzip.lo: minizip/unzip.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unzip.lo -MD -MP -MF $(DEPDIR)/unzip.Tpo -c -o unzip.lo `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/unzip.Tpo $(DEPDIR)/unzip.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/unzip.c' object='unzip.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
libhttrack_la-htsback.lo: htsback.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsback.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsback.Tpo -c -o libhttrack_la-htsback.lo `test -f 'htsback.c' || echo '$(srcdir)/'`htsback.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsback.Tpo $(DEPDIR)/libhttrack_la-htsback.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsback.c' object='libhttrack_la-htsback.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unzip.lo `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsback.lo `test -f 'htsback.c' || echo '$(srcdir)/'`htsback.c
|
||||
|
||||
zip.lo: minizip/zip.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zip.lo -MD -MP -MF $(DEPDIR)/zip.Tpo -c -o zip.lo `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/zip.Tpo $(DEPDIR)/zip.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/zip.c' object='zip.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
libhttrack_la-htscache.lo: htscache.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htscache.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htscache.Tpo -c -o libhttrack_la-htscache.lo `test -f 'htscache.c' || echo '$(srcdir)/'`htscache.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htscache.Tpo $(DEPDIR)/libhttrack_la-htscache.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htscache.c' object='libhttrack_la-htscache.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zip.lo `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htscache.lo `test -f 'htscache.c' || echo '$(srcdir)/'`htscache.c
|
||||
|
||||
error.lo: mmsrip/error.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT error.lo -MD -MP -MF $(DEPDIR)/error.Tpo -c -o error.lo `test -f 'mmsrip/error.c' || echo '$(srcdir)/'`mmsrip/error.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/error.Tpo $(DEPDIR)/error.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmsrip/error.c' object='error.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
libhttrack_la-htscatchurl.lo: htscatchurl.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htscatchurl.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htscatchurl.Tpo -c -o libhttrack_la-htscatchurl.lo `test -f 'htscatchurl.c' || echo '$(srcdir)/'`htscatchurl.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htscatchurl.Tpo $(DEPDIR)/libhttrack_la-htscatchurl.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htscatchurl.c' object='libhttrack_la-htscatchurl.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o error.lo `test -f 'mmsrip/error.c' || echo '$(srcdir)/'`mmsrip/error.c
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htscatchurl.lo `test -f 'htscatchurl.c' || echo '$(srcdir)/'`htscatchurl.c
|
||||
|
||||
mms.lo: mmsrip/mms.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT mms.lo -MD -MP -MF $(DEPDIR)/mms.Tpo -c -o mms.lo `test -f 'mmsrip/mms.c' || echo '$(srcdir)/'`mmsrip/mms.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/mms.Tpo $(DEPDIR)/mms.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mmsrip/mms.c' object='mms.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
libhttrack_la-htsfilters.lo: htsfilters.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsfilters.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsfilters.Tpo -c -o libhttrack_la-htsfilters.lo `test -f 'htsfilters.c' || echo '$(srcdir)/'`htsfilters.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsfilters.Tpo $(DEPDIR)/libhttrack_la-htsfilters.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsfilters.c' object='libhttrack_la-htsfilters.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o mms.lo `test -f 'mmsrip/mms.c' || echo '$(srcdir)/'`mmsrip/mms.c
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsfilters.lo `test -f 'htsfilters.c' || echo '$(srcdir)/'`htsfilters.c
|
||||
|
||||
proxytrack-main.o: proxy/main.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-main.o -MD -MP -MF $(DEPDIR)/proxytrack-main.Tpo -c -o proxytrack-main.o `test -f 'proxy/main.c' || echo '$(srcdir)/'`proxy/main.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-main.Tpo $(DEPDIR)/proxytrack-main.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/main.c' object='proxytrack-main.o' libtool=no @AMDEPBACKSLASH@
|
||||
libhttrack_la-htsftp.lo: htsftp.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsftp.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsftp.Tpo -c -o libhttrack_la-htsftp.lo `test -f 'htsftp.c' || echo '$(srcdir)/'`htsftp.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsftp.Tpo $(DEPDIR)/libhttrack_la-htsftp.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsftp.c' object='libhttrack_la-htsftp.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-main.o `test -f 'proxy/main.c' || echo '$(srcdir)/'`proxy/main.c
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsftp.lo `test -f 'htsftp.c' || echo '$(srcdir)/'`htsftp.c
|
||||
|
||||
proxytrack-main.obj: proxy/main.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-main.obj -MD -MP -MF $(DEPDIR)/proxytrack-main.Tpo -c -o proxytrack-main.obj `if test -f 'proxy/main.c'; then $(CYGPATH_W) 'proxy/main.c'; else $(CYGPATH_W) '$(srcdir)/proxy/main.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-main.Tpo $(DEPDIR)/proxytrack-main.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/main.c' object='proxytrack-main.obj' libtool=no @AMDEPBACKSLASH@
|
||||
libhttrack_la-htshash.lo: htshash.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htshash.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htshash.Tpo -c -o libhttrack_la-htshash.lo `test -f 'htshash.c' || echo '$(srcdir)/'`htshash.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htshash.Tpo $(DEPDIR)/libhttrack_la-htshash.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htshash.c' object='libhttrack_la-htshash.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-main.obj `if test -f 'proxy/main.c'; then $(CYGPATH_W) 'proxy/main.c'; else $(CYGPATH_W) '$(srcdir)/proxy/main.c'; fi`
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htshash.lo `test -f 'htshash.c' || echo '$(srcdir)/'`htshash.c
|
||||
|
||||
proxytrack-proxytrack.o: proxy/proxytrack.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-proxytrack.o -MD -MP -MF $(DEPDIR)/proxytrack-proxytrack.Tpo -c -o proxytrack-proxytrack.o `test -f 'proxy/proxytrack.c' || echo '$(srcdir)/'`proxy/proxytrack.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-proxytrack.Tpo $(DEPDIR)/proxytrack-proxytrack.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/proxytrack.c' object='proxytrack-proxytrack.o' libtool=no @AMDEPBACKSLASH@
|
||||
libhttrack_la-coucal.lo: coucal.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-coucal.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-coucal.Tpo -c -o libhttrack_la-coucal.lo `test -f 'coucal.c' || echo '$(srcdir)/'`coucal.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-coucal.Tpo $(DEPDIR)/libhttrack_la-coucal.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='coucal.c' object='libhttrack_la-coucal.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-proxytrack.o `test -f 'proxy/proxytrack.c' || echo '$(srcdir)/'`proxy/proxytrack.c
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-coucal.lo `test -f 'coucal.c' || echo '$(srcdir)/'`coucal.c
|
||||
|
||||
proxytrack-proxytrack.obj: proxy/proxytrack.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-proxytrack.obj -MD -MP -MF $(DEPDIR)/proxytrack-proxytrack.Tpo -c -o proxytrack-proxytrack.obj `if test -f 'proxy/proxytrack.c'; then $(CYGPATH_W) 'proxy/proxytrack.c'; else $(CYGPATH_W) '$(srcdir)/proxy/proxytrack.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-proxytrack.Tpo $(DEPDIR)/proxytrack-proxytrack.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/proxytrack.c' object='proxytrack-proxytrack.obj' libtool=no @AMDEPBACKSLASH@
|
||||
libhttrack_la-htshelp.lo: htshelp.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htshelp.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htshelp.Tpo -c -o libhttrack_la-htshelp.lo `test -f 'htshelp.c' || echo '$(srcdir)/'`htshelp.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htshelp.Tpo $(DEPDIR)/libhttrack_la-htshelp.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htshelp.c' object='libhttrack_la-htshelp.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-proxytrack.obj `if test -f 'proxy/proxytrack.c'; then $(CYGPATH_W) 'proxy/proxytrack.c'; else $(CYGPATH_W) '$(srcdir)/proxy/proxytrack.c'; fi`
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htshelp.lo `test -f 'htshelp.c' || echo '$(srcdir)/'`htshelp.c
|
||||
|
||||
proxytrack-store.o: proxy/store.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-store.o -MD -MP -MF $(DEPDIR)/proxytrack-store.Tpo -c -o proxytrack-store.o `test -f 'proxy/store.c' || echo '$(srcdir)/'`proxy/store.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-store.Tpo $(DEPDIR)/proxytrack-store.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/store.c' object='proxytrack-store.o' libtool=no @AMDEPBACKSLASH@
|
||||
libhttrack_la-htslib.lo: htslib.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htslib.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htslib.Tpo -c -o libhttrack_la-htslib.lo `test -f 'htslib.c' || echo '$(srcdir)/'`htslib.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htslib.Tpo $(DEPDIR)/libhttrack_la-htslib.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htslib.c' object='libhttrack_la-htslib.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-store.o `test -f 'proxy/store.c' || echo '$(srcdir)/'`proxy/store.c
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htslib.lo `test -f 'htslib.c' || echo '$(srcdir)/'`htslib.c
|
||||
|
||||
proxytrack-store.obj: proxy/store.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-store.obj -MD -MP -MF $(DEPDIR)/proxytrack-store.Tpo -c -o proxytrack-store.obj `if test -f 'proxy/store.c'; then $(CYGPATH_W) 'proxy/store.c'; else $(CYGPATH_W) '$(srcdir)/proxy/store.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-store.Tpo $(DEPDIR)/proxytrack-store.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/store.c' object='proxytrack-store.obj' libtool=no @AMDEPBACKSLASH@
|
||||
libhttrack_la-htscoremain.lo: htscoremain.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htscoremain.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htscoremain.Tpo -c -o libhttrack_la-htscoremain.lo `test -f 'htscoremain.c' || echo '$(srcdir)/'`htscoremain.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htscoremain.Tpo $(DEPDIR)/libhttrack_la-htscoremain.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htscoremain.c' object='libhttrack_la-htscoremain.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-store.obj `if test -f 'proxy/store.c'; then $(CYGPATH_W) 'proxy/store.c'; else $(CYGPATH_W) '$(srcdir)/proxy/store.c'; fi`
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htscoremain.lo `test -f 'htscoremain.c' || echo '$(srcdir)/'`htscoremain.c
|
||||
|
||||
proxytrack-htsinthash.o: htsinthash.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-htsinthash.o -MD -MP -MF $(DEPDIR)/proxytrack-htsinthash.Tpo -c -o proxytrack-htsinthash.o `test -f 'htsinthash.c' || echo '$(srcdir)/'`htsinthash.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-htsinthash.Tpo $(DEPDIR)/proxytrack-htsinthash.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsinthash.c' object='proxytrack-htsinthash.o' libtool=no @AMDEPBACKSLASH@
|
||||
libhttrack_la-htsname.lo: htsname.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsname.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsname.Tpo -c -o libhttrack_la-htsname.lo `test -f 'htsname.c' || echo '$(srcdir)/'`htsname.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsname.Tpo $(DEPDIR)/libhttrack_la-htsname.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsname.c' object='libhttrack_la-htsname.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-htsinthash.o `test -f 'htsinthash.c' || echo '$(srcdir)/'`htsinthash.c
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsname.lo `test -f 'htsname.c' || echo '$(srcdir)/'`htsname.c
|
||||
|
||||
proxytrack-htsinthash.obj: htsinthash.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-htsinthash.obj -MD -MP -MF $(DEPDIR)/proxytrack-htsinthash.Tpo -c -o proxytrack-htsinthash.obj `if test -f 'htsinthash.c'; then $(CYGPATH_W) 'htsinthash.c'; else $(CYGPATH_W) '$(srcdir)/htsinthash.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-htsinthash.Tpo $(DEPDIR)/proxytrack-htsinthash.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsinthash.c' object='proxytrack-htsinthash.obj' libtool=no @AMDEPBACKSLASH@
|
||||
libhttrack_la-htsrobots.lo: htsrobots.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsrobots.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsrobots.Tpo -c -o libhttrack_la-htsrobots.lo `test -f 'htsrobots.c' || echo '$(srcdir)/'`htsrobots.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsrobots.Tpo $(DEPDIR)/libhttrack_la-htsrobots.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsrobots.c' object='libhttrack_la-htsrobots.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-htsinthash.obj `if test -f 'htsinthash.c'; then $(CYGPATH_W) 'htsinthash.c'; else $(CYGPATH_W) '$(srcdir)/htsinthash.c'; fi`
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsrobots.lo `test -f 'htsrobots.c' || echo '$(srcdir)/'`htsrobots.c
|
||||
|
||||
libhttrack_la-htstools.lo: htstools.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htstools.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htstools.Tpo -c -o libhttrack_la-htstools.lo `test -f 'htstools.c' || echo '$(srcdir)/'`htstools.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htstools.Tpo $(DEPDIR)/libhttrack_la-htstools.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htstools.c' object='libhttrack_la-htstools.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htstools.lo `test -f 'htstools.c' || echo '$(srcdir)/'`htstools.c
|
||||
|
||||
libhttrack_la-htswizard.lo: htswizard.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htswizard.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htswizard.Tpo -c -o libhttrack_la-htswizard.lo `test -f 'htswizard.c' || echo '$(srcdir)/'`htswizard.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htswizard.Tpo $(DEPDIR)/libhttrack_la-htswizard.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htswizard.c' object='libhttrack_la-htswizard.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htswizard.lo `test -f 'htswizard.c' || echo '$(srcdir)/'`htswizard.c
|
||||
|
||||
libhttrack_la-htsalias.lo: htsalias.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsalias.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsalias.Tpo -c -o libhttrack_la-htsalias.lo `test -f 'htsalias.c' || echo '$(srcdir)/'`htsalias.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsalias.Tpo $(DEPDIR)/libhttrack_la-htsalias.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsalias.c' object='libhttrack_la-htsalias.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsalias.lo `test -f 'htsalias.c' || echo '$(srcdir)/'`htsalias.c
|
||||
|
||||
libhttrack_la-htsthread.lo: htsthread.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsthread.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsthread.Tpo -c -o libhttrack_la-htsthread.lo `test -f 'htsthread.c' || echo '$(srcdir)/'`htsthread.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsthread.Tpo $(DEPDIR)/libhttrack_la-htsthread.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsthread.c' object='libhttrack_la-htsthread.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsthread.lo `test -f 'htsthread.c' || echo '$(srcdir)/'`htsthread.c
|
||||
|
||||
libhttrack_la-htsindex.lo: htsindex.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsindex.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsindex.Tpo -c -o libhttrack_la-htsindex.lo `test -f 'htsindex.c' || echo '$(srcdir)/'`htsindex.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsindex.Tpo $(DEPDIR)/libhttrack_la-htsindex.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsindex.c' object='libhttrack_la-htsindex.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsindex.lo `test -f 'htsindex.c' || echo '$(srcdir)/'`htsindex.c
|
||||
|
||||
libhttrack_la-htsbauth.lo: htsbauth.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsbauth.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsbauth.Tpo -c -o libhttrack_la-htsbauth.lo `test -f 'htsbauth.c' || echo '$(srcdir)/'`htsbauth.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsbauth.Tpo $(DEPDIR)/libhttrack_la-htsbauth.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsbauth.c' object='libhttrack_la-htsbauth.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsbauth.lo `test -f 'htsbauth.c' || echo '$(srcdir)/'`htsbauth.c
|
||||
|
||||
libhttrack_la-htsmd5.lo: htsmd5.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsmd5.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsmd5.Tpo -c -o libhttrack_la-htsmd5.lo `test -f 'htsmd5.c' || echo '$(srcdir)/'`htsmd5.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsmd5.Tpo $(DEPDIR)/libhttrack_la-htsmd5.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsmd5.c' object='libhttrack_la-htsmd5.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsmd5.lo `test -f 'htsmd5.c' || echo '$(srcdir)/'`htsmd5.c
|
||||
|
||||
libhttrack_la-htszlib.lo: htszlib.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htszlib.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htszlib.Tpo -c -o libhttrack_la-htszlib.lo `test -f 'htszlib.c' || echo '$(srcdir)/'`htszlib.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htszlib.Tpo $(DEPDIR)/libhttrack_la-htszlib.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htszlib.c' object='libhttrack_la-htszlib.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htszlib.lo `test -f 'htszlib.c' || echo '$(srcdir)/'`htszlib.c
|
||||
|
||||
libhttrack_la-htswrap.lo: htswrap.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htswrap.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htswrap.Tpo -c -o libhttrack_la-htswrap.lo `test -f 'htswrap.c' || echo '$(srcdir)/'`htswrap.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htswrap.Tpo $(DEPDIR)/libhttrack_la-htswrap.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htswrap.c' object='libhttrack_la-htswrap.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htswrap.lo `test -f 'htswrap.c' || echo '$(srcdir)/'`htswrap.c
|
||||
|
||||
libhttrack_la-htsconcat.lo: htsconcat.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsconcat.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsconcat.Tpo -c -o libhttrack_la-htsconcat.lo `test -f 'htsconcat.c' || echo '$(srcdir)/'`htsconcat.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsconcat.Tpo $(DEPDIR)/libhttrack_la-htsconcat.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsconcat.c' object='libhttrack_la-htsconcat.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsconcat.lo `test -f 'htsconcat.c' || echo '$(srcdir)/'`htsconcat.c
|
||||
|
||||
libhttrack_la-htsmodules.lo: htsmodules.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsmodules.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsmodules.Tpo -c -o libhttrack_la-htsmodules.lo `test -f 'htsmodules.c' || echo '$(srcdir)/'`htsmodules.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsmodules.Tpo $(DEPDIR)/libhttrack_la-htsmodules.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsmodules.c' object='libhttrack_la-htsmodules.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsmodules.lo `test -f 'htsmodules.c' || echo '$(srcdir)/'`htsmodules.c
|
||||
|
||||
libhttrack_la-htscharset.lo: htscharset.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htscharset.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htscharset.Tpo -c -o libhttrack_la-htscharset.lo `test -f 'htscharset.c' || echo '$(srcdir)/'`htscharset.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htscharset.Tpo $(DEPDIR)/libhttrack_la-htscharset.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htscharset.c' object='libhttrack_la-htscharset.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htscharset.lo `test -f 'htscharset.c' || echo '$(srcdir)/'`htscharset.c
|
||||
|
||||
libhttrack_la-punycode.lo: punycode.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-punycode.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-punycode.Tpo -c -o libhttrack_la-punycode.lo `test -f 'punycode.c' || echo '$(srcdir)/'`punycode.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-punycode.Tpo $(DEPDIR)/libhttrack_la-punycode.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='punycode.c' object='libhttrack_la-punycode.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-punycode.lo `test -f 'punycode.c' || echo '$(srcdir)/'`punycode.c
|
||||
|
||||
libhttrack_la-htsencoding.lo: htsencoding.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-htsencoding.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-htsencoding.Tpo -c -o libhttrack_la-htsencoding.lo `test -f 'htsencoding.c' || echo '$(srcdir)/'`htsencoding.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-htsencoding.Tpo $(DEPDIR)/libhttrack_la-htsencoding.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsencoding.c' object='libhttrack_la-htsencoding.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-htsencoding.lo `test -f 'htsencoding.c' || echo '$(srcdir)/'`htsencoding.c
|
||||
|
||||
libhttrack_la-md5.lo: md5.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT libhttrack_la-md5.lo -MD -MP -MF $(DEPDIR)/libhttrack_la-md5.Tpo -c -o libhttrack_la-md5.lo `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libhttrack_la-md5.Tpo $(DEPDIR)/libhttrack_la-md5.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='md5.c' object='libhttrack_la-md5.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o libhttrack_la-md5.lo `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
|
||||
|
||||
minizip/libhttrack_la-ioapi.lo: minizip/ioapi.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT minizip/libhttrack_la-ioapi.lo -MD -MP -MF minizip/$(DEPDIR)/libhttrack_la-ioapi.Tpo -c -o minizip/libhttrack_la-ioapi.lo `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/libhttrack_la-ioapi.Tpo minizip/$(DEPDIR)/libhttrack_la-ioapi.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/ioapi.c' object='minizip/libhttrack_la-ioapi.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o minizip/libhttrack_la-ioapi.lo `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
|
||||
|
||||
minizip/libhttrack_la-mztools.lo: minizip/mztools.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT minizip/libhttrack_la-mztools.lo -MD -MP -MF minizip/$(DEPDIR)/libhttrack_la-mztools.Tpo -c -o minizip/libhttrack_la-mztools.lo `test -f 'minizip/mztools.c' || echo '$(srcdir)/'`minizip/mztools.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/libhttrack_la-mztools.Tpo minizip/$(DEPDIR)/libhttrack_la-mztools.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/mztools.c' object='minizip/libhttrack_la-mztools.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o minizip/libhttrack_la-mztools.lo `test -f 'minizip/mztools.c' || echo '$(srcdir)/'`minizip/mztools.c
|
||||
|
||||
minizip/libhttrack_la-unzip.lo: minizip/unzip.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT minizip/libhttrack_la-unzip.lo -MD -MP -MF minizip/$(DEPDIR)/libhttrack_la-unzip.Tpo -c -o minizip/libhttrack_la-unzip.lo `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/libhttrack_la-unzip.Tpo minizip/$(DEPDIR)/libhttrack_la-unzip.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/unzip.c' object='minizip/libhttrack_la-unzip.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o minizip/libhttrack_la-unzip.lo `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
|
||||
|
||||
minizip/libhttrack_la-zip.lo: minizip/zip.c
|
||||
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -MT minizip/libhttrack_la-zip.lo -MD -MP -MF minizip/$(DEPDIR)/libhttrack_la-zip.Tpo -c -o minizip/libhttrack_la-zip.lo `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/libhttrack_la-zip.Tpo minizip/$(DEPDIR)/libhttrack_la-zip.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/zip.c' object='minizip/libhttrack_la-zip.lo' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libhttrack_la_CFLAGS) $(CFLAGS) -c -o minizip/libhttrack_la-zip.lo `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
|
||||
|
||||
htsserver-htsserver.o: htsserver.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htsserver_CFLAGS) $(CFLAGS) -MT htsserver-htsserver.o -MD -MP -MF $(DEPDIR)/htsserver-htsserver.Tpo -c -o htsserver-htsserver.o `test -f 'htsserver.c' || echo '$(srcdir)/'`htsserver.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/htsserver-htsserver.Tpo $(DEPDIR)/htsserver-htsserver.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsserver.c' object='htsserver-htsserver.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htsserver_CFLAGS) $(CFLAGS) -c -o htsserver-htsserver.o `test -f 'htsserver.c' || echo '$(srcdir)/'`htsserver.c
|
||||
|
||||
htsserver-htsserver.obj: htsserver.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htsserver_CFLAGS) $(CFLAGS) -MT htsserver-htsserver.obj -MD -MP -MF $(DEPDIR)/htsserver-htsserver.Tpo -c -o htsserver-htsserver.obj `if test -f 'htsserver.c'; then $(CYGPATH_W) 'htsserver.c'; else $(CYGPATH_W) '$(srcdir)/htsserver.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/htsserver-htsserver.Tpo $(DEPDIR)/htsserver-htsserver.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsserver.c' object='htsserver-htsserver.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htsserver_CFLAGS) $(CFLAGS) -c -o htsserver-htsserver.obj `if test -f 'htsserver.c'; then $(CYGPATH_W) 'htsserver.c'; else $(CYGPATH_W) '$(srcdir)/htsserver.c'; fi`
|
||||
|
||||
htsserver-htsweb.o: htsweb.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htsserver_CFLAGS) $(CFLAGS) -MT htsserver-htsweb.o -MD -MP -MF $(DEPDIR)/htsserver-htsweb.Tpo -c -o htsserver-htsweb.o `test -f 'htsweb.c' || echo '$(srcdir)/'`htsweb.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/htsserver-htsweb.Tpo $(DEPDIR)/htsserver-htsweb.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsweb.c' object='htsserver-htsweb.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htsserver_CFLAGS) $(CFLAGS) -c -o htsserver-htsweb.o `test -f 'htsweb.c' || echo '$(srcdir)/'`htsweb.c
|
||||
|
||||
htsserver-htsweb.obj: htsweb.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htsserver_CFLAGS) $(CFLAGS) -MT htsserver-htsweb.obj -MD -MP -MF $(DEPDIR)/htsserver-htsweb.Tpo -c -o htsserver-htsweb.obj `if test -f 'htsweb.c'; then $(CYGPATH_W) 'htsweb.c'; else $(CYGPATH_W) '$(srcdir)/htsweb.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/htsserver-htsweb.Tpo $(DEPDIR)/htsserver-htsweb.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='htsweb.c' object='htsserver-htsweb.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(htsserver_CFLAGS) $(CFLAGS) -c -o htsserver-htsweb.obj `if test -f 'htsweb.c'; then $(CYGPATH_W) 'htsweb.c'; else $(CYGPATH_W) '$(srcdir)/htsweb.c'; fi`
|
||||
|
||||
proxy/proxytrack-main.o: proxy/main.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxy/proxytrack-main.o -MD -MP -MF proxy/$(DEPDIR)/proxytrack-main.Tpo -c -o proxy/proxytrack-main.o `test -f 'proxy/main.c' || echo '$(srcdir)/'`proxy/main.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) proxy/$(DEPDIR)/proxytrack-main.Tpo proxy/$(DEPDIR)/proxytrack-main.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/main.c' object='proxy/proxytrack-main.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxy/proxytrack-main.o `test -f 'proxy/main.c' || echo '$(srcdir)/'`proxy/main.c
|
||||
|
||||
proxy/proxytrack-main.obj: proxy/main.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxy/proxytrack-main.obj -MD -MP -MF proxy/$(DEPDIR)/proxytrack-main.Tpo -c -o proxy/proxytrack-main.obj `if test -f 'proxy/main.c'; then $(CYGPATH_W) 'proxy/main.c'; else $(CYGPATH_W) '$(srcdir)/proxy/main.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) proxy/$(DEPDIR)/proxytrack-main.Tpo proxy/$(DEPDIR)/proxytrack-main.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/main.c' object='proxy/proxytrack-main.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxy/proxytrack-main.obj `if test -f 'proxy/main.c'; then $(CYGPATH_W) 'proxy/main.c'; else $(CYGPATH_W) '$(srcdir)/proxy/main.c'; fi`
|
||||
|
||||
proxy/proxytrack-proxytrack.o: proxy/proxytrack.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxy/proxytrack-proxytrack.o -MD -MP -MF proxy/$(DEPDIR)/proxytrack-proxytrack.Tpo -c -o proxy/proxytrack-proxytrack.o `test -f 'proxy/proxytrack.c' || echo '$(srcdir)/'`proxy/proxytrack.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) proxy/$(DEPDIR)/proxytrack-proxytrack.Tpo proxy/$(DEPDIR)/proxytrack-proxytrack.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/proxytrack.c' object='proxy/proxytrack-proxytrack.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxy/proxytrack-proxytrack.o `test -f 'proxy/proxytrack.c' || echo '$(srcdir)/'`proxy/proxytrack.c
|
||||
|
||||
proxy/proxytrack-proxytrack.obj: proxy/proxytrack.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxy/proxytrack-proxytrack.obj -MD -MP -MF proxy/$(DEPDIR)/proxytrack-proxytrack.Tpo -c -o proxy/proxytrack-proxytrack.obj `if test -f 'proxy/proxytrack.c'; then $(CYGPATH_W) 'proxy/proxytrack.c'; else $(CYGPATH_W) '$(srcdir)/proxy/proxytrack.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) proxy/$(DEPDIR)/proxytrack-proxytrack.Tpo proxy/$(DEPDIR)/proxytrack-proxytrack.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/proxytrack.c' object='proxy/proxytrack-proxytrack.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxy/proxytrack-proxytrack.obj `if test -f 'proxy/proxytrack.c'; then $(CYGPATH_W) 'proxy/proxytrack.c'; else $(CYGPATH_W) '$(srcdir)/proxy/proxytrack.c'; fi`
|
||||
|
||||
proxy/proxytrack-store.o: proxy/store.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxy/proxytrack-store.o -MD -MP -MF proxy/$(DEPDIR)/proxytrack-store.Tpo -c -o proxy/proxytrack-store.o `test -f 'proxy/store.c' || echo '$(srcdir)/'`proxy/store.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) proxy/$(DEPDIR)/proxytrack-store.Tpo proxy/$(DEPDIR)/proxytrack-store.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/store.c' object='proxy/proxytrack-store.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxy/proxytrack-store.o `test -f 'proxy/store.c' || echo '$(srcdir)/'`proxy/store.c
|
||||
|
||||
proxy/proxytrack-store.obj: proxy/store.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxy/proxytrack-store.obj -MD -MP -MF proxy/$(DEPDIR)/proxytrack-store.Tpo -c -o proxy/proxytrack-store.obj `if test -f 'proxy/store.c'; then $(CYGPATH_W) 'proxy/store.c'; else $(CYGPATH_W) '$(srcdir)/proxy/store.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) proxy/$(DEPDIR)/proxytrack-store.Tpo proxy/$(DEPDIR)/proxytrack-store.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='proxy/store.c' object='proxy/proxytrack-store.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxy/proxytrack-store.obj `if test -f 'proxy/store.c'; then $(CYGPATH_W) 'proxy/store.c'; else $(CYGPATH_W) '$(srcdir)/proxy/store.c'; fi`
|
||||
|
||||
proxytrack-coucal.o: coucal.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-coucal.o -MD -MP -MF $(DEPDIR)/proxytrack-coucal.Tpo -c -o proxytrack-coucal.o `test -f 'coucal.c' || echo '$(srcdir)/'`coucal.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-coucal.Tpo $(DEPDIR)/proxytrack-coucal.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='coucal.c' object='proxytrack-coucal.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-coucal.o `test -f 'coucal.c' || echo '$(srcdir)/'`coucal.c
|
||||
|
||||
proxytrack-coucal.obj: coucal.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-coucal.obj -MD -MP -MF $(DEPDIR)/proxytrack-coucal.Tpo -c -o proxytrack-coucal.obj `if test -f 'coucal.c'; then $(CYGPATH_W) 'coucal.c'; else $(CYGPATH_W) '$(srcdir)/coucal.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-coucal.Tpo $(DEPDIR)/proxytrack-coucal.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='coucal.c' object='proxytrack-coucal.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-coucal.obj `if test -f 'coucal.c'; then $(CYGPATH_W) 'coucal.c'; else $(CYGPATH_W) '$(srcdir)/coucal.c'; fi`
|
||||
|
||||
proxytrack-htsmd5.o: htsmd5.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-htsmd5.o -MD -MP -MF $(DEPDIR)/proxytrack-htsmd5.Tpo -c -o proxytrack-htsmd5.o `test -f 'htsmd5.c' || echo '$(srcdir)/'`htsmd5.c
|
||||
@@ -752,67 +1043,68 @@ proxytrack-md5.obj: md5.c
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`
|
||||
|
||||
proxytrack-ioapi.o: minizip/ioapi.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-ioapi.o -MD -MP -MF $(DEPDIR)/proxytrack-ioapi.Tpo -c -o proxytrack-ioapi.o `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-ioapi.Tpo $(DEPDIR)/proxytrack-ioapi.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/ioapi.c' object='proxytrack-ioapi.o' libtool=no @AMDEPBACKSLASH@
|
||||
minizip/proxytrack-ioapi.o: minizip/ioapi.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT minizip/proxytrack-ioapi.o -MD -MP -MF minizip/$(DEPDIR)/proxytrack-ioapi.Tpo -c -o minizip/proxytrack-ioapi.o `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/proxytrack-ioapi.Tpo minizip/$(DEPDIR)/proxytrack-ioapi.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/ioapi.c' object='minizip/proxytrack-ioapi.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-ioapi.o `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o minizip/proxytrack-ioapi.o `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
|
||||
|
||||
proxytrack-ioapi.obj: minizip/ioapi.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-ioapi.obj -MD -MP -MF $(DEPDIR)/proxytrack-ioapi.Tpo -c -o proxytrack-ioapi.obj `if test -f 'minizip/ioapi.c'; then $(CYGPATH_W) 'minizip/ioapi.c'; else $(CYGPATH_W) '$(srcdir)/minizip/ioapi.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-ioapi.Tpo $(DEPDIR)/proxytrack-ioapi.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/ioapi.c' object='proxytrack-ioapi.obj' libtool=no @AMDEPBACKSLASH@
|
||||
minizip/proxytrack-ioapi.obj: minizip/ioapi.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT minizip/proxytrack-ioapi.obj -MD -MP -MF minizip/$(DEPDIR)/proxytrack-ioapi.Tpo -c -o minizip/proxytrack-ioapi.obj `if test -f 'minizip/ioapi.c'; then $(CYGPATH_W) 'minizip/ioapi.c'; else $(CYGPATH_W) '$(srcdir)/minizip/ioapi.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/proxytrack-ioapi.Tpo minizip/$(DEPDIR)/proxytrack-ioapi.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/ioapi.c' object='minizip/proxytrack-ioapi.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-ioapi.obj `if test -f 'minizip/ioapi.c'; then $(CYGPATH_W) 'minizip/ioapi.c'; else $(CYGPATH_W) '$(srcdir)/minizip/ioapi.c'; fi`
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o minizip/proxytrack-ioapi.obj `if test -f 'minizip/ioapi.c'; then $(CYGPATH_W) 'minizip/ioapi.c'; else $(CYGPATH_W) '$(srcdir)/minizip/ioapi.c'; fi`
|
||||
|
||||
proxytrack-mztools.o: minizip/mztools.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-mztools.o -MD -MP -MF $(DEPDIR)/proxytrack-mztools.Tpo -c -o proxytrack-mztools.o `test -f 'minizip/mztools.c' || echo '$(srcdir)/'`minizip/mztools.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-mztools.Tpo $(DEPDIR)/proxytrack-mztools.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/mztools.c' object='proxytrack-mztools.o' libtool=no @AMDEPBACKSLASH@
|
||||
minizip/proxytrack-mztools.o: minizip/mztools.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT minizip/proxytrack-mztools.o -MD -MP -MF minizip/$(DEPDIR)/proxytrack-mztools.Tpo -c -o minizip/proxytrack-mztools.o `test -f 'minizip/mztools.c' || echo '$(srcdir)/'`minizip/mztools.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/proxytrack-mztools.Tpo minizip/$(DEPDIR)/proxytrack-mztools.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/mztools.c' object='minizip/proxytrack-mztools.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-mztools.o `test -f 'minizip/mztools.c' || echo '$(srcdir)/'`minizip/mztools.c
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o minizip/proxytrack-mztools.o `test -f 'minizip/mztools.c' || echo '$(srcdir)/'`minizip/mztools.c
|
||||
|
||||
proxytrack-mztools.obj: minizip/mztools.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-mztools.obj -MD -MP -MF $(DEPDIR)/proxytrack-mztools.Tpo -c -o proxytrack-mztools.obj `if test -f 'minizip/mztools.c'; then $(CYGPATH_W) 'minizip/mztools.c'; else $(CYGPATH_W) '$(srcdir)/minizip/mztools.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-mztools.Tpo $(DEPDIR)/proxytrack-mztools.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/mztools.c' object='proxytrack-mztools.obj' libtool=no @AMDEPBACKSLASH@
|
||||
minizip/proxytrack-mztools.obj: minizip/mztools.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT minizip/proxytrack-mztools.obj -MD -MP -MF minizip/$(DEPDIR)/proxytrack-mztools.Tpo -c -o minizip/proxytrack-mztools.obj `if test -f 'minizip/mztools.c'; then $(CYGPATH_W) 'minizip/mztools.c'; else $(CYGPATH_W) '$(srcdir)/minizip/mztools.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/proxytrack-mztools.Tpo minizip/$(DEPDIR)/proxytrack-mztools.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/mztools.c' object='minizip/proxytrack-mztools.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-mztools.obj `if test -f 'minizip/mztools.c'; then $(CYGPATH_W) 'minizip/mztools.c'; else $(CYGPATH_W) '$(srcdir)/minizip/mztools.c'; fi`
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o minizip/proxytrack-mztools.obj `if test -f 'minizip/mztools.c'; then $(CYGPATH_W) 'minizip/mztools.c'; else $(CYGPATH_W) '$(srcdir)/minizip/mztools.c'; fi`
|
||||
|
||||
proxytrack-unzip.o: minizip/unzip.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-unzip.o -MD -MP -MF $(DEPDIR)/proxytrack-unzip.Tpo -c -o proxytrack-unzip.o `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-unzip.Tpo $(DEPDIR)/proxytrack-unzip.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/unzip.c' object='proxytrack-unzip.o' libtool=no @AMDEPBACKSLASH@
|
||||
minizip/proxytrack-unzip.o: minizip/unzip.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT minizip/proxytrack-unzip.o -MD -MP -MF minizip/$(DEPDIR)/proxytrack-unzip.Tpo -c -o minizip/proxytrack-unzip.o `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/proxytrack-unzip.Tpo minizip/$(DEPDIR)/proxytrack-unzip.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/unzip.c' object='minizip/proxytrack-unzip.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-unzip.o `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o minizip/proxytrack-unzip.o `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
|
||||
|
||||
proxytrack-unzip.obj: minizip/unzip.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-unzip.obj -MD -MP -MF $(DEPDIR)/proxytrack-unzip.Tpo -c -o proxytrack-unzip.obj `if test -f 'minizip/unzip.c'; then $(CYGPATH_W) 'minizip/unzip.c'; else $(CYGPATH_W) '$(srcdir)/minizip/unzip.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-unzip.Tpo $(DEPDIR)/proxytrack-unzip.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/unzip.c' object='proxytrack-unzip.obj' libtool=no @AMDEPBACKSLASH@
|
||||
minizip/proxytrack-unzip.obj: minizip/unzip.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT minizip/proxytrack-unzip.obj -MD -MP -MF minizip/$(DEPDIR)/proxytrack-unzip.Tpo -c -o minizip/proxytrack-unzip.obj `if test -f 'minizip/unzip.c'; then $(CYGPATH_W) 'minizip/unzip.c'; else $(CYGPATH_W) '$(srcdir)/minizip/unzip.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/proxytrack-unzip.Tpo minizip/$(DEPDIR)/proxytrack-unzip.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/unzip.c' object='minizip/proxytrack-unzip.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-unzip.obj `if test -f 'minizip/unzip.c'; then $(CYGPATH_W) 'minizip/unzip.c'; else $(CYGPATH_W) '$(srcdir)/minizip/unzip.c'; fi`
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o minizip/proxytrack-unzip.obj `if test -f 'minizip/unzip.c'; then $(CYGPATH_W) 'minizip/unzip.c'; else $(CYGPATH_W) '$(srcdir)/minizip/unzip.c'; fi`
|
||||
|
||||
proxytrack-zip.o: minizip/zip.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-zip.o -MD -MP -MF $(DEPDIR)/proxytrack-zip.Tpo -c -o proxytrack-zip.o `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-zip.Tpo $(DEPDIR)/proxytrack-zip.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/zip.c' object='proxytrack-zip.o' libtool=no @AMDEPBACKSLASH@
|
||||
minizip/proxytrack-zip.o: minizip/zip.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT minizip/proxytrack-zip.o -MD -MP -MF minizip/$(DEPDIR)/proxytrack-zip.Tpo -c -o minizip/proxytrack-zip.o `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/proxytrack-zip.Tpo minizip/$(DEPDIR)/proxytrack-zip.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/zip.c' object='minizip/proxytrack-zip.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-zip.o `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o minizip/proxytrack-zip.o `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
|
||||
|
||||
proxytrack-zip.obj: minizip/zip.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT proxytrack-zip.obj -MD -MP -MF $(DEPDIR)/proxytrack-zip.Tpo -c -o proxytrack-zip.obj `if test -f 'minizip/zip.c'; then $(CYGPATH_W) 'minizip/zip.c'; else $(CYGPATH_W) '$(srcdir)/minizip/zip.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/proxytrack-zip.Tpo $(DEPDIR)/proxytrack-zip.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/zip.c' object='proxytrack-zip.obj' libtool=no @AMDEPBACKSLASH@
|
||||
minizip/proxytrack-zip.obj: minizip/zip.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -MT minizip/proxytrack-zip.obj -MD -MP -MF minizip/$(DEPDIR)/proxytrack-zip.Tpo -c -o minizip/proxytrack-zip.obj `if test -f 'minizip/zip.c'; then $(CYGPATH_W) 'minizip/zip.c'; else $(CYGPATH_W) '$(srcdir)/minizip/zip.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) minizip/$(DEPDIR)/proxytrack-zip.Tpo minizip/$(DEPDIR)/proxytrack-zip.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='minizip/zip.c' object='minizip/proxytrack-zip.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o proxytrack-zip.obj `if test -f 'minizip/zip.c'; then $(CYGPATH_W) 'minizip/zip.c'; else $(CYGPATH_W) '$(srcdir)/minizip/zip.c'; fi`
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(proxytrack_CFLAGS) $(CFLAGS) -c -o minizip/proxytrack-zip.obj `if test -f 'minizip/zip.c'; then $(CYGPATH_W) 'minizip/zip.c'; else $(CYGPATH_W) '$(srcdir)/minizip/zip.c'; fi`
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
-rm -rf minizip/.libs minizip/_libs
|
||||
install-DevIncludesDATA: $(DevIncludes_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
@list='$(DevIncludes_DATA)'; test -n "$(DevIncludesdir)" || list=; \
|
||||
@@ -952,6 +1244,10 @@ clean-generic:
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
-rm -f minizip/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f minizip/$(am__dirstamp)
|
||||
-rm -f proxy/$(DEPDIR)/$(am__dirstamp)
|
||||
-rm -f proxy/$(am__dirstamp)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@@ -962,7 +1258,7 @@ clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \
|
||||
clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -rf ./$(DEPDIR) minizip/$(DEPDIR) proxy/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
@@ -1008,7 +1304,7 @@ install-ps-am:
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -rf ./$(DEPDIR) minizip/$(DEPDIR) proxy/$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
|
||||
1561
src/coucal.c
Normal file
1561
src/coucal.c
Normal file
File diff suppressed because it is too large
Load Diff
529
src/coucal.h
Normal file
529
src/coucal.h
Normal file
@@ -0,0 +1,529 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
Coucal, Cuckoo hashing-based hashtable with stash area.
|
||||
Copyright (C) 2013-2014 Xavier Roche (http://www.httrack.com/)
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software without
|
||||
specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Coucal, a Cuckoo-hashing-based hashtable with stash area C library.
|
||||
*
|
||||
* This hashtable library provides key/value hashtable, with by default a
|
||||
* string key, and integer/pointer value (with an associated optional
|
||||
* allocator). Both key and value can be of any type, using custom settings.
|
||||
* By default, the string key is dup'ed using a string pool, and the opaque
|
||||
* value is stored as-is (either the pointer, or an uintptr_t integer value).
|
||||
* It features O(1) average insertion, and guaranteed O(1) lookup, replace,
|
||||
* and delete operations.
|
||||
*
|
||||
* Implementation notes:
|
||||
* Implementation is auto-rehashable, and uses cuckoo hashing of size 2**n
|
||||
* with a Murmur or MD5 hash function, with one additional auxiliary hash
|
||||
* function.
|
||||
* It also uses a small stash area to handle rare cases of collisions.
|
||||
* Enumeration of all key/values is possible, deletion is also possible, but
|
||||
* currently without any auto-shrinking (ie. table will never shrink).
|
||||
* Overall, two main blocks are allocated: one for the items, and one for
|
||||
* the keys (pool).
|
||||
* If the string pool is being used (to store dup'ed keys), deleting is only
|
||||
* O(1) average, because the pool needs to be compacted time to time.
|
||||
* Currently the default maximum number of elements in the hashtable is
|
||||
* 2**31 - 1 (that is, 2,147,483,648 elements), but this default can be changed
|
||||
* by setting COUCAL_HASH_SIZE to a higher value (64 is the only higher value
|
||||
* currently supported), and rebuilding the library.
|
||||
*
|
||||
* References:
|
||||
*
|
||||
* Cuckoo Hashing, by Rasmus Pagh and Flemming Friche Rodler
|
||||
* http://www.it-c.dk/people/pagh/papers/cuckoo-jour.pdf
|
||||
*
|
||||
* Cuckoo Stash, by Adam Kirsch, Michael Mitzenmacher and Udi Wieder
|
||||
* http://research.microsoft.com/pubs/73856/stash-full.9-30.pdf
|
||||
*
|
||||
* MurmurHash3, by Austin Appleby
|
||||
* http://en.wikipedia.org/wiki/MurmurHash
|
||||
*
|
||||
* MD5 http://en.wikipedia.org/wiki/MD5
|
||||
* FNV http://www.isthe.com/chongo/tech/comp/fnv/
|
||||
**/
|
||||
|
||||
#ifndef COUCAL_DEFH
|
||||
#define COUCAL_DEFH
|
||||
|
||||
/* Includes */
|
||||
#ifdef _WIN32
|
||||
#include <stddef.h>
|
||||
typedef unsigned __int32 uint32_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
#elif (defined(SOLARIS) || defined(sun) || defined(HAVE_INTTYPES_H) \
|
||||
|| defined(BSD) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD_kernel__))
|
||||
#include <inttypes.h>
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#include <stdarg.h>
|
||||
|
||||
/* External definitions */
|
||||
#ifndef COUCAL_EXTERN
|
||||
#ifdef _WIN32
|
||||
#ifdef COUCAL_BUILDING
|
||||
#define COUCAL_EXTERN __declspec(dllimport)
|
||||
#else
|
||||
#define COUCAL_EXTERN __declspec(dllexport)
|
||||
#endif
|
||||
#elif ( ( defined(__GNUC__) && ( __GNUC__ >= 4 ) ) \
|
||||
|| ( defined(HAVE_VISIBILITY) && HAVE_VISIBILITY ) )
|
||||
#define COUCAL_EXTERN extern __attribute__ ((visibility("default")))
|
||||
#else
|
||||
#define COUCAL_EXTERN extern
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/** Key opaque type. May be a regular 'const char*'. **/
|
||||
typedef void* coucal_key;
|
||||
|
||||
/** Key constant (can not be modified) opaque type. **/
|
||||
typedef const void* coucal_key_const;
|
||||
|
||||
/** Opaque user-defined pointer. **/
|
||||
typedef void* coucal_opaque;
|
||||
|
||||
/** Value (union of any value). **/
|
||||
typedef union coucal_value {
|
||||
/** Integer value. **/
|
||||
intptr_t intg;
|
||||
|
||||
/** Unsigned integer value. **/
|
||||
uintptr_t uintg;
|
||||
|
||||
/** Pointer value. **/
|
||||
void *ptr;
|
||||
} coucal_value;
|
||||
|
||||
/** Value constant. **/
|
||||
typedef const coucal_value coucal_value_const;
|
||||
|
||||
/** NULL Value. **/
|
||||
#define INTHASH_VALUE_NULL { 0 }
|
||||
|
||||
#ifndef HTS_DEF_FWSTRUCT_coucal_item
|
||||
#define HTS_DEF_FWSTRUCT_coucal_item
|
||||
typedef struct coucal_item coucal_item;
|
||||
#endif
|
||||
|
||||
/** Coucal primary hash size. Default is 32-bit. **/
|
||||
#ifndef COUCAL_HASH_SIZE
|
||||
#define COUCAL_HASH_SIZE 32
|
||||
#endif
|
||||
|
||||
/** Hash integer type. **/
|
||||
#if (COUCAL_HASH_SIZE == 32)
|
||||
|
||||
/** 32-bit hash key. **/
|
||||
typedef uint32_t coucal_hashkey;
|
||||
|
||||
#elif (COUCAL_HASH_SIZE == 64)
|
||||
|
||||
/** 64-bit hash key. **/
|
||||
typedef uint64_t coucal_hashkey;
|
||||
|
||||
#else
|
||||
#error "Unsupported COUCAL_HASH_SIZE"
|
||||
#endif
|
||||
|
||||
/** Pair of hashes **/
|
||||
typedef struct coucal_hashkeys {
|
||||
coucal_hashkey hash1;
|
||||
coucal_hashkey hash2;
|
||||
} coucal_hashkeys;
|
||||
|
||||
/** NULL pair of hashes. **/
|
||||
#define INTHASH_KEYS_NULL { 0, 0 }
|
||||
|
||||
/** Item holding a value. **/
|
||||
struct coucal_item {
|
||||
/** Key. **/
|
||||
coucal_key name;
|
||||
|
||||
/** Value. **/
|
||||
coucal_value value;
|
||||
|
||||
/** Hashes of the key. **/
|
||||
coucal_hashkeys hashes;
|
||||
};
|
||||
|
||||
/** Log level. **/
|
||||
typedef enum coucal_loglevel {
|
||||
coucal_log_critical,
|
||||
coucal_log_warning,
|
||||
coucal_log_info,
|
||||
coucal_log_debug,
|
||||
coucal_log_trace
|
||||
} coucal_loglevel;
|
||||
|
||||
/** free handler. Only used when values are markes as xxc **/
|
||||
typedef void (*t_coucal_key_freehandler)(coucal_opaque arg,
|
||||
coucal_key key);
|
||||
|
||||
/** Value free handler. Only used when values are markes as xxc **/
|
||||
typedef void (*t_coucal_value_freehandler)(coucal_opaque arg,
|
||||
coucal_value value);
|
||||
|
||||
/** Key dup handler. **/
|
||||
typedef coucal_key (*t_coucal_duphandler)(coucal_opaque arg,
|
||||
coucal_key_const name);
|
||||
|
||||
/** Key hash computation handler. **/
|
||||
typedef coucal_hashkeys (*t_coucal_hasheshandler)(coucal_opaque arg,
|
||||
coucal_key_const name);
|
||||
|
||||
/** Hashtable logging handler. **/
|
||||
typedef void (*t_coucal_loghandler)(coucal_opaque arg, coucal_loglevel level,
|
||||
const char* format, va_list args);
|
||||
|
||||
/** Hashtable fatal assertion failure. **/
|
||||
typedef void (*t_coucal_asserthandler)(coucal_opaque arg, const char* exp,
|
||||
const char* file, int line);
|
||||
|
||||
/** Key printer (debug) **/
|
||||
typedef const char* (*t_coucal_printkeyhandler)(coucal_opaque arg,
|
||||
coucal_key_const name);
|
||||
|
||||
/** Value printer (debug) **/
|
||||
typedef const char* (*t_coucal_printvaluehandler)(coucal_opaque arg,
|
||||
coucal_value_const value);
|
||||
|
||||
/**
|
||||
* Value comparison handler (returns non-zero value if strings are equal).
|
||||
**/
|
||||
typedef int (*t_coucal_cmphandler)(coucal_opaque arg,
|
||||
coucal_key_const a,
|
||||
coucal_key_const b);
|
||||
|
||||
/** Hashtable (opaque structure). **/
|
||||
#ifndef HTS_DEF_FWSTRUCT_struct_coucal
|
||||
#define HTS_DEF_FWSTRUCT_struct_coucal
|
||||
typedef struct struct_coucal struct_coucal, *coucal;
|
||||
#endif
|
||||
|
||||
/** Hashtable enumeration (opaque structure). **/
|
||||
#ifndef HTS_DEF_FWSTRUCT_struct_coucal_enum
|
||||
#define HTS_DEF_FWSTRUCT_struct_coucal_enum
|
||||
typedef struct struct_coucal_enum struct_coucal_enum;
|
||||
#endif
|
||||
|
||||
/** Enumeration. **/
|
||||
struct struct_coucal_enum {
|
||||
coucal table;
|
||||
size_t index;
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Create a new hashtable, with initial bucket size of 'size'.
|
||||
* If size is 0, use the default minimal bucket size.
|
||||
* Return a non-NULL pointer upon success.
|
||||
*
|
||||
* By default, keys are supposed to be '\0'-terminated strings, which are
|
||||
* duplicated by the library (the passed pointer does not need to be
|
||||
* persistent), and values are opaque pointers (or integers) which are copied
|
||||
* "as is", without further processing. Use coucal_value_set_key_handler()
|
||||
* and coucal_value_set_value_handler() to alter this default behavior.
|
||||
**/
|
||||
COUCAL_EXTERN coucal coucal_new(size_t size);
|
||||
|
||||
/**
|
||||
* Was the hashtable successfully created ?
|
||||
* Return non-zero value if the hashtable is valid.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_created(coucal hashtable);
|
||||
|
||||
/**
|
||||
* Delete a hashtable, freeing all entries.
|
||||
**/
|
||||
COUCAL_EXTERN void coucal_delete(coucal * hashtable);
|
||||
|
||||
/**
|
||||
* Return the number of items in the hashtable.
|
||||
**/
|
||||
COUCAL_EXTERN size_t coucal_nitems(coucal hashtable);
|
||||
|
||||
/**
|
||||
* Return the memory size taken by the hashtable.
|
||||
* (This does not take account of the possible memory taken by values)
|
||||
**/
|
||||
COUCAL_EXTERN size_t coucal_memory_size(coucal hashtable);
|
||||
|
||||
/**
|
||||
* Return the library hash size compiled.
|
||||
* The returned value MUST match COUCAL_HASH_SIZE.
|
||||
**/
|
||||
COUCAL_EXTERN size_t coucal_hash_size(void);
|
||||
|
||||
/**
|
||||
* If 'flag' is non-zero, calls coucal_value_set_value_handler() with
|
||||
* default system free() handler function, otherwise, free the value handlers.
|
||||
**/
|
||||
COUCAL_EXTERN void coucal_value_is_malloc(coucal hashtable, int flag);
|
||||
|
||||
/**
|
||||
* Set handlers for values.
|
||||
* free: this handler will be called when a value is to be removed from
|
||||
* the hashtable. if NULL, values won't be free'd.
|
||||
* arg: opaque custom argument to be used by functions.
|
||||
* Handler(s) MUST NOT be changed once elements have been added.
|
||||
**/
|
||||
COUCAL_EXTERN void coucal_value_set_value_handler(coucal hashtable,
|
||||
t_coucal_value_freehandler free,
|
||||
coucal_opaque arg);
|
||||
|
||||
/**
|
||||
* Set handlers for keys.
|
||||
* dup: handler called to duplicate a key. if NULL, the internal pool is used.
|
||||
* free: handler called to free a key. if NULL, the internal pool is used.
|
||||
* hash: hashing handler, called to hash a key. if NULL, the default hash
|
||||
* function is used.
|
||||
* equals: comparison handler, returning non-zero value when two keys are
|
||||
* identical. if NULL, the default comparison function is used.
|
||||
* arg: opaque custom argument to be used by functions.
|
||||
* Handler(s) MUST NOT be changed once elements have been added.
|
||||
**/
|
||||
COUCAL_EXTERN void coucal_value_set_key_handler(coucal hashtable,
|
||||
t_coucal_duphandler dup,
|
||||
t_coucal_key_freehandler free,
|
||||
t_coucal_hasheshandler hash,
|
||||
t_coucal_cmphandler equals,
|
||||
coucal_opaque arg);
|
||||
|
||||
/**
|
||||
* Set assertion failure handler.
|
||||
* log: handler called upon serious programming error
|
||||
* fatal: handler called upon serious programming error
|
||||
**/
|
||||
COUCAL_EXTERN void coucal_set_assert_handler(coucal hashtable,
|
||||
t_coucal_loghandler log,
|
||||
t_coucal_asserthandler fatal,
|
||||
coucal_opaque arg);
|
||||
|
||||
/**
|
||||
* Set pretty print loggers (debug). Both handlers must return a string
|
||||
* pointer which shall be valid until the next call. Both key and value
|
||||
* pointers shall be valid at the same time.
|
||||
* name: handler called to print the string representation of the name
|
||||
* value: handler called to print the string representation of the value
|
||||
**/
|
||||
COUCAL_EXTERN void coucal_set_print_handler(coucal hashtable,
|
||||
t_coucal_printkeyhandler key,
|
||||
t_coucal_printvaluehandler value,
|
||||
coucal_opaque arg);
|
||||
|
||||
/**
|
||||
* Set the hashtable name, for degugging purpose.
|
||||
* name: the hashtable name (ASCII or UTF-8)
|
||||
*/
|
||||
COUCAL_EXTERN void coucal_set_name(coucal hashtable, coucal_key_const name);
|
||||
|
||||
/**
|
||||
* Get the hashtable name, for degugging purpose.
|
||||
* Return NULL if no name was defined.
|
||||
**/
|
||||
COUCAL_EXTERN const char* coucal_get_name(coucal hashtable);
|
||||
|
||||
/**
|
||||
* Read an integer entry from the hashtable.
|
||||
* Return non-zero value upon success and sets intvalue.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_read(coucal hashtable, coucal_key_const name,
|
||||
intptr_t * intvalue);
|
||||
|
||||
/**
|
||||
* Same as coucal_read(), but return 0 is the value was zero.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_readptr(coucal hashtable, coucal_key_const name,
|
||||
intptr_t * intvalue);
|
||||
|
||||
/**
|
||||
* Read an integer entry from the hashtable.
|
||||
* Return 0 if the entry could not be found.
|
||||
**/
|
||||
COUCAL_EXTERN intptr_t coucal_get_intptr(coucal hashtable,
|
||||
coucal_key_const name);
|
||||
|
||||
/**
|
||||
* Return non-zero value if the given entry exists.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_exists(coucal hashtable, coucal_key_const name);
|
||||
|
||||
/**
|
||||
* Read an entry from the hashtable.
|
||||
* Return non-zero value upon success and sets value.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_read_value(coucal hashtable, coucal_key_const name,
|
||||
coucal_value *value);
|
||||
|
||||
/**
|
||||
* Write an entry to the hashtable.
|
||||
* Return non-zero value if the entry was added, zero if it was replaced.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_write_value(coucal hashtable, coucal_key_const name,
|
||||
coucal_value_const value);
|
||||
|
||||
/**
|
||||
* Read a pointer entry from the hashtable.
|
||||
* Return non-zero value upon success and sets value.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_read_pvoid(coucal hashtable, coucal_key_const name,
|
||||
void **value);
|
||||
|
||||
/**
|
||||
* Read a pointer entry from the hashtable and returns its value.
|
||||
* Return NULL if the entry could not be found.
|
||||
**/
|
||||
COUCAL_EXTERN void* coucal_get_pvoid(coucal hashtable, coucal_key_const name);
|
||||
|
||||
/**
|
||||
* Write a pointer entry to the hashtable.
|
||||
* Return non-zero value if the entry was added, zero if it was replaced.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_write_pvoid(coucal hashtable, coucal_key_const name,
|
||||
void *value);
|
||||
|
||||
/**
|
||||
* Alias to coucal_write_pvoid()
|
||||
**/
|
||||
COUCAL_EXTERN void coucal_add_pvoid(coucal hashtable, coucal_key_const name,
|
||||
void *value);
|
||||
|
||||
/**
|
||||
* Write an integer entry to the hashtable.
|
||||
* Return non-zero value if the entry was added, zero if it was replaced.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_write(coucal hashtable, coucal_key_const name,
|
||||
intptr_t value);
|
||||
|
||||
/**
|
||||
* Alias to coucal_write()
|
||||
**/
|
||||
COUCAL_EXTERN void coucal_add(coucal hashtable, coucal_key_const name,
|
||||
intptr_t value);
|
||||
|
||||
/**
|
||||
* Increment an entry value in the hashtable
|
||||
* (or create a new entry with value 1 if it does not yet exist)
|
||||
* Return non-zero value if the entry was added, zero if it was changed.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_inc(coucal hashtable, coucal_key_const name);
|
||||
|
||||
/**
|
||||
* Decrement an entry value in the hashtable
|
||||
* (or create a new entry with value -1 if it does not yet exist)
|
||||
* Return non-zero value if the entry was added, zero if it was changed.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_dec(coucal hashtable, coucal_key_const name);
|
||||
|
||||
/**
|
||||
* Fetch an entry value from the hashtable.
|
||||
* Returns NULL if the entry could not be found.
|
||||
* The returned pointer is only valid until next call to this library, and can
|
||||
* be used for read or write operations.
|
||||
**/
|
||||
COUCAL_EXTERN coucal_value* coucal_fetch_value(coucal hashtable,
|
||||
coucal_key_const name);
|
||||
|
||||
/**
|
||||
* Fetch an entry value from the hashtable, given a name, and its hashes.
|
||||
* Returns NULL if the entry could not be found.
|
||||
* The returned pointer is only valid until next call to this library, and can
|
||||
* be used for read or write operations.
|
||||
* The hashes MUST have been computed using coucal_calc_hashes(), or by
|
||||
* copying an existing hash during an enumeration.
|
||||
* The use of a non-matching hash is safe, but will return NULL.
|
||||
**/
|
||||
COUCAL_EXTERN coucal_value* coucal_fetch_value_hashes(coucal hashtable,
|
||||
coucal_key_const name,
|
||||
const coucal_hashkeys
|
||||
*hashes);
|
||||
|
||||
/**
|
||||
* Remove an entry from the hashtable
|
||||
* Return non-zero value if the entry was removed, zero otherwise.
|
||||
**/
|
||||
COUCAL_EXTERN int coucal_remove(coucal hashtable, coucal_key_const name);
|
||||
|
||||
/**
|
||||
* Return a new enumerator.
|
||||
* Note: deleting entries is safe while enumerating, but adding entries
|
||||
* lead to undefined enumeration behavior (yet safe).
|
||||
**/
|
||||
COUCAL_EXTERN struct_coucal_enum coucal_enum_new(coucal hashtable);
|
||||
|
||||
/**
|
||||
* Enumerate the next entry.
|
||||
**/
|
||||
COUCAL_EXTERN coucal_item *coucal_enum_next(struct_coucal_enum * e);
|
||||
|
||||
/**
|
||||
* Compute a hash of a key for the hashtable 'hashtable'.
|
||||
* The returned hash is suitable for use with coucal_fetch_value_hashes()
|
||||
* Note: the default implementation uses coucal_hash_string()
|
||||
**/
|
||||
COUCAL_EXTERN coucal_hashkeys coucal_calc_hashes(coucal hashtable,
|
||||
coucal_key_const value);
|
||||
|
||||
/**
|
||||
* Compute a hash, given a string. This is the default function used for
|
||||
* hashing keys, which are by default strings. This function uses
|
||||
* coucal_hash_data() as backend.
|
||||
**/
|
||||
COUCAL_EXTERN coucal_hashkeys coucal_hash_string(const char *value);
|
||||
|
||||
/**
|
||||
* Compute a hash, given an opaque buffer.
|
||||
**/
|
||||
COUCAL_EXTERN coucal_hashkeys coucal_hash_data(const void *data, size_t size);
|
||||
|
||||
/**
|
||||
* Set default global assertion failure handler.
|
||||
* The handler will be used if no specific handler was defined in the
|
||||
* hashtable itself.
|
||||
* log: handler called upon serious error log (opaque argument
|
||||
* is the hashtable itself)
|
||||
* fatal: handler called upon serious programming error (opaque argument
|
||||
* is the hashtable itself)
|
||||
**/
|
||||
COUCAL_EXTERN void coucal_set_global_assert_handler(t_coucal_loghandler log,
|
||||
t_coucal_asserthandler fatal);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -169,7 +168,7 @@ regen:
|
||||
" <BR>"LF\
|
||||
" <BR>"LF\
|
||||
" <H6 ALIGN=\"RIGHT\">"LF\
|
||||
" <I>Mirror and index made by HTTrack Website Copier [XR&CO'2013]</I>"LF\
|
||||
" <I>Mirror and index made by HTTrack Website Copier [XR&CO'2014]</I>"LF\
|
||||
" </H6>"LF\
|
||||
" %s"LF\
|
||||
" <!-- Thanks for using HTTrack Website Copier! -->"LF\
|
||||
@@ -187,7 +186,7 @@ regen:
|
||||
""LF\
|
||||
"<table width=\"76%%\" border=\"0\" align=\"center\" valign=\"bottom\" cellspacing=\"0\" cellpadding=\"0\">"LF\
|
||||
" <tr>"LF\
|
||||
" <td id=\"footer\"><small>© 2013 Xavier Roche & other contributors - Web Design: Kauler Leto.</small></td>"LF\
|
||||
" <td id=\"footer\"><small>© 2014 Xavier Roche & other contributors - Web Design: Kauler Leto.</small></td>"LF\
|
||||
" </tr>"LF\
|
||||
"</table>"LF\
|
||||
""LF\
|
||||
@@ -318,7 +317,7 @@ regen:
|
||||
" </TABLE>"LF\
|
||||
" <BR>"LF\
|
||||
" <H6 ALIGN=\"RIGHT\">"LF\
|
||||
" <I>Mirror and index made by HTTrack Website Copier [XR&CO'2013]</I>"LF\
|
||||
" <I>Mirror and index made by HTTrack Website Copier [XR&CO'2014]</I>"LF\
|
||||
" </H6>"LF\
|
||||
" %s"LF\
|
||||
" <!-- Thanks for using HTTrack Website Copier! -->"LF\
|
||||
@@ -336,7 +335,7 @@ regen:
|
||||
""LF\
|
||||
"<table width=\"76%%\" border=\"0\" align=\"center\" valign=\"bottom\" cellspacing=\"0\" cellpadding=\"0\">"LF\
|
||||
" <tr>"LF\
|
||||
" <td id=\"footer\"><small>© 2013 Xavier Roche & other contributors - Web Design: Kauler Leto.</small></td>"LF\
|
||||
" <td id=\"footer\"><small>© 2014 Xavier Roche & other contributors - Web Design: Kauler Leto.</small></td>"LF\
|
||||
" </tr>"LF\
|
||||
"</table>"LF\
|
||||
""LF\
|
||||
@@ -476,7 +475,7 @@ regen:
|
||||
""LF\
|
||||
"<table width=\"76%%\" height=\"100%%\" border=\"0\" align=\"center\" valign=\"bottom\" cellspacing=\"0\" cellpadding=\"0\">"LF\
|
||||
" <tr>"LF\
|
||||
" <td id=\"footer\"><small>© 2013 Xavier Roche & other contributors - Web Design: Kauler Leto.</small></td>"LF\
|
||||
" <td id=\"footer\"><small>© 2014 Xavier Roche & other contributors - Web Design: Kauler Leto.</small></td>"LF\
|
||||
" </tr>"LF\
|
||||
"</table>"LF\
|
||||
""LF\
|
||||
@@ -613,7 +612,7 @@ regen:
|
||||
""LF\
|
||||
"<table width=\"76%%\" height=\"100%%\" border=\"0\" align=\"center\" valign=\"bottom\" cellspacing=\"0\" cellpadding=\"0\">"LF\
|
||||
" <tr>"LF\
|
||||
" <td id=\"footer\"><small>© 2013 Xavier Roche & other contributors - Web Design: Kauler Leto.</small></td>"LF\
|
||||
" <td id=\"footer\"><small>© 2014 Xavier Roche & other contributors - Web Design: Kauler Leto.</small></td>"LF\
|
||||
" </tr>"LF\
|
||||
"</table>"LF\
|
||||
""LF\
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -38,20 +37,9 @@ Please visit our Website: http://www.httrack.com
|
||||
#include "htsbase.h"
|
||||
#include "htsalias.h"
|
||||
#include "htsglobal.h"
|
||||
|
||||
void linput(FILE * fp, char *s, int max);
|
||||
void hts_lowcase(char *s);
|
||||
#include "htslib.h"
|
||||
|
||||
#define _NOT_NULL(a) ( (a!=NULL) ? (a) : "" )
|
||||
// #define is_realspace(c) (strchr(" \x0d\x0a\x09\x0b\x0c",(c))!=NULL)
|
||||
#define is_realspace(c) ( \
|
||||
(c) == ' ' \
|
||||
|| (c) == '\x09' \
|
||||
|| (c) == '\x0a' \
|
||||
|| (c) == '\x0b' \
|
||||
|| (c) == '\x0c' \
|
||||
|| (c) == '\x0d' \
|
||||
)
|
||||
|
||||
// COPY OF cmdl_ins in htsmain.c
|
||||
// Insert a command in the argc/argv
|
||||
@@ -89,7 +77,6 @@ void hts_lowcase(char *s);
|
||||
const char *hts_optalias[][4] = {
|
||||
/* {"","","",""}, */
|
||||
{"path", "-O", "param1", "output path"},
|
||||
{"chroot", "-%O", "param1", "default top path"},
|
||||
{"mirror", "-w", "single", ""},
|
||||
{"mirror-wizard", "-W", "single", ""},
|
||||
{"get-files", "-g", "single", ""},
|
||||
@@ -103,7 +90,6 @@ const char *hts_optalias[][4] = {
|
||||
{"max-files", "-m", "param", ""},
|
||||
{"max-size", "-M", "param", ""},
|
||||
{"max-time", "-E", "param", ""},
|
||||
{"max-mms-time", "-%m", "param", ""},
|
||||
{"max-rate", "-A", "param", ""},
|
||||
{"max-pause", "-G", "param", ""},
|
||||
{"sockets", "-c", "param", "number of simultaneous connections allowed"},
|
||||
@@ -125,6 +111,8 @@ const char *hts_optalias[][4] = {
|
||||
{"list", "-%L", "param1", ""},
|
||||
{"urllist", "-%S", "param1", ""},
|
||||
{"language", "-%l", "param1", ""}, {"lang", "-%l", "param1", ""},
|
||||
{"accept", "-%a", "param1", ""},
|
||||
{"headers", "-%X", "param1", ""},
|
||||
{"structure", "-N", "param", ""}, {"user-structure", "-N", "param1", ""},
|
||||
{"long-names", "-L", "param", ""},
|
||||
{"keep-links", "-K", "param", ""},
|
||||
@@ -201,17 +189,16 @@ const char *hts_optalias[][4] = {
|
||||
/* Badly documented */
|
||||
{"debug-testfilters", "-#0", "param1", "debug: test filters"},
|
||||
{"advanced-flushlogs", "-#f", "single", ""},
|
||||
{"advanced-maxfilters", "-#F", "param", ""},
|
||||
{"advanced-maxfilters", "-#F", "param", "maximum number of scan rules"},
|
||||
{"version", "-#h", "single", ""},
|
||||
{"debug-scanstdin", "-#K", "single", ""},
|
||||
{"advanced-maxlinks", "-#L", "single", ""},
|
||||
{"advanced-maxlinks", "-#L", "param", "maximum number of links (0 to disable limit)"},
|
||||
{"advanced-progressinfo", "-#p", "single", "deprecated"},
|
||||
{"catch-url", "-#P", "single", "catch complex URL through proxy"},
|
||||
/*{"debug-oldftp","-#R","single",""}, */
|
||||
{"debug-xfrstats", "-#T", "single", ""},
|
||||
{"advanced-wait", "-#u", "single", ""},
|
||||
{"debug-ratestats", "-#Z", "single", ""},
|
||||
{"exec", "-#!", "param1", ""},
|
||||
{"fast-engine", "-#X", "single", "Enable fast routines"},
|
||||
{"debug-overflows", "-#X0", "single", "Attempt to detect buffer overflows"},
|
||||
{"debug-cache", "-#C", "param1", "List files in the cache"},
|
||||
@@ -257,10 +244,6 @@ const char *hts_optalias[][4] = {
|
||||
{"add", "", "param0", "add URLs"},
|
||||
/* */
|
||||
|
||||
/* Specific */
|
||||
{"user", "-%U", "param1", "output path"},
|
||||
/* */
|
||||
|
||||
/* Internal */
|
||||
{"catchurl", "--catchurl", "single", "catch complex URL through proxy"},
|
||||
{"updatehttrack", "--updatehttrack", "single",
|
||||
@@ -534,9 +517,9 @@ int optinclude_file(const char *name, int *argc, char **argv, char *x_argvblk,
|
||||
tmp_argv[1] = _tmp_argv[1];
|
||||
tmp_argv[2] = _tmp_argv[2];
|
||||
tmp_argv[3] = _tmp_argv[3];
|
||||
strcpybuff(tmp_argv[0], "--");
|
||||
strcatbuff(tmp_argv[0], a);
|
||||
strcpybuff(tmp_argv[1], b);
|
||||
strcpybuff(_tmp_argv[0], "--");
|
||||
strcatbuff(_tmp_argv[0], a);
|
||||
strcpybuff(_tmp_argv[1], b);
|
||||
|
||||
result =
|
||||
optalias_check(2, (const char *const *) tmp_argv, 0, &return_argc,
|
||||
@@ -577,14 +560,12 @@ int optinclude_file(const char *name, int *argc, char **argv, char *x_argvblk,
|
||||
|
||||
/* Get home directory, '.' if failed */
|
||||
/* example: /home/smith */
|
||||
char *hts_gethome(void) {
|
||||
#ifndef _WIN32_WCE
|
||||
char *home = getenv("HOME");
|
||||
const char *hts_gethome(void) {
|
||||
const char *home = getenv("HOME");
|
||||
|
||||
if (home)
|
||||
return home;
|
||||
else
|
||||
#endif
|
||||
return ".";
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -49,7 +48,7 @@ const char *optreal_value(int p);
|
||||
const char *optalias_value(int p);
|
||||
const char *opttype_value(int p);
|
||||
const char *opthelp_value(int p);
|
||||
char *hts_gethome(void);
|
||||
const char *hts_gethome(void);
|
||||
void expand_home(String * str);
|
||||
#endif
|
||||
|
||||
|
||||
149
src/htsarrays.h
Normal file
149
src/htsarrays.h
Normal file
@@ -0,0 +1,149 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
- We hereby ask people using this source NOT to use it in purpose of grabbing
|
||||
emails addresses, or collecting any other private information on persons.
|
||||
This would disgrace our work, and spoil the many hours we spent on it.
|
||||
|
||||
Please visit our Website: http://www.httrack.com
|
||||
*/
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/* File: Arrays */
|
||||
/* Author: Xavier Roche */
|
||||
/* ------------------------------------------------------------ */
|
||||
|
||||
#ifndef HTS_ARRAYS_DEFSTATIC
|
||||
#define HTS_ARRAYS_DEFSTATIC
|
||||
|
||||
/* System definitions. */
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "htssafe.h"
|
||||
|
||||
/* Memory allocation assertion failure */
|
||||
static void hts_record_assert_memory_failed(const size_t size) {
|
||||
fprintf(stderr, "memory allocation failed (%lu bytes)", \
|
||||
(long int) size); \
|
||||
assertf(! "memory allocation failed"); \
|
||||
}
|
||||
|
||||
/** Dynamic array of T elements. **/
|
||||
#define TypedArray(T) \
|
||||
struct { \
|
||||
/** Elements. **/ \
|
||||
union { \
|
||||
/** Typed. **/ \
|
||||
T* elts; \
|
||||
/** Opaque. **/ \
|
||||
void* ptr; \
|
||||
} data; \
|
||||
/** Count. **/ \
|
||||
size_t size; \
|
||||
/** Capacity. **/ \
|
||||
size_t capa; \
|
||||
}
|
||||
#define EMPTY_TYPED_ARRAY { { NULL }, 0, 0 }
|
||||
|
||||
/** Array size, in elements. **/
|
||||
#define TypedArraySize(A) ((A).size)
|
||||
|
||||
/** Array capacity, in elements. **/
|
||||
#define TypedArrayCapa(A) ((A).capa)
|
||||
|
||||
/**
|
||||
* Remaining free space, in elements.
|
||||
* Macro, first element evaluated multiple times.
|
||||
**/
|
||||
#define TypedArrayRoom(A) ( TypedArrayCapa(A) - TypedArraySize(A) )
|
||||
|
||||
/** Array elements, of type T*. **/
|
||||
#define TypedArrayElts(A) ((A).data.elts)
|
||||
|
||||
/** Array pointer, of type void*. **/
|
||||
#define TypedArrayPtr(A) ((A).data.ptr)
|
||||
|
||||
/** Size of T. **/
|
||||
#define TypedArrayWidth(A) (sizeof(*TypedArrayElts(A)))
|
||||
|
||||
/** Nth element of the array. **/
|
||||
#define TypedArrayNth(A, N) (TypedArrayElts(A)[N])
|
||||
|
||||
/**
|
||||
* Tail of the array (outside the array).
|
||||
* The returned pointer points to the beginning of TypedArrayRoom(A)
|
||||
* free elements.
|
||||
**/
|
||||
#define TypedArrayTail(A) (TypedArrayNth(A, TypedArraySize(A)))
|
||||
|
||||
/**
|
||||
* Ensure at least 'ROOM' elements can be put in the remaining space.
|
||||
* After a call to this macro, TypedArrayRoom(A) is guaranteed to be at
|
||||
* least equal to 'ROOM'.
|
||||
**/
|
||||
#define TypedArrayEnsureRoom(A, ROOM) do { \
|
||||
const size_t room_ = (ROOM); \
|
||||
while (TypedArrayRoom(A) < room_) { \
|
||||
TypedArrayCapa(A) = TypedArrayCapa(A) < 16 ? 16 : TypedArrayCapa(A) * 2; \
|
||||
} \
|
||||
TypedArrayPtr(A) = realloc(TypedArrayPtr(A), \
|
||||
TypedArrayCapa(A)*TypedArrayWidth(A)); \
|
||||
if (TypedArrayPtr(A) == NULL) { \
|
||||
hts_record_assert_memory_failed(TypedArrayCapa(A)*TypedArrayWidth(A)); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
/** Add an element. Macro, first element evaluated multiple times. **/
|
||||
#define TypedArrayAdd(A, E) do { \
|
||||
TypedArrayEnsureRoom(A, 1); \
|
||||
assertf(TypedArraySize(A) < TypedArrayCapa(A)); \
|
||||
TypedArrayTail(A) = (E); \
|
||||
TypedArraySize(A)++; \
|
||||
} while(0)
|
||||
|
||||
/**
|
||||
* Add 'COUNT' elements from 'PTR'.
|
||||
* Macro, first element evaluated multiple times.
|
||||
**/
|
||||
#define TypedArrayAppend(A, PTR, COUNT) do { \
|
||||
const size_t count_ = (COUNT); \
|
||||
/* This 1-case is to benefit from type safety. */ \
|
||||
if (count_ == 1) { \
|
||||
TypedArrayAdd(A, *(PTR)); \
|
||||
} else { \
|
||||
const void *const source_ = (PTR); \
|
||||
TypedArrayEnsureRoom(A, count_); \
|
||||
assertf(count_ <= TypedArrayRoom(A)); \
|
||||
memcpy(&TypedArrayTail(A), source_, count_ * TypedArrayWidth(A)); \
|
||||
TypedArraySize(A) += count_; \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
/** Clear an array, freeing memory and clearing size and capacity. **/
|
||||
#define TypedArrayFree(A) do { \
|
||||
if (TypedArrayPtr(A) != NULL) { \
|
||||
TypedArrayCapa(A) = TypedArraySize(A) = 0; \
|
||||
free(TypedArrayPtr(A)); \
|
||||
TypedArrayPtr(A) = NULL; \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#endif
|
||||
555
src/htsback.c
555
src/htsback.c
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -69,27 +68,27 @@ typedef struct htsblk htsblk;
|
||||
#ifdef HTS_INTERNAL_BYTECODE
|
||||
|
||||
// create/destroy
|
||||
struct_back *back_new(int back_max);
|
||||
struct_back *back_new(httrackp *opt, int back_max);
|
||||
void back_free(struct_back ** sback);
|
||||
|
||||
// backing
|
||||
#define BACK_ADD_TEST "(dummy)"
|
||||
#define BACK_ADD_TEST2 "(dummy2)"
|
||||
int back_index(httrackp * opt, struct_back * sback, char *adr, char *fil,
|
||||
char *sav);
|
||||
int back_available(struct_back * sback);
|
||||
LLint back_incache(struct_back * sback);
|
||||
int back_done_incache(struct_back * sback);
|
||||
HTS_INLINE int back_exist(struct_back * sback, httrackp * opt, char *adr,
|
||||
char *fil, char *sav);
|
||||
int back_nsoc(struct_back * sback);
|
||||
int back_nsoc_overall(struct_back * sback);
|
||||
int back_add(struct_back * sback, httrackp * opt, cache_back * cache, char *adr,
|
||||
char *fil, char *save, char *referer_adr, char *referer_fil,
|
||||
int back_index(httrackp * opt, struct_back * sback, const char *adr, const char *fil,
|
||||
const char *sav);
|
||||
int back_available(const struct_back * sback);
|
||||
LLint back_incache(const struct_back * sback);
|
||||
int back_done_incache(const struct_back * sback);
|
||||
HTS_INLINE int back_exist(struct_back * sback, httrackp * opt, const char *adr,
|
||||
const char *fil, const char *sav);
|
||||
int back_nsoc(const struct_back * sback);
|
||||
int back_nsoc_overall(const struct_back * sback);
|
||||
int back_add(struct_back * sback, httrackp * opt, cache_back * cache, const char *adr,
|
||||
const char *fil, const char *save, const char *referer_adr, const char *referer_fil,
|
||||
int test);
|
||||
int back_add_if_not_exists(struct_back * sback, httrackp * opt,
|
||||
cache_back * cache, char *adr, char *fil, char *save,
|
||||
char *referer_adr, char *referer_fil, int test);
|
||||
cache_back * cache, const char *adr, const char *fil, const char *save,
|
||||
const char *referer_adr, const char *referer_fil, int test);
|
||||
int back_stack_available(struct_back * sback);
|
||||
int back_search(httrackp * opt, struct_back * sback);
|
||||
int back_search_quick(struct_back * sback);
|
||||
@@ -100,7 +99,7 @@ void back_wait(struct_back * sback, httrackp * opt, cache_back * cache,
|
||||
TStamp stat_timestart);
|
||||
int back_letlive(httrackp * opt, cache_back * cache, struct_back * sback,
|
||||
const int p);
|
||||
int back_searchlive(httrackp * opt, struct_back * sback, char *search_addr);
|
||||
int back_searchlive(httrackp * opt, struct_back * sback, const char *search_addr);
|
||||
void back_connxfr(htsblk * src, htsblk * dst);
|
||||
void back_move(lien_back * src, lien_back * dst);
|
||||
void back_copy_static(const lien_back * src, lien_back * dst);
|
||||
@@ -139,12 +138,6 @@ int host_wait(httrackp * opt, lien_back * sback);
|
||||
int back_checksize(httrackp * opt, lien_back * eback, int check_only_totalsize);
|
||||
int back_checkmirror(httrackp * opt);
|
||||
|
||||
#if HTS_XGETHOST
|
||||
#if USE_BEGINTHREAD
|
||||
void Hostlookup(void *iadr_p);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
247
src/htsbase.h
247
src/htsbase.h
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -41,6 +40,7 @@ extern "C" {
|
||||
|
||||
#include "htsglobal.h"
|
||||
#include "htsstrings.h"
|
||||
#include "htssafe.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
@@ -68,10 +68,12 @@ extern "C" {
|
||||
#ifdef __GNUC__
|
||||
#define HTS_UNUSED __attribute__ ((unused))
|
||||
#define HTS_STATIC static __attribute__ ((unused))
|
||||
#define HTS_INLINE __inline__
|
||||
#define HTS_PRINTF_FUN(fmt, arg) __attribute__ ((format (printf, fmt, arg)))
|
||||
#else
|
||||
#define HTS_UNUSED
|
||||
#define HTS_STATIC static
|
||||
#define HTS_INLINE
|
||||
#define HTS_PRINTF_FUN(fmt, arg)
|
||||
#endif
|
||||
#endif
|
||||
@@ -105,237 +107,6 @@ extern "C" {
|
||||
#define DynamicGet(handle, sym) dlsym(handle, sym)
|
||||
#endif
|
||||
|
||||
// emergency log
|
||||
typedef void (*t_abortLog) (char *msg, char *file, int line);
|
||||
extern HTSEXT_API t_abortLog abortLog__;
|
||||
#define abortLog(a) abortLog__(a, __FILE__, __LINE__)
|
||||
#define _ ,
|
||||
#ifndef _WIN32_WCE
|
||||
#define abortLogFmt(a) do { \
|
||||
FILE* fp = fopen("CRASH.TXT", "wb"); \
|
||||
if (!fp) fp = fopen("/tmp/CRASH.TXT", "wb"); \
|
||||
if (!fp) fp = fopen("C:\\CRASH.TXT", "wb"); \
|
||||
if (!fp) fp = fopen("\\Temp\\CRASH.TXT", "wb"); \
|
||||
if (!fp) fp = fopen("\\CRASH.TXT", "wb"); \
|
||||
if (!fp) fp = fopen("CRASH.TXT", "wb"); \
|
||||
if (fp) { \
|
||||
fprintf(fp, "HTTrack " HTTRACK_VERSIONID " closed at '" __FILE__ "', line %d\r\n", __LINE__); \
|
||||
fprintf(fp, "Reason:\r\n"); \
|
||||
fprintf(fp, a); \
|
||||
fprintf(fp, "\r\n"); \
|
||||
fflush(fp); \
|
||||
fclose(fp); \
|
||||
} \
|
||||
} while(0)
|
||||
#else
|
||||
#define abortLogFmt(a) do { \
|
||||
XCEShowMessageA("HTTrack " HTTRACK_VERSIONID " closed at '" __FILE__ "', line %d\r\nReason:\r\n%s\r\n", __LINE__, a); \
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#define assertf(exp) do { \
|
||||
if (! ( exp ) ) { \
|
||||
abortLog("assert failed: " #exp); \
|
||||
if (htsCallbackErr != NULL) { \
|
||||
htsCallbackErr("assert failed: " #exp, __FILE__ , __LINE__ ); \
|
||||
} \
|
||||
assert(exp); \
|
||||
abort(); \
|
||||
} \
|
||||
} while(0)
|
||||
/* non-fatal assert */
|
||||
#define assertnf(exp) do { \
|
||||
if (! ( exp ) ) { \
|
||||
abortLog("assert failed: " #exp); \
|
||||
if (htsCallbackErr != NULL) { \
|
||||
htsCallbackErr("assert failed: " #exp, __FILE__ , __LINE__ ); \
|
||||
} \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
/* regular malloc's() */
|
||||
#ifndef HTS_TRACE_MALLOC
|
||||
#define malloct(A) malloc(A)
|
||||
#define calloct(A,B) calloc((A), (B))
|
||||
#define freet(A) do { assertnf((A) != NULL); if ((A) != NULL) { free(A); (A) = NULL; } } while(0)
|
||||
#define strdupt(A) strdup(A)
|
||||
#define realloct(A,B) ( ((A) != NULL) ? realloc((A), (B)) : malloc(B) )
|
||||
#define memcpybuff(A, B, N) memcpy((A), (B), (N))
|
||||
#else
|
||||
/* debug version */
|
||||
#define malloct(A) hts_malloc(A)
|
||||
#define calloct(A,B) hts_calloc(A,B)
|
||||
#define strdupt(A) hts_strdup(A)
|
||||
#define freet(A) do { hts_free(A); (A) = NULL; } while(0)
|
||||
#define realloct(A,B) hts_realloc(A,B)
|
||||
void hts_freeall();
|
||||
void *hts_malloc(size_t);
|
||||
void *hts_calloc(size_t, size_t);
|
||||
char *hts_strdup(char *);
|
||||
void *hts_xmalloc(size_t, size_t);
|
||||
void hts_free(void *);
|
||||
void *hts_realloc(void *, size_t);
|
||||
mlink *hts_find(char *adr);
|
||||
/* protected memcpy */
|
||||
#define memcpybuff(A, B, N) do { \
|
||||
mlink* lnk = hts_find((void*)(A)); \
|
||||
if (lnk != NULL) { \
|
||||
assertf(lnk != NULL); \
|
||||
assertf( * ( (t_htsboundary*) ( ((char*) lnk->adr) - sizeof(htsboundary) ) ) == htsboundary ); \
|
||||
assertf( * ( (t_htsboundary*) ( ((char*) lnk->adr) + lnk->len ) ) == htsboundary ); \
|
||||
assertf( ( ((char*)(A)) + (N)) < (char*) (lnk->adr + lnk->len) ); \
|
||||
} \
|
||||
memcpy(A, B, N); \
|
||||
} while(0)
|
||||
|
||||
#endif
|
||||
|
||||
typedef void (*htsErrorCallback) (char *msg, char *file, int line);
|
||||
extern HTSEXT_API htsErrorCallback htsCallbackErr;
|
||||
extern HTSEXT_API int htsMemoryFastXfr;
|
||||
|
||||
/*
|
||||
*/
|
||||
|
||||
#define stringdup()
|
||||
|
||||
#ifdef STRDEBUG
|
||||
|
||||
/* protected strcat, strncat and strcpy - definitely useful */
|
||||
#define strcatbuff(A, B) do { \
|
||||
assertf( (A) != NULL ); \
|
||||
assertf( (B) != NULL ); \
|
||||
if (htsMemoryFastXfr) { \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
(A)[sizeof(A) - 1] = '\0'; \
|
||||
} \
|
||||
strcat(A, B); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
assertf((A)[sizeof(A) - 1] == '\0'); \
|
||||
} \
|
||||
} else { \
|
||||
unsigned int sz = (unsigned int) strlen(A); \
|
||||
unsigned int szf = (unsigned int) strlen(B); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
assertf(sz + szf + 1 < sizeof(A)); \
|
||||
if (szf > 0) { \
|
||||
if (sz + szf + 1 < sizeof(A)) { \
|
||||
memcpy((A) + sz, (B), szf + 1); \
|
||||
} \
|
||||
} \
|
||||
} else if (szf > 0) { \
|
||||
memcpybuff((A) + sz, (B), szf + 1); \
|
||||
} \
|
||||
} \
|
||||
} while(0)
|
||||
#define strncatbuff(A, B, N) do { \
|
||||
assertf( (A) != NULL ); \
|
||||
assertf( (B) != NULL ); \
|
||||
if (htsMemoryFastXfr) { \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
(A)[sizeof(A) - 1] = '\0'; \
|
||||
} \
|
||||
strncat(A, B, N); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
assertf((A)[sizeof(A) - 1] == '\0'); \
|
||||
} \
|
||||
} else { \
|
||||
unsigned int sz = (unsigned int) strlen(A); \
|
||||
unsigned int szf = (unsigned int) strlen(B); \
|
||||
if (szf > (unsigned int) (N)) szf = (unsigned int) (N); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
assertf(sz + szf + 1 < sizeof(A)); \
|
||||
if (szf > 0) { \
|
||||
if (sz + szf + 1 < sizeof(A)) { \
|
||||
memcpy((A) + sz, (B), szf); \
|
||||
* ( (A) + sz + szf) = '\0'; \
|
||||
} \
|
||||
} \
|
||||
} else if (szf > 0) { \
|
||||
memcpybuff((A) + sz, (B), szf); \
|
||||
* ( (A) + sz + szf) = '\0'; \
|
||||
} \
|
||||
} \
|
||||
} while(0)
|
||||
#define strcpybuff(A, B) do { \
|
||||
assertf( (A) != NULL ); \
|
||||
assertf( (const char*) (B) != NULL ); \
|
||||
if (htsMemoryFastXfr) { \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
(A)[sizeof(A) - 1] = '\0'; \
|
||||
} \
|
||||
strcpy(A, B); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
assertf((A)[sizeof(A) - 1] == '\0'); \
|
||||
} \
|
||||
} else { \
|
||||
unsigned int szf = (unsigned int) strlen(B); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
assertf(szf + 1 < sizeof(A)); \
|
||||
if (szf > 0) { \
|
||||
if (szf + 1 < sizeof(A)) { \
|
||||
memcpy((A), (B), szf + 1); \
|
||||
} else { \
|
||||
* (A) = '\0'; \
|
||||
} \
|
||||
} else { \
|
||||
* (A) = '\0'; \
|
||||
} \
|
||||
} else { \
|
||||
memcpybuff((A), (B), szf + 1); \
|
||||
} \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#else
|
||||
|
||||
#ifdef STRDEBUGFAST
|
||||
|
||||
/* protected strcat, strncat and strcpy - definitely useful */
|
||||
#define strcatbuff(A, B) do { \
|
||||
assertf( (A) != NULL ); \
|
||||
assertf( (B) != NULL ); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
(A)[sizeof(A) - 1] = '\0'; \
|
||||
} \
|
||||
strcat(A, B); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
assertf((A)[sizeof(A) - 1] == '\0'); \
|
||||
} \
|
||||
} while(0)
|
||||
#define strncatbuff(A, B, N) do { \
|
||||
assertf( (A) != NULL ); \
|
||||
assertf( (B) != NULL ); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
(A)[sizeof(A) - 1] = '\0'; \
|
||||
} \
|
||||
strncat(A, B, N); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
assertf((A)[sizeof(A) - 1] == '\0'); \
|
||||
} \
|
||||
} while(0)
|
||||
#define strcpybuff(A, B) do { \
|
||||
assertf( (A) != NULL ); \
|
||||
assertf( (B) != NULL ); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
(A)[sizeof(A) - 1] = '\0'; \
|
||||
} \
|
||||
strcpy(A, B); \
|
||||
if (sizeof(A) != sizeof(char*)) { \
|
||||
assertf((A)[sizeof(A) - 1] == '\0'); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#else
|
||||
|
||||
#define strcatbuff strcat
|
||||
#define strncatbuff strncat
|
||||
#define strcpybuff strcpy
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -41,7 +40,6 @@ Please visit our Website: http://www.httrack.com
|
||||
#include <winsock2.h>
|
||||
#else
|
||||
|
||||
#ifndef _WIN32_WCE
|
||||
#undef HTS_USESCOPEID
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
// KB955045 (http://support.microsoft.com/kb/955045)
|
||||
@@ -53,19 +51,16 @@ Please visit our Website: http://www.httrack.com
|
||||
#include <Wspiapi.h>
|
||||
//#include <winsock2.h>
|
||||
//#include <tpipv6.h>
|
||||
#else
|
||||
#include <winsock2.h>
|
||||
#include <socket.h>
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
typedef struct hostent FAR t_hostent;
|
||||
|
||||
#else
|
||||
#define HTS_USESCOPEID
|
||||
#define INVALID_SOCKET -1
|
||||
typedef struct hostent t_hostent;
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if HTS_USEOPENSSL
|
||||
@@ -163,4 +158,8 @@ typedef enum HTTrackStatus {
|
||||
STATUS_FTP_READY = 1001
|
||||
} HTTrackStatus;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
59
src/htsbasiccharsets.sh
Executable file
59
src/htsbasiccharsets.sh
Executable file
@@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
|
||||
# Change this to download files
|
||||
if false; then
|
||||
echo "mget ftp://ftp.unicode.org/Public/MAPPINGS/ISO8859/8859-*.TXT" | lftp
|
||||
echo "mget ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/PC/CP*.TXT" | lftp
|
||||
echo "mget ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP*.TXT" | lftp
|
||||
echo "mget ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/EBCDIC/CP*.TXT" | lftp
|
||||
echo "mget ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/CP*.TXT" | lftp
|
||||
echo "mget ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/KOI8*.TXT" | lftp
|
||||
rm -f CP932.TXT CP936.TXT CP949.TXT CP950.TXT
|
||||
fi
|
||||
|
||||
# Produce code
|
||||
printf "/** GENERATED FILE ($0), DO NOT EDIT **/\n\n"
|
||||
for i in *.TXT ; do
|
||||
echo "processing $i" >&2
|
||||
grep -vE "^(#|$)" $i | grep -E "^0x" | sed -e 's/[[:space:]]/ /g' | cut -f1,2 -d' ' | \
|
||||
(
|
||||
unset arr
|
||||
while read LINE ; do
|
||||
from=$[$(echo $LINE | cut -f1 -d' ')]
|
||||
if ! test -n "$from"; then
|
||||
echo "error with $i" >&2
|
||||
exit 1
|
||||
elif test $from -ge 256; then
|
||||
echo "out-of-range ($LINE) with $i" >&2
|
||||
exit 1
|
||||
fi
|
||||
to=$(echo $LINE | cut -f2 -d' ')
|
||||
arr[$from]=$to
|
||||
done
|
||||
name=$(echo $i | tr 'A-Z' 'a-z' | tr '-' '_' | sed -e 's/\.txt//' -e 's/8859/iso_8859/')
|
||||
printf "/* Table for $i */\nstatic const hts_UCS4 table_${name}[256] = {\n "
|
||||
i=0
|
||||
while test "$i" -lt 256; do
|
||||
if test "$i" -gt 0; then
|
||||
printf ", "
|
||||
if test $[${i}%8] -eq 0; then
|
||||
printf "\n "
|
||||
fi
|
||||
fi
|
||||
value=${arr[$i]:-0}
|
||||
printf "0x%04x" $value
|
||||
i=$[${i}+1]
|
||||
done
|
||||
printf " };\n\n"
|
||||
)
|
||||
echo "processed $i" >&2
|
||||
done
|
||||
|
||||
# Indexes
|
||||
printf "static const struct {\n const char *name;\n const hts_UCS4 *table;\n} table_mappings[] = {\n"
|
||||
for i in *.TXT ; do
|
||||
name=$(echo $i | tr 'A-Z' 'a-z' | tr '-' '_' | sed -e 's/\.txt//' -e 's/8859/iso_8859/')
|
||||
printf " { \"$(echo $name | tr -d '_')\", table_${name} },\n"
|
||||
done
|
||||
printf " { NULL, NULL }\n};\n"
|
||||
118
src/htsbauth.c
118
src/htsbauth.c
@@ -1,11 +1,11 @@
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -13,8 +13,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -39,14 +38,15 @@ Please visit our Website: http://www.httrack.com
|
||||
/* specific definitions */
|
||||
#include "htsglobal.h"
|
||||
#include "htslib.h"
|
||||
#include "htscore.h"
|
||||
|
||||
/* END specific definitions */
|
||||
|
||||
// gestion des cookie
|
||||
// ajoute, dans l'ordre
|
||||
// !=0 : erreur
|
||||
int cookie_add(t_cookie * cookie, char *cook_name, char *cook_value,
|
||||
char *domain, char *path) {
|
||||
int cookie_add(t_cookie * cookie, const char *cook_name, const char *cook_value,
|
||||
const char *domain, const char *path) {
|
||||
char buffer[8192];
|
||||
char *a = cookie->data;
|
||||
char *insert;
|
||||
@@ -54,20 +54,20 @@ int cookie_add(t_cookie * cookie, char *cook_name, char *cook_value,
|
||||
|
||||
// effacer éventuel cookie en double
|
||||
cookie_del(cookie, cook_name, domain, path);
|
||||
if ((int) strlen(cook_value) > 1024)
|
||||
if (strlen(cook_value) > 1024)
|
||||
return -1; // trop long
|
||||
if ((int) strlen(cook_name) > 256)
|
||||
if (strlen(cook_name) > 256)
|
||||
return -1; // trop long
|
||||
if ((int) strlen(domain) > 256)
|
||||
if (strlen(domain) > 256)
|
||||
return -1; // trop long
|
||||
if ((int) strlen(path) > 256)
|
||||
if (strlen(path) > 256)
|
||||
return -1; // trop long
|
||||
if ((int) (strlen(cookie->data)
|
||||
if (strlen(cookie->data)
|
||||
+ strlen(cook_value)
|
||||
+ strlen(cook_name)
|
||||
+ strlen(domain)
|
||||
+ strlen(path)
|
||||
+ 256) > cookie->max_len)
|
||||
+ 256 > cookie->max_len)
|
||||
return -1; // impossible d'ajouter
|
||||
|
||||
insert = a; // insérer ici
|
||||
@@ -100,7 +100,7 @@ int cookie_add(t_cookie * cookie, char *cook_name, char *cook_value,
|
||||
strcatbuff(cook, "\t");
|
||||
strcatbuff(cook, cook_value);
|
||||
strcatbuff(cook, "\n");
|
||||
if (!(((int) strlen(cookie->data) + (int) strlen(cook)) < cookie->max_len))
|
||||
if (!((strlen(cookie->data) + strlen(cook)) < cookie->max_len))
|
||||
return -1; // impossible d'ajouter
|
||||
cookie_insert(insert, cook);
|
||||
#if DEBUG_COOK
|
||||
@@ -112,13 +112,13 @@ int cookie_add(t_cookie * cookie, char *cook_name, char *cook_value,
|
||||
}
|
||||
|
||||
// effacer cookie si existe
|
||||
int cookie_del(t_cookie * cookie, char *cook_name, char *domain, char *path) {
|
||||
int cookie_del(t_cookie * cookie, const char *cook_name, const char *domain, const char *path) {
|
||||
char *a, *b;
|
||||
|
||||
b = cookie_find(cookie->data, cook_name, domain, path);
|
||||
if (b) {
|
||||
a = cookie_nextfield(b);
|
||||
cookie_delete(b, (int) (a - b));
|
||||
cookie_delete(b, a - b);
|
||||
#if DEBUG_COOK
|
||||
printf("deleted old cookie: %s %s %s\n", cook_name, domain, path);
|
||||
#endif
|
||||
@@ -126,11 +126,34 @@ int cookie_del(t_cookie * cookie, char *cook_name, char *domain, char *path) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Matches wildcard cookie domains that start with a dot
|
||||
// chk_dom: the domain stored in the cookie (potentially wildcard).
|
||||
// domain: query domain
|
||||
static int cookie_cmp_wildcard_domain(const char *chk_dom, const char *domain) {
|
||||
const size_t n = strlen(chk_dom);
|
||||
const size_t m = strlen(domain);
|
||||
const size_t l = n < m ? n : m;
|
||||
size_t i;
|
||||
for (i = l - 1; i >= 0; i--) {
|
||||
if (chk_dom[n - i - 1] != domain[m - i - 1]) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (m < n && chk_dom[0] == '.') {
|
||||
return 0;
|
||||
}
|
||||
else if (m != n) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// rechercher cookie à partir de la position s (par exemple s=cookie.data)
|
||||
// renvoie pointeur sur ligne, ou NULL si introuvable
|
||||
// path est aligné à droite et cook_name peut être vide (chercher alors tout cookie)
|
||||
// .doubleclick.net TRUE / FALSE 1999999999 id A
|
||||
char *cookie_find(char *s, char *cook_name, char *domain, char *path) {
|
||||
char *cookie_find(char *s, const char *cook_name, const char *domain, const char *path) {
|
||||
char buffer[8192];
|
||||
char *a = s;
|
||||
|
||||
@@ -143,17 +166,17 @@ char *cookie_find(char *s, char *cook_name, char *domain, char *path) {
|
||||
t = (strcmp(cookie_get(buffer, a, 5), cook_name) == 0); // tester si même nom
|
||||
if (t) { // même nom ou nom qualconque
|
||||
//
|
||||
char *chk_dom = cookie_get(buffer, a, 0); // domaine concerné par le cookie
|
||||
const char *chk_dom = cookie_get(buffer, a, 0); // domaine concerné par le cookie
|
||||
|
||||
if ((int) strlen(chk_dom) <= (int) strlen(domain)) {
|
||||
if (strcmp(chk_dom, domain + strlen(domain) - strlen(chk_dom)) == 0) { // même domaine
|
||||
if ((strlen(chk_dom) <= strlen(domain) &&
|
||||
strcmp(chk_dom, domain + strlen(domain) - strlen(chk_dom)) == 0) ||
|
||||
!cookie_cmp_wildcard_domain(chk_dom, domain)) { // même domaine
|
||||
//
|
||||
char *chk_path = cookie_get(buffer, a, 2); // chemin concerné par le cookie
|
||||
const char *chk_path = cookie_get(buffer, a, 2); // chemin concerné par le cookie
|
||||
|
||||
if ((int) strlen(chk_path) <= (int) strlen(path)) {
|
||||
if (strncmp(path, chk_path, strlen(chk_path)) == 0) { // même chemin
|
||||
return a;
|
||||
}
|
||||
if (strlen(chk_path) <= strlen(path)) {
|
||||
if (strncmp(path, chk_path, strlen(chk_path)) == 0) { // même chemin
|
||||
return a;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -200,7 +223,7 @@ int cookie_load(t_cookie * cookie, const char *fpath, const char *name) {
|
||||
do {
|
||||
if (!(find.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
|
||||
if (!(find.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM)) {
|
||||
FILE *fp = fopen(fconcat(catbuff, fpath, find.cFileName), "rb");
|
||||
FILE *fp = fopen(fconcat(catbuff, sizeof(catbuff), fpath, find.cFileName), "rb");
|
||||
|
||||
if (fp) {
|
||||
char cook_name[256];
|
||||
@@ -209,15 +232,14 @@ int cookie_load(t_cookie * cookie, const char *fpath, const char *name) {
|
||||
char dummy[512];
|
||||
|
||||
//
|
||||
char domain[256]; // domaine cookie (.netscape.com)
|
||||
char path[256]; // chemin (/)
|
||||
lien_adrfil af; // chemin (/)
|
||||
int cookie_merged = 0;
|
||||
|
||||
//
|
||||
// Read all cookies
|
||||
while(!feof(fp)) {
|
||||
cook_name[0] = cook_value[0] = domainpathpath[0]
|
||||
= dummy[0] = domain[0] = path[0] = '\0';
|
||||
= dummy[0] = af.adr[0] = af.fil[0] = '\0';
|
||||
linput(fp, cook_name, 250);
|
||||
if (!feof(fp)) {
|
||||
linput(fp, cook_value, 250);
|
||||
@@ -232,8 +254,8 @@ int cookie_load(t_cookie * cookie, const char *fpath, const char *name) {
|
||||
if (strnotempty(cook_name)
|
||||
&& strnotempty(cook_value)
|
||||
&& strnotempty(domainpathpath)) {
|
||||
if (ident_url_absolute(domainpathpath, domain, path) >= 0) {
|
||||
cookie_add(cookie, cook_name, cook_value, domain, path);
|
||||
if (ident_url_absolute(domainpathpath, &af) >= 0) {
|
||||
cookie_add(cookie, cook_name, cook_value, af.adr, af.fil);
|
||||
cookie_merged = 1;
|
||||
}
|
||||
}
|
||||
@@ -242,7 +264,7 @@ int cookie_load(t_cookie * cookie, const char *fpath, const char *name) {
|
||||
}
|
||||
fclose(fp);
|
||||
if (cookie_merged)
|
||||
remove(fconcat(catbuff, fpath, find.cFileName));
|
||||
remove(fconcat(catbuff, sizeof(catbuff), fpath, find.cFileName));
|
||||
} // if fp
|
||||
}
|
||||
} while(FindNextFileA(h, &find));
|
||||
@@ -253,7 +275,7 @@ int cookie_load(t_cookie * cookie, const char *fpath, const char *name) {
|
||||
|
||||
// Ensuite, cookies.txt
|
||||
{
|
||||
FILE *fp = fopen(fconcat(catbuff, fpath, name), "rb");
|
||||
FILE *fp = fopen(fconcat(catbuff, sizeof(catbuff), fpath, name), "rb");
|
||||
|
||||
if (fp) {
|
||||
char BIGSTK line[8192];
|
||||
@@ -289,12 +311,12 @@ int cookie_load(t_cookie * cookie, const char *fpath, const char *name) {
|
||||
|
||||
// écrire cookies.txt
|
||||
// !=0 : erreur
|
||||
int cookie_save(t_cookie * cookie, char *name) {
|
||||
int cookie_save(t_cookie * cookie, const char *name) {
|
||||
char catbuff[CATBUFF_SIZE];
|
||||
|
||||
if (strnotempty(cookie->data)) {
|
||||
char BIGSTK line[8192];
|
||||
FILE *fp = fopen(fconv(catbuff, name), "wb");
|
||||
FILE *fp = fopen(fconv(catbuff, sizeof(catbuff), name), "wb");
|
||||
|
||||
if (fp) {
|
||||
char *a = cookie->data;
|
||||
@@ -315,13 +337,13 @@ int cookie_save(t_cookie * cookie, char *name) {
|
||||
}
|
||||
|
||||
// insertion chaine ins avant s
|
||||
void cookie_insert(char *s, char *ins) {
|
||||
void cookie_insert(char *s, const char *ins) {
|
||||
char *buff;
|
||||
|
||||
if (strnotempty(s) == 0) { // rien à faire, juste concat
|
||||
strcatbuff(s, ins);
|
||||
} else {
|
||||
buff = (char *) malloct(strlen(s) + 2);
|
||||
buff = (char *) malloct(strlen(s) + 1);
|
||||
if (buff) {
|
||||
strcpybuff(buff, s); // copie temporaire
|
||||
strcpybuff(s, ins); // insérer
|
||||
@@ -332,13 +354,13 @@ void cookie_insert(char *s, char *ins) {
|
||||
}
|
||||
|
||||
// destruction chaine dans s position pos
|
||||
void cookie_delete(char *s, int pos) {
|
||||
void cookie_delete(char *s, size_t pos) {
|
||||
char *buff;
|
||||
|
||||
if (strnotempty(s + pos) == 0) { // rien à faire, effacer
|
||||
s[0] = '\0';
|
||||
} else {
|
||||
buff = (char *) malloct(strlen(s + pos) + 2);
|
||||
buff = (char *) malloct(strlen(s + pos) + 1);
|
||||
if (buff) {
|
||||
strcpybuff(buff, s + pos); // copie temporaire
|
||||
strcpybuff(s, buff); // copier
|
||||
@@ -349,8 +371,8 @@ void cookie_delete(char *s, int pos) {
|
||||
|
||||
// renvoie champ param de la chaine cookie_base
|
||||
// ex: cookie_get("ceci est<tab>un<tab>exemple",1) renvoi "un"
|
||||
char *cookie_get(char *buffer, char *cookie_base, int param) {
|
||||
char *limit;
|
||||
const char *cookie_get(char *buffer, const char *cookie_base, int param) {
|
||||
const char *limit;
|
||||
|
||||
while(*cookie_base == '\n')
|
||||
cookie_base++;
|
||||
@@ -371,7 +393,7 @@ char *cookie_get(char *buffer, char *cookie_base, int param) {
|
||||
}
|
||||
if (cookie_base) {
|
||||
if (cookie_base < limit) {
|
||||
char *a = cookie_base;
|
||||
const char *a = cookie_base;
|
||||
|
||||
while((*a) && (*a != '\t') && (*a != '\n'))
|
||||
a++;
|
||||
@@ -391,7 +413,7 @@ char *cookie_get(char *buffer, char *cookie_base, int param) {
|
||||
// -- basic auth --
|
||||
|
||||
/* déclarer un répertoire comme possédant une authentification propre */
|
||||
int bauth_add(t_cookie * cookie, char *adr, char *fil, char *auth) {
|
||||
int bauth_add(t_cookie * cookie, const char *adr, const char *fil, const char *auth) {
|
||||
char buffer[HTS_URLMAXSIZE * 2];
|
||||
|
||||
if (cookie) {
|
||||
@@ -417,7 +439,7 @@ int bauth_add(t_cookie * cookie, char *adr, char *fil, char *auth) {
|
||||
|
||||
/* tester adr et fil, et retourner authentification si nécessaire */
|
||||
/* sinon, retourne NULL */
|
||||
char *bauth_check(t_cookie * cookie, char *adr, char *fil) {
|
||||
char *bauth_check(t_cookie * cookie, const char *adr, const char *fil) {
|
||||
char buffer[HTS_URLMAXSIZE * 2];
|
||||
|
||||
if (cookie) {
|
||||
@@ -436,10 +458,10 @@ char *bauth_check(t_cookie * cookie, char *adr, char *fil) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
char *bauth_prefix(char *prefix, char *adr, char *fil) {
|
||||
char *bauth_prefix(char *prefix, const char *adr, const char *fil) {
|
||||
char *a;
|
||||
|
||||
strcpybuff(prefix, jump_identification(adr));
|
||||
strcpybuff(prefix, jump_identification_const(adr));
|
||||
strcatbuff(prefix, fil);
|
||||
a = strchr(prefix, '?');
|
||||
if (a)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -35,6 +34,8 @@ Please visit our Website: http://www.httrack.com
|
||||
#ifndef HTSBAUTH_DEFH
|
||||
#define HTSBAUTH_DEFH
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
// robots wizard
|
||||
#ifndef HTS_DEF_FWSTRUCT_bauth_chain
|
||||
#define HTS_DEF_FWSTRUCT_bauth_chain
|
||||
@@ -61,21 +62,21 @@ struct t_cookie {
|
||||
#ifdef HTS_INTERNAL_BYTECODE
|
||||
|
||||
// cookies
|
||||
int cookie_add(t_cookie * cookie, char *cook_name, char *cook_value,
|
||||
char *domain, char *path);
|
||||
int cookie_del(t_cookie * cookie, char *cook_name, char *domain, char *path);
|
||||
int cookie_add(t_cookie * cookie, const char *cook_name, const char *cook_value,
|
||||
const char *domain, const char *path);
|
||||
int cookie_del(t_cookie * cookie, const char *cook_name, const char *domain, const char *path);
|
||||
int cookie_load(t_cookie * cookie, const char *path, const char *name);
|
||||
int cookie_save(t_cookie * cookie, char *name);
|
||||
void cookie_insert(char *s, char *ins);
|
||||
void cookie_delete(char *s, int pos);
|
||||
char *cookie_get(char *buffer, char *cookie_base, int param);
|
||||
char *cookie_find(char *s, char *cook_name, char *domain, char *path);
|
||||
int cookie_save(t_cookie * cookie, const char *name);
|
||||
void cookie_insert(char *s, const char *ins);
|
||||
void cookie_delete(char *s, size_t pos);
|
||||
const char *cookie_get(char *buffer, const char *cookie_base, int param);
|
||||
char *cookie_find(char *s, const char *cook_name, const char *domain, const char *path);
|
||||
char *cookie_nextfield(char *a);
|
||||
|
||||
// basic auth
|
||||
int bauth_add(t_cookie * cookie, char *adr, char *fil, char *auth);
|
||||
char *bauth_check(t_cookie * cookie, char *adr, char *fil);
|
||||
char *bauth_prefix(char *buffer, char *adr, char *fil);
|
||||
int bauth_add(t_cookie * cookie, const char *adr, const char *fil, const char *auth);
|
||||
char *bauth_check(t_cookie * cookie, const char *adr, const char *fil);
|
||||
char *bauth_prefix(char *buffer, const char *adr, const char *fil);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
237
src/htscache.c
237
src/htscache.c
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -146,9 +145,9 @@ void cache_mayadd(httrackp * opt, cache_back * cache, htsblk * r,
|
||||
// we just store statuscode + location (if any)
|
||||
if (url_save == NULL && r->statuscode / 100 >= 3) {
|
||||
// cached "fast" header doesn't yet exists
|
||||
if (inthash_read
|
||||
if (coucal_read
|
||||
(cache->cached_tests,
|
||||
concat(OPT_GET_BUFF(opt), url_adr, url_fil), NULL) == 0) {
|
||||
concat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), url_adr, url_fil), NULL) == 0) {
|
||||
char BIGSTK tempo[HTS_URLMAXSIZE * 2];
|
||||
|
||||
sprintf(tempo, "%d", (int) r->statuscode);
|
||||
@@ -159,8 +158,8 @@ void cache_mayadd(httrackp * opt, cache_back * cache, htsblk * r,
|
||||
hts_log_print(opt, LOG_DEBUG,
|
||||
"Cached fast-header response: %s%s is %d",
|
||||
url_adr, url_fil, (int) r->statuscode);
|
||||
inthash_add(cache->cached_tests,
|
||||
concat(OPT_GET_BUFF(opt), url_adr, url_fil),
|
||||
coucal_add(cache->cached_tests,
|
||||
concat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), url_adr, url_fil),
|
||||
(intptr_t) strdupt(tempo));
|
||||
}
|
||||
}
|
||||
@@ -367,10 +366,10 @@ void cache_add(httrackp * opt, cache_back * cache, const htsblk * r,
|
||||
FILE *fp;
|
||||
|
||||
// On recopie le fichier->.
|
||||
off_t file_size = fsize_utf8(fconv(catbuff, url_save));
|
||||
off_t file_size = fsize_utf8(fconv(catbuff, sizeof(catbuff), url_save));
|
||||
|
||||
if (file_size >= 0) {
|
||||
fp = FOPEN(fconv(catbuff, url_save), "rb");
|
||||
fp = FOPEN(fconv(catbuff, sizeof(catbuff), url_save), "rb");
|
||||
if (fp != NULL) {
|
||||
char BIGSTK buff[32768];
|
||||
size_t nl;
|
||||
@@ -647,7 +646,7 @@ static htsblk cache_readex_new(httrackp * opt, cache_back * cache,
|
||||
strcpybuff(r.location, "");
|
||||
strcpybuff(buff, adr);
|
||||
strcatbuff(buff, fil);
|
||||
hash_pos_return = inthash_read(cache->hashtable, buff, &hash_pos);
|
||||
hash_pos_return = coucal_read(cache->hashtable, buff, &hash_pos);
|
||||
/* avoid errors on data entries */
|
||||
if (adr[0] == '/' && adr[1] == '/' && adr[2] == '[') {
|
||||
#if HTS_FAST_CACHE
|
||||
@@ -752,7 +751,7 @@ static htsblk cache_readex_new(httrackp * opt, cache_back * cache,
|
||||
|
||||
/* Ensure the file is present, because returning a reference to a missing file is useless! */
|
||||
if (!dataincache) { /* Data are supposed to be on disk */
|
||||
if (!fexist_utf8(fconv(catbuff, previous_save))) { // un fichier existe déja
|
||||
if (!fexist_utf8(fconv(catbuff, sizeof(catbuff), previous_save))) { // un fichier existe déja
|
||||
if (!opt->norecatch) {
|
||||
hts_log_print(opt, LOG_DEBUG, "Cache: could not find %s",
|
||||
previous_save);
|
||||
@@ -776,10 +775,10 @@ static htsblk cache_readex_new(httrackp * opt, cache_back * cache,
|
||||
r.msg[0] = '\0';
|
||||
|
||||
// File exists on disk with declared cache name (this is expected!)
|
||||
if (fexist_utf8(fconv(catbuff, previous_save))) { // un fichier existe déja
|
||||
if (fexist_utf8(fconv(catbuff, sizeof(catbuff), previous_save))) { // un fichier existe déja
|
||||
// Expected size ?
|
||||
const size_t fsize =
|
||||
fsize_utf8(fconv(catbuff, previous_save));
|
||||
fsize_utf8(fconv(catbuff, sizeof(catbuff), previous_save));
|
||||
if (fsize == r.size) {
|
||||
// Target name is the previous name, and the file looks good: nothing to do!
|
||||
if (strcmp(previous_save, target_save) == 0) {
|
||||
@@ -791,8 +790,8 @@ static htsblk cache_readex_new(httrackp * opt, cache_back * cache,
|
||||
char catbuff2[CATBUFF_SIZE];
|
||||
|
||||
if (RENAME
|
||||
(fconv(catbuff, previous_save),
|
||||
fconv(catbuff2, target_save)) == 0) {
|
||||
(fconv(catbuff, sizeof(catbuff), previous_save),
|
||||
fconv(catbuff2, sizeof(catbuff2), target_save)) == 0) {
|
||||
// So far so good
|
||||
ok = 1; // plus rien à faire
|
||||
|
||||
@@ -813,9 +812,9 @@ static htsblk cache_readex_new(httrackp * opt, cache_back * cache,
|
||||
}
|
||||
// File exists with the target name and not previous one ?
|
||||
// Suppose a broken mirror, with a file being renamed: OK
|
||||
else if (fexist_utf8(fconv(catbuff, target_save))) {
|
||||
else if (fexist_utf8(fconv(catbuff, sizeof(catbuff), target_save))) {
|
||||
// Expected size ?
|
||||
const size_t fsize = fsize_utf8(fconv(catbuff, target_save));
|
||||
const size_t fsize = fsize_utf8(fconv(catbuff, sizeof(catbuff), target_save));
|
||||
|
||||
if (fsize == r.size) {
|
||||
// So far so good
|
||||
@@ -928,7 +927,7 @@ static htsblk cache_readex_new(httrackp * opt, cache_back * cache,
|
||||
"Previous cache file not found (empty filename)");
|
||||
}
|
||||
} else { /* Read in memory from disk */
|
||||
FILE *const fp = FOPEN(fconv(catbuff, previous_save), "rb");
|
||||
FILE *const fp = FOPEN(fconv(catbuff, sizeof(catbuff), previous_save), "rb");
|
||||
|
||||
if (fp != NULL) {
|
||||
r.adr = (char *) malloct((int) r.size + 4);
|
||||
@@ -1030,7 +1029,7 @@ static htsblk cache_readex_old(httrackp * opt, cache_back * cache,
|
||||
#if HTS_FAST_CACHE
|
||||
strcpybuff(buff, adr);
|
||||
strcatbuff(buff, fil);
|
||||
hash_pos_return = inthash_read(cache->hashtable, buff, &hash_pos);
|
||||
hash_pos_return = coucal_read(cache->hashtable, buff, &hash_pos);
|
||||
#else
|
||||
buff[0] = '\0';
|
||||
strcatbuff(buff, "\n");
|
||||
@@ -1160,7 +1159,7 @@ static htsblk cache_readex_old(httrackp * opt, cache_back * cache,
|
||||
int ok = 0;
|
||||
|
||||
r.is_write = 1; // écrire
|
||||
if (fexist_utf8(fconv(catbuff, save))) { // un fichier existe déja
|
||||
if (fexist_utf8(fconv(catbuff, sizeof(catbuff), save))) { // un fichier existe déja
|
||||
//if (fsize_utf8(fconv(save))==r.size) { // même taille -- NON tant pis (taille mal declaree)
|
||||
ok = 1; // plus rien à faire
|
||||
filenote(&opt->state.strc, save, NULL); // noter comme connu
|
||||
@@ -1230,7 +1229,7 @@ static htsblk cache_readex_old(httrackp * opt, cache_back * cache,
|
||||
strcpybuff(r.msg, "Previous cache file not found (2)");
|
||||
} else { /* Read in memory from cache */
|
||||
if (strnotempty(return_save) && fexist_utf8(return_save)) {
|
||||
FILE *fp = FOPEN(fconv(catbuff, return_save), "rb");
|
||||
FILE *fp = FOPEN(fconv(catbuff, sizeof(catbuff), return_save), "rb");
|
||||
|
||||
if (fp != NULL) {
|
||||
r.adr = (char *) malloct((size_t) r.size + 4);
|
||||
@@ -1350,7 +1349,7 @@ int cache_readdata(cache_back * cache, const char *str1, const char *str2,
|
||||
|
||||
strcpybuff(buff, str1);
|
||||
strcatbuff(buff, str2);
|
||||
if (inthash_read(cache->hashtable, buff, &pos)) {
|
||||
if (coucal_read(cache->hashtable, buff, &pos)) {
|
||||
if (fseek(cache->olddat, (long) ((pos > 0) ? pos : (-pos)), SEEK_SET) ==
|
||||
0) {
|
||||
INTsys len;
|
||||
@@ -1398,7 +1397,7 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
// ---
|
||||
// utilisation du cache: renommer ancien éventuel et charger index
|
||||
hts_log_print(opt, LOG_DEBUG, "Cache: enabled=%d, base=%s, ro=%d",
|
||||
(int) opt->cache, fconcat(OPT_GET_BUFF(opt),
|
||||
(int) opt->cache, fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt),
|
||||
StringBuff(opt->path_log),
|
||||
"hts-cache/"), (int) cache->ro);
|
||||
if (opt->cache) {
|
||||
@@ -1407,40 +1406,40 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
#endif
|
||||
if (!cache->ro) {
|
||||
#ifdef _WIN32
|
||||
mkdir(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log), "hts-cache"));
|
||||
mkdir(fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log), "hts-cache"));
|
||||
#else
|
||||
mkdir(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log), "hts-cache"),
|
||||
mkdir(fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log), "hts-cache"),
|
||||
HTS_PROTECT_FOLDER);
|
||||
#endif
|
||||
if ((fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log), "hts-cache/new.zip")))) { // il existe déja un cache précédent.. renommer
|
||||
if ((fexist(fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log), "hts-cache/new.zip")))) { // il existe déja un cache précédent.. renommer
|
||||
/* Previous cache from the previous cache version */
|
||||
#if 0
|
||||
/* No.. reuse with old httrack releases! */
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.dat")))
|
||||
remove(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.dat"));
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.ndx")))
|
||||
remove(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.ndx"));
|
||||
#endif
|
||||
/* Previous cache version */
|
||||
if ((fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log), "hts-cache/new.dat"))) && (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log), "hts-cache/new.ndx")))) { // il existe déja un cache précédent.. renommer
|
||||
if ((fexist(fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log), "hts-cache/new.dat"))) && (fexist(fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log), "hts-cache/new.ndx")))) { // il existe déja un cache précédent.. renommer
|
||||
rename(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.dat"), fconcat(OPT_GET_BUFF(opt),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.dat"), fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt),
|
||||
StringBuff(opt->path_log),
|
||||
"hts-cache/old.dat"));
|
||||
rename(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.ndx"), fconcat(OPT_GET_BUFF(opt),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.ndx"), fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt),
|
||||
StringBuff(opt->path_log),
|
||||
"hts-cache/old.ndx"));
|
||||
}
|
||||
@@ -1448,11 +1447,11 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
/* Remove OLD cache */
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.zip"))) {
|
||||
if (remove
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.zip")) != 0) {
|
||||
hts_log_print(opt, LOG_WARNING | LOG_ERRNO,
|
||||
"Cache: error while moving previous cache");
|
||||
@@ -1462,8 +1461,8 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
/* Rename */
|
||||
if (hts_rename
|
||||
(opt,
|
||||
fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.zip"), fconcat(OPT_GET_BUFF(opt),
|
||||
fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.zip"), fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt),
|
||||
StringBuff(opt->path_log),
|
||||
"hts-cache/old.zip")) != 0) {
|
||||
hts_log_print(opt, LOG_WARNING | LOG_ERRNO,
|
||||
@@ -1471,33 +1470,33 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
} else {
|
||||
hts_log_print(opt, LOG_DEBUG, "Cache: successfully renamed");
|
||||
}
|
||||
} else if ((fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log), "hts-cache/new.dat"))) && (fexist(fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log), "hts-cache/new.ndx")))) { // il existe déja un cache précédent.. renommer
|
||||
} else if ((fexist(fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log), "hts-cache/new.dat"))) && (fexist(fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log), "hts-cache/new.ndx")))) { // il existe déja un cache précédent.. renommer
|
||||
#if DEBUGCA
|
||||
printf("work with former cache\n");
|
||||
#endif
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.dat")))
|
||||
remove(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.dat"));
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.ndx")))
|
||||
remove(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.ndx"));
|
||||
|
||||
rename(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.dat"), fconcat(OPT_GET_BUFF(opt),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.dat"), fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt),
|
||||
StringBuff(opt->path_log),
|
||||
"hts-cache/old.dat"));
|
||||
rename(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.ndx"), fconcat(OPT_GET_BUFF(opt),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.ndx"), fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt),
|
||||
StringBuff(opt->path_log),
|
||||
"hts-cache/old.ndx"));
|
||||
} else { // un des deux (ou les deux) fichiers cache absents: effacer l'autre éventuel
|
||||
@@ -1506,17 +1505,17 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
#endif
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.dat")))
|
||||
remove(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.dat"));
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.ndx")))
|
||||
remove(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.ndx"));
|
||||
}
|
||||
} else {
|
||||
@@ -1525,30 +1524,30 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
hts_log_print(opt, LOG_DEBUG, "Cache: size %d",
|
||||
(int)
|
||||
fsize(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.zip")));
|
||||
|
||||
// charger index cache précédent
|
||||
if ((!cache->ro
|
||||
&&
|
||||
fsize(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.zip")) > 0)
|
||||
|| (cache->ro
|
||||
&&
|
||||
fsize(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.zip")) > 0)
|
||||
) {
|
||||
if (!cache->ro) {
|
||||
cache->zipInput =
|
||||
unzOpen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.zip"));
|
||||
} else {
|
||||
cache->zipInput =
|
||||
unzOpen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.zip"));
|
||||
}
|
||||
|
||||
@@ -1560,25 +1559,25 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
|
||||
if (!cache->ro) {
|
||||
name =
|
||||
fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.zip");
|
||||
} else {
|
||||
name =
|
||||
fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.zip");
|
||||
}
|
||||
hts_log_print(opt, LOG_WARNING,
|
||||
"Cache: damaged cache, trying to repair");
|
||||
if (unzRepair
|
||||
(name,
|
||||
fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/repair.zip"), fconcat(OPT_GET_BUFF(opt),
|
||||
fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/repair.zip"), fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt),
|
||||
StringBuff(opt->path_log),
|
||||
"hts-cache/repair.tmp"),
|
||||
&repaired, &repairedBytes) == Z_OK) {
|
||||
unlink(name);
|
||||
rename(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/repair.zip"), name);
|
||||
cache->zipInput = unzOpen(name);
|
||||
hts_log_print(opt, LOG_WARNING,
|
||||
@@ -1643,9 +1642,9 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
}
|
||||
}
|
||||
if (dataincache)
|
||||
inthash_add(cache->hashtable, filenameIndex, pos);
|
||||
coucal_add(cache->hashtable, filenameIndex, pos);
|
||||
else
|
||||
inthash_add(cache->hashtable, filenameIndex, -pos);
|
||||
coucal_add(cache->hashtable, filenameIndex, -pos);
|
||||
} else {
|
||||
hts_log_print(opt, LOG_WARNING,
|
||||
"Corrupted cache meta entry #%d",
|
||||
@@ -1680,20 +1679,20 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
if ((!cache->ro
|
||||
&&
|
||||
fsize(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.dat")) >= 0
|
||||
&&
|
||||
fsize(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.ndx")) > 0)
|
||||
|| (cache->ro
|
||||
&&
|
||||
fsize(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.dat")) >= 0
|
||||
&&
|
||||
fsize(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.ndx")) > 0)
|
||||
) {
|
||||
FILE *oldndx = NULL;
|
||||
@@ -1704,20 +1703,20 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
if (!cache->ro) {
|
||||
cache->olddat =
|
||||
fopen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.dat"), "rb");
|
||||
oldndx =
|
||||
fopen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.ndx"), "rb");
|
||||
} else {
|
||||
cache->olddat =
|
||||
fopen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.dat"), "rb");
|
||||
oldndx =
|
||||
fopen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.ndx"), "rb");
|
||||
}
|
||||
// les deux doivent être ouvrables
|
||||
@@ -1739,20 +1738,20 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
if (!cache->ro) {
|
||||
buffl =
|
||||
fsize(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.ndx"));
|
||||
cache->use =
|
||||
readfile(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.ndx"));
|
||||
} else {
|
||||
buffl =
|
||||
fsize(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.ndx"));
|
||||
cache->use =
|
||||
readfile(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.ndx"));
|
||||
}
|
||||
if (cache->use != NULL) {
|
||||
@@ -1811,7 +1810,7 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
/* read position */
|
||||
a += binput(a, linepos, 200);
|
||||
sscanf(linepos, "%d", &pos);
|
||||
inthash_add(cache->hashtable, line, pos);
|
||||
coucal_add(cache->hashtable, line, pos);
|
||||
}
|
||||
}
|
||||
/* Not needed anymore! */
|
||||
@@ -1823,7 +1822,7 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
}
|
||||
} else {
|
||||
hts_log_print(opt, LOG_DEBUG, "Cache: no cache found in %s",
|
||||
fconcat(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/"));
|
||||
}
|
||||
|
||||
@@ -1833,39 +1832,39 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
if (!cache->ro) {
|
||||
// ouvrir caches actuels
|
||||
structcheck(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log), "hts-cache/"));
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log), "hts-cache/"));
|
||||
|
||||
if (1) {
|
||||
/* Create ZIP file cache */
|
||||
cache->zipOutput =
|
||||
(void *)
|
||||
zipOpen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.zip"), 0);
|
||||
|
||||
if (cache->zipOutput != NULL) {
|
||||
// supprimer old.lst
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.lst")))
|
||||
remove(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.lst"));
|
||||
// renommer
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.lst")))
|
||||
rename(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.lst"), fconcat(OPT_GET_BUFF(opt),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.lst"), fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt),
|
||||
StringBuff(opt->path_log),
|
||||
"hts-cache/old.lst"));
|
||||
// ouvrir
|
||||
cache->lst =
|
||||
fopen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.lst"), "wb");
|
||||
strcpybuff(opt->state.strc.path, StringBuff(opt->path_html));
|
||||
opt->state.strc.lst = cache->lst;
|
||||
@@ -1879,25 +1878,25 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
// supprimer old.txt
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.txt")))
|
||||
remove(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.txt"));
|
||||
// renommer
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.txt")))
|
||||
rename(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.txt"), fconcat(OPT_GET_BUFF(opt),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.txt"), fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt),
|
||||
StringBuff(opt->path_log),
|
||||
"hts-cache/old.txt"));
|
||||
// ouvrir
|
||||
cache->txt =
|
||||
fopen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.txt"), "wb");
|
||||
if (cache->txt) {
|
||||
fprintf(cache->txt,
|
||||
@@ -1910,11 +1909,11 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
} else {
|
||||
cache->dat =
|
||||
fopen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.dat"), "wb");
|
||||
cache->ndx =
|
||||
fopen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.ndx"), "wb");
|
||||
// les deux doivent être ouvrables
|
||||
if ((cache->dat == NULL) && (cache->ndx != NULL)) {
|
||||
@@ -1941,25 +1940,25 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
// supprimer old.lst
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.lst")))
|
||||
remove(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.lst"));
|
||||
// renommer
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.lst")))
|
||||
rename(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.lst"), fconcat(OPT_GET_BUFF(opt),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.lst"), fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt),
|
||||
StringBuff(opt->path_log),
|
||||
"hts-cache/old.lst"));
|
||||
// ouvrir
|
||||
cache->lst =
|
||||
fopen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.lst"), "wb");
|
||||
strcpybuff(opt->state.strc.path, StringBuff(opt->path_html));
|
||||
opt->state.strc.lst = cache->lst;
|
||||
@@ -1973,25 +1972,25 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
// supprimer old.txt
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.txt")))
|
||||
remove(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/old.txt"));
|
||||
// renommer
|
||||
if (fexist
|
||||
(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.txt")))
|
||||
rename(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.txt"), fconcat(OPT_GET_BUFF(opt),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.txt"), fconcat(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt),
|
||||
StringBuff(opt->path_log),
|
||||
"hts-cache/old.txt"));
|
||||
// ouvrir
|
||||
cache->txt =
|
||||
fopen(fconcat
|
||||
(OPT_GET_BUFF(opt), StringBuff(opt->path_log),
|
||||
(OPT_GET_BUFF(opt), OPT_GET_BUFF_SIZE(opt), StringBuff(opt->path_log),
|
||||
"hts-cache/new.txt"), "wb");
|
||||
if (cache->txt) {
|
||||
fprintf(cache->txt,
|
||||
@@ -2017,12 +2016,12 @@ void cache_init(cache_back * cache, httrackp * opt) {
|
||||
|
||||
// lire un fichier.. (compatible \0)
|
||||
/* Note: NOT utf-8 */
|
||||
char *readfile(char *fil) {
|
||||
char *readfile(const char *fil) {
|
||||
return readfile2(fil, NULL);
|
||||
}
|
||||
|
||||
/* Note: NOT utf-8 */
|
||||
char *readfile2(char *fil, LLint * size) {
|
||||
char *readfile2(const char *fil, LLint * size) {
|
||||
char *adr = NULL;
|
||||
char catbuff[CATBUFF_SIZE];
|
||||
INTsys len = 0;
|
||||
@@ -2031,7 +2030,7 @@ char *readfile2(char *fil, LLint * size) {
|
||||
if (len >= 0) { // exists
|
||||
FILE *fp;
|
||||
|
||||
fp = fopen(fconv(catbuff, fil), "rb");
|
||||
fp = fopen(fconv(catbuff, sizeof(catbuff), fil), "rb");
|
||||
if (fp != NULL) { // n'existe pas (!)
|
||||
adr = (char *) malloct(len + 1);
|
||||
if (size != NULL)
|
||||
@@ -2050,13 +2049,13 @@ char *readfile2(char *fil, LLint * size) {
|
||||
}
|
||||
|
||||
/* Note: utf-8 */
|
||||
char *readfile_utf8(char *fil) {
|
||||
char *readfile_utf8(const char *fil) {
|
||||
char *adr = NULL;
|
||||
char catbuff[CATBUFF_SIZE];
|
||||
const off_t len = fsize_utf8(fil);
|
||||
|
||||
if (len >= 0) { // exists
|
||||
FILE *const fp = FOPEN(fconv(catbuff, fil), "rb");
|
||||
FILE *const fp = FOPEN(fconv(catbuff, sizeof(catbuff), fil), "rb");
|
||||
|
||||
if (fp != NULL) { // n'existe pas (!)
|
||||
adr = (char *) malloct(len + 1);
|
||||
@@ -2075,18 +2074,18 @@ char *readfile_utf8(char *fil) {
|
||||
}
|
||||
|
||||
/* Note: NOT utf-8 */
|
||||
char *readfile_or(char *fil, char *defaultdata) {
|
||||
char *realfile = fil;
|
||||
char *readfile_or(const char *fil, const char *defaultdata) {
|
||||
const char *realfile = fil;
|
||||
char *ret;
|
||||
char catbuff[CATBUFF_SIZE];
|
||||
|
||||
if (!fexist(fil))
|
||||
realfile = fconcat(catbuff, hts_rootdir(NULL), fil);
|
||||
realfile = fconcat(catbuff, sizeof(catbuff), hts_rootdir(NULL), fil);
|
||||
ret = readfile(realfile);
|
||||
if (ret)
|
||||
return ret;
|
||||
else {
|
||||
char *adr = malloct(strlen(defaultdata) + 2);
|
||||
char *adr = malloct(strlen(defaultdata) + 1);
|
||||
|
||||
if (adr) {
|
||||
strcpybuff(adr, defaultdata);
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -41,9 +40,8 @@ Please visit our Website: http://www.httrack.com
|
||||
#include "htsbase.h"
|
||||
#include "htsnet.h"
|
||||
#include "htslib.h"
|
||||
#ifndef _WIN32_WCE
|
||||
#include "htscore.h"
|
||||
#include <fcntl.h>
|
||||
#endif
|
||||
#ifdef _WIN32
|
||||
#else
|
||||
#include <arpa/inet.h>
|
||||
@@ -80,40 +78,25 @@ HTSEXT_API T_SOC catch_url_init_std(int *port_prox, char *adr_prox) {
|
||||
// 1- Init the URL catcher
|
||||
|
||||
// catch_url_init(&port,&return_host);
|
||||
HTSEXT_API T_SOC catch_url_init(int *port, char *adr) {
|
||||
HTSEXT_API T_SOC catch_url_init(int *port, /* 128 bytes */ char *adr) {
|
||||
T_SOC soc = INVALID_SOCKET;
|
||||
char h_loc[256 + 2];
|
||||
char h_loc[256];
|
||||
|
||||
if (gethostname(h_loc, 256) == 0) { // host name
|
||||
if (gethostname(h_loc, sizeof(h_loc)) == 0) { // host name
|
||||
SOCaddr server;
|
||||
int server_size = sizeof(server);
|
||||
t_hostent *hp_loc;
|
||||
t_fullhostent buffer;
|
||||
|
||||
// effacer structure
|
||||
memset(&server, 0, sizeof(server));
|
||||
|
||||
if ((hp_loc = vxgethostbyname(h_loc, &buffer))) { // notre host
|
||||
|
||||
// copie adresse
|
||||
SOCaddr_copyaddr(server, server_size, hp_loc->h_addr_list[0],
|
||||
hp_loc->h_length);
|
||||
|
||||
if (hts_dns_resolve_nocache(h_loc, &server) != NULL) { // notre host
|
||||
if ((soc =
|
||||
(T_SOC) socket(SOCaddr_sinfamily(server), SOCK_STREAM,
|
||||
0)) != INVALID_SOCKET) {
|
||||
SOCaddr_initport(server, *port);
|
||||
if (bind(soc, (struct sockaddr *) &server, server_size) == 0) {
|
||||
if (bind(soc, &SOCaddr_sockaddr(server), SOCaddr_size(server)) == 0) {
|
||||
SOCaddr server2;
|
||||
SOClen len;
|
||||
SOClen len = SOCaddr_capacity(server2);
|
||||
|
||||
len = sizeof(server2);
|
||||
// effacer structure
|
||||
memset(&server2, 0, sizeof(server2));
|
||||
if (getsockname(soc, (struct sockaddr *) &server2, &len) == 0) {
|
||||
if (getsockname(soc, &SOCaddr_sockaddr(server2), &len) == 0) {
|
||||
*port = ntohs(SOCaddr_sinport(server)); // récupérer port
|
||||
if (listen(soc, 10) >= 0) { // au pif le 10
|
||||
SOCaddr_inetntoa(adr, 128, server2, len);
|
||||
if (listen(soc, 1) >= 0) {
|
||||
SOCaddr_inetntoa(adr, 128, server2);
|
||||
} else {
|
||||
#ifdef _WIN32
|
||||
closesocket(soc);
|
||||
@@ -171,15 +154,13 @@ HTSEXT_API int catch_url(T_SOC soc, char *url, char *method, char *data) {
|
||||
/* INFOS */
|
||||
{
|
||||
SOCaddr server2;
|
||||
SOClen len = sizeof(server2);
|
||||
SOClen len = SOCaddr_capacity(server2);
|
||||
|
||||
// effacer structure
|
||||
memset(&server2, 0, sizeof(server2));
|
||||
if (getpeername(soc, (struct sockaddr *) &server2, &len) == 0) {
|
||||
if (getpeername(soc, &SOCaddr_sockaddr(server2), &len) == 0) {
|
||||
char dot[256 + 2];
|
||||
|
||||
SOCaddr_inetntoa(dot, 256, server2, sizeof(server2));
|
||||
sprintf(url, "%s:%d", dot, htons(SOCaddr_sinport(server2)));
|
||||
SOCaddr_inetntoa(dot, sizeof(dot), server2);
|
||||
sprintf(url, "%s:%d", dot, ntohs(SOCaddr_sinport(server2)));
|
||||
}
|
||||
}
|
||||
/* INFOS */
|
||||
@@ -194,20 +175,20 @@ HTSEXT_API int catch_url(T_SOC soc, char *url, char *method, char *data) {
|
||||
socinput(soc, line, 1000);
|
||||
if (strnotempty(line)) {
|
||||
if (sscanf(line, "%s %s %s", method, url, protocol) == 3) {
|
||||
char BIGSTK url_adr[HTS_URLMAXSIZE * 2];
|
||||
char BIGSTK url_fil[HTS_URLMAXSIZE * 2];
|
||||
lien_adrfil af;
|
||||
|
||||
// méthode en majuscule
|
||||
int i, r = 0;
|
||||
size_t i;
|
||||
int r = 0;
|
||||
|
||||
url_adr[0] = url_fil[0] = '\0';
|
||||
af.adr[0] = af.fil[0] = '\0';
|
||||
//
|
||||
for(i = 0; i < (int) strlen(method); i++) {
|
||||
for(i = 0; method[i] != '\0'; i++) {
|
||||
if ((method[i] >= 'a') && (method[i] <= 'z'))
|
||||
method[i] -= ('a' - 'A');
|
||||
}
|
||||
// adresse du lien
|
||||
if (ident_url_absolute(url, url_adr, url_fil) >= 0) {
|
||||
if (ident_url_absolute(url, &af) >= 0) {
|
||||
// Traitement des en-têtes
|
||||
char BIGSTK loc[HTS_URLMAXSIZE * 2];
|
||||
htsblk blkretour;
|
||||
@@ -216,7 +197,7 @@ HTSEXT_API int catch_url(T_SOC soc, char *url, char *method, char *data) {
|
||||
//memset(&blkretour, 0, sizeof(htsblk)); // effacer
|
||||
blkretour.location = loc; // si non nul, contiendra l'adresse véritable en cas de moved xx
|
||||
// Lire en têtes restants
|
||||
sprintf(data, "%s %s %s\r\n", method, url_fil, protocol);
|
||||
sprintf(data, "%s %s %s\r\n", method, af.fil, protocol);
|
||||
while(strnotempty(line)) {
|
||||
socinput(soc, line, 1000);
|
||||
treathead(NULL, NULL, NULL, &blkretour, line); // traiter
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,9 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -24,11 +22,9 @@ Important notes:
|
||||
emails addresses, or collecting any other private information on persons.
|
||||
This would disgrace our work, and spoil the many hours we spent on it.
|
||||
|
||||
|
||||
Please visit our Website: http://www.httrack.com
|
||||
*/
|
||||
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/* File: URL catch .h */
|
||||
/* Author: Xavier Roche */
|
||||
@@ -37,7 +33,7 @@ Please visit our Website: http://www.httrack.com
|
||||
// Fichier intercepteur d'URL .h
|
||||
|
||||
#ifndef HTS_CATCHURL_DEFH
|
||||
#define HTS_CATCHURL_DEFH
|
||||
#define HTS_CATCHURL_DEFH
|
||||
|
||||
#include "htsbasenet.h"
|
||||
|
||||
@@ -45,12 +41,7 @@ Please visit our Website: http://www.httrack.com
|
||||
#ifdef HTS_INTERNAL_BYTECODE
|
||||
|
||||
// Fonctions
|
||||
void socinput(T_SOC soc,char* s,int max);
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API T_SOC catch_url_init_std(int* port_prox,char* adr_prox);
|
||||
HTSEXT_API T_SOC catch_url_init(int* port,char* adr);
|
||||
HTSEXT_API int catch_url(T_SOC soc,char* url,char* method,char* data);
|
||||
#endif
|
||||
void socinput(T_SOC soc, char *s, int max);
|
||||
|
||||
#define CATCH_RESPONSE \
|
||||
"HTTP/1.0 200 OK\r\n"\
|
||||
@@ -74,10 +65,7 @@ HTSEXT_API int catch_url(T_SOC soc,char* url,char* method,char* data);
|
||||
"</BODY></HTML>"\
|
||||
"<!-- Generated by HTTrack Website Copier -->\r\n"\
|
||||
"\r\n"\
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
293
src/htscharset.c
293
src/htscharset.c
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -34,8 +33,19 @@ Please visit our Website: http://www.httrack.com
|
||||
#include "htscharset.h"
|
||||
#include "htsbase.h"
|
||||
#include "punycode.h"
|
||||
#include "htssafe.h"
|
||||
|
||||
#include <assert.h>
|
||||
#ifdef _WIN32
|
||||
#include <stddef.h>
|
||||
typedef unsigned __int32 uint32_t;
|
||||
typedef unsigned __int64 uint64_t;
|
||||
#elif (defined(SOLARIS) || defined(sun) || defined(HAVE_INTTYPES_H) \
|
||||
|| defined(BSD) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD_kernel__))
|
||||
#include <inttypes.h>
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
#include <stdarg.h>
|
||||
|
||||
int hts_isStringAscii(const char *s, size_t size) {
|
||||
size_t i;
|
||||
@@ -50,6 +60,40 @@ int hts_isStringAscii(const char *s, size_t size) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
#define IS_ALNUM(C) ( ((C) >= 'A' && (C) <= 'Z') || ((C) >= 'a' && (C) <= 'z') || ((C) >= '0' && (C) <= '9') )
|
||||
#define CHAR_LOWER(C) ( ((C) >= 'A' && (C) <= 'Z') ? ((C) + 'a' - 'A') : (C) )
|
||||
static int hts_equalsAlphanum(const char *a, const char *b) {
|
||||
size_t i, j;
|
||||
for(i = 0, j = 0;; i++, j++) {
|
||||
/* Skip non-alnum */
|
||||
for(; a[i] != '\0' && !IS_ALNUM(a[i]); i++) ;
|
||||
for(; b[j] != '\0' && !IS_ALNUM(b[j]); j++) ;
|
||||
/* Compare */
|
||||
if (CHAR_LOWER(a[i]) != CHAR_LOWER(b[j])) {
|
||||
break;
|
||||
}
|
||||
/* End of string ? (note: a[i] == b[j]) */
|
||||
else if (a[i] == '\0') {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#undef IS_ALNUM
|
||||
#undef CHAR_LOWER
|
||||
|
||||
/* Copy the memory region [s .. s + size - 1 ] as a \0-terminated string. */
|
||||
static char *hts_stringMemCopy(const char *s, size_t size) {
|
||||
char *dest = malloc(size + 1);
|
||||
|
||||
if (dest != NULL) {
|
||||
memcpy(dest, s, size);
|
||||
dest[size] = '\0';
|
||||
return dest;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
typedef struct wincodepage_t wincodepage_t;
|
||||
@@ -208,45 +252,17 @@ static const wincodepage_t codepages[] = {
|
||||
UINT hts_getCodepage(const char *name) {
|
||||
int id;
|
||||
|
||||
#define IS_ALNUM(C) ( ((C) >= 'A' && (C) <= 'Z') || ((C) >= 'a' && (C) <= 'z') || ((C) >= '0' && (C) <= '9') )
|
||||
#define CHAR_LOWER(C) ( ((C) >= 'A' && (C) <= 'Z') ? ((C) + 'a' - 'A') : (C) )
|
||||
for(id = 0; codepages[id].name != NULL; id++) {
|
||||
int i, j;
|
||||
|
||||
/* Compare the two strings, lowercase and alphanum only (ISO88591 == iso-8859-1) */
|
||||
const char *a = name, *b = codepages[id].name;
|
||||
|
||||
for(i = 0, j = 0;; i++, j++) {
|
||||
/* Skip non-alnum */
|
||||
for(; a[i] != '\0' && !IS_ALNUM(a[i]); i++) ;
|
||||
for(; b[j] != '\0' && !IS_ALNUM(b[j]); j++) ;
|
||||
/* Compare */
|
||||
if (CHAR_LOWER(a[i]) != CHAR_LOWER(b[j])) {
|
||||
break;
|
||||
}
|
||||
/* End of string ? (note: a[i] == b[j]) */
|
||||
else if (a[i] == '\0') {
|
||||
return codepages[id].codepage;
|
||||
}
|
||||
if (hts_equalsAlphanum(name, codepages[id].name)) {
|
||||
return codepages[id].codepage;
|
||||
}
|
||||
}
|
||||
#undef IS_ALNUM
|
||||
#undef CHAR_LOWER
|
||||
|
||||
/* Not found */
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *strndup(const char *s, size_t size) {
|
||||
char *dest = malloc(size + 1);
|
||||
|
||||
if (dest != NULL) {
|
||||
memcpy(dest, s, size);
|
||||
dest[size] = '\0';
|
||||
return dest;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
LPWSTR hts_convertStringToUCS2(const char *s, int size, UINT cp, int *pwsize) {
|
||||
/* Size in wide chars of the output */
|
||||
const int wsize = MultiByteToWideChar(cp, 0, (LPCSTR) s, size, NULL, 0);
|
||||
@@ -303,11 +319,11 @@ char *hts_convertUCS2StringToUTF8(LPWSTR woutput, int wsize) {
|
||||
char *hts_convertStringCPToUTF8(const char *s, size_t size, UINT cp) {
|
||||
/* Empty string ? */
|
||||
if (size == 0) {
|
||||
return strndup(s, size);
|
||||
return hts_stringMemCopy(s, size);
|
||||
}
|
||||
/* Already UTF-8 ? */
|
||||
if (cp == CP_UTF8 || hts_isStringAscii(s, size)) {
|
||||
return strndup(s, size);
|
||||
return hts_stringMemCopy(s, size);
|
||||
}
|
||||
/* Other (valid) charset */
|
||||
else if (cp != 0) {
|
||||
@@ -330,11 +346,11 @@ char *hts_convertStringCPToUTF8(const char *s, size_t size, UINT cp) {
|
||||
char *hts_convertStringCPFromUTF8(const char *s, size_t size, UINT cp) {
|
||||
/* Empty string ? */
|
||||
if (size == 0) {
|
||||
return strndup(s, size);
|
||||
return hts_stringMemCopy(s, size);
|
||||
}
|
||||
/* Already UTF-8 ? */
|
||||
if (cp == CP_UTF8 || hts_isStringAscii(s, size)) {
|
||||
return strndup(s, size);
|
||||
return hts_stringMemCopy(s, size);
|
||||
}
|
||||
/* Other (valid) charset */
|
||||
else if (cp != 0) {
|
||||
@@ -373,24 +389,71 @@ char *hts_convertStringSystemToUTF8(const char *s, size_t size) {
|
||||
#else
|
||||
|
||||
#include <errno.h>
|
||||
#include <iconv.h>
|
||||
|
||||
static char *hts_convertStringToUTF8_(const char *s, size_t size,
|
||||
#if ( defined(HTS_USEICONV) && ( HTS_USEICONV == 0 ) )
|
||||
#define DISABLE_ICONV
|
||||
#endif
|
||||
|
||||
#ifndef DISABLE_ICONV
|
||||
#include <iconv.h>
|
||||
#else
|
||||
#include "htscodepages.h"
|
||||
|
||||
/* decode from a codepage to UTF-8 */
|
||||
static char* hts_codepageToUTF8(const char *codepage, const char *s) {
|
||||
/* find the given codepage */
|
||||
size_t i;
|
||||
for(i = 0 ; table_mappings[i].name != NULL
|
||||
&& !hts_equalsAlphanum(table_mappings[i].name, codepage) ; i++) ;
|
||||
|
||||
/* found ; decode */
|
||||
if (table_mappings[i].name != NULL) {
|
||||
size_t j, k;
|
||||
char *dest = NULL;
|
||||
size_t capa = 0;
|
||||
#define MAX_UTF 8
|
||||
for(j = 0, k = 0 ; s[j] != '\0' ; j++) {
|
||||
const unsigned char c = (unsigned char) s[j];
|
||||
const hts_UCS4 uc = table_mappings[i].table[c];
|
||||
const size_t max = k + MAX_UTF;
|
||||
if (capa < max) {
|
||||
for(capa = 16 ; capa < max ; capa <<= 1) ;
|
||||
dest = realloc(dest, capa);
|
||||
if (dest == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
if (dest != NULL) {
|
||||
const size_t len = hts_writeUTF8(uc, &dest[k], MAX_UTF);
|
||||
k += len;
|
||||
assertf(k < capa);
|
||||
}
|
||||
}
|
||||
dest[k] = '\0';
|
||||
return dest;
|
||||
#undef MAX_UTF
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
static char *hts_convertStringCharset(const char *s, size_t size,
|
||||
const char *to, const char *from) {
|
||||
/* Empty string ? */
|
||||
if (size == 0) {
|
||||
return strdup("");
|
||||
}
|
||||
/* Already on correct charset ? */
|
||||
if (strcasecmp(from, to) == 0) {
|
||||
return strndup(s, size);
|
||||
if (hts_equalsAlphanum(from, to)) {
|
||||
return hts_stringMemCopy(s, size);
|
||||
}
|
||||
#ifndef DISABLE_ICONV
|
||||
/* Find codepage */
|
||||
else {
|
||||
const iconv_t cp = iconv_open(to, from);
|
||||
|
||||
if (cp != (iconv_t) - 1) {
|
||||
char *inbuf = (char *) s;
|
||||
char *inbuf = (char*) (uintptr_t) s; /* ugly iconv api, sheesh */
|
||||
size_t inbytesleft = size;
|
||||
size_t outbufCapa = 0;
|
||||
char *outbuf = NULL;
|
||||
@@ -443,6 +506,12 @@ static char *hts_convertStringToUTF8_(const char *s, size_t size,
|
||||
return outbuf;
|
||||
}
|
||||
}
|
||||
#else
|
||||
/* Limited codepage decoding support only. */
|
||||
if (hts_isCharsetUTF8(to)) {
|
||||
return hts_codepageToUTF8(from, s);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Error, charset not found! */
|
||||
return NULL;
|
||||
@@ -455,11 +524,11 @@ char *hts_convertStringToUTF8(const char *s, size_t size, const char *charset) {
|
||||
}
|
||||
/* Already UTF-8 ? */
|
||||
if (hts_isCharsetUTF8(charset) || hts_isStringAscii(s, size)) {
|
||||
return strndup(s, size);
|
||||
return hts_stringMemCopy(s, size);
|
||||
}
|
||||
/* Find codepage */
|
||||
else {
|
||||
return hts_convertStringToUTF8_(s, size, "utf-8", charset);
|
||||
return hts_convertStringCharset(s, size, "utf-8", charset);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -470,11 +539,11 @@ char *hts_convertStringFromUTF8(const char *s, size_t size, const char *charset)
|
||||
}
|
||||
/* Already UTF-8 ? */
|
||||
if (hts_isCharsetUTF8(charset) || hts_isStringAscii(s, size)) {
|
||||
return strndup(s, size);
|
||||
return hts_stringMemCopy(s, size);
|
||||
}
|
||||
/* Find codepage */
|
||||
else {
|
||||
return hts_convertStringToUTF8_(s, size, charset, "utf-8");
|
||||
return hts_convertStringCharset(s, size, charset, "utf-8");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -666,43 +735,21 @@ static unsigned int nlz8(unsigned char x) {
|
||||
26 U+200000 U+3FFFFFF 5 111110xx
|
||||
31 U+4000000 U+7FFFFFFF 6 1111110x
|
||||
*/
|
||||
#define ADD_SEQ(UC, BITS, EMITTER) do { \
|
||||
/* number of data bits in first octet */ \
|
||||
const int bits = BITS % 6; \
|
||||
/* shift for first octet */ \
|
||||
const int shift0 = BITS - bits; \
|
||||
/* first octet */ \
|
||||
const unsigned char lead = \
|
||||
/* leading bits */ \
|
||||
( 0xff ^ ( ( 1 << ( bits + 1 ) ) - 1 ) ) \
|
||||
/* encoded bits */ \
|
||||
| ( ( (UC) >> shift0 ) & ( ( 1 << ( bits + 1 ) ) - 1 ) ) \
|
||||
; \
|
||||
/* further bytes are encoding 6 bits */ \
|
||||
const unsigned char second = \
|
||||
0x80 | ( ( (UC) >> ( shift0 - 6 ) ) & 0x3f ); \
|
||||
EMITTER(lead); \
|
||||
EMITTER(second); \
|
||||
if (BITS > 6*2) { \
|
||||
const unsigned char next = \
|
||||
0x80 | ( ( (UC) >> ( shift0 - 6*2 ) ) & 0x3f ); \
|
||||
EMITTER(next); \
|
||||
if (BITS > 6*3) { \
|
||||
const unsigned char next = \
|
||||
0x80 | ( ( (UC) >> ( shift0 - 6*3 ) ) & 0x3f ); \
|
||||
EMITTER(next); \
|
||||
if (BITS > 6*4) { \
|
||||
const unsigned char next = \
|
||||
0x80 | ( ( (UC) >> ( shift0 - 6*4 ) ) & 0x3f ); \
|
||||
EMITTER(next); \
|
||||
if (BITS > 6*5) { \
|
||||
const unsigned char next = \
|
||||
0x80 | ( ( (UC) >> ( shift0 - 6*5 ) ) & 0x3f ); \
|
||||
EMITTER(next); \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
#define ADD_FIRST_SEQ(UC, LEN, EMITTER) do { \
|
||||
/* first octet */ \
|
||||
const unsigned char lead = \
|
||||
/* leading bits: LEN "1" bits */ \
|
||||
~ ( ( 1 << (unsigned) ( 8 - LEN ) ) - 1 ) \
|
||||
/* encoded bits */ \
|
||||
| ( (UC) >> (unsigned) ( ( LEN - 1 ) * 6 ) ); \
|
||||
EMITTER(lead); \
|
||||
} while(0)
|
||||
|
||||
#define ADD_NEXT_SEQ(UC, SHIFT, EMITTER) do { \
|
||||
/* further bytes are encoding 6 bits */ \
|
||||
const unsigned char next = \
|
||||
0x80 | ( ( (UC) >> SHIFT ) & 0x3f ); \
|
||||
EMITTER(next); \
|
||||
} while(0)
|
||||
|
||||
/* UC is a constant. EMITTER is a macro function taking an unsigned int. */
|
||||
@@ -710,15 +757,30 @@ static unsigned int nlz8(unsigned char x) {
|
||||
if ((UC) < 0x80) { \
|
||||
EMITTER(((unsigned char) (UC))); \
|
||||
} else if ((UC) < 0x0800) { \
|
||||
ADD_SEQ(UC, 11, EMITTER); \
|
||||
ADD_FIRST_SEQ(UC, 2, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 0, EMITTER); \
|
||||
} else if ((UC) < 0x10000) { \
|
||||
ADD_SEQ(UC, 16, EMITTER); \
|
||||
ADD_FIRST_SEQ(UC, 3, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 6, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 0, EMITTER); \
|
||||
} else if ((UC) < 0x200000) { \
|
||||
ADD_SEQ(UC, 21, EMITTER); \
|
||||
ADD_FIRST_SEQ(UC, 4, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 12, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 6, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 0, EMITTER); \
|
||||
} else if ((UC) < 0x4000000) { \
|
||||
ADD_SEQ(UC, 26, EMITTER); \
|
||||
ADD_FIRST_SEQ(UC, 5, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 18, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 12, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 6, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 0, EMITTER); \
|
||||
} else { \
|
||||
ADD_SEQ(UC, 31, EMITTER); \
|
||||
ADD_FIRST_SEQ(UC, 6, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 24, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 18, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 12, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 6, EMITTER); \
|
||||
ADD_NEXT_SEQ(UC, 0, EMITTER); \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
@@ -909,31 +971,36 @@ char *hts_convertStringUTF8ToIDNA(const char *s, size_t size) {
|
||||
if (HTS_IS_LEADING_UTF8(c)) {
|
||||
/* commit sequence ? */
|
||||
if (utfSeq != (size_t) -1) {
|
||||
/* unicode character */
|
||||
punycode_uint uc = 0;
|
||||
|
||||
/* Reader: can read bytes up to j */
|
||||
#define RD ( utfSeq < j ? segData[utfSeq++] : -1 )
|
||||
|
||||
/* Writer: upon error, return FFFD (replacement character) */
|
||||
#define WR(C) uc = C != -1 ? (punycode_uint) C : (punycode_uint) 0xfffd
|
||||
#define WR(C) do { \
|
||||
if ((C) != -1) { \
|
||||
/* copy character */ \
|
||||
assertf(segOutputSize < segSize); \
|
||||
segInt[segOutputSize++] = (C); \
|
||||
} \
|
||||
/* In case of error, abort. */ \
|
||||
else { \
|
||||
FREE_BUFFER(); \
|
||||
return NULL; \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
/* Read Unicode character. */
|
||||
/* Read/Write Unicode character. */
|
||||
READ_UNICODE(RD, WR);
|
||||
#undef RD
|
||||
#undef WR
|
||||
|
||||
/* copy character */
|
||||
assert(segOutputSize < segSize);
|
||||
segInt[segOutputSize++] = uc;
|
||||
|
||||
/* not anymore in sequence */
|
||||
utfSeq = (size_t) -1;
|
||||
}
|
||||
|
||||
/* ascii ? */
|
||||
if (c < 0x80) {
|
||||
assert(segOutputSize < segSize);
|
||||
assertf(segOutputSize < segSize);
|
||||
segInt[segOutputSize] = c;
|
||||
if (c != 0) {
|
||||
segOutputSize++;
|
||||
@@ -1134,6 +1201,26 @@ hts_UCS4* hts_convertUTF8StringToUCS4(const char *s, size_t size, size_t *nChars
|
||||
return dest;
|
||||
}
|
||||
|
||||
int hts_isStringUTF8(const char *s, size_t size) {
|
||||
const unsigned char *const data = (const unsigned char*) s;
|
||||
size_t i;
|
||||
|
||||
for(i = 0 ; i < size ; ) {
|
||||
/* Reader: can read bytes up to j */
|
||||
#define RD ( i < size ? data[i++] : -1 )
|
||||
|
||||
/* Writer: upon error, return FFFD (replacement character) */
|
||||
#define WR(C) if ((C) == -1) { return 0; }
|
||||
|
||||
/* Read Unicode character. */
|
||||
READ_UNICODE(RD, WR);
|
||||
#undef RD
|
||||
#undef WR
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
char *hts_convertUCS4StringToUTF8(const hts_UCS4 *s, size_t nChars) {
|
||||
size_t i;
|
||||
char *dest = NULL;
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -86,6 +85,11 @@ extern char *hts_getCharsetFromMeta(const char *html, size_t size);
|
||||
**/
|
||||
extern int hts_isStringAscii(const char *s, size_t size);
|
||||
|
||||
/**
|
||||
* Is the given string an UTF-8 string ?
|
||||
**/
|
||||
extern int hts_isStringUTF8(const char *s, size_t size);
|
||||
|
||||
/**
|
||||
* Is the given charset the UTF-8 charset ?
|
||||
**/
|
||||
|
||||
1772
src/htscodepages.h
Normal file
1772
src/htscodepages.h
Normal file
File diff suppressed because it is too large
Load Diff
128
src/htsconcat.c
Normal file
128
src/htsconcat.c
Normal file
@@ -0,0 +1,128 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) 1998-2013 Xavier Roche and other contributors
|
||||
|
||||
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/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
- We hereby ask people using this source NOT to use it in purpose of grabbing
|
||||
emails addresses, or collecting any other private information on persons.
|
||||
This would disgrace our work, and spoil the many hours we spent on it.
|
||||
|
||||
Please visit our Website: http://www.httrack.com
|
||||
*/
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/* File: Subroutines */
|
||||
/* Author: Xavier Roche */
|
||||
/* ------------------------------------------------------------ */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "httrack.h"
|
||||
#include "httrack-library.h"
|
||||
|
||||
// concat, concatène deux chaines et renvoi le résultat
|
||||
// permet d'alléger grandement le code
|
||||
#undef concat
|
||||
HTSEXT_API char *concat(char *catbuff, size_t size, const char *a, const char *b) {
|
||||
size_t max = 0;
|
||||
|
||||
RUNTIME_TIME_CHECK_SIZE(size);
|
||||
|
||||
catbuff[0] = '\0';
|
||||
if (a != NULL && a[0] != '\0') {
|
||||
max += strlen(a);
|
||||
if (max + 1 >= size) {
|
||||
return catbuff;
|
||||
}
|
||||
strcat(catbuff, a);
|
||||
}
|
||||
if (b != NULL && b[0] != '\0') {
|
||||
max += strlen(b);
|
||||
if (max + 1 >= size) {
|
||||
return catbuff;
|
||||
}
|
||||
strcat(catbuff, b);
|
||||
}
|
||||
return catbuff;
|
||||
}
|
||||
|
||||
// conversion fichier / -> antislash
|
||||
static char *__fconv(char *a) {
|
||||
#if HTS_DOSNAME
|
||||
int i;
|
||||
|
||||
for(i = 0; a[i] != 0; i++)
|
||||
if (a[i] == '/') // Unix-to-DOS style
|
||||
a[i] = '\\';
|
||||
#endif
|
||||
return a;
|
||||
}
|
||||
|
||||
#undef fconcat
|
||||
#undef concat
|
||||
HTSEXT_API char *fconcat(char *catbuff, size_t size, const char *a, const char *b) {
|
||||
RUNTIME_TIME_CHECK_SIZE(size);
|
||||
return __fconv(concat(catbuff, size, a, b));
|
||||
}
|
||||
|
||||
#undef fconv
|
||||
HTSEXT_API char *fconv(char *catbuff, size_t size, const char *a) {
|
||||
RUNTIME_TIME_CHECK_SIZE(size);
|
||||
return __fconv(concat(catbuff, size, a, ""));
|
||||
}
|
||||
|
||||
/* / et \\ en / */
|
||||
static char *__fslash(char *a) {
|
||||
int i;
|
||||
|
||||
for(i = 0; a[i] != 0; i++)
|
||||
if (a[i] == '\\') // convertir
|
||||
a[i] = '/';
|
||||
return a;
|
||||
}
|
||||
|
||||
#undef fslash
|
||||
char *fslash(char *catbuff, size_t size, const char *a) {
|
||||
RUNTIME_TIME_CHECK_SIZE(size);
|
||||
return __fslash(concat(catbuff, size, a, NULL));
|
||||
}
|
||||
|
||||
// extension : html,gif..
|
||||
HTSEXT_API const char *get_ext(char *catbuff, size_t size, const char *fil) {
|
||||
size_t i, last;
|
||||
|
||||
RUNTIME_TIME_CHECK_SIZE(size);
|
||||
|
||||
for(i = 0, last = 0 ; fil[i] != '\0' && fil[i] != '?' ; i++) {
|
||||
if (fil[i] == '.') {
|
||||
last = i + 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (last != 0 && i > last) {
|
||||
const size_t len = i - last;
|
||||
if (len < size) {
|
||||
catbuff[0] = '\0';
|
||||
strncat(catbuff, &fil[last], size);
|
||||
return catbuff;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -52,9 +51,6 @@ Please visit our Website: http://www.httrack.com
|
||||
// nom par défaut pour / en ftp
|
||||
#define DEFAULT_FTP "index.txt"
|
||||
|
||||
// nom par défaut pour / en mms
|
||||
#define DEFAULT_MMS "default.avi"
|
||||
|
||||
// extension par défaut pour fichiers n'en ayant pas
|
||||
#define DEFAULT_EXT ".html"
|
||||
#define DEFAULT_EXT_SHORT ".htm"
|
||||
|
||||
1022
src/htscore.c
1022
src/htscore.c
File diff suppressed because it is too large
Load Diff
207
src/htscore.h
207
src/htscore.h
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -43,12 +42,8 @@ Please visit our Website: http://www.httrack.com
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#ifdef _WIN32
|
||||
#ifndef _WIN32_WCE
|
||||
#include <conio.h>
|
||||
#endif
|
||||
#ifndef _WIN32_WCE
|
||||
#include <direct.h>
|
||||
#endif
|
||||
#else
|
||||
#ifndef _WIN32
|
||||
#include <unistd.h>
|
||||
@@ -128,86 +123,30 @@ typedef struct filecreate_params filecreate_params;
|
||||
|
||||
// gestion hashage
|
||||
#include "htshash.h"
|
||||
#include "htsinthash.h"
|
||||
#include "coucal.h"
|
||||
|
||||
#include "htsdefines.h"
|
||||
|
||||
#include "hts-indextmpl.h"
|
||||
|
||||
// structure d'un lien
|
||||
#ifndef HTS_DEF_FWSTRUCT_lien_url
|
||||
#define HTS_DEF_FWSTRUCT_lien_url
|
||||
typedef struct lien_url lien_url;
|
||||
// adr, fil
|
||||
#ifndef HTS_DEF_FWSTRUCT_lien_adrfil
|
||||
#define HTS_DEF_FWSTRUCT_lien_adrfil
|
||||
typedef struct lien_adrfil lien_adrfil;
|
||||
#endif
|
||||
struct lien_url {
|
||||
char firstblock; // flag 1=premier malloc
|
||||
char link_import; // lien importé à la suite d'un moved - ne pas appliquer les règles classiques up/down
|
||||
int depth; // profondeur autorisée lien ; >0 forte 0=faible
|
||||
int pass2; // traiter après les autres, seconde passe. si == -1, lien traité en background
|
||||
int premier; // pointeur sur le premier lien qui a donné lieu aux autres liens du domaine
|
||||
int precedent; // pointeur sur le lien qui a donné lieu à ce lien précis
|
||||
//int moved; // pointeur sur moved
|
||||
int retry; // nombre de retry restants
|
||||
int testmode; // mode test uniquement, envoyer juste un head!
|
||||
char *adr; // adresse
|
||||
char *fil; // nom du fichier distant
|
||||
char *sav; // nom à sauver sur disque (avec chemin éventuel)
|
||||
char *cod; // chemin codebase éventuel si classe java
|
||||
char *former_adr; // adresse initiale (avant éventuel moved), peut être nulle
|
||||
char *former_fil; // nom du fichier distant initial (avant éventuel moved), peut être nul
|
||||
// pour optimisation:
|
||||
int hash_next[3]; // prochain lien avec même valeur hash
|
||||
struct lien_adrfil {
|
||||
char adr[HTS_URLMAXSIZE * 2]; // adresse
|
||||
char fil[HTS_URLMAXSIZE * 2]; // nom du fichier distant
|
||||
};
|
||||
|
||||
// chargement de fichiers en 'arrière plan'
|
||||
#ifndef HTS_DEF_FWSTRUCT_lien_back
|
||||
#define HTS_DEF_FWSTRUCT_lien_back
|
||||
typedef struct lien_back lien_back;
|
||||
#endif
|
||||
struct lien_back {
|
||||
#if DEBUG_CHECKINT
|
||||
char magic;
|
||||
#endif
|
||||
char url_adr[HTS_URLMAXSIZE * 2]; // adresse
|
||||
char url_fil[HTS_URLMAXSIZE * 2]; // nom du fichier distant
|
||||
char url_sav[HTS_URLMAXSIZE * 2]; // nom à sauver sur disque (avec chemin éventuel)
|
||||
char referer_adr[HTS_URLMAXSIZE * 2]; // adresse host page referer
|
||||
char referer_fil[HTS_URLMAXSIZE * 2]; // fichier page referer
|
||||
char location_buffer[HTS_URLMAXSIZE * 2]; // "location" en cas de "moved" (302,..)
|
||||
char *tmpfile; // nom à sauver temporairement (compressé)
|
||||
char tmpfile_buffer[HTS_URLMAXSIZE * 2]; // buffer pour le nom à sauver temporairement
|
||||
char send_too[1024]; // données à envoyer en même temps que le header
|
||||
int status; // status (-1=non utilisé, 0: prêt, >0: opération en cours)
|
||||
int locked; // locked (to be used soon)
|
||||
int testmode; // mode de test
|
||||
int timeout; // gérer des timeouts? (!=0 : nombre de secondes)
|
||||
TStamp timeout_refresh; // si oui, time refresh
|
||||
int rateout; // timeout refresh? (!=0 : taux minimum toléré en octets/s)
|
||||
TStamp rateout_time; // si oui, date de départ
|
||||
LLint maxfile_nonhtml; // taille max d'un fichier non html
|
||||
LLint maxfile_html; // idem pour un ficheir html
|
||||
htsblk r; // structure htsblk de chaque objet en background
|
||||
int is_update; // mode update
|
||||
int head_request; // requète HEAD?
|
||||
LLint range_req_size; // range utilisé
|
||||
TStamp ka_time_start; // refresh time for KA
|
||||
//
|
||||
int http11; // L'en tête doit être signé HTTP/1.1 et non HTTP/1.0
|
||||
int is_chunk; // chunk?
|
||||
char *chunk_adr; // adresse chunk en cours de chargement
|
||||
LLint chunk_size; // taille chunk en cours de chargement
|
||||
LLint chunk_blocksize; // taille data declaree par le chunk
|
||||
LLint compressed_size; // taille compressés (stats uniquement)
|
||||
//
|
||||
//int links_index; // to access liens[links_index]
|
||||
//
|
||||
char info[256]; // éventuel status pour le ftp
|
||||
int stop_ftp; // flag stop pour ftp
|
||||
int finalized; // finalized (optim memory)
|
||||
int early_add; // was added before link heap saw it
|
||||
#if DEBUG_CHECKINT
|
||||
char magic2;
|
||||
// adr, fil, save
|
||||
#ifndef HTS_DEF_FWSTRUCT_lien_adrfilsave
|
||||
#define HTS_DEF_FWSTRUCT_lien_adrfilsave
|
||||
typedef struct lien_adrfilsave lien_adrfilsave;
|
||||
#endif
|
||||
struct lien_adrfilsave {
|
||||
lien_adrfil af;
|
||||
char save[HTS_URLMAXSIZE * 2]; // nom à sauver sur disque (avec chemin éventuel)
|
||||
};
|
||||
|
||||
#ifndef HTS_DEF_FWSTRUCT_struct_back
|
||||
@@ -217,7 +156,7 @@ typedef struct struct_back struct_back;
|
||||
struct struct_back {
|
||||
lien_back *lnk;
|
||||
int count;
|
||||
inthash ready;
|
||||
coucal ready;
|
||||
LLint ready_size_bytes;
|
||||
};
|
||||
|
||||
@@ -239,9 +178,9 @@ struct cache_back {
|
||||
FILE *txt; // liste des fichiers (info)
|
||||
char lastmodified[256];
|
||||
// HASH
|
||||
inthash hashtable;
|
||||
coucal hashtable;
|
||||
// HASH for tests (naming subsystem)
|
||||
inthash cached_tests;
|
||||
coucal cached_tests;
|
||||
// fichiers log optionnels
|
||||
FILE *log;
|
||||
FILE *errlog;
|
||||
@@ -261,9 +200,19 @@ struct cache_back {
|
||||
typedef struct hash_struct hash_struct;
|
||||
#endif
|
||||
struct hash_struct {
|
||||
lien_url **liens; // pointeur sur liens
|
||||
int max_lien; // indice le plus grand rencontré
|
||||
int hash[3][HTS_HASH_SIZE]; // tables pour sav/adr-fil/former_adr-former_fil
|
||||
/* Links big array reference */
|
||||
const lien_url *const*const*liens;
|
||||
/* Savename (case insensitive ; lowercased) */
|
||||
coucal sav;
|
||||
/* Address and path */
|
||||
coucal adrfil;
|
||||
/* Former address and path */
|
||||
coucal former_adrfil;
|
||||
/** Buffers **/
|
||||
int normalized;
|
||||
char normfil[HTS_URLMAXSIZE * 2];
|
||||
char normfil2[HTS_URLMAXSIZE * 2];
|
||||
char catbuff[CATBUFF_SIZE];
|
||||
};
|
||||
|
||||
#ifndef HTS_DEF_FWSTRUCT_filecreate_params
|
||||
@@ -275,6 +224,20 @@ struct filecreate_params {
|
||||
char path[HTS_URLMAXSIZE * 2];
|
||||
};
|
||||
|
||||
/* Access macros. */
|
||||
#define heap(N) (opt->liens[N])
|
||||
#define heap_top_index() (opt->lien_tot - 1)
|
||||
#define heap_top() (heap(heap_top_index()))
|
||||
#define urladr() (heap(ptr)->adr)
|
||||
#define urlfil() (heap(ptr)->fil)
|
||||
#define savename() (heap(ptr)->sav)
|
||||
#define parenturladr() (heap(heap(ptr)->precedent)->adr)
|
||||
#define parenturlfil() (heap(heap(ptr)->precedent)->fil)
|
||||
#define parentsavename() (heap(heap(ptr)->precedent)->sav)
|
||||
#define relativeurladr() ((!parent_relative)?urladr():parenturladr())
|
||||
#define relativeurlfil() ((!parent_relative)?urlfil():parenturlfil())
|
||||
#define relativesavename() ((!parent_relative)?savename():parentsavename())
|
||||
|
||||
/* Library internal definictions */
|
||||
#ifdef HTS_INTERNAL_BYTECODE
|
||||
|
||||
@@ -295,31 +258,25 @@ HTS_STATIC int cache_readable(cache_back * cache) {
|
||||
/* Library internal definictions */
|
||||
#ifdef HTS_INTERNAL_BYTECODE
|
||||
|
||||
//
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API int hts_is_parsing(httrackp * opt, int flag);
|
||||
HTSEXT_API int hts_is_testing(httrackp * opt);
|
||||
HTSEXT_API int hts_addurl(httrackp * opt, char **url);
|
||||
HTSEXT_API int hts_resetaddurl(httrackp * opt);
|
||||
HTSEXT_API int copy_htsopt(const httrackp * from, httrackp * to);
|
||||
HTSEXT_API char *hts_errmsg(httrackp * opt);
|
||||
HTSEXT_API int hts_setpause(httrackp * opt, int);
|
||||
|
||||
//
|
||||
HTSEXT_API int hts_is_exiting(httrackp * opt);
|
||||
HTSEXT_API int hts_request_stop(httrackp * opt, int force);
|
||||
|
||||
//
|
||||
HTSEXT_API int hts_cancel_file_push(httrackp * opt, const char *url);
|
||||
HTSEXT_API void hts_cancel_test(httrackp * opt);
|
||||
HTSEXT_API void hts_cancel_parsing(httrackp * opt);
|
||||
#endif
|
||||
|
||||
char *hts_cancel_file_pop(httrackp * opt);
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// add a link on the heap
|
||||
int hts_record_link(httrackp * opt,
|
||||
const char *address, const char *file, const char *save,
|
||||
const char *ref_address, const char *ref_file,
|
||||
const char *codebase);
|
||||
|
||||
// index of the latest added link
|
||||
size_t hts_record_link_latest(httrackp *opt);
|
||||
|
||||
// invalidate an entry
|
||||
void hts_invalidate_link(httrackp * opt, int lpos);
|
||||
|
||||
// wipe all records
|
||||
void hts_record_init(httrackp *opt);
|
||||
void hts_record_free(httrackp *opt);
|
||||
|
||||
//int httpmirror(char* url,int level,httrackp opt);
|
||||
int httpmirror(char *url1, httrackp * opt);
|
||||
@@ -329,8 +286,7 @@ int filesave(httrackp * opt, const char *adr, int len, const char *s,
|
||||
char *hts_cancel_file_pop(httrackp * opt);
|
||||
int check_fatal_io_errno(void);
|
||||
int engine_stats(void);
|
||||
void host_ban(httrackp * opt, lien_url ** liens, int ptr, int lien_tot,
|
||||
struct_back * sback, char *host);
|
||||
void host_ban(httrackp * opt, int ptr, struct_back * sback, const char *host);
|
||||
FILE *filecreate(filenote_strc * strct, const char *s);
|
||||
FILE *fileappend(filenote_strc * strct, const char *s);
|
||||
int filecreateempty(filenote_strc * strct, const char *filename);
|
||||
@@ -342,19 +298,14 @@ void usercommand(httrackp * opt, int exe, const char *cmd, const char *file,
|
||||
void usercommand_exe(const char *cmd, const char *file);
|
||||
int filters_init(char ***ptrfilters, int maxfilter, int filterinc);
|
||||
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API int structcheck(const char *path);
|
||||
HTSEXT_API int structcheck_utf8(const char *path);
|
||||
HTSEXT_API int dir_exists(const char *path);
|
||||
#endif
|
||||
int fspc(httrackp * opt, FILE * fp, const char *type);
|
||||
char *next_token(char *p, int flag);
|
||||
|
||||
//
|
||||
char *readfile(char *fil);
|
||||
char *readfile2(char *fil, LLint * size);
|
||||
char *readfile_utf8(char *fil);
|
||||
char *readfile_or(char *fil, char *defaultdata);
|
||||
char *readfile(const char *fil);
|
||||
char *readfile2(const char *fil, LLint * size);
|
||||
char *readfile_utf8(const char *fil);
|
||||
char *readfile_or(const char *fil, const char *defaultdata);
|
||||
|
||||
#if 0
|
||||
void check_rate(TStamp stat_timestart, int maxrate);
|
||||
@@ -368,18 +319,11 @@ int liens_record(char *adr, char *fil, char *save, char *former_adr,
|
||||
int back_pluggable_sockets(struct_back * sback, httrackp * opt);
|
||||
int back_pluggable_sockets_strict(struct_back * sback, httrackp * opt);
|
||||
int back_fill(struct_back * sback, httrackp * opt, cache_back * cache,
|
||||
lien_url ** liens, int ptr, int numero_passe, int lien_tot);
|
||||
int backlinks_done(struct_back * sback, lien_url ** liens, int lien_tot,
|
||||
int ptr);
|
||||
int ptr, int numero_passe);
|
||||
int backlinks_done(const struct_back * sback, lien_url ** liens,
|
||||
int lien_tot, int ptr);
|
||||
int back_fillmax(struct_back * sback, httrackp * opt, cache_back * cache,
|
||||
lien_url ** liens, int ptr, int numero_passe, int lien_tot);
|
||||
|
||||
// cancel file
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API int hts_cancel_file_push(httrackp * opt, const char *url);
|
||||
HTSEXT_API void hts_cancel_test(httrackp * opt);
|
||||
HTSEXT_API void hts_cancel_parsing(httrackp * opt);
|
||||
#endif
|
||||
int ptr, int numero_passe);
|
||||
|
||||
int ask_continue(httrackp * opt);
|
||||
int nombre_digit(int n);
|
||||
@@ -403,7 +347,6 @@ int htsAddLink(htsmoduleStruct * str, char *link);
|
||||
|
||||
// Void
|
||||
void voidf(void);
|
||||
|
||||
#define HTS_TOPINDEX "TOP_INDEX_HTTRACK"
|
||||
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -44,11 +43,6 @@ Please visit our Website: http://www.httrack.com
|
||||
|
||||
/* Library internal definictions */
|
||||
#ifdef HTS_INTERNAL_BYTECODE
|
||||
// Main, récupère les paramètres et appelle le robot
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API int hts_main(int argc, char **argv);
|
||||
HTSEXT_API int hts_main2(int argc, char **argv, httrackp * opt);
|
||||
#endif
|
||||
|
||||
int cmdl_opt(char *s);
|
||||
int check_path(String * s, char *defaultname);
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -232,8 +231,15 @@ struct t_hts_callback_ref {
|
||||
size_t offset;
|
||||
};
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern const t_hts_htmlcheck_callbacks default_callbacks;
|
||||
extern const t_hts_callback_ref default_callbacks_ref[];
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#define HT_PRINT(A) strcatbuff(opt->state.HTbuff,A);
|
||||
#define HT_REQUEST_START opt->state.HTbuff[0]='\0';
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -31,10 +30,9 @@ Please visit our Website: http://www.httrack.com
|
||||
/* Author: Xavier Roche */
|
||||
/* ------------------------------------------------------------ */
|
||||
|
||||
#include <assert.h>
|
||||
|
||||
#include "htscharset.h"
|
||||
#include "htsencoding.h"
|
||||
#include "htssafe.h"
|
||||
|
||||
/* static int decode_entity(const unsigned int hash, const size_t len);
|
||||
*/
|
||||
@@ -68,7 +66,7 @@ int hts_unescapeEntitiesWithCharset(const char *src, char *dest, const size_t ma
|
||||
int hex;
|
||||
unsigned int hash;
|
||||
|
||||
assert(max != 0);
|
||||
assertf(max != 0);
|
||||
for(i = 0, j = 0, ampStart = (size_t) -1, ampStartDest = 0,
|
||||
uc = -1, hex = 0, hash = 0 ; src[i] != '\0' ; i++) {
|
||||
/* start of entity */
|
||||
@@ -204,12 +202,14 @@ int hts_unescapeEntities(const char *src, char *dest, const size_t max) {
|
||||
return hts_unescapeEntitiesWithCharset(src, dest, max, "UTF-8");
|
||||
}
|
||||
|
||||
int hts_unescapeUrl(const char *src, char *dest, const size_t max) {
|
||||
int hts_unescapeUrlSpecial(const char *src, char *dest, const size_t max,
|
||||
const int flags) {
|
||||
size_t i, j, lastI, lastJ, k, utfBufferJ, utfBufferSize;
|
||||
int seenQuery = 0;
|
||||
char utfBuffer[32];
|
||||
|
||||
assert(src != dest);
|
||||
assert(max != 0);
|
||||
assertf(src != dest);
|
||||
assertf(max != 0);
|
||||
|
||||
for(i = 0, j = 0, k = 0, utfBufferJ = 0, utfBufferSize = 0,
|
||||
lastI = (size_t) -1, lastJ = (size_t) -1
|
||||
@@ -218,7 +218,7 @@ int hts_unescapeUrl(const char *src, char *dest, const size_t max) {
|
||||
unsigned char cUtf = (unsigned char) c;
|
||||
|
||||
/* Replacement for ' ' */
|
||||
if (c == '+') {
|
||||
if (c == '+' && seenQuery) {
|
||||
c = cUtf = ' ';
|
||||
k = 0; /* cancel any sequence */
|
||||
}
|
||||
@@ -238,7 +238,10 @@ int hts_unescapeUrl(const char *src, char *dest, const size_t max) {
|
||||
cUtf = (unsigned char) ec;
|
||||
|
||||
/* Shortcut for ASCII (do not unescape non-printable) */
|
||||
if ((unsigned char) ec < 0x80 && (unsigned char) ec >= 32) {
|
||||
if (
|
||||
(cUtf < 0x80 && cUtf >= 32)
|
||||
&& ( flags & UNESCAPE_URL_NO_ASCII ) == 0
|
||||
) {
|
||||
/* Rollback new write position and character */
|
||||
j = lastJ;
|
||||
c = ec;
|
||||
@@ -250,6 +253,9 @@ int hts_unescapeUrl(const char *src, char *dest, const size_t max) {
|
||||
/* ASCII (and not in %xx) */
|
||||
else if (cUtf < 0x80 && i != lastI + 1) {
|
||||
k = 0; /* cancel any sequence */
|
||||
if (c == '?' && !seenQuery) {
|
||||
seenQuery = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* UTF-8 sequence in progress (either a raw or a %xx character) */
|
||||
@@ -264,7 +270,7 @@ int hts_unescapeUrl(const char *src, char *dest, const size_t max) {
|
||||
/* First character */
|
||||
if (k == 0) {
|
||||
/* New destination-centric offset of utf-8 buffer beginning */
|
||||
if (i == lastI + 2) { /* just read a %xx */
|
||||
if (lastI != (size_t) -1 && i == lastI + 2) { /* just read a %xx */
|
||||
utfBufferJ = lastJ; /* position of % */
|
||||
} else {
|
||||
utfBufferJ = j; /* current position otherwise */
|
||||
@@ -312,3 +318,7 @@ int hts_unescapeUrl(const char *src, char *dest, const size_t max) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hts_unescapeUrl(const char *src, char *dest, const size_t max) {
|
||||
return hts_unescapeUrlSpecial(src, dest, max, 0);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -41,6 +40,14 @@ Please visit our Website: http://www.httrack.com
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Flags for hts_unescapeUrlSpecial().
|
||||
**/
|
||||
typedef enum unescapeFlags {
|
||||
/** Do not decode ASCII. **/
|
||||
UNESCAPE_URL_NO_ASCII = 1
|
||||
} unescapeFlags;
|
||||
|
||||
/**
|
||||
* Unescape HTML entities (as per HTML 4.0 Specification)
|
||||
* and replace them in-place by their UTF-8 equivalents.
|
||||
@@ -71,4 +78,15 @@ extern int hts_unescapeEntitiesWithCharset(const char *src,
|
||||
**/
|
||||
extern int hts_unescapeUrl(const char *src, char *dest, const size_t max);
|
||||
|
||||
/**
|
||||
* Unescape an URL-encoded string. The implicit charset is UTF-8.
|
||||
* In case of UTF-8 decoding error inside URL-encoded characters,
|
||||
* the characters are left undecoded.
|
||||
* "flags" is a mask composed of UNESCAPE_URL_XXX constants.
|
||||
* Note: source and destination MUST NOT be the same.
|
||||
* Returns 0 upon success, -1 upon overflow or error.
|
||||
**/
|
||||
extern int hts_unescapeUrlSpecial(const char *src, char *dest, const size_t max,
|
||||
const int flags);
|
||||
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -56,7 +56,7 @@ EOF
|
||||
i=$[${i}+1]
|
||||
done
|
||||
echo -e " /* $A */"
|
||||
echo -e " case ${hash}:"
|
||||
echo -e " case ${hash}u:"
|
||||
echo -e " if (len == ${#ent} /* && strncmp(ent, \"${ent}\") == 0 */) {"
|
||||
echo -e " return ${code};"
|
||||
echo -e " }"
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -55,7 +54,7 @@ Please visit our Website: http://www.httrack.com
|
||||
// optionnel: taille à contrôller (ou numéro, etc) en pointeur
|
||||
// (en de détection de *size, la taille limite est écrite par dessus *size)
|
||||
// exemple: +-*.gif*[<5] == supprimer GIF si <5KB
|
||||
int fa_strjoker(int type, char **filters, int nfil, char *nom, LLint * size,
|
||||
int fa_strjoker(int type, char **filters, int nfil, const char *nom, LLint * size,
|
||||
int *size_flag, int *depth) {
|
||||
int verdict = 0; // on sait pas
|
||||
int i;
|
||||
@@ -102,7 +101,7 @@ int fa_strjoker(int type, char **filters, int nfil, char *nom, LLint * size,
|
||||
// cet algo est 'un peu' récursif mais ne consomme pas trop de tm
|
||||
// * = toute lettre
|
||||
// --?-- : spécifique à HTTrack et aux ?
|
||||
HTS_INLINE char *strjoker(char *chaine, char *joker, LLint * size,
|
||||
HTS_INLINE const char *strjoker(const char *chaine, const char *joker, LLint * size,
|
||||
int *size_flag) {
|
||||
//int err=0;
|
||||
if (strnotempty(joker) == 0) { // fin de chaine joker
|
||||
@@ -263,7 +262,7 @@ HTS_INLINE char *strjoker(char *chaine, char *joker, LLint * size,
|
||||
|
||||
{
|
||||
int i, max;
|
||||
char *adr;
|
||||
const char *adr;
|
||||
|
||||
// la chaine doit se terminer exactement
|
||||
if (cut) {
|
||||
@@ -336,8 +335,8 @@ HTS_INLINE char *strjoker(char *chaine, char *joker, LLint * size,
|
||||
// exemple: find dans un texte de strcpybuff(*[A-Z,a-z],"*[0-9]"); va rechercher la première occurence
|
||||
// d'un strcpy sur une variable ayant un nom en lettres et copiant une chaine de chiffres
|
||||
// ATTENTION!! Eviter les jokers en début, où gare au temps machine!
|
||||
char *strjokerfind(char *chaine, char *joker) {
|
||||
char *adr;
|
||||
const char *strjokerfind(const char *chaine, const char *joker) {
|
||||
const char *adr;
|
||||
|
||||
while(*chaine) {
|
||||
if ((adr = strjoker(chaine, joker, NULL, NULL))) { // ok trouvé
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -40,11 +39,11 @@ Please visit our Website: http://www.httrack.com
|
||||
|
||||
#include "htsbase.h"
|
||||
|
||||
int fa_strjoker(int type, char **filters, int nfil, char *nom, LLint * size,
|
||||
int fa_strjoker(int type, char **filters, int nfil, const char *nom, LLint * size,
|
||||
int *size_flag, int *depth);
|
||||
HTS_INLINE char *strjoker(char *chaine, char *joker, LLint * size,
|
||||
HTS_INLINE const char *strjoker(const char *chaine, const char *joker, LLint * size,
|
||||
int *size_flag);
|
||||
char *strjokerfind(char *chaine, char *joker);
|
||||
const char *strjokerfind(const char *chaine, const char *joker);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
103
src/htsftp.c
103
src/htsftp.c
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -50,11 +49,9 @@ Please visit our Website: http://www.httrack.com
|
||||
#ifdef _WIN32
|
||||
#ifndef __cplusplus
|
||||
// DOS
|
||||
#ifndef _WIN32_WCE
|
||||
#include <process.h> /* _beginthread, _endthread */
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// ftp mode passif
|
||||
// #if HTS_INET6==0
|
||||
@@ -145,21 +142,17 @@ int run_launch_ftp(FTPDownloadStruct * pStruct) {
|
||||
#endif
|
||||
char BIGSTK adr_ip[1024];
|
||||
char *adr, *real_adr;
|
||||
char *ftp_filename = "";
|
||||
const char *ftp_filename = "";
|
||||
int timeout = 300; // timeout
|
||||
int timeout_onfly = 8; // attente réponse supplémentaire
|
||||
int transfer_list = 0; // directory
|
||||
int rest_understood = 0; // rest command understood
|
||||
t_fullhostent fullhostent_buffer; // buffer pour resolver
|
||||
|
||||
//
|
||||
T_SOC soc_ctl = INVALID_SOCKET;
|
||||
T_SOC soc_servdat = INVALID_SOCKET;
|
||||
T_SOC soc_dat = INVALID_SOCKET;
|
||||
|
||||
//
|
||||
SOCaddr server_data;
|
||||
int server_data_size = sizeof(server_data);
|
||||
|
||||
//
|
||||
line_retr[0] = adr_ip[0] = '\0';
|
||||
@@ -220,7 +213,7 @@ int run_launch_ftp(FTPDownloadStruct * pStruct) {
|
||||
ftp_filename = a;
|
||||
if (strnotempty(a)) {
|
||||
char catbuff[CATBUFF_SIZE];
|
||||
char *ua = unescape_http(catbuff, a);
|
||||
char *ua = unescape_http(catbuff, sizeof(catbuff), a);
|
||||
int len_a = (int) strlen(ua);
|
||||
|
||||
if (len_a > 0 && ua[len_a - 1] == '/') { /* obviously a directory listing */
|
||||
@@ -252,8 +245,6 @@ int run_launch_ftp(FTPDownloadStruct * pStruct) {
|
||||
// connexion
|
||||
{
|
||||
SOCaddr server;
|
||||
int server_size = sizeof(server);
|
||||
t_hostent *hp;
|
||||
char *a;
|
||||
char _adr[256];
|
||||
const char *error = "unknown error";
|
||||
@@ -273,8 +264,7 @@ int run_launch_ftp(FTPDownloadStruct * pStruct) {
|
||||
|
||||
// récupérer adresse résolue
|
||||
strcpybuff(back->info, "host name");
|
||||
hp = hts_gethostbyname2(opt, _adr, &fullhostent_buffer, &error);
|
||||
if (hp == NULL) {
|
||||
if (hts_dns_resolve2(opt, _adr, &server, &error) == NULL) {
|
||||
snprintf(back->r.msg, sizeof(back->r.msg),
|
||||
"Unable to get server's address: %s", error);
|
||||
// back->status=STATUS_FTP_READY; // fini
|
||||
@@ -283,12 +273,8 @@ int run_launch_ftp(FTPDownloadStruct * pStruct) {
|
||||
}
|
||||
_CHECK_HALT_FTP;
|
||||
|
||||
// copie adresse
|
||||
SOCaddr_copyaddr(server, server_size, hp->h_addr_list[0], hp->h_length);
|
||||
// copie adresse pour cnx data
|
||||
SOCaddr_copyaddr(server_data, server_data_size, hp->h_addr_list[0],
|
||||
hp->h_length);
|
||||
// memcpy(&server.sin_addr, hp->h_addr, hp->h_length);
|
||||
SOCaddr_copy_SOCaddr(server_data, server);
|
||||
|
||||
// créer ("attachement") une socket (point d'accès) internet,en flot
|
||||
soc_ctl = (T_SOC) socket(SOCaddr_sinfamily(server), SOCK_STREAM, 0);
|
||||
@@ -305,12 +291,7 @@ int run_launch_ftp(FTPDownloadStruct * pStruct) {
|
||||
// connexion (bloquante, on est en thread)
|
||||
strcpybuff(back->info, "connect");
|
||||
|
||||
#ifdef _WIN32
|
||||
if (connect(soc_ctl, (const struct sockaddr FAR *) &server, server_size) !=
|
||||
0) {
|
||||
#else
|
||||
if (connect(soc_ctl, (struct sockaddr *) &server, server_size) == -1) {
|
||||
#endif
|
||||
if (connect(soc_ctl, &SOCaddr_sockaddr(server), SOCaddr_size(server)) != 0) {
|
||||
strcpybuff(back->r.msg, "Unable to connect to the server");
|
||||
// back->status=STATUS_FTP_READY; // fini
|
||||
back->r.statuscode = STATUSCODE_INVALID;
|
||||
@@ -422,7 +403,7 @@ int run_launch_ftp(FTPDownloadStruct * pStruct) {
|
||||
// Pré-REST
|
||||
//
|
||||
#if FTP_PASV
|
||||
if (SOCaddr_getproto(server, server_size) == '1') {
|
||||
if (SOCaddr_getproto(server) == '1') {
|
||||
strcpybuff(back->info, "pasv");
|
||||
snprintf(line, sizeof(line), "PASV");
|
||||
send_line(soc_ctl, line);
|
||||
@@ -531,7 +512,7 @@ int run_launch_ftp(FTPDownloadStruct * pStruct) {
|
||||
if (back->r.statuscode != -1) {
|
||||
if (!transfer_list) {
|
||||
char catbuff[CATBUFF_SIZE];
|
||||
char *ua = unescape_http(catbuff, ftp_filename);
|
||||
char *ua = unescape_http(catbuff, sizeof(catbuff), ftp_filename);
|
||||
|
||||
if ((strchr(ua, ' '))
|
||||
|| (strchr(ua, '\"'))
|
||||
@@ -584,7 +565,6 @@ int run_launch_ftp(FTPDownloadStruct * pStruct) {
|
||||
if (port_pasv) {
|
||||
SOCaddr server;
|
||||
int server_size = sizeof(server);
|
||||
t_hostent *hp;
|
||||
const char *error = "unknown error";
|
||||
|
||||
// effacer structure
|
||||
@@ -595,16 +575,9 @@ int run_launch_ftp(FTPDownloadStruct * pStruct) {
|
||||
|
||||
// résoudre
|
||||
if (adr_ip[0]) {
|
||||
hp = hts_gethostbyname2(opt, adr_ip, &fullhostent_buffer, &error);
|
||||
if (hp) {
|
||||
SOCaddr_copyaddr(server, server_size, hp->h_addr_list[0],
|
||||
hp->h_length);
|
||||
} else {
|
||||
server_size = 0;
|
||||
}
|
||||
hts_dns_resolve2(opt, adr_ip, &server, &error);
|
||||
} else {
|
||||
memcpy(&server, &server_data, sizeof(server_data));
|
||||
server_size = server_data_size;
|
||||
SOCaddr_copy_SOCaddr(server, server_data);
|
||||
}
|
||||
|
||||
// infos
|
||||
@@ -618,15 +591,7 @@ int run_launch_ftp(FTPDownloadStruct * pStruct) {
|
||||
if (soc_dat != INVALID_SOCKET) {
|
||||
// structure: connexion au domaine internet, port 80 (ou autre)
|
||||
SOCaddr_initport(server, port_pasv);
|
||||
// server.sin_port = htons((unsigned short int) port_pasv);
|
||||
#ifdef _WIN32
|
||||
if (connect
|
||||
(soc_dat, (const struct sockaddr FAR *) &server,
|
||||
server_size) == 0) {
|
||||
#else
|
||||
if (connect(soc_dat, (struct sockaddr *) &server, server_size) !=
|
||||
-1) {
|
||||
#endif
|
||||
if (connect(soc_dat, &SOCaddr_sockaddr(server), SOCaddr_size(server)) == 0) {
|
||||
strcpybuff(back->info, "retr");
|
||||
strcpybuff(line, line_retr);
|
||||
send_line(soc_ctl, line);
|
||||
@@ -859,33 +824,19 @@ T_SOC get_datasocket(char *to_send, size_t to_send_size) {
|
||||
to_send[0] = '\0';
|
||||
if (gethostname(h_loc, 256) == 0) { // host name
|
||||
SOCaddr server;
|
||||
int server_size = sizeof(server);
|
||||
t_hostent *hp_loc;
|
||||
t_fullhostent buffer;
|
||||
|
||||
// effacer structure
|
||||
memset(&server, 0, sizeof(server));
|
||||
|
||||
if ((hp_loc = vxgethostbyname(h_loc, &buffer))) { // notre host
|
||||
|
||||
// copie adresse
|
||||
SOCaddr_copyaddr(server, server_size, hp_loc->h_addr_list[0],
|
||||
hp_loc->h_length);
|
||||
|
||||
if (hts_dns_resolve_nocache(h_loc, &server) != NULL) { // notre host
|
||||
if ((soc =
|
||||
(T_SOC) socket(SOCaddr_sinfamily(server), SOCK_STREAM,
|
||||
0)) != INVALID_SOCKET) {
|
||||
|
||||
if (bind(soc, (struct sockaddr *) &server, server_size) == 0) {
|
||||
if (bind(soc, &SOCaddr_sockaddr(server), SOCaddr_size(server)) == 0) {
|
||||
SOCaddr server2;
|
||||
SOClen len;
|
||||
SOClen len = SOCaddr_capacity(server2);
|
||||
|
||||
len = sizeof(server2);
|
||||
// effacer structure
|
||||
memset(&server2, 0, sizeof(server2));
|
||||
if (getsockname(soc, (struct sockaddr *) &server2, &len) == 0) {
|
||||
if (getsockname(soc, &SOCaddr_sockaddr(server2), &len) == 0) {
|
||||
// *port=ntohs(server.sin_port); // récupérer port
|
||||
if (listen(soc, 10) >= 0) { // au pif le 10
|
||||
if (listen(soc, 1) >= 0) {
|
||||
#if HTS_INET6==0
|
||||
unsigned short int a, n1, n2;
|
||||
|
||||
@@ -898,7 +849,7 @@ T_SOC get_datasocket(char *to_send, size_t to_send_size) {
|
||||
char dot[256 + 2];
|
||||
char *a;
|
||||
|
||||
SOCaddr_inetntoa(dot, 256, server2, sizeof(server2));
|
||||
SOCaddr_inetntoa(dot, 256, server2);
|
||||
//
|
||||
dots[0] = '\0';
|
||||
strncatbuff(dots, dot, 128);
|
||||
@@ -916,9 +867,9 @@ T_SOC get_datasocket(char *to_send, size_t to_send_size) {
|
||||
{
|
||||
char dot[256 + 2];
|
||||
|
||||
SOCaddr_inetntoa(dot, 256, server2, len);
|
||||
SOCaddr_inetntoa(dot, 256, server2);
|
||||
snprintf(to_send, to_send_size, "EPRT |%c|%s|%d|",
|
||||
SOCaddr_getproto(server2, len), dot,
|
||||
SOCaddr_getproto(server2), dot,
|
||||
SOCaddr_sinport(server2));
|
||||
}
|
||||
#endif
|
||||
@@ -962,7 +913,7 @@ FILE *dd = NULL;
|
||||
|
||||
// routines de réception/émission
|
||||
// 0 = ERROR
|
||||
int send_line(T_SOC soc, char *data) {
|
||||
int send_line(T_SOC soc, const char *data) {
|
||||
char BIGSTK line[1024];
|
||||
|
||||
if (_DEBUG_HEAD) {
|
||||
@@ -1096,7 +1047,7 @@ int check_socket(T_SOC soc) {
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = 0;
|
||||
// poll!
|
||||
select(soc + 1, &fds, NULL, &fds_e, &tv);
|
||||
select((int) soc + 1, &fds, NULL, &fds_e, &tv);
|
||||
if (FD_ISSET(soc, &fds_e)) { // error detected
|
||||
return -1;
|
||||
} else if (FD_ISSET(soc, &fds)) {
|
||||
@@ -1119,7 +1070,7 @@ int check_socket_connect(T_SOC soc) {
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = 0;
|
||||
// poll!
|
||||
select(soc + 1, NULL, &fds, &fds_e, &tv);
|
||||
select((int) soc + 1, NULL, &fds, &fds_e, &tv);
|
||||
if (FD_ISSET(soc, &fds_e)) { // error detected
|
||||
return -1;
|
||||
} else if (FD_ISSET(soc, &fds)) {
|
||||
|
||||
15
src/htsftp.h
15
src/htsftp.h
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -69,7 +68,7 @@ int back_launch_ftp(FTPDownloadStruct * params);
|
||||
#endif
|
||||
|
||||
int run_launch_ftp(FTPDownloadStruct * params);
|
||||
int send_line(T_SOC soc, char *data);
|
||||
int send_line(T_SOC soc, const char *data);
|
||||
int get_ftp_line(T_SOC soc, char *line, size_t line_size, int timeout);
|
||||
T_SOC get_datasocket(char *to_send, size_t to_send_size);
|
||||
int stop_ftp(lien_back * back);
|
||||
|
||||
127
src/htsglobal.h
127
src/htsglobal.h
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -37,24 +36,14 @@ Please visit our Website: http://www.httrack.com
|
||||
#define HTTRACK_GLOBAL_DEFH
|
||||
|
||||
// Version (also check external version information)
|
||||
#define HTTRACK_VERSION "3.47-19"
|
||||
#define HTTRACK_VERSIONID "3.47.19"
|
||||
#define HTTRACK_VERSION "3.48-17"
|
||||
#define HTTRACK_VERSIONID "3.48.17"
|
||||
#define HTTRACK_AFF_VERSION "3.x"
|
||||
#define HTTRACK_LIB_VERSION "2.0"
|
||||
|
||||
#ifndef HTS_NOINCLUDES
|
||||
#ifndef _WIN32_WCE
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#else
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef HTS_CECOMPAT
|
||||
#include "cecompat.h"
|
||||
#else
|
||||
#include "celib.h"
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Définition plate-forme
|
||||
@@ -68,12 +57,22 @@ Please visit our Website: http://www.httrack.com
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* GCC extension */
|
||||
#ifndef HTS_UNUSED
|
||||
#ifdef __GNUC__
|
||||
#define HTS_UNUSED __attribute__ ((unused))
|
||||
#define HTS_STATIC static __attribute__ ((unused))
|
||||
#define HTS_PRINTF_FUN(fmt, arg) __attribute__ ((format (printf, fmt, arg)))
|
||||
#else
|
||||
#define HTS_UNUSED
|
||||
#define HTS_STATIC static
|
||||
#define HTS_PRINTF_FUN(fmt, arg)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// config.h
|
||||
#ifdef _WIN32
|
||||
|
||||
// WIN32
|
||||
#ifndef _WIN32_WCE
|
||||
|
||||
/*
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
@@ -92,39 +91,6 @@ Please visit our Website: http://www.httrack.com
|
||||
|
||||
#else
|
||||
|
||||
// Win32CE
|
||||
//#pragma runtime_checks( "s", restore )
|
||||
#define HTS_SPARE_MEMORY 1
|
||||
#define HTS_ALIGN 8
|
||||
#define BIGSTK static
|
||||
#undef DLLIB // LoadLibrary(libssl) crashes
|
||||
#define NOSTRDEBUG 1
|
||||
#undef HTS_MAKE_KEYWORD_INDEX
|
||||
#ifdef HTS_CECOMPAT
|
||||
#define HTS_DO_NOT_USE_FTIME 1
|
||||
/*
|
||||
#undef HAVE_SYS_STAT_H
|
||||
#undef HAVE_SYS_TYPES_H
|
||||
*/
|
||||
#else
|
||||
#undef HTS_DO_NOT_USE_FTIME
|
||||
/*
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
*/
|
||||
#endif
|
||||
|
||||
#define HTS_DLOPEN 0
|
||||
#undef HTS_INET6
|
||||
#ifndef S_ISREG
|
||||
#define S_ISREG(m) ((m) & _S_IFREG)
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifndef FTIME
|
||||
@@ -166,11 +132,6 @@ Please visit our Website: http://www.httrack.com
|
||||
|
||||
#endif
|
||||
|
||||
// don't spare memory usage by default
|
||||
#ifndef HTS_SPARE_MEMORY
|
||||
#define HTS_SPARE_MEMORY 0
|
||||
#endif
|
||||
|
||||
#ifndef BIGSTK
|
||||
#define BIGSTK
|
||||
#endif
|
||||
@@ -198,11 +159,6 @@ Please visit our Website: http://www.httrack.com
|
||||
#define HTS_USEOPENSSL 1
|
||||
#endif
|
||||
|
||||
// utiliser mms://?
|
||||
#ifndef HTS_USEMMS
|
||||
#define HTS_USEMMS 1
|
||||
#endif
|
||||
|
||||
#ifndef HTS_DLOPEN
|
||||
#define HTS_DLOPEN 1
|
||||
#endif
|
||||
@@ -245,24 +201,13 @@ Please visit our Website: http://www.httrack.com
|
||||
|
||||
#endif
|
||||
|
||||
#if HTS_SPARE_MEMORY==0
|
||||
/* Gestion des tables de hashage */
|
||||
#define HTS_HASH_SIZE 20147
|
||||
/* Taille max d'une URL */
|
||||
#define HTS_URLMAXSIZE 1024
|
||||
/* Taille max ligne de commande (>=HTS_URLMAXSIZE*2) */
|
||||
#define HTS_CDLMAXSIZE 1024
|
||||
#else
|
||||
/* Gestion des tables de hashage */
|
||||
#define HTS_HASH_SIZE 1023
|
||||
/* Taille max d'une URL */
|
||||
#define HTS_URLMAXSIZE 256
|
||||
/* Taille max ligne de commande (>=HTS_URLMAXSIZE*2) */
|
||||
#define HTS_CDLMAXSIZE 1024
|
||||
#endif
|
||||
|
||||
/* Copyright (C) Xavier Roche and other contributors */
|
||||
#define HTTRACK_AFF_AUTHORS "[XR&CO'2013]"
|
||||
/* Copyright (C) 1998-2014 Xavier Roche and other contributors */
|
||||
#define HTTRACK_AFF_AUTHORS "[XR&CO'2014]"
|
||||
#define HTS_DEFAULT_FOOTER "<!-- Mirrored from %s%s by HTTrack Website Copier/"HTTRACK_AFF_VERSION" "HTTRACK_AFF_AUTHORS", %s -->"
|
||||
#define HTTRACK_WEB "http://www.httrack.com"
|
||||
#define HTS_UPDATE_WEBSITE "http://www.httrack.com/update.php3?Product=HTTrack&Version="HTTRACK_VERSIONID"&VersionStr="HTTRACK_VERSION"&Platform=%d&Language=%s"
|
||||
@@ -283,8 +228,8 @@ Please visit our Website: http://www.httrack.com
|
||||
#define maximum(A,B) ( (A) > (B) ? (A) : (B) )
|
||||
#define minimum(A,B) ( (A) < (B) ? (A) : (B) )
|
||||
|
||||
/* chaine vide? */
|
||||
#define strnotempty(A) (((A)[0]!='\0') ? 1 : 0)
|
||||
/* chaine no empty ? (and not null) */
|
||||
#define strnotempty(A) (((A) != NULL && (A)[0] != '\0'))
|
||||
|
||||
/* optimisation inline si possible */
|
||||
#ifdef __cplusplus
|
||||
@@ -300,8 +245,14 @@ Please visit our Website: http://www.httrack.com
|
||||
#define HTSEXT_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
/* See <http://gcc.gnu.org/wiki/Visibility> */
|
||||
#if ( ( defined(__GNUC__) && ( __GNUC__ >= 4 ) ) \
|
||||
|| ( defined(HAVE_VISIBILITY) && HAVE_VISIBILITY ) )
|
||||
#define HTSEXT_API __attribute__ ((visibility ("default")))
|
||||
#else
|
||||
#define HTSEXT_API
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef HTS_LONGLONG
|
||||
#ifdef HTS_NO_64_BIT
|
||||
@@ -327,9 +278,10 @@ typedef __int64 LLint;
|
||||
typedef __int64 TStamp;
|
||||
|
||||
#define LLintP "%I64d"
|
||||
#elif (defined(__x86_64__) || defined(_LP64) || defined(__64BIT__))
|
||||
typedef unsigned long int LLint;
|
||||
typedef unsigned long int TStamp;
|
||||
#elif (defined(_LP64) || defined(__x86_64__) \
|
||||
|| defined(__powerpc64__) || defined(__64BIT__))
|
||||
typedef long int LLint;
|
||||
typedef long int TStamp;
|
||||
|
||||
#define LLintP "%ld"
|
||||
#else
|
||||
@@ -371,11 +323,6 @@ typedef unsigned __int32 T_SOC;
|
||||
typedef int T_SOC;
|
||||
#endif
|
||||
|
||||
/* Default alignement */
|
||||
#ifndef HTS_ALIGN
|
||||
#define HTS_ALIGN (sizeof(void*))
|
||||
#endif
|
||||
|
||||
/* IPV4, IPV6 and various unified structures */
|
||||
#define HTS_MAXADDRLEN 64
|
||||
|
||||
@@ -420,11 +367,7 @@ typedef int T_SOC;
|
||||
#define LOCAL_SOCKET_ID -2
|
||||
|
||||
// taille de chaque buffer (10 sockets 650 ko)
|
||||
#if HTS_SPARE_MEMORY==0
|
||||
#define TAILLE_BUFFER 65536
|
||||
#else
|
||||
#define TAILLE_BUFFER 8192
|
||||
#endif
|
||||
|
||||
#ifdef HTS_DO_NOT_USE_PTHREAD
|
||||
#error needs threads support
|
||||
|
||||
535
src/htshash.c
535
src/htshash.c
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -35,14 +34,15 @@ Please visit our Website: http://www.httrack.com
|
||||
/* Internal engine bytecode */
|
||||
#define HTS_INTERNAL_BYTECODE
|
||||
|
||||
#include "htsopt.h"
|
||||
#include "htshash.h"
|
||||
|
||||
/* specific definitions */
|
||||
#include "htsbase.h"
|
||||
#include "htsopt.h"
|
||||
#include "htsglobal.h"
|
||||
#include "htsmd5.h"
|
||||
#include "htscore.h"
|
||||
#include "coucal.h"
|
||||
/* END specific definitions */
|
||||
|
||||
/* Specific macros */
|
||||
@@ -56,267 +56,284 @@ Please visit our Website: http://www.httrack.com
|
||||
// GESTION DES TABLES DE HACHAGE
|
||||
// Méthode à 2 clés (adr+fil), 2e cle facultative
|
||||
// hash[no_enregistrement][pos]->hash est un index dans le tableau général liens
|
||||
// #define HTS_HASH_SIZE 8191 (premier si possible!)
|
||||
// type: numero enregistrement - 0 est case insensitive (sav) 1 (adr+fil) 2 (former_adr+former_fil)
|
||||
// recherche dans la table selon nom1,nom2 et le no d'enregistrement
|
||||
|
||||
/* Key free handler (NOOP) ; addresses are kept */
|
||||
static void key_freehandler(void *arg, coucal_key value) {
|
||||
}
|
||||
|
||||
/* Key strdup (pointer copy) */
|
||||
static coucal_key key_duphandler(void *arg, coucal_key_const name) {
|
||||
union {
|
||||
coucal_key_const roname;
|
||||
coucal_key name;
|
||||
} u;
|
||||
u.roname = name;
|
||||
return u.name;
|
||||
}
|
||||
|
||||
/* Key sav hashes are using case-insensitive version */
|
||||
static coucal_hashkeys key_sav_hashes(void *arg, coucal_key_const key) {
|
||||
hash_struct *const hash = (hash_struct*) arg;
|
||||
convtolower(hash->catbuff, (const char*) key);
|
||||
return coucal_hash_string(hash->catbuff);
|
||||
}
|
||||
|
||||
/* Key sav comparison is case-insensitive */
|
||||
static int key_sav_equals(void *arg,
|
||||
coucal_key_const a_,
|
||||
coucal_key_const b_) {
|
||||
const char *const a = (const char*) a_;
|
||||
const char *const b = (const char*) b_;
|
||||
return strcasecmp(a, b) == 0;
|
||||
}
|
||||
|
||||
static const char* key_sav_debug_print(void *arg,
|
||||
coucal_key_const a) {
|
||||
return (const char*) a;
|
||||
}
|
||||
|
||||
static const char* value_sav_debug_print(void *arg, coucal_value_const a) {
|
||||
return (char*) a.ptr;
|
||||
}
|
||||
|
||||
/* Pseudo-key (lien_url structure) hash function */
|
||||
static coucal_hashkeys key_adrfil_hashes_generic(void *arg,
|
||||
coucal_key_const value,
|
||||
const int former) {
|
||||
hash_struct *const hash = (hash_struct*) arg;
|
||||
const lien_url*const lien = (const lien_url*) value;
|
||||
const char *const adr = !former ? lien->adr : lien->former_adr;
|
||||
const char *const fil = !former ? lien->fil : lien->former_fil;
|
||||
const char *const adr_norm = adr != NULL ?
|
||||
( hash->normalized ? jump_normalized_const(adr)
|
||||
: jump_identification_const(adr) )
|
||||
: NULL;
|
||||
|
||||
// copy address
|
||||
assertf(adr_norm != NULL);
|
||||
strcpy(hash->normfil, adr_norm);
|
||||
|
||||
// copy link
|
||||
assertf(fil != NULL);
|
||||
if (hash->normalized) {
|
||||
fil_normalized(fil, &hash->normfil[strlen(hash->normfil)]);
|
||||
} else {
|
||||
strcpy(&hash->normfil[strlen(hash->normfil)], fil);
|
||||
}
|
||||
|
||||
// hash
|
||||
return coucal_hash_string(hash->normfil);
|
||||
}
|
||||
|
||||
/* Pseudo-key (lien_url structure) comparison function */
|
||||
static int key_adrfil_equals_generic(void *arg,
|
||||
coucal_key_const a_,
|
||||
coucal_key_const b_,
|
||||
const int former) {
|
||||
hash_struct *const hash = (hash_struct*) arg;
|
||||
const int normalized = hash->normalized;
|
||||
const lien_url*const a = (const lien_url*) a_;
|
||||
const lien_url*const b = (const lien_url*) b_;
|
||||
const char *const a_adr = !former ? a->adr : a->former_adr;
|
||||
const char *const b_adr = !former ? b->adr : b->former_adr;
|
||||
const char *const a_fil = !former ? a->fil : a->former_fil;
|
||||
const char *const b_fil = !former ? b->fil : b->former_fil;
|
||||
const char *ja;
|
||||
const char *jb;
|
||||
|
||||
// safety
|
||||
assertf(a_adr != NULL);
|
||||
assertf(b_adr != NULL);
|
||||
assertf(a_fil != NULL);
|
||||
assertf(b_fil != NULL);
|
||||
|
||||
// skip scheme and authentication to the domain (possibly without www.)
|
||||
ja = normalized
|
||||
? jump_normalized_const(a_adr) : jump_identification_const(a_adr);
|
||||
jb = normalized
|
||||
? jump_normalized_const(b_adr) : jump_identification_const(b_adr);
|
||||
assertf(ja != NULL);
|
||||
assertf(jb != NULL);
|
||||
if (strcasecmp(ja, jb) != 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// now compare pathes
|
||||
if (normalized) {
|
||||
fil_normalized(a_fil, hash->normfil);
|
||||
fil_normalized(b_fil, hash->normfil2);
|
||||
return strcmp(hash->normfil, hash->normfil2) == 0;
|
||||
} else {
|
||||
return strcmp(a_fil, b_fil) == 0;
|
||||
}
|
||||
}
|
||||
|
||||
static const char* key_adrfil_debug_print_(void *arg,
|
||||
coucal_key_const a_,
|
||||
const int former) {
|
||||
hash_struct *const hash = (hash_struct*) arg;
|
||||
const lien_url*const a = (const lien_url*) a_;
|
||||
const char *const a_adr = !former ? a->adr : a->former_adr;
|
||||
const char *const a_fil = !former ? a->fil : a->former_fil;
|
||||
snprintf(hash->normfil, sizeof(hash->normfil), "%s%s", a_adr, a_fil);
|
||||
return hash->normfil;
|
||||
}
|
||||
|
||||
static const char* key_adrfil_debug_print(void *arg,
|
||||
coucal_key_const a_) {
|
||||
return key_adrfil_debug_print_(arg, a_, 0);
|
||||
}
|
||||
|
||||
static const char* key_former_adrfil_debug_print(void *arg,
|
||||
coucal_key_const a_) {
|
||||
return key_adrfil_debug_print_(arg, a_, 1);
|
||||
}
|
||||
|
||||
static const char* value_adrfil_debug_print(void *arg,
|
||||
coucal_value_const value) {
|
||||
hash_struct *const hash = (hash_struct*) arg;
|
||||
snprintf(hash->normfil2, sizeof(hash->normfil2), "%d", (int) value.intg);
|
||||
return hash->normfil2;
|
||||
}
|
||||
|
||||
/* "adr"/"fil" lien_url structure members hashing function */
|
||||
static coucal_hashkeys key_adrfil_hashes(void *arg, coucal_key_const value_) {
|
||||
return key_adrfil_hashes_generic(arg, value_, 0);
|
||||
}
|
||||
|
||||
/* "adr"/"fil" lien_url structure members comparison function */
|
||||
static int key_adrfil_equals(void *arg,
|
||||
coucal_key_const a,
|
||||
coucal_key_const b) {
|
||||
return key_adrfil_equals_generic(arg, a, b, 0);
|
||||
}
|
||||
|
||||
/* "former_adr"/"former_fil" lien_url structure members hashing function */
|
||||
static coucal_hashkeys key_former_adrfil_hashes(void *arg, coucal_key_const value_) {
|
||||
return key_adrfil_hashes_generic(arg, value_, 1);
|
||||
}
|
||||
|
||||
/* "former_adr"/"former_fil" lien_url structure members comparison function */
|
||||
static int key_former_adrfil_equals(void *arg,
|
||||
coucal_key_const a,
|
||||
coucal_key_const b) {
|
||||
return key_adrfil_equals_generic(arg, a, b, 1);
|
||||
}
|
||||
|
||||
void hash_init(httrackp *opt, hash_struct * hash, int normalized) {
|
||||
hash->sav = coucal_new(0);
|
||||
hash->adrfil = coucal_new(0);
|
||||
hash->former_adrfil = coucal_new(0);
|
||||
hash->normalized = normalized;
|
||||
|
||||
hts_set_hash_handler(hash->sav, opt);
|
||||
hts_set_hash_handler(hash->adrfil, opt);
|
||||
hts_set_hash_handler(hash->former_adrfil, opt);
|
||||
|
||||
coucal_set_name(hash->sav, "hash->sav");
|
||||
coucal_set_name(hash->adrfil, "hash->adrfil");
|
||||
coucal_set_name(hash->former_adrfil, "hash->former_adrfil");
|
||||
|
||||
/* Case-insensitive comparison ; keys are direct char* filenames */
|
||||
coucal_value_set_key_handler(hash->sav,
|
||||
key_duphandler,
|
||||
key_freehandler,
|
||||
key_sav_hashes,
|
||||
key_sav_equals,
|
||||
hash);
|
||||
|
||||
/* URL-style comparison ; keys are lien_url structure pointers casted
|
||||
to char* */
|
||||
coucal_value_set_key_handler(hash->adrfil,
|
||||
key_duphandler,
|
||||
key_freehandler,
|
||||
key_adrfil_hashes,
|
||||
key_adrfil_equals,
|
||||
hash);
|
||||
coucal_value_set_key_handler(hash->former_adrfil,
|
||||
key_duphandler,
|
||||
key_freehandler,
|
||||
key_former_adrfil_hashes,
|
||||
key_former_adrfil_equals,
|
||||
hash);
|
||||
|
||||
/* pretty-printing */
|
||||
coucal_set_print_handler(hash->sav,
|
||||
key_sav_debug_print,
|
||||
value_sav_debug_print,
|
||||
NULL);
|
||||
coucal_set_print_handler(hash->adrfil,
|
||||
key_adrfil_debug_print,
|
||||
value_adrfil_debug_print,
|
||||
hash);
|
||||
coucal_set_print_handler(hash->former_adrfil,
|
||||
key_former_adrfil_debug_print,
|
||||
value_adrfil_debug_print,
|
||||
hash);
|
||||
}
|
||||
|
||||
void hash_free(hash_struct *hash) {
|
||||
if (hash != NULL) {
|
||||
coucal_delete(&hash->sav);
|
||||
coucal_delete(&hash->adrfil);
|
||||
coucal_delete(&hash->former_adrfil);
|
||||
}
|
||||
}
|
||||
|
||||
// retour: position ou -1 si non trouvé
|
||||
int hash_read(const hash_struct * hash, const char *nom1, const char *nom2,
|
||||
int type, int normalized) {
|
||||
char BIGSTK normfil_[HTS_URLMAXSIZE * 2];
|
||||
char catbuff[CATBUFF_SIZE];
|
||||
const char *normfil;
|
||||
const char *normadr;
|
||||
unsigned int cle;
|
||||
int pos;
|
||||
hash_struct_type type) {
|
||||
intptr_t intvalue;
|
||||
lien_url lien;
|
||||
|
||||
// calculer la clé de recherche, non modulée
|
||||
if (type)
|
||||
cle = hash_cle(nom1, nom2);
|
||||
else
|
||||
cle = hash_cle(convtolower(catbuff, nom1), nom2); // case insensitive
|
||||
// la position se calcule en modulant
|
||||
pos = (int) (cle % HTS_HASH_SIZE);
|
||||
// entrée trouvée?
|
||||
if (hash->hash[type][pos] >= 0) { // un ou plusieurs enregistrement(s) avec une telle clé existe..
|
||||
// tester table de raccourcis (hash)
|
||||
// pos est maintenant la position recherchée dans liens
|
||||
pos = hash->hash[type][pos];
|
||||
while(pos >= 0) { // parcourir la chaine
|
||||
switch (type) {
|
||||
case 0: // sav
|
||||
if (strfield2(nom1, hash->liens[pos]->sav)) { // case insensitive
|
||||
#if DEBUG_HASH==2
|
||||
printf("hash: found shortcut at %d\n", pos);
|
||||
#endif
|
||||
return pos;
|
||||
}
|
||||
break;
|
||||
case 1: // adr+fil
|
||||
{
|
||||
if (!normalized)
|
||||
normfil = hash->liens[pos]->fil;
|
||||
else
|
||||
normfil = fil_normalized(hash->liens[pos]->fil, normfil_);
|
||||
if (!normalized)
|
||||
normadr = jump_identification(hash->liens[pos]->adr);
|
||||
else
|
||||
normadr = jump_normalized(hash->liens[pos]->adr);
|
||||
if ((strfield2(nom1, normadr) != 0) && (strcmp(nom2, normfil) == 0)) {
|
||||
#if DEBUG_HASH==2
|
||||
printf("hash: found shortcut at %d\n", pos);
|
||||
#endif
|
||||
return pos;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2: // former_adr+former_fil
|
||||
{
|
||||
if (hash->liens[pos]->former_adr) {
|
||||
if (!normalized)
|
||||
normfil = hash->liens[pos]->former_fil;
|
||||
else
|
||||
normfil = fil_normalized(hash->liens[pos]->former_fil, normfil_);
|
||||
if (!normalized)
|
||||
normadr = jump_identification(hash->liens[pos]->former_adr);
|
||||
else
|
||||
normadr = jump_normalized(hash->liens[pos]->former_adr);
|
||||
|
||||
if ((strfield2(nom1, normadr) != 0) && (strcmp(nom2, normfil) == 0)) {
|
||||
#if DEBUG_HASH==2
|
||||
printf("hash: found shortcut at %d\n", pos);
|
||||
#endif
|
||||
return pos;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
// calculer prochaine position dans la chaine
|
||||
{
|
||||
int old = pos;
|
||||
|
||||
pos = hash->liens[pos]->hash_next[type]; // sinon prochain dans la chaine
|
||||
if (old == pos)
|
||||
pos = -1; // erreur de bouclage (ne devrait pas arriver)
|
||||
}
|
||||
/* read */
|
||||
switch(type) {
|
||||
case HASH_STRUCT_FILENAME:
|
||||
if (coucal_read(hash->sav, nom1, &intvalue)) {
|
||||
return (int) intvalue;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Ok va falloir chercher alors..
|
||||
/*pos=hash->max_lien; // commencer à max_lien
|
||||
switch (type) {
|
||||
case 0: // sav
|
||||
while(pos>=0) {
|
||||
if (hash->liens[pos]->hash_sav == cle ) {
|
||||
if (strcmp(nom1,hash->liens[pos]->sav)==0) {
|
||||
hash->hash[type][(int) (cle%HTS_HASH_SIZE)] = pos; // noter plus récent dans shortcut table
|
||||
#if DEBUG_HASH==2
|
||||
printf("hash: found long search at %d\n",pos);
|
||||
#endif
|
||||
return pos;
|
||||
}
|
||||
}
|
||||
pos--;
|
||||
}
|
||||
break;
|
||||
case 1: // adr+fil
|
||||
while(pos>=0) {
|
||||
if (hash->liens[pos]->hash_adrfil == cle ) {
|
||||
if ((strcmp(nom1,hash->liens[pos]->adr)==0) && (strcmp(nom2,hash->liens[pos]->fil)==0)) {
|
||||
hash->hash[type][(int) (cle%HTS_HASH_SIZE)] = pos; // noter plus récent dans shortcut table
|
||||
#if DEBUG_HASH==2
|
||||
printf("hash: found long search at %d\n",pos);
|
||||
#endif
|
||||
return pos;
|
||||
}
|
||||
}
|
||||
pos--;
|
||||
}
|
||||
break;
|
||||
case 2: // former_adr+former_fil
|
||||
while(pos>=0) {
|
||||
if (hash->liens[pos]->hash_fadrfil == cle ) {
|
||||
if (hash->liens[pos]->former_adr)
|
||||
if ((strcmp(nom1,hash->liens[pos]->former_adr)==0) && (strcmp(nom2,hash->liens[pos]->former_fil)==0)) {
|
||||
hash->hash[type][(int) (cle%HTS_HASH_SIZE)] = pos; // noter plus récent dans shortcut table
|
||||
#if DEBUG_HASH==2
|
||||
printf("hash: found long search at %d\n",pos);
|
||||
#endif
|
||||
return pos;
|
||||
}
|
||||
}
|
||||
pos--;
|
||||
}
|
||||
} */
|
||||
#if DEBUG_HASH==1
|
||||
printf("hash: not found after test %s%s\n", nom1, nom2);
|
||||
#endif
|
||||
return -1; // non trouvé
|
||||
} else {
|
||||
#if DEBUG_HASH==2
|
||||
printf("hash: not found %s%s\n", nom1, nom2);
|
||||
#endif
|
||||
return -1; // non trouvé : clé non entrée (même une fois)
|
||||
break;
|
||||
case HASH_STRUCT_ADR_PATH:
|
||||
memset(&lien, 0, sizeof(lien));
|
||||
lien.adr = key_duphandler(NULL, nom1);
|
||||
lien.fil = key_duphandler(NULL, nom2);
|
||||
if (coucal_read(hash->adrfil, (char*) &lien, &intvalue)) {
|
||||
return (int) intvalue;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
case HASH_STRUCT_ORIGINAL_ADR_PATH:
|
||||
memset(&lien, 0, sizeof(lien));
|
||||
lien.former_adr = key_duphandler(NULL, nom1);
|
||||
lien.former_fil = key_duphandler(NULL, nom2);
|
||||
if (coucal_read(hash->former_adrfil, (char*) &lien, &intvalue)) {
|
||||
return (int) intvalue;
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assertf(! "unexpected case");
|
||||
return -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// enregistrement lien lpos dans les 3 tables hash1..3
|
||||
void hash_write(hash_struct * hash, int lpos, int normalized) {
|
||||
char BIGSTK normfil_[HTS_URLMAXSIZE * 2];
|
||||
char catbuff[CATBUFF_SIZE];
|
||||
const char *normfil;
|
||||
unsigned int cle;
|
||||
int pos;
|
||||
int *ptr;
|
||||
void hash_write(hash_struct * hash, size_t lpos) {
|
||||
/* first entry: destination filename (lowercased) */
|
||||
coucal_write(hash->sav, (*hash->liens)[lpos]->sav, lpos);
|
||||
|
||||
//
|
||||
if (hash->liens[lpos]) { // on sait jamais..
|
||||
hash->max_lien = max(hash->max_lien, lpos);
|
||||
#if DEBUG_HASH
|
||||
hashnumber = hash->max_lien;
|
||||
#endif
|
||||
// élément actuel sur -1 (fin de chaine)
|
||||
hash->liens[lpos]->hash_next[0] = hash->liens[lpos]->hash_next[1] =
|
||||
hash->liens[lpos]->hash_next[2] = -1;
|
||||
//
|
||||
cle = hash_cle(convtolower(catbuff, hash->liens[lpos]->sav), ""); // CASE INSENSITIVE
|
||||
pos = (int) (cle % HTS_HASH_SIZE);
|
||||
ptr = hash_calc_chaine(hash, 0, pos); // calculer adresse chaine
|
||||
*ptr = lpos; // noter dernier enregistré
|
||||
#if DEBUG_HASH==3
|
||||
printf("[%d", pos);
|
||||
#endif
|
||||
//
|
||||
if (!normalized)
|
||||
normfil = hash->liens[lpos]->fil;
|
||||
else
|
||||
normfil = fil_normalized(hash->liens[lpos]->fil, normfil_);
|
||||
if (!normalized)
|
||||
cle = hash_cle(jump_identification(hash->liens[lpos]->adr), normfil);
|
||||
else
|
||||
cle = hash_cle(jump_normalized(hash->liens[lpos]->adr), normfil);
|
||||
pos = (int) (cle % HTS_HASH_SIZE);
|
||||
ptr = hash_calc_chaine(hash, 1, pos); // calculer adresse chaine
|
||||
*ptr = lpos; // noter dernier enregistré
|
||||
#if DEBUG_HASH==3
|
||||
printf(",%d", pos);
|
||||
#endif
|
||||
//
|
||||
if (hash->liens[lpos]->former_adr) { // former_adr existe?
|
||||
if (!normalized)
|
||||
normfil = hash->liens[lpos]->former_fil;
|
||||
else
|
||||
normfil = fil_normalized(hash->liens[lpos]->former_fil, normfil_);
|
||||
if (!normalized)
|
||||
cle =
|
||||
hash_cle(jump_identification(hash->liens[lpos]->former_adr), normfil);
|
||||
else
|
||||
cle = hash_cle(jump_normalized(hash->liens[lpos]->former_adr), normfil);
|
||||
pos = (int) (cle % HTS_HASH_SIZE);
|
||||
ptr = hash_calc_chaine(hash, 2, pos); // calculer adresse chaine
|
||||
*ptr = lpos; // noter dernier enregistré
|
||||
#if DEBUG_HASH==3
|
||||
printf(",%d", pos);
|
||||
#endif
|
||||
}
|
||||
#if DEBUG_HASH==3
|
||||
printf("] ");
|
||||
fflush(stdout);
|
||||
#endif
|
||||
/* second entry: URL address and path */
|
||||
coucal_write(hash->adrfil, (*hash->liens)[lpos], lpos);
|
||||
|
||||
/* third entry: URL address and path before redirect */
|
||||
if ((*hash->liens)[lpos]->former_adr) { // former_adr existe?
|
||||
coucal_write(hash->former_adrfil, (*hash->liens)[lpos], lpos);
|
||||
}
|
||||
#if DEBUT_HASH
|
||||
else {
|
||||
printf("* hash_write=0!!\n");
|
||||
abortLogFmt("unexpected error in hash_write (pos=%d)" _pos);
|
||||
abort();
|
||||
}
|
||||
#endif
|
||||
//
|
||||
}
|
||||
|
||||
// calcul clé
|
||||
// il n'y a pas de formule de hashage universelle, celle-ci semble acceptable..
|
||||
unsigned long int hash_cle(const char *nom1, const char *nom2) {
|
||||
/*
|
||||
unsigned int sum=0;
|
||||
int i=0;
|
||||
while(*nom1) {
|
||||
sum += 1;
|
||||
sum += (unsigned int) *(nom1);
|
||||
sum *= (unsigned int) *(nom1++);
|
||||
sum += (unsigned int) i;
|
||||
i++;
|
||||
}
|
||||
while(*nom2) {
|
||||
sum += 1;
|
||||
sum += (unsigned int) *(nom2);
|
||||
sum *= (unsigned int) *(nom2++);
|
||||
sum += (unsigned int) i;
|
||||
i++;
|
||||
}
|
||||
*/
|
||||
return md5sum32(nom1)
|
||||
+ md5sum32(nom2);
|
||||
}
|
||||
|
||||
// calcul de la position finale dans la chaine des elements ayant la même clé
|
||||
int *hash_calc_chaine(hash_struct * hash, int type, int pos) {
|
||||
#if DEBUG_HASH
|
||||
int count = 0;
|
||||
#endif
|
||||
if (hash->hash[type][pos] == -1)
|
||||
return &(hash->hash[type][pos]); // premier élément dans la chaine
|
||||
pos = hash->hash[type][pos];
|
||||
while(hash->liens[pos]->hash_next[type] != -1) {
|
||||
pos = hash->liens[pos]->hash_next[type];
|
||||
#if DEBUG_HASH
|
||||
count++;
|
||||
#endif
|
||||
}
|
||||
#if DEBUG_HASH
|
||||
count++;
|
||||
longest_hash[type] = max(longest_hash[type], count);
|
||||
#endif
|
||||
return &(hash->liens[pos]->hash_next[type]);
|
||||
}
|
||||
|
||||
// FIN GESTION DES TABLES DE HACHAGE
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -44,11 +43,20 @@ Please visit our Website: http://www.httrack.com
|
||||
typedef struct hash_struct hash_struct;
|
||||
#endif
|
||||
|
||||
/** Type of hash. **/
|
||||
typedef enum hash_struct_type {
|
||||
HASH_STRUCT_FILENAME = 0,
|
||||
HASH_STRUCT_ADR_PATH,
|
||||
HASH_STRUCT_ORIGINAL_ADR_PATH
|
||||
} hash_struct_type;
|
||||
|
||||
// tables de hachage
|
||||
void hash_init(httrackp *opt, hash_struct *hash, int normalized);
|
||||
void hash_free(hash_struct *hash);
|
||||
int hash_read(const hash_struct * hash, const char *nom1, const char *nom2,
|
||||
int type, int normalized);
|
||||
void hash_write(hash_struct * hash, int lpos, int normalized);
|
||||
int *hash_calc_chaine(hash_struct * hash, int type, int pos);
|
||||
hash_struct_type type);
|
||||
void hash_write(hash_struct * hash, size_t lpos);
|
||||
int *hash_calc_chaine(hash_struct * hash, hash_struct_type type, int pos);
|
||||
unsigned long int hash_cle(const char *nom1, const char *nom2);
|
||||
#endif
|
||||
|
||||
|
||||
121
src/htshelp.c
121
src/htshelp.c
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -53,7 +52,7 @@ Please visit our Website: http://www.httrack.com
|
||||
/* END specific definitions */
|
||||
|
||||
#define waitkey if (more) { char s[4]; printf("\nMORE.. q to quit\n"); linput(stdin,s,4); if (strcmp(s,"q")==0) quit=1; else printf("Page %d\n\n",++m); }
|
||||
void infomsg(char *msg) {
|
||||
void infomsg(const char *msg) {
|
||||
int l = 0;
|
||||
int m = 0;
|
||||
int more = 0;
|
||||
@@ -117,16 +116,51 @@ void infomsg(char *msg) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct help_wizard_buffers {
|
||||
char urls[HTS_URLMAXSIZE * 2];
|
||||
char mainpath[256];
|
||||
char projname[256];
|
||||
char stropt[2048]; // options
|
||||
char stropt2[2048]; // options longues
|
||||
char strwild[2048]; // wildcards
|
||||
char cmd[4096];
|
||||
char str[256];
|
||||
char *argv[256];
|
||||
} help_wizard_buffers;
|
||||
|
||||
void help_wizard(httrackp * opt) {
|
||||
char *urls = (char *) malloct(HTS_URLMAXSIZE * 2);
|
||||
char *mainpath = (char *) malloct(256);
|
||||
char *projname = (char *) malloct(256);
|
||||
char *stropt = (char *) malloct(2048); // options
|
||||
char *stropt2 = (char *) malloct(2048); // options longues
|
||||
char *strwild = (char *) malloct(2048); // wildcards
|
||||
char *cmd = (char *) malloct(4096);
|
||||
char *str = (char *) malloct(256);
|
||||
char **argv = (char **) malloct(256 * sizeof(char *));
|
||||
help_wizard_buffers *buffers = malloct(sizeof(help_wizard_buffers));
|
||||
|
||||
#undef urls
|
||||
#undef mainpath
|
||||
#undef projname
|
||||
#undef stropt
|
||||
#undef stropt2
|
||||
#undef strwild
|
||||
#undef cmd
|
||||
#undef str
|
||||
#undef argv
|
||||
|
||||
#define urls (buffers->urls)
|
||||
#define mainpath (buffers->mainpath)
|
||||
#define projname (buffers->projname)
|
||||
#define stropt (buffers->stropt)
|
||||
#define stropt2 (buffers->stropt2)
|
||||
#define strwild (buffers->strwild)
|
||||
#define cmd (buffers->cmd)
|
||||
#define str (buffers->str)
|
||||
#define argv (buffers->argv)
|
||||
|
||||
//char *urls = (char *) malloct(HTS_URLMAXSIZE * 2);
|
||||
//char *mainpath = (char *) malloct(256);
|
||||
//char *projname = (char *) malloct(256);
|
||||
//char *stropt = (char *) malloct(2048); // options
|
||||
//char *stropt2 = (char *) malloct(2048); // options longues
|
||||
//char *strwild = (char *) malloct(2048); // wildcards
|
||||
//char *cmd = (char *) malloct(4096);
|
||||
//char *str = (char *) malloct(256);
|
||||
//char **argv = (char **) malloct(256 * sizeof(char *));
|
||||
|
||||
//
|
||||
char *a;
|
||||
@@ -148,7 +182,7 @@ void help_wizard(httrackp * opt) {
|
||||
printf("\n");
|
||||
printf("Welcome to HTTrack Website Copier (Offline Browser) " HTTRACK_VERSION
|
||||
"%s\n", hts_get_version_info(opt));
|
||||
printf("Copyright (C) Xavier Roche and other contributors\n");
|
||||
printf("Copyright (C) 1998-2014 Xavier Roche and other contributors\n");
|
||||
#ifdef _WIN32
|
||||
printf("Note: You are running the commandline version,\n");
|
||||
printf("run 'WinHTTrack.exe' to get the GUI version.\n");
|
||||
@@ -238,7 +272,7 @@ void help_wizard(httrackp * opt) {
|
||||
if (strnotempty(str)) {
|
||||
while((a = strchr(str, ' ')))
|
||||
*a = ':'; // port
|
||||
if (!strchr(jump_identification(str), ':')) {
|
||||
if (!strchr(jump_identification_const(str), ':')) {
|
||||
char str2[256];
|
||||
|
||||
printf("\nProxy port (return=8080) :");
|
||||
@@ -298,7 +332,7 @@ void help_wizard(httrackp * opt) {
|
||||
printf("\n");
|
||||
|
||||
// couper en morceaux
|
||||
argv[0] = "winhttrack";
|
||||
argv[0] = strdup("winhttrack");
|
||||
argv[1] = cmd;
|
||||
argc++;
|
||||
while(cmd[i]) {
|
||||
@@ -319,24 +353,26 @@ void help_wizard(httrackp * opt) {
|
||||
}
|
||||
|
||||
/* Free buffers */
|
||||
freet(urls);
|
||||
freet(mainpath);
|
||||
freet(projname);
|
||||
freet(stropt);
|
||||
freet(stropt2);
|
||||
freet(strwild);
|
||||
freet(cmd);
|
||||
freet(str);
|
||||
free(buffers);
|
||||
#undef urls
|
||||
#undef mainpath
|
||||
#undef projname
|
||||
#undef stropt
|
||||
#undef stropt2
|
||||
#undef strwild
|
||||
#undef cmd
|
||||
#undef str
|
||||
#undef argv
|
||||
}
|
||||
int help_query(char *list, int def) {
|
||||
int help_query(const char *list, int def) {
|
||||
char s[256];
|
||||
char *a;
|
||||
const char *a;
|
||||
int opt;
|
||||
int n = 1;
|
||||
|
||||
a = list;
|
||||
while(strnotempty(a)) {
|
||||
char *b = strchr(a, '|');
|
||||
const char *b = strchr(a, '|');
|
||||
|
||||
if (b) {
|
||||
char str[256];
|
||||
@@ -402,7 +438,7 @@ void help_catchurl(const char *dest_path) {
|
||||
{
|
||||
char BIGSTK finalurl[HTS_URLMAXSIZE * 2];
|
||||
|
||||
escape_check_url(dest);
|
||||
inplace_escape_check_url(dest, sizeof(dest));
|
||||
sprintf(finalurl, "%s" POSTTOK "file:%s", url, dest);
|
||||
printf("\nThe URL is: \"%s\"\n", finalurl);
|
||||
printf("You can capture it through: httrack \"%s\"\n", finalurl);
|
||||
@@ -419,7 +455,7 @@ void help_catchurl(const char *dest_path) {
|
||||
}
|
||||
|
||||
// Créer un index.html vide
|
||||
void make_empty_index(char *str) {
|
||||
void make_empty_index(const char *str) {
|
||||
#if 0
|
||||
if (!fexist(fconcat(str, "index.html"))) {
|
||||
FILE *fp = fopen(fconcat(str, "index.html"), "wb");
|
||||
@@ -437,7 +473,7 @@ void make_empty_index(char *str) {
|
||||
|
||||
// mini-aide (h: help)
|
||||
// y
|
||||
void help(char *app, int more) {
|
||||
void help(const char *app, int more) {
|
||||
char info[2048];
|
||||
|
||||
infomsg("");
|
||||
@@ -445,7 +481,7 @@ void help(char *app, int more) {
|
||||
infomsg("1");
|
||||
if (more != 2) {
|
||||
sprintf(info,
|
||||
"HTTrack version " HTTRACK_VERSION "%s (compiled " __DATE__ ")",
|
||||
"HTTrack version " HTTRACK_VERSION "%s",
|
||||
hts_is_available());
|
||||
infomsg(info);
|
||||
#ifdef HTTRACK_AFF_WARNING
|
||||
@@ -461,9 +497,6 @@ void help(char *app, int more) {
|
||||
infomsg("General options:");
|
||||
infomsg
|
||||
(" O path for mirror/logfiles+cache (-O path_mirror[,path_cache_and_logfiles])");
|
||||
#ifndef _WIN32
|
||||
infomsg(" %O chroot path to, must be r00t (-%O root_path)");
|
||||
#endif
|
||||
infomsg("");
|
||||
infomsg("Action options:");
|
||||
infomsg(" w *mirror web sites");
|
||||
@@ -489,10 +522,6 @@ void help(char *app, int more) {
|
||||
infomsg(" %cN maximum number of connections/seconds (*%c10)");
|
||||
infomsg
|
||||
(" GN pause transfer if N bytes reached, and wait until lock file is deleted");
|
||||
#if HTS_USEMMS
|
||||
infomsg
|
||||
(" %mN maximum mms stream download time in seconds (60=1 minute, 3600=1 hour)");
|
||||
#endif
|
||||
infomsg("");
|
||||
infomsg("Flow control:");
|
||||
infomsg(" cN number of multiple connections (*c8)");
|
||||
@@ -576,6 +605,8 @@ void help(char *app, int more) {
|
||||
infomsg
|
||||
(" %F footer string in Html code (-%F \"Mirrored [from host %s [file %s [at %s]]]\"");
|
||||
infomsg(" %l preffered language (-%l \"fr, en, jp, *\"");
|
||||
infomsg(" %a accepted formats (-%a \"text/html,image/png;q=0.9,*/*;q=0.1\"");
|
||||
infomsg(" %X additional HTTP header line (-%X \"X-Magic: 42\"");
|
||||
infomsg("");
|
||||
infomsg("Log, index, cache");
|
||||
infomsg
|
||||
@@ -632,7 +663,6 @@ void help(char *app, int more) {
|
||||
infomsg(" #T generate transfer ops. log every minutes");
|
||||
infomsg(" #u wait time");
|
||||
infomsg(" #Z generate transfer rate statictics every minutes");
|
||||
infomsg(" #! execute a shell command (-#! \"echo hello\")");
|
||||
infomsg("");
|
||||
infomsg
|
||||
("Dangerous options: (do NOT use unless you exactly know what you are doing)");
|
||||
@@ -644,7 +674,6 @@ void help(char *app, int more) {
|
||||
infomsg("Command-line specific options:");
|
||||
infomsg
|
||||
(" V execute system command after each files ($0 is the filename: -V \"rm \\$0\")");
|
||||
infomsg(" %U run the engine with another id when called as root (-%U smith)");
|
||||
infomsg
|
||||
(" %W use an external library function as a wrapper (-%W myfoo.so[,myparameters])");
|
||||
/* infomsg(" %O do a chroot before setuid"); */
|
||||
@@ -763,10 +792,10 @@ void help(char *app, int more) {
|
||||
infomsg("example: httrack --continue");
|
||||
infomsg("continues a mirror in the current folder");
|
||||
infomsg("");
|
||||
sprintf(info, "HTTrack version " HTTRACK_VERSION "%s (compiled " __DATE__ ")",
|
||||
sprintf(info, "HTTrack version " HTTRACK_VERSION "%s",
|
||||
hts_is_available());
|
||||
infomsg(info);
|
||||
infomsg("Copyright (C) Xavier Roche and other contributors");
|
||||
infomsg("Copyright (C) 1998-2014 Xavier Roche and other contributors");
|
||||
#ifdef HTS_PLATFORM_NAME
|
||||
infomsg("[compiled: " HTS_PLATFORM_NAME "]");
|
||||
#endif
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -44,11 +43,11 @@ Please visit our Website: http://www.httrack.com
|
||||
typedef struct httrackp httrackp;
|
||||
#endif
|
||||
|
||||
void infomsg(char *msg);
|
||||
void help(char *app, int more);
|
||||
void make_empty_index(char *str);
|
||||
void infomsg(const char *msg);
|
||||
void help(const char *app, int more);
|
||||
void make_empty_index(const char *str);
|
||||
void help_wizard(httrackp * opt);
|
||||
int help_query(char *list, int def);
|
||||
int help_query(const char *list, int def);
|
||||
void help_catchurl(const char *dest_path);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -41,7 +40,7 @@ Please visit our Website: http://www.httrack.com
|
||||
|
||||
#if HTS_MAKE_KEYWORD_INDEX
|
||||
#include "htshash.h"
|
||||
#include "htsinthash.h"
|
||||
#include "coucal.h"
|
||||
|
||||
/* Keyword Indexer Parameters */
|
||||
|
||||
@@ -104,7 +103,7 @@ Please visit our Website: http://www.httrack.com
|
||||
|
||||
/* End of Keyword Indexer Parameters */
|
||||
|
||||
int strcpos(char *adr, char c);
|
||||
int strcpos(const char *adr, char c);
|
||||
int mystrcmp(const void *_e1, const void *_e2);
|
||||
|
||||
// Global variables
|
||||
@@ -120,14 +119,12 @@ int hts_primindex_words = 0;
|
||||
*/
|
||||
void index_init(const char *indexpath) {
|
||||
#if HTS_MAKE_KEYWORD_INDEX
|
||||
#ifndef _WIN32_WCE
|
||||
/* remove(concat(indexpath,"index.txt")); */
|
||||
hts_index_init = 1;
|
||||
hts_primindex_size = 0;
|
||||
hts_primindex_words = 0;
|
||||
fp_tmpproject = tmpfile();
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -146,8 +143,8 @@ int index_keyword(const char *html_data, LLint size, const char *mime,
|
||||
int i = 0;
|
||||
|
||||
//
|
||||
int WordIndexSize = 1024;
|
||||
inthash WordIndexHash = NULL;
|
||||
//int WordIndexSize = 1024;
|
||||
coucal WordIndexHash = NULL;
|
||||
FILE *tmpfp = NULL;
|
||||
|
||||
//
|
||||
@@ -164,8 +161,8 @@ int index_keyword(const char *html_data, LLint size, const char *mime,
|
||||
|
||||
// Init ?
|
||||
if (hts_index_init) {
|
||||
UNLINK(concat(catbuff, indexpath, "index.txt"));
|
||||
UNLINK(concat(catbuff, indexpath, "sindex.html"));
|
||||
UNLINK(concat(catbuff, sizeof(catbuff), indexpath, "index.txt"));
|
||||
UNLINK(concat(catbuff, sizeof(catbuff), indexpath, "sindex.html"));
|
||||
hts_index_init = 0;
|
||||
}
|
||||
// Check MIME type
|
||||
@@ -175,11 +172,7 @@ int index_keyword(const char *html_data, LLint size, const char *mime,
|
||||
// FIXME - temporary fix for image/svg+xml (svg)
|
||||
// "IN XML" (html like, in fact :) )
|
||||
else if ((strfield2(mime, "image/svg+xml"))
|
||||
|| (strfield2(mime, "image/svg-xml"))
|
||||
#if HTS_USEMMS
|
||||
|| strfield2(mime, "video/x-ms-asf")
|
||||
#endif
|
||||
) {
|
||||
|| (strfield2(mime, "image/svg-xml"))) {
|
||||
inscript = 0;
|
||||
} else if ((strfield2(mime, "application/x-javascript"))
|
||||
|| (strfield2(mime, "text/css"))
|
||||
@@ -197,7 +190,7 @@ int index_keyword(const char *html_data, LLint size, const char *mime,
|
||||
|
||||
// Create hash structure
|
||||
// Hash tables rulez da world!
|
||||
WordIndexHash = inthash_new(WordIndexSize);
|
||||
WordIndexHash = coucal_new(0);
|
||||
if (!WordIndexHash)
|
||||
return 0;
|
||||
|
||||
@@ -259,7 +252,7 @@ int index_keyword(const char *html_data, LLint size, const char *mime,
|
||||
/* Store it ? */
|
||||
if (len >= KEYW_MIN_LEN) {
|
||||
hts_primindex_words++;
|
||||
if (inthash_inc(WordIndexHash, keyword)) { /* added new */
|
||||
if (coucal_inc(WordIndexHash, keyword)) { /* added new */
|
||||
fprintf(tmpfp, "%s\n", keyword);
|
||||
}
|
||||
}
|
||||
@@ -292,13 +285,13 @@ int index_keyword(const char *html_data, LLint size, const char *mime,
|
||||
if (strnotempty(line)) {
|
||||
intptr_t e = 0;
|
||||
|
||||
if (inthash_read(WordIndexHash, line, &e)) {
|
||||
if (coucal_read(WordIndexHash, line, &e)) {
|
||||
//if (e) {
|
||||
char BIGSTK savelst[HTS_URLMAXSIZE * 2];
|
||||
|
||||
e++; /* 0 means "once" */
|
||||
|
||||
if (strncmp((const char *) fslash(catbuff, (char *) indexpath), filename, strlen(indexpath)) == 0) // couper
|
||||
if (strncmp((const char *) fslash(catbuff, sizeof(catbuff), (const char *) indexpath), filename, strlen(indexpath)) == 0) // couper
|
||||
strcpybuff(savelst, filename + strlen(indexpath));
|
||||
else
|
||||
strcpybuff(savelst, filename);
|
||||
@@ -320,7 +313,7 @@ int index_keyword(const char *html_data, LLint size, const char *mime,
|
||||
tmpfp = NULL;
|
||||
|
||||
// Clear hash table
|
||||
inthash_delete(&WordIndexHash);
|
||||
coucal_delete(&WordIndexHash);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
@@ -365,9 +358,9 @@ void index_finish(const char *indexpath, int mode) {
|
||||
|
||||
// Write new file
|
||||
if (mode == 1) // TEXT
|
||||
fp = fopen(concat(catbuff, indexpath, "index.txt"), "wb");
|
||||
fp = fopen(concat(catbuff, sizeof(catbuff), indexpath, "index.txt"), "wb");
|
||||
else // HTML
|
||||
fp = fopen(concat(catbuff, indexpath, "sindex.html"), "wb");
|
||||
fp = fopen(concat(catbuff, sizeof(catbuff), indexpath, "sindex.html"), "wb");
|
||||
if (fp) {
|
||||
char current_word[KEYW_LEN + 32];
|
||||
char word[KEYW_LEN + 32];
|
||||
@@ -475,8 +468,8 @@ void index_finish(const char *indexpath, int mode) {
|
||||
/* Subroutines */
|
||||
|
||||
#if HTS_MAKE_KEYWORD_INDEX
|
||||
int strcpos(char *adr, char c) {
|
||||
char *apos = strchr(adr, c);
|
||||
int strcpos(const char *adr, char c) {
|
||||
const char *apos = strchr(adr, c);
|
||||
|
||||
if (apos)
|
||||
return (int) (apos - adr);
|
||||
@@ -485,8 +478,8 @@ int strcpos(char *adr, char c) {
|
||||
}
|
||||
|
||||
int mystrcmp(const void *_e1, const void *_e2) {
|
||||
char **e1 = (char **) _e1;
|
||||
char **e2 = (char **) _e2;
|
||||
const char *const*const e1 = (const char *const*) _e1;
|
||||
const char *const*const e2 = (const char *const*) _e2;
|
||||
|
||||
return strcmp(*e1, *e2);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
|
||||
397
src/htsinthash.c
397
src/htsinthash.c
@@ -1,397 +0,0 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
|
||||
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 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Important notes:
|
||||
|
||||
- We hereby ask people using this source NOT to use it in purpose of grabbing
|
||||
emails addresses, or collecting any other private information on persons.
|
||||
This would disgrace our work, and spoil the many hours we spent on it.
|
||||
|
||||
Please visit our Website: http://www.httrack.com
|
||||
*/
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/* File: httrack.c subroutines: */
|
||||
/* hash table system (fast index) */
|
||||
/* Author: Xavier Roche */
|
||||
/* ------------------------------------------------------------ */
|
||||
|
||||
/* Internal engine bytecode */
|
||||
#define HTS_INTERNAL_BYTECODE
|
||||
|
||||
#include "htsinthash.h"
|
||||
|
||||
/* specific definitions */
|
||||
#include "htsbase.h"
|
||||
#include "htsmd5.h"
|
||||
/* END specific definitions */
|
||||
|
||||
/* Specific macros */
|
||||
#ifdef NO_MALLOCT
|
||||
#undef malloct
|
||||
#undef freet
|
||||
#undef calloct
|
||||
#undef strcpybuff
|
||||
#endif
|
||||
#ifndef malloct
|
||||
#define malloct malloc
|
||||
#define freet free
|
||||
#define calloct calloc
|
||||
#define strcpybuff strcpy
|
||||
#endif
|
||||
|
||||
// static functions
|
||||
|
||||
static void inthash_delchain(inthash_chain * hash,
|
||||
t_inthash_freehandler free_handler);
|
||||
static void inthash_default_free_handler(void *value);
|
||||
static unsigned long int inthash_key(const char *value);
|
||||
static void inthash_init(inthash hashtable);
|
||||
|
||||
// inthash -- simple hash table, using a key (char[]) and a value (ulong int)
|
||||
|
||||
static unsigned long int inthash_key(const char *value) {
|
||||
return md5sum32(value);
|
||||
}
|
||||
|
||||
int inthash_read_pvoid(inthash hashtable, const char *name, void **pvalue) {
|
||||
inthash_value value = INTHASH_VALUE_NULL;
|
||||
int ret =
|
||||
inthash_read_value(hashtable, name, (pvalue != NULL) ? &value : NULL);
|
||||
if (pvalue != NULL)
|
||||
*pvalue = value.ptr;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int inthash_write_pvoid(inthash hashtable, const char *name, void *pvalue) {
|
||||
inthash_value value = INTHASH_VALUE_NULL;
|
||||
|
||||
value.ptr = pvalue;
|
||||
return inthash_write_value(hashtable, name, value);
|
||||
}
|
||||
|
||||
void inthash_add_pvoid(inthash hashtable, const char *name, void *pvalue) {
|
||||
inthash_value value = INTHASH_VALUE_NULL;
|
||||
|
||||
value.ptr = pvalue;
|
||||
inthash_add_value(hashtable, name, value);
|
||||
}
|
||||
|
||||
// Check for duplicate entry (==1 : added)
|
||||
int inthash_write(inthash hashtable, const char *name, intptr_t intvalue) {
|
||||
inthash_value value = INTHASH_VALUE_NULL;
|
||||
|
||||
value.intg = intvalue;
|
||||
return inthash_write_value(hashtable, name, value);
|
||||
}
|
||||
|
||||
int inthash_write_value(inthash hashtable, const char *name,
|
||||
inthash_value value) {
|
||||
int pos = (inthash_key(name) % hashtable->hash_size);
|
||||
inthash_chain *h = hashtable->hash[pos];
|
||||
|
||||
while(h) {
|
||||
if (strcmp(h->name, name) == 0) {
|
||||
/* Delete element */
|
||||
if (hashtable->flag_valueismalloc) {
|
||||
void *ptr = h->value.ptr;
|
||||
|
||||
if (ptr != NULL) {
|
||||
if (hashtable->free_handler)
|
||||
hashtable->free_handler(ptr);
|
||||
else
|
||||
freet(ptr);
|
||||
}
|
||||
}
|
||||
/* Insert */
|
||||
h->value = value;
|
||||
return 0;
|
||||
}
|
||||
h = h->next;
|
||||
}
|
||||
// Not found, add it!
|
||||
inthash_add_value(hashtable, name, value);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Increment pos value, create one if necessary (=0)
|
||||
// (==1 : created)
|
||||
int inthash_inc(inthash hashtable, const char *name) {
|
||||
intptr_t value = 0;
|
||||
int r = 0;
|
||||
|
||||
if (inthash_read(hashtable, name, &value)) {
|
||||
value++;
|
||||
} else { /* create new value */
|
||||
value = 0;
|
||||
r = 1;
|
||||
}
|
||||
inthash_write(hashtable, name, value);
|
||||
return (r);
|
||||
}
|
||||
|
||||
// Does not check for duplicate entry
|
||||
void inthash_add(inthash hashtable, const char *name, intptr_t intvalue) {
|
||||
inthash_value value = INTHASH_VALUE_NULL;
|
||||
|
||||
memset(&value, 0, sizeof(value));
|
||||
value.intg = intvalue;
|
||||
inthash_add_value(hashtable, name, value);
|
||||
}
|
||||
|
||||
void inthash_add_value(inthash hashtable, const char *name, inthash_value value) {
|
||||
int pos = (inthash_key(name) % hashtable->hash_size);
|
||||
inthash_chain **h = &hashtable->hash[pos];
|
||||
|
||||
while(*h)
|
||||
h = &((*h)->next);
|
||||
*h = (inthash_chain *) calloct(1, sizeof(inthash_chain)
|
||||
+ strlen(name) + 2);
|
||||
if (*h) {
|
||||
(*h)->name = ((char *) (*h)) + sizeof(inthash_chain);
|
||||
(*h)->next = NULL;
|
||||
strcpybuff((*h)->name, name);
|
||||
(*h)->value = value;
|
||||
hashtable->nitems++;
|
||||
}
|
||||
}
|
||||
|
||||
void *inthash_addblk(inthash hashtable, const char *name, int blksize) {
|
||||
int pos = (inthash_key(name) % hashtable->hash_size);
|
||||
inthash_chain **h = &hashtable->hash[pos];
|
||||
|
||||
while(*h)
|
||||
h = &((*h)->next);
|
||||
*h = (inthash_chain *) calloct(1, sizeof(inthash_chain)
|
||||
+ strlen(name) + 2 + blksize);
|
||||
if (*h) {
|
||||
(*h)->name = ((char *) (*h)) + sizeof(inthash_chain);
|
||||
(*h)->next = NULL;
|
||||
strcpybuff((*h)->name, name);
|
||||
(*h)->value.ptr =
|
||||
(void *) (((char *) (*h)) + sizeof(inthash_chain) + strlen(name) + 2);
|
||||
hashtable->nitems++;
|
||||
return (*h)->value.ptr;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int inthash_read(inthash hashtable, const char *name, intptr_t * intvalue) {
|
||||
inthash_value value = INTHASH_VALUE_NULL;
|
||||
int ret =
|
||||
inthash_read_value(hashtable, name, (intvalue != NULL) ? &value : NULL);
|
||||
if (intvalue != NULL)
|
||||
*intvalue = value.intg;
|
||||
return ret;
|
||||
}
|
||||
|
||||
int inthash_read_value(inthash hashtable, const char *name,
|
||||
inthash_value * value) {
|
||||
int pos = (inthash_key(name) % hashtable->hash_size);
|
||||
inthash_chain *h = hashtable->hash[pos];
|
||||
|
||||
while(h) {
|
||||
if (strcmp(h->name, name) == 0) {
|
||||
if (value != NULL)
|
||||
*value = h->value;
|
||||
return 1;
|
||||
}
|
||||
h = h->next;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int inthash_exists(inthash hashtable, const char *name) {
|
||||
return inthash_read_value(hashtable, name, NULL);
|
||||
}
|
||||
|
||||
int inthash_remove(inthash hashtable, const char *name) {
|
||||
int pos = (inthash_key(name) % hashtable->hash_size);
|
||||
inthash_chain **h = &hashtable->hash[pos];
|
||||
t_inthash_freehandler free_handler = NULL;
|
||||
|
||||
if (hashtable->flag_valueismalloc) {
|
||||
if (hashtable->free_handler)
|
||||
free_handler = hashtable->free_handler;
|
||||
else
|
||||
free_handler = inthash_default_free_handler;
|
||||
}
|
||||
while(*h) {
|
||||
if (strcmp((*h)->name, name) == 0) {
|
||||
inthash_chain *next;
|
||||
|
||||
if (free_handler) {
|
||||
if ((*h)->value.ptr) {
|
||||
void *ptr = (*h)->value.ptr;
|
||||
|
||||
if (free_handler)
|
||||
free_handler(ptr);
|
||||
else
|
||||
freet(ptr);
|
||||
(*h)->value.ptr = 0;
|
||||
}
|
||||
}
|
||||
next = (*h)->next;
|
||||
freet(*h);
|
||||
*h = next;
|
||||
hashtable->nitems--;
|
||||
return 1;
|
||||
}
|
||||
h = &((*h)->next);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
int inthash_readptr(inthash hashtable, const char *name, intptr_t * value) {
|
||||
int ret;
|
||||
|
||||
*value = 0;
|
||||
ret = inthash_read(hashtable, name, value);
|
||||
if (*value == 0)
|
||||
ret = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void inthash_init(inthash hashtable) {
|
||||
unsigned int i;
|
||||
|
||||
for(i = 0; i < hashtable->hash_size; i++) {
|
||||
hashtable->hash[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static void inthash_delchain(inthash_chain * hash,
|
||||
t_inthash_freehandler free_handler) {
|
||||
while(hash != NULL) {
|
||||
inthash_chain *next = hash->next;
|
||||
|
||||
if (free_handler) { // pos is a malloc() block, delete it!
|
||||
if (hash->value.ptr) {
|
||||
void *ptr = hash->value.ptr;
|
||||
|
||||
if (free_handler)
|
||||
free_handler(ptr);
|
||||
else
|
||||
freet(ptr);
|
||||
hash->value.ptr = 0;
|
||||
}
|
||||
}
|
||||
freet(hash);
|
||||
hash = next;
|
||||
}
|
||||
}
|
||||
|
||||
static void inthash_default_free_handler(void *value) {
|
||||
if (value)
|
||||
freet(value);
|
||||
}
|
||||
|
||||
// --
|
||||
|
||||
inthash inthash_new(int size) {
|
||||
inthash hashtable = (inthash) calloct(1, sizeof(struct_inthash));
|
||||
|
||||
if (hashtable) {
|
||||
hashtable->hash_size = 0;
|
||||
hashtable->flag_valueismalloc = 0;
|
||||
if ((hashtable->hash =
|
||||
(inthash_chain **) calloct(size, sizeof(inthash_chain *)))) {
|
||||
hashtable->hash_size = size;
|
||||
inthash_init(hashtable);
|
||||
}
|
||||
hashtable->nitems = 0;
|
||||
}
|
||||
return hashtable;
|
||||
}
|
||||
|
||||
int inthash_created(inthash hashtable) {
|
||||
if (hashtable)
|
||||
if (hashtable->hash)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void inthash_value_is_malloc(inthash hashtable, int flag) {
|
||||
hashtable->flag_valueismalloc = flag;
|
||||
}
|
||||
|
||||
void inthash_value_set_free_handler(inthash hashtable,
|
||||
t_inthash_freehandler free_handler) {
|
||||
hashtable->free_handler = free_handler;
|
||||
}
|
||||
|
||||
unsigned int inthash_nitems(inthash hashtable) {
|
||||
if (hashtable != NULL)
|
||||
return hashtable->nitems;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void inthash_delete(inthash * hashtable) {
|
||||
if (hashtable) {
|
||||
if (*hashtable) {
|
||||
if ((*hashtable)->hash) {
|
||||
unsigned int i;
|
||||
t_inthash_freehandler free_handler = NULL;
|
||||
|
||||
if ((*hashtable)->flag_valueismalloc) {
|
||||
if ((*hashtable)->free_handler)
|
||||
free_handler = (*hashtable)->free_handler;
|
||||
else
|
||||
free_handler = inthash_default_free_handler;
|
||||
}
|
||||
for(i = 0; i < (*hashtable)->hash_size; i++) {
|
||||
inthash_delchain((*hashtable)->hash[i], free_handler);
|
||||
(*hashtable)->hash[i] = NULL;
|
||||
}
|
||||
freet((*hashtable)->hash);
|
||||
(*hashtable)->hash = NULL;
|
||||
}
|
||||
freet(*hashtable);
|
||||
*hashtable = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Enumerators
|
||||
|
||||
struct_inthash_enum inthash_enum_new(inthash hashtable) {
|
||||
struct_inthash_enum e;
|
||||
|
||||
memset(&e, 0, sizeof(e));
|
||||
e.index = 0;
|
||||
e.item = NULL;
|
||||
e.table = hashtable;
|
||||
return e;
|
||||
}
|
||||
|
||||
inthash_chain *inthash_enum_next(struct_inthash_enum * e) {
|
||||
inthash_chain *item = NULL;
|
||||
|
||||
if (e != NULL) {
|
||||
while(e->item == NULL && e->index < (int) e->table->hash_size) {
|
||||
e->item = e->table->hash[e->index];
|
||||
e->index++;
|
||||
}
|
||||
if (e->item != NULL) {
|
||||
item = e->item;
|
||||
e->item = e->item->next;
|
||||
}
|
||||
}
|
||||
return item;
|
||||
}
|
||||
140
src/htsinthash.h
140
src/htsinthash.h
@@ -1,140 +0,0 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
|
||||
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 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Important notes:
|
||||
|
||||
- We hereby ask people using this source NOT to use it in purpose of grabbing
|
||||
emails addresses, or collecting any other private information on persons.
|
||||
This would disgrace our work, and spoil the many hours we spent on it.
|
||||
|
||||
Please visit our Website: http://www.httrack.com
|
||||
*/
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/* File: httrack.c subroutines: */
|
||||
/* hash table system (fast index) */
|
||||
/* Author: Xavier Roche */
|
||||
/* ------------------------------------------------------------ */
|
||||
|
||||
// inthash -- simple hash table, using a key (char[]) and a value (uintptr_t)
|
||||
|
||||
#ifndef HTSINTHASH_DEFH
|
||||
#define HTSINTHASH_DEFH
|
||||
|
||||
/* Includes */
|
||||
#ifdef _WIN32
|
||||
#include <stddef.h>
|
||||
#elif (defined(SOLARIS) || defined(sun) || defined(HAVE_INTTYPES_H) \
|
||||
|| defined(BSD) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD_kernel__))
|
||||
#include <inttypes.h>
|
||||
#else
|
||||
#include <stdint.h>
|
||||
#endif
|
||||
|
||||
// value
|
||||
typedef union inthash_value {
|
||||
uintptr_t intg; /* integer value */
|
||||
void *ptr; /* ptr value */
|
||||
} inthash_value;
|
||||
|
||||
#define INTHASH_VALUE_NULL { 0 }
|
||||
|
||||
// simple hash table for other routines
|
||||
#ifndef HTS_DEF_FWSTRUCT_inthash_chain
|
||||
#define HTS_DEF_FWSTRUCT_inthash_chain
|
||||
typedef struct inthash_chain inthash_chain;
|
||||
#endif
|
||||
struct inthash_chain {
|
||||
char *name; /* key (name) */
|
||||
inthash_value value; /* value */
|
||||
struct inthash_chain *next; /* next element */
|
||||
};
|
||||
|
||||
typedef void (*t_inthash_freehandler) (void *value);
|
||||
|
||||
/* inthash structure */
|
||||
#ifndef HTS_DEF_FWSTRUCT_struct_inthash
|
||||
#define HTS_DEF_FWSTRUCT_struct_inthash
|
||||
typedef struct struct_inthash struct_inthash, *inthash;
|
||||
#endif
|
||||
struct struct_inthash {
|
||||
inthash_chain **hash;
|
||||
unsigned int nitems;
|
||||
t_inthash_freehandler free_handler;
|
||||
unsigned int hash_size;
|
||||
unsigned short flag_valueismalloc;
|
||||
};
|
||||
|
||||
// enumeration
|
||||
#ifndef HTS_DEF_FWSTRUCT_struct_inthash_enum
|
||||
#define HTS_DEF_FWSTRUCT_struct_inthash_enum
|
||||
typedef struct struct_inthash_enum struct_inthash_enum;
|
||||
#endif
|
||||
struct struct_inthash_enum {
|
||||
inthash table;
|
||||
int index;
|
||||
inthash_chain *item;
|
||||
};
|
||||
|
||||
/* Library internal definictions */
|
||||
#ifdef HTS_INTERNAL_BYTECODE
|
||||
|
||||
// main functions:
|
||||
|
||||
/* Hash functions: */
|
||||
inthash inthash_new(int size); /* Create a new hash table */
|
||||
int inthash_created(inthash hashtable); /* Test if the hash table was successfully created */
|
||||
unsigned int inthash_nitems(inthash hashtable); /* Number of items */
|
||||
void inthash_delete(inthash * hashtable); /* Delete an hash table */
|
||||
void inthash_value_is_malloc(inthash hashtable, int flag); /* Is the 'value' member a value that needs to be free()'ed ? */
|
||||
void inthash_value_set_free_handler(inthash hashtable, /* value free() handler (default one is 'free') */
|
||||
t_inthash_freehandler free_handler);
|
||||
|
||||
/* */
|
||||
int inthash_read(inthash hashtable, const char *name, intptr_t * intvalue); /* Read entry from the hash table */
|
||||
int inthash_readptr(inthash hashtable, const char *name, intptr_t * intvalue); /* Same function, but returns 0 upon null ptr */
|
||||
int inthash_exists(inthash hashtable, const char *name); /* Is the key existing ? */
|
||||
|
||||
/* */
|
||||
int inthash_read_value(inthash hashtable, const char *name,
|
||||
inthash_value * value);
|
||||
int inthash_write_value(inthash hashtable, const char *name,
|
||||
inthash_value value);
|
||||
void inthash_add_value(inthash hashtable, const char *name,
|
||||
inthash_value value);
|
||||
/* */
|
||||
int inthash_read_pvoid(inthash hashtable, const char *name, void **value);
|
||||
int inthash_write_pvoid(inthash hashtable, const char *name, void *value);
|
||||
void inthash_add_pvoid(inthash hashtable, const char *name, void *value);
|
||||
|
||||
/* */
|
||||
void inthash_add(inthash hashtable, const char *name, intptr_t value); /* Add entry in the hash table */
|
||||
void *inthash_addblk(inthash hashtable, const char *name, int blksize); /* Add entry in the hash table and set value to a new memory block */
|
||||
int inthash_write(inthash hashtable, const char *name, intptr_t value); /* Overwrite/add entry in the hash table */
|
||||
int inthash_inc(inthash hashtable, const char *name); /* Increment entry in the hash table */
|
||||
int inthash_remove(inthash hashtable, const char *name); /* Remove an entry from the hashtable */
|
||||
|
||||
/* */
|
||||
struct_inthash_enum inthash_enum_new(inthash hashtable); /* Start a new enumerator */
|
||||
inthash_chain *inthash_enum_next(struct_inthash_enum * e); /* Fetch an item in the enumerator */
|
||||
|
||||
/* End of hash functions: */
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -173,7 +172,7 @@ static int hts_parse_java(t_hts_callbackarg * carg, httrackp * opt,
|
||||
#if JAVADEBUG
|
||||
printf("fopen\n");
|
||||
#endif
|
||||
if ((fpout = FOPEN(fconv(catbuff, file), "r+b")) == NULL) {
|
||||
if ((fpout = FOPEN(fconv(catbuff, sizeof(catbuff), file), "r+b")) == NULL) {
|
||||
//fprintf(stderr, "Cannot open input file.\n");
|
||||
sprintf(str->err_msg, "Unable to open file %s", file);
|
||||
return 0; // une erreur..
|
||||
@@ -447,12 +446,14 @@ static RESP_STRUCT readtable(htsmoduleStruct * str, FILE * fp,
|
||||
static unsigned short int readshort(FILE * fp) {
|
||||
unsigned short int valint;
|
||||
|
||||
fread(&valint, sizeof(valint), 1, fp);
|
||||
|
||||
if (reverse_endian())
|
||||
return hts_swap16(valint);
|
||||
else
|
||||
return valint;
|
||||
if (fread(&valint, sizeof(valint), 1, fp) == 1) {
|
||||
if (reverse_endian())
|
||||
return hts_swap16(valint);
|
||||
else
|
||||
return valint;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -476,7 +477,7 @@ static int tris(httrackp * opt, char *buffer) {
|
||||
if (strnotempty(type)) // type reconnu!
|
||||
return 1;
|
||||
// ajout RX 05/2001
|
||||
else if (is_dyntype(get_ext(catbuff, buffer))) // asp,cgi...
|
||||
else if (is_dyntype(get_ext(catbuff, sizeof(catbuff), buffer))) // asp,cgi...
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
@@ -485,31 +486,32 @@ static int tris(httrackp * opt, char *buffer) {
|
||||
static char *printname(char rname[1024], char name[1024]) {
|
||||
char *p;
|
||||
char *p1;
|
||||
int j;
|
||||
size_t j;
|
||||
|
||||
rname[0] = '\0';
|
||||
//
|
||||
|
||||
p = &name[0];
|
||||
|
||||
if (*p != '[')
|
||||
return "";
|
||||
if (*p != '[') {
|
||||
return rname; // ""
|
||||
}
|
||||
p += 2;
|
||||
//rname=(char*)calloct(strlen(name)+8,sizeof(char));
|
||||
p1 = rname;
|
||||
for(j = 0; j < (int) strlen(name); j++, p++) {
|
||||
for(j = 0; name[j] != '\0'; j++, p++) {
|
||||
if (*p == '/')
|
||||
*p1 = '.';
|
||||
if (*p == ';') {
|
||||
*p1 = '\0';
|
||||
strcat(rname, ".class");
|
||||
return (rname);
|
||||
return rname;
|
||||
} else
|
||||
*p1 = *p;
|
||||
p1++;
|
||||
}
|
||||
p1 -= 3;
|
||||
*p1 = '\0';
|
||||
return (rname);
|
||||
return rname;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
|
||||
1980
src/htslib.c
1980
src/htslib.c
File diff suppressed because it is too large
Load Diff
374
src/htslib.h
374
src/htslib.h
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -36,6 +35,8 @@ Please visit our Website: http://www.httrack.com
|
||||
#ifndef HTS_DEFH
|
||||
#define HTS_DEFH
|
||||
|
||||
#include "httrack-library.h"
|
||||
|
||||
/* Forward definitions */
|
||||
#ifndef HTS_DEF_FWSTRUCT_htsrequest
|
||||
#define HTS_DEF_FWSTRUCT_htsrequest
|
||||
@@ -49,6 +50,14 @@ typedef struct htsblk htsblk;
|
||||
#define HTS_DEF_FWSTRUCT_t_dnscache
|
||||
typedef struct t_dnscache t_dnscache;
|
||||
#endif
|
||||
#ifndef HTS_DEF_FWSTRUCT_lien_adrfil
|
||||
#define HTS_DEF_FWSTRUCT_lien_adrfil
|
||||
typedef struct lien_adrfil lien_adrfil;
|
||||
#endif
|
||||
#ifndef HTS_DEF_FWSTRUCT_lien_adrfilsave
|
||||
#define HTS_DEF_FWSTRUCT_lien_adrfilsave
|
||||
typedef struct lien_adrfilsave lien_adrfilsave;
|
||||
#endif
|
||||
|
||||
/* définitions globales */
|
||||
#include "htsglobal.h"
|
||||
@@ -93,85 +102,8 @@ MSVC2003INLINEBUG HTS_STATIC char *getHtsOptBuff_(httrackp * opt) {
|
||||
}
|
||||
|
||||
#undef MSVC2003INLINEBUG
|
||||
#define OPT_GET_BUFF(OPT) ( getHtsOptBuff_(OPT) )
|
||||
|
||||
// structure pour paramètres supplémentaires lors de la requête
|
||||
#ifndef HTS_DEF_FWSTRUCT_htsrequest_proxy
|
||||
#define HTS_DEF_FWSTRUCT_htsrequest_proxy
|
||||
typedef struct htsrequest_proxy htsrequest_proxy;
|
||||
#endif
|
||||
struct htsrequest_proxy {
|
||||
int active;
|
||||
char name[1024];
|
||||
int port;
|
||||
char bindhost[256]; // bind this host
|
||||
};
|
||||
|
||||
#ifndef HTS_DEF_FWSTRUCT_htsrequest
|
||||
#define HTS_DEF_FWSTRUCT_htsrequest
|
||||
typedef struct htsrequest htsrequest;
|
||||
#endif
|
||||
struct htsrequest {
|
||||
short int user_agent_send; // user agent (ex: httrack/1.0 [sun])
|
||||
short int http11; // l'en tête peut (doit) être signé HTTP/1.1 et non HTTP/1.0
|
||||
short int nokeepalive; // pas de keep-alive
|
||||
short int range_used; // Range utilisé
|
||||
short int nocompression; // Pas de compression
|
||||
short int flush_garbage; // recycled
|
||||
char user_agent[128];
|
||||
char referer[256];
|
||||
char from[256];
|
||||
char lang_iso[64];
|
||||
htsrequest_proxy proxy; // proxy
|
||||
};
|
||||
|
||||
// structure pour retour d'une connexion/prise d'en tête
|
||||
#ifndef HTS_DEF_FWSTRUCT_htsblk
|
||||
#define HTS_DEF_FWSTRUCT_htsblk
|
||||
typedef struct htsblk htsblk;
|
||||
#endif
|
||||
struct htsblk {
|
||||
int statuscode; // status-code, -1=erreur, 200=OK,201=..etc (cf RFC1945)
|
||||
short int notmodified; // page ou fichier NON modifié (transféré)
|
||||
short int is_write; // sortie sur disque (out) ou en mémoire (adr)
|
||||
short int is_chunk; // mode chunk
|
||||
short int compressed; // compressé?
|
||||
short int empty; // vide?
|
||||
short int keep_alive; // Keep-Alive?
|
||||
short int keep_alive_trailers; // ..with trailers extension
|
||||
int keep_alive_t; // KA timeout
|
||||
int keep_alive_max; // KA number of requests
|
||||
char *adr; // adresse du bloc de mémoire, NULL=vide
|
||||
char *headers; // adresse des en têtes si présents
|
||||
FILE *out; // écriture directe sur disque (si is_write=1)
|
||||
LLint size; // taille fichier
|
||||
char msg[80]; // message éventuel si échec ("\0"=non précisé)
|
||||
char contenttype[64]; // content-type ("text/html" par exemple)
|
||||
char charset[64]; // charset ("iso-8859-1" par exemple)
|
||||
char contentencoding[64]; // content-encoding ("gzip" par exemple)
|
||||
char *location; // on copie dedans éventuellement la véritable 'location'
|
||||
LLint totalsize; // taille totale à télécharger (-1=inconnue)
|
||||
short int is_file; // ce n'est pas une socket mais un descripteur de fichier si 1
|
||||
T_SOC soc; // ID socket
|
||||
SOCaddr address; // IP address
|
||||
int address_size; // IP address structure length
|
||||
FILE *fp; // fichier pour file://
|
||||
#if HTS_USEOPENSSL
|
||||
short int ssl; // is this connection a SSL one? (https)
|
||||
// BIO* ssl_soc; // SSL structure
|
||||
SSL *ssl_con; // connection structure
|
||||
#endif
|
||||
char lastmodified[64]; // Last-Modified
|
||||
char etag[64]; // Etag
|
||||
char cdispo[256]; // Content-Disposition coupé
|
||||
LLint crange; // Content-Range
|
||||
LLint crange_start; // Content-Range
|
||||
LLint crange_end; // Content-Range
|
||||
int debugid; // debug connection
|
||||
/* */
|
||||
htsrequest req; // paramètres pour la requête
|
||||
/*char digest[32+2]; // digest md5 généré par le moteur ("" si non généré) */
|
||||
};
|
||||
#define OPT_GET_BUFF(OPT) ( getHtsOptBuff_(OPT) )
|
||||
#define OPT_GET_BUFF_SIZE(OPT) ( sizeof(opt->state.concat.buff[0]) )
|
||||
|
||||
/* ANCIENNE STURCTURE pour cache 1.0 */
|
||||
#ifndef HTS_DEF_FWSTRUCT_OLD_t_proxy
|
||||
@@ -216,54 +148,42 @@ struct OLD_htsblk {
|
||||
typedef struct t_dnscache t_dnscache;
|
||||
#endif
|
||||
struct t_dnscache {
|
||||
char iadr[1024];
|
||||
struct t_dnscache *n;
|
||||
char host_addr[HTS_MAXADDRLEN]; // 4 octets (v4), ou 16 octets (v6)
|
||||
int host_length; // 4 normalement - ==0 alors en cours de résolution
|
||||
char host_addr[HTS_MAXADDRLEN]; // 4 octets (v4), ou 16 octets (v6)
|
||||
// ou >16 si sockaddr
|
||||
// ==-1 alors erreur (host n'éxiste pas)
|
||||
char iadr[1024];
|
||||
};
|
||||
|
||||
/* Library internal definictions */
|
||||
#ifdef HTS_INTERNAL_BYTECODE
|
||||
|
||||
extern htsmutex dns_lock;
|
||||
|
||||
// initialize an htsblk structure
|
||||
void hts_init_htsblk(htsblk * r);
|
||||
|
||||
// attach specific project log to hachtable logger
|
||||
void hts_set_hash_handler(coucal hashtable, httrackp *opt);
|
||||
|
||||
// version
|
||||
HTSEXT_API const char* hts_version(void);
|
||||
|
||||
// fonctions unix/winsock
|
||||
int hts_read(htsblk * r, char *buff, int size);
|
||||
|
||||
//int HTS_TOTAL_RECV_CHECK(int var);
|
||||
LLint check_downloadable_bytes(int rate);
|
||||
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API int hts_init(void);
|
||||
HTSEXT_API int hts_uninit(void);
|
||||
HTSEXT_API int hts_uninit_module(void);
|
||||
HTSEXT_API int hts_resetvar(void); /* dummy */
|
||||
HTSEXT_API void hts_debug(int level);
|
||||
HTSEXT_API httrackp *hts_create_opt(void);
|
||||
HTSEXT_API void hts_free_opt(httrackp * opt);
|
||||
HTSEXT_API void set_wrappers(httrackp * opt); /* LEGACY */
|
||||
HTSEXT_API int plug_wrapper(httrackp * opt, const char *moduleName,
|
||||
const char *argv);
|
||||
|
||||
HTSEXT_API char *hts_strdup(const char *string);
|
||||
HTSEXT_API void *hts_malloc(size_t size);
|
||||
HTSEXT_API void *hts_realloc(void *data, size_t size);
|
||||
HTSEXT_API void hts_free(void *data);
|
||||
#endif
|
||||
|
||||
// fonctions principales
|
||||
T_SOC http_fopen(httrackp * opt, char *adr, char *fil, htsblk * retour);
|
||||
T_SOC http_fopen(httrackp * opt, const char *adr, const char *fil, htsblk * retour);
|
||||
T_SOC http_xfopen(httrackp * opt, int mode, int treat, int waitconnect,
|
||||
char *xsend, char *adr, char *fil, htsblk * retour);
|
||||
int http_sendhead(httrackp * opt, t_cookie * cookie, int mode, char *xsend,
|
||||
char *adr, char *fil, char *referer_adr, char *referer_fil,
|
||||
const char *xsend, const char *adr, const char *fil, htsblk * retour);
|
||||
int http_sendhead(httrackp * opt, t_cookie * cookie, int mode, const char *xsend,
|
||||
const char *adr, const char *fil,
|
||||
const char *referer_adr, const char *referer_fil,
|
||||
htsblk * retour);
|
||||
htsblk httpget(httrackp * opt, char *url);
|
||||
|
||||
//int newhttp(char* iadr,char* err=NULL);
|
||||
T_SOC newhttp(httrackp * opt, const char *iadr, htsblk * retour, int port,
|
||||
@@ -272,52 +192,39 @@ HTS_INLINE void deletehttp(htsblk * r);
|
||||
HTS_INLINE int deleteaddr(htsblk * r);
|
||||
HTS_INLINE void deletesoc(T_SOC soc);
|
||||
HTS_INLINE void deletesoc_r(htsblk * r);
|
||||
htsblk http_location(httrackp * opt, char *adr, char *fil, char *loc);
|
||||
htsblk http_test(httrackp * opt, char *adr, char *fil, char *loc);
|
||||
htsblk http_test(httrackp * opt, const char *adr, const char *fil, char *loc);
|
||||
int check_readinput(htsblk * r);
|
||||
int check_readinput_t(T_SOC soc, int timeout);
|
||||
void http_fread(T_SOC soc, htsblk * retour);
|
||||
LLint http_fread1(htsblk * r);
|
||||
void treathead(t_cookie * cookie, char *adr, char *fil, htsblk * retour,
|
||||
void treathead(t_cookie * cookie, const char *adr, const char *fil, htsblk * retour,
|
||||
char *rcvd);
|
||||
void treatfirstline(htsblk * retour, char *rcvd);
|
||||
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API void infostatuscode(char *msg, int statuscode);
|
||||
#endif
|
||||
void treatfirstline(htsblk * retour, const char *rcvd);
|
||||
|
||||
// sous-fonctions
|
||||
htsblk xhttpget(httrackp * opt, char *adr, char *fil);
|
||||
htsblk http_gethead(httrackp * opt, char *adr, char *fil);
|
||||
LLint http_xfread1(htsblk * r, int bufl);
|
||||
HTS_INLINE t_hostent *hts_gethostbyname2(httrackp * opt, const char *iadr,
|
||||
void *v_buffer, const char **error);
|
||||
HTS_INLINE t_hostent *hts_gethostbyname(httrackp * opt, const char *iadr,
|
||||
void *v_buffer);
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API t_hostent *vxgethostbyname2(char *hostname, void *v_buffer, const char **error);
|
||||
HTSEXT_API t_hostent *vxgethostbyname(char *hostname, void *v_buffer);
|
||||
#endif
|
||||
t_hostent *_hts_ghbn(t_dnscache * cache, const char *iadr, t_hostent * retour);
|
||||
HTS_INLINE SOCaddr* hts_dns_resolve2(httrackp * opt, const char *iadr,
|
||||
SOCaddr *const addr,
|
||||
const char **error);
|
||||
HTS_INLINE SOCaddr* hts_dns_resolve(httrackp * opt, const char *iadr,
|
||||
SOCaddr *const addr);
|
||||
HTSEXT_API SOCaddr* hts_dns_resolve_nocache2(const char *const hostname,
|
||||
SOCaddr *const addr,
|
||||
const char **error);
|
||||
HTSEXT_API SOCaddr* hts_dns_resolve_nocache(const char *const hostname,
|
||||
SOCaddr *const addr);
|
||||
HTSEXT_API int check_hostname_dns(const char *const hostname);
|
||||
|
||||
int ftp_available(void);
|
||||
|
||||
#if HTS_DNSCACHE
|
||||
void hts_cache_free(t_dnscache * cache);
|
||||
int hts_dnstest(httrackp * opt, const char *_iadr);
|
||||
t_dnscache *_hts_cache(httrackp * opt);
|
||||
void hts_cache_free(t_dnscache *const cache);
|
||||
t_dnscache *hts_cache(httrackp * opt);
|
||||
#endif
|
||||
|
||||
// outils divers
|
||||
HTS_INLINE TStamp time_local(void);
|
||||
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API HTS_INLINE TStamp mtime_local(void);
|
||||
#endif
|
||||
void sec2str(char *s, TStamp t);
|
||||
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API void qsec2str(char *st, TStamp t);
|
||||
#endif
|
||||
void time_gmt_rfc822(char *s);
|
||||
void time_local_rfc822(char *s);
|
||||
struct tm *convert_time_rfc822(struct tm *buffer, const char *s);
|
||||
@@ -327,14 +234,8 @@ int get_filetime_rfc822(const char *file, char *date);
|
||||
HTS_INLINE void time_rfc822(char *s, struct tm *A);
|
||||
HTS_INLINE void time_rfc822_local(char *s, struct tm *A);
|
||||
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API char *int2char(strc_int2bytes2 * strc, int n);
|
||||
HTSEXT_API char *int2bytes(strc_int2bytes2 * strc, LLint n);
|
||||
HTSEXT_API char *int2bytessec(strc_int2bytes2 * strc, long int n);
|
||||
HTSEXT_API char **int2bytes2(strc_int2bytes2 * strc, LLint n);
|
||||
#endif
|
||||
HTS_INLINE int sendc(htsblk * r, const char *s);
|
||||
int finput(int fd, char *s, int max);
|
||||
int finput(T_SOC fd, char *s, int max);
|
||||
int binput(char *buff, char *s, int max);
|
||||
int linput(FILE * fp, char *s, int max);
|
||||
int linputsoc(T_SOC soc, char *s, int max);
|
||||
@@ -342,136 +243,81 @@ int linputsoc_t(T_SOC soc, char *s, int max, int timeout);
|
||||
int linput_trim(FILE * fp, char *s, int max);
|
||||
int linput_cpp(FILE * fp, char *s, int max);
|
||||
void rawlinput(FILE * fp, char *s, int max);
|
||||
char *strstrcase(char *s, char *o);
|
||||
int ident_url_absolute(const char *url, char *adr, char *fil);
|
||||
const char *strstrcase(const char *s, const char *o);
|
||||
int ident_url_absolute(const char *url, lien_adrfil *adrfil);
|
||||
void fil_simplifie(char *f);
|
||||
int is_unicode_utf8(const char *buffer, size_t size);
|
||||
int is_unicode_utf8(const char *buffer, const size_t size);
|
||||
void map_characters(unsigned char *buffer, unsigned int size,
|
||||
unsigned int *map);
|
||||
int ishtml(httrackp * opt, const char *urlfil);
|
||||
int ishtml_ext(const char *a);
|
||||
int ishttperror(int err);
|
||||
void guess_httptype(httrackp * opt, char *s, const char *fil);
|
||||
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API void get_httptype(httrackp * opt, char *s, const char *fil,
|
||||
int flag);
|
||||
#endif
|
||||
int get_userhttptype(httrackp * opt, char *s, const char *fil);
|
||||
void give_mimext(char *s, const char *st);
|
||||
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API int is_knowntype(httrackp * opt, const char *fil);
|
||||
HTSEXT_API int is_userknowntype(httrackp * opt, const char *fil);
|
||||
HTSEXT_API int is_dyntype(const char *fil);
|
||||
HTSEXT_API char *get_ext(char *catbuff, const char *fil);
|
||||
#endif
|
||||
int may_unknown(httrackp * opt, const char *st);
|
||||
int may_bogus_multiple(httrackp * opt, const char *mime, const char *filename);
|
||||
int may_unknown2(httrackp * opt, const char *mime, const char *filename);
|
||||
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API char *jump_identification(const char *);
|
||||
HTSEXT_API char *jump_normalized(const char *);
|
||||
HTSEXT_API char *jump_toport(const char *);
|
||||
HTSEXT_API char *fil_normalized(const char *source, char *dest);
|
||||
HTSEXT_API char *adr_normalized(const char *source, char *dest);
|
||||
#endif
|
||||
char *strrchr_limit(const char *s, char c, const char *limit);
|
||||
char *strstr_limit(const char *s, const char *sub, const char *limit);
|
||||
HTS_INLINE char *jump_protocol(const char *source);
|
||||
const char *strrchr_limit(const char *s, char c, const char *limit);
|
||||
char *jump_protocol(char *source);
|
||||
const char *jump_protocol_const(const char *source);
|
||||
void code64(unsigned char *a, int size_a, unsigned char *b, int crlf);
|
||||
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API void unescape_amp(char *s);
|
||||
HTSEXT_API void escape_spc_url(char *s);
|
||||
HTSEXT_API void escape_in_url(char *s);
|
||||
HTSEXT_API void escape_uri(char *s);
|
||||
HTSEXT_API void escape_uri_utf(char *s);
|
||||
HTSEXT_API void escape_check_url(char *s);
|
||||
HTSEXT_API char *escape_check_url_addr(char *catbuff, const char *s);
|
||||
HTSEXT_API void x_escape_http(char *s, int mode);
|
||||
HTSEXT_API void x_escape_html(char *s);
|
||||
HTSEXT_API void escape_remove_control(char *s);
|
||||
HTSEXT_API void escape_for_html_print(char *s, char *d);
|
||||
HTSEXT_API void escape_for_html_print_full(char *s, char *d);
|
||||
#endif
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API char *unescape_http(char *catbuff, const char *s);
|
||||
HTSEXT_API char *unescape_http_unharm(char *catbuff, const char *s,
|
||||
int no_high);
|
||||
HTSEXT_API char *antislash_unescaped(char *catbuff, const char *s);
|
||||
HTSEXT_API char *concat(char *catbuff, const char *a, const char *b);
|
||||
HTSEXT_API char *fconcat(char *catbuff, const char *a, const char *b);
|
||||
HTSEXT_API char *fconv(char *catbuff, const char *a);
|
||||
#endif
|
||||
#define copychar(catbuff,a) concat(catbuff,(a),NULL)
|
||||
char *fslash(char *catbuff, const char *a);
|
||||
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API int hts_log(httrackp * opt, const char *prefix, const char *msg);
|
||||
HTSEXT_API void hts_log_print(httrackp * opt, int type, const char *format,
|
||||
...) HTS_PRINTF_FUN(3, 4);
|
||||
#endif
|
||||
char *convtolower(char *catbuff, const char *a);
|
||||
void hts_lowcase(char *s);
|
||||
void hts_replace(char *s, char from, char to);
|
||||
int multipleStringMatch(const char *s, const char *match);
|
||||
|
||||
char *convtolower(char *catbuff, const char *a);
|
||||
void hts_lowcase(char *s);
|
||||
void hts_replace(char *s, char from, char to);
|
||||
int multipleStringMatch(const char *s, const char *match);
|
||||
|
||||
void fprintfio(FILE * fp, char *buff, char *prefix);
|
||||
void fprintfio(FILE * fp, const char *buff, const char *prefix);
|
||||
|
||||
#ifdef _WIN32
|
||||
#else
|
||||
int sig_ignore_flag(int setflag); // flag ignore
|
||||
int sig_ignore_flag(int setflag); // flag ignore
|
||||
#endif
|
||||
|
||||
void cut_path(char *fullpath, char *path, char *pname);
|
||||
int fexist(const char *s);
|
||||
int fexist_utf8(const char *s);
|
||||
void cut_path(char *fullpath, char *path, char *pname);
|
||||
int fexist(const char *s);
|
||||
int fexist_utf8(const char *s);
|
||||
|
||||
/*LLint fsize(const char* s); */
|
||||
off_t fpsize(FILE * fp);
|
||||
off_t fsize(const char *s);
|
||||
off_t fsize_utf8(const char *s);
|
||||
|
||||
/* root dir */
|
||||
#ifndef HTTRACK_DEFLIB
|
||||
HTSEXT_API char *hts_rootdir(char *file);
|
||||
#endif
|
||||
off_t fpsize(FILE * fp);
|
||||
off_t fsize(const char *s);
|
||||
off_t fsize_utf8(const char *s);
|
||||
|
||||
// Threads
|
||||
typedef void *(*beginthread_type) (void *);
|
||||
typedef void *(*beginthread_type) (void *);
|
||||
|
||||
/*unsigned long _beginthread( beginthread_type start_address, unsigned stack_size, void *arglist );*/
|
||||
|
||||
/* variables globales */
|
||||
extern HTSEXT_API hts_stat_struct HTS_STAT;
|
||||
extern int _DEBUG_HEAD;
|
||||
extern FILE *ioinfo;
|
||||
extern HTSEXT_API hts_stat_struct HTS_STAT;
|
||||
extern int _DEBUG_HEAD;
|
||||
extern FILE *ioinfo;
|
||||
|
||||
/* constantes */
|
||||
extern const char *hts_mime_keep[];
|
||||
extern const char *hts_mime[][2];
|
||||
extern const char *hts_main_mime[];
|
||||
extern const char *hts_detect[];
|
||||
extern const char *hts_detectbeg[];
|
||||
extern const char *hts_nodetect[];
|
||||
extern const char *hts_detectURL[];
|
||||
extern const char *hts_detectandleave[];
|
||||
extern const char *hts_detect_js[];
|
||||
extern const char *hts_mime_keep[];
|
||||
extern const char *hts_mime[][2];
|
||||
extern const char *hts_main_mime[];
|
||||
extern const char *hts_detect[];
|
||||
extern const char *hts_detectbeg[];
|
||||
extern const char *hts_nodetect[];
|
||||
extern const char *hts_detectURL[];
|
||||
extern const char *hts_detectandleave[];
|
||||
extern const char *hts_detect_js[];
|
||||
|
||||
// htsmodule.c definitions
|
||||
extern void *openFunctionLib(const char *file_);
|
||||
extern void *getFunctionPtr(void *handle, const char *fncname);
|
||||
extern void closeFunctionLib(void *handle);
|
||||
extern void *openFunctionLib(const char *file_);
|
||||
extern void *getFunctionPtr(void *handle, const char *fncname);
|
||||
extern void closeFunctionLib(void *handle);
|
||||
|
||||
extern void clearCallbacks(htscallbacks * chain);
|
||||
extern size_t hts_get_callback_offs(const char *name);
|
||||
int hts_set_callback(t_hts_htmlcheck_callbacks * callbacks,
|
||||
const char *name, void *function);
|
||||
void *hts_get_callback(t_hts_htmlcheck_callbacks * callbacks,
|
||||
const char *name);
|
||||
extern void clearCallbacks(htscallbacks * chain);
|
||||
int hts_set_callback(t_hts_htmlcheck_callbacks * callbacks,
|
||||
const char *name, void *function);
|
||||
void *hts_get_callback(t_hts_htmlcheck_callbacks * callbacks,
|
||||
const char *name);
|
||||
|
||||
#define CBSTRUCT(OPT) ((t_hts_htmlcheck_callbacks*) ((OPT)->callbacks_fun))
|
||||
#define GET_USERCALLBACK(OPT, NAME) ( CBSTRUCT(OPT)-> NAME .fun )
|
||||
@@ -574,6 +420,7 @@ HTSEXT_API void hts_log_print(httrackp * opt, int type, const char *format,
|
||||
|| (code) == 302 \
|
||||
|| (code) == 303 \
|
||||
|| (code) == 307 \
|
||||
|| (code) == 308 \
|
||||
)
|
||||
#define HTTP_IS_NOTMODIFIED(code) ( \
|
||||
(code) == 304 \
|
||||
@@ -583,7 +430,7 @@ HTSEXT_API void hts_log_print(httrackp * opt, int type, const char *format,
|
||||
|
||||
// compare le début de f avec s et retourne la position de la fin
|
||||
// 'A=a' (case insensitive)
|
||||
HTS_STATIC int strfield(const char *f, const char *s) {
|
||||
HTS_STATIC int strfield(const char *f, const char *s) {
|
||||
int r = 0;
|
||||
|
||||
while(streql(*f, *s) && ((*f) != 0) && ((*s) != 0)) {
|
||||
@@ -595,8 +442,9 @@ HTSEXT_API void hts_log_print(httrackp * opt, int type, const char *format,
|
||||
return r;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
HTS_STATIC int strcmpnocase(char *a, char *b) {
|
||||
}
|
||||
|
||||
HTS_STATIC int strcmpnocase(const char *a, const char *b) {
|
||||
while(*a) {
|
||||
int cmp = hichar(*a) - hichar(*b);
|
||||
|
||||
@@ -619,12 +467,6 @@ HTS_STATIC int strcmpnocase(char *a, char *b) {
|
||||
// is this MIME an hypertext MIME (text/html), html/js-style or other script/text type?
|
||||
#define HTS_HYPERTEXT_DEFAULT_MIME "text/html"
|
||||
|
||||
#if HTS_USEMMS
|
||||
#define OPT_MMS(a) (strfield2((a), "video/x-ms-asf") != 0)
|
||||
#else
|
||||
#define OPT_MMS(a) (0)
|
||||
#endif
|
||||
|
||||
#define is_html_mime_type(a) \
|
||||
( (strfield2((a),"text/html")!=0)\
|
||||
|| (strfield2((a),"application/xhtml+xml")!=0) \
|
||||
@@ -645,7 +487,6 @@ HTS_STATIC int strcmpnocase(char *a, char *b) {
|
||||
(strfield2((a),"audio/x-pn-realaudio")!=0) \
|
||||
|| (strfield2((a),"audio/x-mpegurl")!=0) \
|
||||
/*|| (strfield2((a),"text/xml")!=0) || (strfield2((a),"application/xml")!=0) : TODO: content check */ \
|
||||
|| OPT_MMS(a) \
|
||||
)
|
||||
|
||||
/* Library internal definictions */
|
||||
@@ -698,31 +539,16 @@ HTS_STATIC int compare_mime(httrackp * opt, const char *mime, const char *file,
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32_WCE_XXC
|
||||
extern char cwd[MAX_PATH + 1];
|
||||
HTS_STATIC char *getcwd_ce(char *buffer, int maxlen) {
|
||||
TCHAR fileUnc[MAX_PATH + 1];
|
||||
char *plast;
|
||||
|
||||
if (cwd[0] == 0) {
|
||||
GetModuleFileName(NULL, fileUnc, MAX_PATH);
|
||||
WideCharToMultiByte(CP_ACP, 0, fileUnc, -1, cwd, MAX_PATH, NULL, NULL);
|
||||
plast = strrchr(cwd, '\\');
|
||||
if (plast)
|
||||
*plast = 0;
|
||||
/* Special trick to keep start menu clean... */
|
||||
if (_stricmp(cwd, "\\windows\\start menu") == 0)
|
||||
strcpy(cwd, "\\Apps");
|
||||
// returns (size_t) -1 upon error
|
||||
static HTS_UNUSED size_t off_t_to_size_t(off_t o) {
|
||||
const size_t so = (size_t) o;
|
||||
if ((off_t) so == o) {
|
||||
return so;
|
||||
} else {
|
||||
return (size_t) -1;
|
||||
}
|
||||
if (buffer)
|
||||
strncpy(buffer, cwd, maxlen);
|
||||
return cwd;
|
||||
}
|
||||
|
||||
#undef getcwd
|
||||
#define getcwd getcwd_ce
|
||||
#endif
|
||||
|
||||
/* dirent() compatibility */
|
||||
#ifdef _WIN32
|
||||
#define HTS_DIRENT_SIZE 256
|
||||
|
||||
41
src/htsmd5.c
41
src/htsmd5.c
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -42,13 +41,15 @@ Please visit our Website: http://www.httrack.com
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <assert.h>
|
||||
#include "htsmd5.h"
|
||||
#include "md5.h"
|
||||
#include "htssafe.h"
|
||||
|
||||
int domd5mem(const char *buf, size_t len, char *digest, int asAscii) {
|
||||
int endian = 1;
|
||||
unsigned char bindigest[16];
|
||||
MD5_CTX ctx;
|
||||
struct MD5Context ctx;
|
||||
|
||||
MD5Init(&ctx, *((char *) &endian));
|
||||
MD5Update(&ctx, (const unsigned char *) buf, (unsigned int) len);
|
||||
@@ -78,3 +79,25 @@ unsigned long int md5sum32(const char *buff) {
|
||||
domd5mem(buff, strlen(buff), u.md5digest, 0);
|
||||
return u.hash;
|
||||
}
|
||||
|
||||
void md5selftest(void) {
|
||||
static const char str1[] = "The quick brown fox jumps over the lazy dog\n";
|
||||
static const char str1m[] = "37c4b87edffc5d198ff5a185cee7ee09";
|
||||
static const char str2[] = "Hello";
|
||||
static const char str2m[] = "8b1a9953c4611296a827abf8c47804d7";
|
||||
char digest[64];
|
||||
#define MDCHECK(VAR, VARMD) do { \
|
||||
memset(digest, 0xCC, sizeof(digest)); \
|
||||
domd5mem(VAR, sizeof(VAR) - 1, digest, 1); \
|
||||
if (strcmp(digest, VARMD) != 0) { \
|
||||
fprintf(stderr, \
|
||||
"error: md5 selftest failed: '%s' => '%s' (!= '%s')\n", \
|
||||
VAR, digest, VARMD); \
|
||||
assert(! "md5 selftest failed"); \
|
||||
} \
|
||||
} while(0)
|
||||
MDCHECK(str1, str1m);
|
||||
MDCHECK(str2, str2m);
|
||||
#undef MDCHECK
|
||||
fprintf(stderr, "md5 selftest succeeded\n");
|
||||
}
|
||||
|
||||
14
src/htsmd5.h
14
src/htsmd5.h
@@ -1,12 +1,12 @@
|
||||
/* ------------------------------------------------------------ */
|
||||
/*
|
||||
HTTrack Website Copier, Offline Browser for Windows and Unix
|
||||
Copyright (C) Xavier Roche and other contributors
|
||||
Copyright (C) 1998-2014 Xavier Roche and other contributors
|
||||
|
||||
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 any later version.
|
||||
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
|
||||
@@ -14,8 +14,7 @@ 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, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Important notes:
|
||||
|
||||
@@ -43,6 +42,7 @@ Please visit our Website: http://www.httrack.com
|
||||
#ifdef HTS_INTERNAL_BYTECODE
|
||||
int domd5mem(const char *buf, size_t len, char *digest, int asAscii);
|
||||
unsigned long int md5sum32(const char *buff);
|
||||
void md5selftest(void);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user