Import upstream version 1.4.10+git20171006.d3e085c, md5 9dea8865c9c1e81ad51ce6d9ed60bed1
Debian Janitor
4 years ago
5 | 5 | CMAKE_POLICY(SET CMP0015 OLD) |
6 | 6 | |
7 | 7 | # if you use the version 5, please change it to 5 |
8 | SET(USE_QT_VERSION 5) | |
9 | ||
10 | MESSAGE("Qt version for compiling: " ${USE_QT_VERSION}) | |
11 | ||
12 | IF(NOT ${USE_QT_VERSION} MATCHES "4" AND NOT ${USE_QT_VERSION} MATCHES "5") | |
13 | MESSAGE(FATAL_ERROR "-- Qt version must be set to 4 or 5!") | |
14 | ENDIF() | |
8 | # SET(USE_QT_VERSION 5) | |
9 | ||
10 | OPTION (USE_QT5 "Using of Qt5 version for compiling" ON) | |
11 | ||
12 | IF(USE_QT5) | |
13 | SET(USE_QT_VERSION 5) | |
14 | ELSE(${USE_QT5}) | |
15 | SET(USE_QT_VERSION 4) | |
16 | ENDIF(${USE_QT5}) | |
15 | 17 | |
16 | 18 | |
17 | 19 | OPTION (USE_DEBUGGER "Include in binary file debug information" OFF) |
18 | SET(USE_DEBUGGER false) | |
20 | # SET(USE_DEBUGGER false) | |
19 | 21 | |
20 | 22 | #enable or disable profiling info |
21 | 23 | # SET(USE_PROFILER false) |
24 | 26 | |
25 | 27 | |
26 | 28 | |
27 | IF(${USE_DEBUGGER}) | |
29 | IF(USE_DEBUGGER) | |
28 | 30 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_DEBUG} -Wall") |
29 | 31 | ELSE() |
30 | 32 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_RELEASE} -Wall") |
46 | 48 | |
47 | 49 | SET(CURRENT_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}) |
48 | 50 | |
49 | INCLUDE(HTTRAQTOutOfSourceBuild) # Disallow in-source builds | |
50 | INCLUDE(HTTRAQTGenerateDEF) # Convenience macro for linking Win32 DLLs using MSVC | |
51 | INCLUDE(HTTRAQTDependencies) | |
52 | INCLUDE(HTTRAQTWordSize) # Detect 32/64 bit platform | |
53 | INCLUDE(HTTRAQTCompiler) # Detect problematic compilers | |
51 | INCLUDE(OutOfSourceBuild) # Disallow in-source builds | |
52 | INCLUDE(GenerateDEF) # Convenience macro for linking Win32 DLLs using MSVC | |
53 | INCLUDE(Dependencies) | |
54 | # INCLUDE(HTTRAQTWordSize) # Detect 32/64 bit platform | |
55 | # INCLUDE(HTTRAQTCompiler) # Detect problematic compilers | |
54 | 56 | |
55 | 57 | # Set the HTTraQt version |
56 | 58 | #cat README | grep -E '^[0-9]+\.[0-9]+\.[0-9]+' | head -n 1 |
103 | 105 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-exceptions -fno-rtti") |
104 | 106 | |
105 | 107 | # options for gprof |
106 | IF(${USE_PROFILER}) | |
108 | IF(USE_PROFILER) | |
107 | 109 | SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg") |
108 | 110 | SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") |
109 | 111 | SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -pg") |
145 | 147 | ENDIF() |
146 | 148 | |
147 | 149 | |
148 | INCLUDE(HTTRAQTFindHttrack) | |
150 | INCLUDE(FindHttrack) | |
149 | 151 | |
150 | 152 | SET( HTTRACK_INCLUDES_DIR "" ) |
151 | 153 | |
176 | 178 | #ADD_SUBDIRECTORY(sources/icons) |
177 | 179 | |
178 | 180 | |
179 | INCLUDE_DIRECTORIES( ${HTTRACK_INCLUDES_DIR} ${CMAKE_SOURCE_DIR} $(CMAKE_CURRENT_SOURCE_DIR)/sources/options/includes $(CMAKE_CURRENT_SOURCE_DIR)/sources/main/includes ) | |
181 | INCLUDE_DIRECTORIES( ${HTTRACK_INCLUDES_DIR} ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/sources/options/includes ${CMAKE_CURRENT_SOURCE_DIR}/sources/main/includes ) | |
180 | 182 | |
181 | 183 | IF(${USE_QT_VERSION} MATCHES "4") |
182 | 184 | #QT4_WRAP_CPP(APP_HEADERS_MOC ${HTTRACK_HEADERS} ${MAIN_HEADERS} ${OPT_HEADERS} ) |
273 | 275 | # HTTRAQT_CHECK_OPTIONAL_DEPENDENCY(HTTRAQT_BUILD_3DS_IO_MODULE HTTRAQT_3DS_FOUND "lib3ds") |
274 | 276 | |
275 | 277 | # Capture system configuration |
276 | INCLUDE(HTTRAQTSystemConfiguration) | |
278 | INCLUDE(SystemConfiguration) | |
277 | 279 | |
278 | 280 | # Win32 configuration |
279 | 281 | IF(WIN32) |
18 | 18 | |
19 | 19 | Version history |
20 | 20 | |
21 | 1.4.10, russian translation fixed | |
22 | cmakelists bugfix | |
21 | 23 | 1.4.9, added options QT_USE_FAST_CONCATENATION, QT_USE_FAST_OPERATOR_PLUS |
22 | 24 | fixed generation of package dependencies list |
23 | 25 | fixed cmakelists settings for Qt5 version |
0 | #!/bin/bash | |
1 | ||
2 | CPPCHCK=$(type -p astyle) | |
3 | ||
4 | if [ ! -f "$CPPCHCK" ]; then | |
5 | # not found exit | |
6 | echo "please install astyle and restart this script" | |
7 | exit 0 | |
8 | fi | |
9 | ||
10 | set -e | |
11 | ||
12 | export ARTISTIC_STYLE_OPTIONS="\ | |
13 | --mode=c \ | |
14 | --style=k&r \ | |
15 | --indent=spaces=4 \ | |
16 | --indent-classes \ | |
17 | --indent-switches \ | |
18 | --indent-col1-comments \ | |
19 | --indent-preprocessor \ | |
20 | --break-blocks \ | |
21 | --pad-oper \ | |
22 | --add-brackets \ | |
23 | --convert-tabs \ | |
24 | --formatted \ | |
25 | --lineend=linux" | |
26 | ||
27 | astyle $ARTISTIC_STYLE_OPTIONS --suffix=none --recursive "sources/*.cpp" "sources/*.h"; |
0 | SET(HTTRAQT_REQUIRED_LIBRARIES) | |
1 | ||
2 | SET(HTTRAQT_OPTIONAL_LIBRARY_CONFIGURATIONS) | |
3 | SET(HTTRAQT_OPTIONAL_LIBRARIES) | |
4 | ||
5 | MACRO(HTTRAQT_CHECK_REQUIRED_DEPENDENCY FOUND LIBRARY URLS DESCRIPTION) | |
6 | LIST(APPEND HTTRAQT_REQUIRED_LIBRARIES ${LIBRARY}) | |
7 | IF(NOT ${FOUND}) | |
8 | SET(MESSAGE_TEXT "Couldn't find ${LIBRARY}, which is required to build HTTraQt.") | |
9 | SET(MESSAGE_TEXT "${MESSAGE_TEXT} You can obtain ${LIBRARY} from") | |
10 | SET(DELIMITER "") | |
11 | FOREACH(URL ${URLS}) | |
12 | SET(MESSAGE_TEXT "${MESSAGE_TEXT} ${DELIMITER} ${URL}") | |
13 | SET(DELIMITER "or") | |
14 | ENDFOREACH() | |
15 | SET(MESSAGE_TEXT "${MESSAGE_TEXT}.") | |
16 | SET(MESSAGE_TEXT "${MESSAGE_TEXT} ${DESCRIPTION}") | |
17 | MESSAGE(SEND_ERROR "${MESSAGE_TEXT}") | |
18 | ENDIF(NOT ${FOUND}) | |
19 | ENDMACRO(HTTRAQT_CHECK_REQUIRED_DEPENDENCY) | |
20 | ||
21 | MACRO(HTTRAQT_CHECK_OPTIONAL_DEPENDENCY CONFIG FOUND LIBRARY) | |
22 | LIST(APPEND HTTRAQT_OPTIONAL_LIBRARY_CONFIGURATIONS ${CONFIG}) | |
23 | LIST(APPEND HTTRAQT_OPTIONAL_LIBRARIES ${LIBRARY}) | |
24 | ||
25 | IF(${CONFIG}) | |
26 | IF(NOT ${FOUND}) | |
27 | MESSAGE(SEND_ERROR "Couldn't find the ${LIBRARY} library, which is required by ${CONFIG}.") | |
28 | ENDIF(NOT ${FOUND}) | |
29 | ENDIF(${CONFIG}) | |
30 | ENDMACRO(HTTRAQT_CHECK_OPTIONAL_DEPENDENCY) | |
31 | ||
32 | MACRO(HTTRAQT_CHECK_NGUI_DEPENDENCY CONFIG) | |
33 | IF(${CONFIG} AND NOT HTTRAQT_BUILD_NGUI_MODULE) | |
34 | MESSAGE(SEND_ERROR "HTTRAQT_BUILD_NGUI_MODULE is required by ${CONFIG}.") | |
35 | ENDIF(${CONFIG} AND NOT HTTRAQT_BUILD_NGUI_MODULE) | |
36 | ENDMACRO(HTTRAQT_CHECK_NGUI_DEPENDENCY) | |
37 | ||
38 | MACRO(HTTRAQT_CONDITIONAL_BUILD BUILD_OPTION BUILD_DIRECTORY) | |
39 | IF(${BUILD_OPTION}) | |
40 | ADD_SUBDIRECTORY(${BUILD_DIRECTORY}) | |
41 | ENDIF(${BUILD_OPTION}) | |
42 | ENDMACRO(HTTRAQT_CONDITIONAL_BUILD) | |
43 | ||
44 | MACRO(HTTRAQT_ADD_LIBRARY LIBRARY_NAME) | |
45 | ADD_LIBRARY(${LIBRARY_NAME} ${ARGN}) | |
46 | SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES VERSION "${HTTRAQT_SO_VERSION}") | |
47 | ENDMACRO() | |
48 |
0 | SET(HTTRAQT_HTTRACK_FOUND 0) | |
1 | ||
2 | # INCLUDE(HTTRAQTFindPkgConfig) | |
3 | # PKG_CHECK_MODULES(HTTRACK libhttrack2) | |
4 | ||
5 | ||
6 | SET ( HT_DIR "/usr/include/httrack/" ) | |
7 | IF(EXISTS "${HT_DIR}" AND IS_DIRECTORY "${HT_DIR}") | |
8 | SET ( HTTRACK_INCLUDES_DIR "${HT_DIR}" ) | |
9 | INCLUDE_DIRECTORIES(${HTTRACK_INCLUDES_DIR}) | |
10 | ELSE() | |
11 | SET ( HT_DIR "/usr/local/include/httrack/" ) | |
12 | IF(EXISTS "${HT_DIR}" AND IS_DIRECTORY "${HT_DIR}") | |
13 | SET ( HTTRACK_INCLUDES_DIR "${HT_DIR}" ) | |
14 | INCLUDE_DIRECTORIES(${HTTRACK_INCLUDES_DIR}) | |
15 | ENDIF() | |
16 | ENDIF() | |
17 | ||
18 | ||
19 | IF( NOT HTTRACK_INCLUDES_DIR ) | |
20 | MESSAGE(FATAL_ERROR "Please INSTALL the httrack, httrack-dev packages and try again") | |
21 | # RETURN() | |
22 | ELSE() | |
23 | SET (HTTRACK_FOUND 1) | |
24 | ENDIF() | |
25 | ||
26 | MESSAGE("httrack header directory found: " ${HTTRACK_INCLUDES_DIR}) | |
27 | ||
28 | FIND_LIBRARY( | |
29 | HTTRACK_LIBRARY NAMES httrack libhttrack.lib | |
30 | PATHS /usr/local/lib /usr/lib | |
31 | HINTS ${httrack_dirs1} ${httrack_dirs2} ${STAGING_LIBS_DIR} | |
32 | DOC "Path to httrack library." | |
33 | ) | |
34 | ||
35 | IF(NOT HTTRACK_LIBRARY) | |
36 | MESSAGE( | |
37 | FATAL_ERROR | |
38 | "Could not find httrack library.\n" | |
39 | "You may need to INSTALL a package named libhttrack-dev or similarly." | |
40 | ) | |
41 | ENDIF() | |
42 | ||
43 | IF(HTTRACK_FOUND) | |
44 | SET(HTTRAQT_HTTRACK_INCLUDE_DIRS | |
45 | ${HTTRACK_INCLUDES_DIR} | |
46 | ) | |
47 | ||
48 | SET(HTTRAQT_HTTRACK_LIB_DIRS | |
49 | ${HTTRACK_LIBRARY_DIRS} | |
50 | ) | |
51 | ||
52 | SET(HTTRAQT_HTTRACK_LIBS | |
53 | ${HTTRACK_LIBRARIES} | |
54 | ) | |
55 | ||
56 | SET(HTTRAQT_HTTRACK_FOUND 1) | |
57 | ENDIF(HTTRACK_FOUND) |
0 | # - a pkg-config module for CMake | |
1 | # | |
2 | # Usage: | |
3 | # pkg_check_modules(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*) | |
4 | # checks for all the given modules | |
5 | # | |
6 | # pkg_search_module(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*) | |
7 | # checks for given modules and uses the first working one | |
8 | # | |
9 | # When the 'REQUIRED' argument was set, macros will fail with an error | |
10 | # when module(s) could not be found | |
11 | # | |
12 | # It sets the following variables: | |
13 | # PKG_CONFIG_FOUND ... true iff pkg-config works on the system | |
14 | # PKG_CONFIG_EXECUTABLE ... pathname of the pkg-config program | |
15 | # <PREFIX>_FOUND ... set to 1 iff module(s) exist | |
16 | # | |
17 | # For the following variables two sets of values exist; first one is the | |
18 | # common one and has the given PREFIX. The second set contains flags | |
19 | # which are given out when pkgconfig was called with the '--static' | |
20 | # option. | |
21 | # <XPREFIX>_LIBRARIES ... only the libraries (w/o the '-l') | |
22 | # <XPREFIX>_LIBRARY_DIRS ... the paths of the libraries (w/o the '-L') | |
23 | # <XPREFIX>_LDFLAGS ... all required linker flags | |
24 | # <XPREFIX>_LDFLAGS_OTHERS ... all other linker flags | |
25 | # <XPREFIX>_INCLUDE_DIRS ... the '-I' preprocessor flags (w/o the '-I') | |
26 | # <XPREFIX>_CFLAGS ... all required cflags | |
27 | # <XPREFIX>_CFLAGS_OTHERS ... the other compiler flags | |
28 | # | |
29 | # <XPREFIX> = <PREFIX> for common case | |
30 | # <XPREFIX> = <PREFIX>_STATIC for static linking | |
31 | # | |
32 | # There are some special variables whose prefix depends on the count | |
33 | # of given modules. When there is only one module, <PREFIX> stays | |
34 | # unchanged. When there are multiple modules, the prefix will be | |
35 | # changed to <PREFIX>_<MODNAME>: | |
36 | # <XPREFIX>_VERSION ... version of the module | |
37 | # <XPREFIX>_PREFIX ... prefix-directory of the module | |
38 | # <XPREFIX>_INCLUDEDIR ... include-dir of the module | |
39 | # <XPREFIX>_LIBDIR ... lib-dir of the module | |
40 | # | |
41 | # <XPREFIX> = <PREFIX> when |MODULES| == 1, else | |
42 | # <XPREFIX> = <PREFIX>_<MODNAME> | |
43 | # | |
44 | # A <MODULE> parameter can have the following formats: | |
45 | # {MODNAME} ... matches any version | |
46 | # {MODNAME}>={VERSION} ... at least version <VERSION> is required | |
47 | # {MODNAME}={VERSION} ... exactly version <VERSION> is required | |
48 | # {MODNAME}<={VERSION} ... modules must not be newer than <VERSION> | |
49 | # | |
50 | # Examples | |
51 | # pkg_check_modules (GLIB2 glib-2.0) | |
52 | # | |
53 | # pkg_check_modules (GLIB2 glib-2.0>=2.10) | |
54 | # requires at least version 2.10 of glib2 and defines e.g. | |
55 | # GLIB2_VERSION=2.10.3 | |
56 | # | |
57 | # pkg_check_modules (FOO glib-2.0>=2.10 gtk+-2.0) | |
58 | # requires both glib2 and gtk2, and defines e.g. | |
59 | # FOO_glib-2.0_VERSION=2.10.3 | |
60 | # FOO_gtk+-2.0_VERSION=2.8.20 | |
61 | # | |
62 | # pkg_check_modules (XRENDER REQUIRED xrender) | |
63 | # defines e.g.: | |
64 | # XRENDER_LIBRARIES=Xrender;X11 | |
65 | # XRENDER_STATIC_LIBRARIES=Xrender;X11;pthread;Xau;Xdmcp | |
66 | # | |
67 | # pkg_search_module (BAR libxml-2.0 libxml2 libxml>=2) | |
68 | ||
69 | ||
70 | # Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> | |
71 | # | |
72 | # Redistribution and use, with or without modification, are permitted | |
73 | # provided that the following conditions are met: | |
74 | # | |
75 | # 1. Redistributions must retain the above copyright notice, this | |
76 | # list of conditions and the following disclaimer. | |
77 | # 2. The name of the author may not be used to endorse or promote | |
78 | # products derived from this software without specific prior | |
79 | # written permission. | |
80 | # | |
81 | # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | |
82 | # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
83 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
84 | # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY | |
85 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
86 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE | |
87 | # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
88 | # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER | |
89 | # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |
90 | # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN | |
91 | # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
92 | ||
93 | ||
94 | ### Common stuff #### | |
95 | set(PKG_CONFIG_VERSION 1) | |
96 | set(PKG_CONFIG_FOUND 0) | |
97 | ||
98 | find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC "pkg-config executable") | |
99 | mark_as_advanced(PKG_CONFIG_EXECUTABLE) | |
100 | ||
101 | if(PKG_CONFIG_EXECUTABLE) | |
102 | set(PKG_CONFIG_FOUND 1) | |
103 | endif(PKG_CONFIG_EXECUTABLE) | |
104 | ||
105 | ||
106 | # Unsets the given variables | |
107 | macro(_pkgconfig_unset var) | |
108 | set(${var} "" CACHE INTERNAL "") | |
109 | endmacro(_pkgconfig_unset) | |
110 | ||
111 | macro(_pkgconfig_set var value) | |
112 | set(${var} ${value} CACHE INTERNAL "") | |
113 | endmacro(_pkgconfig_set) | |
114 | ||
115 | # Invokes pkgconfig, cleans up the result and sets variables | |
116 | macro(_pkgconfig_invoke _pkglist _prefix _varname _regexp) | |
117 | set(_pkgconfig_invoke_result) | |
118 | ||
119 | execute_process( | |
120 | COMMAND ${PKG_CONFIG_EXECUTABLE} ${ARGN} ${_pkglist} | |
121 | OUTPUT_VARIABLE _pkgconfig_invoke_result | |
122 | RESULT_VARIABLE _pkgconfig_failed) | |
123 | ||
124 | if (_pkgconfig_failed) | |
125 | set(_pkgconfig_${_varname} "") | |
126 | _pkgconfig_unset(${_prefix}_${_varname}) | |
127 | else(_pkgconfig_failed) | |
128 | string(REGEX REPLACE "[\r\n]" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}") | |
129 | string(REGEX REPLACE " +$" "" _pkgconfig_invoke_result "${_pkgconfig_invoke_result}") | |
130 | ||
131 | if (NOT ${_regexp} STREQUAL "") | |
132 | string(REGEX REPLACE "${_regexp}" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}") | |
133 | endif(NOT ${_regexp} STREQUAL "") | |
134 | ||
135 | separate_arguments(_pkgconfig_invoke_result) | |
136 | ||
137 | #message(STATUS " ${_varname} ... ${_pkgconfig_invoke_result}") | |
138 | set(_pkgconfig_${_varname} ${_pkgconfig_invoke_result}) | |
139 | _pkgconfig_set(${_prefix}_${_varname} "${_pkgconfig_invoke_result}") | |
140 | endif(_pkgconfig_failed) | |
141 | endmacro(_pkgconfig_invoke) | |
142 | ||
143 | # Invokes pkgconfig two times; once without '--static' and once with | |
144 | # '--static' | |
145 | macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp) | |
146 | _pkgconfig_invoke("${_pkglist}" ${_prefix} ${_varname} "${cleanup_regexp}" ${ARGN}) | |
147 | _pkgconfig_invoke("${_pkglist}" ${_prefix} STATIC_${_varname} "${cleanup_regexp}" --static ${ARGN}) | |
148 | endmacro(_pkgconfig_invoke_dyn) | |
149 | ||
150 | # Splits given arguments into options and a package list | |
151 | macro(_pkgconfig_parse_options _result _is_req) | |
152 | set(${_is_req} 0) | |
153 | ||
154 | foreach(_pkg ${ARGN}) | |
155 | if (_pkg STREQUAL "REQUIRED") | |
156 | set(${_is_req} 1) | |
157 | endif (_pkg STREQUAL "REQUIRED") | |
158 | endforeach(_pkg ${ARGN}) | |
159 | ||
160 | set(${_result} ${ARGN}) | |
161 | list(REMOVE_ITEM ${_result} "REQUIRED") | |
162 | endmacro(_pkgconfig_parse_options) | |
163 | ||
164 | ### | |
165 | macro(_pkg_check_modules_internal _is_required _is_silent _prefix) | |
166 | _pkgconfig_unset(${_prefix}_FOUND) | |
167 | _pkgconfig_unset(${_prefix}_VERSION) | |
168 | _pkgconfig_unset(${_prefix}_PREFIX) | |
169 | _pkgconfig_unset(${_prefix}_INCLUDEDIR) | |
170 | _pkgconfig_unset(${_prefix}_LIBDIR) | |
171 | _pkgconfig_unset(${_prefix}_LIBS) | |
172 | _pkgconfig_unset(${_prefix}_LIBS_L) | |
173 | _pkgconfig_unset(${_prefix}_LIBS_PATHS) | |
174 | _pkgconfig_unset(${_prefix}_LIBS_OTHER) | |
175 | _pkgconfig_unset(${_prefix}_CFLAGS) | |
176 | _pkgconfig_unset(${_prefix}_CFLAGS_I) | |
177 | _pkgconfig_unset(${_prefix}_CFLAGS_OTHER) | |
178 | _pkgconfig_unset(${_prefix}_STATIC_LIBDIR) | |
179 | _pkgconfig_unset(${_prefix}_STATIC_LIBS) | |
180 | _pkgconfig_unset(${_prefix}_STATIC_LIBS_L) | |
181 | _pkgconfig_unset(${_prefix}_STATIC_LIBS_PATHS) | |
182 | _pkgconfig_unset(${_prefix}_STATIC_LIBS_OTHER) | |
183 | _pkgconfig_unset(${_prefix}_STATIC_CFLAGS) | |
184 | _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_I) | |
185 | _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_OTHER) | |
186 | ||
187 | # create a better addressable variable of the modules and calculate its size | |
188 | set(_pkg_check_modules_list ${ARGN}) | |
189 | list(LENGTH _pkg_check_modules_list _pkg_check_modules_cnt) | |
190 | ||
191 | if(PKG_CONFIG_EXECUTABLE) | |
192 | # give out status message telling checked module | |
193 | if (NOT ${_is_silent}) | |
194 | if (_pkg_check_modules_cnt EQUAL 1) | |
195 | message(STATUS "checking for module '${_pkg_check_modules_list}'") | |
196 | else(_pkg_check_modules_cnt EQUAL 1) | |
197 | message(STATUS "checking for modules '${_pkg_check_modules_list}'") | |
198 | endif(_pkg_check_modules_cnt EQUAL 1) | |
199 | endif(NOT ${_is_silent}) | |
200 | ||
201 | set(_pkg_check_modules_packages) | |
202 | set(_pkg_check_modules_failed) | |
203 | ||
204 | # iterate through module list and check whether they exist and match the required version | |
205 | foreach (_pkg_check_modules_pkg ${_pkg_check_modules_list}) | |
206 | set(_pkg_check_modules_exist_query) | |
207 | ||
208 | # check whether version is given | |
209 | if (_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*") | |
210 | string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\1" _pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}") | |
211 | string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\2" _pkg_check_modules_pkg_op "${_pkg_check_modules_pkg}") | |
212 | string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\3" _pkg_check_modules_pkg_ver "${_pkg_check_modules_pkg}") | |
213 | else(_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*") | |
214 | set(_pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}") | |
215 | set(_pkg_check_modules_pkg_op) | |
216 | set(_pkg_check_modules_pkg_ver) | |
217 | endif(_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*") | |
218 | ||
219 | # handle the operands | |
220 | if (_pkg_check_modules_pkg_op STREQUAL ">=") | |
221 | list(APPEND _pkg_check_modules_exist_query --atleast-version) | |
222 | endif(_pkg_check_modules_pkg_op STREQUAL ">=") | |
223 | ||
224 | if (_pkg_check_modules_pkg_op STREQUAL "=") | |
225 | list(APPEND _pkg_check_modules_exist_query --exact-version) | |
226 | endif(_pkg_check_modules_pkg_op STREQUAL "=") | |
227 | ||
228 | if (_pkg_check_modules_pkg_op STREQUAL "<=") | |
229 | list(APPEND _pkg_check_modules_exist_query --max-version) | |
230 | endif(_pkg_check_modules_pkg_op STREQUAL "<=") | |
231 | ||
232 | # create the final query which is of the format: | |
233 | # * --atleast-version <version> <pkg-name> | |
234 | # * --exact-version <version> <pkg-name> | |
235 | # * --max-version <version> <pkg-name> | |
236 | # * --exists <pkg-name> | |
237 | if (_pkg_check_modules_pkg_op) | |
238 | list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_ver}") | |
239 | else(_pkg_check_modules_pkg_op) | |
240 | list(APPEND _pkg_check_modules_exist_query --exists) | |
241 | endif(_pkg_check_modules_pkg_op) | |
242 | ||
243 | _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_VERSION) | |
244 | _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_PREFIX) | |
245 | _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_INCLUDEDIR) | |
246 | _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_LIBDIR) | |
247 | ||
248 | list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name}") | |
249 | list(APPEND _pkg_check_modules_packages "${_pkg_check_modules_pkg_name}") | |
250 | ||
251 | # execute the query | |
252 | execute_process( | |
253 | COMMAND ${PKG_CONFIG_EXECUTABLE} ${_pkg_check_modules_exist_query} | |
254 | RESULT_VARIABLE _pkgconfig_retval) | |
255 | ||
256 | # evaluate result and tell failures | |
257 | if (_pkgconfig_retval) | |
258 | if(NOT ${_is_silent}) | |
259 | message(STATUS " package '${_pkg_check_modules_pkg}' not found") | |
260 | endif(NOT ${_is_silent}) | |
261 | ||
262 | set(_pkg_check_modules_failed 1) | |
263 | endif(_pkgconfig_retval) | |
264 | endforeach(_pkg_check_modules_pkg) | |
265 | ||
266 | if(_pkg_check_modules_failed) | |
267 | # fail when requested | |
268 | if (${_is_required}) | |
269 | message(SEND_ERROR "A required package was not found") | |
270 | endif (${_is_required}) | |
271 | else(_pkg_check_modules_failed) | |
272 | # when we are here, we checked whether requested modules | |
273 | # exist. Now, go through them and set variables | |
274 | ||
275 | _pkgconfig_set(${_prefix}_FOUND 1) | |
276 | list(LENGTH _pkg_check_modules_packages pkg_count) | |
277 | ||
278 | # iterate through all modules again and set individual variables | |
279 | foreach (_pkg_check_modules_pkg ${_pkg_check_modules_packages}) | |
280 | # handle case when there is only one package required | |
281 | if (pkg_count EQUAL 1) | |
282 | set(_pkg_check_prefix "${_prefix}") | |
283 | else(pkg_count EQUAL 1) | |
284 | set(_pkg_check_prefix "${_prefix}_${_pkg_check_modules_pkg}") | |
285 | endif(pkg_count EQUAL 1) | |
286 | ||
287 | _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" VERSION "" --modversion ) | |
288 | _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" PREFIX "" --variable=prefix ) | |
289 | _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" INCLUDEDIR "" --variable=includedir ) | |
290 | _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" LIBDIR "" --variable=libdir ) | |
291 | ||
292 | message(STATUS " found ${_pkg_check_modules_pkg}, version ${_pkgconfig_VERSION}") | |
293 | endforeach(_pkg_check_modules_pkg) | |
294 | ||
295 | # set variables which are combined for multiple modules | |
296 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES "(^| )-l" --libs-only-l ) | |
297 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS "(^| )-L" --libs-only-L ) | |
298 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS "" --libs ) | |
299 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER "" --libs-only-other ) | |
300 | ||
301 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )-I" --cflags-only-I ) | |
302 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS "" --cflags ) | |
303 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER "" --cflags-only-other ) | |
304 | endif(_pkg_check_modules_failed) | |
305 | else(PKG_CONFIG_EXECUTABLE) | |
306 | if (${_is_required}) | |
307 | message(SEND_ERROR "pkg-config tool not found") | |
308 | endif (${_is_required}) | |
309 | endif(PKG_CONFIG_EXECUTABLE) | |
310 | endmacro(_pkg_check_modules_internal) | |
311 | ||
312 | ### | |
313 | ### User visible macros start here | |
314 | ### | |
315 | ||
316 | ### | |
317 | macro(pkg_check_modules _prefix _module0) | |
318 | # check cached value | |
319 | # if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION}) | |
320 | _pkgconfig_parse_options (_pkg_modules _pkg_is_required "${_module0}" ${ARGN}) | |
321 | _pkg_check_modules_internal("${_pkg_is_required}" 0 "${_prefix}" ${_pkg_modules}) | |
322 | ||
323 | # _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION}) | |
324 | # endif(NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION}) | |
325 | endmacro(pkg_check_modules) | |
326 | ||
327 | ### | |
328 | macro(pkg_search_module _prefix _module0) | |
329 | # check cached value | |
330 | # if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION}) | |
331 | set(_pkg_modules_found 0) | |
332 | _pkgconfig_parse_options(_pkg_modules_alt _pkg_is_required "${_module0}" ${ARGN}) | |
333 | ||
334 | message(STATUS "checking for one of the modules '${_pkg_modules_alt}'") | |
335 | ||
336 | # iterate through all modules and stop at the first working one. | |
337 | foreach(_pkg_alt ${_pkg_modules_alt}) | |
338 | if(NOT _pkg_modules_found) | |
339 | _pkg_check_modules_internal(0 1 "${_prefix}" "${_pkg_alt}") | |
340 | endif(NOT _pkg_modules_found) | |
341 | ||
342 | if (${_prefix}_FOUND) | |
343 | set(_pkg_modules_found 1) | |
344 | endif(${_prefix}_FOUND) | |
345 | endforeach(_pkg_alt) | |
346 | ||
347 | if (NOT ${_prefix}_FOUND) | |
348 | if(${_pkg_is_required}) | |
349 | message(SEND_ERROR "None of the required '${_pkg_modules_alt}' found") | |
350 | endif(${_pkg_is_required}) | |
351 | endif(NOT ${_prefix}_FOUND) | |
352 | ||
353 | # _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION}) | |
354 | # endif(NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION}) | |
355 | endmacro(pkg_search_module) | |
356 | ||
357 | ### Local Variables: | |
358 | ### mode: cmake | |
359 | ### End: |
0 | MACRO(HTTRAQT_GENERATE_DEF_FILE TARGET_NAME) | |
1 | IF(MSVC) | |
2 | ADD_DEPENDENCIES(${TARGET_NAME} httraqt-gendef) | |
3 | GET_TARGET_PROPERTY(gendef_EXE httraqt-gendef LOCATION) | |
4 | ADD_CUSTOM_COMMAND(TARGET ${TARGET_NAME} | |
5 | PRE_LINK | |
6 | COMMAND ${gendef_EXE} $(IntDir)\\$(InputName).def $(TargetFileName) $(IntDir)\\*.obj) | |
7 | SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES LINK_FLAGS "/DEF:$(IntDir)\\$(InputName).def") | |
8 | ENDIF(MSVC) | |
9 | ENDMACRO(HTTRAQT_GENERATE_DEF_FILE) | |
10 |
0 | IF(APPLE AND CMAKE_BUILD_TYPE STREQUAL "Release") | |
1 | EXECUTE_PROCESS( | |
2 | COMMAND ${CMAKE_CXX_COMPILER} --version | |
3 | OUTPUT_VARIABLE HTTRAQT_COMPILER_VERSION | |
4 | ) | |
5 | ||
6 | IF(HTTRAQT_COMPILER_VERSION MATCHES "4.0.1") | |
7 | MESSAGE(SEND_ERROR "The Apple gcc 4.0.1 compiler produces release binaries that fail at runtime. Try the gcc 4.2 compiler included in recent version of XCode instead. See http://developer.k-3d.org/tracker/issue-cf2cdc4985a66db59f55052f03c3c620237b451f.html for details.") | |
8 | ENDIF() | |
9 | ENDIF() | |
10 |
0 | SET(HTTRAQT_REQUIRED_LIBRARIES) | |
1 | ||
2 | SET(HTTRAQT_OPTIONAL_LIBRARY_CONFIGURATIONS) | |
3 | SET(HTTRAQT_OPTIONAL_LIBRARIES) | |
4 | ||
5 | MACRO(HTTRAQT_CHECK_REQUIRED_DEPENDENCY FOUND LIBRARY URLS DESCRIPTION) | |
6 | LIST(APPEND HTTRAQT_REQUIRED_LIBRARIES ${LIBRARY}) | |
7 | IF(NOT ${FOUND}) | |
8 | SET(MESSAGE_TEXT "Couldn't find ${LIBRARY}, which is required to build HTTraQt.") | |
9 | SET(MESSAGE_TEXT "${MESSAGE_TEXT} You can obtain ${LIBRARY} from") | |
10 | SET(DELIMITER "") | |
11 | FOREACH(URL ${URLS}) | |
12 | SET(MESSAGE_TEXT "${MESSAGE_TEXT} ${DELIMITER} ${URL}") | |
13 | SET(DELIMITER "or") | |
14 | ENDFOREACH() | |
15 | SET(MESSAGE_TEXT "${MESSAGE_TEXT}.") | |
16 | SET(MESSAGE_TEXT "${MESSAGE_TEXT} ${DESCRIPTION}") | |
17 | MESSAGE(SEND_ERROR "${MESSAGE_TEXT}") | |
18 | ENDIF(NOT ${FOUND}) | |
19 | ENDMACRO(HTTRAQT_CHECK_REQUIRED_DEPENDENCY) | |
20 | ||
21 | MACRO(HTTRAQT_CHECK_OPTIONAL_DEPENDENCY CONFIG FOUND LIBRARY) | |
22 | LIST(APPEND HTTRAQT_OPTIONAL_LIBRARY_CONFIGURATIONS ${CONFIG}) | |
23 | LIST(APPEND HTTRAQT_OPTIONAL_LIBRARIES ${LIBRARY}) | |
24 | ||
25 | IF(${CONFIG}) | |
26 | IF(NOT ${FOUND}) | |
27 | MESSAGE(SEND_ERROR "Couldn't find the ${LIBRARY} library, which is required by ${CONFIG}.") | |
28 | ENDIF(NOT ${FOUND}) | |
29 | ENDIF(${CONFIG}) | |
30 | ENDMACRO(HTTRAQT_CHECK_OPTIONAL_DEPENDENCY) | |
31 | ||
32 | MACRO(HTTRAQT_CHECK_NGUI_DEPENDENCY CONFIG) | |
33 | IF(${CONFIG} AND NOT HTTRAQT_BUILD_NGUI_MODULE) | |
34 | MESSAGE(SEND_ERROR "HTTRAQT_BUILD_NGUI_MODULE is required by ${CONFIG}.") | |
35 | ENDIF(${CONFIG} AND NOT HTTRAQT_BUILD_NGUI_MODULE) | |
36 | ENDMACRO(HTTRAQT_CHECK_NGUI_DEPENDENCY) | |
37 | ||
38 | MACRO(HTTRAQT_CONDITIONAL_BUILD BUILD_OPTION BUILD_DIRECTORY) | |
39 | IF(${BUILD_OPTION}) | |
40 | ADD_SUBDIRECTORY(${BUILD_DIRECTORY}) | |
41 | ENDIF(${BUILD_OPTION}) | |
42 | ENDMACRO(HTTRAQT_CONDITIONAL_BUILD) | |
43 | ||
44 | MACRO(HTTRAQT_ADD_LIBRARY LIBRARY_NAME) | |
45 | ADD_LIBRARY(${LIBRARY_NAME} ${ARGN}) | |
46 | SET_TARGET_PROPERTIES(${LIBRARY_NAME} PROPERTIES VERSION "${HTTRAQT_SO_VERSION}") | |
47 | ENDMACRO() | |
48 |
0 | SET(HTTRAQT_HTTRACK_FOUND 0) | |
1 | ||
2 | # INCLUDE(HTTRAQTFindPkgConfig) | |
3 | # PKG_CHECK_MODULES(HTTRACK libhttrack2) | |
4 | ||
5 | ||
6 | SET ( HT_DIR "/usr/include/httrack/" ) | |
7 | IF(EXISTS "${HT_DIR}" AND IS_DIRECTORY "${HT_DIR}") | |
8 | SET ( HTTRACK_INCLUDES_DIR "${HT_DIR}" ) | |
9 | INCLUDE_DIRECTORIES(${HTTRACK_INCLUDES_DIR}) | |
10 | ELSE() | |
11 | SET ( HT_DIR "/usr/local/include/httrack/" ) | |
12 | IF(EXISTS "${HT_DIR}" AND IS_DIRECTORY "${HT_DIR}") | |
13 | SET ( HTTRACK_INCLUDES_DIR "${HT_DIR}" ) | |
14 | INCLUDE_DIRECTORIES(${HTTRACK_INCLUDES_DIR}) | |
15 | ENDIF() | |
16 | ENDIF() | |
17 | ||
18 | ||
19 | IF( NOT HTTRACK_INCLUDES_DIR ) | |
20 | MESSAGE(FATAL_ERROR "Please INSTALL the httrack, httrack-dev packages and try again") | |
21 | # RETURN() | |
22 | ELSE() | |
23 | SET (HTTRACK_FOUND 1) | |
24 | ENDIF() | |
25 | ||
26 | MESSAGE("httrack header directory found: " ${HTTRACK_INCLUDES_DIR}) | |
27 | ||
28 | FIND_LIBRARY( | |
29 | HTTRACK_LIBRARY NAMES httrack libhttrack.lib | |
30 | PATHS /usr/local/lib /usr/lib | |
31 | HINTS ${httrack_dirs1} ${httrack_dirs2} ${STAGING_LIBS_DIR} | |
32 | DOC "Path to httrack library." | |
33 | ) | |
34 | ||
35 | IF(NOT HTTRACK_LIBRARY) | |
36 | MESSAGE( | |
37 | FATAL_ERROR | |
38 | "Could not find httrack library.\n" | |
39 | "You may need to INSTALL a package named libhttrack-dev or similarly." | |
40 | ) | |
41 | ENDIF() | |
42 | ||
43 | IF(HTTRACK_FOUND) | |
44 | SET(HTTRAQT_HTTRACK_INCLUDE_DIRS | |
45 | ${HTTRACK_INCLUDES_DIR} | |
46 | ) | |
47 | ||
48 | SET(HTTRAQT_HTTRACK_LIB_DIRS | |
49 | ${HTTRACK_LIBRARY_DIRS} | |
50 | ) | |
51 | ||
52 | SET(HTTRAQT_HTTRACK_LIBS | |
53 | ${HTTRACK_LIBRARIES} | |
54 | ) | |
55 | ||
56 | SET(HTTRAQT_HTTRACK_FOUND 1) | |
57 | ENDIF(HTTRACK_FOUND) |
0 | # - a pkg-config module for CMake | |
1 | # | |
2 | # Usage: | |
3 | # pkg_check_modules(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*) | |
4 | # checks for all the given modules | |
5 | # | |
6 | # pkg_search_module(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*) | |
7 | # checks for given modules and uses the first working one | |
8 | # | |
9 | # When the 'REQUIRED' argument was set, macros will fail with an error | |
10 | # when module(s) could not be found | |
11 | # | |
12 | # It sets the following variables: | |
13 | # PKG_CONFIG_FOUND ... true iff pkg-config works on the system | |
14 | # PKG_CONFIG_EXECUTABLE ... pathname of the pkg-config program | |
15 | # <PREFIX>_FOUND ... set to 1 iff module(s) exist | |
16 | # | |
17 | # For the following variables two sets of values exist; first one is the | |
18 | # common one and has the given PREFIX. The second set contains flags | |
19 | # which are given out when pkgconfig was called with the '--static' | |
20 | # option. | |
21 | # <XPREFIX>_LIBRARIES ... only the libraries (w/o the '-l') | |
22 | # <XPREFIX>_LIBRARY_DIRS ... the paths of the libraries (w/o the '-L') | |
23 | # <XPREFIX>_LDFLAGS ... all required linker flags | |
24 | # <XPREFIX>_LDFLAGS_OTHERS ... all other linker flags | |
25 | # <XPREFIX>_INCLUDE_DIRS ... the '-I' preprocessor flags (w/o the '-I') | |
26 | # <XPREFIX>_CFLAGS ... all required cflags | |
27 | # <XPREFIX>_CFLAGS_OTHERS ... the other compiler flags | |
28 | # | |
29 | # <XPREFIX> = <PREFIX> for common case | |
30 | # <XPREFIX> = <PREFIX>_STATIC for static linking | |
31 | # | |
32 | # There are some special variables whose prefix depends on the count | |
33 | # of given modules. When there is only one module, <PREFIX> stays | |
34 | # unchanged. When there are multiple modules, the prefix will be | |
35 | # changed to <PREFIX>_<MODNAME>: | |
36 | # <XPREFIX>_VERSION ... version of the module | |
37 | # <XPREFIX>_PREFIX ... prefix-directory of the module | |
38 | # <XPREFIX>_INCLUDEDIR ... include-dir of the module | |
39 | # <XPREFIX>_LIBDIR ... lib-dir of the module | |
40 | # | |
41 | # <XPREFIX> = <PREFIX> when |MODULES| == 1, else | |
42 | # <XPREFIX> = <PREFIX>_<MODNAME> | |
43 | # | |
44 | # A <MODULE> parameter can have the following formats: | |
45 | # {MODNAME} ... matches any version | |
46 | # {MODNAME}>={VERSION} ... at least version <VERSION> is required | |
47 | # {MODNAME}={VERSION} ... exactly version <VERSION> is required | |
48 | # {MODNAME}<={VERSION} ... modules must not be newer than <VERSION> | |
49 | # | |
50 | # Examples | |
51 | # pkg_check_modules (GLIB2 glib-2.0) | |
52 | # | |
53 | # pkg_check_modules (GLIB2 glib-2.0>=2.10) | |
54 | # requires at least version 2.10 of glib2 and defines e.g. | |
55 | # GLIB2_VERSION=2.10.3 | |
56 | # | |
57 | # pkg_check_modules (FOO glib-2.0>=2.10 gtk+-2.0) | |
58 | # requires both glib2 and gtk2, and defines e.g. | |
59 | # FOO_glib-2.0_VERSION=2.10.3 | |
60 | # FOO_gtk+-2.0_VERSION=2.8.20 | |
61 | # | |
62 | # pkg_check_modules (XRENDER REQUIRED xrender) | |
63 | # defines e.g.: | |
64 | # XRENDER_LIBRARIES=Xrender;X11 | |
65 | # XRENDER_STATIC_LIBRARIES=Xrender;X11;pthread;Xau;Xdmcp | |
66 | # | |
67 | # pkg_search_module (BAR libxml-2.0 libxml2 libxml>=2) | |
68 | ||
69 | ||
70 | # Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> | |
71 | # | |
72 | # Redistribution and use, with or without modification, are permitted | |
73 | # provided that the following conditions are met: | |
74 | # | |
75 | # 1. Redistributions must retain the above copyright notice, this | |
76 | # list of conditions and the following disclaimer. | |
77 | # 2. The name of the author may not be used to endorse or promote | |
78 | # products derived from this software without specific prior | |
79 | # written permission. | |
80 | # | |
81 | # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | |
82 | # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | |
83 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
84 | # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY | |
85 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
86 | # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE | |
87 | # GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
88 | # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER | |
89 | # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |
90 | # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN | |
91 | # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
92 | ||
93 | ||
94 | ### Common stuff #### | |
95 | set(PKG_CONFIG_VERSION 1) | |
96 | set(PKG_CONFIG_FOUND 0) | |
97 | ||
98 | find_program(PKG_CONFIG_EXECUTABLE NAMES pkg-config DOC "pkg-config executable") | |
99 | mark_as_advanced(PKG_CONFIG_EXECUTABLE) | |
100 | ||
101 | if(PKG_CONFIG_EXECUTABLE) | |
102 | set(PKG_CONFIG_FOUND 1) | |
103 | endif(PKG_CONFIG_EXECUTABLE) | |
104 | ||
105 | ||
106 | # Unsets the given variables | |
107 | macro(_pkgconfig_unset var) | |
108 | set(${var} "" CACHE INTERNAL "") | |
109 | endmacro(_pkgconfig_unset) | |
110 | ||
111 | macro(_pkgconfig_set var value) | |
112 | set(${var} ${value} CACHE INTERNAL "") | |
113 | endmacro(_pkgconfig_set) | |
114 | ||
115 | # Invokes pkgconfig, cleans up the result and sets variables | |
116 | macro(_pkgconfig_invoke _pkglist _prefix _varname _regexp) | |
117 | set(_pkgconfig_invoke_result) | |
118 | ||
119 | execute_process( | |
120 | COMMAND ${PKG_CONFIG_EXECUTABLE} ${ARGN} ${_pkglist} | |
121 | OUTPUT_VARIABLE _pkgconfig_invoke_result | |
122 | RESULT_VARIABLE _pkgconfig_failed) | |
123 | ||
124 | if (_pkgconfig_failed) | |
125 | set(_pkgconfig_${_varname} "") | |
126 | _pkgconfig_unset(${_prefix}_${_varname}) | |
127 | else(_pkgconfig_failed) | |
128 | string(REGEX REPLACE "[\r\n]" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}") | |
129 | string(REGEX REPLACE " +$" "" _pkgconfig_invoke_result "${_pkgconfig_invoke_result}") | |
130 | ||
131 | if (NOT ${_regexp} STREQUAL "") | |
132 | string(REGEX REPLACE "${_regexp}" " " _pkgconfig_invoke_result "${_pkgconfig_invoke_result}") | |
133 | endif(NOT ${_regexp} STREQUAL "") | |
134 | ||
135 | separate_arguments(_pkgconfig_invoke_result) | |
136 | ||
137 | #message(STATUS " ${_varname} ... ${_pkgconfig_invoke_result}") | |
138 | set(_pkgconfig_${_varname} ${_pkgconfig_invoke_result}) | |
139 | _pkgconfig_set(${_prefix}_${_varname} "${_pkgconfig_invoke_result}") | |
140 | endif(_pkgconfig_failed) | |
141 | endmacro(_pkgconfig_invoke) | |
142 | ||
143 | # Invokes pkgconfig two times; once without '--static' and once with | |
144 | # '--static' | |
145 | macro(_pkgconfig_invoke_dyn _pkglist _prefix _varname cleanup_regexp) | |
146 | _pkgconfig_invoke("${_pkglist}" ${_prefix} ${_varname} "${cleanup_regexp}" ${ARGN}) | |
147 | _pkgconfig_invoke("${_pkglist}" ${_prefix} STATIC_${_varname} "${cleanup_regexp}" --static ${ARGN}) | |
148 | endmacro(_pkgconfig_invoke_dyn) | |
149 | ||
150 | # Splits given arguments into options and a package list | |
151 | macro(_pkgconfig_parse_options _result _is_req) | |
152 | set(${_is_req} 0) | |
153 | ||
154 | foreach(_pkg ${ARGN}) | |
155 | if (_pkg STREQUAL "REQUIRED") | |
156 | set(${_is_req} 1) | |
157 | endif (_pkg STREQUAL "REQUIRED") | |
158 | endforeach(_pkg ${ARGN}) | |
159 | ||
160 | set(${_result} ${ARGN}) | |
161 | list(REMOVE_ITEM ${_result} "REQUIRED") | |
162 | endmacro(_pkgconfig_parse_options) | |
163 | ||
164 | ### | |
165 | macro(_pkg_check_modules_internal _is_required _is_silent _prefix) | |
166 | _pkgconfig_unset(${_prefix}_FOUND) | |
167 | _pkgconfig_unset(${_prefix}_VERSION) | |
168 | _pkgconfig_unset(${_prefix}_PREFIX) | |
169 | _pkgconfig_unset(${_prefix}_INCLUDEDIR) | |
170 | _pkgconfig_unset(${_prefix}_LIBDIR) | |
171 | _pkgconfig_unset(${_prefix}_LIBS) | |
172 | _pkgconfig_unset(${_prefix}_LIBS_L) | |
173 | _pkgconfig_unset(${_prefix}_LIBS_PATHS) | |
174 | _pkgconfig_unset(${_prefix}_LIBS_OTHER) | |
175 | _pkgconfig_unset(${_prefix}_CFLAGS) | |
176 | _pkgconfig_unset(${_prefix}_CFLAGS_I) | |
177 | _pkgconfig_unset(${_prefix}_CFLAGS_OTHER) | |
178 | _pkgconfig_unset(${_prefix}_STATIC_LIBDIR) | |
179 | _pkgconfig_unset(${_prefix}_STATIC_LIBS) | |
180 | _pkgconfig_unset(${_prefix}_STATIC_LIBS_L) | |
181 | _pkgconfig_unset(${_prefix}_STATIC_LIBS_PATHS) | |
182 | _pkgconfig_unset(${_prefix}_STATIC_LIBS_OTHER) | |
183 | _pkgconfig_unset(${_prefix}_STATIC_CFLAGS) | |
184 | _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_I) | |
185 | _pkgconfig_unset(${_prefix}_STATIC_CFLAGS_OTHER) | |
186 | ||
187 | # create a better addressable variable of the modules and calculate its size | |
188 | set(_pkg_check_modules_list ${ARGN}) | |
189 | list(LENGTH _pkg_check_modules_list _pkg_check_modules_cnt) | |
190 | ||
191 | if(PKG_CONFIG_EXECUTABLE) | |
192 | # give out status message telling checked module | |
193 | if (NOT ${_is_silent}) | |
194 | if (_pkg_check_modules_cnt EQUAL 1) | |
195 | message(STATUS "checking for module '${_pkg_check_modules_list}'") | |
196 | else(_pkg_check_modules_cnt EQUAL 1) | |
197 | message(STATUS "checking for modules '${_pkg_check_modules_list}'") | |
198 | endif(_pkg_check_modules_cnt EQUAL 1) | |
199 | endif(NOT ${_is_silent}) | |
200 | ||
201 | set(_pkg_check_modules_packages) | |
202 | set(_pkg_check_modules_failed) | |
203 | ||
204 | # iterate through module list and check whether they exist and match the required version | |
205 | foreach (_pkg_check_modules_pkg ${_pkg_check_modules_list}) | |
206 | set(_pkg_check_modules_exist_query) | |
207 | ||
208 | # check whether version is given | |
209 | if (_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*") | |
210 | string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\1" _pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}") | |
211 | string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\2" _pkg_check_modules_pkg_op "${_pkg_check_modules_pkg}") | |
212 | string(REGEX REPLACE "(.*[^><])(>=|=|<=)(.*)" "\\3" _pkg_check_modules_pkg_ver "${_pkg_check_modules_pkg}") | |
213 | else(_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*") | |
214 | set(_pkg_check_modules_pkg_name "${_pkg_check_modules_pkg}") | |
215 | set(_pkg_check_modules_pkg_op) | |
216 | set(_pkg_check_modules_pkg_ver) | |
217 | endif(_pkg_check_modules_pkg MATCHES ".*(>=|=|<=).*") | |
218 | ||
219 | # handle the operands | |
220 | if (_pkg_check_modules_pkg_op STREQUAL ">=") | |
221 | list(APPEND _pkg_check_modules_exist_query --atleast-version) | |
222 | endif(_pkg_check_modules_pkg_op STREQUAL ">=") | |
223 | ||
224 | if (_pkg_check_modules_pkg_op STREQUAL "=") | |
225 | list(APPEND _pkg_check_modules_exist_query --exact-version) | |
226 | endif(_pkg_check_modules_pkg_op STREQUAL "=") | |
227 | ||
228 | if (_pkg_check_modules_pkg_op STREQUAL "<=") | |
229 | list(APPEND _pkg_check_modules_exist_query --max-version) | |
230 | endif(_pkg_check_modules_pkg_op STREQUAL "<=") | |
231 | ||
232 | # create the final query which is of the format: | |
233 | # * --atleast-version <version> <pkg-name> | |
234 | # * --exact-version <version> <pkg-name> | |
235 | # * --max-version <version> <pkg-name> | |
236 | # * --exists <pkg-name> | |
237 | if (_pkg_check_modules_pkg_op) | |
238 | list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_ver}") | |
239 | else(_pkg_check_modules_pkg_op) | |
240 | list(APPEND _pkg_check_modules_exist_query --exists) | |
241 | endif(_pkg_check_modules_pkg_op) | |
242 | ||
243 | _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_VERSION) | |
244 | _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_PREFIX) | |
245 | _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_INCLUDEDIR) | |
246 | _pkgconfig_unset(${_prefix}_${_pkg_check_modules_pkg_name}_LIBDIR) | |
247 | ||
248 | list(APPEND _pkg_check_modules_exist_query "${_pkg_check_modules_pkg_name}") | |
249 | list(APPEND _pkg_check_modules_packages "${_pkg_check_modules_pkg_name}") | |
250 | ||
251 | # execute the query | |
252 | execute_process( | |
253 | COMMAND ${PKG_CONFIG_EXECUTABLE} ${_pkg_check_modules_exist_query} | |
254 | RESULT_VARIABLE _pkgconfig_retval) | |
255 | ||
256 | # evaluate result and tell failures | |
257 | if (_pkgconfig_retval) | |
258 | if(NOT ${_is_silent}) | |
259 | message(STATUS " package '${_pkg_check_modules_pkg}' not found") | |
260 | endif(NOT ${_is_silent}) | |
261 | ||
262 | set(_pkg_check_modules_failed 1) | |
263 | endif(_pkgconfig_retval) | |
264 | endforeach(_pkg_check_modules_pkg) | |
265 | ||
266 | if(_pkg_check_modules_failed) | |
267 | # fail when requested | |
268 | if (${_is_required}) | |
269 | message(SEND_ERROR "A required package was not found") | |
270 | endif (${_is_required}) | |
271 | else(_pkg_check_modules_failed) | |
272 | # when we are here, we checked whether requested modules | |
273 | # exist. Now, go through them and set variables | |
274 | ||
275 | _pkgconfig_set(${_prefix}_FOUND 1) | |
276 | list(LENGTH _pkg_check_modules_packages pkg_count) | |
277 | ||
278 | # iterate through all modules again and set individual variables | |
279 | foreach (_pkg_check_modules_pkg ${_pkg_check_modules_packages}) | |
280 | # handle case when there is only one package required | |
281 | if (pkg_count EQUAL 1) | |
282 | set(_pkg_check_prefix "${_prefix}") | |
283 | else(pkg_count EQUAL 1) | |
284 | set(_pkg_check_prefix "${_prefix}_${_pkg_check_modules_pkg}") | |
285 | endif(pkg_count EQUAL 1) | |
286 | ||
287 | _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" VERSION "" --modversion ) | |
288 | _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" PREFIX "" --variable=prefix ) | |
289 | _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" INCLUDEDIR "" --variable=includedir ) | |
290 | _pkgconfig_invoke(${_pkg_check_modules_pkg} "${_pkg_check_prefix}" LIBDIR "" --variable=libdir ) | |
291 | ||
292 | message(STATUS " found ${_pkg_check_modules_pkg}, version ${_pkgconfig_VERSION}") | |
293 | endforeach(_pkg_check_modules_pkg) | |
294 | ||
295 | # set variables which are combined for multiple modules | |
296 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARIES "(^| )-l" --libs-only-l ) | |
297 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LIBRARY_DIRS "(^| )-L" --libs-only-L ) | |
298 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS "" --libs ) | |
299 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" LDFLAGS_OTHER "" --libs-only-other ) | |
300 | ||
301 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" INCLUDE_DIRS "(^| )-I" --cflags-only-I ) | |
302 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS "" --cflags ) | |
303 | _pkgconfig_invoke_dyn("${_pkg_check_modules_packages}" "${_prefix}" CFLAGS_OTHER "" --cflags-only-other ) | |
304 | endif(_pkg_check_modules_failed) | |
305 | else(PKG_CONFIG_EXECUTABLE) | |
306 | if (${_is_required}) | |
307 | message(SEND_ERROR "pkg-config tool not found") | |
308 | endif (${_is_required}) | |
309 | endif(PKG_CONFIG_EXECUTABLE) | |
310 | endmacro(_pkg_check_modules_internal) | |
311 | ||
312 | ### | |
313 | ### User visible macros start here | |
314 | ### | |
315 | ||
316 | ### | |
317 | macro(pkg_check_modules _prefix _module0) | |
318 | # check cached value | |
319 | # if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION}) | |
320 | _pkgconfig_parse_options (_pkg_modules _pkg_is_required "${_module0}" ${ARGN}) | |
321 | _pkg_check_modules_internal("${_pkg_is_required}" 0 "${_prefix}" ${_pkg_modules}) | |
322 | ||
323 | # _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION}) | |
324 | # endif(NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION}) | |
325 | endmacro(pkg_check_modules) | |
326 | ||
327 | ### | |
328 | macro(pkg_search_module _prefix _module0) | |
329 | # check cached value | |
330 | # if (NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION}) | |
331 | set(_pkg_modules_found 0) | |
332 | _pkgconfig_parse_options(_pkg_modules_alt _pkg_is_required "${_module0}" ${ARGN}) | |
333 | ||
334 | message(STATUS "checking for one of the modules '${_pkg_modules_alt}'") | |
335 | ||
336 | # iterate through all modules and stop at the first working one. | |
337 | foreach(_pkg_alt ${_pkg_modules_alt}) | |
338 | if(NOT _pkg_modules_found) | |
339 | _pkg_check_modules_internal(0 1 "${_prefix}" "${_pkg_alt}") | |
340 | endif(NOT _pkg_modules_found) | |
341 | ||
342 | if (${_prefix}_FOUND) | |
343 | set(_pkg_modules_found 1) | |
344 | endif(${_prefix}_FOUND) | |
345 | endforeach(_pkg_alt) | |
346 | ||
347 | if (NOT ${_prefix}_FOUND) | |
348 | if(${_pkg_is_required}) | |
349 | message(SEND_ERROR "None of the required '${_pkg_modules_alt}' found") | |
350 | endif(${_pkg_is_required}) | |
351 | endif(NOT ${_prefix}_FOUND) | |
352 | ||
353 | # _pkgconfig_set(__pkg_config_checked_${_prefix} ${PKG_CONFIG_VERSION}) | |
354 | # endif(NOT DEFINED __pkg_config_checked_${_prefix} OR __pkg_config_checked_${_prefix} LESS ${PKG_CONFIG_VERSION}) | |
355 | endmacro(pkg_search_module) | |
356 | ||
357 | ### Local Variables: | |
358 | ### mode: cmake | |
359 | ### End: |
0 | MACRO(HTTRAQT_GENERATE_DEF_FILE TARGET_NAME) | |
1 | IF(MSVC) | |
2 | ADD_DEPENDENCIES(${TARGET_NAME} httraqt-gendef) | |
3 | GET_TARGET_PROPERTY(gendef_EXE httraqt-gendef LOCATION) | |
4 | ADD_CUSTOM_COMMAND(TARGET ${TARGET_NAME} | |
5 | PRE_LINK | |
6 | COMMAND ${gendef_EXE} $(IntDir)\\$(InputName).def $(TargetFileName) $(IntDir)\\*.obj) | |
7 | SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES LINK_FLAGS "/DEF:$(IntDir)\\$(InputName).def") | |
8 | ENDIF(MSVC) | |
9 | ENDMACRO(HTTRAQT_GENERATE_DEF_FILE) | |
10 |
0 | # Disallow in-source build | |
1 | STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" HTTRAQT_IN_SOURCE) | |
2 | IF(HTTRAQT_IN_SOURCE) | |
3 | MESSAGE(FATAL_ERROR "HTTraQt requires an out of source build. Please create a separate build directory and run 'cmake path_to_httraqt [options]' there.") | |
4 | ENDIF(HTTRAQT_IN_SOURCE) | |
5 |
0 | # Compiler configuration | |
1 | IF(WIN32) | |
2 | IF(MSVC) | |
3 | SET(HTTRAQT_COMPILER_MSVC TRUE) | |
4 | ELSE(MSVC) | |
5 | SET(HTTRAQT_COMPILER_GCC TRUE) | |
6 | ENDIF(MSVC) | |
7 | ELSE(WIN32) | |
8 | SET(HTTRAQT_COMPILER_GCC TRUE) | |
9 | ENDIF(WIN32) | |
10 | ||
11 | # Win32 API configuration | |
12 | IF(WIN32) | |
13 | SET(HTTRAQT_API_WIN32 TRUE) | |
14 | ENDIF(WIN32) | |
15 | ||
16 | # Darwin API configuration | |
17 | IF(APPLE) | |
18 | SET(HTTRAQT_API_DARWIN TRUE) | |
19 | ||
20 | EXECUTE_PROCESS( | |
21 | COMMAND sw_vers -productVersion | |
22 | OUTPUT_VARIABLE HTTRAQT_OSX_VERSION | |
23 | ) | |
24 | STRING(REGEX REPLACE "([0-9]*)[.]([0-9]*)[.]([0-9]*).*" "\\1" HTTRAQT_OSX_MAJOR_VERSION "${HTTRAQT_OSX_VERSION}") | |
25 | STRING(REGEX REPLACE "([0-9]*)[.]([0-9]*)[.]([0-9]*).*" "\\2" HTTRAQT_OSX_MINOR_VERSION "${HTTRAQT_OSX_VERSION}") | |
26 | ||
27 | ENDIF(APPLE) | |
28 |
0 | # Detect the word-size for the current platform ... | |
1 | MESSAGE(STATUS "checking the width of int* for this platform") | |
2 | ||
3 | TRY_RUN( | |
4 | HTTRAQT_PLATFORM_SIZE_TYPE | |
5 | HTTRAQT_PLATFORM_SIZE_TYPE_COMPILE | |
6 | ${CMAKE_CURRENT_BINARY_DIR} | |
7 | ${CMAKE_CURRENT_SOURCE_DIR}/configuration/size_type.cpp) | |
8 | ||
9 | MESSAGE(STATUS " int* is ${HTTRAQT_PLATFORM_SIZE_TYPE} bits") | |
10 | ||
11 | IF(HTTRAQT_PLATFORM_SIZE_TYPE EQUAL 32) | |
12 | SET(HTTRAQT_UINT_T_32_BITS 1) | |
13 | ELSEIF(HTTRAQT_PLATFORM_SIZE_TYPE EQUAL 64) | |
14 | SET(HTTRAQT_UINT_T_64_BITS 1) | |
15 | ELSE(HTTRAQT_PLATFORM_SIZE_TYPE EQUAL 32) | |
16 | MESSAGE(SEND_ERROR "Error detecting platform word-size.") | |
17 | ENDIF(HTTRAQT_PLATFORM_SIZE_TYPE EQUAL 32) | |
18 |
0 | # Disallow in-source build | |
1 | STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" HTTRAQT_IN_SOURCE) | |
2 | IF(HTTRAQT_IN_SOURCE) | |
3 | MESSAGE(FATAL_ERROR "HTTraQt requires an out of source build. Please create a separate build directory and run 'cmake path_to_httraqt [options]' there.") | |
4 | ENDIF(HTTRAQT_IN_SOURCE) | |
5 |
0 | # Compiler configuration | |
1 | IF(WIN32) | |
2 | IF(MSVC) | |
3 | SET(HTTRAQT_COMPILER_MSVC TRUE) | |
4 | ELSE(MSVC) | |
5 | SET(HTTRAQT_COMPILER_GCC TRUE) | |
6 | ENDIF(MSVC) | |
7 | ELSE(WIN32) | |
8 | SET(HTTRAQT_COMPILER_GCC TRUE) | |
9 | ENDIF(WIN32) | |
10 | ||
11 | # Win32 API configuration | |
12 | IF(WIN32) | |
13 | SET(HTTRAQT_API_WIN32 TRUE) | |
14 | ENDIF(WIN32) | |
15 | ||
16 | # Darwin API configuration | |
17 | IF(APPLE) | |
18 | SET(HTTRAQT_API_DARWIN TRUE) | |
19 | ||
20 | EXECUTE_PROCESS( | |
21 | COMMAND sw_vers -productVersion | |
22 | OUTPUT_VARIABLE HTTRAQT_OSX_VERSION | |
23 | ) | |
24 | STRING(REGEX REPLACE "([0-9]*)[.]([0-9]*)[.]([0-9]*).*" "\\1" HTTRAQT_OSX_MAJOR_VERSION "${HTTRAQT_OSX_VERSION}") | |
25 | STRING(REGEX REPLACE "([0-9]*)[.]([0-9]*)[.]([0-9]*).*" "\\2" HTTRAQT_OSX_MINOR_VERSION "${HTTRAQT_OSX_VERSION}") | |
26 | ||
27 | ENDIF(APPLE) | |
28 |
7 | 7 | exit 0 |
8 | 8 | fi |
9 | 9 | |
10 | COUNT=$(cat /proc/cpuinfo | grep 'model name' | sed -e 's/.*: //' | wc -l) | |
10 | COUNT=$(nproc --all) | |
11 | 11 | echo "number of detected CPUs =" $COUNT |
12 | 12 | |
13 | 13 | #cppcheck -j $COUNT --force --inline-suppr --enable=warning . 2>errors.txt |
14 | cppcheck -j $COUNT --force --enable=style . 2>cppreport.txt⏎ | |
14 | cppcheck -j $COUNT --force --enable=style . 2>cppreport.txt |
0 | #!/bin/bash | |
1 | ||
2 | CMD=$(type -p cmake) | |
3 | ||
4 | if [ ! -x "$CMD" ]; then | |
5 | # not found exit | |
6 | echo "please install cmake and restart this script" | |
7 | exit 1 | |
8 | fi | |
9 | ||
10 | CMD=$(type -p dh) | |
11 | ||
12 | if [ ! -x "$CMD" ]; then | |
13 | # not found exit | |
14 | echo "please install debhelper and restart this script" | |
15 | exit 1 | |
16 | fi | |
17 | ||
18 | ||
19 | CPU_NUM=$(nproc --all) | |
20 | echo "cpu cores: $CPU_NUM" | |
21 | ||
22 | DIRECTORY="build-deb" | |
23 | ||
24 | if [ ! -d "$DIRECTORY" ]; then | |
25 | # Control will enter here if $DIRECTORY exists. | |
26 | mkdir "$DIRECTORY" | |
27 | fi | |
28 | ||
29 | # because of removing of all files in directory | |
30 | if [ -d "$DIRECTORY" ]; then | |
31 | cd "$DIRECTORY" | |
32 | rm * -rf | |
33 | cmake -DUSE_DEBUGGER=OFF .. | |
34 | make -j$CPU_NUM | |
35 | make package-binary-deb | |
36 | cd .. | |
37 | mv ./$DIRECTORY/httra*.deb . | |
38 | fi |
0 | #!/bin/bash | |
1 | ||
2 | CMD=$(type -p cmake) | |
3 | ||
4 | if [ ! -x "$CMD" ]; then | |
5 | # not found exit | |
6 | echo "please install cmake and restart this script" | |
7 | exit 1 | |
8 | fi | |
9 | ||
10 | CPU_NUM=$(nproc --all) | |
11 | echo "cpu cores: $CPU_NUM" | |
12 | ||
13 | DIRECTORY="build" | |
14 | ||
15 | if [ ! -d "$DIRECTORY" ]; then | |
16 | # Control will enter here if $DIRECTORY exists. | |
17 | mkdir "$DIRECTORY" | |
18 | fi | |
19 | ||
20 | # because of removing of all files in directory | |
21 | if [ -d "$DIRECTORY" ]; then | |
22 | cd "$DIRECTORY" | |
23 | rm * -rf | |
24 | # options: USE_PROFILER, USE_DEBUGGER, USE_QT5 | |
25 | cmake -DUSE_DEBUGGER=OFF -DUSE_PROFILER=OFF .. | |
26 | make -j$CPU_NUM | |
27 | cd .. | |
28 | cp ./$DIRECTORY/httraqt . | |
29 | fi |
0 | #!/bin/bash | |
1 | ||
2 | CMD=$(type -p cmake) | |
3 | ||
4 | if [ ! -x "$CMD" ]; then | |
5 | # not found exit | |
6 | echo "please install cmake and restart this script" | |
7 | exit 1 | |
8 | fi | |
9 | ||
10 | CMD=$(type -p rpmbuild) | |
11 | ||
12 | if [ ! -x "$CMD" ]; then | |
13 | # not found exit | |
14 | echo "please install rpmbuild and restart this script" | |
15 | exit 1 | |
16 | fi | |
17 | ||
18 | ||
19 | CPU_NUM=$(nproc --all) | |
20 | echo "cpu cores: $CPU_NUM" | |
21 | ||
22 | DIRECTORY="build-rpm" | |
23 | ||
24 | if [ ! -d "$DIRECTORY" ]; then | |
25 | # Control will enter here if $DIRECTORY exists. | |
26 | mkdir "$DIRECTORY" | |
27 | fi | |
28 | ||
29 | # because of removing of all files in directory | |
30 | if [ -d "$DIRECTORY" ]; then | |
31 | cd "$DIRECTORY" | |
32 | rm * -rf | |
33 | cmake -DUSE_DEBUGGER=OFF .. | |
34 | make -j$CPU_NUM | |
35 | make package-binary-rpm | |
36 | cd .. | |
37 | mv ./$DIRECTORY/httra*.rpm . | |
38 | fi | |
39 |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
105 | 37 | <ol> |
106 | 38 | <li>Enter a typical Web address</li> |
107 | 39 | <br><small>Just type in your address in the field</small><br><br> |
108 | <center><img src="img/addurl1.gif" border="0"></center> | |
40 | <center><img src="img/addurl1.png" border="0"></center> | |
109 | 41 | <br><br>OR<br><br> |
110 | 42 | <li>Enter a Web address with authentication</li> |
111 | 43 | <br><small>Useful when you need basic authentication to watch the Web page</small><br><br> |
112 | <center><img src="img/addurl2.gif" border="0"></center> | |
44 | <center><img src="img/addurl2.png" border="0"></center> | |
113 | 45 | <br><br>OR<br><br> |
114 | 46 | <li>Capture a link from your Web browser to HTTrack</li> |
115 | 47 | <br><small>Use this tool only for form-based pages (pages delivered after submiting a form) that need some analysis</small><br><br> |
116 | <center><img src="img/addurl3.gif" border="0"></center> | |
48 | <center><img src="img/addurl3.png" border="0"></center> | |
117 | 49 | <br> |
118 | 50 | <br> |
119 | 51 | <small>Set, as explained, your Web browser proxy preferences to the values indicated : set the proxy's address, and the proxy's port, |
122 | 54 | capture the link and display a confirmation page. |
123 | 55 | <br><br> |
124 | 56 | </small> |
125 | <center><img src="img/addurl4.gif" border="0"></center> | |
57 | <center><img src="img/addurl4.png" border="0"></center> | |
126 | 58 | <br> |
127 | <center><img src="img/addurl5.gif" border="0"></center> | |
59 | <center><img src="img/addurl5.png" border="0"></center> | |
128 | 60 | </ol> |
129 | 61 | |
130 | 62 | <br><br><br><br> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Cache format specification</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
144 | 76 | -------- ---- ---- ---- |
145 | 77 | 94 07-18-03 08:59 http://www.httrack.com/robots.txt |
146 | 78 | 9866 01-17-04 01:09 http://www.httrack.com/html/cache.html |
147 | 0 05-11-03 13:31 http://www.httrack.com/html/images/bg_rings.gif | |
148 | 207 01-19-04 05:49 http://www.httrack.com/html/fade.gif | |
149 | 0 05-11-03 13:31 http://www.httrack.com/html/images/header_title_4.gif | |
79 | 0 05-11-03 13:31 http://www.httrack.com/html/images/bg_rings.png | |
80 | 207 01-19-04 05:49 http://www.httrack.com/html/fade.png | |
81 | 0 05-11-03 13:31 http://www.httrack.com/html/images/header_title_4.png | |
150 | 82 | -------- ------- |
151 | 83 | 10167 5 files |
152 | 84 | </pre> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
16 | 16 | // --> |
17 | 17 | </script> |
18 | 18 | |
19 | <style type="text/css"> | |
20 | <!-- | |
21 | ||
22 | body { | |
23 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
24 | background: #77b; | |
25 | } | |
26 | body, td { | |
27 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
28 | } | |
29 | ||
30 | #subTitle { | |
31 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
32 | } | |
33 | ||
34 | #siteNavigation a, #siteNavigation .current { | |
35 | font-weight: bold; color: #448; | |
36 | } | |
37 | #siteNavigation a:link { text-decoration: none; } | |
38 | #siteNavigation a:visited { text-decoration: none; } | |
39 | ||
40 | #siteNavigation .current { background-color: #ccd; } | |
41 | ||
42 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
43 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
44 | ||
45 | ||
46 | a:link { text-decoration: underline; color: #00f; } | |
47 | a:visited { text-decoration: underline; color: #000; } | |
48 | a:hover { text-decoration: underline; color: #c00; } | |
49 | a:active { text-decoration: underline; } | |
50 | ||
51 | #pageContent { | |
52 | clear: both; | |
53 | border-bottom: 6px solid #000; | |
54 | padding: 10px; padding-top: 20px; | |
55 | line-height: 1.65em; | |
56 | background-image: url(images/bg_rings.gif); | |
57 | background-repeat: no-repeat; | |
58 | background-position: top right; | |
59 | } | |
60 | ||
61 | #pageContent, #siteNavigation { | |
62 | background-color: #ccd; | |
63 | } | |
64 | ||
65 | ||
66 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
67 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
68 | ||
69 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
70 | ||
71 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
72 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
73 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
74 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
75 | ||
76 | .blak { background-color: #000; } | |
77 | .hide { display: none; } | |
78 | .tableWidth { min-width: 573px; } | |
79 | ||
80 | .tblRegular { border-collapse: collapse; } | |
81 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
82 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
83 | .tblNoBorder td { border: 0; } | |
84 | ||
85 | ||
86 | // --> | |
87 | </style> | |
19 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
88 | 20 | |
89 | 21 | </head> |
90 | 22 | |
91 | 23 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
92 | 24 | <tr> |
93 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
25 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
94 | 26 | </tr> |
95 | 27 | </table> |
96 | 28 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
77 | ||
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
78 | 9 | </head> |
79 | 10 | |
80 | 11 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 12 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
13 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 14 | </tr> |
84 | 15 | </table> |
85 | 16 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
571 | 503 | A: <em>By default, HTTrack tries to know the type of remote files. This is useful when links like |
572 | 504 | <tt>http://www.someweb.com/foo.cgi?id=1</tt> can be either HTML pages, images or anything else. |
573 | 505 | Locally, foo.cgi will not be recognized as an html page, or as an image, by your browser. HTTrack has to rename the file |
574 | as foo.html or foo.gif so that it can be viewed.<br> | |
506 | as foo.html or foo.png so that it can be viewed.<br> | |
575 | 507 | </em> |
576 | 508 | <br> |
577 | 509 | |
632 | 564 | <br><br> |
633 | 565 | <li>Dynamic pages. Links with names terminated by <tt>.php3</tt>, <tt>.asp</tt> or other type which are different from the regular |
634 | 566 | <tt>.html</tt> or <tt>.htm</tt> will require a supplemental request, too. HTTrack has to "know" the type (called "MIME type") of a file |
635 | before forming the destination filename. Files like foo.gif are "known" to be images, ".html" are obviously HTML pages - but ".php3" | |
567 | before forming the destination filename. Files like foo.png are "known" to be images, ".html" are obviously HTML pages - but ".php3" | |
636 | 568 | pages may be either dynamically generated html pages, images, data files...<br> |
637 | 569 | <br> |
638 | 570 | If you KNOW that ALL ".php3" and ".asp" pages are in fact HTML pages on a mirror, use the <tt>assume</tt> option:<br> |
755 | 687 | <br> |
756 | 688 | </a><a NAME="Q9">Q: <strong>I don't want to load gif files.. but what may happen if I |
757 | 689 | watch the page?</strong><br> |
758 | A: <em>If you have filtered gif files (<tt>-*.gif</tt>), links to gif files will be | |
690 | A: <em>If you have filtered gif files (<tt>-*.png</tt>), links to gif files will be | |
759 | 691 | rebuilt so that your browser can find them on the server.</em><br> |
760 | 692 | <br> |
761 | 693 | </a><a NAME="Q9b">Q: <strong>I don't want to download thumbnail images.. is it possible?</strong><br> |
762 | 694 | A: <em>Filters can not be used with image pixel size ; but you can filter on file size (bytes). |
763 | 695 | Use advanced <a href="filters.html">filters</a> for that ; such as:<br> |
764 | <tt>-*.gif*[<10]</tt> to exclude gif files smaller than 10KiB. | |
696 | <tt>-*.png*[<10]</tt> to exclude gif files smaller than 10KiB. | |
765 | 697 | </em><br> |
766 | 698 | <br> |
767 | 699 | </a><a NAME="Q15">Q: <strong>I get all types of files on a web site, but I didn't select |
769 | 701 | A: <em>By default, HTTrack retrieves all types of files on authorized links. To avoid |
770 | 702 | that, define filters like </a><a NAME="Q7"><tt>-* +<website>/*.html |
771 | 703 | +<website>/*.htm +<website>/ +*.<type wanted></tt></a><a NAME="Q10"><br> |
772 | Example: <tt>httrack www.someweb.com/index.html -* +www.someweb.com/*.htm* +www.someweb.com/*.gif +www.someweb.com/*.jpg</tt><br> | |
704 | Example: <tt>httrack www.someweb.com/index.html -* +www.someweb.com/*.htm* +www.someweb.com/*.png +www.someweb.com/*.jpg</tt><br> | |
773 | 705 | <br> |
774 | 706 | </em><a NAME="Q10">Q: <strong>When I use filters, I get too many files!</strong><br> |
775 | 707 | A: <em>You might use too large a filter, for example <tt>*.html</tt> will get ALL html |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
287 | 219 | %H debug HTTP headers in logfile (--debug-headers) |
288 | 220 | |
289 | 221 | Guru options: (do NOT use) |
290 | #0 Filter test (-#0 '*.gif' 'www.bar.com/foo.gif') | |
222 | #0 Filter test (-#0 '*.png' 'www.bar.com/foo.png') | |
291 | 223 | #f Always flush log files |
292 | 224 | #FN Maximum number of filters |
293 | 225 | #h Version info |
328 | 260 | N1099 Identical to N99 exept that there is no "web" directory |
329 | 261 | Details: User-defined option N |
330 | 262 | %n Name of file without file type (ex: image) (--do-not-recatch) |
331 | %N Name of file, including file type (ex: image.gif) | |
263 | %N Name of file, including file type (ex: image.png) | |
332 | 264 | %t File type (ex: gif) |
333 | 265 | %p Path [without ending /] (ex: /someimages) |
334 | 266 | %h Host name (ex: www.someweb.com) (--http-10) |
927 | 859 | followed and what links are not as well as to provide long lists of |
928 | 860 | links to investigate. Any setting other than the default for this |
929 | 861 | option forces the engine to use less reliable and more complex parsing. |
930 | 'Dirty' parsing means that links like 'xsgfd syaze="foo.gif"' will cause | |
931 | HTTrack to download foo.gif, even if HTTrack don't know what the "xsgfd | |
862 | 'Dirty' parsing means that links like 'xsgfd syaze="foo.png"' will cause | |
863 | HTTrack to download foo.png, even if HTTrack don't know what the "xsgfd | |
932 | 864 | syaze=" tag actually means! This option is powerful because some links |
933 | 865 | might otherwise be missed, but it can cause errors in HTML or javascript. |
934 | 866 | |
935 | 867 | <p align=justify> This will direct the program to NOT search Javascript |
936 | 868 | for unknown tag fields (e.g., it will find things like |
937 | foo.location="bar.html"; but will not find things like bar="foo.gif";). | |
869 | foo.location="bar.html"; but will not find things like bar="foo.png";). | |
938 | 870 | While I have never had a reason to use this, some users may decide that |
939 | 871 | they want to be more conservative in their searches. As a note, |
940 | 872 | javascript imported files (.js) are not currently searched for URLs. |
1046 | 978 | |
1047 | 979 | <ul><pre> |
1048 | 980 | %n Name of file without file type (ex: image) |
1049 | %N Name of file, including file type (ex: image.gif) | |
981 | %N Name of file, including file type (ex: image.png) | |
1050 | 982 | %t File type (ex: gif) |
1051 | 983 | %p Path [without ending /] (ex: /someimages) |
1052 | 984 | %h Host name (ex: www.all.net) |
1249 | 1181 | |
1250 | 1182 | <p align=justify> Some servers give responses not strictly within the |
1251 | 1183 | requirements of the official http protocol. These 'Bogus' responses can |
1252 | be accepted by using this option. For example, when requesting foo.gif | |
1184 | be accepted by using this option. For example, when requesting foo.png | |
1253 | 1185 | (5132 bytes), the server can, optionally, add: |
1254 | 1186 | <pre> |
1255 | 1187 | Content-length: 5132 |
1706 | 1638 | written above! |
1707 | 1639 | |
1708 | 1640 | <pre> |
1709 | #0 Filter test (-#0 '*.gif' 'www.bar.com/foo.gif') | |
1641 | #0 Filter test (-#0 '*.png' 'www.bar.com/foo.png') | |
1710 | 1642 | </pre> |
1711 | 1643 | |
1712 | 1644 | <p align=justify> To test the filter system. Example: |
1713 | 1645 | |
1714 | 1646 | <pre> |
1715 | $ httrack -#0 'www.*.com/*foo*bar.gif' 'www.mysite.com/test/foo4bar.gif' | |
1716 | www.mysite.com/test/foo4bar.gif does match www.*.com/*foo*bar.gif | |
1647 | $ httrack -#0 'www.*.com/*foo*bar.png' 'www.mysite.com/test/foo4bar.png' | |
1648 | www.mysite.com/test/foo4bar.png does match www.*.com/*foo*bar.png | |
1717 | 1649 | </pre> |
1718 | 1650 | |
1719 | 1651 | <pre> |
1975 | 1907 | |
1976 | 1908 | <table BORDER="1" CELLPADDING="2"> |
1977 | 1909 | <tr><td> |
1978 | <b>+*.gif -image*.gif</b> | |
1910 | <b>+*.png -image*.png</b> | |
1979 | 1911 | </td><td> |
1980 | Will accept all gif files BUT image1.gif,imageblue.gif,imagery.gif and so on | |
1912 | Will accept all gif files BUT image1.png,imageblue.png,imagery.png and so on | |
1981 | 1913 | </tr> |
1982 | 1914 | <tr><td> |
1983 | <b>-image*.gif +*.gif</b> | |
1915 | <b>-image*.png +*.png</b> | |
1984 | 1916 | </td><td> |
1985 | 1917 | Will accept all gif files, because the second pattern is prioritary (because it is defined AFTER the first one) |
1986 | 1918 | </tr> |
2071 | 2003 | will not match this filter)</td> |
2072 | 2004 | </tr> |
2073 | 2005 | <tr> |
2074 | <td> <b> -*.gif*[> 5] -*.zip +*.zip*[< 10]</b></td> | |
2006 | <td> <b> -*.png*[> 5] -*.zip +*.zip*[< 10]</b></td> | |
2075 | 2007 | <td> refuse all gif files smaller than 5KB, exlude all zip files, EXCEPT zip files smaller than 10KB </td> |
2076 | 2008 | </tr> |
2077 | 2009 | </table> |
2137 | 2069 | set sockets=8 |
2138 | 2070 | set index on |
2139 | 2071 | retries=2 |
2140 | allow *.gif | |
2072 | allow *.png | |
2141 | 2073 | deny ad.doubleclick.net/* |
2142 | 2074 | </i></b></pre></ul> |
2143 | 2075 | |
2151 | 2083 | sockets=8 |
2152 | 2084 | index=1 |
2153 | 2085 | retries=2 |
2154 | allow=*.gif | |
2086 | allow=*.png | |
2155 | 2087 | deny=ad.doubleclick.net/* |
2156 | 2088 | </i></b></pre></ul> |
2157 | 2089 | |
2160 | 2092 | one filter) the following .httrackrc: |
2161 | 2093 | |
2162 | 2094 | <ul><pre><b><i> |
2163 | allow *.gif | |
2095 | allow *.png | |
2164 | 2096 | allow *.jpg |
2165 | 2097 | </i></b></pre></ul> |
2166 | 2098 | |
2167 | 2099 | <p align=justify> looks better for a human than: |
2168 | 2100 | |
2169 | 2101 | <ul><pre><b><i> |
2170 | allow=*.gif | |
2102 | allow=*.png | |
2171 | 2103 | allow=*.jpg |
2172 | 2104 | </i></b></pre></ul> |
2173 | 2105 | |
2176 | 2108 | <ul><pre><b><i> |
2177 | 2109 | $ httrack ghost |
2178 | 2110 | $ cat hts-cache/doit.log |
2179 | -c8 -C1 -R2 +*.gif -ad.doubleclick.net/* ghost | |
2111 | -c8 -C1 -R2 +*.png -ad.doubleclick.net/* ghost | |
2180 | 2112 | </i></b></pre></ul> |
2181 | 2113 | |
2182 | <p align=justify> The "-c8 -C1 -R2 +*.gif -ad.doubleclick.net/*" was | |
2114 | <p align=justify> The "-c8 -C1 -R2 +*.png -ad.doubleclick.net/*" was | |
2183 | 2115 | added by the .httrackrc |
2184 | 2116 | |
2185 | 2117 | <hr> |
2196 | 2128 | |
2197 | 2129 | <p align=justify> Note for the -N option: "%h%p/%n%q.%t" will be now be |
2198 | 2130 | used if possible. In normal cases, when a file does not have any |
2199 | parameters (www.foo.com/bar.gif) the %q option does not add anything, so | |
2131 | parameters (www.foo.com/bar.png) the %q option does not add anything, so | |
2200 | 2132 | there are no differences in file names. But when parameters are present |
2201 | (for example, www.foo.com/bar.cgi?FileCollection=133.gif), the | |
2202 | additionnal query string (in this case, FileCollection=133.gif) will be | |
2133 | (for example, www.foo.com/bar.cgi?FileCollection=133.png), the | |
2134 | additionnal query string (in this case, FileCollection=133.png) will be | |
2203 | 2135 | "hashed" and added to the filename. For example: |
2204 | 2136 | |
2205 | <pre><i><b>'www.all.net/bar.cgi?FileCollection=133.gif'</b></i></pre> | |
2137 | <pre><i><b>'www.all.net/bar.cgi?FileCollection=133.png'</b></i></pre> | |
2206 | 2138 | <p align=justify> will be named |
2207 | <pre><i><b>'/tmp/mysite/bar4F2E.gif'</b></i></pre> | |
2139 | <pre><i><b>'/tmp/mysite/bar4F2E.png'</b></i></pre> | |
2208 | 2140 | |
2209 | 2141 | <p align=justify> The additionnal 4 letters/digits are VERY useful in |
2210 | 2142 | cases where there are a substantial number of identical files: |
2211 | 2143 | |
2212 | 2144 | <pre><i><b> |
2213 | www.all.net/bar.cgi?FileCollection=133.gif | |
2214 | www.all.net/bar.cgi?FileCollection=rose.gif | |
2215 | www.all.net/bar.cgi?FileCollection=plant4.gif | |
2216 | www.all.net/bar.cgi?FileCollection=silver.gif | |
2145 | www.all.net/bar.cgi?FileCollection=133.png | |
2146 | www.all.net/bar.cgi?FileCollection=rose.png | |
2147 | www.all.net/bar.cgi?FileCollection=plant4.png | |
2148 | www.all.net/bar.cgi?FileCollection=silver.png | |
2217 | 2149 | and so on... |
2218 | 2150 | </b></i></pre> |
2219 | 2151 | |
2417 | 2349 | <b>http://www.all.net/foo.cgi?id=1</b> can be either HTML pages, images or |
2418 | 2350 | anything else. Locally, foo.cgi will not be recognized as an html page, |
2419 | 2351 | or as an image, by your browser. HTTrack has to rename the file as |
2420 | foo.html or foo.gif so that it can be viewed. | |
2352 | foo.html or foo.png so that it can be viewed. | |
2421 | 2353 | |
2422 | 2354 | <p align=justify> Sometimes, however, some data files are seen by the |
2423 | 2355 | remote server as html files, or images : in this case HTTrack is being |
2550 | 2482 | <p align=justify><b>Q: I don't want to load gif files.. but what may |
2551 | 2483 | happen if I watch the page? </b> |
2552 | 2484 | |
2553 | <p align=justify> A: If you have filtered gif files (<b>-*.gif</b>), | |
2485 | <p align=justify> A: If you have filtered gif files (<b>-*.png</b>), | |
2554 | 2486 | links to gif files will be rebuild so that your browser can find them on |
2555 | 2487 | the server. |
2556 | 2488 | |
2564 | 2496 | +<website>/ +*.<type wanted></b></b> |
2565 | 2497 | |
2566 | 2498 | <p align=justify> Example: <b>httrack www.all.net/index.html -* |
2567 | +www.all.net/*.htm* +www.all.net/*.gif +www.all.net/*.jpg</b> | |
2499 | +www.all.net/*.htm* +www.all.net/*.png +www.all.net/*.jpg</b> | |
2568 | 2500 | |
2569 | 2501 | <p align=justify><b>Q: When I use filters, I get too many files! </b> |
2570 | 2502 |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
119 | 51 | <br> |
120 | 52 | |
121 | 53 | <p> |
122 | <h4>Scan rules based on URL or extension (e.g. accept or refuse all .zip or .gif files)</h4> | |
54 | <h4>Scan rules based on URL or extension (e.g. accept or refuse all .zip or .png files)</h4> | |
123 | 55 | </p> |
124 | 56 | |
125 | 57 | To accept a family of links (for example, all links with a specific name or type), you just have to add |
126 | an authorization filter, like <b><tt>+*.gif</tt></b>. The pattern is a plus (this one: <b><tt>+</tt></b>), | |
58 | an authorization filter, like <b><tt>+*.png</tt></b>. The pattern is a plus (this one: <b><tt>+</tt></b>), | |
127 | 59 | followed by a pattern composed of letters and wildcards (this one: <b><tt>*</tt></b>). |
128 | 60 | <br><br> |
129 | 61 | To forbide a family of links, define |
130 | an authorization filter, like <b><tt>-*.gif</tt></b>. The pattern is a dash (this one: <b><tt>-</tt></b>), | |
62 | an authorization filter, like <b><tt>-*.png</tt></b>. The pattern is a dash (this one: <b><tt>-</tt></b>), | |
131 | 63 | followed by a the same kind of pattern as for the authorization filter. |
132 | 64 | <br><br> |
133 | Example: +*.gif will accept all files finished by .gif<br> | |
134 | Example: -*.gif will refuse all files finished by .gif<br> | |
65 | Example: +*.png will accept all files finished by .png<br> | |
66 | Example: -*.png will refuse all files finished by .png<br> | |
135 | 67 | <br> |
136 | 68 | |
137 | 69 | <p> |
145 | 77 | including gif files inside this domain and outside (eternal images), but not take to large images, |
146 | 78 | or too small ones (thumbnails)<br> |
147 | 79 | Excluding gif images smaller than 5KB and images larger than 100KB is therefore a good option; |
148 | +www.example.com +*.gif -*.gif*[<5] -*.gif*[>100] | |
80 | +www.example.com +*.png -*.png*[<5] -*.png*[>100] | |
149 | 81 | |
150 | 82 | <br> |
151 | 83 | |
161 | 93 | type against certain patterns. |
162 | 94 | |
163 | 95 | Example: You may want to accept all files on the domain www.example.com, using '+www.example.com/*', and |
164 | exclude all gif files, using '-*.gif'. But some dynamic scripts (such as www.example.com/dynamic.php) can | |
96 | exclude all gif files, using '-*.png'. But some dynamic scripts (such as www.example.com/dynamic.php) can | |
165 | 97 | both generate html content, or image data content, depending on the context. Excluding this script, using |
166 | 98 | the scan rule '-www.example.com/dynamic.php', is therefore not a good solution. |
167 | 99 | |
193 | 125 | <br> |
194 | 126 | <table BORDER="1" CELLPADDING="2"> |
195 | 127 | <tr><td nowrap> |
196 | <tt>+*.gif -image*.gif</tt> | |
128 | <tt>+*.png -image*.png</tt> | |
197 | 129 | </td><td> |
198 | Will accept all gif files BUT image1.gif,imageblue.gif,imagery.gif and so on | |
130 | Will accept all gif files BUT image1.png,imageblue.png,imagery.png and so on | |
199 | 131 | </tr> |
200 | 132 | <tr><td nowrap> |
201 | <tt>-image*.gif +*.gif</tt> | |
133 | <tt>-image*.png +*.png</tt> | |
202 | 134 | </td><td> |
203 | 135 | Will accept all gif files, because the second pattern is prioritary (because it is defined AFTER the first one) |
204 | 136 | </tr> |
208 | 140 | Note: these scan rules can be mixed with scan rules based on size (see 1.b)<br> |
209 | 141 | |
210 | 142 | <br> |
211 | We saw that patterns are composed of letters and wildcards (<b><tt>*</tt></b>), as in */image*.gif | |
143 | We saw that patterns are composed of letters and wildcards (<b><tt>*</tt></b>), as in */image*.png | |
212 | 144 | |
213 | 145 | <p align="JUSTIFY"><br> |
214 | 146 | Special wild cards can be used for specific characters: (*[..])</p> |
421 | 353 | <!-- --> |
422 | 354 | <tr> |
423 | 355 | <td rowspan=2>Download all html and images on www.example.com</td> |
424 | <td bgcolor="#55ff55"><tt>-*<br /> +www.example.com/*.html<br /> +www.example.com/*.php<br /> +www.example.com/*.asp<br /> +www.example.com/*.gif <br />+www.example.com/*.jpg <br />+www.example.com/*.png<br /> -mime:*/* +mime:text/html +mime:image/*</tt></td> | |
356 | <td bgcolor="#55ff55"><tt>-*<br /> +www.example.com/*.html<br /> +www.example.com/*.php<br /> +www.example.com/*.asp<br /> +www.example.com/*.png <br />+www.example.com/*.jpg <br />+www.example.com/*.png<br /> -mime:*/* +mime:text/html +mime:image/*</tt></td> | |
425 | 357 | <td>Good: efficient download</td> |
426 | 358 | </tr> |
427 | 359 | <tr> |
441 | 373 | <!-- --> |
442 | 374 | <tr> |
443 | 375 | <td rowspan=2>Download all html, and images smaller than 100KB on www.example.com</td> |
444 | <td bgcolor="#55ff55"><tt>-*<br /> +www.example.com/*.html<br /> +www.example.com/*.php<br /> +www.example.com/*.asp<br /> +www.example.com/*.gif*[<100] <br />+www.example.com/*.jpg*[<100] <br />+www.example.com/*.png*[<100]<br /> -mime:*/* +mime:text/html +mime:image/*</tt></td> | |
376 | <td bgcolor="#55ff55"><tt>-*<br /> +www.example.com/*.html<br /> +www.example.com/*.php<br /> +www.example.com/*.asp<br /> +www.example.com/*.png*[<100] <br />+www.example.com/*.jpg*[<100] <br />+www.example.com/*.png*[<100]<br /> -mime:*/* +mime:text/html +mime:image/*</tt></td> | |
445 | 377 | <td>Good: efficient download</td> |
446 | 378 | </tr> |
447 | 379 | <tr> |
36 | 36 | border-bottom: 6px solid #000; |
37 | 37 | padding: 10px; padding-top: 20px; |
38 | 38 | line-height: 1.65em; |
39 | background-image: url(images/bg_rings.gif); | |
39 | background-image: url(images/bg_rings.png); | |
40 | 40 | background-repeat: no-repeat; |
41 | 41 | background-position: top right; |
42 | 42 | } |
1420 | 1420 | <td width="78%"> |
1421 | 1421 | |
1422 | 1422 | |
1423 | <p>filter test (−#0 *.gif www.bar.com/foo.gif ) | |
1423 | <p>filter test (−#0 *.png www.bar.com/foo.png ) | |
1424 | 1424 | (−−debug−testfilters <param>)</p></td></tr> |
1425 | 1425 | <tr valign="top" align="left"> |
1426 | 1426 | <td width="11%"></td> |
1454 | 1454 | <td width="78%"> |
1455 | 1455 | |
1456 | 1456 | |
1457 | <p>cache list (−#C *.com/spider*.gif | |
1457 | <p>cache list (−#C *.com/spider*.png | |
1458 | 1458 | (−−debug−cache <param>)</p></td></tr> |
1459 | 1459 | <tr valign="top" align="left"> |
1460 | 1460 | <td width="11%"></td> |
1968 | 1968 | <p style="margin-left:11%; margin-top: 1em"><b>Details: |
1969 | 1969 | User−defined option N</b> <br> |
1970 | 1970 | %n Name of file without file type (ex: image) <br> |
1971 | %N Name of file, including file type (ex: image.gif) <br> | |
1971 | %N Name of file, including file type (ex: image.png) <br> | |
1972 | 1972 | %t File type (ex: gif) <br> |
1973 | 1973 | %p Path [without ending /] (ex: /someimages) <br> |
1974 | 1974 | %h Host name (ex: www.someweb.com) <br> |
2269 | 2269 | <p style="margin-left:11%; margin-top: 1em"><small>- |
2270 | 2270 | Several scripts generating complex filenames may not find |
2271 | 2271 | them (ex: |
2272 | img.src=’image’+a+Mobj.dst+’.gif’)</small></p> | |
2272 | img.src=’image’+a+Mobj.dst+’.png’)</small></p> | |
2273 | 2273 | |
2274 | 2274 | <p style="margin-left:11%; margin-top: 1em"><small>- Some |
2275 | 2275 | java classes may not find some files on them (class |
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
Binary diff not shown
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
113 | 45 | <table border="0"> |
114 | 46 | <tr> |
115 | 47 | <td> |
116 | <p align="center"><img src="img/snap4_a.gif" width="325" height="233" alt="WinHTTrack snapshot"> </p> | |
48 | <p align="center"><img src="img/snap4_a.png" width="325" height="233" alt="WinHTTrack snapshot"> </p> | |
117 | 49 | </td> |
118 | 50 | <td valign="top"> |
119 | 51 | <p align="justify"> |
0 | <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> | |
1 | ||
2 | <head> | |
3 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
4 | <meta name="description" content="HTTrack is an easy-to-use website mirror utility. It allows you to download a World Wide website from the Internet to a local directory,building recursively all structures, getting html, images, and other files from the server to your computer. Links are rebuiltrelatively so that you can freely browse to the local site (works with any browser). You can mirror several sites together so that you can jump from one toanother. You can, also, update an existing mirror site, or resume an interrupted download. The robot is fully configurable, with an integrated help" /> | |
5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> | |
6 | <title>HTTrack Website Copier - Offline Browser</title> | |
7 | ||
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
77 | ||
78 | </head> | |
79 | ||
80 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> | |
81 | <tr> | |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | </tr> | |
84 | </table> | |
85 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> | |
86 | <tr> | |
87 | <td id="subTitle">Open Source offline browser</td> | |
88 | </tr> | |
89 | </table> | |
90 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> | |
91 | <tr class="blak"> | |
92 | <td> | |
93 | <table width="100%" border="0" align="center" cellspacing="1" cellpadding="0"> | |
94 | <tr> | |
95 | <td colspan="6"> | |
96 | <table width="100%" border="0" align="center" cellspacing="0" cellpadding="10"> | |
97 | <tr> | |
98 | <td id="pageContent"> | |
99 | <!-- ==================== End prologue ==================== --> | |
100 | ||
101 | <h2 align="center"><em>HTTrack Programming page - plugging functions</em></h2> | |
102 | ||
103 | <br> | |
104 | ||
0 | <html xmlns="http://www.w3.org/1999/xhtml" lang="en"> | |
1 | ||
2 | <head> | |
3 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | |
4 | <meta name="description" content="HTTrack is an easy-to-use website mirror utility. It allows you to download a World Wide website from the Internet to a local directory,building recursively all structures, getting html, images, and other files from the server to your computer. Links are rebuiltrelatively so that you can freely browse to the local site (works with any browser). You can mirror several sites together so that you can jump from one toanother. You can, also, update an existing mirror site, or resume an interrupted download. The robot is fully configurable, with an integrated help" /> | |
5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> | |
6 | <title>HTTrack Website Copier - Offline Browser</title> | |
7 | ||
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
9 | ||
10 | </head> | |
11 | ||
12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> | |
13 | <tr> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
15 | </tr> | |
16 | </table> | |
17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> | |
18 | <tr> | |
19 | <td id="subTitle">Open Source offline browser</td> | |
20 | </tr> | |
21 | </table> | |
22 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> | |
23 | <tr class="blak"> | |
24 | <td> | |
25 | <table width="100%" border="0" align="center" cellspacing="1" cellpadding="0"> | |
26 | <tr> | |
27 | <td colspan="6"> | |
28 | <table width="100%" border="0" align="center" cellspacing="0" cellpadding="10"> | |
29 | <tr> | |
30 | <td id="pageContent"> | |
31 | <!-- ==================== End prologue ==================== --> | |
32 | ||
33 | <h2 align="center"><em>HTTrack Programming page - plugging functions</em></h2> | |
34 | ||
35 | <br> | |
36 | ||
105 | 37 | You can write external functions to be plugged in the httrack library very easily. |
106 | 38 | We'll see there some examples. |
107 | ||
108 | <br><br> | |
39 | ||
40 | <br><br> | |
109 | 41 | |
110 | 42 | The <tt>httrack</tt> commandline tool allows (since the 3.30 release) to plug external functions to various callbacks defined in httrack. |
111 | 43 | The 3.41 release introduces a cleaned up verion of callbacks, with two major changes: |
120 | 52 | <ul> |
121 | 53 | <li>the <tt>httrack-library.h</tt> prototype file |
122 | 54 | <br /> |
123 | Note: the <i>Initialization</i>, <i>Main functions</i>, <i>Options handling</i> and <i>Wrapper functions</i> sections are generally the only ones to be considered. | |
124 | </li> | |
55 | Note: the <i>Initialization</i>, <i>Main functions</i>, <i>Options handling</i> and <i>Wrapper functions</i> sections are generally the only ones to be considered. | |
56 | </li> | |
125 | 57 | <li>the <tt>htsdefines.h</tt> prototype file, which describes callback function prototypes</li> |
126 | 58 | <li>the <tt>htsopt.h</tt> prototype file, which describes the full httrackp* structure</li> |
127 | 59 | <li>the <tt>callbacks-example*.c</tt> files given in the httrack archive</li> |
135 | 67 | |
136 | 68 | <table width="100%"> |
137 | 69 | <tr><td><b><i>module function name</i></b></td><td><b>function description</b></td><td><b>function signature</b></td></tr> |
138 | <tr><td background="img/fade.gif"><i>hts_plug</i></td><td background="img/fade.gif"> | |
70 | <tr><td background="img/fade.png"><i>hts_plug</i></td><td background="img/fade.png"> | |
139 | 71 | The module entry point. The opt structure can be used to plug callbacks, using the CHAIN_FUNCTION() macro helper. The argv optional argument is the one passed in the commandline as --wrapper parameter.<br>return value: 1 upon success, 0 upon error (the mirror will then be aborted)<br /> |
140 | 72 | |
141 | 73 | <br /> |
153 | 85 | </tt> |
154 | 86 | <br /> |
155 | 87 | |
156 | </td><td background="img/fade.gif"><tt>extern int hts_plug(httrackp *opt, const char* argv);</tt></td></tr> | |
88 | </td><td background="img/fade.png"><tt>extern int hts_plug(httrackp *opt, const char* argv);</tt></td></tr> | |
157 | 89 | |
158 | 90 | <!-- --> |
159 | 91 | |
160 | <tr><td background="img/fade.gif"><i>hts_unplug</i></td><td background="img/fade.gif"> | |
161 | The module exit point. To free allocated resources without using global variables, use the uninit callback (see below)</td><td background="img/fade.gif"><tt>extern int hts_unplug(httrackp *opt);</tt></td></tr> | |
92 | <tr><td background="img/fade.png"><i>hts_unplug</i></td><td background="img/fade.png"> | |
93 | The module exit point. To free allocated resources without using global variables, use the uninit callback (see below)</td><td background="img/fade.png"><tt>extern int hts_unplug(httrackp *opt);</tt></td></tr> | |
162 | 94 | |
163 | 95 | </table> |
164 | 96 | |
180 | 112 | <table width="100%"> |
181 | 113 | <tr><td><b><i>callback name</i></b></td><td><b>callback description</b></td><td><b>callback function signature</b></td></tr> |
182 | 114 | |
183 | <tr><td background="img/fade.gif"><i>init</i></td><td background="img/fade.gif">Note: the use the "start" callback is advised. Called during initialization.<br>return value: none</td><td background="img/fade.gif"><tt>void mycallback(t_hts_callbackarg *carg);</tt></td></tr> | |
184 | <tr><td background="img/fade.gif"><i>uninit</i></td><td background="img/fade.gif">Note: the use os the "end" callback is advised.<br />Called during un-initialization<br>return value: none</td><td background="img/fade.gif"><tt>void mycallback(t_hts_callbackarg *carg);</tt></td></tr> | |
185 | <tr><td background="img/fade.gif"><i>start</i></td><td background="img/fade.gif">Called when the mirror starts. The <tt>opt</tt> structure passed lists all options defined for this mirror. You may modify the <tt>opt</tt> structure to fit your needs.<br>return value: 1 upon success, 0 upon error (the mirror will then be aborted)</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt);</tt></td></tr> | |
186 | <tr><td background="img/fade.gif"><i>end</i></td><td background="img/fade.gif">Called when the mirror ends<br>return value: 1 upon success, 0 upon error (the mirror will then be considered aborted)</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt);</tt></td></tr> | |
187 | <tr><td background="img/fade.gif"><i>chopt</i></td><td background="img/fade.gif">Called when options are to be changed. The <tt>opt</tt> structure passed lists all options, updated to take account of recent changes<br>return value: 1 upon success, 0 upon error (the mirror will then be aborted)</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt);</tt></td></tr> | |
188 | <tr><td background="img/fade.gif"><i>preprocess</i></td><td background="img/fade.gif">Called when a document (which is an html document) is to be parsed (original, not yet modified document). The <tt>html</tt> address points to the document data address (char**), and the <tt>length</tt> address points to the lenth of this document. Both pointer values (address and size) can be modified to change the document. It is up to the callback function to reallocate the given pointer (using the hts_realloc()/hts_free() library functions), which will be free()'ed by the engine. Hence, return of static buffers is strictly forbidden, and the use of hts_strdup() in such cases is advised. The <tt>url_address</tt> and <tt>url_file</tt> are the address and URI of the file being processed<br>return value: 1 if the new pointers can be applied (default value)</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char** html, int* len, const char* url_address, const char* url_file);</tt></td></tr> | |
189 | <tr><td background="img/fade.gif"><i>postprocess</i></td><td background="img/fade.gif">Called when a document (which is an html document) is parsed and transformed (links rewritten). The <tt>html</tt> address points to the document data address (char**), and the <tt>length</tt> address points to the lenth of this document. Both pointer values (address and size) can be modified to change the document. It is up to the callback function to reallocate the given pointer (using the hts_realloc()/hts_free() library functions), which will be free()'ed by the engine. Hence, return of static buffers is strictly forbidden, and the use of hts_strdup() in such cases is advised. The <tt>url_address</tt> and <tt>url_file</tt> are the address and URI of the file being processed<br>return value: 1 if the new pointers can be applied (default value)</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char** html, int* len, const char* url_address, const char* url_file);</tt></td></tr> | |
190 | <tr><td background="img/fade.gif"><i>check_html</i></td><td background="img/fade.gif">Called when a document (which may not be an html document) is to be parsed. The <tt>html</tt> address points to the document data, of lenth <tt>len</tt>. The <tt>url_address</tt> and <tt>url_file</tt> are the address and URI of the file being processed<br>return value: 1 if the parsing can be processed, 0 if the file must be skipped without being parsed</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char* html, int len, const char* url_address, const char* url_file);</tt></td></tr> | |
191 | <tr><td background="img/fade.gif"><i>query</i></td><td background="img/fade.gif">Called when the wizard needs to ask a question. The <tt>question</tt> string contains the question for the (human) user<br>return value: the string answer ("" for default reply)</td><td background="img/fade.gif"><tt>const char* mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* question);</tt></td></tr> | |
192 | <tr><td background="img/fade.gif"><i>query2</i></td><td background="img/fade.gif">Called when the wizard needs to ask a question</td><td background="img/fade.gif"><tt>const char* mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* question);</tt></td></tr> | |
193 | <tr><td background="img/fade.gif"><i>query3</i></td><td background="img/fade.gif">Called when the wizard needs to ask a question</td><td background="img/fade.gif"><tt>const char* mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* question);</tt></td></tr> | |
194 | <tr><td background="img/fade.gif"><i>loop</i></td><td background="img/fade.gif">Called periodically (informational, to display statistics)<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, lien_back* back, int back_max, int back_index, int lien_tot, int lien_ntot, int stat_time, hts_stat_struct* stats);</tt></td></tr> | |
195 | <tr><td background="img/fade.gif"><i>check_link</i></td><td background="img/fade.gif">Called when a link has to be tested. The <tt>adr</tt> and <tt>fil</tt> are the address and URI of the link being tested. The passed <tt>status</tt> value has the following meaning: 0 if the link is to be accepted by default, 1 if the link is to be refused by default, and -1 if no decision has yet been taken by the engine<br>return value: same meaning as the passed <tt>status</tt> value ; you may generally return -1 to let the engine take the decision by itself</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* adr, const char* fil, int status);</tt></td></tr> | |
196 | <tr><td background="img/fade.gif"><i>check_mime</i></td><td background="img/fade.gif">Called when a link download has begun, and needs to be tested against its MIME type. The <tt>adr</tt> and <tt>fil</tt> are the address and URI of the link being tested, and the <tt>mime</tt> string contains the link type being processed. The passed <tt>status</tt> value has the following meaning: 0 if the link is to be accepted by default, 1 if the link is to be refused by default, and -1 if no decision has yet been taken by the engine<br>return value: same meaning as the passed <tt>status</tt> value ; you may generally return -1 to let the engine take the decision by itself</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* adr, const char* fil, const char* mime, int status);</tt></td></tr> | |
197 | <tr><td background="img/fade.gif"><i>pause</i></td><td background="img/fade.gif">Called when the engine must pause. When the <tt>lockfile</tt> passed is deleted, the function can return<br>return value: none</td><td background="img/fade.gif"><tt>void mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* lockfile);</tt></td></tr> | |
198 | <tr><td background="img/fade.gif"><i>filesave</i></td><td background="img/fade.gif">Called when a file is to be saved on disk<br>return value: none</td><td background="img/fade.gif"><tt>void mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* file);</tt></td></tr> | |
199 | <tr><td background="img/fade.gif"><i>filesave2</i></td><td background="img/fade.gif">Called when a file is to be saved or checked on disk<br>The hostname, filename and local filename are given. Two additional flags tells if the local file is new (is_new), if the local file is to be modified (is_modified), and if the file was not updated remotely (not_updated).<br>(!is_new && !is_modified): the file is up-to-date, and will not be modified<br>(is_new && is_modified): a new file will be written (or an updated file is being written)<br>(!is_new && is_modified): a file is being updated (append)<br>(is_new && !is_modified): an empty file will be written ("do not recatch locally erased files")<br>not_updated: the file was not re-downloaded because it was up-to-date (no data transfered again)<br><br>return value: none</td><td background="img/fade.gif"><tt>void mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* hostname, const char* filename, const char* localfile, int is_new, int is_modified, int not_updated);</tt></td></tr> | |
200 | ||
201 | <tr><td background="img/fade.gif"><i>linkdetected</i></td><td background="img/fade.gif">Called when a link has been detected<br>return value: 1 if the link can be analyzed, 0 if the link must not even be considered</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char* link);</tt></td></tr> | |
202 | <tr><td background="img/fade.gif"><i>linkdetected2</i></td><td background="img/fade.gif">Called when a link has been detected<br>return value: 1 if the link can be analyzed, 0 if the link must not even be considered</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char* link, const const char* tag_start);</tt></td></tr> | |
203 | <tr><td background="img/fade.gif"><i>xfrstatus</i></td><td background="img/fade.gif">Called when a file has been processed (downloaded, updated, or error)<br>return value: must return 1</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, lien_back* back);</tt></td></tr> | |
204 | <tr><td background="img/fade.gif"><i>savename</i></td><td background="img/fade.gif">Called when a local filename has to be processed. The <tt>adr_complete</tt> and <tt>fil_complete</tt> are the address and URI of the file being saved ; the <tt>referer_adr</tt> and <tt>referer_fil</tt> are the address and URI of the referer link. The <tt>save</tt> string contains the local filename being used. You may modifiy the <tt>save</tt> string to fit your needs, up to 1024 bytes (note: filename collisions, if any, will be handled by the engine by renaming the file into file-2.ext, file-3.ext ..).<br>return value: must return 1</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* adr_complete, const char* fil_complete, const char* referer_adr, const char* referer_fil, char* save);</tt></td></tr> | |
205 | <tr><td background="img/fade.gif"><i>sendhead</i></td><td background="img/fade.gif">Called when HTTP headers are to be sent to the remote server. The <tt>buff</tt> buffer contains text headers, <tt>adr</tt> and <tt>fil</tt> the URL, and <tt>referer_adr</tt> and <tt>referer_fil</tt> the referer URL. The <tt>outgoing</tt> structure contains all information related to the current slot.<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char* buff, const char* adr, const char* fil, const char* referer_adr, const char* referer_fil, htsblk* outgoing);</tt></td></tr> | |
206 | <tr><td background="img/fade.gif"><i>receivehead</i></td><td background="img/fade.gif">Called when HTTP headers are recevived from the remote server. The <tt>buff</tt> buffer contains text headers, <tt>adr</tt> and <tt>fil</tt> the URL, and <tt>referer_adr</tt> and <tt>referer_fil</tt> the referer URL. The <tt>incoming</tt> structure contains all information related to the current slot.<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char* buff, const char* adr, const char* fil, const char* referer_adr, const char* referer_fil, htsblk* incoming);</tt></td></tr> | |
207 | ||
208 | <tr><td background="img/fade.gif"><i>detect</i></td><td background="img/fade.gif">Called when an unknown document is to be parsed. The <tt>str</tt> structure contains all information related to the document.<br>return value: 1 if the type is known and can be parsed, 0 if the document type is unknown</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, htsmoduleStruct* str);</tt></td></tr> | |
209 | <tr><td background="img/fade.gif"><i>parse</i></td><td background="img/fade.gif">The <tt>str</tt> structure contains all information related to the document.<br>return value: 1 if the document was successfully parsed, 0 if an error occured</td><td background="img/fade.gif"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, htsmoduleStruct* str);</tt></td></tr> | |
210 | ||
211 | ||
212 | </table> | |
213 | ||
214 | <br><br> | |
115 | <tr><td background="img/fade.png"><i>init</i></td><td background="img/fade.png">Note: the use the "start" callback is advised. Called during initialization.<br>return value: none</td><td background="img/fade.png"><tt>void mycallback(t_hts_callbackarg *carg);</tt></td></tr> | |
116 | <tr><td background="img/fade.png"><i>uninit</i></td><td background="img/fade.png">Note: the use os the "end" callback is advised.<br />Called during un-initialization<br>return value: none</td><td background="img/fade.png"><tt>void mycallback(t_hts_callbackarg *carg);</tt></td></tr> | |
117 | <tr><td background="img/fade.png"><i>start</i></td><td background="img/fade.png">Called when the mirror starts. The <tt>opt</tt> structure passed lists all options defined for this mirror. You may modify the <tt>opt</tt> structure to fit your needs.<br>return value: 1 upon success, 0 upon error (the mirror will then be aborted)</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt);</tt></td></tr> | |
118 | <tr><td background="img/fade.png"><i>end</i></td><td background="img/fade.png">Called when the mirror ends<br>return value: 1 upon success, 0 upon error (the mirror will then be considered aborted)</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt);</tt></td></tr> | |
119 | <tr><td background="img/fade.png"><i>chopt</i></td><td background="img/fade.png">Called when options are to be changed. The <tt>opt</tt> structure passed lists all options, updated to take account of recent changes<br>return value: 1 upon success, 0 upon error (the mirror will then be aborted)</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt);</tt></td></tr> | |
120 | <tr><td background="img/fade.png"><i>preprocess</i></td><td background="img/fade.png">Called when a document (which is an html document) is to be parsed (original, not yet modified document). The <tt>html</tt> address points to the document data address (char**), and the <tt>length</tt> address points to the lenth of this document. Both pointer values (address and size) can be modified to change the document. It is up to the callback function to reallocate the given pointer (using the hts_realloc()/hts_free() library functions), which will be free()'ed by the engine. Hence, return of static buffers is strictly forbidden, and the use of hts_strdup() in such cases is advised. The <tt>url_address</tt> and <tt>url_file</tt> are the address and URI of the file being processed<br>return value: 1 if the new pointers can be applied (default value)</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char** html, int* len, const char* url_address, const char* url_file);</tt></td></tr> | |
121 | <tr><td background="img/fade.png"><i>postprocess</i></td><td background="img/fade.png">Called when a document (which is an html document) is parsed and transformed (links rewritten). The <tt>html</tt> address points to the document data address (char**), and the <tt>length</tt> address points to the lenth of this document. Both pointer values (address and size) can be modified to change the document. It is up to the callback function to reallocate the given pointer (using the hts_realloc()/hts_free() library functions), which will be free()'ed by the engine. Hence, return of static buffers is strictly forbidden, and the use of hts_strdup() in such cases is advised. The <tt>url_address</tt> and <tt>url_file</tt> are the address and URI of the file being processed<br>return value: 1 if the new pointers can be applied (default value)</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char** html, int* len, const char* url_address, const char* url_file);</tt></td></tr> | |
122 | <tr><td background="img/fade.png"><i>check_html</i></td><td background="img/fade.png">Called when a document (which may not be an html document) is to be parsed. The <tt>html</tt> address points to the document data, of lenth <tt>len</tt>. The <tt>url_address</tt> and <tt>url_file</tt> are the address and URI of the file being processed<br>return value: 1 if the parsing can be processed, 0 if the file must be skipped without being parsed</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char* html, int len, const char* url_address, const char* url_file);</tt></td></tr> | |
123 | <tr><td background="img/fade.png"><i>query</i></td><td background="img/fade.png">Called when the wizard needs to ask a question. The <tt>question</tt> string contains the question for the (human) user<br>return value: the string answer ("" for default reply)</td><td background="img/fade.png"><tt>const char* mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* question);</tt></td></tr> | |
124 | <tr><td background="img/fade.png"><i>query2</i></td><td background="img/fade.png">Called when the wizard needs to ask a question</td><td background="img/fade.png"><tt>const char* mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* question);</tt></td></tr> | |
125 | <tr><td background="img/fade.png"><i>query3</i></td><td background="img/fade.png">Called when the wizard needs to ask a question</td><td background="img/fade.png"><tt>const char* mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* question);</tt></td></tr> | |
126 | <tr><td background="img/fade.png"><i>loop</i></td><td background="img/fade.png">Called periodically (informational, to display statistics)<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, lien_back* back, int back_max, int back_index, int lien_tot, int lien_ntot, int stat_time, hts_stat_struct* stats);</tt></td></tr> | |
127 | <tr><td background="img/fade.png"><i>check_link</i></td><td background="img/fade.png">Called when a link has to be tested. The <tt>adr</tt> and <tt>fil</tt> are the address and URI of the link being tested. The passed <tt>status</tt> value has the following meaning: 0 if the link is to be accepted by default, 1 if the link is to be refused by default, and -1 if no decision has yet been taken by the engine<br>return value: same meaning as the passed <tt>status</tt> value ; you may generally return -1 to let the engine take the decision by itself</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* adr, const char* fil, int status);</tt></td></tr> | |
128 | <tr><td background="img/fade.png"><i>check_mime</i></td><td background="img/fade.png">Called when a link download has begun, and needs to be tested against its MIME type. The <tt>adr</tt> and <tt>fil</tt> are the address and URI of the link being tested, and the <tt>mime</tt> string contains the link type being processed. The passed <tt>status</tt> value has the following meaning: 0 if the link is to be accepted by default, 1 if the link is to be refused by default, and -1 if no decision has yet been taken by the engine<br>return value: same meaning as the passed <tt>status</tt> value ; you may generally return -1 to let the engine take the decision by itself</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* adr, const char* fil, const char* mime, int status);</tt></td></tr> | |
129 | <tr><td background="img/fade.png"><i>pause</i></td><td background="img/fade.png">Called when the engine must pause. When the <tt>lockfile</tt> passed is deleted, the function can return<br>return value: none</td><td background="img/fade.png"><tt>void mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* lockfile);</tt></td></tr> | |
130 | <tr><td background="img/fade.png"><i>filesave</i></td><td background="img/fade.png">Called when a file is to be saved on disk<br>return value: none</td><td background="img/fade.png"><tt>void mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* file);</tt></td></tr> | |
131 | <tr><td background="img/fade.png"><i>filesave2</i></td><td background="img/fade.png">Called when a file is to be saved or checked on disk<br>The hostname, filename and local filename are given. Two additional flags tells if the local file is new (is_new), if the local file is to be modified (is_modified), and if the file was not updated remotely (not_updated).<br>(!is_new && !is_modified): the file is up-to-date, and will not be modified<br>(is_new && is_modified): a new file will be written (or an updated file is being written)<br>(!is_new && is_modified): a file is being updated (append)<br>(is_new && !is_modified): an empty file will be written ("do not recatch locally erased files")<br>not_updated: the file was not re-downloaded because it was up-to-date (no data transfered again)<br><br>return value: none</td><td background="img/fade.png"><tt>void mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* hostname, const char* filename, const char* localfile, int is_new, int is_modified, int not_updated);</tt></td></tr> | |
132 | ||
133 | <tr><td background="img/fade.png"><i>linkdetected</i></td><td background="img/fade.png">Called when a link has been detected<br>return value: 1 if the link can be analyzed, 0 if the link must not even be considered</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char* link);</tt></td></tr> | |
134 | <tr><td background="img/fade.png"><i>linkdetected2</i></td><td background="img/fade.png">Called when a link has been detected<br>return value: 1 if the link can be analyzed, 0 if the link must not even be considered</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char* link, const const char* tag_start);</tt></td></tr> | |
135 | <tr><td background="img/fade.png"><i>xfrstatus</i></td><td background="img/fade.png">Called when a file has been processed (downloaded, updated, or error)<br>return value: must return 1</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, lien_back* back);</tt></td></tr> | |
136 | <tr><td background="img/fade.png"><i>savename</i></td><td background="img/fade.png">Called when a local filename has to be processed. The <tt>adr_complete</tt> and <tt>fil_complete</tt> are the address and URI of the file being saved ; the <tt>referer_adr</tt> and <tt>referer_fil</tt> are the address and URI of the referer link. The <tt>save</tt> string contains the local filename being used. You may modifiy the <tt>save</tt> string to fit your needs, up to 1024 bytes (note: filename collisions, if any, will be handled by the engine by renaming the file into file-2.ext, file-3.ext ..).<br>return value: must return 1</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, const char* adr_complete, const char* fil_complete, const char* referer_adr, const char* referer_fil, char* save);</tt></td></tr> | |
137 | <tr><td background="img/fade.png"><i>sendhead</i></td><td background="img/fade.png">Called when HTTP headers are to be sent to the remote server. The <tt>buff</tt> buffer contains text headers, <tt>adr</tt> and <tt>fil</tt> the URL, and <tt>referer_adr</tt> and <tt>referer_fil</tt> the referer URL. The <tt>outgoing</tt> structure contains all information related to the current slot.<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char* buff, const char* adr, const char* fil, const char* referer_adr, const char* referer_fil, htsblk* outgoing);</tt></td></tr> | |
138 | <tr><td background="img/fade.png"><i>receivehead</i></td><td background="img/fade.png">Called when HTTP headers are recevived from the remote server. The <tt>buff</tt> buffer contains text headers, <tt>adr</tt> and <tt>fil</tt> the URL, and <tt>referer_adr</tt> and <tt>referer_fil</tt> the referer URL. The <tt>incoming</tt> structure contains all information related to the current slot.<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, char* buff, const char* adr, const char* fil, const char* referer_adr, const char* referer_fil, htsblk* incoming);</tt></td></tr> | |
139 | ||
140 | <tr><td background="img/fade.png"><i>detect</i></td><td background="img/fade.png">Called when an unknown document is to be parsed. The <tt>str</tt> structure contains all information related to the document.<br>return value: 1 if the type is known and can be parsed, 0 if the document type is unknown</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, htsmoduleStruct* str);</tt></td></tr> | |
141 | <tr><td background="img/fade.png"><i>parse</i></td><td background="img/fade.png">The <tt>str</tt> structure contains all information related to the document.<br>return value: 1 if the document was successfully parsed, 0 if an error occured</td><td background="img/fade.png"><tt>int mycallback(t_hts_callbackarg *carg, httrackp* opt, htsmoduleStruct* str);</tt></td></tr> | |
142 | ||
143 | ||
144 | </table> | |
145 | ||
146 | <br><br> | |
215 | 147 | Note: the optional libhttrack-plugin module (libhttrack-plugin.dll or libhttrack-plugin.so), if found in the library environment, is loaded automatically, and its <tt>hts_plug()</tt> function being called.<br /> |
216 | 148 | |
217 | ||
149 | ||
218 | 150 | <br /> |
219 | 151 | An example is generally more efficient than anything else, so let's write our first module, aimed to stupidely print all parsed html files: |
220 | 152 | <table width="100%" border="2"> |
316 | 248 | <br /> |
317 | 249 | |
318 | 250 | |
319 | <br><br> | |
320 | ||
321 | <!-- ==================== Start epilogue ==================== --> | |
322 | </td> | |
323 | </tr> | |
324 | </table> | |
325 | </td> | |
326 | </tr> | |
327 | </table> | |
328 | </td> | |
329 | </tr> | |
330 | </table> | |
331 | ||
332 | <table width="76%" border="0" align="center" valign="bottom" cellspacing="0" cellpadding="0"> | |
333 | <tr> | |
334 | <td id="footer"><small>© 2007 Xavier Roche & other contributors - Web Design: Leto Kauler.</small></td> | |
335 | </tr> | |
336 | </table> | |
337 | ||
338 | </body> | |
339 | ||
340 | </html> | |
341 | ||
342 | ||
251 | <br><br> | |
252 | ||
253 | <!-- ==================== Start epilogue ==================== --> | |
254 | </td> | |
255 | </tr> | |
256 | </table> | |
257 | </td> | |
258 | </tr> | |
259 | </table> | |
260 | </td> | |
261 | </tr> | |
262 | </table> | |
263 | ||
264 | <table width="76%" border="0" align="center" valign="bottom" cellspacing="0" cellpadding="0"> | |
265 | <tr> | |
266 | <td id="footer"><small>© 2007 Xavier Roche & other contributors - Web Design: Leto Kauler.</small></td> | |
267 | </tr> | |
268 | </table> | |
269 | ||
270 | </body> | |
271 | ||
272 | </html> | |
273 | ||
274 |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
134 | 66 | <table width="100%"> |
135 | 67 | <tr><td><b>"<i>callback name</i>"</b></td><td><b>callback description</b></td><td><b>callback function signature</b></td></tr> |
136 | 68 | |
137 | <tr><td background="img/fade.gif">"<i>init</i>"</td><td background="img/fade.gif"><font color="red">Note: deprecated, should not be used anymore (unsafe callback) - see "start" callback or wrapper_init() module function below this table.</font>Called during initialization ; use of htswrap_add (see <tt>httrack-library.h</tt>) is permitted inside this function to setup other callbacks.<br>return value: none</td><td background="img/fade.gif"><tt>void (* myfunction)(void);</tt></td></tr> | |
138 | <tr><td background="img/fade.gif">"<i>free</i>"</td><td background="img/fade.gif"><font color="red">Note: deprecated, should not be used anymore (unsafe callback) - see "end" callback or wrapper_exit() module function below this table.</font><br />Called during un-initialization<br>return value: none</td><td background="img/fade.gif"><tt>void (* myfunction)(void);</tt></td></tr> | |
139 | <tr><td background="img/fade.gif">"<i>start</i>"</td><td background="img/fade.gif">Called when the mirror starts. The <tt>opt</tt> structure passed lists all options defined for this mirror. You may modify the <tt>opt</tt> structure to fit your needs. Besides, use of htswrap_add (see <tt>httrack-library.h</tt>) is permitted inside this function to setup other callbacks.<br>return value: 1 upon success, 0 upon error (the mirror will then be aborted)</td><td background="img/fade.gif"><tt>int (* myfunction)(httrackp* opt);</tt></td></tr> | |
140 | <tr><td background="img/fade.gif">"<i>end</i>"</td><td background="img/fade.gif">Called when the mirror ends<br>return value: 1 upon success, 0 upon error (the mirror will then be considered aborted)</td><td background="img/fade.gif"><tt>int (* myfunction)(void);</tt></td></tr> | |
141 | <tr><td background="img/fade.gif">"<i>change-options</i>"</td><td background="img/fade.gif">Called when options are to be changed. The <tt>opt</tt> structure passed lists all options, updated to take account of recent changes<br>return value: 1 upon success, 0 upon error (the mirror will then be aborted)</td><td background="img/fade.gif"><tt>int (* myfunction)(httrackp* opt);</tt></td></tr> | |
142 | <tr><td background="img/fade.gif">"<i>check-html</i>"</td><td background="img/fade.gif">Called when a document (which may not be an html document) is to be parsed. The <tt>html</tt> address points to the document data, of lenth <tt>len</tt>. The <tt>url_adresse</tt> and <tt>url_fichier</tt> are the address and URI of the file being processed<br>return value: 1 if the parsing can be processed, 0 if the file must be skipped without being parsed</td><td background="img/fade.gif"><tt>int (* myfunction)(char* html,int len,char* url_adresse,char* url_fichier);</tt></td></tr> | |
143 | <tr><td background="img/fade.gif">"<i>preprocess-html</i>"</td><td background="img/fade.gif">Called when a document (which is an html document) is to be parsed (original, not yet modified document). The <tt>html</tt> address points to the document data address (char**), and the <tt>length</tt> address points to the lenth of this document. Both pointer values (address and size) can be modified to change the document. It is up to the callback function to reallocate the given pointer (using standard C library realloc()/free() functions), which will be free()'ed by the engine. Hence, return of static buffers is strictly forbidden, and the use of strdup() in such cases is advised. The <tt>url_adresse</tt> and <tt>url_fichier</tt> are the address and URI of the file being processed<br>return value: 1 if the new pointers can be applied (default value)</td><td background="img/fade.gif"><tt>int (* myfunction)(char** html,int* len,char* url_adresse,char* url_fichier);</tt></td></tr> | |
144 | <tr><td background="img/fade.gif">"<i>postprocess-html</i>"</td><td background="img/fade.gif">Called when a document (which is an html document) is parsed and transformed (links rewritten). The <tt>html</tt> address points to the document data address (char**), and the <tt>length</tt> address points to the lenth of this document. Both pointer values (address and size) can be modified to change the document. It is up to the callback function to reallocate the given pointer (using standard C library realloc()/free() functions), which will be free()'ed by the engine. Hence, return of static buffers is strictly forbidden, and the use of strdup() in such cases is advised. The <tt>url_adresse</tt> and <tt>url_fichier</tt> are the address and URI of the file being processed<br>return value: 1 if the new pointers can be applied (default value)</td><td background="img/fade.gif"><tt>int (* myfunction)(char** html,int* len,char* url_adresse,char* url_fichier);</tt></td></tr> | |
145 | <tr><td background="img/fade.gif">"<i>query</i>"</td><td background="img/fade.gif">Called when the wizard needs to ask a question. The <tt>question</tt> string contains the question for the (human) user<br>return value: the string answer ("" for default reply)</td><td background="img/fade.gif"><tt>char* (* myfunction)(char* question);</tt></td></tr> | |
146 | <tr><td background="img/fade.gif">"<i>query2</i>"</td><td background="img/fade.gif">Called when the wizard needs to ask a question</td><td background="img/fade.gif"><tt>char* (* myfunction)(char* question);</tt></td></tr> | |
147 | <tr><td background="img/fade.gif">"<i>query3</i>"</td><td background="img/fade.gif">Called when the wizard needs to ask a question</td><td background="img/fade.gif"><tt>char* (* myfunction)(char* question);</tt></td></tr> | |
148 | <tr><td background="img/fade.gif">"<i>loop</i>"</td><td background="img/fade.gif">Called periodically (informational, to display statistics)<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.gif"><tt>int (* myfunction)(lien_back* back,int back_max,int back_index,int lien_tot,int lien_ntot,int stat_time,hts_stat_struct* stats);</tt></td></tr> | |
149 | <tr><td background="img/fade.gif">"<i>check-link</i>"</td><td background="img/fade.gif">Called when a link has to be tested. The <tt>adr</tt> and <tt>fil</tt> are the address and URI of the link being tested. The passed <tt>status</tt> value has the following meaning: 0 if the link is to be accepted by default, 1 if the link is to be refused by default, and -1 if no decision has yet been taken by the engine<br>return value: same meaning as the passed <tt>status</tt> value ; you may generally return -1 to let the engine take the decision by itself</td><td background="img/fade.gif"><tt>int (* myfunction)(char* adr,char* fil,int status);</tt></td></tr> | |
150 | <tr><td background="img/fade.gif">"<i>check-mime</i>"</td><td background="img/fade.gif">Called when a link download has begun, and needs to be tested against its MIME type. The <tt>adr</tt> and <tt>fil</tt> are the address and URI of the link being tested, and the <tt>mime</tt> string contains the link type being processed. The passed <tt>status</tt> value has the following meaning: 0 if the link is to be accepted by default, 1 if the link is to be refused by default, and -1 if no decision has yet been taken by the engine<br>return value: same meaning as the passed <tt>status</tt> value ; you may generally return -1 to let the engine take the decision by itself</td><td background="img/fade.gif"><tt>int (* myfunction)(char* adr,char* fil,char* mime,int status);</tt></td></tr> | |
151 | <tr><td background="img/fade.gif">"<i>pause</i>"</td><td background="img/fade.gif">Called when the engine must pause. When the <tt>lockfile</tt> passed is deleted, the function can return<br>return value: none</td><td background="img/fade.gif"><tt>void (* myfunction)(char* lockfile);</tt></td></tr> | |
152 | <tr><td background="img/fade.gif">"<i>save-file</i>"</td><td background="img/fade.gif">Called when a file is to be saved on disk<br>return value: none</td><td background="img/fade.gif"><tt>void (* myfunction)(char* file);</tt></td></tr> | |
153 | <tr><td background="img/fade.gif">"<i>save-file2</i>"</td><td background="img/fade.gif">Called when a file is to be saved or checked on disk<br>The hostname, filename and local filename are given. Two additional flags tells if the file is new (is_new) and is the file is to be modified (is_modified).<br>(!is_new && !is_modified): the file is up-to-date, and will not be modified<br>(is_new && is_modified): a new file will be written (or an updated file is being written)<br>(!is_new && is_modified): a file is being updated (append)<br>(is_new && !is_modified): an empty file will be written ("do not recatch locally erased files")<br>return value: none</td><td background="img/fade.gif"><tt>void (* myfunction)(char* hostname,char* filename,char* localfile,int is_new,int is_modified);</tt></td></tr> | |
69 | <tr><td background="img/fade.png">"<i>init</i>"</td><td background="img/fade.png"><font color="red">Note: deprecated, should not be used anymore (unsafe callback) - see "start" callback or wrapper_init() module function below this table.</font>Called during initialization ; use of htswrap_add (see <tt>httrack-library.h</tt>) is permitted inside this function to setup other callbacks.<br>return value: none</td><td background="img/fade.png"><tt>void (* myfunction)(void);</tt></td></tr> | |
70 | <tr><td background="img/fade.png">"<i>free</i>"</td><td background="img/fade.png"><font color="red">Note: deprecated, should not be used anymore (unsafe callback) - see "end" callback or wrapper_exit() module function below this table.</font><br />Called during un-initialization<br>return value: none</td><td background="img/fade.png"><tt>void (* myfunction)(void);</tt></td></tr> | |
71 | <tr><td background="img/fade.png">"<i>start</i>"</td><td background="img/fade.png">Called when the mirror starts. The <tt>opt</tt> structure passed lists all options defined for this mirror. You may modify the <tt>opt</tt> structure to fit your needs. Besides, use of htswrap_add (see <tt>httrack-library.h</tt>) is permitted inside this function to setup other callbacks.<br>return value: 1 upon success, 0 upon error (the mirror will then be aborted)</td><td background="img/fade.png"><tt>int (* myfunction)(httrackp* opt);</tt></td></tr> | |
72 | <tr><td background="img/fade.png">"<i>end</i>"</td><td background="img/fade.png">Called when the mirror ends<br>return value: 1 upon success, 0 upon error (the mirror will then be considered aborted)</td><td background="img/fade.png"><tt>int (* myfunction)(void);</tt></td></tr> | |
73 | <tr><td background="img/fade.png">"<i>change-options</i>"</td><td background="img/fade.png">Called when options are to be changed. The <tt>opt</tt> structure passed lists all options, updated to take account of recent changes<br>return value: 1 upon success, 0 upon error (the mirror will then be aborted)</td><td background="img/fade.png"><tt>int (* myfunction)(httrackp* opt);</tt></td></tr> | |
74 | <tr><td background="img/fade.png">"<i>check-html</i>"</td><td background="img/fade.png">Called when a document (which may not be an html document) is to be parsed. The <tt>html</tt> address points to the document data, of lenth <tt>len</tt>. The <tt>url_adresse</tt> and <tt>url_fichier</tt> are the address and URI of the file being processed<br>return value: 1 if the parsing can be processed, 0 if the file must be skipped without being parsed</td><td background="img/fade.png"><tt>int (* myfunction)(char* html,int len,char* url_adresse,char* url_fichier);</tt></td></tr> | |
75 | <tr><td background="img/fade.png">"<i>preprocess-html</i>"</td><td background="img/fade.png">Called when a document (which is an html document) is to be parsed (original, not yet modified document). The <tt>html</tt> address points to the document data address (char**), and the <tt>length</tt> address points to the lenth of this document. Both pointer values (address and size) can be modified to change the document. It is up to the callback function to reallocate the given pointer (using standard C library realloc()/free() functions), which will be free()'ed by the engine. Hence, return of static buffers is strictly forbidden, and the use of strdup() in such cases is advised. The <tt>url_adresse</tt> and <tt>url_fichier</tt> are the address and URI of the file being processed<br>return value: 1 if the new pointers can be applied (default value)</td><td background="img/fade.png"><tt>int (* myfunction)(char** html,int* len,char* url_adresse,char* url_fichier);</tt></td></tr> | |
76 | <tr><td background="img/fade.png">"<i>postprocess-html</i>"</td><td background="img/fade.png">Called when a document (which is an html document) is parsed and transformed (links rewritten). The <tt>html</tt> address points to the document data address (char**), and the <tt>length</tt> address points to the lenth of this document. Both pointer values (address and size) can be modified to change the document. It is up to the callback function to reallocate the given pointer (using standard C library realloc()/free() functions), which will be free()'ed by the engine. Hence, return of static buffers is strictly forbidden, and the use of strdup() in such cases is advised. The <tt>url_adresse</tt> and <tt>url_fichier</tt> are the address and URI of the file being processed<br>return value: 1 if the new pointers can be applied (default value)</td><td background="img/fade.png"><tt>int (* myfunction)(char** html,int* len,char* url_adresse,char* url_fichier);</tt></td></tr> | |
77 | <tr><td background="img/fade.png">"<i>query</i>"</td><td background="img/fade.png">Called when the wizard needs to ask a question. The <tt>question</tt> string contains the question for the (human) user<br>return value: the string answer ("" for default reply)</td><td background="img/fade.png"><tt>char* (* myfunction)(char* question);</tt></td></tr> | |
78 | <tr><td background="img/fade.png">"<i>query2</i>"</td><td background="img/fade.png">Called when the wizard needs to ask a question</td><td background="img/fade.png"><tt>char* (* myfunction)(char* question);</tt></td></tr> | |
79 | <tr><td background="img/fade.png">"<i>query3</i>"</td><td background="img/fade.png">Called when the wizard needs to ask a question</td><td background="img/fade.png"><tt>char* (* myfunction)(char* question);</tt></td></tr> | |
80 | <tr><td background="img/fade.png">"<i>loop</i>"</td><td background="img/fade.png">Called periodically (informational, to display statistics)<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.png"><tt>int (* myfunction)(lien_back* back,int back_max,int back_index,int lien_tot,int lien_ntot,int stat_time,hts_stat_struct* stats);</tt></td></tr> | |
81 | <tr><td background="img/fade.png">"<i>check-link</i>"</td><td background="img/fade.png">Called when a link has to be tested. The <tt>adr</tt> and <tt>fil</tt> are the address and URI of the link being tested. The passed <tt>status</tt> value has the following meaning: 0 if the link is to be accepted by default, 1 if the link is to be refused by default, and -1 if no decision has yet been taken by the engine<br>return value: same meaning as the passed <tt>status</tt> value ; you may generally return -1 to let the engine take the decision by itself</td><td background="img/fade.png"><tt>int (* myfunction)(char* adr,char* fil,int status);</tt></td></tr> | |
82 | <tr><td background="img/fade.png">"<i>check-mime</i>"</td><td background="img/fade.png">Called when a link download has begun, and needs to be tested against its MIME type. The <tt>adr</tt> and <tt>fil</tt> are the address and URI of the link being tested, and the <tt>mime</tt> string contains the link type being processed. The passed <tt>status</tt> value has the following meaning: 0 if the link is to be accepted by default, 1 if the link is to be refused by default, and -1 if no decision has yet been taken by the engine<br>return value: same meaning as the passed <tt>status</tt> value ; you may generally return -1 to let the engine take the decision by itself</td><td background="img/fade.png"><tt>int (* myfunction)(char* adr,char* fil,char* mime,int status);</tt></td></tr> | |
83 | <tr><td background="img/fade.png">"<i>pause</i>"</td><td background="img/fade.png">Called when the engine must pause. When the <tt>lockfile</tt> passed is deleted, the function can return<br>return value: none</td><td background="img/fade.png"><tt>void (* myfunction)(char* lockfile);</tt></td></tr> | |
84 | <tr><td background="img/fade.png">"<i>save-file</i>"</td><td background="img/fade.png">Called when a file is to be saved on disk<br>return value: none</td><td background="img/fade.png"><tt>void (* myfunction)(char* file);</tt></td></tr> | |
85 | <tr><td background="img/fade.png">"<i>save-file2</i>"</td><td background="img/fade.png">Called when a file is to be saved or checked on disk<br>The hostname, filename and local filename are given. Two additional flags tells if the file is new (is_new) and is the file is to be modified (is_modified).<br>(!is_new && !is_modified): the file is up-to-date, and will not be modified<br>(is_new && is_modified): a new file will be written (or an updated file is being written)<br>(!is_new && is_modified): a file is being updated (append)<br>(is_new && !is_modified): an empty file will be written ("do not recatch locally erased files")<br>return value: none</td><td background="img/fade.png"><tt>void (* myfunction)(char* hostname,char* filename,char* localfile,int is_new,int is_modified);</tt></td></tr> | |
154 | 86 | |
155 | 87 | typedef void (* t_hts_htmlcheck_filesave2)(); |
156 | 88 | |
157 | 89 | |
158 | <tr><td background="img/fade.gif">"<i>link-detected</i>"</td><td background="img/fade.gif">Called when a link has been detected<br>return value: 1 if the link can be analyzed, 0 if the link must not even be considered</td><td background="img/fade.gif"><tt>int (* myfunction)(char* link);</tt></td></tr> | |
159 | <tr><td background="img/fade.gif">"<i>transfer-status</i>"</td><td background="img/fade.gif">Called when a file has been processed (downloaded, updated, or error)<br>return value: must return 1</td><td background="img/fade.gif"><tt>int (* myfunction)(lien_back* back);</tt></td></tr> | |
160 | <tr><td background="img/fade.gif">"<i>save-name</i>"</td><td background="img/fade.gif">Called when a local filename has to be processed. The <tt>adr_complete</tt> and <tt>fil_complete</tt> are the address and URI of the file being saved ; the <tt>referer_adr</tt> and <tt>referer_fil</tt> are the address and URI of the referer link. The <tt>save</tt> string contains the local filename being used. You may modifiy the <tt>save</tt> string to fit your needs, up to 1024 bytes (note: filename collisions, if any, will be handled by the engine by renaming the file into file-2.ext, file-3.ext ..).<br>return value: must return 1</td><td background="img/fade.gif"><tt>int (* myfunction)(char* adr_complete,char* fil_complete,char* referer_adr,char* referer_fil,char* save);</tt></td></tr> | |
161 | <tr><td background="img/fade.gif">"<i>send-header</i>"</td><td background="img/fade.gif">Called when HTTP headers are to be sent to the remote server. The <tt>buff</tt> buffer contains text headers, <tt>adr</tt> and <tt>fil</tt> the URL, and <tt>referer_adr</tt> and <tt>referer_fil</tt> the referer URL. The <tt>outgoing</tt> structure contains all information related to the current slot.<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.gif"><tt>int (* myfunction)(char* buff, char* adr, char* fil, char* referer_adr, char* referer_fil, htsblk* outgoing);</tt></td></tr> | |
162 | <tr><td background="img/fade.gif">"<i>receive-header</i>"</td><td background="img/fade.gif">Called when HTTP headers are recevived from the remote server. The <tt>buff</tt> buffer contains text headers, <tt>adr</tt> and <tt>fil</tt> the URL, and <tt>referer_adr</tt> and <tt>referer_fil</tt> the referer URL. The <tt>incoming</tt> structure contains all information related to the current slot.<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.gif"><tt>int (* myfunction)(char* buff, char* adr, char* fil, char* referer_adr, char* referer_fil, htsblk* incoming);</tt></td></tr> | |
90 | <tr><td background="img/fade.png">"<i>link-detected</i>"</td><td background="img/fade.png">Called when a link has been detected<br>return value: 1 if the link can be analyzed, 0 if the link must not even be considered</td><td background="img/fade.png"><tt>int (* myfunction)(char* link);</tt></td></tr> | |
91 | <tr><td background="img/fade.png">"<i>transfer-status</i>"</td><td background="img/fade.png">Called when a file has been processed (downloaded, updated, or error)<br>return value: must return 1</td><td background="img/fade.png"><tt>int (* myfunction)(lien_back* back);</tt></td></tr> | |
92 | <tr><td background="img/fade.png">"<i>save-name</i>"</td><td background="img/fade.png">Called when a local filename has to be processed. The <tt>adr_complete</tt> and <tt>fil_complete</tt> are the address and URI of the file being saved ; the <tt>referer_adr</tt> and <tt>referer_fil</tt> are the address and URI of the referer link. The <tt>save</tt> string contains the local filename being used. You may modifiy the <tt>save</tt> string to fit your needs, up to 1024 bytes (note: filename collisions, if any, will be handled by the engine by renaming the file into file-2.ext, file-3.ext ..).<br>return value: must return 1</td><td background="img/fade.png"><tt>int (* myfunction)(char* adr_complete,char* fil_complete,char* referer_adr,char* referer_fil,char* save);</tt></td></tr> | |
93 | <tr><td background="img/fade.png">"<i>send-header</i>"</td><td background="img/fade.png">Called when HTTP headers are to be sent to the remote server. The <tt>buff</tt> buffer contains text headers, <tt>adr</tt> and <tt>fil</tt> the URL, and <tt>referer_adr</tt> and <tt>referer_fil</tt> the referer URL. The <tt>outgoing</tt> structure contains all information related to the current slot.<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.png"><tt>int (* myfunction)(char* buff, char* adr, char* fil, char* referer_adr, char* referer_fil, htsblk* outgoing);</tt></td></tr> | |
94 | <tr><td background="img/fade.png">"<i>receive-header</i>"</td><td background="img/fade.png">Called when HTTP headers are recevived from the remote server. The <tt>buff</tt> buffer contains text headers, <tt>adr</tt> and <tt>fil</tt> the URL, and <tt>referer_adr</tt> and <tt>referer_fil</tt> the referer URL. The <tt>incoming</tt> structure contains all information related to the current slot.<br>return value: 1 if the mirror can continue, 0 if the mirror must be aborted</td><td background="img/fade.png"><tt>int (* myfunction)(char* buff, char* adr, char* fil, char* referer_adr, char* referer_fil, htsblk* incoming);</tt></td></tr> | |
163 | 95 | |
164 | 96 | </table> |
165 | 97 | |
169 | 101 | <table width="100%" ID="Table1"> |
170 | 102 | <tr><td><b>"<i>module function name</i>"</b></td><td><b>function description</b></td></tr> |
171 | 103 | |
172 | <tr><td background="img/fade.gif"><i>int <b>function-name</b>_init(char *args);</i></td><td background="img/fade.gif">Called when a function named <b>function-name</b> is extracted from the current module (same as wrapper_init). The optional <tt>args</tt> provides additional commandline parameters. Returns 1 upon success, 0 if the function should not be extracted.</td></tr> | |
173 | <tr><td background="img/fade.gif"><i>int wrapper_init(char *fname, char *args);</i></td><td background="img/fade.gif">Called when a function named <tt>fname</tt> is extracted from the current module. The optional <tt>args</tt> provides additional commandline parameters. Besides, use of htswrap_add (see <tt>httrack-library.h</tt>) is permitted inside this function to setup other callbacks. Returns 1 upon success, 0 if the function should not be extracted.</td></tr> | |
174 | <tr><td background="img/fade.gif"><i>int wrapper_exit(void);</i></td><td background="img/fade.gif">Called when the module is unloaded. The function should return 1 (but the result is ignored).</td></tr> | |
104 | <tr><td background="img/fade.png"><i>int <b>function-name</b>_init(char *args);</i></td><td background="img/fade.png">Called when a function named <b>function-name</b> is extracted from the current module (same as wrapper_init). The optional <tt>args</tt> provides additional commandline parameters. Returns 1 upon success, 0 if the function should not be extracted.</td></tr> | |
105 | <tr><td background="img/fade.png"><i>int wrapper_init(char *fname, char *args);</i></td><td background="img/fade.png">Called when a function named <tt>fname</tt> is extracted from the current module. The optional <tt>args</tt> provides additional commandline parameters. Besides, use of htswrap_add (see <tt>httrack-library.h</tt>) is permitted inside this function to setup other callbacks. Returns 1 upon success, 0 if the function should not be extracted.</td></tr> | |
106 | <tr><td background="img/fade.png"><i>int wrapper_exit(void);</i></td><td background="img/fade.png">Called when the module is unloaded. The function should return 1 (but the result is ignored).</td></tr> | |
175 | 107 | |
176 | 108 | </table> |
177 | 109 | |
181 | 113 | <table width="100%" ID="Table2"> |
182 | 114 | <tr><td><b>"<i>module function name</i>"</b></td><td><b>function description</b></td></tr> |
183 | 115 | |
184 | <tr><td background="img/fade.gif"><i>void plugin_init(void);</i></td><td background="img/fade.gif">Called if the module (named libhttrack-plugin.(so|dll)) is found in the library path. Use of htswrap_add (see <tt>httrack-library.h</tt>) is permitted inside this function to setup other callbacks.</td></tr> | |
116 | <tr><td background="img/fade.png"><i>void plugin_init(void);</i></td><td background="img/fade.png">Called if the module (named libhttrack-plugin.(so|dll)) is found in the library path. Use of htswrap_add (see <tt>httrack-library.h</tt>) is permitted inside this function to setup other callbacks.</td></tr> | |
185 | 117 | |
186 | 118 | </table> |
187 | 119 |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
108 | 40 | |
109 | 41 | <br><br> |
110 | 42 | |
111 | <table width="100%" border="0" background="img/fade.gif"> | |
43 | <table width="100%" border="0" background="img/fade.png"> | |
112 | 44 | <tr><td> |
113 | 45 | <b>How to get one single file</b><br><br> |
114 | 46 | <tt> |
119 | 51 | |
120 | 52 | <br><br> |
121 | 53 | |
122 | <table width="100%" border="0" background="img/fade.gif"> | |
54 | <table width="100%" border="0" background="img/fade.png"> | |
123 | 55 | <tr><td> |
124 | 56 | <b>How to get one single file and pipe it to stdout</b><br><br> |
125 | 57 | <tt> |
131 | 63 | |
132 | 64 | <br><br> |
133 | 65 | |
134 | <table width="100%" border="0" background="img/fade.gif"> | |
66 | <table width="100%" border="0" background="img/fade.png"> | |
135 | 67 | <tr><td> |
136 | 68 | <b>How to search in all HTML files on a website</b><br><br> |
137 | 69 | <tt> |
151 | 83 | |
152 | 84 | <br><br> |
153 | 85 | |
154 | <table width="100%" border="0" background="img/fade.gif"> | |
86 | <table width="100%" border="0" background="img/fade.png"> | |
155 | 87 | |
156 | 88 | <tr><td> |
157 | 89 | <b>Indexing a website, and using the index as a search engine</b><br><br> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
77 | ||
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
78 | 9 | </head> |
79 | 10 | |
80 | 11 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 12 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
13 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 14 | </tr> |
84 | 15 | </table> |
85 | 16 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
106 | 38 | <li>Change the destination folder if necessary</li> |
107 | 39 | <br><small>It is more convenient to organize all mirrors in one directory, for example <b>My Web Sites</b> |
108 | 40 | <br>If you already have made mirrors using HTTrack, be sure that you have selected the correct folder.</small> |
109 | <br><br><center><img src="img/snap1_c.gif" border="0"></center> | |
41 | <br><br><center><img src="img/snap1_c.png" border="0"></center> | |
110 | 42 | <br><br> |
111 | 43 | <li>Select the project name: |
112 | 44 | <ul> |
113 | 45 | <li>Select a new project name</a></li> |
114 | 46 | <br><small>This name is, for example, the theme of the mirrored sites, for example <b>My Friend's Site</b></small> |
115 | <br><br><center><img src="img/snap1_a.gif" border="0"></center> | |
47 | <br><br><center><img src="img/snap1_a.png" border="0"></center> | |
116 | 48 | <br><br> |
117 | 49 | OR |
118 | 50 | <br><br> |
119 | 51 | <li>Select an existing project for update/retry</a></li> |
120 | 52 | <br><small>Directly select the existing project name in the popup list</small><br><br> |
121 | <center><img src="img/snap1_b.gif" border="0"></center> | |
53 | <center><img src="img/snap1_b.png" border="0"></center> | |
122 | 54 | </ul> |
123 | 55 | <br><br> |
124 | 56 | <li>Click on the <b>NEXT</b> button</li> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
105 | 37 | <ol> |
106 | 38 | <li>Select an action</li> |
107 | 39 | <br><small>The default action is <b>Download web sites</b></small><br><br> |
108 | <center><img src="img/snap2_a.gif" border="0"></center><br><br> | |
40 | <center><img src="img/snap2_a.png" border="0"></center><br><br> | |
109 | 41 | |
110 | 42 | <ul> |
111 | 43 | <li>Download web site(s)</li> |
127 | 59 | <br><br> |
128 | 60 | <li>Enter the site's addresses</li> |
129 | 61 | <br><small>You can click on the <b>Add a URL</b> button to add each address, or just type them in the box</small><br><br> |
130 | <center><img src="img/snap2_b.gif" border="0"></center> | |
62 | <center><img src="img/snap2_b.png" border="0"></center> | |
131 | 63 | <br><br> |
132 | 64 | <li>You may define options by clicking on the <b><a href="step9.html">Set options</a></b> button</li> |
133 | 65 | <br><small>You can define filters or download parameters in the option panel</small><br> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
127 | 59 | |
128 | 60 | <br><br> |
129 | 61 | <li>Click on the <b>FINISH</b> button</li> |
130 | <center><img src="img/snap3_a.gif" border="0"></center> | |
62 | <center><img src="img/snap3_a.png" border="0"></center> | |
131 | 63 | |
132 | 64 | <br><br> |
133 | 65 | <li><a href="step4.html">Go to the next step</a>...</li> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
106 | 38 | <li>Wait until the mirror is finishing</li> |
107 | 39 | <br><small>You can cancel at any time the mirror, or cancel files currently downloaded for any reasons (file too big, for example)</small> |
108 | 40 | <br><small>Options can be changed during the mirror: maximum number of connections, limits...</small><br><br> |
109 | <center><img src="img/snap4_a.gif" border="0"></center> | |
41 | <center><img src="img/snap4_a.png" border="0"></center> | |
110 | 42 | <br><br> |
111 | 43 | <li><a href="step5.html">Go to the next step</a>...</li> |
112 | 44 | </ol> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
105 | 37 | <ol> |
106 | 38 | <li>Check log files</li> |
107 | 39 | <br><small>You may check the error log file, which could contain useful information if errors have occurred</small><br><br> |
108 | <center><img src="img/snap5_a.gif" border="0"></center> | |
40 | <center><img src="img/snap5_a.png" border="0"></center> | |
109 | 41 | <br> |
110 | 42 | <li>See the <a href="faq.html">troubleshooting</a> page</li> |
111 | 43 | </ol> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
77 | ||
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
9 | ||
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
125 | 57 | <AREA SHAPE="RECT" COORDS="348, 32, 502, 52" HREF="step9_opt9.html"> |
126 | 58 | <AREA SHAPE="RECT" COORDS="518, 32, 672, 52" HREF="step9_opt10.html"> |
127 | 59 | </MAP> |
128 | <img src="img/snap9.gif" border="0" width="680" height="104" usemap="#options"> | |
60 | <img src="img/snap9.png" border="0" width="680" height="104" usemap="#options"> | |
129 | 61 | </center> |
130 | 62 | |
131 | 63 | <p align="right">Back to <a href="index.html">Home</a></p> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
103 | 35 | <br> |
104 | 36 | |
105 | 37 | <ul> |
106 | <center><img src="img/snap9_a.gif" border="0"></center> | |
38 | <center><img src="img/snap9_a.png" border="0"></center> | |
107 | 39 | <br><br> |
108 | 40 | <!-- --> |
109 | 41 | <li>Attempt to detect all links</li> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
103 | 35 | <br> |
104 | 36 | |
105 | 37 | <ul> |
106 | <center><img src="img/snap9_j.gif" border="0"></center> | |
38 | <center><img src="img/snap9_j.png" border="0"></center> | |
107 | 39 | <br><br> |
108 | 40 | <i>Advice: leave these options to default values!</i> |
109 | 41 | <br><br> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
103 | 35 | <br> |
104 | 36 | |
105 | 37 | <ul> |
106 | <center><img src="img/snap9_k.gif" border="0"></center> | |
38 | <center><img src="img/snap9_k.png" border="0"></center> | |
107 | 39 | <br><br> |
108 | 40 | <br><br> |
109 | 41 | <!-- --> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
103 | 35 | <br> |
104 | 36 | |
105 | 37 | <ul> |
106 | <center><img src="img/snap9_b.gif" border="0"></center> | |
38 | <center><img src="img/snap9_b.png" border="0"></center> | |
107 | 39 | <br><br> |
108 | 40 | <!-- --> |
109 | 41 | <li>Maximum mirror depth</li> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
103 | 35 | <br> |
104 | 36 | |
105 | 37 | <ul> |
106 | <center><img src="img/snap9_c.gif" border="0"></center> | |
38 | <center><img src="img/snap9_c.png" border="0"></center> | |
107 | 39 | <br><br> |
108 | 40 | <!-- --> |
109 | 41 | <li>Number of connections</li> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
103 | 35 | <br> |
104 | 36 | |
105 | 37 | <ul> |
106 | <center><img src="img/snap9_d.gif" border="0"></center> | |
38 | <center><img src="img/snap9_d.png" border="0"></center> | |
107 | 39 | <br><br> |
108 | 40 | <i> |
109 | 41 | Filters (scan rules) are the most important and powerful option that can be used: you can exclude or accept subdirectories, skip certain types of files, and so on.. If you have missing files (images on top level directories, for example) using filters can help you! |
126 | 58 | <br><br> |
127 | 59 | <ul> |
128 | 60 | <li>Select a rule</li> |
129 | <center><img src="img/snap9_d2.gif" border="0"></center> | |
61 | <center><img src="img/snap9_d2.png" border="0"></center> | |
130 | 62 | <br><br> |
131 | 63 | <li>Then, enter the keyword(s)</li> |
132 | <center><img src="img/snap9_d3.gif" border="0"></center> | |
64 | <center><img src="img/snap9_d3.png" border="0"></center> | |
133 | 65 | <br><br> |
134 | 66 | <li>Clic on the ADD button to add the rule</li> |
135 | <center><img src="img/snap9_d4.gif" border="0"></center> | |
67 | <center><img src="img/snap9_d4.png" border="0"></center> | |
136 | 68 | </ul> |
137 | 69 | </li> |
138 | 70 | <!-- --> |
142 | 74 | <br><br> |
143 | 75 | <ul> |
144 | 76 | <li>Select a rule : in this case to identify all items from a specific folder name</li> |
145 | <center><img src="img/snap9_d5.gif" border="0"></center> | |
77 | <center><img src="img/snap9_d5.png" border="0"></center> | |
146 | 78 | <br><br> |
147 | 79 | <li>Then, enter the keyword(s) : in this case it is the directory name (without the starting and ending /)</li> |
148 | <center><img src="img/snap9_d6.gif" border="0"></center> | |
80 | <center><img src="img/snap9_d6.png" border="0"></center> | |
149 | 81 | <br><br> |
150 | 82 | <li>Clic on the ADD button to add the rule</li> |
151 | <center><img src="img/snap9_d7.gif" border="0"></center> | |
83 | <center><img src="img/snap9_d7.png" border="0"></center> | |
152 | 84 | <br><br> |
153 | 85 | <li>The rule has been added</li> |
154 | <center><img src="img/snap9_d8.gif" border="0"></center> | |
86 | <center><img src="img/snap9_d8.png" border="0"></center> | |
155 | 87 | </ul> |
156 | 88 | </li> |
157 | 89 | <!-- --> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
103 | 35 | <br> |
104 | 36 | |
105 | 37 | <ul> |
106 | <center><img src="img/snap9_e.gif" border="0"></center> | |
38 | <center><img src="img/snap9_e.png" border="0"></center> | |
107 | 39 | <br><br> |
108 | 40 | <!-- --> |
109 | 41 | <li>Local Structure Type</li> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
103 | 35 | <br> |
104 | 36 | |
105 | 37 | <ul> |
106 | <center><img src="img/snap9_f.gif" border="0"></center> | |
38 | <center><img src="img/snap9_f.png" border="0"></center> | |
107 | 39 | <br><br> |
108 | 40 | <!-- --> |
109 | 41 | <li>Accept cookies</li> |
113 | 45 | <!-- --> |
114 | 46 | <li>Check document type</li> |
115 | 47 | <br><small>Define when the engine has to check document type |
116 | <br>The engine must know the document type, to rewrite the file types. For example, if a link called /cgi-bin/gen_image.cgi generates a gif image, the generated file will not be called "gen_image.cgi" but "gen_image.gif" | |
48 | <br>The engine must know the document type, to rewrite the file types. For example, if a link called /cgi-bin/gen_image.cgi generates a gif image, the generated file will not be called "gen_image.cgi" but "gen_image.png" | |
117 | 49 | <br>Avoid "never", because the local mirror could be bogus |
118 | 50 | </small><br><br> |
119 | 51 | <!-- --> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
103 | 35 | <br> |
104 | 36 | |
105 | 37 | <ul> |
106 | <center><img src="img/snap9_g.gif" border="0"></center> | |
38 | <center><img src="img/snap9_g.png" border="0"></center> | |
107 | 39 | <br><br> |
108 | 40 | <!-- --> |
109 | 41 | <li>Proxy</li> |
122 | 54 | <br>If the proxy <b>needs</b> authentication you can define the login username/password |
123 | 55 | </small> |
124 | 56 | <br><br> |
125 | <center><img src="img/snap9_g2.gif" border="0"></center> | |
57 | <center><img src="img/snap9_g2.png" border="0"></center> | |
126 | 58 | <br><br> |
127 | <center><img src="img/snap9_g3.gif" border="0"></center> | |
59 | <center><img src="img/snap9_g3.png" border="0"></center> | |
128 | 60 | <br> |
129 | 61 | <br><br> |
130 | 62 | <!-- --> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
103 | 35 | <br> |
104 | 36 | |
105 | 37 | <ul> |
106 | <center><img src="img/snap9_h.gif" border="0"></center> | |
38 | <center><img src="img/snap9_h.png" border="0"></center> | |
107 | 39 | <br><br> |
108 | 40 | <!-- --> |
109 | 41 | <li>Browser "Identity"</li> |
5 | 5 | <meta name="keywords" content="httrack, HTTRACK, HTTrack, winhttrack, WINHTTRACK, WinHTTrack, offline browser, web mirror utility, aspirateur web, surf offline, web capture, www mirror utility, browse offline, local site builder, website mirroring, aspirateur www, internet grabber, capture de site web, internet tool, hors connexion, unix, dos, windows 95, windows 98, solaris, ibm580, AIX 4.0, HTS, HTGet, web aspirator, web aspirateur, libre, GPL, GNU, free software" /> |
6 | 6 | <title>HTTrack Website Copier - Offline Browser</title> |
7 | 7 | |
8 | <style type="text/css"> | |
9 | <!-- | |
10 | ||
11 | body { | |
12 | margin: 0; padding: 0; margin-bottom: 15px; margin-top: 8px; | |
13 | background: #77b; | |
14 | } | |
15 | body, td { | |
16 | font: 14px "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif; | |
17 | } | |
18 | ||
19 | #subTitle { | |
20 | background: #000; color: #fff; padding: 4px; font-weight: bold; | |
21 | } | |
22 | ||
23 | #siteNavigation a, #siteNavigation .current { | |
24 | font-weight: bold; color: #448; | |
25 | } | |
26 | #siteNavigation a:link { text-decoration: none; } | |
27 | #siteNavigation a:visited { text-decoration: none; } | |
28 | ||
29 | #siteNavigation .current { background-color: #ccd; } | |
30 | ||
31 | #siteNavigation a:hover { text-decoration: none; background-color: #fff; color: #000; } | |
32 | #siteNavigation a:active { text-decoration: none; background-color: #ccc; } | |
33 | ||
34 | ||
35 | a:link { text-decoration: underline; color: #00f; } | |
36 | a:visited { text-decoration: underline; color: #000; } | |
37 | a:hover { text-decoration: underline; color: #c00; } | |
38 | a:active { text-decoration: underline; } | |
39 | ||
40 | #pageContent { | |
41 | clear: both; | |
42 | border-bottom: 6px solid #000; | |
43 | padding: 10px; padding-top: 20px; | |
44 | line-height: 1.65em; | |
45 | background-image: url(images/bg_rings.gif); | |
46 | background-repeat: no-repeat; | |
47 | background-position: top right; | |
48 | } | |
49 | ||
50 | #pageContent, #siteNavigation { | |
51 | background-color: #ccd; | |
52 | } | |
53 | ||
54 | ||
55 | .imgLeft { float: left; margin-right: 10px; margin-bottom: 10px; } | |
56 | .imgRight { float: right; margin-left: 10px; margin-bottom: 10px; } | |
57 | ||
58 | hr { height: 1px; color: #000; background-color: #000; margin-bottom: 15px; } | |
59 | ||
60 | h1 { margin: 0; font-weight: bold; font-size: 2em; } | |
61 | h2 { margin: 0; font-weight: bold; font-size: 1.6em; } | |
62 | h3 { margin: 0; font-weight: bold; font-size: 1.3em; } | |
63 | h4 { margin: 0; font-weight: bold; font-size: 1.18em; } | |
64 | ||
65 | .blak { background-color: #000; } | |
66 | .hide { display: none; } | |
67 | .tableWidth { min-width: 573px; } | |
68 | ||
69 | .tblRegular { border-collapse: collapse; } | |
70 | .tblRegular td { padding: 6px; background-image: url(fade.gif); border: 2px solid #99c; } | |
71 | .tblHeaderColor, .tblHeaderColor td { background: #99c; } | |
72 | .tblNoBorder td { border: 0; } | |
73 | ||
74 | ||
75 | // --> | |
76 | </style> | |
8 | <link rel="stylesheet" href="httrack.css" type="text/css" /> | |
77 | 9 | |
78 | 10 | </head> |
79 | 11 | |
80 | 12 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="0" class="tableWidth"> |
81 | 13 | <tr> |
82 | <td><img src="images/header_title_4.gif" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
14 | <td><img src="images/header_title_4.png" width="573" height="34" alt="HTTrack Website Copier" title="" border="0" id="title" /></td> | |
83 | 15 | </tr> |
84 | 16 | </table> |
85 | 17 | <table width="76%" border="0" align="center" cellspacing="0" cellpadding="3" class="tableWidth"> |
103 | 35 | <br> |
104 | 36 | |
105 | 37 | <ul> |
106 | <center><img src="img/snap9_i.gif" border="0"></center> | |
38 | <center><img src="img/snap9_i.png" border="0"></center> | |
107 | 39 | <br><br> |
108 | 40 | <!-- --> |
109 | 41 | <li>Force to store all files in cache</li> |
0 | /* XPM */ | |
1 | static char * httraqt_xpm[] = { | |
2 | "32 32 364 2", | |
3 | " c None", | |
4 | ". c #6CCF90", | |
5 | "+ c #4F86AA", | |
6 | "@ c #4C6CD5", | |
7 | "# c #4C60E7", | |
8 | "$ c #5D98B7", | |
9 | "% c #63BE8D", | |
10 | "& c #3C60B9", | |
11 | "* c #4A72C7", | |
12 | "= c #5890C0", | |
13 | "- c #517DC7", | |
14 | "; c #5DA2A8", | |
15 | "> c #457D9C", | |
16 | ", c #476CC1", | |
17 | "' c #75E092", | |
18 | ") c #71D891", | |
19 | "! c #6DC99A", | |
20 | "~ c #6BD583", | |
21 | "{ c #3C6C9F", | |
22 | "] c #5B95B6", | |
23 | "^ c #71DC8E", | |
24 | "/ c #6DC99B", | |
25 | "( c #6DD885", | |
26 | "_ c #3D6E9C", | |
27 | ": c #5781CC", | |
28 | "< c #6DCA99", | |
29 | "[ c #4D81B5", | |
30 | "} c #3F5AD3", | |
31 | "| c #517FBA", | |
32 | "1 c #6ECB99", | |
33 | "2 c #71D990", | |
34 | "3 c #4F8BA7", | |
35 | "4 c #3752C8", | |
36 | "5 c #2B4E9D", | |
37 | "6 c #529493", | |
38 | "7 c #70D593", | |
39 | "8 c #55A683", | |
40 | "9 c #2F53A1", | |
41 | "0 c #3951D0", | |
42 | "a c #316282", | |
43 | "b c #72DA91", | |
44 | "c c #6DCB98", | |
45 | "d c #70D592", | |
46 | "e c #6AD185", | |
47 | "f c #2B597A", | |
48 | "g c #304CB4", | |
49 | "h c #3357A2", | |
50 | "i c #57A491", | |
51 | "j c #6DCD96", | |
52 | "k c #70D394", | |
53 | "l c #38707B", | |
54 | "m c #244887", | |
55 | "n c #324FB5", | |
56 | "o c #407595", | |
57 | "p c #67B3A9", | |
58 | "q c #6BB3AF", | |
59 | "r c #73C9A8", | |
60 | "s c #6FBEB2", | |
61 | "t c #78DC98", | |
62 | "u c #529F82", | |
63 | "v c #204874", | |
64 | "w c #314FAC", | |
65 | "x c #3E5CC5", | |
66 | "y c #5373DB", | |
67 | "z c #5170D5", | |
68 | "A c #5877DC", | |
69 | "B c #5D72F1", | |
70 | "C c #6D92E0", | |
71 | "D c #74C7AC", | |
72 | "E c #6CD289", | |
73 | "F c #1F466B", | |
74 | "G c #5691A5", | |
75 | "H c #4F7BC4", | |
76 | "I c #4159D3", | |
77 | "J c #4159D1", | |
78 | "K c #465BD6", | |
79 | "L c #455BD7", | |
80 | "M c #536CE6", | |
81 | "N c #74CEA5", | |
82 | "O c #2F5A7D", | |
83 | "P c #539593", | |
84 | "Q c #66C395", | |
85 | "R c #355AA3", | |
86 | "S c #23487F", | |
87 | "T c #22477A", | |
88 | "U c #27498B", | |
89 | "V c #5276D1", | |
90 | "W c #4C8F8A", | |
91 | "X c #3C6E8B", | |
92 | "Y c #68C494", | |
93 | "Z c #335C91", | |
94 | "` c #204671", | |
95 | " . c #1E466E", | |
96 | ".. c #25488B", | |
97 | "+. c #5375D2", | |
98 | "@. c #65BC90", | |
99 | "#. c #2D5D76", | |
100 | "$. c #63B0A1", | |
101 | "%. c #356092", | |
102 | "&. c #224778", | |
103 | "*. c #214774", | |
104 | "=. c #26488D", | |
105 | "-. c #5274D2", | |
106 | ";. c #74E08A", | |
107 | ">. c #2B5876", | |
108 | ",. c #599BA1", | |
109 | "'. c #386495", | |
110 | "). c #214776", | |
111 | "!. c #254888", | |
112 | "~. c #4E72CB", | |
113 | "{. c #335D82", | |
114 | "]. c #518DA1", | |
115 | "^. c #3B6899", | |
116 | "/. c #23477F", | |
117 | "(. c #23477C", | |
118 | "_. c #254886", | |
119 | ":. c #4662D6", | |
120 | "<. c #5C9CB8", | |
121 | "[. c #62AEB2", | |
122 | "}. c #68BCA9", | |
123 | "|. c #6DCB9F", | |
124 | "1. c #73D996", | |
125 | "2. c #3A6689", | |
126 | "3. c #5089A4", | |
127 | "4. c #3D6C9B", | |
128 | "5. c #244882", | |
129 | "6. c #2A4C98", | |
130 | "7. c #3752C1", | |
131 | "8. c #4459E7", | |
132 | "9. c #4B60E7", | |
133 | "0. c #546CF4", | |
134 | "a. c #5572EF", | |
135 | "b. c #5677EA", | |
136 | "c. c #587DE2", | |
137 | "d. c #5A84DC", | |
138 | "e. c #618FD5", | |
139 | "f. c #68A2C7", | |
140 | "g. c #6BB8B0", | |
141 | "h. c #6FCA9E", | |
142 | "i. c #3B678E", | |
143 | "j. c #568EAE", | |
144 | "k. c #3F709B", | |
145 | "l. c #254889", | |
146 | "m. c #2E4DAC", | |
147 | "n. c #354FC4", | |
148 | "o. c #3952C9", | |
149 | "p. c #3450B9", | |
150 | "q. c #3650C3", | |
151 | "r. c #3752C4", | |
152 | "s. c #3853C4", | |
153 | "t. c #3A55C6", | |
154 | "u. c #3E57D2", | |
155 | "v. c #425BDD", | |
156 | "w. c #485FE4", | |
157 | "x. c #4861DD", | |
158 | "y. c #5790B5", | |
159 | "z. c #375D93", | |
160 | "A. c #5D9EAD", | |
161 | "B. c #42759F", | |
162 | "C. c #26498B", | |
163 | "D. c #244780", | |
164 | "E. c #29499A", | |
165 | "F. c #4E6BD9", | |
166 | "G. c #6BBFA3", | |
167 | "H. c #64ADA8", | |
168 | "I. c #5C9BB4", | |
169 | "J. c #5789C4", | |
170 | "K. c #5278CF", | |
171 | "L. c #4A66D4", | |
172 | "M. c #405BCE", | |
173 | "N. c #3351B7", | |
174 | "O. c #2D4CA4", | |
175 | "P. c #547FC2", | |
176 | "Q. c #73DC8E", | |
177 | "R. c #355D99", | |
178 | "S. c #70C7A5", | |
179 | "T. c #5396A1", | |
180 | "U. c #2C4BA3", | |
181 | "V. c #27488F", | |
182 | "W. c #304DB4", | |
183 | "X. c #68A4C3", | |
184 | "Y. c #7CDD92", | |
185 | "Z. c #5D91B2", | |
186 | "`. c #2A4A98", | |
187 | " + c #4066A8", | |
188 | ".+ c #79D694", | |
189 | "++ c #5EAE92", | |
190 | "@+ c #4271A9", | |
191 | "#+ c #59A2A3", | |
192 | "$+ c #2E4CA8", | |
193 | "%+ c #344FC3", | |
194 | "&+ c #6DA9C7", | |
195 | "*+ c #81C38B", | |
196 | "=+ c #82B28A", | |
197 | "-+ c #A3C7B3", | |
198 | ";+ c #829AB7", | |
199 | ">+ c #5B73B0", | |
200 | ",+ c #8496D1", | |
201 | "'+ c #B4CCCB", | |
202 | ")+ c #8EA795", | |
203 | "!+ c #7FA987", | |
204 | "~+ c #7DD88A", | |
205 | "{+ c #3E6F97", | |
206 | "]+ c #5DA1AC", | |
207 | "^+ c #5BA3A9", | |
208 | "/+ c #324EB7", | |
209 | "(+ c #2A4A9E", | |
210 | "_+ c #3650CB", | |
211 | ":+ c #6BA3CC", | |
212 | "<+ c #91D497", | |
213 | "[+ c #8FA29A", | |
214 | "}+ c #889993", | |
215 | "|+ c #BECCCB", | |
216 | "1+ c #AABAB7", | |
217 | "2+ c #AABAB8", | |
218 | "3+ c #CBD7D9", | |
219 | "4+ c #CEDCDE", | |
220 | "5+ c #98A8A2", | |
221 | "6+ c #8C9E97", | |
222 | "7+ c #91BD9E", | |
223 | "8+ c #6BCE8B", | |
224 | "9+ c #3855B7", | |
225 | "0+ c #74DA95", | |
226 | "a+ c #5FAAAB", | |
227 | "b+ c #3752C3", | |
228 | "c+ c #2E4BB3", | |
229 | "d+ c #3851D2", | |
230 | "e+ c #6DA9C8", | |
231 | "f+ c #8CE893", | |
232 | "g+ c #B2C4BB", | |
233 | "h+ c #9BA7A2", | |
234 | "i+ c #C6D1CF", | |
235 | "j+ c #BBC6C4", | |
236 | "k+ c #ACB7B1", | |
237 | "l+ c #B2BBB7", | |
238 | "m+ c #C4CECD", | |
239 | "n+ c #C5CFD0", | |
240 | "o+ c #BBC8C5", | |
241 | "p+ c #AADBB4", | |
242 | "q+ c #5FB38C", | |
243 | "r+ c #3751C1", | |
244 | "s+ c #76DA98", | |
245 | "t+ c #3852C8", | |
246 | "u+ c #2F4BB7", | |
247 | "v+ c #3951D4", | |
248 | "w+ c #6AA2CD", | |
249 | "x+ c #BACEC2", | |
250 | "y+ c #B3BDBA", | |
251 | "z+ c #C8D2D2", | |
252 | "A+ c #C5CFCF", | |
253 | "B+ c #B9C2BF", | |
254 | "C+ c #BCC5C1", | |
255 | "D+ c #CDD5D7", | |
256 | "E+ c #D2DADE", | |
257 | "F+ c #C4D2CE", | |
258 | "G+ c #A6E6B1", | |
259 | "H+ c #68C68D", | |
260 | "I+ c #2D4CAB", | |
261 | "J+ c #5FA2B0", | |
262 | "K+ c #62ADAE", | |
263 | "L+ c #3B55CD", | |
264 | "M+ c #2F4CB6", | |
265 | "N+ c #3750D0", | |
266 | "O+ c #699CD1", | |
267 | "P+ c #B8D1C0", | |
268 | "Q+ c #C9D4D4", | |
269 | "R+ c #D8E3E4", | |
270 | "S+ c #DFE7EB", | |
271 | "T+ c #DCE5E8", | |
272 | "U+ c #DEE7EA", | |
273 | "V+ c #E4EDF4", | |
274 | "W+ c #E3EBF1", | |
275 | "X+ c #D3E6E0", | |
276 | "Y+ c #9EEDAA", | |
277 | "Z+ c #66BAA0", | |
278 | "`+ c #61A8B1", | |
279 | " @ c #3D57CD", | |
280 | ".@ c #324DBF", | |
281 | "+@ c #3850D4", | |
282 | "@@ c #6899D5", | |
283 | "#@ c #A8D4B0", | |
284 | "$@ c #C8D3D3", | |
285 | "%@ c #D9E4E6", | |
286 | "&@ c #E4EBF3", | |
287 | "*@ c #E6EDF5", | |
288 | "=@ c #E5EDF5", | |
289 | "-@ c #E5EEF5", | |
290 | ";@ c #E6EFF7", | |
291 | ">@ c #D5EAE4", | |
292 | ",@ c #92F09D", | |
293 | "'@ c #64B49F", | |
294 | ")@ c #4267C0", | |
295 | "!@ c #3651C4", | |
296 | "~@ c #314CBA", | |
297 | "{@ c #354EC8", | |
298 | "]@ c #557DCF", | |
299 | "^@ c #6ED492", | |
300 | "/@ c #9BDBA3", | |
301 | "(@ c #C1CDCD", | |
302 | "_@ c #D6E1E3", | |
303 | ":@ c #E4ECF3", | |
304 | "<@ c #E7EFF7", | |
305 | "[@ c #E7F0F8", | |
306 | "}@ c #E8F1F9", | |
307 | "|@ c #CFE8DF", | |
308 | "1@ c #5692B1", | |
309 | "2@ c #334FBD", | |
310 | "3@ c #304CB5", | |
311 | "4@ c #2D4BAB", | |
312 | "5@ c #2F4BB2", | |
313 | "6@ c #3551BC", | |
314 | "7@ c #4D7CB9", | |
315 | "8@ c #70D494", | |
316 | "9@ c #90E399", | |
317 | "0@ c #BAC6C5", | |
318 | "a@ c #D1DCDE", | |
319 | "b@ c #E4ECF4", | |
320 | "c@ c #E8F0F9", | |
321 | "d@ c #E9F2FA", | |
322 | "e@ c #C5E5D5", | |
323 | "f@ c #518EA6", | |
324 | "g@ c #2D4CA6", | |
325 | "h@ c #2C4BA7", | |
326 | "i@ c #294A9F", | |
327 | "j@ c #2B4AA4", | |
328 | "k@ c #2B4BA4", | |
329 | "l@ c #3F66B8", | |
330 | "m@ c #70CBA2", | |
331 | "n@ c #B2BFBE", | |
332 | "o@ c #CBD7D8", | |
333 | "p@ c #E3EBF2", | |
334 | "q@ c #E7EEF6", | |
335 | "r@ c #E9F1FA", | |
336 | "s@ c #E2EDF5", | |
337 | "t@ c #B8E5C7", | |
338 | "u@ c #497AAE", | |
339 | "v@ c #26488F", | |
340 | "w@ c #294999", | |
341 | "x@ c #29499D", | |
342 | "y@ c #294A9D", | |
343 | "z@ c #294997", | |
344 | "A@ c #4065BB", | |
345 | "B@ c #70C6AA", | |
346 | "C@ c #AEB8B6", | |
347 | "D@ c #C8D3D4", | |
348 | "E@ c #E0EAF1", | |
349 | "F@ c #E6EEF6", | |
350 | "G@ c #E8F0F8", | |
351 | "H@ c #EAF2FB", | |
352 | "I@ c #E1ECF4", | |
353 | "J@ c #A9E4B7", | |
354 | "K@ c #61AFA4", | |
355 | "L@ c #3557AE", | |
356 | "M@ c #314DB8", | |
357 | "N@ c #334FBE", | |
358 | "O@ c #304DB1", | |
359 | "P@ c #3853C5", | |
360 | "Q@ c #5E9AC2", | |
361 | "R@ c #94CB99", | |
362 | "S@ c #B1BEBA", | |
363 | "T@ c #D5DFE5", | |
364 | "U@ c #E2EAF2", | |
365 | "V@ c #E0E8EF", | |
366 | "W@ c #BDD9CB", | |
367 | " . + @ # $ ", | |
368 | " % & * = - ; ", | |
369 | " > , ' ) ! ", | |
370 | " ~ { ] ^ / ", | |
371 | " ( _ : < ", | |
372 | " [ } | 1 2 ", | |
373 | " 3 4 5 6 1 7 ", | |
374 | " 8 9 0 a b c d ", | |
375 | " e f g h i j k ", | |
376 | " l m n o p q r s t ", | |
377 | " u v w x y z A B C D ", | |
378 | " E F G H I J K L M N ", | |
379 | " O P Q R S T U V ", | |
380 | " W X Y Z ` ...+. ", | |
381 | " @.#.$.%.&.*.=.-. ", | |
382 | " ;.>.,.'.T ).!.~. ", | |
383 | " {.].^./.(._.:.<.[.}.|.1. ", | |
384 | " 2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h. ", | |
385 | " i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y. ", | |
386 | " z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P. ", | |
387 | " Q.R.S.T.U.V.W.X. Y.Z.`. +.+ ", | |
388 | " ++@+ #+$+=.%+&+ *+=+-+;+>+,+'+)+!+~+ ", | |
389 | " {+]+ ^+/+(+_+:+ <+[+}+|+1+2+3+4+5+6+7+ ", | |
390 | " 8+9+0+ a+b+c+d+e+ f+g+h+i+j+k+l+m+n+o+p+ ", | |
391 | " q+r+s+ a+t+u+v+w+ x+y+z+A+B+C+D+E+F+G+ ", | |
392 | " H+I+J+ K+L+M+N+O+ P+Q+R+S+T+U+V+W+X+Y+ ", | |
393 | " Z+ `+ @.@+@@@ #@$@%@&@*@=@-@;@>@,@ ", | |
394 | " '@)@!@~@{@]@^@ /@(@_@:@<@[@}@;@|@ ", | |
395 | " 1@2@3@4@5@6@7@8@ 9@0@a@b@<@c@d@-@e@ ", | |
396 | " f@g@h@i@j@k@l@m@ n@o@p@q@c@r@s@t@ ", | |
397 | " u@v@w@x@y@z@A@B@ C@D@E@F@G@H@I@J@ ", | |
398 | " K@L@M@N@O@P@Q@ R@S@T@U@b@V@W@ "}; |
11 | 11 | Russian |
12 | 12 | t000=HTTraQt |
13 | 13 | t001=N# соединений |
14 | t002=Select font size | |
14 | t002=Выбрать размер шрифта | |
15 | 15 | t003=Тайм-аут |
16 | 16 | t004=Повторные попытки |
17 | t005=Макс. скорость закачки | |
17 | t005=Максимальная скорость закачки | |
18 | 18 | t006=Mинимальная скорость закачки |
19 | 19 | t007=Постоянные соединения (Keep-Alive) |
20 | 20 | t008=В случае превышения времени ожидания отменить все ссылки с данного хоста |
21 | 21 | t009=В случае, если хост слишком медленный, отменить все ссылки с данного хоста |
22 | 22 | t010=Проверять тип документа |
23 | t011=Качалка | |
24 | t012=Разрешить cookies | |
23 | t011=Мультизагрузчик | |
24 | t012=Принимать cookies | |
25 | 25 | t013=Анализ ява файлов |
26 | 26 | t014=Update hack (ограничение повторных закачек) |
27 | 27 | t015=Хак URL (объеденить аналогичные URLs) |
28 | 28 | t016=Толерантные запросы (к серверам) |
29 | 29 | t017=Использовать старый протокол HTTP\\1.0 (не 1.1) |
30 | t018=Идентификация броузера (строка User-Agent) | |
31 | t019=Operation system Identity | |
30 | t018=Идентификатор браузера (строка User-Agent) | |
31 | t019=Идентификатор операционной системы | |
32 | 32 | t020=Operation |
33 | 33 | t021=Нижний HTML колонтитул |
34 | 34 | t022=Тип локальной структуры зеркала (способ сохранения файлов) |
36 | 36 | t024=Без страниц ошибок |
37 | 37 | t025=Без внешних ссылок |
38 | 38 | t026=Скрыть пароли |
39 | t027=Спрятать запросную часть строки (все, что после знака ?) | |
39 | t027=Спрятать запросную часть строки (все, что после знака '?') | |
40 | 40 | t028=Не удалять старые файлы |
41 | 41 | t029=Имена в стандарте ISO9660 (CDROM) |
42 | 42 | t030=Структура |
43 | 43 | t031=Как правило, эти настройки изменять не следует |
44 | 44 | t032=Основной фильтр |
45 | t033=Мода сканирования | |
46 | t034=Глобальная мода сканирования | |
45 | t033=Режим сканирования | |
46 | t034=Глобальный режим сканирования | |
47 | 47 | t035=Переименовать ссылки: внутренние\\внешние |
48 | 48 | t036=Использовать кэш для обновления и докачки |
49 | t037=Включить моду отладки (httraqt.log) | |
50 | t038=Макс. глубина создания зеркала от начального адреса | |
49 | t037=Включить режим отладки (httraqt.log) | |
50 | t038=Максимальная глубина создания зеркала от начального адреса | |
51 | 51 | t039=Максимальная глубина закачки для внешних\\запрещенных адресов (0, т.е., нет ограничений, это значение поумолчанию) |
52 | t040=Макс. размер html-файла: | |
53 | t041=Макс. размер не-html: | |
52 | t040=Максимальный размер html-файла: | |
53 | t041=Максимальный размер не-html файла: | |
54 | 54 | t042=Ограничение по размеру |
55 | 55 | t043=Пауза после загрузки... |
56 | t044=Макс. время закачки | |
56 | t044=Максимальное время закачки | |
57 | 57 | t045=Размер |
58 | t046=Макс. число соединений\\сек. | |
58 | t046=Максимальное число соединений\\сек | |
59 | 59 | t047=Максимальное число ссылок |
60 | 60 | t048=Все ссылки допустимы |
61 | 61 | t049=Качать не-html файлы вблизи ссылки (напр.: внешние .ZIP или граф. файлы) |
63 | 63 | t051=Получить вначале HTML файлы! |
64 | 64 | t052=Соответсвие типу файлов (Type\\MIME) |
65 | 65 | t053=Типы файлов: |
66 | t054=MIME identity | |
66 | t054=Идентификатор MIME | |
67 | 67 | t055=Адрес прокси: |
68 | 68 | t056=Номер порта: |
69 | 69 | t057=Логин: |
82 | 82 | t070=Создать файл отчёта |
83 | 83 | t071=Создать индекс |
84 | 84 | t072=Создать базу данных слов |
85 | t073=Имена файлов с раширением:\r\nИмена файлов, содержащие:\r\nЭтот файл:\r\nИмена фолдеров содержат:\r\nЭтот фолдер:\r\nСсылки из этого домена:\r\nСсылки из доменов, содержащие:\r\nСсылки из этого хоста:\r\nСсылки содержащие:\r\nЭтот линк:\r\nВСЕ ЛИНКИ | |
85 | t073=Имена файлов с раширением:\r\nИмена файлов, содержащие:\r\nЭтот файл:\r\nИмена папок содержат:\r\nЭта папка:\r\nСсылки из этого домена:\r\nСсылки из доменов, содержащие:\r\nСсылки из этого хоста:\r\nСсылки, содержащие:\r\nЭтот линк:\r\nВСЕ ЛИНКИ | |
86 | 86 | t074=Показать все\r\nСпрятать отладку\r\nСпрятать инфо\r\nСпрятать отладку и инфо |
87 | 87 | t075=Структура сайта (по умолчанию)\r\nHtml\\, файлы изображений\\другие файлы\\файлы изображений\\\r\nHtml\\html, файлы изображений\\другие файлы\\файлы изображений\r\nHtml\\, файлы изображений\\другие файлы\\\r\nHtml\\, файлы изображений\\другие файлы\\xxx, где xxx - расширение файла\r\nHtml, файлы изображений\\другие файлы\\xxx\r\nСтруктура сайта без www.domain.xxx\\\r\nHtml в site_name\\ файлы изображений\\другие файлы в site_name\\файлы изображений\\\r\nHtml в site_name\\html, файлы изображений\\другие файлы в site_name\\файлы изображений\r\nHtml в site_name\\, файлы изображений\\другие файлы в site_name\\\r\nHtml в site_name\\, файлы изображений\\другие файлы в site_name\\xxx\r\nHtml в site_name\\html, файлы изображений\\другие файлы в site_name\\xxx\r\nВсе файлы из веба\\, с произвольными именами (новинка !)\r\nВсе файлы из site_name\\, с произвольными именами (новинка !)\r\nЗаданная пользователем структура... |
88 | 88 | t076=Только сканировать\r\nСохранять html файлы\r\nСохранять не html файлы\r\nСохранять все файлы (по умолчанию)\r\nСохранять вначале html файлы |
89 | 89 | t077=Оставаться в тойже директории\r\nМожно двигаться вниз (по умолчанию)\r\nМожно двигаться вверх\r\nМожно двигаться вверх и вниз |
90 | 90 | t078=Оставаться на том же адресе (по умолчаниюt)\r\nОставаться на том же домене\r\nОставаться на том де домене верхнего уровня\r\nИдти куда угодно |
91 | 91 | t079=Никогда\r\nЕсли неизвестно (кроме \\)\r\nЕсли неизвестно |
92 | t080=Не подчиняться правилам robots.txt\r\nrobots.txt кроме Мастера\r\nподчиняться правилам robots.txt | |
93 | t081=Обычная\r\nрасширенная\r\nотладка | |
92 | t080=Не подчиняться правилам robots.txt\r\nПодчиняться robots.txt, кроме Мастера\r\nПодчиняться правилам robots.txt | |
93 | t081=Обычный\r\nРасширенный\r\nОтладочный | |
94 | 94 | t082=Загрузить сайт(ы)\r\nЗагрузить сайт(ы) +вопросы\r\nЗагрузить отдельные файлы\r\nЗагрузить все сайты со страницы (несколько зеркал)\r\nТестировать ссылки со страницы (тест закладок)\r\n* Продолжить прерванную загрузку\r\n* Обновить существующую закачку |
95 | 95 | t083=Относительный URI \\ Абсолютный URL (по-умолчанию)\r\nАбсолютный URL \\ Абсолютный URL\r\nАбсолютный URI \\ Абсолютный URL\r\nПервоначальный URL \\ Первоначальный URL |
96 | t084=- Мода зеркализации -\r\n\r\nВведите адрес(а) в поле URL. | |
97 | t085=- Интерактивная мода - Мастер создания зеркала (будут заданы вопросы) -\r\n\r\nВведите адрес(а) в поле URL. | |
98 | t086=- Мода закачки отдельных файлов -\r\n\r\nВведите адрес(а) файлов в поле URL. | |
99 | t087=Мода создания зеркал из списка-\r\n\r\nВ поле URL заполните адреса страниц, содержащих URL'ы, которые вы хотите зеркализовать. | |
100 | t088=- Мода тестирования линков -\r\n\r\nВведите адрес(а) страниц, содержащих URL'ы, которые вы хотите протестировать. | |
101 | t089=- Мода обновления -\r\n\r\nПроверьте адрес(а) в поле URL, затем нажмите кнопку 'ДАЛЕЕ' и проверьте параметры. | |
102 | t090=- Мода продолжения ранее прерванного создания зеркала -\r\n\r\nПроверьте адрес(а) в поле URL, затем нажмите кнопку 'ДАЛЕЕ' и проверьте параметры. | |
103 | t091=Да | |
96 | t084=- Режим зеркализации -\r\n\r\nВведите адрес(а) в поле URL. | |
97 | t085=- Интерактивный режим - Мастер создания зеркала (будут заданы вопросы) -\r\n\r\nВведите адрес(а) в поле URL. | |
98 | t086=- Режим закачки отдельных файлов -\r\n\r\nВведите адрес(а) файлов в поле URL. | |
99 | t087=Режим создания зеркал из списка-\r\n\r\nВ поле URL заполните адреса страниц, содержащих URL'ы, которые вы хотите зеркализовать. | |
100 | t088=- Режим тестирования линков -\r\n\r\nВведите адрес(а) страниц, содержащих URL'ы, которые вы хотите протестировать. | |
101 | t089=- Режим обновления -\r\n\r\nПроверьте адрес(а) в поле URL, затем нажмите кнопку 'ДАЛЕЕ' и проверьте параметры. | |
102 | t090=- Режим продолжения ранее прерванного создания зеркала -\r\n\r\nПроверьте адрес(а) в поле URL, затем нажмите кнопку 'ДАЛЕЕ' и проверьте параметры. | |
103 | t091=Готово | |
104 | 104 | t092=Отмена |
105 | 105 | t093=Выход |
106 | 106 | t094=Закрыть |
138 | 138 | t126=Добавить исключающий фильтр |
139 | 139 | t127=Добавить включающий фильтр |
140 | 140 | t128=Дополнительные фильтры |
141 | t129=Cancel changes | |
141 | t129=Отменить изменения | |
142 | 142 | t130=Сохранить настройки как значения по умолчанию |
143 | t131=Click to confirm | |
143 | t131=Подтвердить | |
144 | 144 | t132=Нет лог файлов в %s! |
145 | 145 | t133=Отсутствует файл index.html в %s! |
146 | 146 | t134=Выйти из программы HTTraQt Website Copier |
165 | 165 | t153=запрос |
166 | 166 | t154=соединение |
167 | 167 | t155=поиск |
168 | t156=Ready | |
168 | t156=Готов | |
169 | 169 | t157=готов |
170 | t158=waiting | |
170 | t158=ожидание | |
171 | 171 | t159=ошибка |
172 | 172 | t160=Получаем файлы |
173 | 173 | t161=Разбор HTML файла... |
174 | 174 | t162=Удаляем файлы... |
175 | 175 | t163=Идет загрузка кэша.. |
176 | 176 | t164=Анализируем HTML файл (проверяем ссылки)... |
177 | t165=Остановлено (для продолжения выберете [Зеркало]\\[Приостановить закачку] ) | |
178 | t166=Paused (select [File]\\[Pause transfer] to continue) | |
179 | t167=Завершаются отложенные закачки - чтобы прервать, нажмите Cancel! | |
180 | t168=сканируем | |
177 | t165=Пауза (для продолжения выберете [Зеркало]\\[Приостановить закачку] ) | |
178 | t166=Приостановлено (выберите [File]\\[Pause transfer] to continue) | |
179 | t167=Завершаются отложенные закачки - чтобы прервать, нажмите Остановить! | |
180 | t168=сканирование | |
181 | 181 | t169=Ожидаю заданное время начала |
182 | t170=Transferring data.. | |
182 | t170=Передача данных.. | |
183 | 183 | t171=Соединяемся с провайдером |
184 | 184 | t172=Осталось [%d секунд] до начала |
185 | 185 | t173=Создается зеркало [%s, %s] |
186 | 186 | t174=Создание зеркала завершено! |
187 | 187 | t175=В процессе закачки произошла ошибка\r\n |
188 | t176=В течении:\r\n | |
188 | t176=В течение:\r\n | |
189 | 189 | t177=В случае необходимости, смотри лог файл.\r\n\r\nДля выхода из HTTraQt нажмите кнопку OK.\r\n\r\nСпасибо за использование HTTraQt! |
190 | 190 | t178=Создание зеркала завершено.\r\nДля выхода из программы нажмите кнопку OK.\r\nДля проверки успешности закачки посмотрите лог файл(ы).\r\n\r\nСпасибо за использование HTTraQt! |
191 | t179=* * ЗАКАЧКА ПРЕРВАНА! * *\r\nВременный кэш, созданный во время текущей сессий, содержит данные, загруженные только во время данной сессии и потребуется только в случае возобновления закачки.\r\nОднако, предыдущий кэш может содержать более полную информацию. Если вы не хотите потерять эти данные, вам нужно удалить текущий кэш и возобновить предыдущий.\r\n(Это можно легко сделать прямо здесь, удалив файлы hts-cache\\new.]\r\n\r\nСчитает-ли вы, что предыдущий кэш может содержать более полную информацию, и хотите ли вы восстановить его? | |
191 | t179=* * ЗАКАЧКА ПРЕРВАНА! * *\r\nВременный кэш, созданный во время текущей сессий, содержит данные, загруженные только во время данной сессии и потребуется только в случае возобновления закачки.\r\nОднако, предыдущий кэш может содержать более полную информацию. Если вы не хотите потерять эти данные, Вам нужно удалить текущий кэш и возобновить предыдущий.\r\n(Это можно легко сделать прямо здесь, удалив файлы hts-cache\\new.]\r\n\r\nСчитает-ли вы, что предыдущий кэш может содержать более полную информацию, и хотите ли вы восстановить его? | |
192 | 192 | t180=* * ОШИБКА! * *\r\nТекущее зеркало - пусто. Если это было обновление, предыдущая версия зеркала восстановлена.\r\nПричина: первая страница(ы) или не найдена, или были проблемы с соединением.\r\n=> Убедитесь, что вебсайт все-еще существует, и\\или проверьте установки прокси-сервера! <= |
193 | 193 | t181=\r\nПодсказка:Для просмотра сообщений об ошибках и предупреждений нажмите [Просмотр лог файла] |
194 | t182=Ошибка удаления файла hts-cache\\new.* , пожалуйста, удалите его ручками.\r\n | |
194 | t182=Ошибка удаления файла hts-cache\\new.* , пожалуйста, удалите его вручную.\r\n | |
195 | 195 | t183=Вы действительно хотите завершить работу с программой? |
196 | 196 | t184=Путь к лог файлам |
197 | 197 | t185=Новый проект \\ импортировать? |
198 | 198 | t186=Выберете действие |
199 | t187=Макс.глубина сканирования | |
199 | t187=Максимальная глубина поиска | |
200 | 200 | t188=Введите адреса |
201 | 201 | t189=Задать дополнительные фильтры |
202 | 202 | t190=Прокси, если требуется |
207 | 207 | t195=Выберете путь |
208 | 208 | t196=Выйти из HTTraQt Website Copier |
209 | 209 | t197=О программе HTTraQt |
210 | t198=Save current preferences as default values | |
210 | t198=Сохранить текущие настройки, как настройки по умолчанию | |
211 | 211 | t199=Продолжить |
212 | 212 | t200=Задать параметры закачки |
213 | 213 | t201=Добавить URL |
221 | 221 | t209=Переустановить все параметры по умолчанию? |
222 | 222 | t210=HTTraQt приветствует вас! |
223 | 223 | t211=Тип работы: |
224 | t212=Макс. глубина: | |
224 | t212=Максимальная глубина: | |
225 | 225 | t213=Максимальная глубина внешних сайтов: |
226 | 226 | t214=Фильтры (включить\\выключить ссылки) |
227 | 227 | t215=Пути |
232 | 232 | t220=Добавить URL... |
233 | 233 | t221=Веб адреса: (URL) |
234 | 234 | t222=Прервать HTTraQt? |
235 | t223=Hibernate | |
235 | t223=Спящий режим | |
236 | 236 | t224=Приостановить закачку? |
237 | t225=Pause | |
237 | t225=Пауза | |
238 | 238 | t226=Прервать закачку |
239 | t227=Спрятать в системный трэй | |
239 | t227=Спрятать в системный трей | |
240 | 240 | t228=Пропустить линк или прервать анализ файла |
241 | 241 | t229=Пропустить линк |
242 | 242 | t230=Сохранено байт: |
243 | t231=Stop | |
243 | t231=Остановить | |
244 | 244 | t232=Просканировано линков: |
245 | 245 | t233=Время: |
246 | 246 | t234=Соединений: |
279 | 279 | t267=Maксимальный размер любого не HTML-файла |
280 | 280 | t268=Maксимальное количество байт, допустимых для закачки |
281 | 281 | t269=После загрузки указанного числа байтов, сделать паузу |
282 | t270=Maкс. продолжительность зеркализации | |
283 | t271=Макс. количество соединений в секунду (не перегружать сервер) | |
282 | t270=Maксимальная продолжительность зеркализации | |
283 | t271=Максимальное количество соединений в секунду (не перегружать сервер) | |
284 | 284 | t272=Максимальное число тестируемых линков (тестируемых, а не сохраняемых!) |
285 | 285 | t273=Комментарий, размещаемый в каждом HTML файле |
286 | 286 | t274=Назад к начальной странице |
287 | t275=Save current preferences as default values | |
288 | t276=Click to continue | |
287 | t275=Сохранить текущие настройки, как настройки по умолчанию | |
288 | t276=Нажмите, чтобы продолжить | |
289 | 289 | t277=Отменить изменения |
290 | 290 | t278=Подчиняться правилам для роботов, устанавливаемым сайтами |
291 | 291 | t279=По ссылкам на внешние страницы (не скачанные) будет переход к страницам ошибок |
305 | 305 | t293=Стараться определять все URL'ы (даже в неопознанных тэгах\\скриптах) |
306 | 306 | t294=Использовать кэш для обновления |
307 | 307 | t295=Log файлы |
308 | t296=Primary Scan Rule | |
308 | t296=Предпочитаемое правило сканирования | |
309 | 309 | t297=Контроль потоков |
310 | 310 | t298=Ограничения |
311 | 311 | t299=Идентификатор |
313 | 313 | t301=Прекратить закачку с хоста, если она слишком медленная |
314 | 314 | t302=Настроить |
315 | 315 | t303=Уменьшить времена соединения и обращения используя постоянные соединения |
316 | t304=Макс. размер сайта | |
316 | t304=Максимальный размер сайта | |
317 | 317 | t305=Сохранить настройки |
318 | t306=Save | |
319 | t307=Макс. скорость закачки | |
318 | t306=Сохранить | |
319 | t307=Максимальная скорость закачки | |
320 | 320 | t308=Следовать правилам из robots.txt |
321 | 321 | t309=Ссылки |
322 | 322 | t310=Только для экспертов |
323 | t311=Управление закачкой | |
323 | t311=Управление потоками | |
324 | 324 | t312=Идентификация |
325 | t313=Scan Rules | |
326 | t314=Лог, Индекс. Кэш | |
325 | t313=Правила сканирования | |
326 | t314=Лог, Индекс, Кэш | |
327 | 327 | t315=Прокси |
328 | 328 | t316=MIME (Типы файлов) |
329 | 329 | t317=Не соединяться с провайдером (соединение уже установлено) |
330 | t318=Не испоьзовать удаленной соединения | |
330 | t318=Не испоьзовать удаленные соединения | |
331 | 331 | t319=Закачка по расписанию |
332 | 332 | t320=Начать! |
333 | 333 | t321=Нет сохраненного пароля для этого соединения |
337 | 337 | t325=Вы можете или начать закачку, нажав кнопку СТАРТ, или можете задать дополнительные параметры соединения |
338 | 338 | t326=Только сохранить установки, не начинать закачку. |
339 | 339 | t327=Удерживать |
340 | t328=Shutdown | |
340 | t328=Выключить | |
341 | 341 | t329=Ограничить время скачивания: (hh\\mm\\ss) |
342 | 342 | t330=Соединиться с провайдером (RAS) |
343 | 343 | t331=Соединиться с этим провайдером |
344 | 344 | t332=Отсоединиться при завершении |
345 | 345 | t333=Отсоеденить при завершении |
346 | t334=\r\n(Сообщите нам пожалуйста о замеченных проблемах и ошибках)\r\n\r\nРазработка:\r\nИнтерфейс (Windows): Xavier Roche\r\nКачалка (spider): Xavier Roche\r\nПарсер ява-классов: Yann Philippot\r\n\r\n(C)1998-2003 Xavier Roche and other contributors\r\nMANY THANKS for Russian translations to:\r\nAndrei Iliev (andreiiliev@mail.ru) | |
346 | t334=\r\n(Сообщите нам пожалуйста о замеченных проблемах и ошибках)\r\n\r\nРазработка:\r\nИнтерфейс (Windows): Xavier Roche\r\nМультизагрузчик (spider): Xavier Roche\r\nПарсер ява-классов: Yann Philippot\r\n\r\n(C)1998-2003 Xavier Roche другие\r\nОГРОМНАЯ БЛАГОДАРНОСТЬ за перевод на русский:\r\nAndrei Iliev (andreiiliev@mail.ru) | |
347 | 347 | t335=О программе... |
348 | 348 | t336=Пожалуйста, посетите нашу веб-страницу |
349 | t337=Вопрос мастера | |
349 | t337=Запрос мастера | |
350 | 350 | t338=Ваш ответ: |
351 | t339=Найден линк | |
351 | t339=Найдена ссылка | |
352 | 352 | t340=Выберете правило |
353 | 353 | t341=Игнорировать этот линк |
354 | 354 | t342=Игнорировать директорию |
357 | 357 | t345=Зеркализовать сайт |
358 | 358 | t346=Зеркализовать домен |
359 | 359 | t347=Игнорировать все |
360 | t348=Wizard query | |
360 | t348=Запрос мастера | |
361 | 361 | t349=Нет |
362 | 362 | t350=Настройки |
363 | 363 | t351=Приостановить закачку |
370 | 370 | t358=Панель состояния |
371 | 371 | t359=Разделить |
372 | 372 | t360=Файл |
373 | t361=Progress | |
373 | t361=Готовность | |
374 | 374 | t362=Настройки |
375 | 375 | t363=Зеркало |
376 | 376 | t364=Лог |
391 | 391 | t379=&Удалить... |
392 | 392 | t380=&Просмотр сайтов... |
393 | 393 | t381=Задание структуры |
394 | t382=%n\tИмя файла без расширения (напр.: image)\r\n%N\tИмя файла с расширением (напр.: image.gif)\r\n%t\tРасширение файла (напр.: gif)\r\n%p\tПуть к файлу [без оканчивающего \\] (напр.: \\someimages)\r\n%h\tИмя хоста (напр.: www.someweb.com)\r\n%M\tURL MD5 (128 bits, 32 ascii bytes)\r\n%Q\tquery string MD5 (128 bits, 32 ascii bytes)\r\n%q\tsmall query string MD5 (16 bits, 4 ascii bytes)\r\n\r\n%s?\tDOS'кое имя (напр: %sN) | |
394 | t382=%n\tИмя файла без расширения (напр.: image)\r\n%N\tИмя файла с расширением (напр.: image.gif)\r\n%t\tРасширение файла (напр.: gif)\r\n%p\tПуть к файлу [без завершающего \\] (напр.: \\someimages)\r\n%h\tИмя хоста (напр.: www.someweb.com)\r\n%M\tMD5-сумма ссылки (128 бит, 32 ascii байта)\r\n%Q\tMD5-сумма набора строк (128 бит, 32 ascii байта)\r\n%q\tмалая MD5-сумма набора строк (16 бит, 4 ascii байта)\r\n\r\n%s?\tимяDOS 8.3 (напр: %sN) | |
395 | 395 | t383=Пример:\t%h%p\\%n%q.%t\r\n->\t\t\\home\\karbofos\\mirror\\www.someweb.com\\someimages\\image.gif |
396 | 396 | t384=Настройки прокси |
397 | 397 | t385=Аутентификация (если нужно) |
411 | 411 | t399=Каталог: |
412 | 412 | t400=Категория проекта: |
413 | 413 | t401=\\home\\karbofos\\Мои Web Сайты |
414 | t402=Задайте название нового проекта, \r\nили выберете существующий проект для его актуализации\\продолжения | |
414 | t402=Задайте название нового проекта, \r\nили выберете существующий проект для его проверки\\продолжения | |
415 | 415 | t403=Новый проект |
416 | t404=Вставьте URL | |
416 | t404=Вставьте ссылку (URL) | |
417 | 417 | t405=URL: |
418 | t406=Authentication (only if needed) | |
419 | t407=Сложные ссылки: | |
420 | t408=Засечь URL... | |
418 | t406=Аутентификация (если нужно) | |
419 | t407=Формы сложных ссылок: | |
420 | t408=Захватить URL... | |
421 | 421 | t409=Введите URL адрес |
422 | 422 | t410=Введите логин для доступа к сайту |
423 | 423 | t411=Введите пароль для доступа к сайту |
424 | 424 | t412=Используйте это средство для отлова динамических URL (javascript, формы и т.п.) |
425 | 425 | t413=Выбор языка |
426 | 426 | t414=Поймать URL! |
427 | t415=Временно установите в настройках прокси вашего броузера указанные ниже значения адреса и номера порта.\r\nЗатем, в броузере выполните необходимые действия (послать форму, активизировать скрипт и т.п.) . | |
427 | t415=Временно установите в настройках прокси вашего броузера указанные ниже значения адреса и номера порта.\r\nЗатем, в браузере выполните необходимые действия (послать форму, активизировать скрипт и т.п.) . | |
428 | 428 | t416=Таким образом вы сможете передать желаемый линк из браузера в HTTraQt. |
429 | t417=Отмена | |
430 | t418=Скопируй\\вставь временные настройки прокси | |
431 | t419=Не найдены файлы помощи! | |
432 | t420=Не возможно сохранить параметры! | |
433 | t421=Пожалуйста, перетаскивайте только одну папку | |
434 | t422=Пожалуйста, тащите только папку, а не файл | |
435 | t423=Пожалуйста, тащите только папку | |
436 | t424=Выбрать заданную вами структуру? | |
437 | t425=Проверьте, что определенная вами структура правильна, в противном случае, имена файлов будут непредсказуемы | |
429 | t417=ОТМЕНА | |
430 | t418=Скопируте\\вставьте временные настройки прокси сюда | |
431 | t419=Не найдены файлы справки! | |
432 | t420=Невозможно сохранить параметры! | |
433 | t421=Пожалуйста, перетаскивайте только одну папку за раз | |
434 | t422=Пожалуйста, тащите только папки, а не файл | |
435 | t423=Пожалуйста, тащите только папки | |
436 | t424=Задать выбранную Вами структуру? | |
437 | t425=Проверьте, что определенная Вами структура правильна, в противном случае, имена файлов будут непредсказуемы | |
438 | 438 | t426=Вы действительно хотите выбрать заданную структуру? |
439 | t427=Слишком много URL'ов, не могу обработать такое количество линков! | |
439 | t427=Слишком много ссылок, не могу обработать так много! | |
440 | 440 | t428=Не достаточно памяти, фатальная внутренняя ошибка... |
441 | t429=Неизвестная операция | |
442 | t430=Добавить этот URL?\r\n | |
443 | t431=Внимание: программа не отвечает на запросы, не возможно добавить URL'ы... | |
441 | t429=Неизвестная операция! | |
442 | t430=Добавить эту ссылку?\r\n | |
443 | t431=Внимание: программа не отвечает на запросы, не возможно добавить ссылку(и)... | |
444 | 444 | t432=Выбрать или изменить типы файлов |
445 | 445 | t433=Выбрать или изменить типы файлов |
446 | 446 | t434=Вверх |
448 | 448 | t436=Информация о загрузке файла |
449 | 449 | t437=Заморозить окно |
450 | 450 | t438=Дополнительная информация: |
451 | t439=Добро пожаловать в программу HTTraQt Website Copier!\r\n\r\nПожалуйста нажмите кнопку ДАЛЕЕ для того, чтобы\r\n\r\n- начать новый проект\r\n- или возобновить частичную закачку | |
451 | t439=Добро пожаловать в программу HTTraQt Website Copier!\r\n\r\nПожалуйста нажмите кнопку ДАЛЕЕ для того, чтобы\r\n\r\n- начать новый проект\r\n- или возобновить закачку | |
452 | 452 | t440=Open Source оффлайн браузер |
453 | t441=Качалка вебсайтов\\Оффлайн браузер. Качает вебсайты на ваш компьютер. Бесплатно. | |
453 | t441=Мультизагрузчик вебсайтов\\Оффлайн браузер. Качает вебсайты на ваш компьютер. Бесплатно. | |
454 | 454 | t442=httrack, httraqt, webhttrack, offline browser |
455 | t443=Лист URL'ов (*.txt) | |
455 | t443=Список ссылок (*.txt) | |
456 | 456 | t444=Назад |
457 | 457 | t445=Далее |
458 | t446=URLs | |
458 | t446=Ссылки | |
459 | 459 | t447=Предупреждение |
460 | 460 | t448=Ваш браузер или не поддерживает javascript или его поддержка выключена. Для получения наилучшего результата активизируйте поддержку javascript. |
461 | 461 | t449=Спасибо |
462 | 462 | t450=Теперь Вы можете закрыть это окно |
463 | t451=Server terminated | |
463 | t451=Сервер остановлен | |
464 | 464 | t452=Во время текущей закачки произошла фатальная ошибка |
465 | t453=Wrong URL(s)! | |
465 | t453=Неправильная(ые) ссылка(и)! | |
466 | 466 | t454=Как можно поблагодарить программиста: |
467 | 467 | t455=Поделиться ссылкой на эту программу с другими |
468 | 468 | t456=Сообщить о найденной ошибке, неточности |
469 | t457=Donate | |
470 | t458=\r\n(Please notify us of any bug or problem)\r\n\r\nDevelopment:\r\nInterface (Windows): Xavier Roche\r\nInterface (Qt4\\Qt5 based): Eduard Kalinowski\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) | |
471 | t459=Скопировать из буфера обмена | |
472 | t460=Documents | |
473 | t461=Archives | |
474 | t462=Images | |
475 | t463=Multimedia | |
476 | t464=Open new GUI | |
477 | t465=Browse exists projects | |
478 | t466=Step by step... | |
479 | t467=To the project page... | |
480 | t468=About HTTraQt Website Copier... | |
481 | t469=About Qt | |
482 | t470=Question | |
483 | t471=Open File | |
484 | t472=No URL! | |
485 | t473=The URL list is not complete! | |
486 | t474=File error | |
487 | t475=remove | |
488 | t476=are you sure? | |
469 | t457=Помочь материально | |
470 | t458=\r\n(Пожалуйста, сообщите нам о любой найденной ошибке или проблеме)\r\n\r\nРазработка:\r\nИнтерфейс (Windows): Xavier Roche\r\nИнтерфейс (Qt4\\Qt5): Eduard Kalinowski\r\nМультизагрузчик: Xavier Roche\r\nПарсер ява-классов: Yann Philippot\r\n\r\n(C)1998-2003 Xavier Roche и другие\r\nОГРОМНАЯ БЛАГОДАРНОСТЬ за рекомендации по переводу:\r\nRobert Lagadec (rlagadec@yahoo.fr) | |
471 | t459=Вставить из буфера обмена | |
472 | t460=Документы | |
473 | t461=Архивы | |
474 | t462=Изображения | |
475 | t463=Мультимедиа | |
476 | t464=Открыть новое окно | |
477 | t465=Просмотреть существующие проекты | |
478 | t466=Пошаговые инструкции... | |
479 | t467=Перейти на страницу проекта... | |
480 | t468=О HTTraQt Website Copier... | |
481 | t469=О Qt | |
482 | t470=Вопрос | |
483 | t471=Открыть файл | |
484 | t472=Нет ссылки! | |
485 | t473=Список ссылок неполный! | |
486 | t474=Файловая ошибка | |
487 | t475=удалить | |
488 | t476=Вы уверены? | |
489 | 489 | t477=Any subdirectory not empty! |
490 | t478=Save File | |
491 | t479=&Language | |
492 | t480=Stop? | |
493 | t481=No directory | |
494 | t482=Creating error | |
495 | t483=Can not create directory! | |
496 | t484=No project | |
497 | t485=Waiting for specific hour to start | |
498 | t486=Mirror waiting [%d seconds] | |
499 | t487=Error | |
490 | t478=Сохранить файл | |
491 | t479=&Язык | |
492 | t480=Остановить? | |
493 | t481=Нет папки | |
494 | t482=Ошибка процесса создания | |
495 | t483=Не могу создать директорию! | |
496 | t484=Нет проекта | |
497 | t485=Ожидание заданного часа для старта | |
498 | t486=Ожидание зеркала [%d секунд] | |
499 | t487=Ошибка | |
500 | 500 | t488=Да |
501 | t489=Build top Index | |
501 | t489=Создать индекс | |
502 | 502 | t490=Единицы |
503 | 503 | t491=Открыть |
504 | t492=Компьютер выключить после окончания | |
505 | t493=Shutdown counter (minutes) | |
506 | t494=Сделайте\\исправьте файл-перевод | |
504 | t492=Выключить компьютер после окончания | |
505 | t493=Отсчет времени перед выключением (в минутах) | |
506 | t494=Сделать\\исправить файл-перевод |
0 | #!/bin/bash | |
1 | ||
2 | CPPCHCK=`type -p astyle` | |
3 | ||
4 | if [ ! -f "$CPPCHCK" ]; then | |
5 | # not found exit | |
6 | echo "please install astyle and restart this script" | |
7 | exit 0 | |
8 | fi | |
9 | ||
10 | set -e | |
11 | ||
12 | export ARTISTIC_STYLE_OPTIONS="\ | |
13 | --mode=c \ | |
14 | --style=k&r \ | |
15 | --indent=spaces=4 \ | |
16 | --indent-classes \ | |
17 | --indent-switches \ | |
18 | --indent-col1-comments \ | |
19 | --indent-preprocessor \ | |
20 | --break-blocks \ | |
21 | --pad-oper \ | |
22 | --add-brackets \ | |
23 | --align-reference=name \ | |
24 | --convert-tabs \ | |
25 | --formatted \ | |
26 | --lineend=linux" | |
27 | ||
28 | for i in $(find . -type f \( -name "*.cpp" -or -name "*.c" -or -name "*.h" \)); | |
29 | do | |
30 | astyle $ARTISTIC_STYLE_OPTIONS "$i"; | |
31 | done | |
32 | ||
33 | for i in $(find . -type f \( -name "*.orig" -or -name "*~" \)); | |
34 | do | |
35 | rm -if "$i"; | |
36 | done |