You can subscribe to this list here.
2006 |
Jan
|
Feb
(24) |
Mar
(9) |
Apr
(4) |
May
(7) |
Jun
(13) |
Jul
(19) |
Aug
(1) |
Sep
(12) |
Oct
(20) |
Nov
(1) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
(6) |
Mar
(24) |
Apr
(1) |
May
(10) |
Jun
(30) |
Jul
(46) |
Aug
(20) |
Sep
(12) |
Oct
(27) |
Nov
(51) |
Dec
(58) |
2008 |
Jan
(40) |
Feb
(40) |
Mar
(78) |
Apr
(138) |
May
(4) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(5) |
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
|
Jun
(2) |
Jul
(10) |
Aug
(1) |
Sep
(11) |
Oct
(31) |
Nov
(7) |
Dec
(1) |
2011 |
Jan
(1) |
Feb
|
Mar
(3) |
Apr
|
May
(1) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(2) |
Sep
|
Oct
|
Nov
(2) |
Dec
(2) |
2013 |
Jan
(3) |
Feb
(5) |
Mar
(1) |
Apr
|
May
|
Jun
(11) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
2014 |
Jan
(2) |
Feb
(3) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <arn...@us...> - 2007-03-05 13:21:40
|
Revision: 712 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=712&view=rev Author: arnetheduck Date: 2007-03-05 05:21:32 -0800 (Mon, 05 Mar 2007) Log Message: ----------- Smartfix in, WTL out Modified Paths: -------------- dcplusplus/trunk/SConstruct dcplusplus/trunk/win32/MDIChildFrame.h dcplusplus/trunk/win32/MainWindow.cpp dcplusplus/trunk/win32/SConscript dcplusplus/trunk/win32/StaticFrame.h dcplusplus/trunk/win32/StupidWin.h dcplusplus/trunk/win32/SystemFrame.cpp dcplusplus/trunk/win32/SystemFrame.h dcplusplus/trunk/win32/main.cpp Added Paths: ----------- dcplusplus/trunk/smartwin/License.txt dcplusplus/trunk/smartwin/SConscript dcplusplus/trunk/smartwin/SmartUtil/ dcplusplus/trunk/smartwin/SmartUtil/ChooseWideNarrowChar.h dcplusplus/trunk/smartwin/SmartUtil/DateTime.cpp dcplusplus/trunk/smartwin/SmartUtil/DateTime.h dcplusplus/trunk/smartwin/SmartUtil/RegKey.cpp dcplusplus/trunk/smartwin/SmartUtil/RegKey.h dcplusplus/trunk/smartwin/SmartUtil/SConscript dcplusplus/trunk/smartwin/SmartUtil/StringConversion.h dcplusplus/trunk/smartwin/SmartUtil/TimeSpan.cpp dcplusplus/trunk/smartwin/SmartUtil/TimeSpan.h dcplusplus/trunk/smartwin/SmartUtil/UtilSystemHeaders.h dcplusplus/trunk/smartwin/SmartUtil/null_pointer.h dcplusplus/trunk/smartwin/SmartUtil/tstring.cpp dcplusplus/trunk/smartwin/SmartUtil/tstring.h dcplusplus/trunk/smartwin/SmartUtil/xCeptionSmartUtilities.h dcplusplus/trunk/smartwin/include/ dcplusplus/trunk/smartwin/include/SmartUtil.h dcplusplus/trunk/smartwin/include/SmartWin.h dcplusplus/trunk/smartwin/include/boost/ dcplusplus/trunk/smartwin/include/boost/aligned_storage.hpp dcplusplus/trunk/smartwin/include/boost/any.hpp dcplusplus/trunk/smartwin/include/boost/array.hpp dcplusplus/trunk/smartwin/include/boost/assert.hpp dcplusplus/trunk/smartwin/include/boost/assign.hpp dcplusplus/trunk/smartwin/include/boost/bind/ dcplusplus/trunk/smartwin/include/boost/bind/apply.hpp dcplusplus/trunk/smartwin/include/boost/bind/arg.hpp dcplusplus/trunk/smartwin/include/boost/bind/bind_cc.hpp dcplusplus/trunk/smartwin/include/boost/bind/bind_mf_cc.hpp dcplusplus/trunk/smartwin/include/boost/bind/bind_template.hpp dcplusplus/trunk/smartwin/include/boost/bind/make_adaptable.hpp dcplusplus/trunk/smartwin/include/boost/bind/mem_fn_cc.hpp dcplusplus/trunk/smartwin/include/boost/bind/mem_fn_template.hpp dcplusplus/trunk/smartwin/include/boost/bind/mem_fn_vw.hpp dcplusplus/trunk/smartwin/include/boost/bind/placeholders.hpp dcplusplus/trunk/smartwin/include/boost/bind/protect.hpp dcplusplus/trunk/smartwin/include/boost/bind.hpp dcplusplus/trunk/smartwin/include/boost/blank.hpp dcplusplus/trunk/smartwin/include/boost/blank_fwd.hpp dcplusplus/trunk/smartwin/include/boost/call_traits.hpp dcplusplus/trunk/smartwin/include/boost/cast.hpp dcplusplus/trunk/smartwin/include/boost/checked_delete.hpp dcplusplus/trunk/smartwin/include/boost/compressed_pair.hpp dcplusplus/trunk/smartwin/include/boost/concept_archetype.hpp dcplusplus/trunk/smartwin/include/boost/concept_check.hpp dcplusplus/trunk/smartwin/include/boost/config/ dcplusplus/trunk/smartwin/include/boost/config/abi/ dcplusplus/trunk/smartwin/include/boost/config/abi/borland_prefix.hpp dcplusplus/trunk/smartwin/include/boost/config/abi/borland_suffix.hpp dcplusplus/trunk/smartwin/include/boost/config/abi/msvc_prefix.hpp dcplusplus/trunk/smartwin/include/boost/config/abi/msvc_suffix.hpp dcplusplus/trunk/smartwin/include/boost/config/abi_prefix.hpp dcplusplus/trunk/smartwin/include/boost/config/abi_suffix.hpp dcplusplus/trunk/smartwin/include/boost/config/auto_link.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/ dcplusplus/trunk/smartwin/include/boost/config/compiler/borland.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/comeau.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/common_edg.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/compaq_cxx.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/digitalmars.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/gcc.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/greenhills.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/hp_acc.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/intel.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/kai.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/metrowerks.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/mpw.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/sgi_mipspro.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/sunpro_cc.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/vacpp.hpp dcplusplus/trunk/smartwin/include/boost/config/compiler/visualc.hpp dcplusplus/trunk/smartwin/include/boost/config/platform/ dcplusplus/trunk/smartwin/include/boost/config/platform/aix.hpp dcplusplus/trunk/smartwin/include/boost/config/platform/amigaos.hpp dcplusplus/trunk/smartwin/include/boost/config/platform/beos.hpp dcplusplus/trunk/smartwin/include/boost/config/platform/bsd.hpp dcplusplus/trunk/smartwin/include/boost/config/platform/cygwin.hpp dcplusplus/trunk/smartwin/include/boost/config/platform/hpux.hpp dcplusplus/trunk/smartwin/include/boost/config/platform/irix.hpp dcplusplus/trunk/smartwin/include/boost/config/platform/linux.hpp dcplusplus/trunk/smartwin/include/boost/config/platform/macos.hpp dcplusplus/trunk/smartwin/include/boost/config/platform/solaris.hpp dcplusplus/trunk/smartwin/include/boost/config/platform/win32.hpp dcplusplus/trunk/smartwin/include/boost/config/posix_features.hpp dcplusplus/trunk/smartwin/include/boost/config/requires_threads.hpp dcplusplus/trunk/smartwin/include/boost/config/select_compiler_config.hpp dcplusplus/trunk/smartwin/include/boost/config/select_platform_config.hpp dcplusplus/trunk/smartwin/include/boost/config/select_stdlib_config.hpp dcplusplus/trunk/smartwin/include/boost/config/stdlib/ dcplusplus/trunk/smartwin/include/boost/config/stdlib/dinkumware.hpp dcplusplus/trunk/smartwin/include/boost/config/stdlib/libcomo.hpp dcplusplus/trunk/smartwin/include/boost/config/stdlib/libstdcpp3.hpp dcplusplus/trunk/smartwin/include/boost/config/stdlib/modena.hpp dcplusplus/trunk/smartwin/include/boost/config/stdlib/msl.hpp dcplusplus/trunk/smartwin/include/boost/config/stdlib/roguewave.hpp dcplusplus/trunk/smartwin/include/boost/config/stdlib/sgi.hpp dcplusplus/trunk/smartwin/include/boost/config/stdlib/stlport.hpp dcplusplus/trunk/smartwin/include/boost/config/stdlib/vacpp.hpp dcplusplus/trunk/smartwin/include/boost/config/suffix.hpp dcplusplus/trunk/smartwin/include/boost/config/user.hpp dcplusplus/trunk/smartwin/include/boost/config.hpp dcplusplus/trunk/smartwin/include/boost/crc.hpp dcplusplus/trunk/smartwin/include/boost/cregex.hpp dcplusplus/trunk/smartwin/include/boost/cstdint.hpp dcplusplus/trunk/smartwin/include/boost/cstdlib.hpp dcplusplus/trunk/smartwin/include/boost/current_function.hpp dcplusplus/trunk/smartwin/include/boost/detail/ dcplusplus/trunk/smartwin/include/boost/detail/algorithm.hpp dcplusplus/trunk/smartwin/include/boost/detail/allocator_utilities.hpp dcplusplus/trunk/smartwin/include/boost/detail/atomic_count.hpp dcplusplus/trunk/smartwin/include/boost/detail/atomic_count_gcc.hpp dcplusplus/trunk/smartwin/include/boost/detail/atomic_count_linux.hpp dcplusplus/trunk/smartwin/include/boost/detail/atomic_count_pthreads.hpp dcplusplus/trunk/smartwin/include/boost/detail/atomic_count_win32.hpp dcplusplus/trunk/smartwin/include/boost/detail/bad_weak_ptr.hpp dcplusplus/trunk/smartwin/include/boost/detail/binary_search.hpp dcplusplus/trunk/smartwin/include/boost/detail/call_traits.hpp dcplusplus/trunk/smartwin/include/boost/detail/catch_exceptions.hpp dcplusplus/trunk/smartwin/include/boost/detail/compressed_pair.hpp dcplusplus/trunk/smartwin/include/boost/detail/dynamic_bitset.hpp dcplusplus/trunk/smartwin/include/boost/detail/endian.hpp dcplusplus/trunk/smartwin/include/boost/detail/indirect_traits.hpp dcplusplus/trunk/smartwin/include/boost/detail/interlocked.hpp dcplusplus/trunk/smartwin/include/boost/detail/is_function_ref_tester.hpp dcplusplus/trunk/smartwin/include/boost/detail/is_incrementable.hpp dcplusplus/trunk/smartwin/include/boost/detail/is_xxx.hpp dcplusplus/trunk/smartwin/include/boost/detail/iterator.hpp dcplusplus/trunk/smartwin/include/boost/detail/lightweight_mutex.hpp dcplusplus/trunk/smartwin/include/boost/detail/lightweight_test.hpp dcplusplus/trunk/smartwin/include/boost/detail/limits.hpp dcplusplus/trunk/smartwin/include/boost/detail/lwm_gcc.hpp dcplusplus/trunk/smartwin/include/boost/detail/lwm_irix.hpp dcplusplus/trunk/smartwin/include/boost/detail/lwm_linux.hpp dcplusplus/trunk/smartwin/include/boost/detail/lwm_nop.hpp dcplusplus/trunk/smartwin/include/boost/detail/lwm_pthreads.hpp dcplusplus/trunk/smartwin/include/boost/detail/lwm_win32.hpp dcplusplus/trunk/smartwin/include/boost/detail/lwm_win32_cs.hpp dcplusplus/trunk/smartwin/include/boost/detail/lwm_win32_nt.hpp dcplusplus/trunk/smartwin/include/boost/detail/named_template_params.hpp dcplusplus/trunk/smartwin/include/boost/detail/no_exceptions_support.hpp dcplusplus/trunk/smartwin/include/boost/detail/none_t.hpp dcplusplus/trunk/smartwin/include/boost/detail/numeric_traits.hpp dcplusplus/trunk/smartwin/include/boost/detail/ob_call_traits.hpp dcplusplus/trunk/smartwin/include/boost/detail/ob_compressed_pair.hpp dcplusplus/trunk/smartwin/include/boost/detail/quick_allocator.hpp dcplusplus/trunk/smartwin/include/boost/detail/reference_content.hpp dcplusplus/trunk/smartwin/include/boost/detail/select_type.hpp dcplusplus/trunk/smartwin/include/boost/detail/shared_array_nmt.hpp dcplusplus/trunk/smartwin/include/boost/detail/shared_count.hpp dcplusplus/trunk/smartwin/include/boost/detail/shared_ptr_nmt.hpp dcplusplus/trunk/smartwin/include/boost/detail/sp_counted_base.hpp dcplusplus/trunk/smartwin/include/boost/detail/sp_counted_base_cw_ppc.hpp dcplusplus/trunk/smartwin/include/boost/detail/sp_counted_base_cw_x86.hpp dcplusplus/trunk/smartwin/include/boost/detail/sp_counted_base_gcc_ia64.hpp dcplusplus/trunk/smartwin/include/boost/detail/sp_counted_base_gcc_ppc.hpp dcplusplus/trunk/smartwin/include/boost/detail/sp_counted_base_gcc_x86.hpp dcplusplus/trunk/smartwin/include/boost/detail/sp_counted_base_nt.hpp dcplusplus/trunk/smartwin/include/boost/detail/sp_counted_base_pt.hpp dcplusplus/trunk/smartwin/include/boost/detail/sp_counted_base_w32.hpp dcplusplus/trunk/smartwin/include/boost/detail/sp_counted_impl.hpp dcplusplus/trunk/smartwin/include/boost/detail/templated_streams.hpp dcplusplus/trunk/smartwin/include/boost/detail/utf8_codecvt_facet.hpp dcplusplus/trunk/smartwin/include/boost/detail/workaround.hpp dcplusplus/trunk/smartwin/include/boost/dynamic_bitset.hpp dcplusplus/trunk/smartwin/include/boost/dynamic_bitset_fwd.hpp dcplusplus/trunk/smartwin/include/boost/dynamic_property_map.hpp dcplusplus/trunk/smartwin/include/boost/enable_shared_from_this.hpp dcplusplus/trunk/smartwin/include/boost/format.hpp dcplusplus/trunk/smartwin/include/boost/function/ dcplusplus/trunk/smartwin/include/boost/function/detail/ dcplusplus/trunk/smartwin/include/boost/function/detail/function_iterate.hpp dcplusplus/trunk/smartwin/include/boost/function/detail/gen_maybe_include.pl dcplusplus/trunk/smartwin/include/boost/function/detail/maybe_include.hpp dcplusplus/trunk/smartwin/include/boost/function/detail/prologue.hpp dcplusplus/trunk/smartwin/include/boost/function/function0.hpp dcplusplus/trunk/smartwin/include/boost/function/function1.hpp dcplusplus/trunk/smartwin/include/boost/function/function10.hpp dcplusplus/trunk/smartwin/include/boost/function/function2.hpp dcplusplus/trunk/smartwin/include/boost/function/function3.hpp dcplusplus/trunk/smartwin/include/boost/function/function4.hpp dcplusplus/trunk/smartwin/include/boost/function/function5.hpp dcplusplus/trunk/smartwin/include/boost/function/function6.hpp dcplusplus/trunk/smartwin/include/boost/function/function7.hpp dcplusplus/trunk/smartwin/include/boost/function/function8.hpp dcplusplus/trunk/smartwin/include/boost/function/function9.hpp dcplusplus/trunk/smartwin/include/boost/function/function_base.hpp dcplusplus/trunk/smartwin/include/boost/function/function_template.hpp dcplusplus/trunk/smartwin/include/boost/function/gen_function_N.pl dcplusplus/trunk/smartwin/include/boost/function.hpp dcplusplus/trunk/smartwin/include/boost/function_equal.hpp dcplusplus/trunk/smartwin/include/boost/function_output_iterator.hpp dcplusplus/trunk/smartwin/include/boost/functional.hpp dcplusplus/trunk/smartwin/include/boost/generator_iterator.hpp dcplusplus/trunk/smartwin/include/boost/get_pointer.hpp dcplusplus/trunk/smartwin/include/boost/implicit_cast.hpp dcplusplus/trunk/smartwin/include/boost/indirect_reference.hpp dcplusplus/trunk/smartwin/include/boost/integer.hpp dcplusplus/trunk/smartwin/include/boost/integer_fwd.hpp dcplusplus/trunk/smartwin/include/boost/integer_traits.hpp dcplusplus/trunk/smartwin/include/boost/intrusive_ptr.hpp dcplusplus/trunk/smartwin/include/boost/io_fwd.hpp dcplusplus/trunk/smartwin/include/boost/iterator/ dcplusplus/trunk/smartwin/include/boost/iterator/counting_iterator.hpp dcplusplus/trunk/smartwin/include/boost/iterator/detail/ dcplusplus/trunk/smartwin/include/boost/iterator/detail/any_conversion_eater.hpp dcplusplus/trunk/smartwin/include/boost/iterator/detail/config_def.hpp dcplusplus/trunk/smartwin/include/boost/iterator/detail/config_undef.hpp dcplusplus/trunk/smartwin/include/boost/iterator/detail/enable_if.hpp dcplusplus/trunk/smartwin/include/boost/iterator/detail/facade_iterator_category.hpp dcplusplus/trunk/smartwin/include/boost/iterator/detail/minimum_category.hpp dcplusplus/trunk/smartwin/include/boost/iterator/filter_iterator.hpp dcplusplus/trunk/smartwin/include/boost/iterator/indirect_iterator.hpp dcplusplus/trunk/smartwin/include/boost/iterator/interoperable.hpp dcplusplus/trunk/smartwin/include/boost/iterator/is_lvalue_iterator.hpp dcplusplus/trunk/smartwin/include/boost/iterator/is_readable_iterator.hpp dcplusplus/trunk/smartwin/include/boost/iterator/iterator_adaptor.hpp dcplusplus/trunk/smartwin/include/boost/iterator/iterator_archetypes.hpp dcplusplus/trunk/smartwin/include/boost/iterator/iterator_categories.hpp dcplusplus/trunk/smartwin/include/boost/iterator/iterator_concepts.hpp dcplusplus/trunk/smartwin/include/boost/iterator/iterator_facade.hpp dcplusplus/trunk/smartwin/include/boost/iterator/iterator_traits.hpp dcplusplus/trunk/smartwin/include/boost/iterator/new_iterator_tests.hpp dcplusplus/trunk/smartwin/include/boost/iterator/permutation_iterator.hpp dcplusplus/trunk/smartwin/include/boost/iterator/reverse_iterator.hpp dcplusplus/trunk/smartwin/include/boost/iterator/transform_iterator.hpp dcplusplus/trunk/smartwin/include/boost/iterator/zip_iterator.hpp dcplusplus/trunk/smartwin/include/boost/iterator.hpp dcplusplus/trunk/smartwin/include/boost/iterator_adaptors.hpp dcplusplus/trunk/smartwin/include/boost/last_value.hpp dcplusplus/trunk/smartwin/include/boost/lexical_cast.hpp dcplusplus/trunk/smartwin/include/boost/limits.hpp dcplusplus/trunk/smartwin/include/boost/math_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mem_fn.hpp dcplusplus/trunk/smartwin/include/boost/mpl/ dcplusplus/trunk/smartwin/include/boost/mpl/O1_size.hpp dcplusplus/trunk/smartwin/include/boost/mpl/O1_size_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/accumulate.hpp dcplusplus/trunk/smartwin/include/boost/mpl/advance.hpp dcplusplus/trunk/smartwin/include/boost/mpl/advance_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/alias.hpp dcplusplus/trunk/smartwin/include/boost/mpl/always.hpp dcplusplus/trunk/smartwin/include/boost/mpl/and.hpp dcplusplus/trunk/smartwin/include/boost/mpl/apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/apply_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/apply_wrap.hpp dcplusplus/trunk/smartwin/include/boost/mpl/arg.hpp dcplusplus/trunk/smartwin/include/boost/mpl/arg_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/arithmetic.hpp dcplusplus/trunk/smartwin/include/boost/mpl/as_sequence.hpp dcplusplus/trunk/smartwin/include/boost/mpl/assert.hpp dcplusplus/trunk/smartwin/include/boost/mpl/at.hpp dcplusplus/trunk/smartwin/include/boost/mpl/at_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/O1_size_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/adl_barrier.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/advance_backward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/advance_forward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/apply_1st.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/arg_typedef.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/arithmetic_op.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/arity.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/arity_spec.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/at_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/back_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/basic_bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/begin_end_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/clear_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/common_name_wknd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/comparison_op.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/adl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/arrays.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/compiler.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/dependent_nttp.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/dmc_ambiguous_ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/dtp.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/eti.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/forwarding.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/gcc.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/has_apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/has_xxx.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/integral.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/intel.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/lambda.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/msvc.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/msvc_typename.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/nttp.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/operators.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/overload_resolution.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/preprocessor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/static_constant.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/ttp.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/typeof.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/use_preprocessed.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/config/workaround.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/contains_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/count_args.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/count_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/empty_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/erase_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/erase_key_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/filter_iter.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/find_if_pred.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/fold_impl_body.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/fold_op.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/fold_pred.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/front_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/full_lambda.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/has_apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/has_begin.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/has_key_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/has_rebind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/has_size.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/has_tag.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/has_type.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/include_preprocessed.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/insert_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/insert_range_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/inserter_algorithm.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/integral_wrapper.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/is_msvc_eti_arg.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/iter_apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/iter_fold_if_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/iter_push_front.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/joint_iter.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/lambda_arity_param.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/lambda_no_ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/lambda_spec.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/lambda_support.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/largest_int.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/logical_op.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/msvc_dtw.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/msvc_eti_base.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/msvc_is_class.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/msvc_never_true.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/msvc_type.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/na.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/na_assert.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/na_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/na_spec.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/nested_type_wknd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/nttp_decl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/numeric_cast_utils.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/numeric_op.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/order_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/overload_names.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/partition_op.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/pop_back_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/pop_front_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/and.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/apply_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/apply_wrap.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/arg.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/bind_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/bitand.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/bitor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/bitxor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/deque.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/divides.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/greater.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/greater_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/inherit.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/less.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/list.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/list_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/map.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/minus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/modulus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/or.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/plus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/quote.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/set.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/set_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/template_arity.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/times.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/unpack_args.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/vector.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/advance_backward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/advance_forward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/and.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/apply_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/apply_wrap.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/arg.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/basic_bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/bind_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/bitand.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/bitor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/bitxor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/deque.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/divides.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/full_lambda.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/greater.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/greater_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/inherit.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/less.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/list.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/map.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/minus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/or.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/plus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/quote.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/set.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/template_arity.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/times.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/unpack_args.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/vector.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/bcc551/vector_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/advance_backward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/advance_forward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/and.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/apply_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/apply_wrap.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/arg.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/basic_bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/bind_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/bitand.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/bitor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/bitxor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/deque.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/divides.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/full_lambda.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/greater.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/greater_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/inherit.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/less.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/list.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/list_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/map.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/minus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/modulus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/or.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/plus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/quote.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/set.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/set_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/template_arity.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/times.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/unpack_args.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/vector.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/dmc/vector_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/and.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/arg.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/bitand.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/bitor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/bitxor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/deque.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/divides.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/greater.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/inherit.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/less.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/list.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/list_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/map.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/minus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/modulus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/or.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/plus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/quote.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/set.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/set_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/times.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/unpack_args.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/vector.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/and.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/apply_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/apply_wrap.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/arg.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/bind_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/bitand.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/bitor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/bitxor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/deque.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/divides.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/greater.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/greater_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/inherit.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/less.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/list.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/map.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/minus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/or.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/plus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/quote.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/set.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/template_arity.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/times.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/unpack_args.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/vector.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/and.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/apply_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/apply_wrap.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/arg.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/bind_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/bitand.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/bitor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/bitxor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/deque.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/divides.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/greater.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/greater_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/inherit.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/less.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/list.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/map.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/minus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/or.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/plus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/quote.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/set.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/template_arity.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/times.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/unpack_args.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/vector.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/and.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/apply_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/apply_wrap.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/arg.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/bind_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/bitand.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/bitor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/bitxor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/deque.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/divides.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/greater.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/greater_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/inherit.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/less.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/list.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/map.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/minus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/or.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/plus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/quote.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/set.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/template_arity.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/times.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/unpack_args.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/vector.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/and.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/apply_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/apply_wrap.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/bind_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/bitand.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/bitor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/bitxor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/deque.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/divides.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/greater.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/greater_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/inherit.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/less.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/list.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/map.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/or.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/set.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/template_arity.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/times.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/unpack_args.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/ dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/advance_backward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/advance_forward.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/and.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/apply.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/apply_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/apply_wrap.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/arg.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/basic_bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/bind.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/bind_fwd.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/bitand.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/bitor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/bitxor.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/deque.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/divides.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/full_lambda.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/greater.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/greater_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/inherit.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/less.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/list.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/map.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/or.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/set.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp dcplusplus/trunk/smartwin/include/boost/mpl/aux_/p... [truncated message content] |
From: <arn...@us...> - 2007-03-04 23:44:58
|
Revision: 711 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=711&view=rev Author: arnetheduck Date: 2007-03-04 15:44:57 -0800 (Sun, 04 Mar 2007) Log Message: ----------- remove old gui, beginnings of system frame Modified Paths: -------------- dcplusplus/trunk/client/Pointer.h dcplusplus/trunk/client/User.h dcplusplus/trunk/win32/MainWindow.cpp dcplusplus/trunk/win32/MainWindow.h dcplusplus/trunk/win32/SystemFrame.cpp dcplusplus/trunk/win32/SystemFrame.h dcplusplus/trunk/win32/WinUtil.h dcplusplus/trunk/win32/resource.h Added Paths: ----------- dcplusplus/trunk/client/forward.h dcplusplus/trunk/win32/MDIChildFrame.h dcplusplus/trunk/win32/StaticFrame.h dcplusplus/trunk/win32/StupidWin.h Removed Paths: ------------- dcplusplus/trunk/windows/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-03-03 15:37:41
|
Revision: 710 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=710&view=rev Author: arnetheduck Date: 2007-03-03 07:37:38 -0800 (Sat, 03 Mar 2007) Log Message: ----------- namespace fix Modified Paths: -------------- dcplusplus/trunk/win32/MainWindow.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-03-03 07:54:15
|
Revision: 709 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=709&view=rev Author: arnetheduck Date: 2007-03-02 23:54:12 -0800 (Fri, 02 Mar 2007) Log Message: ----------- Some menu work Modified Paths: -------------- dcplusplus/trunk/client/DCPlusPlus.h dcplusplus/trunk/win32/MainWindow.cpp dcplusplus/trunk/win32/MainWindow.h dcplusplus/trunk/win32/SplashWindow.cpp dcplusplus/trunk/win32/WinUtil.cpp dcplusplus/trunk/win32/main.cpp dcplusplus/trunk/win32/resource.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-03-02 17:03:57
|
Revision: 708 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=708&view=rev Author: arnetheduck Date: 2007-03-02 09:03:49 -0800 (Fri, 02 Mar 2007) Log Message: ----------- Splash screen (starting with the important stuff =) Modified Paths: -------------- dcplusplus/trunk/SConstruct dcplusplus/trunk/build_util.py dcplusplus/trunk/bzip2/bzip2.c dcplusplus/trunk/client/DCPlusPlus.cpp dcplusplus/trunk/client/SConscript dcplusplus/trunk/client/stdinc.h dcplusplus/trunk/win32/MainWindow.cpp dcplusplus/trunk/win32/MainWindow.h dcplusplus/trunk/win32/SConscript dcplusplus/trunk/win32/WinUtil.cpp dcplusplus/trunk/win32/WinUtil.h dcplusplus/trunk/win32/main.cpp dcplusplus/trunk/win32/stdafx.h Added Paths: ----------- dcplusplus/trunk/win32/SplashWindow.cpp dcplusplus/trunk/win32/SplashWindow.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-02-28 13:21:22
|
Revision: 707 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=707&view=rev Author: arnetheduck Date: 2007-02-28 05:21:11 -0800 (Wed, 28 Feb 2007) Log Message: ----------- more build fixes Modified Paths: -------------- dcplusplus/trunk/SConstruct dcplusplus/trunk/win32/MainWindow.h This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-02-28 12:58:51
|
Revision: 706 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=706&view=rev Author: arnetheduck Date: 2007-02-28 04:58:46 -0800 (Wed, 28 Feb 2007) Log Message: ----------- pch only for gcc for now Modified Paths: -------------- dcplusplus/trunk/client/SConscript This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-02-28 12:58:05
|
Revision: 705 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=705&view=rev Author: arnetheduck Date: 2007-02-28 04:58:02 -0800 (Wed, 28 Feb 2007) Log Message: ----------- no fvisibility if not needed Modified Paths: -------------- dcplusplus/trunk/SConstruct This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-02-28 12:56:12
|
Revision: 704 http://dcplusplus.svn.sourceforge.net/dcplusplus/?rev=704&view=rev Author: arnetheduck Date: 2007-02-28 04:56:10 -0800 (Wed, 28 Feb 2007) Log Message: ----------- build script fixes Modified Paths: -------------- dcplusplus/trunk/SConstruct dcplusplus/trunk/bzip2/SConscript dcplusplus/trunk/client/SConscript dcplusplus/trunk/client/stdinc.h dcplusplus/trunk/win32/MainWindow.cpp dcplusplus/trunk/win32/SConscript dcplusplus/trunk/win32/SingleInstance.h dcplusplus/trunk/win32/WinUtil.cpp dcplusplus/trunk/win32/WinUtil.h dcplusplus/trunk/win32/main.cpp dcplusplus/trunk/win32/stdafx.h dcplusplus/trunk/yassl/SConscript dcplusplus/trunk/yassl/src/SConscript dcplusplus/trunk/yassl/taocrypt/src/SConscript dcplusplus/trunk/zlib/SConscript This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-02-27 10:24:52
|
Revision: 702 http://svn.sourceforge.net/dcplusplus/?rev=702&view=rev Author: arnetheduck Date: 2007-02-27 02:24:50 -0800 (Tue, 27 Feb 2007) Log Message: ----------- forgot this Added Paths: ----------- dcplusplus/trunk/yassl/SConscript Added: dcplusplus/trunk/yassl/SConscript =================================================================== --- dcplusplus/trunk/yassl/SConscript (rev 0) +++ dcplusplus/trunk/yassl/SConscript 2007-02-27 10:24:50 UTC (rev 702) @@ -0,0 +1,15 @@ +# vim: set filetype=py + +Import('dev source_path') + +dev.build('src/') +dev.build('taocrypt/src/') + +env, target, sources = dev.prepare_build(source_path, 'dcpp-yassl', in_bin=False) + +env.Append(LIBS=['dcpp-yassl-src', 'dcpp-yassl-taocrypt']) +ret = env.StaticLibrary(target, sources) + +dev.env.Append(LIBPATH = [dev.get_build_path(source_path)]) + +Return('ret') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2007-02-27 09:39:08
|
Revision: 701 http://svn.sourceforge.net/dcplusplus/?rev=701&view=rev Author: arnetheduck Date: 2007-02-27 01:39:02 -0800 (Tue, 27 Feb 2007) Log Message: ----------- beginnings of smartwin port Modified Paths: -------------- dcplusplus/trunk/Doxyfile dcplusplus/trunk/License.txt dcplusplus/trunk/client/ClientManager.h dcplusplus/trunk/client/CryptoManager.cpp dcplusplus/trunk/client/DCPlusPlus.h dcplusplus/trunk/client/File.cpp dcplusplus/trunk/client/HashManager.cpp dcplusplus/trunk/client/Thread.h dcplusplus/trunk/client/Util.cpp dcplusplus/trunk/client/stdinc.cpp dcplusplus/trunk/client/stdinc.h dcplusplus/trunk/yassl/src/crypto_wrapper.cpp dcplusplus/trunk/yassl/src/handshake.cpp dcplusplus/trunk/yassl/src/ssl.cpp dcplusplus/trunk/yassl/src/yassl_imp.cpp dcplusplus/trunk/yassl/taocrypt/src/asn.cpp Added Paths: ----------- dcplusplus/trunk/SConstruct dcplusplus/trunk/build_util.py dcplusplus/trunk/bzip2/SConscript dcplusplus/trunk/client/SConscript dcplusplus/trunk/gch.py dcplusplus/trunk/smartwin/ dcplusplus/trunk/stlport/ dcplusplus/trunk/win32/ dcplusplus/trunk/win32/ADLSProperties.cpp dcplusplus/trunk/win32/ADLSProperties.h dcplusplus/trunk/win32/ADLSearchFrame.cpp dcplusplus/trunk/win32/ADLSearchFrame.h dcplusplus/trunk/win32/AboutDlg.h dcplusplus/trunk/win32/Advanced3Page.cpp dcplusplus/trunk/win32/Advanced3Page.h dcplusplus/trunk/win32/AdvancedPage.cpp dcplusplus/trunk/win32/AdvancedPage.h dcplusplus/trunk/win32/Appearance2Page.cpp dcplusplus/trunk/win32/Appearance2Page.h dcplusplus/trunk/win32/AppearancePage.cpp dcplusplus/trunk/win32/AppearancePage.h dcplusplus/trunk/win32/CertificatesPage.cpp dcplusplus/trunk/win32/CertificatesPage.h dcplusplus/trunk/win32/CommandDlg.cpp dcplusplus/trunk/win32/CommandDlg.h dcplusplus/trunk/win32/DirectoryListingFrm.cpp dcplusplus/trunk/win32/DirectoryListingFrm.h dcplusplus/trunk/win32/DownloadPage.cpp dcplusplus/trunk/win32/DownloadPage.h dcplusplus/trunk/win32/ExListViewCtrl.cpp dcplusplus/trunk/win32/ExListViewCtrl.h dcplusplus/trunk/win32/ExtendedTrace.cpp dcplusplus/trunk/win32/ExtendedTrace.h dcplusplus/trunk/win32/FavHubProperties.cpp dcplusplus/trunk/win32/FavHubProperties.h dcplusplus/trunk/win32/FavoriteDirsPage.cpp dcplusplus/trunk/win32/FavoriteDirsPage.h dcplusplus/trunk/win32/FavoritesFrm.cpp dcplusplus/trunk/win32/FavoritesFrm.h dcplusplus/trunk/win32/FinishedFrame.cpp dcplusplus/trunk/win32/FinishedFrame.h dcplusplus/trunk/win32/FinishedFrameBase.h dcplusplus/trunk/win32/FinishedULFrame.cpp dcplusplus/trunk/win32/FinishedULFrame.h dcplusplus/trunk/win32/FlatTabCtrl.h dcplusplus/trunk/win32/GeneralPage.cpp dcplusplus/trunk/win32/GeneralPage.h dcplusplus/trunk/win32/HashProgressDlg.h dcplusplus/trunk/win32/HubFrame.cpp dcplusplus/trunk/win32/HubFrame.h dcplusplus/trunk/win32/LineDlg.h dcplusplus/trunk/win32/ListViewArrows.h dcplusplus/trunk/win32/LogPage.cpp dcplusplus/trunk/win32/LogPage.h dcplusplus/trunk/win32/MagnetDlg.h dcplusplus/trunk/win32/MainFrm.cpp dcplusplus/trunk/win32/MainFrm.h dcplusplus/trunk/win32/MemDC.h dcplusplus/trunk/win32/NetworkPage.cpp dcplusplus/trunk/win32/NetworkPage.h dcplusplus/trunk/win32/NotepadFrame.cpp dcplusplus/trunk/win32/NotepadFrame.h dcplusplus/trunk/win32/PrivateFrame.cpp dcplusplus/trunk/win32/PrivateFrame.h dcplusplus/trunk/win32/PropPage.cpp dcplusplus/trunk/win32/PropPage.h dcplusplus/trunk/win32/PropertiesDlg.cpp dcplusplus/trunk/win32/PropertiesDlg.h dcplusplus/trunk/win32/PublicHubsFrm.cpp dcplusplus/trunk/win32/PublicHubsFrm.h dcplusplus/trunk/win32/PublicHubsListDlg.h dcplusplus/trunk/win32/QueueFrame.cpp dcplusplus/trunk/win32/QueueFrame.h dcplusplus/trunk/win32/QueuePage.cpp dcplusplus/trunk/win32/QueuePage.h dcplusplus/trunk/win32/SConscript dcplusplus/trunk/win32/SearchFrm.cpp dcplusplus/trunk/win32/SearchFrm.h dcplusplus/trunk/win32/ShellContextMenu.cpp dcplusplus/trunk/win32/ShellContextMenu.h dcplusplus/trunk/win32/SingleInstance.h dcplusplus/trunk/win32/SpyFrame.cpp dcplusplus/trunk/win32/SpyFrame.h dcplusplus/trunk/win32/StatsFrame.cpp dcplusplus/trunk/win32/StatsFrame.h dcplusplus/trunk/win32/SystemFrame.cpp dcplusplus/trunk/win32/SystemFrame.h dcplusplus/trunk/win32/TabsPage.cpp dcplusplus/trunk/win32/TabsPage.h dcplusplus/trunk/win32/TextFrame.cpp dcplusplus/trunk/win32/TextFrame.h dcplusplus/trunk/win32/TransferView.cpp dcplusplus/trunk/win32/TransferView.h dcplusplus/trunk/win32/TreePropertySheet.cpp dcplusplus/trunk/win32/TreePropertySheet.h dcplusplus/trunk/win32/TypedListViewCtrl.h dcplusplus/trunk/win32/UCHandler.h dcplusplus/trunk/win32/UCPage.cpp dcplusplus/trunk/win32/UCPage.h dcplusplus/trunk/win32/UPnP.cpp dcplusplus/trunk/win32/UPnP.h dcplusplus/trunk/win32/UploadPage.cpp dcplusplus/trunk/win32/UploadPage.h dcplusplus/trunk/win32/UsersFrame.cpp dcplusplus/trunk/win32/UsersFrame.h dcplusplus/trunk/win32/WaitingUsersFrame.cpp dcplusplus/trunk/win32/WaitingUsersFrame.h dcplusplus/trunk/win32/WinUtil.cpp dcplusplus/trunk/win32/WinUtil.h dcplusplus/trunk/win32/WindowsPage.cpp dcplusplus/trunk/win32/WindowsPage.h dcplusplus/trunk/win32/main.cpp dcplusplus/trunk/win32/resource.h dcplusplus/trunk/win32/stdafx.cpp dcplusplus/trunk/win32/stdafx.h dcplusplus/trunk/yassl/src/SConscript dcplusplus/trunk/yassl/taocrypt/src/SConscript dcplusplus/trunk/zlib/SConscript Property Changed: ---------------- dcplusplus/trunk/ dcplusplus/trunk/client/ Property changes on: dcplusplus/trunk ___________________________________________________________________ Name: svn:ignore - vc7 ADC* App* DCPlusPlus.aps DCPlusPlus.ncb DCPlusPlus.suo .* *.vcproj.* Example.xml + vc7 ADC* App* DCPlusPlus.aps DCPlusPlus.ncb DCPlusPlus.suo .* *.vcproj.* Example.xml build Modified: dcplusplus/trunk/Doxyfile =================================================================== --- dcplusplus/trunk/Doxyfile 2006-12-27 22:45:57 UTC (rev 700) +++ dcplusplus/trunk/Doxyfile 2007-02-27 09:39:02 UTC (rev 701) @@ -1,4 +1,4 @@ -# Doxyfile 1.4.2 +# Doxyfile 1.4.7 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project @@ -161,13 +161,6 @@ INHERIT_DOCS = YES -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. - -DISTRIBUTE_GROUP_DOC = NO - # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. @@ -195,13 +188,29 @@ OPTIMIZE_OUTPUT_FOR_C = NO -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources -# only. Doxygen will then generate output that is more tailored for Java. +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. # For instance, namespaces will be presented as packages, qualified scopes # will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to @@ -376,7 +385,7 @@ # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy -# in the documentation. +# in the documentation. The default is NO. SHOW_DIRECTORIES = YES @@ -385,7 +394,7 @@ # version control system). Doxygen will invoke the program by executing (via # popen()) the command <command> <input-file>, where <command> is the value of # the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file -# provided by doxygen. Whatever the progam writes to standard output +# provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = @@ -458,7 +467,7 @@ # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py FILE_PATTERNS = @@ -482,7 +491,9 @@ # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* EXCLUDE_PATTERNS = @@ -571,6 +582,21 @@ REFERENCES_RELATION = YES +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentstion. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. @@ -957,7 +983,7 @@ # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the -# PREDEFINED and EXPAND_AS_PREDEFINED tags. +# PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = YES @@ -970,9 +996,7 @@ # contain include files that are not input files but should be processed by # the preprocessor. -INCLUDE_PATH = c:\documents\vcprojects\include\wtl70 \ - c:\documents\vcprojects\include\stlport \ - c:\documents\vcprojects\include +INCLUDE_PATH = wtl # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the @@ -1130,6 +1154,14 @@ CALL_GRAPH = YES +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will +# generate a caller dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable caller graphs for selected +# functions only using the \callergraph command. + +CALLER_GRAPH = YES + # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. Modified: dcplusplus/trunk/License.txt =================================================================== --- dcplusplus/trunk/License.txt 2006-12-27 22:45:57 UTC (rev 700) +++ dcplusplus/trunk/License.txt 2007-02-27 09:39:02 UTC (rev 701) @@ -1,5 +1,5 @@ DC++ -Copyright (C) 2001-2004 Jacek Sieka, j_s at telia com +Copyright (C) 2001-2006 Jacek Sieka, arnetheduck at gmail dot com This program is licensed under GPL-2 with the notable exception that you may compile it with WTL (sf.net/projects/wtl). Added: dcplusplus/trunk/SConstruct =================================================================== --- dcplusplus/trunk/SConstruct (rev 0) +++ dcplusplus/trunk/SConstruct 2007-02-27 09:39:02 UTC (rev 701) @@ -0,0 +1,121 @@ +# vim: set filetype: py + +from build_util import Dev + +gcc_flags = { + 'common': ['-ggdb3', '-Wall', '-Wextra', '-pipe'], + 'debug': [], + 'release' : ['-O3'] +} + +msvc_flags = { + 'common' : ['/W4', '/EHsc', '/Zi', '/GR'], + 'debug' : ['/MD'], + 'release' : ['/O2', '/MD'] +} + +gcc_link_flags = { + 'common' : ['-ggdb3', '-Wl,--no-undefined'], + 'debug' : [], + 'release' : [] +} + +msvc_link_flags = { + 'common' : ['/DEBUG', '/FIXED:NO', '/INCREMENTAL:NO'], + 'debug' : [], + 'release' : [] +} + +msvc_defs = { + 'common' : ['_REENTRANT', 'USE_SYS_STL=1'], + 'debug' : [''], + 'release' : ['NDEBUG'] +} + +gcc_defs = { + 'common' : ['_REENTRANT', 'USE_SYS_STL=1'], + 'debug' : ['_DEBUG'], + 'release' : ['NDEBUG'] +} + +# --- cut --- + +import os,sys + +if sys.platform == 'win32': + tooldef = 'mingw' +else: + tooldef = 'default' + +mode = ARGUMENTS.get('mode', 'debug') +tools = ARGUMENTS.get('tools', tooldef) + +if mode not in gcc_flags: + print "Unknown mode, exiting" + Exit(1) + +toolset = [tools, 'swig'] + +env = Environment(tools = toolset, ENV=os.environ) + +dev = Dev(mode, tools, env) +dev.prepare() + +env.SConsignFile() +env.Tool("gch", toolpath=".") + +if 'mingw' not in env['TOOLS']: + env.Append(CCFLAGS=['-fvisibility=hidden']) + +if 'mingw' in env['TOOLS']: + env.Append(CPPPATH = ['#/stlport/stlport/']) + #env.Append(LIBPATH = ['#/stlport/lib/']) + env.Append(CPPDEFINES = ['HAVE_STLPORT']) + + gcc_link_flags['common'].append("-Wl,--enable-runtime-pseudo-reloc") + #if mode == 'debug': + # env.Append(LIBS = ['stlportg.5.0']) + #else: + # env.Append(LIBS = ['stlport.5.0']) + +if env['CC'] == 'cl': + flags = msvc_flags + link_flags = msvc_link_flags + defs = msvc_defs + + # This is for msvc8 + # Embed generated manifest in file + env['SHLINKCOM'] = [env['SHLINKCOM'], 'mt.exe -manifest ${TARGET}.manifest -outputresource:$TARGET;2'] + env['LINKCOM'] = [env['LINKCOM'], 'mt.exe -manifest ${TARGET}.manifest -outputresource:$TARGET;1'] +else: + flags = gcc_flags + link_flags = gcc_link_flags + defs = gcc_defs + +env.Append(CPPDEFINES = defs[mode]) +env.Append(CPPDEFINES = defs['common']) + +env.Append(CCFLAGS = flags[mode]) +env.Append(CCFLAGS = flags['common']) + +env.Append(LINKFLAGS = link_flags[mode]) +env.Append(LINKFLAGS = link_flags['common']) + +env.SourceCode('.', None) +env.SetOption('implicit_cache', '1') +env.SetOption('max_drift', 60*10) + +import SCons.Scanner +SWIGScanner = SCons.Scanner.ClassicCPP( + "SWIGScan", + ".i", + "CPPPATH", + '^[ \t]*[%,#][ \t]*(?:include|import)[ \t]*(<|")([^>"]+)(>|")' +) +env.Append(SCANNERS=[SWIGScanner]) + +dev.build('zlib/') +dev.build('bzip2/') +dev.build('yassl/') +dev.build('client/') +dev.build('win32/') Added: dcplusplus/trunk/build_util.py =================================================================== --- dcplusplus/trunk/build_util.py (rev 0) +++ dcplusplus/trunk/build_util.py 2007-02-27 09:39:02 UTC (rev 701) @@ -0,0 +1,83 @@ +import glob +import sys + +class Dev: + def __init__(self, mode, tools, env): + + self.mode = mode + self.tools = tools + self.env = env + + def prepare(self): + self.env['CCCOMSTR'] = "Compiling $TARGET (static)" + self.env['SHCCCOMSTR'] = "Compiling $TARGET (shared)" + self.env['CXXCOMSTR'] = "Compiling $TARGET (static)" + self.env['SHCXXCOMSTR'] = "Compiling $TARGET (shared)" + #self.env['SHLINKCOMSTR'] = "Linking $TARGET (shared)" + #self.env['LINKCOMSTR'] = "Linking $TARGET (static)" + self.env['ARCOMSTR'] = "Archiving $TARGET" + + self.env.SConsignFile() + self.env.SetOption('implicit_cache', '1') + self.env.SetOption('max_drift', 60*10) + + if 'mingw' in self.env['TOOLS']: + self.env.Append(LINKFLAGS=["-Wl,--enable-runtime-pseudo-reloc"]) + + if sys.platform != 'win32': + if self.env.get('MINGW_PREFIX') is not None: + prefix = self.env['MINGW_PREFIX'] + else: + prefix = 'i386-mingw32' + self.env['CC'] = prefix + '-gcc' + self.env['CXX'] = prefix + '-g++' + self.env['LINK'] = prefix + '-g++' + self.env['AR'] = prefix + '-ar' + self.env['RANLIB'] = prefix + '-ranlib' + self.env['PROGSUFFIX'] = '.exe' + self.env['LIBPREFIX'] = 'lib' + self.env['LIBSUFFIX'] = '.a' + + def get_build_root(self): + return '#/build/' + self.mode + '-' + self.tools + '/' + + def get_build_path(self, source_path): + return self.get_build_root() + source_path + + def get_target(self, source_path, name, in_bin = True): + if in_bin: + return self.get_build_root() + 'bin/' + name + else: + return self.get_build_root() + source_path + name + + def get_sources(self, source_path, source_glob): + return map(lambda x: self.get_build_path(source_path) + x, glob.glob(source_glob)) + + def prepare_build(self, source_path, name, source_glob = '*.cpp', in_bin = True): + local_env = self.env.Copy() + + local_env.BuildDir(self.get_build_path(source_path), '.', duplicate = 0) + + return (local_env, self.get_target(source_path, name, in_bin), self.get_sources(source_path, source_glob)) + + def build(self, source_path, local_env = None): + if not local_env: + local_env = self.env + full_path = local_env.Dir('.').path + '/' + source_path + return local_env.SConscript(source_path + 'SConscript', exports={'dev' : self, 'source_path' : full_path }) + +def CheckPKGConfig(context, version): + context.Message( 'Checking for pkg-config... ' ) + ret = context.TryAction('pkg-config --atleast-pkgconfig-version=%s' % version)[0] + context.Result( ret ) + return ret + +def CheckPKG(context, name): + context.Message( 'Checking for %s... ' % name ) + ret = context.TryAction('pkg-config --exists "%s"' % name)[0] + if ret: + context.env.ParseConfig('pkg-config --cflags --libs "%s"' % name) + + context.Result( ret ) + return ret + Added: dcplusplus/trunk/bzip2/SConscript =================================================================== --- dcplusplus/trunk/bzip2/SConscript (rev 0) +++ dcplusplus/trunk/bzip2/SConscript 2007-02-27 09:39:02 UTC (rev 701) @@ -0,0 +1,11 @@ +# vim: set filetype=py + +Import('dev source_path') + +env, target, sources = dev.prepare_build(source_path, 'dcpp-bzip', in_bin=False) + +ret = env.StaticLibrary(target, sources) + +dev.env.Append(LIBPATH = [dev.get_build_path(source_path)]) + +Return('ret') Property changes on: dcplusplus/trunk/client ___________________________________________________________________ Name: svn:ignore - StringDefs.cpp + StringDefs.cpp stdinc.h.gch Modified: dcplusplus/trunk/client/ClientManager.h =================================================================== --- dcplusplus/trunk/client/ClientManager.h 2006-12-27 22:45:57 UTC (rev 700) +++ dcplusplus/trunk/client/ClientManager.h 2007-02-27 09:39:02 UTC (rev 701) @@ -28,6 +28,7 @@ #include "Client.h" #include "Singleton.h" #include "SettingsManager.h" +#include "User.h" #include "ClientManagerListener.h" Modified: dcplusplus/trunk/client/CryptoManager.cpp =================================================================== --- dcplusplus/trunk/client/CryptoManager.cpp 2006-12-27 22:45:57 UTC (rev 700) +++ dcplusplus/trunk/client/CryptoManager.cpp 2007-02-27 09:39:02 UTC (rev 701) @@ -104,23 +104,23 @@ } #ifdef _WIN32 - wstring cmd = L"openssl.exe genrsa -out \"" + Text::utf8ToWide(SETTING(TLS_PRIVATE_KEY_FILE)) + L"\" 2048"; + tstring cmd = _T("openssl.exe genrsa -out \"") + Text::toT(SETTING(TLS_PRIVATE_KEY_FILE)) + _T("\" 2048"); PROCESS_INFORMATION pi = { 0 }; STARTUPINFO si = { 0 }; si.cb = sizeof(si); - if(!CreateProcess(0, const_cast<wchar_t*>(cmd.c_str()), 0, 0, FALSE, 0, 0, 0, &si, &pi)) { + if(!CreateProcess(0, const_cast<TCHAR*>(cmd.c_str()), 0, 0, FALSE, 0, 0, 0, &si, &pi)) { throw CryptoException(Util::translateError(::GetLastError())); } WaitForSingleObject(pi.hProcess, INFINITE); CloseHandle(pi.hThread); CloseHandle(pi.hProcess); - cmd = L"openssl.exe req -x509 -new -batch -days 3650 -key \"" + Text::utf8ToWide(SETTING(TLS_PRIVATE_KEY_FILE)) + - L"\" -out \"" + Text::utf8ToWide(SETTING(TLS_CERTIFICATE_FILE)) + L"\" -subj \"/CN=" + - Text::utf8ToWide(ClientManager::getInstance()->getMyCID().toBase32()) + L"\""; + cmd = _T("openssl.exe req -x509 -new -batch -days 3650 -key \"") + Text::toT(SETTING(TLS_PRIVATE_KEY_FILE)) + + _T("\" -out \"") + Text::toT(SETTING(TLS_CERTIFICATE_FILE)) + _T("\" -subj \"/CN=") + + Text::toT(ClientManager::getInstance()->getMyCID().toBase32()) + _T("\""); - if(!CreateProcess(0, const_cast<wchar_t*>(cmd.c_str()), 0, 0, FALSE, 0, 0, 0, &si, &pi)) { + if(!CreateProcess(0, const_cast<TCHAR*>(cmd.c_str()), 0, 0, FALSE, 0, 0, 0, &si, &pi)) { throw CryptoException(Util::translateError(::GetLastError())); } Modified: dcplusplus/trunk/client/DCPlusPlus.h =================================================================== --- dcplusplus/trunk/client/DCPlusPlus.h 2006-12-27 22:45:57 UTC (rev 700) +++ dcplusplus/trunk/client/DCPlusPlus.h 2007-02-27 09:39:02 UTC (rev 701) @@ -46,7 +46,7 @@ } #define dcdebug debugTrace -#ifdef _WIN32 +#ifdef _MSC_VER #define dcassert(exp) \ do { if (!(exp)) { \ dcdebug("Assertion hit in %s(%d): " #exp "\n", __FILE__, __LINE__); \ @@ -54,7 +54,6 @@ _CrtDbgBreak(); } } while(false) #define dcasserta(exp) dcassert(0) #else -#include <assert.h> #define dcasserta(exp) assert(exp) #define dcassert(exp) assert(exp) #endif Modified: dcplusplus/trunk/client/File.cpp =================================================================== --- dcplusplus/trunk/client/File.cpp 2006-12-27 22:45:57 UTC (rev 700) +++ dcplusplus/trunk/client/File.cpp 2007-02-27 09:39:02 UTC (rev 701) @@ -40,7 +40,7 @@ } } - h = ::CreateFile(Text::utf8ToWide(aFileName).c_str(), access, FILE_SHARE_READ, NULL, m, FILE_FLAG_SEQUENTIAL_SCAN, NULL); + h = ::CreateFile(Text::toT(aFileName).c_str(), access, FILE_SHARE_READ, NULL, m, FILE_FLAG_SEQUENTIAL_SCAN, NULL); if(h == INVALID_HANDLE_VALUE) { throw FileException(Util::translateError(GetLastError())); @@ -176,21 +176,21 @@ } } -void File::ensureDirectory(const string& aFile) { +void File::ensureDirectory(const string& aFile) throw() { // Skip the first dir... tstring file; Text::toT(aFile, file); - wstring::size_type start = file.find_first_of(L"\\/"); + tstring::size_type start = file.find_first_of(_T("\\/")); if(start == string::npos) return; start++; - while( (start = file.find_first_of(L"\\/", start)) != string::npos) { - CreateDirectory(file.substr(0, start+1).c_str(), NULL); + while( (start = file.find_first_of(_T("\\/"), start)) != string::npos) { + ::CreateDirectory(file.substr(0, start+1).c_str(), NULL); start++; } } -bool File::isAbsolute(const string& path) { +bool File::isAbsolute(const string& path) throw() { return path.size() > 2 && (path[1] == ':' || path[0] == '/' || path[0] == '\\'); } Modified: dcplusplus/trunk/client/HashManager.cpp =================================================================== --- dcplusplus/trunk/client/HashManager.cpp 2006-12-27 22:45:57 UTC (rev 700) +++ dcplusplus/trunk/client/HashManager.cpp 2007-02-27 09:39:02 UTC (rev 701) @@ -500,6 +500,7 @@ uint8_t* rbuf = buf; OVERLAPPED over = { 0 }; + BOOL res = TRUE; over.hEvent = CreateEvent(NULL, FALSE, TRUE, NULL); bool ok = false; @@ -523,7 +524,6 @@ over.Offset = hn; size -= hn; - BOOL res = TRUE; for(;;) { if(size > 0) { // Start a new overlapped read Added: dcplusplus/trunk/client/SConscript =================================================================== --- dcplusplus/trunk/client/SConscript (rev 0) +++ dcplusplus/trunk/client/SConscript 2007-02-27 09:39:02 UTC (rev 701) @@ -0,0 +1,42 @@ +# vim: set filetype=py + +from os import popen4 +import re + +def getRevision(): + cmd = 'svn info -R "' + env.Dir("#").abspath + '"' + stdin, stdout = popen4(cmd) + stdin.close() + maxver = 0 + matcher = re.compile(ur'Revision: (\d+)') + for line in stdout.readlines(): + match = matcher.match(line) + if not match: + continue + ver = int(match.group(1)) + if ver > maxver: + maxver = ver + + stdout.close() + print "Building revision " + str(maxver) + + return str(maxver) + +Import('dev source_path') + +env, target, sources = dev.prepare_build(source_path, 'dcpp', in_bin=False) + +env.Append(CPPPATH = ['.','../yassl/include', '../bzip2', '../zlib']) + +for i, source in enumerate(sources): + if source.find("version.cpp") != -1: + rev = ['DCPP_REVISION=' + getRevision()] + sources[i] = env.StaticObject(source, CPPDEFINES=env['CPPDEFINES'] + rev) + +env['Gch'] = env.Gch('stdinc.h')[0] + +ret = env.StaticLibrary(target, sources) + +dev.env.Append(LIBPATH = [dev.get_build_path(source_path)]) + +Return('ret') Modified: dcplusplus/trunk/client/Thread.h =================================================================== --- dcplusplus/trunk/client/Thread.h 2006-12-27 22:45:57 UTC (rev 700) +++ dcplusplus/trunk/client/Thread.h 2007-02-27 09:39:02 UTC (rev 701) @@ -64,9 +64,17 @@ static void sleep(uint32_t millis) { ::Sleep(millis); } static void yield() { ::Sleep(1); } + +#ifdef __MINGW32__ + static long safeInc(volatile long& v) { return InterlockedIncrement((long*)&v); } + static long safeDec(volatile long& v) { return InterlockedDecrement((long*)&v); } + static long safeExchange(volatile long& target, long value) { return InterlockedExchange((long*)&target, value); } + +#else static long safeInc(volatile long& v) { return InterlockedIncrement(&v); } static long safeDec(volatile long& v) { return InterlockedDecrement(&v); } static long safeExchange(volatile long& target, long value) { return InterlockedExchange(&target, value); } +#endif #else Modified: dcplusplus/trunk/client/Util.cpp =================================================================== --- dcplusplus/trunk/client/Util.cpp 2006-12-27 22:45:57 UTC (rev 700) +++ dcplusplus/trunk/client/Util.cpp 2007-02-27 09:39:02 UTC (rev 701) @@ -30,9 +30,7 @@ #include "File.h" #include "SimpleXML.h" -#ifdef _WIN32 -#include <ShlObj.h> -#else +#ifndef _WIN32 #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> @@ -366,7 +364,7 @@ nf.lpDecimalSep = _T(","); GetLocaleInfo( LOCALE_SYSTEM_DEFAULT, LOCALE_SGROUPING, Dummy, 16 ); - nf.Grouping = _tstoi(Dummy); + nf.Grouping = Util::toInt(Dummy); GetLocaleInfo( LOCALE_SYSTEM_DEFAULT, LOCALE_STHOUSAND, Dummy, 16 ); nf.lpThousandSep = Dummy; Modified: dcplusplus/trunk/client/stdinc.cpp =================================================================== --- dcplusplus/trunk/client/stdinc.cpp 2006-12-27 22:45:57 UTC (rev 700) +++ dcplusplus/trunk/client/stdinc.cpp 2007-02-27 09:39:02 UTC (rev 701) @@ -20,5 +20,5 @@ // Hm...version not updated it seems #if defined(HAVE_STLPORT) && (_STLPORT_VERSION != 0x501) -#error I use STLport 5.0.2. Remove this if you know what you're doing. +#error I use STLport 5.0.3. Remove this if you know what you're doing. #endif Modified: dcplusplus/trunk/client/stdinc.h =================================================================== --- dcplusplus/trunk/client/stdinc.h 2006-12-27 22:45:57 UTC (rev 700) +++ dcplusplus/trunk/client/stdinc.h 2007-02-27 09:39:02 UTC (rev 701) @@ -37,15 +37,13 @@ #define USE_SYS_STL 1 #endif -#ifdef HAVE_STLPORT -# define _STLP_DONT_USE_SHORT_STRING_OPTIM 1 // Lots of memory issues with this undefined...wonder what's up with that.. -# define _STLP_USE_PTR_SPECIALIZATIONS 1 -# define _STLP_NO_ANACHRONISMS 1 -# define _STLP_NO_CUSTOM_IO 1 -# define _STLP_NO_IOSTREAMS 1 -# ifndef _DEBUG -# define _STLP_DONT_USE_EXCEPTIONS 1 -# endif +#define _STLP_DONT_USE_SHORT_STRING_OPTIM 1 // Lots of memory issues with this undefined...wonder what's up with that.. +#define _STLP_USE_PTR_SPECIALIZATIONS 1 +#define _STLP_NO_ANACHRONISMS 1 +#define _STLP_NO_CUSTOM_IO 1 +#define _STLP_NO_IOSTREAMS 1 +#ifndef _DEBUG +# define _STLP_DONT_USE_EXCEPTIONS 1 #endif #ifdef _MSC_VER @@ -98,17 +96,24 @@ #define _ATL_NO_HOSTING #define _ATL_NO_OLD_NAMES -#include <Winsock2.h> +#include <winsock2.h> #include <windows.h> -#include <crtdbg.h> #include <tchar.h> +#include <shlobj.h> #else #include <unistd.h> #include <stdint.h> #endif +#ifdef _MSC_VER +#include <crtdbg.h> +#else +#include <assert.h> +#endif + +#include <ctype.h> #include <stdio.h> #include <stdarg.h> #include <memory.h> Added: dcplusplus/trunk/gch.py =================================================================== --- dcplusplus/trunk/gch.py (rev 0) +++ dcplusplus/trunk/gch.py 2007-02-27 09:39:02 UTC (rev 701) @@ -0,0 +1,106 @@ +# $Id: gch.py 320 2006-07-18 15:58:09Z tim $ +# +# SCons builder for gcc's precompiled headers +# Copyright (C) 2006 Tim Blechmann +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# $Revision: 320 $ +# $LastChangedRevision: 320 $ +# $LastChangedDate: 2006-07-18 17:58:09 +0200 (tis, 18 jul 2006) $ +# $LastChangedBy: tim $ + +import SCons.Action +import SCons.Builder +import SCons.Scanner.C +import SCons.Util +import SCons + +GchAction = SCons.Action.Action('$GCHCOM') +GchShAction = SCons.Action.Action('$GCHSHCOM') + +def gen_suffix(env, sources): + return sources[0].get_suffix() + env['GCHSUFFIX'] + +if SCons.__version__ == "0.96.1": + scanner = SCons.Scanner.C.CScan() +else: + scanner = SCons.Scanner.C.CScanner() + +GchShBuilder = SCons.Builder.Builder(action = GchShAction, + source_scanner = scanner, + suffix = gen_suffix) + +GchBuilder = SCons.Builder.Builder(action = GchAction, + source_scanner = scanner, + suffix = gen_suffix) + +def static_pch_emitter(target,source,env): + SCons.Defaults.StaticObjectEmitter( target, source, env ) + + path = scanner.path(env) + deps = scanner(source[0], env, path) + if env.has_key('Gch') and env['Gch']: + if env['Gch'].path[:-4] in [x.path for x in deps]: + env.Depends(target, env['Gch']) + + return (target, source) + +def shared_pch_emitter(target,source,env): + SCons.Defaults.SharedObjectEmitter( target, source, env ) + + path = scanner.path(env) + deps = scanner(source[0], env, path) + if env.has_key('GchSh') and env['GchSh']: + if env['GchSh'].path[:-4] in [x.path for x in deps]: + env.Depends(target, env['GchSh']) + return (target, source) + +def generate(env): + """ + Add builders and construction variables for the DistTar builder. + """ + env.Append(BUILDERS = { + 'gch': env.Builder( + action = GchAction, + target_factory = env.fs.File, + ), + 'gchsh': env.Builder( + action = GchShAction, + target_factory = env.fs.File, + ), + }) + + try: + bld = env['BUILDERS']['Gch'] + bldsh = env['BUILDERS']['GchSh'] + except KeyError: + bld = GchBuilder + bldsh = GchShBuilder + env['BUILDERS']['Gch'] = bld + env['BUILDERS']['GchSh'] = bldsh + + env['GCHCOM'] = '$CXX $CXXFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET -x c++-header -c $SOURCE' + env['GCHSHCOM'] = '$CXX $SHCXXFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET -x c++-header -c $SOURCE' + env['GCHSUFFIX'] = '.gch' + + for suffix in SCons.Util.Split('.c .C .cc .cxx .cpp .c++'): + env['BUILDERS']['StaticObject'].add_emitter( suffix, static_pch_emitter ) + env['BUILDERS']['SharedObject'].add_emitter( suffix, shared_pch_emitter ) + + +def exists(env): + return env.Detect('g++') Property changes on: dcplusplus/trunk/smartwin ___________________________________________________________________ Name: svn:ignore + * Property changes on: dcplusplus/trunk/stlport ___________________________________________________________________ Name: svn:ignore + * Copied: dcplusplus/trunk/win32/ADLSProperties.cpp (from rev 700, dcplusplus/trunk/windows/ADLSProperties.cpp) =================================================================== --- dcplusplus/trunk/win32/ADLSProperties.cpp (rev 0) +++ dcplusplus/trunk/win32/ADLSProperties.cpp 2007-02-27 09:39:02 UTC (rev 701) @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2001-2006 Jacek Sieka, arnetheduck on gmail point com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifdef PORT_ME + +#include "stdafx.h" +#include "../client/DCPlusPlus.h" +#include "Resource.h" + +#include "ADLSProperties.h" +#include "../client/ADLSearch.h" +#include "../client/FavoriteManager.h" +#include "WinUtil.h" + +// Initialize dialog +LRESULT ADLSProperties::OnInitDialog(UINT, WPARAM, LPARAM, BOOL&) { + // Translate the texts + SetWindowText(CTSTRING(ADLS_PROPERTIES)); + SetDlgItemText(IDC_ADLSP_SEARCH, CTSTRING(ADLS_SEARCH_STRING)); + SetDlgItemText(IDC_ADLSP_TYPE, CTSTRING(ADLS_TYPE)); + SetDlgItemText(IDC_ADLSP_SIZE_MIN, CTSTRING(ADLS_SIZE_MIN)); + SetDlgItemText(IDC_ADLSP_SIZE_MAX, CTSTRING(ADLS_SIZE_MAX)); + SetDlgItemText(IDC_ADLSP_UNITS, CTSTRING(ADLS_UNITS)); + SetDlgItemText(IDC_ADLSP_DESTINATION, CTSTRING(ADLS_DESTINATION)); + SetDlgItemText(IDC_IS_ACTIVE, CTSTRING(ADLS_ENABLED)); + SetDlgItemText(IDC_AUTOQUEUE, CTSTRING(ADLS_DOWNLOAD)); + + // Initialize dialog items + ctrlSearch.Attach(GetDlgItem(IDC_SEARCH_STRING)); + ctrlDestDir.Attach(GetDlgItem(IDC_DEST_DIR)); + ctrlMinSize.Attach(GetDlgItem(IDC_MIN_FILE_SIZE)); + ctrlMaxSize.Attach(GetDlgItem(IDC_MAX_FILE_SIZE)); + ctrlActive.Attach(GetDlgItem(IDC_IS_ACTIVE)); + ctrlAutoQueue.Attach(GetDlgItem(IDC_AUTOQUEUE)); + + ctrlSearchType.Attach(GetDlgItem(IDC_SOURCE_TYPE)); + ctrlSearchType.AddString(CTSTRING(FILENAME)); + ctrlSearchType.AddString(CTSTRING(DIRECTORY)); + ctrlSearchType.AddString(CTSTRING(ADLS_FULL_PATH)); + + ctrlSizeType.Attach(GetDlgItem(IDC_SIZE_TYPE)); + ctrlSizeType.AddString(CTSTRING(B)); + ctrlSizeType.AddString(CTSTRING(KiB)); + ctrlSizeType.AddString(CTSTRING(MiB)); + ctrlSizeType.AddString(CTSTRING(GiB)); + + // Load search data + ctrlSearch.SetWindowText(Text::toT(search->searchString).c_str()); + ctrlDestDir.SetWindowText(Text::toT(search->destDir).c_str()); + ctrlMinSize.SetWindowText(Text::toT(search->minFileSize > 0 ? Util::toString(search->minFileSize) : "").c_str()); + ctrlMaxSize.SetWindowText(Text::toT(search->maxFileSize > 0 ? Util::toString(search->maxFileSize) : "").c_str()); + ctrlActive.SetCheck(search->isActive ? 1 : 0); + ctrlAutoQueue.SetCheck(search->isAutoQueue ? 1 : 0); + ctrlSearchType.SetCurSel(search->sourceType); + ctrlSizeType.SetCurSel(search->typeFileSize); + + // Center dialog + CenterWindow(GetParent()); + + return FALSE; +} + +// Exit dialog +LRESULT ADLSProperties::OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/) +{ + if(wID == IDOK) { + // Update search + TCHAR buf[256]; + + ctrlSearch.GetWindowText(buf, 256); + search->searchString = Text::fromT(buf); + ctrlDestDir.GetWindowText(buf, 256); + search->destDir = Text::fromT(buf); + + ctrlMinSize.GetWindowText(buf, 256); + search->minFileSize = (_tcslen(buf) == 0 ? -1 : Util::toInt64(Text::fromT(buf))); + ctrlMaxSize.GetWindowText(buf, 256); + search->maxFileSize = (_tcslen(buf) == 0 ? -1 : Util::toInt64(Text::fromT(buf))); + + search->isActive = (ctrlActive.GetCheck() == 1); + search->isAutoQueue = (ctrlAutoQueue.GetCheck() == 1); + + search->sourceType = (ADLSearch::SourceType)ctrlSearchType.GetCurSel(); + search->typeFileSize = (ADLSearch::SizeType)ctrlSizeType.GetCurSel(); + } + + EndDialog(wID); + return 0; +} +#endif Copied: dcplusplus/trunk/win32/ADLSProperties.h (from rev 700, dcplusplus/trunk/windows/ADLSProperties.h) =================================================================== --- dcplusplus/trunk/win32/ADLSProperties.h (rev 0) +++ dcplusplus/trunk/win32/ADLSProperties.h 2007-02-27 09:39:02 UTC (rev 701) @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2001-2006 Jacek Sieka, arnetheduck on gmail point com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#if !defined(ADLS_PROPERTIES_H) +#define ADLS_PROPERTIES_H + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +class ADLSearch; + +/////////////////////////////////////////////////////////////////////////////// +// +// Dialog for new/edit ADL searches +// +/////////////////////////////////////////////////////////////////////////////// +class ADLSProperties : public CDialogImpl<ADLSProperties> +{ +public: + + // Constructor/destructor + ADLSProperties::ADLSProperties(ADLSearch *_search) : search(_search) { } + virtual ~ADLSProperties() { } + + // Dilaog unique id + enum { IDD = IDD_ADLS_PROPERTIES }; + + // Inline message map + BEGIN_MSG_MAP(ADLSProperties) + MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog) + COMMAND_ID_HANDLER(IDOK, OnCloseCmd) + COMMAND_ID_HANDLER(IDCANCEL, OnCloseCmd) + END_MSG_MAP() + + // Message handlers + LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); + LRESULT OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/); + +private: + + // Current search + ADLSearch* search; + + CEdit ctrlSearch; + CEdit ctrlDestDir; + CEdit ctrlMinSize; + CEdit ctrlMaxSize; + CButton ctrlActive; + CButton ctrlAutoQueue; + CComboBox ctrlSearchType; + CComboBox ctrlSizeType; +}; + +#endif // !defined(ADLS_PROPERTIES_H) Copied: dcplusplus/trunk/win32/ADLSearchFrame.cpp (from rev 700, dcplusplus/trunk/windows/ADLSearchFrame.cpp) =================================================================== --- dcplusplus/trunk/win32/ADLSearchFrame.cpp (rev 0) +++ dcplusplus/trunk/win32/ADLSearchFrame.cpp 2007-02-27 09:39:02 UTC (rev 701) @@ -0,0 +1,549 @@ +/* + * Copyright (C) 2001-2006 Jacek Sieka, arnetheduck on gmail point com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +/* + * Automatic Directory Listing Search + * Henrik Engstr�m, henrikengstrom at home se + */ + +#ifdef PORT_ME + +#include "stdafx.h" +#include "Resource.h" +#include "../client/DCPlusPlus.h" +#include "../client/Client.h" +#include "ADLSearchFrame.h" +#include "AdlsProperties.h" + +int ADLSearchFrame::columnIndexes[] = { + COLUMN_ACTIVE_SEARCH_STRING, + COLUMN_SOURCE_TYPE, + COLUMN_DEST_DIR, + COLUMN_MIN_FILE_SIZE, + COLUMN_MAX_FILE_SIZE +}; +int ADLSearchFrame::columnSizes[] = { + 120, + 90, + 90, + 90, + 90 +}; +static ResourceManager::Strings columnNames[] = { + ResourceManager::ACTIVE_SEARCH_STRING, + ResourceManager::SOURCE_TYPE, + ResourceManager::DESTINATION, + ResourceManager::MIN_SIZE, + ResourceManager::MAX_SIZE, +}; + +// Frame creation +LRESULT ADLSearchFrame::onCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) +{ + // Create status bar + CreateSimpleStatusBar(ATL_IDS_IDLEMESSAGE, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | SBARS_SIZEGRIP); + ctrlStatus.Attach(m_hWndStatusBar); + int w[1] = { 0 }; + ctrlStatus.SetParts(1, w); + + // Create list control + ctrlList.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | + WS_HSCROLL | WS_VSCROLL | LVS_REPORT | LVS_SHOWSELALWAYS, WS_EX_CLIENTEDGE, IDC_ADLLIST); + ctrlList.SetExtendedListViewStyle(LVS_EX_LABELTIP | LVS_EX_HEADERDRAGDROP | LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT); + + // Set background color + ctrlList.SetBkColor(WinUtil::bgColor); + ctrlList.SetTextBkColor(WinUtil::bgColor); + ctrlList.SetTextColor(WinUtil::textColor); + + // Create listview columns + WinUtil::splitTokens(columnIndexes, SETTING(ADLSEARCHFRAME_ORDER), COLUMN_LAST); + WinUtil::splitTokens(columnSizes, SETTING(ADLSEARCHFRAME_WIDTHS), COLUMN_LAST); + for(int j = 0; j < COLUMN_LAST; j++) + { + int fmt = LVCFMT_LEFT; + ctrlList.InsertColumn(j, CTSTRING_I(columnNames[j]), fmt, columnSizes[j], j); + } + ctrlList.SetColumnOrderArray(COLUMN_LAST, columnIndexes); + + // Create buttons + ctrlAdd.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | + BS_PUSHBUTTON , 0, IDC_ADD); + ctrlAdd.SetWindowText(CTSTRING(NEW)); + ctrlAdd.SetFont(WinUtil::font); + + ctrlEdit.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | + BS_PUSHBUTTON , 0, IDC_EDIT); + ctrlEdit.SetWindowText(CTSTRING(PROPERTIES)); + ctrlEdit.SetFont(WinUtil::font); + + ctrlRemove.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | + BS_PUSHBUTTON , 0, IDC_REMOVE); + ctrlRemove.SetWindowText(CTSTRING(REMOVE)); + ctrlRemove.SetFont(WinUtil::font); + + ctrlMoveUp.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | + BS_PUSHBUTTON , 0, IDC_MOVE_UP); + ctrlMoveUp.SetWindowText(CTSTRING(MOVE_UP)); + ctrlMoveUp.SetFont(WinUtil::font); + + ctrlMoveDown.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | + BS_PUSHBUTTON , 0, IDC_MOVE_DOWN); + ctrlMoveDown.SetWindowText(CTSTRING(MOVE_DOWN)); + ctrlMoveDown.SetFont(WinUtil::font); + + ctrlHelp.Create(m_hWnd, rcDefault, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | + BS_PUSHBUTTON , 0, IDC_HELP_FAQ); + ctrlHelp.SetWindowText(CTSTRING(MENU_HELP)); + ctrlHelp.SetFont(WinUtil::font); + + // Create context menu + contextMenu.CreatePopupMenu(); + contextMenu.AppendMenu(MF_STRING, IDC_ADD, CTSTRING(NEW)); + contextMenu.AppendMenu(MF_STRING, IDC_REMOVE, CTSTRING(REMOVE)); + contextMenu.AppendMenu(MF_STRING, IDC_EDIT, CTSTRING(PROPERTIES)); + + // Load all searches + LoadAll(); + + bHandled = FALSE; + return TRUE; +} + +// Close window +LRESULT ADLSearchFrame::onClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled) +{ + ADLSearchManager::getInstance()->Save(); + + WinUtil::saveHeaderOrder(ctrlList, SettingsManager::ADLSEARCHFRAME_ORDER, + SettingsManager::ADLSEARCHFRAME_WIDTHS, COLUMN_LAST, columnIndexes, columnSizes); + + bHandled = FALSE; + return 0; +} + +// Recalculate frame control layout +void ADLSearchFrame::UpdateLayout(BOOL bResizeBars /* = TRUE */) +{ + RECT rect; + GetClientRect(&rect); + + // Position bars and offset their dimensions + UpdateBarsPosition(rect, bResizeBars); + if(ctrlStatus.IsWindow()) + { + CRect sr; + int w[1]; + ctrlStatus.GetClientRect(sr); + w[0] = sr.Width() - 16; + ctrlStatus.SetParts(1, w); + } + + // Position list control + CRect rc = rect; + rc.top += 2; + rc.bottom -= 28; + ctrlList.MoveWindow(rc); + + // Position buttons + const long bwidth = 90; + const long bspace = 10; + rc = rect; + rc.bottom -= 2; + rc.top = rc.bottom - 22; + + rc.left = 2; + rc.right = rc.left + bwidth; + ctrlAdd.MoveWindow(rc); + + rc.left += bwidth + 2; + rc.right = rc.left + bwidth; + ctrlEdit.MoveWindow(rc); + + rc.left += bwidth + 2; + rc.right = rc.left + bwidth; + ctrlRemove.MoveWindow(rc); + + rc.left += bspace; + + rc.left += bwidth + 2; + rc.right = rc.left + bwidth; + ctrlMoveUp.MoveWindow(rc); + + rc.left += bwidth + 2; + rc.right = rc.left + bwidth; + ctrlMoveDown.MoveWindow(rc); + + rc.left += bspace; + + rc.left += bwidth + 2; + rc.right = rc.left + bwidth; + ctrlHelp.MoveWindow(rc); + +} + +// Keyboard shortcuts +LRESULT ADLSearchFrame::onKeyDown(int /*idCtrl*/, LPNMHDR pnmh, BOOL& bHandled) +{ + NMLVKEYDOWN* kd = (NMLVKEYDOWN*) pnmh; + switch(kd->wVKey) + { + case VK_INSERT: + PostMessage(WM_COMMAND, IDC_ADD, 0); + break; + case VK_DELETE: + PostMessage(WM_COMMAND, IDC_REMOVE, 0); + break; + case VK_RETURN: + PostMessage(WM_COMMAND, IDC_EDIT, 0); + break; + default: + bHandled = FALSE; + } + return 0; +} + +LRESULT ADLSearchFrame::onContextMenu(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { + if(reinterpret_cast<HWND>(wParam) == ctrlList) { + POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) }; + + if(pt.x == -1 && pt.y == -1) { + WinUtil::getContextMenuPos(ctrlList, pt); + } + + int status = ctrlList.GetSelectedCount() > 0 ? MFS_ENABLED : MFS_GRAYED; + contextMenu.EnableMenuItem(IDC_EDIT, status); + contextMenu.EnableMenuItem(IDC_REMOVE, status); + contextMenu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pt.x, pt.y, m_hWnd); + return TRUE; + } + bHandled = FALSE; + return FALSE; +} + +// Add new search +LRESULT ADLSearchFrame::onAdd(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) +{ + // Invoke edit dialog with fresh search + ADLSearch search; + ADLSProperties dlg(&search); + if(dlg.DoModal((HWND)*this) == IDOK) + { + // Add new search to the end or if selected, just before + ADLSearchManager::SearchCollection& collection = ADLSearchManager::getInstance()->collection; + + + int i = ctrlList.GetNextItem(-1, LVNI_SELECTED); + if(i < 0) + { + // Add to end + collection.push_back(search); + i = collection.size() - 1; + } + else + { + // Add before selection + collection.insert(collection.begin() + i, search); + } + + // Update list control + int j = i; + while(j < (int)collection.size()) + { + UpdateSearch(j++); + } + ctrlList.EnsureVisible(i, FALSE); + } + + return 0; +} + +// Edit existing search +LRESULT ADLSearchFrame::onEdit(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) +{ + // Get selection info + int i = ctrlList.GetNextItem(-1, LVNI_SELECTED); + if(i < 0) + { + // Nothing selected + return 0; + } + + // Edit existing + ADLSearchManager::SearchCollection& collection = ADLSearchManager::getInstance()->collection; + ADLSearch search = collection[i]; + + // Invoke dialog with selected search + ADLSProperties dlg(&search); + if(dlg.DoModal((HWND)*this) == IDOK) + { + // Update search collection + collection[i] = search; + + // Update list control + UpdateSearch(i); + } + + return 0; +} + +// Remove searches +LRESULT ADLSearchFrame::onRemove(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) +{ + ADLSearchManager::SearchCollection& collection = ADLSearchManager::getInstance()->collection; + + // Loop over all selected items + int i; + while((i = ctrlList.GetNextItem(-1, LVNI_SELECTED)) >= 0) + { + collection.erase(collection.begin() + i); + ctrlList.DeleteItem(i); + } + return 0; +} + +// Help + +LRESULT ADLSearchFrame::onHelpButton(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { + HtmlHelp(m_hWnd, WinUtil::getHelpFile().c_str(), HH_HELP_CONTEXT, IDR_ADLSEARCH); + return 0; +} + +LRESULT ADLSearchFrame::onHelpKey(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) +{ + HtmlHelp(m_hWnd, WinUtil::getHelpFile().c_str(), HH_HELP_CONTEXT, IDR_ADLSEARCH); + return 0; +} + +// Move selected entries up one step +LRESULT ADLSearchFrame::onMoveUp(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) +{ + ADLSearchManager::SearchCollection& collection = ADLSearchManager::getInstance()->collection; + + // Get selection + vector<int> sel; + int i = -1; + while((i = ctrlList.GetNextItem(i, LVNI_SELECTED)) >= 0) + { + sel.push_back(i); + } + if(sel.size() < 1) + { + return 0; + } + + // Find out where to insert + int i0 = sel[0]; + if(i0 > 0) + { + i0 = i0 - 1; + } + + // Backup selected searches + ADLSearchManager::SearchCollection backup; + for(i = 0; i < (int)sel.size(); ++i) + { + backup.push_back(collection[sel[i]]); + } + + // Erase selected searches + for(i = sel.size() - 1; i >= 0; --i) + { + collection.erase(collection.begin() + sel[i]); + } + + // Insert (grouped together) + for(i = 0; i < (int)sel.size(); ++i) + { + collection.insert(collection.begin() + i0 + i, backup[i]); + } + + // Update UI + LoadAll(); + + // Restore selection + for(i = 0; i < (int)sel.size(); ++i) + { + ctrlList.SetItemState(i0 + i, LVNI_SELECTED, LVNI_SELECTED); + } + + return 0; +} + +// Move selected entries down one step +LRESULT ADLSearchFrame::onMoveDown(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) +{ + ADLSearchManager::SearchCollection& collection = ADLSearchManager::getInstance()->collection; + + // Get selection + vector<int> sel; + int i = -1; + while((i = ctrlList.GetNextItem(i, LVNI_SELECTED)) >= 0) + { + sel.push_back(i); + } + if(sel.size() < 1) + { + return 0; + } + + // Find out where to insert + int i0 = sel[sel.size() - 1] + 2; + if(i0 > (int)collection.size()) + { + i0 = collection.size(); + } + + // Backup selected searches + ADLSearchManager::SearchCollection backup; + for(i = 0; i < (int)sel.size(); ++i) + { + backup.push_back(collection[sel[i]]); + } + + // Erase selected searches + for(i = sel.size() - 1; i >= 0; --i) + { + collection.erase(collection.begin() + sel[i]); + if(i < i0) + { + i0--; + } + } + + // Insert (grouped together) + for(i = 0; i < (int)sel.size(); ++i) + { + collection.insert(collection.begin() + i0 + i, backup[i]); + } + + // Update UI + LoadAll(); + + // Restore selection + for(i = 0; i < (int)sel.size(); ++i) + { + ctrlList.SetItemState(i0 + i, LVNI_SELECTED, LVNI_SELECTED); + } + ctrlList.EnsureVisible(i0, FALSE); + + return 0; +} + +// Clicked 'Active' check box +LRESULT ADLSearchFrame::onItemChanged(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/) +{ + NMITEMACTIVATE* item = (NMITEMACTIVATE*)pnmh; + + if((item->uChanged & LVIF_STATE) == 0) + return 0; + if((item->uOldState & INDEXTOSTATEIMAGEMASK(0xf)) == 0) + return 0; + if((item->uNewState & INDEXTOSTATEIMAGEMASK(0xf)) == 0) + return 0; + + if(item->iItem >= 0) + { + // Set new active status check box + ADLSearchManager::SearchCollection& collection = ADLSearchManager::getInstance()->collection; + ADLSearch& search = collection[item->iItem]; + search.isActive = (ctrlList.GetCheckState(item->iItem) != 0); + } + return 0; +} + +// Double-click on list control +LRESULT ADLSearchFrame::onDoubleClickList(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/) +{ + NMITEMACTIVATE* item = (NMITEMACTIVATE*)pnmh; + + if(item->iItem >= 0) { + // Treat as onEdit command + PostMessage(WM_COMMAND, IDC_EDIT, 0); + } else if(item->iItem == -1) { + PostMessage(WM_COMMAND, IDC_ADD, 0); + } + + return 0; +} + +// Load all searches from manager +void ADLSearchFrame::LoadAll() +{ + // Clear current contents + ctrlList.DeleteAllItems(); + + // Load all searches + ADLSearchManager::SearchCollection& collection = ADLSearchManager::getInstance()->collection; + for(unsigned long l = 0; l < collection.size(); l++) + { + UpdateSearch(l, FALSE); + } +} + +// Update a specific search item +void ADLSearchFrame::UpdateSearch(int index, BOOL doDelete) +{ + ADLSearchManager::SearchCollection& collection = ADLSearchManager::getInstance()->collection; + + // Check args + if(index >= (int)collection.size()) + { + return; + } + ADLSearch& search = collection[index]; + + // Delete from list control + if(doDelete) + { + ctrlList.DeleteItem(index); + } + + // Generate values + TStringList line; + tstring fs; + line.push_back(Text::toT(search.searchString)); + line.push_back(search.SourceTypeToDisplayString(search.sourceType)); + line.push_back(Text::toT(search.destDir)); + + fs = _T(""); + if(search.minFileSize >= 0) + { + fs = Text::toT(Util::toString(search.minFileSize)); + fs += _T(" "); + fs += search.SizeTypeToDisplayString(search.typeFileSize); + } + line.push_back(fs); + + fs = _T(""); + if(search.maxFileSize >= 0) + { + fs = Text::toT(Util::toString(search.maxFileSize)); + fs += _T(" "); + fs += search.SizeTypeToDisplayString(search.typeFileSize); + } + line.push_back(fs); + + // Insert in list control + ctrlList.insert(index, line); + + // Update 'Active' check box + ctrlList.SetCheckState(index, search.isActive); +} + +#endif#endif Copied: dcplusplus/trunk/win32/ADLSearchFrame.h (from rev 700, dcplusplus/trunk/windows/ADLSearchFrame.h) =================================================================== --- dcplusplus/trunk/win32/ADLSearchFrame.h (rev 0) +++ dcplusplus/trunk/win32/ADLSearchFrame.h 2007-02-27 09:39:02 UTC (rev 701) @@ -0,0 +1,144 @@ +/* + * Copyright (C) 2001-2006 Jacek Sieka, arnetheduck on gmail point com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +/* + * Automatic Directory Listing Search + * Henrik Engstr�m, henrikengstrom on home point se + */ + +#if !defined(ADL_SEARCH_FRAME_H) +#define ADL_SEARCH_FRAME_H + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include "FlatTabCtrl.h" +#include "ExListViewCtrl.h" +#include "WinUtil.h" + +#include "../client/ADLSearch.h" + +/////////////////////////////////////////////////////////////////////////////// +// +// Class that represent an ADL search manager interface +// +/////////////////////////////////////////////////////////////////////////////// +class ADLSearchFrame : public MDITabChildWindowImpl<ADLSearchFrame>, public StaticFrame<ADLSearchFrame, ResourceManager::ADL_SEARCH> +{ +public: + + // Base class typedef + typedef MDITabChildWindowImpl<ADLSearchFrame> baseClass; + + // Constructor/destructor + ADLSearchFrame() {} + virtual ~ADLSearchFrame() { } + + // Frame window declaration + DECLARE_FRAME_WND_CLASS_EX(_T("ADLSearchFrame"), IDR_ADLSEARCH, 0, COLOR_3DFACE); + + // Inline message map + BEGIN_MSG_MAP(ADLSearchFrame) + MESSAGE_HANDLER(WM_CREATE, onCreate) + MESSAGE_HANDLER(WM_CLOSE, onClose) + MESSAGE_HANDLER(WM_CTLCOLOREDIT, onCtlColor) + MESSAGE_HANDLER(WM_CTLCOLORSTATIC, onCtlColor) + MESSAGE_HANDLER(WM_CONTEXTMENU, onContextMenu) + MESSAGE_HANDLER(WM_HELP, onHelpKey) + COMMAND_ID_HANDLER(IDC_ADD, onAdd) + COMMAND_ID_HANDLER(IDC_EDIT, onEdit) + COMMAND_ID_HANDLER(IDC_REMOVE, onRemove) + COMMAND_ID_HANDLER(IDC_HELP_FAQ, onHelpButton) + COMMAND_ID_HANDLER(IDC_MOVE_UP, onMoveUp) + COMMAND_ID_HANDLER(IDC_MOVE_DOWN, onMoveDown) + NOTIFY_HANDLER(IDC_ADLLIST, NM_DBLCLK, onDoubleClickList) + NOTIFY_HANDLER(IDC_ADLLIST, LVN_ITEMCHANGED, onItemChanged) + NOTIFY_HANDLER(IDC_ADLLIST, LVN_KEYDOWN, onKeyDown) + CHAIN_MSG_MAP(baseClass) + END_MSG_MAP() + + // Message handlers + LRESULT onCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); + LRESULT onClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled); + LRESULT onAdd(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); + LRESULT onEdit(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); + LRESULT onRemove(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); + LRESULT onHelpButton(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/); + LRESULT onHelpKey(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); + LRESULT onMoveUp(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); + LRESULT onMoveDown(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled); + LRESULT onDoubleClickList(int idCtrl, LPNMHDR pnmh, BOOL& bHandled); + LRESULT onItemChanged(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/); + LRESULT onKeyDown(int /*idCtrl*/, LPNMHDR pnmh, BOOL& /*bHandled*/); + LRESULT onContextMenu(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& bHandled); + LRESULT onChar(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled); + + // Update colors + LRESULT onCtlColor(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& bHandled) + { + HWND hWnd = (HWND)lParam; + HDC hDC = (HDC)wParam; + if(hWnd == ctrlList.m_hWnd) + { + ::SetBkColor(hDC, WinUtil::bgColor); + ::SetTextColor(hDC, WinUtil::textColor); + return (LRESULT)WinUtil::bgBrush; + } + bHandled = FALSE; + return FALSE; + } + + // Update control layouts + void UpdateLayout(BOOL bResizeBars = TRUE); + +private: + + // Communication with manager + void LoadAll(); + void UpdateSearch(int index, BOOL doDelete = TRUE); + + // Contained controls + CStatusBarCtrl ctrlStatus; + ExListViewCtrl ctrlList; + CButton ctrlAdd; + CButto... [truncated message content] |
From: <arn...@us...> - 2006-12-27 22:46:00
|
Revision: 700 http://svn.sourceforge.net/dcplusplus/?rev=700&view=rev Author: arnetheduck Date: 2006-12-27 14:45:57 -0800 (Wed, 27 Dec 2006) Log Message: ----------- patches Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/client/DirectoryListing.cpp dcplusplus/trunk/client/DirectoryListing.h dcplusplus/trunk/client/QueueManager.cpp dcplusplus/trunk/client/QueueManager.h dcplusplus/trunk/client/QueueManagerListener.h dcplusplus/trunk/client/SearchManager.cpp dcplusplus/trunk/client/ShareManager.cpp dcplusplus/trunk/client/ShareManager.h dcplusplus/trunk/client/Socket.cpp dcplusplus/trunk/windows/DirectoryListingFrm.cpp dcplusplus/trunk/windows/DirectoryListingFrm.h dcplusplus/trunk/windows/MainFrm.cpp dcplusplus/trunk/windows/MainFrm.h dcplusplus/trunk/windows/QueueFrame.cpp dcplusplus/trunk/windows/SearchFrm.cpp dcplusplus/trunk/windows/WinUtil.cpp dcplusplus/trunk/windows/WinUtil.h Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/changelog.txt 2006-12-27 22:45:57 UTC (rev 700) @@ -1,4 +1,11 @@ --- 0.699 2006-12-18 -- +-- -- +* [bug 1102] Fixed move/rename queue folder (thanks mikael eman) +* [bug 1124] Fixed thread shutdown on *nix (thanks mikael eman) +* Fixed invalid share size +* [bug 1127] Fixed crash on invalid file list (thanks steven sheehy) +* [bug 1019] Reworked initial filelist dir (thanks mikael eman) + +-- 0.699 2006-12-18 -- * Switched to VC8/VS2005 * Removed some unused options * Antifrag is now default Modified: dcplusplus/trunk/client/DirectoryListing.cpp =================================================================== --- dcplusplus/trunk/client/DirectoryListing.cpp 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/client/DirectoryListing.cpp 2006-12-27 22:45:57 UTC (rev 700) @@ -75,7 +75,7 @@ return p; } -void DirectoryListing::loadFile(const string& name) throw(FileException, SimpleXMLException) { +void DirectoryListing::loadFile(const string& name) throw(Exception) { string txt; // For now, we detect type by ending... Modified: dcplusplus/trunk/client/DirectoryListing.h =================================================================== --- dcplusplus/trunk/client/DirectoryListing.h 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/client/DirectoryListing.h 2006-12-27 22:45:57 UTC (rev 700) @@ -133,7 +133,7 @@ delete root; } - void loadFile(const string& name) throw(FileException, SimpleXMLException); + void loadFile(const string& name) throw(Exception); string loadXML(const string& xml, bool updating); Modified: dcplusplus/trunk/client/QueueManager.cpp =================================================================== --- dcplusplus/trunk/client/QueueManager.cpp 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/client/QueueManager.cpp 2006-12-27 22:45:57 UTC (rev 700) @@ -404,10 +404,14 @@ } } -void QueueManager::addList(const User::Ptr& aUser, int aFlags) throw(QueueException, FileException) { +void QueueManager::addList(const User::Ptr& aUser, int aFlags, const string& aInitialDir /* = Util::emptyString */) throw(QueueException, FileException) { // complete target is checked later, just remove path separators from the nick here string target = Util::getListPath() + Util::cleanPathChars(aUser->getFirstNick()) + "." + aUser->getCID().toBase32(); + if (!aInitialDir.empty()) { + dirMap[aUser->getCID().toBase32()] = aInitialDir; + } + add(target, -1, TTHValue(), aUser, QueueItem::FLAG_USER_LIST | aFlags); } @@ -802,7 +806,14 @@ | (q->isSet(QueueItem::FLAG_MATCH_QUEUE) ? QueueItem::FLAG_MATCH_QUEUE : 0); } - fire(QueueManagerListener::Finished(), q, aDownload->getAverageSpeed()); + string dir; + StringMapIter i = dirMap.find(aDownload->getUser()->getCID().toBase32()); + if (i != dirMap.end()) { + dir = i->second; + dirMap.erase(i); + } + + fire(QueueManagerListener::Finished(), q, dir, aDownload->getAverageSpeed()); fire(QueueManagerListener::Removed(), q); userQueue.remove(q); @@ -913,6 +924,11 @@ File::deleteFile(q->getTempTarget()); } + StringMapIter i = dirMap.find(q->getCurrent()->getCID().toBase32()); + if (i != dirMap.end()) { + dirMap.erase(i); + } + fire(QueueManagerListener::Removed(), q); userQueue.remove(q); Modified: dcplusplus/trunk/client/QueueManager.h =================================================================== --- dcplusplus/trunk/client/QueueManager.h 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/client/QueueManager.h 2006-12-27 22:45:57 UTC (rev 700) @@ -78,7 +78,7 @@ void add(const string& aTarget, int64_t aSize, const TTHValue& root, User::Ptr aUser, int aFlags = QueueItem::FLAG_RESUME, bool addBad = true) throw(QueueException, FileException); /** Add a user's filelist to the queue. */ - void addList(const User::Ptr& aUser, int aFlags) throw(QueueException, FileException); + void addList(const User::Ptr& aUser, int aFlags, const string& aInitialDir = Util::emptyString) throw(QueueException, FileException); /** Queue a partial file list download */ void addPfs(const User::Ptr& aUser, const string& aDir) throw(QueueException); /** Readd a source that was removed */ @@ -201,7 +201,8 @@ bool dirty; /** Next search */ uint32_t nextSearch; - + /** map for storing initial dir for file lists */ + StringMap dirMap; /** Sanity check for the target filename */ static string checkTarget(const string& aTarget, int64_t aSize, int& flags) throw(QueueException, FileException); /** Add a source to an existing queue item */ Modified: dcplusplus/trunk/client/QueueManagerListener.h =================================================================== --- dcplusplus/trunk/client/QueueManagerListener.h 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/client/QueueManagerListener.h 2006-12-27 22:45:57 UTC (rev 700) @@ -40,7 +40,7 @@ typedef X<7> PartialList; virtual void on(Added, QueueItem*) throw() { } - virtual void on(Finished, QueueItem*, int64_t) throw() { } + virtual void on(Finished, QueueItem*, const string&, int64_t) throw() { } virtual void on(Removed, QueueItem*) throw() { } virtual void on(Moved, QueueItem*, const string&) throw() { } virtual void on(SourcesUpdated, QueueItem*) throw() { } Modified: dcplusplus/trunk/client/SearchManager.cpp =================================================================== --- dcplusplus/trunk/client/SearchManager.cpp 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/client/SearchManager.cpp 2006-12-27 22:45:57 UTC (rev 700) @@ -112,9 +112,9 @@ stop = true; socket->disconnect(); port = 0; -#ifdef _WIN32 + join(); -#endif + stop = false; } } Modified: dcplusplus/trunk/client/ShareManager.cpp =================================================================== --- dcplusplus/trunk/client/ShareManager.cpp 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/client/ShareManager.cpp 2006-12-27 22:45:57 UTC (rev 700) @@ -703,6 +703,8 @@ addTree(*i->second); } + dir.size = 0; + for(Directory::File::Iter i = dir.files.begin(); i != dir.files.end(); ) { addFile(dir, i++); } Modified: dcplusplus/trunk/client/ShareManager.h =================================================================== --- dcplusplus/trunk/client/ShareManager.h 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/client/ShareManager.h 2006-12-27 22:45:57 UTC (rev 700) @@ -157,7 +157,7 @@ File::Set files; Directory(const string& aName = Util::emptyString, Directory* aParent = NULL) : - size(0), name(aName), parent(aParent), fileTypes(0) { + name(aName), parent(aParent), fileTypes(0) { } ~Directory(); Modified: dcplusplus/trunk/client/Socket.cpp =================================================================== --- dcplusplus/trunk/client/Socket.cpp 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/client/Socket.cpp 2006-12-27 22:45:57 UTC (rev 700) @@ -568,7 +568,7 @@ void Socket::shutdown() throw() { if(sock != INVALID_SOCKET) - ::shutdown(sock, 1); + ::shutdown(sock, 2); } void Socket::close() throw() { Modified: dcplusplus/trunk/windows/DirectoryListingFrm.cpp =================================================================== --- dcplusplus/trunk/windows/DirectoryListingFrm.cpp 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/windows/DirectoryListingFrm.cpp 2006-12-27 22:45:57 UTC (rev 700) @@ -41,7 +41,7 @@ DirectoryListingFrame::UserMap DirectoryListingFrame::lists; -void DirectoryListingFrame::openWindow(const tstring& aFile, const User::Ptr& aUser, int64_t aSpeed) { +void DirectoryListingFrame::openWindow(const tstring& aFile, const tstring& aDir, const User::Ptr& aUser, int64_t aSpeed) { UserIter i = lists.find(aUser); if(i != lists.end()) { if(!BOOLSETTING(POPUNDER_FILELIST)) { @@ -55,7 +55,7 @@ } else { frame->CreateEx(WinUtil::mdiClient); } - frame->loadFile(aFile); + frame->loadFile(aFile, aDir); frames.insert( FramePair( frame->m_hWnd, frame ) ); } } @@ -85,11 +85,11 @@ lists.insert(make_pair(aUser, this)); } -void DirectoryListingFrame::loadFile(const tstring& name) { +void DirectoryListingFrame::loadFile(const tstring& name, const tstring& dir) { try { dl->loadFile(Text::fromT(name)); ADLSearchManager::getInstance()->matchListing(*dl); - refreshTree(Text::toT(WinUtil::getInitialDir(dl->getUser()))); + refreshTree(dir); } catch(const Exception& e) { error = WinUtil::getNicks(dl->getUser()) + Text::toT(": " + e.getError()); } @@ -534,11 +534,15 @@ tstring file; if(WinUtil::browseFile(file, m_hWnd, false, Text::toT(Util::getListPath()), _T("File Lists\0*.xml.bz2\0All Files\0*.*\0"))) { DirectoryListing dirList(dl->getUser()); - dirList.loadFile(Text::fromT(file)); - dl->getRoot()->filterList(dirList); - refreshTree(Util::emptyStringT); - initStatus(); - updateStatus(); + try { + dirList.loadFile(Text::fromT(file)); + dl->getRoot()->filterList(dirList); + refreshTree(Util::emptyStringT); + initStatus(); + updateStatus(); + } catch(const Exception&) { + /// @todo report to user? + } } return 0; } Modified: dcplusplus/trunk/windows/DirectoryListingFrm.h =================================================================== --- dcplusplus/trunk/windows/DirectoryListingFrm.h 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/windows/DirectoryListingFrm.h 2006-12-27 22:45:57 UTC (rev 700) @@ -42,7 +42,7 @@ { public: - static void openWindow(const tstring& aFile, const User::Ptr& aUser, int64_t aSpeed); + static void openWindow(const tstring& aFile, const tstring& aDir, const User::Ptr& aUser, int64_t aSpeed); static void openWindow(const User::Ptr& aUser, const string& txt, int64_t aSpeed); static void closeAll(); @@ -144,7 +144,7 @@ void UpdateLayout(BOOL bResizeBars = TRUE); void findFile(bool findNext); void runUserCommand(UserCommand& uc); - void loadFile(const tstring& name); + void loadFile(const tstring& name, const tstring& dir); void loadXML(const string& txt); void refreshTree(const tstring& root); Modified: dcplusplus/trunk/windows/MainFrm.cpp =================================================================== --- dcplusplus/trunk/windows/MainFrm.cpp 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/windows/MainFrm.cpp 2006-12-27 22:45:57 UTC (rev 700) @@ -483,7 +483,7 @@ if(wParam == DOWNLOAD_LISTING) { auto_ptr<DirectoryListInfo> i(reinterpret_cast<DirectoryListInfo*>(lParam)); - DirectoryListingFrame::openWindow(i->file, i->user, i->speed); + DirectoryListingFrame::openWindow(i->file, i->dir, i->user, i->speed); } else if(wParam == BROWSE_LISTING) { auto_ptr<DirectoryBrowseInfo> i(reinterpret_cast<DirectoryBrowseInfo*>(lParam)); DirectoryListingFrame::openWindow(i->user, i->text, 0); @@ -971,7 +971,7 @@ if(WinUtil::browseFile(file, m_hWnd, false, Text::toT(Util::getListPath()), types)) { User::Ptr u = DirectoryListing::getUserFromFilename(Text::fromT(file)); if(u) { - DirectoryListingFrame::openWindow(file, u, 0); + DirectoryListingFrame::openWindow(file, Text::toT(Util::emptyString), u, 0); } else { MessageBox(CTSTRING(INVALID_LISTNAME), _T(APPNAME) _T(" ") _T(VERSIONSTRING)); } @@ -981,7 +981,7 @@ LRESULT MainFrame::onOpenOwnList(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { if(!ShareManager::getInstance()->getOwnListFile().empty()){ - DirectoryListingFrame::openWindow(Text::toT(ShareManager::getInstance()->getOwnListFile()), ClientManager::getInstance()->getMe(), 0); + DirectoryListingFrame::openWindow(Text::toT(ShareManager::getInstance()->getOwnListFile()), Text::toT(Util::emptyString), ClientManager::getInstance()->getMe(), 0); } return 0; } @@ -1125,11 +1125,11 @@ PostMessage(WM_SPEAKER, BROWSE_LISTING, (LPARAM)new DirectoryBrowseInfo(aUser, text)); } -void MainFrame::on(QueueManagerListener::Finished, QueueItem* qi, int64_t speed) throw() { +void MainFrame::on(QueueManagerListener::Finished, QueueItem* qi, const string& dir, int64_t speed) throw() { if(qi->isSet(QueueItem::FLAG_CLIENT_VIEW)) { if(qi->isSet(QueueItem::FLAG_USER_LIST)) { // This is a file listing, show it... - DirectoryListInfo* i = new DirectoryListInfo(qi->getCurrent(), Text::toT(qi->getListName()), speed); + DirectoryListInfo* i = new DirectoryListInfo(qi->getCurrent(), Text::toT(qi->getListName()), Text::toT(dir), speed); PostMessage(WM_SPEAKER, DOWNLOAD_LISTING, (LPARAM)i); } else if(qi->isSet(QueueItem::FLAG_TEXT)) { Modified: dcplusplus/trunk/windows/MainFrm.h =================================================================== --- dcplusplus/trunk/windows/MainFrm.h 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/windows/MainFrm.h 2006-12-27 22:45:57 UTC (rev 700) @@ -297,9 +297,10 @@ class DirectoryListInfo { public: - DirectoryListInfo(const User::Ptr& aUser, const tstring& aFile, int64_t aSpeed) : user(aUser), file(aFile), speed(aSpeed) { } + DirectoryListInfo(const User::Ptr& aUser, const tstring& aFile, const tstring& aDir, int64_t aSpeed) : user(aUser), file(aFile), dir(aDir), speed(aSpeed) { } User::Ptr user; tstring file; + tstring dir; int64_t speed; }; class DirectoryBrowseInfo { @@ -376,7 +377,7 @@ virtual void on(HttpConnectionListener::Data, HttpConnection* /*conn*/, const uint8_t* buf, size_t len) throw(); // QueueManagerListener - virtual void on(QueueManagerListener::Finished, QueueItem* qi, int64_t speed) throw(); + virtual void on(QueueManagerListener::Finished, QueueItem* qi, const string& dir, int64_t speed) throw(); virtual void on(PartialList, const User::Ptr&, const string& text) throw(); // UPnP connectors Modified: dcplusplus/trunk/windows/QueueFrame.cpp =================================================================== --- dcplusplus/trunk/windows/QueueFrame.cpp 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/windows/QueueFrame.cpp 2006-12-27 22:45:57 UTC (rev 700) @@ -697,7 +697,8 @@ void QueueFrame::moveDir(HTREEITEM ht, const string& target) { HTREEITEM next = ctrlDirs.GetChildItem(ht); while(next != NULL) { - moveDir(next, target + Util::getLastDir(getDir(next))); + // must add path separator since getLastDir only give us the name + moveDir(next, target + Util::getLastDir(getDir(next)) + PATH_SEPARATOR); next = ctrlDirs.GetNextSiblingItem(next); } string* s = (string*)ctrlDirs.GetItemData(ht); Modified: dcplusplus/trunk/windows/SearchFrm.cpp =================================================================== --- dcplusplus/trunk/windows/SearchFrm.cpp 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/windows/SearchFrm.cpp 2006-12-27 22:45:57 UTC (rev 700) @@ -471,8 +471,7 @@ void SearchFrame::SearchInfo::getList() { try { - WinUtil::addInitalDir(sr->getUser(), Text::fromT(columns[COLUMN_PATH])); - QueueManager::getInstance()->addList(sr->getUser(), QueueItem::FLAG_CLIENT_VIEW); + QueueManager::getInstance()->addList(sr->getUser(), QueueItem::FLAG_CLIENT_VIEW, Text::fromT(columns[COLUMN_PATH])); } catch(const Exception&) { // Ignore for now... } Modified: dcplusplus/trunk/windows/WinUtil.cpp =================================================================== --- dcplusplus/trunk/windows/WinUtil.cpp 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/windows/WinUtil.cpp 2006-12-27 22:45:57 UTC (rev 700) @@ -65,7 +65,6 @@ FlatTabCtrl* WinUtil::tabCtrl = NULL; HHOOK WinUtil::hook = NULL; tstring WinUtil::tth; -StringPairList WinUtil::initialDirs; DWORD WinUtil::helpCookie = 0; bool WinUtil::urlDcADCRegistered = false; bool WinUtil::urlMagnetRegistered = false; Modified: dcplusplus/trunk/windows/WinUtil.h =================================================================== --- dcplusplus/trunk/windows/WinUtil.h 2006-12-18 21:32:33 UTC (rev 699) +++ dcplusplus/trunk/windows/WinUtil.h 2006-12-27 22:45:57 UTC (rev 700) @@ -189,7 +189,6 @@ static tstring commands; static HHOOK hook; static tstring tth; - static StringPairList initialDirs; static DWORD helpCookie; static void init(HWND hWnd); @@ -203,27 +202,6 @@ static void decodeFont(const tstring& setting, LOGFONT &dest); - static void addInitalDir(const User::Ptr& user, string dir) { - // Clear out previos initial dirs, just in case - /// @todo clean up - getInitialDir(user); - while(initialDirs.size() > 30) { - initialDirs.erase(initialDirs.begin()); - } - initialDirs.push_back(make_pair(user->getCID().toBase32(), dir)); - } - - static string getInitialDir(const User::Ptr& user) { - for(StringPairIter i = initialDirs.begin(); i != initialDirs.end(); ++i) { - if(i->first == user->getCID().toBase32()) { - string dir = i->second; - initialDirs.erase(i); - return dir; - } - } - return Util::emptyString; - } - static bool getVersionInfo(OSVERSIONINFOEX& ver); /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2006-12-18 21:32:35
|
Revision: 699 http://svn.sourceforge.net/dcplusplus/?rev=699&view=rev Author: arnetheduck Date: 2006-12-18 13:32:33 -0800 (Mon, 18 Dec 2006) Log Message: ----------- 0.699 Added Paths: ----------- dcplusplus/tags/dcplusplus-0.699/ dcplusplus/tags/dcplusplus-0.699/help/ dcplusplus/tags/dcplusplus-0.699/help/DCPlusPlus.hhp dcplusplus/tags/dcplusplus-0.699/help/Links.html dcplusplus/tags/dcplusplus-0.699/help/adlsearch.html dcplusplus/tags/dcplusplus-0.699/help/chat_commands.html dcplusplus/tags/dcplusplus-0.699/help/compile.cmd dcplusplus/tags/dcplusplus-0.699/help/credits.html dcplusplus/tags/dcplusplus-0.699/help/dev_applypatch.html dcplusplus/tags/dcplusplus-0.699/help/dev_createpatch.html dcplusplus/tags/dcplusplus-0.699/help/external.png dcplusplus/tags/dcplusplus-0.699/help/faq_activemode.html dcplusplus/tags/dcplusplus-0.699/help/faq_different_icons.html dcplusplus/tags/dcplusplus-0.699/help/faq_install.html dcplusplus/tags/dcplusplus-0.699/help/faq_keyboard_commands.html dcplusplus/tags/dcplusplus-0.699/help/faq_nosearch.html dcplusplus/tags/dcplusplus-0.699/help/faq_secret.html dcplusplus/tags/dcplusplus-0.699/help/faq_slowdownload.html dcplusplus/tags/dcplusplus-0.699/help/faq_units.html dcplusplus/tags/dcplusplus-0.699/help/faq_university.html dcplusplus/tags/dcplusplus-0.699/help/faq_upnp.html dcplusplus/tags/dcplusplus-0.699/help/favorite_hubs.html dcplusplus/tags/dcplusplus-0.699/help/favorite_users.html dcplusplus/tags/dcplusplus-0.699/help/fdl.html dcplusplus/tags/dcplusplus-0.699/help/gen_changelog.py dcplusplus/tags/dcplusplus-0.699/help/help.vcproj dcplusplus/tags/dcplusplus-0.699/help/index.hhk dcplusplus/tags/dcplusplus-0.699/help/index.html dcplusplus/tags/dcplusplus-0.699/help/logo.jpg dcplusplus/tags/dcplusplus-0.699/help/netiquette.html dcplusplus/tags/dcplusplus-0.699/help/non-routable.html dcplusplus/tags/dcplusplus-0.699/help/office11.css dcplusplus/tags/dcplusplus-0.699/help/plusplus_tag.html dcplusplus/tags/dcplusplus-0.699/help/public_hubs.html dcplusplus/tags/dcplusplus-0.699/help/settings_advanced.html dcplusplus/tags/dcplusplus-0.699/help/settings_appearance.html dcplusplus/tags/dcplusplus-0.699/help/settings_certs.html dcplusplus/tags/dcplusplus-0.699/help/settings_colors_and_sounds.html dcplusplus/tags/dcplusplus-0.699/help/settings_connection.html dcplusplus/tags/dcplusplus-0.699/help/settings_downloads.html dcplusplus/tags/dcplusplus-0.699/help/settings_expert.html dcplusplus/tags/dcplusplus-0.699/help/settings_favoritedirs.html dcplusplus/tags/dcplusplus-0.699/help/settings_general.html dcplusplus/tags/dcplusplus-0.699/help/settings_logs.html dcplusplus/tags/dcplusplus-0.699/help/settings_queue.html dcplusplus/tags/dcplusplus-0.699/help/settings_sharing.html dcplusplus/tags/dcplusplus-0.699/help/settings_tabs.html dcplusplus/tags/dcplusplus-0.699/help/settings_usercommands.html dcplusplus/tags/dcplusplus-0.699/help/settings_windows.html dcplusplus/tags/dcplusplus-0.699/help/template.html dcplusplus/tags/dcplusplus-0.699/help/toc.hhc Removed Paths: ------------- dcplusplus/tags/dcplusplus-0.699/help/ dcplusplus/tags/dcplusplus-0.699/help/DCPlusPlus.hhp dcplusplus/tags/dcplusplus-0.699/help/Links.html dcplusplus/tags/dcplusplus-0.699/help/adlsearch.html dcplusplus/tags/dcplusplus-0.699/help/chat_commands.html dcplusplus/tags/dcplusplus-0.699/help/compile.cmd dcplusplus/tags/dcplusplus-0.699/help/credits.html dcplusplus/tags/dcplusplus-0.699/help/dev_applypatch.html dcplusplus/tags/dcplusplus-0.699/help/dev_createpatch.html dcplusplus/tags/dcplusplus-0.699/help/external.png dcplusplus/tags/dcplusplus-0.699/help/faq_activemode.html dcplusplus/tags/dcplusplus-0.699/help/faq_different_icons.html dcplusplus/tags/dcplusplus-0.699/help/faq_install.html dcplusplus/tags/dcplusplus-0.699/help/faq_keyboard_commands.html dcplusplus/tags/dcplusplus-0.699/help/faq_nosearch.html dcplusplus/tags/dcplusplus-0.699/help/faq_secret.html dcplusplus/tags/dcplusplus-0.699/help/faq_slowdownload.html dcplusplus/tags/dcplusplus-0.699/help/faq_units.html dcplusplus/tags/dcplusplus-0.699/help/faq_university.html dcplusplus/tags/dcplusplus-0.699/help/faq_upnp.html dcplusplus/tags/dcplusplus-0.699/help/favorite_hubs.html dcplusplus/tags/dcplusplus-0.699/help/favorite_users.html dcplusplus/tags/dcplusplus-0.699/help/fdl.html dcplusplus/tags/dcplusplus-0.699/help/gen_changelog.py dcplusplus/tags/dcplusplus-0.699/help/help.vcproj dcplusplus/tags/dcplusplus-0.699/help/index.hhk dcplusplus/tags/dcplusplus-0.699/help/index.html dcplusplus/tags/dcplusplus-0.699/help/logo.jpg dcplusplus/tags/dcplusplus-0.699/help/netiquette.html dcplusplus/tags/dcplusplus-0.699/help/non-routable.html dcplusplus/tags/dcplusplus-0.699/help/office11.css dcplusplus/tags/dcplusplus-0.699/help/plusplus_tag.html dcplusplus/tags/dcplusplus-0.699/help/public_hubs.html dcplusplus/tags/dcplusplus-0.699/help/settings_advanced.html dcplusplus/tags/dcplusplus-0.699/help/settings_appearance.html dcplusplus/tags/dcplusplus-0.699/help/settings_certs.html dcplusplus/tags/dcplusplus-0.699/help/settings_colors_and_sounds.html dcplusplus/tags/dcplusplus-0.699/help/settings_connection.html dcplusplus/tags/dcplusplus-0.699/help/settings_downloads.html dcplusplus/tags/dcplusplus-0.699/help/settings_expert.html dcplusplus/tags/dcplusplus-0.699/help/settings_favoritedirs.html dcplusplus/tags/dcplusplus-0.699/help/settings_general.html dcplusplus/tags/dcplusplus-0.699/help/settings_logs.html dcplusplus/tags/dcplusplus-0.699/help/settings_queue.html dcplusplus/tags/dcplusplus-0.699/help/settings_sharing.html dcplusplus/tags/dcplusplus-0.699/help/settings_tabs.html dcplusplus/tags/dcplusplus-0.699/help/settings_usercommands.html dcplusplus/tags/dcplusplus-0.699/help/settings_windows.html dcplusplus/tags/dcplusplus-0.699/help/template.html dcplusplus/tags/dcplusplus-0.699/help/toc.hhc Copied: dcplusplus/tags/dcplusplus-0.699 (from rev 697, dcplusplus/trunk) Copied: dcplusplus/tags/dcplusplus-0.699/help (from rev 698, dcplusplus/trunk/help) Deleted: dcplusplus/tags/dcplusplus-0.699/help/DCPlusPlus.hhp =================================================================== --- dcplusplus/trunk/help/DCPlusPlus.hhp 2006-12-18 21:18:27 UTC (rev 698) +++ dcplusplus/tags/dcplusplus-0.699/help/DCPlusPlus.hhp 2006-12-18 21:32:33 UTC (rev 699) @@ -1,84 +0,0 @@ -[OPTIONS] -Auto Index=Yes -Compatibility=1.1 or later -Compiled file=..\app\DCPlusPlus.chm -Contents file=toc.hhc -Default topic=index.html -Display compile progress=Yes -Enhanced decompilation=Yes -Full-text search=Yes -Index file=index.hhk -Language=0x409 English (United States) -Title=Help for DC++ - - -[FILES] -office11.css -index.html -changelog.html -settings_advanced.html -settings_appearance.html -settings_downloads.html -settings_general.html -settings_logs.html -settings_sharing.html -settings_usercommands.html -settings_colors_and_sounds.html -settings_expert.html -settings_connection.html -settings_windows.html -settings_queue.html -settings_certs.html -settings_tabs.html -chat_commands.html -non-routable.html -plusplus_tag.html -netiquette.html -credits.html -adlsearch.html -public_hubs.html -favorite_hubs.html -favorite_users.html -fdl.html -settings_favoritedirs.html -faq_keyboard_commands.html -faq_upnp.html -faq_activemode.html -faq_university.html -faq_nosearch.html -faq_slowdownload.html -faq_different_icons.html -faq_units.html -faq_install.html -faq_secret.html -dev_createpatch.html -dev_applypatch.html -links.html - -[ALIAS] -IDC_HELP_CHANGELOG=changelog.html -IDD_ADVANCED3PAGE=settings_expert.html -IDD_ADVANCEDPAGE=settings_advanced.html -IDD_APPEARANCE2PAGE=settings_colors_and_sounds.html -IDD_APPEARANCEPAGE=settings_appearance.html -IDD_DOWNLOADPAGE=settings_downloads.html -IDD_DOWNLOADPAGE=settings_sharing.html -IDD_FAVORITE_DIRSPAGE=settings_favoritedirs.html -IDD_GENERALPAGE=settings_general.html -IDD_KEYBOARD=faq_keyboard_commands.html -IDD_LOGPAGE=settings_logs.html -IDD_NETWORKPAGE=settings_connection.html -IDD_QUEUEPAGE=settings_queue.html -IDD_STARTPAGE=index.html -IDD_UCPAGE=settings_usercommands.html -IDD_UPLOADPAGE=settings_sharing.html -IDD_WINDOWSPAGE=settings_windows.html -IDR_ADLSEARCH=adlsearch.html -IDD_CERTSPAGE=settings_certs.html -IDD_TABSPAGE=settings_tabs.html - -[MAP] -#include ..\windows\resource.h - -[INFOTYPES] - Copied: dcplusplus/tags/dcplusplus-0.699/help/DCPlusPlus.hhp (from rev 697, dcplusplus/trunk/help/DCPlusPlus.hhp) =================================================================== --- dcplusplus/tags/dcplusplus-0.699/help/DCPlusPlus.hhp (rev 0) +++ dcplusplus/tags/dcplusplus-0.699/help/DCPlusPlus.hhp 2006-12-18 21:32:33 UTC (rev 699) @@ -0,0 +1,84 @@ +[OPTIONS] +Auto Index=Yes +Compatibility=1.1 or later +Compiled file=..\app\DCPlusPlus.chm +Contents file=toc.hhc +Default topic=index.html +Display compile progress=Yes +Enhanced decompilation=Yes +Full-text search=Yes +Index file=index.hhk +Language=0x409 English (United States) +Title=Help for DC++ + + +[FILES] +office11.css +index.html +changelog.html +settings_advanced.html +settings_appearance.html +settings_downloads.html +settings_general.html +settings_logs.html +settings_sharing.html +settings_usercommands.html +settings_colors_and_sounds.html +settings_expert.html +settings_connection.html +settings_windows.html +settings_queue.html +settings_certs.html +settings_tabs.html +chat_commands.html +non-routable.html +plusplus_tag.html +netiquette.html +credits.html +adlsearch.html +public_hubs.html +favorite_hubs.html +favorite_users.html +fdl.html +settings_favoritedirs.html +faq_keyboard_commands.html +faq_upnp.html +faq_activemode.html +faq_university.html +faq_nosearch.html +faq_slowdownload.html +faq_different_icons.html +faq_units.html +faq_install.html +faq_secret.html +dev_createpatch.html +dev_applypatch.html +links.html + +[ALIAS] +IDC_HELP_CHANGELOG=changelog.html +IDD_ADVANCED3PAGE=settings_expert.html +IDD_ADVANCEDPAGE=settings_advanced.html +IDD_APPEARANCE2PAGE=settings_colors_and_sounds.html +IDD_APPEARANCEPAGE=settings_appearance.html +IDD_DOWNLOADPAGE=settings_downloads.html +IDD_DOWNLOADPAGE=settings_sharing.html +IDD_FAVORITE_DIRSPAGE=settings_favoritedirs.html +IDD_GENERALPAGE=settings_general.html +IDD_KEYBOARD=faq_keyboard_commands.html +IDD_LOGPAGE=settings_logs.html +IDD_NETWORKPAGE=settings_connection.html +IDD_QUEUEPAGE=settings_queue.html +IDD_STARTPAGE=index.html +IDD_UCPAGE=settings_usercommands.html +IDD_UPLOADPAGE=settings_sharing.html +IDD_WINDOWSPAGE=settings_windows.html +IDR_ADLSEARCH=adlsearch.html +IDD_CERTSPAGE=settings_certs.html +IDD_TABSPAGE=settings_tabs.html + +[MAP] +#include ..\windows\resource.h + +[INFOTYPES] + Deleted: dcplusplus/tags/dcplusplus-0.699/help/Links.html =================================================================== --- dcplusplus/trunk/help/Links.html 2006-12-18 21:18:27 UTC (rev 698) +++ dcplusplus/tags/dcplusplus-0.699/help/Links.html 2006-12-18 21:32:33 UTC (rev 699) @@ -1,54 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <title>Links</title> - <meta content="text/html; charset=us-ascii" http-equiv="content-type"> - <link type="text/css" rel="stylesheet" href="office11.css"> -</head> -<body> -<h1>Links</h1> -<dl> -</dl> -<span style="font-weight: bold;"></span> -<table style="text-align: left;" border="0" cellpadding="2" cellspacing="2"> - <tbody> - <tr> - <td><span style="font-weight: bold;"></span>Homepage</td> - <td><a href="http://dcplusplus.sourceforge.net" target="_blank" class="external">http://dcplusplus.sourceforge.net</a> <img title="External Link" src="external.png" border="0" height="10" width="10"></td> - </tr> - <tr> - <td><span style="font-weight: bold;"></span>Forum</td> - <td><a href="http://dcpp.net/forum/" target="_blank" class="external">http://dcpp.net/forum/</a> <img title="External Link" src="external.png" border="0" height="10" width="10"></td> - </tr> - <tr> - <td><span style="font-weight: bold;"></span>Report bugs</td> - <td><a href="http://dcpp.net/bugzilla/" target="_blank" class="external">http://dcpp.net/bugzilla/</a> - <img title="External Link" src="external.png" border="0" height="10" width="10"></td> - </tr> - <tr> - <td><span style="font-weight: bold;"></span>Request features</td> - <td><a href="http://dcpp.net/bugzilla/" target="_blank" class="external">http://dcpp.net/bugzilla/</a> - <img title="External Link" src="external.png" border="0" height="10" width="10"></td> - </tr> - <tr> - <td>Documentation Wiki</td> - <td><a href="http://dcpp.net/wiki/" target="_blank" class="external">http://dcpp.net/wiki/</a> - <img title="External Link" src="external.png" border="0" height="10" width="10"></td> - </tr> - <tr> - <td><span style="font-weight: bold;"></span><a name="languagefiles">Download language files</td> - <td><a href="http://sourceforge.net/tracker/?atid=460289&group_id=40287&func=browse" target="_blank" class="external">http://sourceforge.net/tracker/?atid=460289&group_id=40287&func=browse</a> - <img title="External Link" src="external.png" border="0" height="10" width="10"></td> - </tr> - <tr> - <td><span style="font-weight: bold;"></span>Get newest version</td> - <td><a href="http://dcplusplus.sourceforge.net/index.php?t=2&s=1" target="_blank" class="external">http://dcplusplus.sourceforge.net/index.php?t=2&s=1</a> <img title="External Link" src="external.png" border="0" height="10" width="10"></td> - </tr> - <tr> - <td><span style="font-weight: bold;"></span>GeoIP database update</td> - <td><a href="http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip" target="_blank" class="external">http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip</a> <img title="External Link" src="external.png" border="0" height="10" width="10"></td> - </tr> - </tbody> -</table> -</body> -</html> Copied: dcplusplus/tags/dcplusplus-0.699/help/Links.html (from rev 697, dcplusplus/trunk/help/Links.html) =================================================================== --- dcplusplus/tags/dcplusplus-0.699/help/Links.html (rev 0) +++ dcplusplus/tags/dcplusplus-0.699/help/Links.html 2006-12-18 21:32:33 UTC (rev 699) @@ -0,0 +1,54 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>Links</title> + <meta content="text/html; charset=us-ascii" http-equiv="content-type"> + <link type="text/css" rel="stylesheet" href="office11.css"> +</head> +<body> +<h1>Links</h1> +<dl> +</dl> +<span style="font-weight: bold;"></span> +<table style="text-align: left;" border="0" cellpadding="2" cellspacing="2"> + <tbody> + <tr> + <td><span style="font-weight: bold;"></span>Homepage</td> + <td><a href="http://dcplusplus.sourceforge.net" target="_blank" class="external">http://dcplusplus.sourceforge.net</a> <img title="External Link" src="external.png" border="0" height="10" width="10"></td> + </tr> + <tr> + <td><span style="font-weight: bold;"></span>Forum</td> + <td><a href="http://dcpp.net/forum/" target="_blank" class="external">http://dcpp.net/forum/</a> <img title="External Link" src="external.png" border="0" height="10" width="10"></td> + </tr> + <tr> + <td><span style="font-weight: bold;"></span>Report bugs</td> + <td><a href="http://dcpp.net/bugzilla/" target="_blank" class="external">http://dcpp.net/bugzilla/</a> + <img title="External Link" src="external.png" border="0" height="10" width="10"></td> + </tr> + <tr> + <td><span style="font-weight: bold;"></span>Request features</td> + <td><a href="http://dcpp.net/bugzilla/" target="_blank" class="external">http://dcpp.net/bugzilla/</a> + <img title="External Link" src="external.png" border="0" height="10" width="10"></td> + </tr> + <tr> + <td>Documentation Wiki</td> + <td><a href="http://dcpp.net/wiki/" target="_blank" class="external">http://dcpp.net/wiki/</a> + <img title="External Link" src="external.png" border="0" height="10" width="10"></td> + </tr> + <tr> + <td><span style="font-weight: bold;"></span><a name="languagefiles">Download language files</td> + <td><a href="http://sourceforge.net/tracker/?atid=460289&group_id=40287&func=browse" target="_blank" class="external">http://sourceforge.net/tracker/?atid=460289&group_id=40287&func=browse</a> + <img title="External Link" src="external.png" border="0" height="10" width="10"></td> + </tr> + <tr> + <td><span style="font-weight: bold;"></span>Get newest version</td> + <td><a href="http://dcplusplus.sourceforge.net/index.php?t=2&s=1" target="_blank" class="external">http://dcplusplus.sourceforge.net/index.php?t=2&s=1</a> <img title="External Link" src="external.png" border="0" height="10" width="10"></td> + </tr> + <tr> + <td><span style="font-weight: bold;"></span>GeoIP database update</td> + <td><a href="http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip" target="_blank" class="external">http://www.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip</a> <img title="External Link" src="external.png" border="0" height="10" width="10"></td> + </tr> + </tbody> +</table> +</body> +</html> Deleted: dcplusplus/tags/dcplusplus-0.699/help/adlsearch.html =================================================================== --- dcplusplus/trunk/help/adlsearch.html 2006-12-18 21:18:27 UTC (rev 698) +++ dcplusplus/tags/dcplusplus-0.699/help/adlsearch.html 2006-12-18 21:32:33 UTC (rev 699) @@ -1,69 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta content="text/html; charset=us-ascii" http-equiv="content-type"> - <link type="text/css" rel="stylesheet" href="office11.css"> - <title>ADLSearch</title> -</head> -<body> -<h1>Automatic Directory Listing Search</h1> -<h2>What is Automatic Directory Listing Search?</h2> -Automatic Directory Listing Search (ADLSearch) is a tool for searching -of file lists downloaded from users. Create a new ADLSearch entering -'avi' as search string for example. When you download a directory -listing from a user, all avi-files will be placed in a special folder -called <span style="font-weight: bold;"><<<ADLSearch>>></span>. -<h2>Search Options</h2> -<dl style="margin-left: 40px;"> - <dt>Search String</dt> - <dd>This is the set of search strings to search for.</dd> - <dt>Source Type</dt> - <dd>One of following values:</dd> -</dl> -<dl style="margin-left: 80px;"> - <dt>Filename</dt> - <dd>Matches search against filename.</dd> - <dt><a name="directory"></a>Directory</dt> - <dd>Matches against current subdirectory and places the whole -structure in the special folder.</dd> - <dt>Full Path</dt> - <dd>Matches against whole directory + filename.</dd> -</dl> -<dl style="margin-left: 40px;"> - <dt>Min/Max Filesize</dt> - <dd>Sets the upper and lower limits for file size. This is unused for - <a href="#directory">Directory</a> searches.</dd> - <dt>Size Type</dt> - <dd>Sets the units for the search sizes.</dd> - <dt>Destination Directory</dt> - <dd>Sets the output folder for a search. Multiple folders with -different names can exist simultaneously. Each folder name gets wrapped -in <<< and >>>.</dd> - <dt>Enabled</dt> - <dd>Marks the search as active or inactive.</dd> - <dt>Download Matches</dt> - <dd>When checked, matches to this search will be put into your -Download Queue.</dd> -</dl> -<h2>Extra Features</h2> -<ol> - <li>There is a new option in the context menu (right-click) for -directory listings. It is called 'Go to directory' and can be used to -jump to the original location of the file or directory.</li> - <li>If you use <a href="settings_logs.html#timeformat">time -formatting</a> variables, they will be replaced by today's date. If you -use %[nick] it will be replaced by the nick of the user you download -the directory listing from.</li> - <li>If you name a destination directory 'discard', it will not be -shown in the total result. Useful with the feature below to remove -uninteresting results.</li> - <li>There is a setting called <a href="settings_advanced.html#break">Break -on First ADLSearch Match</a>. If enabled, ADLSearch will stop after the -first match for a specific file/directory.The order in the ADLSearch -windows is therefore important. Example: Add a search item at the top -of the list with string='xxx' and destination='discard'. It will catch -many pornographic files and they will not be included in any following -search results.</li> -</ol> -</body> -</html> Copied: dcplusplus/tags/dcplusplus-0.699/help/adlsearch.html (from rev 697, dcplusplus/trunk/help/adlsearch.html) =================================================================== --- dcplusplus/tags/dcplusplus-0.699/help/adlsearch.html (rev 0) +++ dcplusplus/tags/dcplusplus-0.699/help/adlsearch.html 2006-12-18 21:32:33 UTC (rev 699) @@ -0,0 +1,69 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <meta content="text/html; charset=us-ascii" http-equiv="content-type"> + <link type="text/css" rel="stylesheet" href="office11.css"> + <title>ADLSearch</title> +</head> +<body> +<h1>Automatic Directory Listing Search</h1> +<h2>What is Automatic Directory Listing Search?</h2> +Automatic Directory Listing Search (ADLSearch) is a tool for searching +of file lists downloaded from users. Create a new ADLSearch entering +'avi' as search string for example. When you download a directory +listing from a user, all avi-files will be placed in a special folder +called <span style="font-weight: bold;"><<<ADLSearch>>></span>. +<h2>Search Options</h2> +<dl style="margin-left: 40px;"> + <dt>Search String</dt> + <dd>This is the set of search strings to search for.</dd> + <dt>Source Type</dt> + <dd>One of following values:</dd> +</dl> +<dl style="margin-left: 80px;"> + <dt>Filename</dt> + <dd>Matches search against filename.</dd> + <dt><a name="directory"></a>Directory</dt> + <dd>Matches against current subdirectory and places the whole +structure in the special folder.</dd> + <dt>Full Path</dt> + <dd>Matches against whole directory + filename.</dd> +</dl> +<dl style="margin-left: 40px;"> + <dt>Min/Max Filesize</dt> + <dd>Sets the upper and lower limits for file size. This is unused for + <a href="#directory">Directory</a> searches.</dd> + <dt>Size Type</dt> + <dd>Sets the units for the search sizes.</dd> + <dt>Destination Directory</dt> + <dd>Sets the output folder for a search. Multiple folders with +different names can exist simultaneously. Each folder name gets wrapped +in <<< and >>>.</dd> + <dt>Enabled</dt> + <dd>Marks the search as active or inactive.</dd> + <dt>Download Matches</dt> + <dd>When checked, matches to this search will be put into your +Download Queue.</dd> +</dl> +<h2>Extra Features</h2> +<ol> + <li>There is a new option in the context menu (right-click) for +directory listings. It is called 'Go to directory' and can be used to +jump to the original location of the file or directory.</li> + <li>If you use <a href="settings_logs.html#timeformat">time +formatting</a> variables, they will be replaced by today's date. If you +use %[nick] it will be replaced by the nick of the user you download +the directory listing from.</li> + <li>If you name a destination directory 'discard', it will not be +shown in the total result. Useful with the feature below to remove +uninteresting results.</li> + <li>There is a setting called <a href="settings_advanced.html#break">Break +on First ADLSearch Match</a>. If enabled, ADLSearch will stop after the +first match for a specific file/directory.The order in the ADLSearch +windows is therefore important. Example: Add a search item at the top +of the list with string='xxx' and destination='discard'. It will catch +many pornographic files and they will not be included in any following +search results.</li> +</ol> +</body> +</html> Deleted: dcplusplus/tags/dcplusplus-0.699/help/chat_commands.html =================================================================== --- dcplusplus/trunk/help/chat_commands.html 2006-12-18 21:18:27 UTC (rev 698) +++ dcplusplus/tags/dcplusplus-0.699/help/chat_commands.html 2006-12-18 21:32:33 UTC (rev 699) @@ -1,110 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <title>Chat Commands</title> - <meta content="text/html; charset=us-ascii" http-equiv="content-type"> - <link type="text/css" rel="stylesheet" href="office11.css"> -</head> -<body> -<h1>Chat Commands</h1> -<h2>Main Chat</h2> -<dl style="margin-left: 40px;"> - <dt>/join <hub-ip></dt> - <dd>Joins <hub-ip>. See also <a - href="settings_windows.html#new_window">Open new window when using -/join</a>.</dd> - <dt><a name="ts"></a>/ts</dt> - <dd>Toggles the showing of time stamps on new chat messages. It -does not add time stamps to already received chat lines.</dd> - <dt><a name="showjoins"></a>/showjoins</dt> - <dd>Toggles the displaying of users joining the hub. This only -takes effect for freshly-arriving users.</dd> - <dt>/favshowjoins</dt> - <dd>Toggles the displaying of favorite users joining the hub. Does -not require /showjoins to be enabled.</dd> - <dt>/userlist</dt> - <dd>Toggles visibility of the list of users for the current -hub.</dd> - <dt>/connection</dt> - <dd>Displays the IP and port that DC++ will tell users to connect -to. If either the IP or port is not correct, you will be unable -to download from some users. This is only useful in <span - style="text-decoration: underline;">active</span> mode - the IP and -port are unused in passive mode.</dd> - <dt>/favorite</dt> - <dt>/fav</dt> - <dd>Adds the current hub (along with your nickname and password, if -used) to the list of <a href="favorite_hubs.html">Favorite Hubs</a>.</dd> - <dt>/removefavorite</dt> - <dt>/removefav</dt> - <dd>Removes the current hub from the list of <a href="favorite_hubs.html">Favorite Hubs</a>.</dd> - <dt>/pm <user> [message]</dt> - <dd>Opens a private message window to the user, and optionally sends -the message, if one was specified.</dd> - <dt>/getlist <user></dt> - <dd>Adds the user's list to the Download Queue.</dd> -</dl> -<h2>Private Message</h2> -<dl style="margin-left: 40px;"> - <dt>/getlist</dt> - <dd>Adds the current user's list to the Download Queue.</dd> - <dt>/grant</dt> - <dd>Grants the remote user a slot. Once they connect, or if -they don't connect in 10 minutes, the granted slot is removed.</dd> - <dt>/favorite</dt> - <dt>/fav</dt> - <dd>Adds the current user to the list of <a - href="favorite_users.html">Favorite Users</a>.</dd> -</dl> -<h2>Both</h2> -<dl style="margin-left: 40px;"> - <dt>/refresh</dt> - <dd>Manually refreshes DC++'s share list by going through the shared -directories and adding new folders and files. DC++ automatically -refreshes once an hour by default, and also refreshes after the list of -shared directories is changed.</dd> - <dt>/slots <number></dt> - <dd>Sets the current number of upload slots to the number you -specify. If this is less than the current number of slots, no -downloads are cancelled.</dd> - <dt>/search <string></dt> - <dd>Opens a new search window with the specified search string. -It does <span style="text-decoration: underline;">not</span> -automatically send the search.</dd> - <dt>/close</dt> - <dd>Closes the current window.</dd> - <dt>/clear</dt> - <dd>Clears the current window of all text.</dd> - <dt>/dc++</dt> - <dd>Sends a random DC++ advertising message to the chat, including a -link to the DC++ homepage and the version number.</dd> - <dt><a name="awayback"></a>/away [message]</dt> - <dd>Sets Away status. New private message windows will be -responded to, once, with the message you specified, or the default away -message configured in the <a href="settings_appearance.html#awaymsg">Appearance</a> -settings page.</dd> - <dt>/back</dt> - <dd>Un-sets Away status.</dd> - <dt>/g <search string></dt> - <dd>Launches your default web browser to the Google search engine -with the specified search.</dd> - <dt>/imdb <imdb query></dt> - <dd>Launches your default web browser to the Internet Movie Database -(imdb) with the specified query.</dd> - <dt>/rebuild</dt> - <dd>Rebuilds the HashIndex.xml and HashData.dat files, removing -entries to files that are no longer shared, or old hashes for files -that have since changed. This runs in the main DC++ thread, so -the interface will freeze until the rebuild is finished.</dd> - <dt>/log <status, system, downloads, uploads></dt> - <dd>If no parameter is specified, it launches the log for the hub or -private chat with the associated application in Windows. If one of the -parameters is specified it opens that log file. The status log is -available only in the hub frame.</dd> - <dt>/help</dt> - <dd>Displays available commands. (The ones listed on this page.)</dd> - <dt>/u <url></dt> - <dd>Launches your default web browser with the given URL.</dd> -</dl> -</body> -</html> Copied: dcplusplus/tags/dcplusplus-0.699/help/chat_commands.html (from rev 697, dcplusplus/trunk/help/chat_commands.html) =================================================================== --- dcplusplus/tags/dcplusplus-0.699/help/chat_commands.html (rev 0) +++ dcplusplus/tags/dcplusplus-0.699/help/chat_commands.html 2006-12-18 21:32:33 UTC (rev 699) @@ -0,0 +1,110 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>Chat Commands</title> + <meta content="text/html; charset=us-ascii" http-equiv="content-type"> + <link type="text/css" rel="stylesheet" href="office11.css"> +</head> +<body> +<h1>Chat Commands</h1> +<h2>Main Chat</h2> +<dl style="margin-left: 40px;"> + <dt>/join <hub-ip></dt> + <dd>Joins <hub-ip>. See also <a + href="settings_windows.html#new_window">Open new window when using +/join</a>.</dd> + <dt><a name="ts"></a>/ts</dt> + <dd>Toggles the showing of time stamps on new chat messages. It +does not add time stamps to already received chat lines.</dd> + <dt><a name="showjoins"></a>/showjoins</dt> + <dd>Toggles the displaying of users joining the hub. This only +takes effect for freshly-arriving users.</dd> + <dt>/favshowjoins</dt> + <dd>Toggles the displaying of favorite users joining the hub. Does +not require /showjoins to be enabled.</dd> + <dt>/userlist</dt> + <dd>Toggles visibility of the list of users for the current +hub.</dd> + <dt>/connection</dt> + <dd>Displays the IP and port that DC++ will tell users to connect +to. If either the IP or port is not correct, you will be unable +to download from some users. This is only useful in <span + style="text-decoration: underline;">active</span> mode - the IP and +port are unused in passive mode.</dd> + <dt>/favorite</dt> + <dt>/fav</dt> + <dd>Adds the current hub (along with your nickname and password, if +used) to the list of <a href="favorite_hubs.html">Favorite Hubs</a>.</dd> + <dt>/removefavorite</dt> + <dt>/removefav</dt> + <dd>Removes the current hub from the list of <a href="favorite_hubs.html">Favorite Hubs</a>.</dd> + <dt>/pm <user> [message]</dt> + <dd>Opens a private message window to the user, and optionally sends +the message, if one was specified.</dd> + <dt>/getlist <user></dt> + <dd>Adds the user's list to the Download Queue.</dd> +</dl> +<h2>Private Message</h2> +<dl style="margin-left: 40px;"> + <dt>/getlist</dt> + <dd>Adds the current user's list to the Download Queue.</dd> + <dt>/grant</dt> + <dd>Grants the remote user a slot. Once they connect, or if +they don't connect in 10 minutes, the granted slot is removed.</dd> + <dt>/favorite</dt> + <dt>/fav</dt> + <dd>Adds the current user to the list of <a + href="favorite_users.html">Favorite Users</a>.</dd> +</dl> +<h2>Both</h2> +<dl style="margin-left: 40px;"> + <dt>/refresh</dt> + <dd>Manually refreshes DC++'s share list by going through the shared +directories and adding new folders and files. DC++ automatically +refreshes once an hour by default, and also refreshes after the list of +shared directories is changed.</dd> + <dt>/slots <number></dt> + <dd>Sets the current number of upload slots to the number you +specify. If this is less than the current number of slots, no +downloads are cancelled.</dd> + <dt>/search <string></dt> + <dd>Opens a new search window with the specified search string. +It does <span style="text-decoration: underline;">not</span> +automatically send the search.</dd> + <dt>/close</dt> + <dd>Closes the current window.</dd> + <dt>/clear</dt> + <dd>Clears the current window of all text.</dd> + <dt>/dc++</dt> + <dd>Sends a random DC++ advertising message to the chat, including a +link to the DC++ homepage and the version number.</dd> + <dt><a name="awayback"></a>/away [message]</dt> + <dd>Sets Away status. New private message windows will be +responded to, once, with the message you specified, or the default away +message configured in the <a href="settings_appearance.html#awaymsg">Appearance</a> +settings page.</dd> + <dt>/back</dt> + <dd>Un-sets Away status.</dd> + <dt>/g <search string></dt> + <dd>Launches your default web browser to the Google search engine +with the specified search.</dd> + <dt>/imdb <imdb query></dt> + <dd>Launches your default web browser to the Internet Movie Database +(imdb) with the specified query.</dd> + <dt>/rebuild</dt> + <dd>Rebuilds the HashIndex.xml and HashData.dat files, removing +entries to files that are no longer shared, or old hashes for files +that have since changed. This runs in the main DC++ thread, so +the interface will freeze until the rebuild is finished.</dd> + <dt>/log <status, system, downloads, uploads></dt> + <dd>If no parameter is specified, it launches the log for the hub or +private chat with the associated application in Windows. If one of the +parameters is specified it opens that log file. The status log is +available only in the hub frame.</dd> + <dt>/help</dt> + <dd>Displays available commands. (The ones listed on this page.)</dd> + <dt>/u <url></dt> + <dd>Launches your default web browser with the given URL.</dd> +</dl> +</body> +</html> Deleted: dcplusplus/tags/dcplusplus-0.699/help/compile.cmd =================================================================== --- dcplusplus/trunk/help/compile.cmd 2006-12-18 21:18:27 UTC (rev 698) +++ dcplusplus/tags/dcplusplus-0.699/help/compile.cmd 2006-12-18 21:32:33 UTC (rev 699) @@ -1,25 +0,0 @@ -@echo off -REM generate changelog.html -gen_changelog.py -REM this isn't pretty. - Todd -if exist "%ProgramFiles%\HTML Help Workshop\hhc.exe" goto compile -echo. -echo HTML Help Workshop not detected. Please install it from: -echo http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp -echo. -echo or.. enter the correct path in help/compile.cmd -echo. -exit 1 - -:compile -copy ..\res\users.bmp . -"%ProgramFiles%\HTML Help Workshop\hhc.exe" DCPlusPlus.hhp -if errorlevel 1 goto okay - -:bad -del users.bmp -exit 1 - -:okay -del users.bmp -exit 0 Copied: dcplusplus/tags/dcplusplus-0.699/help/compile.cmd (from rev 697, dcplusplus/trunk/help/compile.cmd) =================================================================== --- dcplusplus/tags/dcplusplus-0.699/help/compile.cmd (rev 0) +++ dcplusplus/tags/dcplusplus-0.699/help/compile.cmd 2006-12-18 21:32:33 UTC (rev 699) @@ -0,0 +1,25 @@ +@echo off +REM generate changelog.html +gen_changelog.py +REM this isn't pretty. - Todd +if exist "%ProgramFiles%\HTML Help Workshop\hhc.exe" goto compile +echo. +echo HTML Help Workshop not detected. Please install it from: +echo http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp +echo. +echo or.. enter the correct path in help/compile.cmd +echo. +exit 1 + +:compile +copy ..\res\users.bmp . +"%ProgramFiles%\HTML Help Workshop\hhc.exe" DCPlusPlus.hhp +if errorlevel 1 goto okay + +:bad +del users.bmp +exit 1 + +:okay +del users.bmp +exit 0 Deleted: dcplusplus/tags/dcplusplus-0.699/help/credits.html =================================================================== --- dcplusplus/trunk/help/credits.html 2006-12-18 21:18:27 UTC (rev 698) +++ dcplusplus/tags/dcplusplus-0.699/help/credits.html 2006-12-18 21:32:33 UTC (rev 699) @@ -1,29 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <title>Help File Credits</title> - <meta content="text/html; charset=us-ascii" http-equiv="content-type"> - <link type="text/css" rel="stylesheet" href="office11.css"> -</head> -<body> -<h1>Help File Credits and License</h1> -<br> -Copyright (c) 2004-2005 Todd Pederzani, Walter Doekes<br> -<br> -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation -License, Version 1.2 or any later version published by the Free -Software Foundation; with no Invariant Sections, no Front-Cover Texts, -and no Back-Cover Texts. A copy of the license is included in the -section entitled "<a href="fdl.html">GNU Free Documentation License</a>". -<h1>Contributors</h1> -<ul> - <li>Ullner</li> - <li>Naga</li> - <li>TheParanoidOne</li> - <li>Henrik Engström (by proxy)</li> - <li>BSOD2600</li> - <li>TheParanoidOne</li> -</ul> -</body> -</html> Copied: dcplusplus/tags/dcplusplus-0.699/help/credits.html (from rev 697, dcplusplus/trunk/help/credits.html) =================================================================== --- dcplusplus/tags/dcplusplus-0.699/help/credits.html (rev 0) +++ dcplusplus/tags/dcplusplus-0.699/help/credits.html 2006-12-18 21:32:33 UTC (rev 699) @@ -0,0 +1,29 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>Help File Credits</title> + <meta content="text/html; charset=us-ascii" http-equiv="content-type"> + <link type="text/css" rel="stylesheet" href="office11.css"> +</head> +<body> +<h1>Help File Credits and License</h1> +<br> +Copyright (c) 2004-2005 Todd Pederzani, Walter Doekes<br> +<br> +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation +License, Version 1.2 or any later version published by the Free +Software Foundation; with no Invariant Sections, no Front-Cover Texts, +and no Back-Cover Texts. A copy of the license is included in the +section entitled "<a href="fdl.html">GNU Free Documentation License</a>". +<h1>Contributors</h1> +<ul> + <li>Ullner</li> + <li>Naga</li> + <li>TheParanoidOne</li> + <li>Henrik Engström (by proxy)</li> + <li>BSOD2600</li> + <li>TheParanoidOne</li> +</ul> +</body> +</html> Deleted: dcplusplus/tags/dcplusplus-0.699/help/dev_applypatch.html =================================================================== --- dcplusplus/trunk/help/dev_applypatch.html 2006-12-18 21:18:27 UTC (rev 698) +++ dcplusplus/tags/dcplusplus-0.699/help/dev_applypatch.html 2006-12-18 21:32:33 UTC (rev 699) @@ -1,43 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <title>Applying patches</title> - <meta content="text/html; charset=us-ascii" http-equiv="content-type"> - <link type="text/css" rel="stylesheet" href="office11.css"> -</head> -<body> -<h1>Applying -patches</h1> -<br> -<dl> - <dt>Using <a href="http://www.gnu.org/software/patch/patch.html" -target="_blank=" class="external">GNU Patch</a> <img title="External Link" -src="external.png" border="0" height="10" width="10"> </dt> - <dd>1. Download and place <span style="text-decoration: underline;"><a - href="http://www.gnu.org/software/patch/patch.html" target="_blank=" - class="external">GNU patch</a></span> <img title="External Link" - src="external.png" border="0" height="10" width="10"> in the directory - you want to patch.</dd> - <dd>2. Type <i>cmd</i> -in Run and tab your way to where GNU Patch is.</dd> - <dd>3. Write <i>patch --[parameter] < my-patch.diff</i></dd> - <dd>4. The file <span style="font-style: italic;">my-patch.diff</span> -is the actual patch you want to apply. </dd> - <dd><br> -Example: <i>C:\Program -Files\DCpp_orig>patch -p1 < my-patch.diff</i><br> -C:\Program Files\DCpp_orig is the directory that is going to be patched.<br> -p1 gives the entire file name unmodified with out a leading slash.<br> - <br> - <p>Parameters and more information on how to use GNU Diff can be -found in the documentation for GNU Diff which should have come included -with GNU Diff. Otherwise, the manual can be found at the <a - href="http://www.gnu.org/software/diffutils/manual/diff.html" - target="_blank" class="external">GNU Diff manual</a> <img - title="External Link" src="external.png" border="0" height="10" - width="10"></p> - </dd> -</dl> -</body> -</html> Copied: dcplusplus/tags/dcplusplus-0.699/help/dev_applypatch.html (from rev 697, dcplusplus/trunk/help/dev_applypatch.html) =================================================================== --- dcplusplus/tags/dcplusplus-0.699/help/dev_applypatch.html (rev 0) +++ dcplusplus/tags/dcplusplus-0.699/help/dev_applypatch.html 2006-12-18 21:32:33 UTC (rev 699) @@ -0,0 +1,43 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>Applying patches</title> + <meta content="text/html; charset=us-ascii" http-equiv="content-type"> + <link type="text/css" rel="stylesheet" href="office11.css"> +</head> +<body> +<h1>Applying +patches</h1> +<br> +<dl> + <dt>Using <a href="http://www.gnu.org/software/patch/patch.html" +target="_blank=" class="external">GNU Patch</a> <img title="External Link" +src="external.png" border="0" height="10" width="10"> </dt> + <dd>1. Download and place <span style="text-decoration: underline;"><a + href="http://www.gnu.org/software/patch/patch.html" target="_blank=" + class="external">GNU patch</a></span> <img title="External Link" + src="external.png" border="0" height="10" width="10"> in the directory + you want to patch.</dd> + <dd>2. Type <i>cmd</i> +in Run and tab your way to where GNU Patch is.</dd> + <dd>3. Write <i>patch +-[parameter] < my-patch.diff</i></dd> + <dd>4. The file <span style="font-style: italic;">my-patch.diff</span> +is the actual patch you want to apply. </dd> + <dd><br> +Example: <i>C:\Program +Files\DCpp_orig>patch -p1 < my-patch.diff</i><br> +C:\Program Files\DCpp_orig is the directory that is going to be patched.<br> +p1 gives the entire file name unmodified with out a leading slash.<br> + <br> + <p>Parameters and more information on how to use GNU Diff can be +found in the documentation for GNU Diff which should have come included +with GNU Diff. Otherwise, the manual can be found at the <a + href="http://www.gnu.org/software/diffutils/manual/diff.html" + target="_blank" class="external">GNU Diff manual</a> <img + title="External Link" src="external.png" border="0" height="10" + width="10"></p> + </dd> +</dl> +</body> +</html> Deleted: dcplusplus/tags/dcplusplus-0.699/help/dev_createpatch.html =================================================================== --- dcplusplus/trunk/help/dev_createpatch.html 2006-12-18 21:18:27 UTC (rev 698) +++ dcplusplus/tags/dcplusplus-0.699/help/dev_createpatch.html 2006-12-18 21:32:33 UTC (rev 699) @@ -1,64 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <title>Creating patches</title> - <meta content="text/html; charset=us-ascii" http-equiv="content-type"> - <link type="text/css" rel="stylesheet" href="office11.css"> -</head> -<body> -<h1>Creating patches</h1> -<br> -<dl> - <dt>Using <a - href="http://www.gnu.org/software/diffutils/diffutils.html" - target="_blank=" class="external">GNU Diff</a> <img title="External Link" - src="external.png" border="0" height="10" width="10"> - </dt> - <dd>1. Download and install <a - href="http://www.gnu.org/software/diffutils/diffutils.html" - target="_blank=" class="external">GNU Diff</a> <img title="External Link" - src="external.png" border="0" height="10" width="10">.</dd> - <dd>2. Type <i>cmd</i> in Run and navigate your way to where GNU -Diff is installed.</dd> - <dd>3. Write <i>diff -[parameter(s)] <path to the untouched file -or folder> <path to the changed file or folder> > -my-diff.diff</i></dd> - <dd>4. A file, my-diff.diff, will now be created in the directory -which GNU Diff is placed. Other extensions for the patch (such as .txt) -are acceptable, there is no standard.</dd> - <dd><br> -Example: <i>C:\Program Files\GNU Diff>diff -uNr dcplusplus_orig -dcplusplus_chan > my-diff.diff</i> <br> -C:\Program Files\GNU Diff is where GNU Diff is installed.<br> -The parameter <i style="font-weight: bold;">u</i> means the diff will -be unified. <i style="font-weight: bold;">N</i> means that GNU Diff -will show output even if a file doesn't exist in one of the two -folders. - <i style="font-weight: bold;">r</i> means that GNU Diff will go -through subdirectories and give output on which directory and file -differ. - <br> - <i>dcplusplus_orig</i> is the folder that is untouched and what the -changes is going to differ against. - <br> - <i>dcplusplus_chan</i> is the folder where changes has occured. - <br> -The actual diff is <i>my-diff.diff</i>. - <p>Parameters and more information on how to use GNU Diff can be -found in the documentation for GNU Diff which should have come included -with GNU Diff. Otherwise, the manual can be found at the <a - href="http://www.gnu.org/software/diffutils/manual/diff.html" - target="_blank" class="external">GNU Diff manual</a> <img - title="External Link" src="external.png" border="0" height="10" - width="10"></p> - </dd> - <dt>Interpreting the diff</dt> - <dd> - <pre>diff -uNr dcplusplus_orig/client/file.cpp dcplusplus_chan/client/file.cpp<br>--- dcplusplus_orig/client/file.cpp Tue Nov 30 00:21:30 2004<br>+++ dcplusplus_chan/client/file.cpp Wed Dec 1 13:59:59 2004<br>@@ -336,7 +336,7 @@<br> // text<br> // text<br> int a = 0;<br>- int b;<br>+ int c;<br> double pi;<br> string helpfile;<br> string dcplusplus;</pre> - </dd> - <dd>Lines starting with <b>-</b> (minus sign) are going to be -removed. <br> -Lines starting with <b>+</b> (plus sign) are going to be added.</dd> -</dl> -</body> -</html> Copied: dcplusplus/tags/dcplusplus-0.699/help/dev_createpatch.html (from rev 697, dcplusplus/trunk/help/dev_createpatch.html) =================================================================== --- dcplusplus/tags/dcplusplus-0.699/help/dev_createpatch.html (rev 0) +++ dcplusplus/tags/dcplusplus-0.699/help/dev_createpatch.html 2006-12-18 21:32:33 UTC (rev 699) @@ -0,0 +1,64 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>Creating patches</title> + <meta content="text/html; charset=us-ascii" http-equiv="content-type"> + <link type="text/css" rel="stylesheet" href="office11.css"> +</head> +<body> +<h1>Creating patches</h1> +<br> +<dl> + <dt>Using <a + href="http://www.gnu.org/software/diffutils/diffutils.html" + target="_blank=" class="external">GNU Diff</a> <img title="External Link" + src="external.png" border="0" height="10" width="10"> + </dt> + <dd>1. Download and install <a + href="http://www.gnu.org/software/diffutils/diffutils.html" + target="_blank=" class="external">GNU Diff</a> <img title="External Link" + src="external.png" border="0" height="10" width="10">.</dd> + <dd>2. Type <i>cmd</i> in Run and navigate your way to where GNU +Diff is installed.</dd> + <dd>3. Write <i>diff -[parameter(s)] <path to the untouched file +or folder> <path to the changed file or folder> > +my-diff.diff</i></dd> + <dd>4. A file, my-diff.diff, will now be created in the directory +which GNU Diff is placed. Other extensions for the patch (such as .txt) +are acceptable, there is no standard.</dd> + <dd><br> +Example: <i>C:\Program Files\GNU Diff>diff -uNr dcplusplus_orig +dcplusplus_chan > my-diff.diff</i> <br> +C:\Program Files\GNU Diff is where GNU Diff is installed.<br> +The parameter <i style="font-weight: bold;">u</i> means the diff will +be unified. <i style="font-weight: bold;">N</i> means that GNU Diff +will show output even if a file doesn't exist in one of the two +folders. + <i style="font-weight: bold;">r</i> means that GNU Diff will go +through subdirectories and give output on which directory and file +differ. + <br> + <i>dcplusplus_orig</i> is the folder that is untouched and what the +changes is going to differ against. + <br> + <i>dcplusplus_chan</i> is the folder where changes has occured. + <br> +The actual diff is <i>my-diff.diff</i>. + <p>Parameters and more information on how to use GNU Diff can be +found in the documentation for GNU Diff which should have come included +with GNU Diff. Otherwise, the manual can be found at the <a + href="http://www.gnu.org/software/diffutils/manual/diff.html" + target="_blank" class="external">GNU Diff manual</a> <img + title="External Link" src="external.png" border="0" height="10" + width="10"></p> + </dd> + <dt>Interpreting the diff</dt> + <dd> + <pre>diff -uNr dcplusplus_orig/client/file.cpp dcplusplus_chan/client/file.cpp<br>--- dcplusplus_orig/client/file.cpp Tue Nov 30 00:21:30 2004<br>+++ dcplusplus_chan/client/file.cpp Wed Dec 1 13:59:59 2004<br>@@ -336,7 +336,7 @@<br> // text<br> // text<br> int a = 0;<br>- int b;<br>+ int c;<br> double pi;<br> string helpfile;<br> string dcplusplus;</pre> + </dd> + <dd>Lines starting with <b>-</b> (minus sign) are going to be +removed. <br> +Lines starting with <b>+</b> (plus sign) are going to be added.</dd> +</dl> +</body> +</html> Deleted: dcplusplus/tags/dcplusplus-0.699/help/external.png =================================================================== (Binary files differ) Copied: dcplusplus/tags/dcplusplus-0.699/help/external.png (from rev 697, dcplusplus/trunk/help/external.png) =================================================================== (Binary files differ) Deleted: dcplusplus/tags/dcplusplus-0.699/help/faq_activemode.html =================================================================== --- dcplusplus/trunk/help/faq_activemode.html 2006-12-18 21:18:27 UTC (rev 698) +++ dcplusplus/tags/dcplusplus-0.699/help/faq_activemode.html 2006-12-18 21:32:33 UTC (rev 699) @@ -1,79 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta content="text/html; charset=us-ascii" http-equiv="content-type"> - <link type="text/css" rel="stylesheet" href="office11.css"> - <title>How to set up active mode</title> -</head> -<body> -<h1>Setting up active mode</h1> -<p>For DC++ to work properly in active mode, it requires access on <acronym - title="Transmission Control Protocol">TCP</acronym> and <acronym - title="User Datagram Protocol">UDP</acronym> listening ports, as well -as outgoing access on all ports for both TCP and UDP.</p> -<p>You can simplify the process of setting up active mode if your -router and operating system is <acronym title="Universal Plug and Play">UPnP -</acronym> compatible. If so, please read the <a href="faq_upnp.html">How to set up UPnP FAQ</a> instead, for more information.</p> -<ol> - <li>First you need to set up the router to forward the connections to -the computer with DC++. This is could be called Port mapping, port -redirecting, port forwarding or something like that. Find out how to do -this with your router / <acronym title="Network Address Translation">NAT</acronym> -in the user manual.</li> - <li>You need to forward two ports, with either the same port number -or different ones. Select one or two numbers between 1024 - -65535, they should mostly all be free. Make sure both UDP and TCP is -being forwarded on the port(s) you chose. </li> - <li>The IP that you are forwarding to should be the <span - style="font-weight: bold;">internal</span> IP address of your DC++ -computer. It usually begins with <a href="non-routable.html">"192.168", -"172.16." or "10.x."</a>. Go to the command prompt and type: <span - style="font-style: italic;">ipconfig</span> (Start Menu -> Run --> <span style="font-style: italic;">cmd /k ipconfig</span>)</li> - <li>When you have mapped the port(s) on the router, open up DC++ and -go to Settings. Select active mode. In the port fields, enter the port -number(s) that you forwarded on the router. </li> - <li>In the IP field, you need to enter the <span - style="font-weight: bold;">external</span> IP address of your router. -Your external IP can be checked against <a - href="http://www.dslreports.com/ip" target="_blank" class="external">DSLReport's -IP page</a> <img title="External Link" src="external.png" border="0" - height="10" width="10" alt="External Link">. </li> - <li>It should now be working. If it is working for a while, but the -next time you use DC++, you only get "Connection Timeout’s or no -results when searching, your IP (either <span - style="font-weight: bold;">external</span> or <span - style="font-weight: bold;">internal</span>) is likely to have changed. -If you find the external IP is constantly changing, you can set -yourself up with a dynamic name (i.e. <i>hub.example.com</i>). -Such as <a href="http://www.dynip.com/" target="_blank" - class="external">Dynip</a> <img title="External Link" - src="external.png" border="0" height="10" width="10" alt="External Link"> or <a - href="http://www.dyndns.org/" target="_blank" class="external">DynDns</a> - <img title="External Link" src="external.png" border="0" height="10" - width="10" alt="External Link"> and put that name into the IP field. Make sure to use a -program that updates the dynamic name service with your latest IP.</li> -</ol> -<h2>Windows XP?</h2> -<ul> - <li><span style="text-decoration: underline;">Service Pack 1</span>: -Its strongly recommended that you do not use the SP1 firewall and -instead use a third party one. -Make sure to disable the XP firewall if you do choose this option. If -you really must use it, then checkout <a - href="http://www.microsoft.com/security/protect/ports.asp" - target="_blank" class="external"> this guide</a> <img - title="External Link" src="external.png" border="0" height="10" - width="10" alt="External Link"> on how to set it up.</li> - <li><span style="text-decoration: underline;">Service Pack 2</span>: -The firewall in SP2 is a lot more robust than its original incarnation. -While it does not offer a plethora of options, its suitable to use by -itself for protection. Its wise to enable logging of packets that the -firewall drops for troubleshooting applications. To do this, go to -Control Panels -> Windows Firewall -> Advanced Tab -> Security -Logging -> Settings. Enable <span style="font-style: italic;">Log -Dropped Packets</span>. The log file is located at: -C:\WINDOWS\pfirewall.log.</li> -</ul> -</body> -</html> Copied: dcplusplus/tags/dcplusplus-0.699/help/faq_activemode.html (from rev 697, dcplusplus/trunk/help/faq_activemode.html) =================================================================== --- dcplusplus/tags/dcplusplus-0.699/help/faq_activemode.html (rev 0) +++ dcplusplus/tags/dcplusplus-0.699/help/faq_activemode.html 2006-12-18 21:32:33 UTC (rev 699) @@ -0,0 +1,79 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <meta content="text/html; charset=us-ascii" http-equiv="content-type"> + <link type="text/css" rel="stylesheet" href="office11.css"> + <title>How to set up active mode</title> +</head> +<body> +<h1>Setting up active mode</h1> +<p>For DC++ to work properly in active mode, it requires access on <acronym + title="Transmission Control Protocol">TCP</acronym> and <acronym + title="User Datagram Protocol">UDP</acronym> listening ports, as well +as outgoing access on all ports for both TCP and UDP.</p> +<p>You can simplify the process of setting up active mode if your +router and operating system is <acronym title="Universal Plug and Play">UPnP +</acronym> compatible. If so, please read the <a href="faq_upnp.html">How to set up UPnP FAQ</a> instead, for more information.</p> +<ol> + <li>First you need to set up the router to forward the connections to +the computer with DC++. This is could be called Port mapping, port +redirecting, port forwarding or something like that. Find out how to do +this with your router / <acronym title="Network Address Translation">NAT</acronym> +in the user manual.</li> + <li>You need to forward two ports, with either the same port number +or different ones. Select one or two numbers between 1024 - +65535, they should mostly all be free. Make sure both UDP and TCP is +being forwarded on the port(s) you chose. </li> + <li>The IP that you are forwarding to should be the <span + style="font-weight: bold;">internal</span> IP address of your DC++ +computer. It usually begins with <a href="non-routable.html">"192.168", +"172.16." or "10.x."</a>. Go to the command prompt and type: <span + style="font-style: italic;">ipconfig</span> (Start Menu -> Run +-> <span style="font-style: italic;">cmd /k ipconfig</span>)</li> + <li>When you have mapped the port(s) on the router, open up DC++ and +go to Settings. Select active mode. In the port fields, enter the port +number(s) that you forwarded on the router. </li> + <li>In the IP field, you need to enter the <span + style="font-weight: bold;">external</span> IP address of your router. +Your external IP can be checked against <a + href="http://www.dslreports.com/ip" target="_blank" class="external">DSLReport's +IP page</a> <img title="External Link" src="external.png" border="0" + height="10" width="10" alt="External Link">. </li> + <li>It should now be working. If it is working for a while, but the +next time you use DC++, you only get "Connection Timeout’s or no +results when searching, your IP (either <span + style="font-weight: bold;">external</span> or <span + style="font-weight: bold;">internal</span>) is likely to have changed. +If you find the external IP is constantly changing, you can set +yourself up with a dynamic name (i.e. <i>hub.example.com</i>). +Such as <a href="http://www.dynip.com/" target="_blank" + class="external">Dynip</a> <img title="External Link" + src="external.png" border="0" height="10" width="10" alt="External Link"> or <a + href="http://www.dyndns.org/" target="_blank" class="external">DynDns</a> + <img title="External Link" src="external.png" border="0" height="10" + width="10" alt="External Link"> and put that name into the IP field. Make sure to use a +program that updates the dynamic name service with your latest IP.</li> +</ol> +<h2>Windows XP?</h2> +<ul> + <li><span style="text-decoration: underline;">Service Pack 1</span>: +Its strongly recommended that you do not use the SP1 firewall and +instead use a third party one. +Make sure to disable the XP firewall if you do choose this option. If +you really must use it, then checkout <a + href="http://www.microsoft.com/security/protect/ports.asp" + target="_blank" class="external"> this guide</a> <img + title="External Link" src="external.png" border="0" height="10" + width="10" alt="External Link"> on how to set it up.</li> + <li><span style="text-decoration: underline;">Service Pack 2</span>: +The firewall in SP2 is a lot more robust than its original incarnation. +While it does not offer a plethora of options, its suitable to use by +itself for protection. Its wise to enable logging of packets that the +firewall drops for troubleshooting applications. T... [truncated message content] |
From: <arn...@us...> - 2006-12-18 21:18:29
|
Revision: 698 http://svn.sourceforge.net/dcplusplus/?rev=698&view=rev Author: arnetheduck Date: 2006-12-18 13:18:27 -0800 (Mon, 18 Dec 2006) Log Message: ----------- ignore generated files Property Changed: ---------------- dcplusplus/trunk/help/ Property changes on: dcplusplus/trunk/help ___________________________________________________________________ Name: svn:ignore - *.vcproj.* + *.vcproj.* changelog.html This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2006-12-18 21:16:55
|
Revision: 697 http://svn.sourceforge.net/dcplusplus/?rev=697&view=rev Author: arnetheduck Date: 2006-12-18 13:16:51 -0800 (Mon, 18 Dec 2006) Log Message: ----------- Some more fixes Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/client/DCPlusPlus.cpp dcplusplus/trunk/client/ShareManager.cpp dcplusplus/trunk/client/Util.cpp dcplusplus/trunk/windows/AboutDlg.h dcplusplus/trunk/windows/QueueFrame.cpp dcplusplus/trunk/yassl/taocrypt/src/integer.cpp Removed Paths: ------------- dcplusplus/trunk/help/changelog.html Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2006-12-18 18:09:59 UTC (rev 696) +++ dcplusplus/trunk/changelog.txt 2006-12-18 21:16:51 UTC (rev 697) @@ -1,4 +1,4 @@ --- 0.699 2006-12-15 -- +-- 0.699 2006-12-18 -- * Switched to VC8/VS2005 * Removed some unused options * Antifrag is now default @@ -26,6 +26,8 @@ * [bug 1117] Fixed subfolders being created on filelist downloads (thanks mikael eman) * [bug 1096] Updated credits in about box * [bug 1123] Removed some typecasts (thanks stephan hohe) +* [bug 1099] Fixed "Readd all" spin +* [bug 1095] Fixed about dialog -- 0.698 2006-10-10 -- * [bug 1065] Code cleanup (thanks steven sheehy) Modified: dcplusplus/trunk/client/DCPlusPlus.cpp =================================================================== --- dcplusplus/trunk/client/DCPlusPlus.cpp 2006-12-18 18:09:59 UTC (rev 696) +++ dcplusplus/trunk/client/DCPlusPlus.cpp 2006-12-18 21:16:51 UTC (rev 697) @@ -86,8 +86,6 @@ if(f != NULL) (*f)(p, STRING(DOWNLOAD_QUEUE)); QueueManager::getInstance()->loadQueue(); - ::MessageBox(NULL, _T("1"), _T("1"), MB_OK); - } void shutdown() { Modified: dcplusplus/trunk/client/ShareManager.cpp =================================================================== --- dcplusplus/trunk/client/ShareManager.cpp 2006-12-18 18:09:59 UTC (rev 696) +++ dcplusplus/trunk/client/ShareManager.cpp 2006-12-18 21:16:51 UTC (rev 697) @@ -351,8 +351,6 @@ }; bool ShareManager::loadCache() throw() { - if(1) - return false; try { ShareLoader loader(directories); string txt; Modified: dcplusplus/trunk/client/Util.cpp =================================================================== --- dcplusplus/trunk/client/Util.cpp 2006-12-18 18:09:59 UTC (rev 696) +++ dcplusplus/trunk/client/Util.cpp 2006-12-18 21:16:51 UTC (rev 697) @@ -98,7 +98,7 @@ dataPath = configPath; // dataPath in linux is usually prefix + /share/app_name, so we can't represent it here #endif -/* // Load boot settings + // Load boot settings try { SimpleXML boot; boot.fromXML(File(systemPath + "dcppboot.xml", File::READ, File::OPEN).read()); @@ -117,7 +117,7 @@ } catch(const Exception& ) { // Unable to load boot settings... } -*/ + if(!File::isAbsolute(configPath)) { configPath = systemPath + configPath; } Deleted: dcplusplus/trunk/help/changelog.html =================================================================== --- dcplusplus/trunk/help/changelog.html 2006-12-18 18:09:59 UTC (rev 696) +++ dcplusplus/trunk/help/changelog.html 2006-12-18 21:16:51 UTC (rev 697) @@ -1,2063 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> - <meta content="en-us" http-equiv="Content-Language"> - <meta http-equiv="content-type" content="text/html;charset=utf-8"> - <link href="office11.css" rel="stylesheet" type="text/css"> - <title>Changelog</title> - <style type="text/css"> - li { margin-left: auto; margin: 0em 0em 0em 0em; } - </style> -</head> -<body> -<h1>DC++ Changelog</h1> -See the version history of DC++ below. - -<h2>0.699 <span style="color: gray;">(2006-12-15)</span></h2> -<ul> - <li>Switched to VC8/VS2005</li> - <li>Removed some unused options</li> - <li>Antifrag is now default</li> - <li>Confirm hub removal is now default</li> - <li>SFV checking is now default</li> - <li>Fixed TLS port not being greyed out</li> - <li>Automatic hub reconnection is only done if at least one successful connection has been made</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1080">[bug 1080]</a> Better nick tab completion (thanks cologic)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1081">[bug 1081]</a> Added user IP in hub frame (thanks cologic)</li> - <li>No more STLport for the time being</li> - <li>Linux checks for invalid file types (thanks steven sheehy)</li> - <li>Fixed potential crash when search began with space</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1085">[bug 1085]</a> Better sound playing settings (thanks cologic / ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1111">[bug 1111]</a> OpenSSL compatibility and some unix fixes (thanks steven sheehy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1056">[bug 1056]</a> Added option to sort fav users above other users in hub frame (thanks poy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1063">[bug 1063]</a> Added option to show shell context menu in finished frame (thanks poy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1092">[bug 1092]</a> Fixed TTH tree being redownloaded (thanks stephan hohe)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1097">[bug 1097]</a> Fixed waiting users being removed (thanks stephan hohe)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1110">[bug 1110]</a> Added new adc hub list (thanks mafa_45)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1091">[bug 1091]</a> Added new nmdc hub lists (thanks poy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1112">[bug 1112]</a> Port sign cleanup (thanks steven sheehy)</li> - <li>[ADC] Fixed client-to-client connection sequence</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1064">[bug 1064]</a> Updated to YaSSL 1.5.0, should fix crash</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=446">[bug 446]</a> Public hub lists are cached and downloaded only when user requests it (thanks poy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1117">[bug 1117]</a> Fixed subfolders being created on filelist downloads (thanks mikael eman)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1096">[bug 1096]</a> Updated credits in about box</li> -</ul> - -<h2>0.698 <span style="color: gray;">(2006-10-10)</span></h2> -<ul> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1065">[bug 1065]</a> Code cleanup (thanks steven sheehy)</li> - <li>Fixed readme.txt (thanks ullner)</li> - <li>More code cleanup</li> - <li>Fixed trusted/untrusted upload view</li> - <li>Fixed crash on invalid remote command during upload</li> - <li>[ADC] Improved GFI command support</li> - <li>Lowest priority downloads are no longer started if there are other downloads running</li> - <li>Upgraded to STLport 5.0.2</li> - <li>Updated compile instructions</li> - <li>Updated unsigned types to C99</li> - <li>Removed unmaintained autoconf files</li> - <li>Reworked match listing to make it slightly faster</li> - <li>Fixed a few random crashes</li> - <li>[ADC] Removed obsolete DSC command</li> - <li>Fixed user list not being updated in some cases</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1071">[bug 1071]</a> Added fasthash for unix (thanks steven sheehy)</li> -</ul> - -<h2>0.697 <span style="color: gray;">(2006-09-29)</span></h2> -<ul> - <li>[ADC] Fixed a few protocol issues</li> - <li>Some code cleanup</li> - <li>Queue frame fixes and memory saves</li> - <li>TLS port change without restart fixed</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1007">[bug 1007]</a> Fixed nick character check</li> - <li>Fixed some transfer view sorting issues</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=59">[bug 59]</a> Added option to match all local lists</li> -</ul> - -<h2>0.696 <span style="color: gray;">(2006-09-22)</span></h2> -<ul> - <li>Fixed a possible deadlock</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1058">[bug 1058]</a> Removed some whitespace (big thanks to pothead)</li> - <li>Removed the possibility to download files without TTH</li> - <li>Removed the possibility to read *.DcLst files (no TTH, no i18n support)</li> - <li>Files with no TTH no longer show up in search and directory listings</li> - <li>Sources in the queue with no TTH support will no longer appear</li> - <li>Files without TTH in the queue will be removed (finish downloads with an older version)</li> - <li>[ADC] Fixed support for uncompressed files.xml as well as proper files.xml.bz2 support</li> - <li>Some socket code cleanup</li> - <li>Removed broken nick save code</li> - <li>Upgraded yaSSL to 1.4.0</li> - <li>Fixed some SSL connection issues</li> - <li>Fixed on-the-fly compression of file lists</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1055">[bug 1055]</a> Stopped files.xml.bz2 from being deleted on linux (thanks dorian)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1061">[bug 1061]</a> Log page fix (thanks fleetcommand)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1033">[bug 1033]</a> Altered NMDC hubname/description detection slightly (thanks fleetcommand)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1059">[bug 1059]</a> Fixed the possibility for users to become hidden in some cases (thanks fleetcommand)</li> -</ul> - -<h2>0.695 <span style="color: gray;">(2006-09-10)</span></h2> -<ul> - <li>PM popup/ignore options updated, in nmdc a hub is any nick which hasn't sent a hello or myinfo, and a bot is a nick with myinfo without connection type</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=125">[bug 125]</a> Fixed out-of-order PM/quit</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=224">[bug 224]</a> Slots are no longer granted to disconnected users, instead disconnection is delayed a minute</li> - <li>[NMDC] Fixed extra space in chat</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=395">[bug 395]</a> Fixed password being blanked</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=419">[bug 419]</a> Allowed changing case only when moving file in queue</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=736">[bug 736]</a> Fixed escaping of menu items</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1013">[bug 1013]</a> Fixed gcc warnings (thanks steven sheehy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1023">[bug 1023]</a> Fixed some large stack allocations (thanks steven sheehy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1026">[bug 1026]</a> Fixed some potential buffer overflows (thanks steven sheehy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1027">[bug 1027]</a> Improved unix socket support (thanks steven sheehy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1028">[bug 1028]</a> Improved big endian support (thanks steven sheehy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1029">[bug 1029]</a> Fixed BSD compile issue (thanks steven sheehy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1031">[bug 1031]</a> Fixed a crash after closing hub window (thanks bigmuscle/pothead)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1032">[bug 1032]</a> Fixed certificates help (thanks pothead)</li> - <li>Added possibility to store configuration files in separate directory</li> - <li>Switched back to unicows for w9x users, opencow was missing too many functions</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=876">[bug 876]</a> Fixed lost tooltips (thanks poy and bigmuscle)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1041">[bug 1041]</a> Fixed about tab order (thanks pothead)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1042">[bug 1042]</a> Fixed experts tab order (thanks pothead)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1047">[bug 1047]</a> Fixed possible nmdc crash (thanks guitarm)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1049">[bug 1049]</a> Added tooltip to tab bar (thanks poy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1053">[bug 1053]</a> Fixed vista detection (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=988">[bug 988]</a> Fixed duplicate nicks</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1015">[bug 1015]</a> Fixed chevron text</li> - <li>Default hub lists updated</li> -</ul> - -<h2>0.694 <span style="color: gray;">(2006-07-10)</span></h2> -<ul> - <li>Fixed crash in certificates page</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1005">[bug 1005]</a> Fixed linux compile issue (thanks tpo)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1004">[bug 1004]</a> Fixed browse file list on self</li> - <li>Both .crt and .pem files are read as trusted certificates</li> -</ul> - -<h2>0.693 <span style="color: gray;">(2006-07-09)</span></h2> -<ul> - <li>Fixed crash bug</li> - <li>Added language code to example language xml</li> -</ul> - -<h2>0.692 <span style="color: gray;">(2006-07-09)</span></h2> -<ul> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=927">[bug 927]</a> Fixed OP detection bug really (thanks pothead)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=938">[bug 938]</a> Added a few more ADC info fields (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=939">[bug 939]</a> Fixed hub info update (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=940">[bug 940]</a> Fixed a 64-bit compile error (thanks steven sheehy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=942">[bug 942]</a> Fixed atomic operations on unices (thanks tobias nygren)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=943">[bug 943]</a> Fixed unix utsname compile issue (thanks tobias nygren)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=944">[bug 944]</a> Fixed unix string conversion bug (thanks tobias nygren)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=945">[bug 945]</a> Fixed unix mutex initialiser (thanks tobias nygren)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=946">[bug 946]</a> Tiger hash supports big endian and 64-bit architectures (thanks tobias nygren)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=941">[bug 941]</a> Updated usercount display (thanks pothead)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=951">[bug 951]</a> Fixed issue with high port numbers (thanks tpo)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=958">[bug 958]</a> Search spy tth option automagically saved (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=959">[bug 959]</a> Code cleanup (thanks pothead)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=966">[bug 966]</a> Max hash speed fixed when fast hashing method is not used (thanks steven sheehy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=967">[bug 967]</a> Fixed path case-sensitivity issue (thanks steven sheehy)</li> - <li>Fixed auto-reconnect</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=936">[bug 936]</a> Fixed duplicate entries in search hubs</li> - <li>Fixed some hub title display issues</li> - <li>Some spring cleanup</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=970">[bug 970]</a> Unix file permissions correctly set (thanks steven sheehy)</li> - <li>[ADC] Allowed $ and | in nick/description</li> - <li>Fixed targetdrive bug for temp target location</li> - <li>Fixed a crash bug when hash data cannot be saved</li> - <li>Possibly fixed issues with queue items not being updated</li> - <li>Added warning when someone tries to spam hublist.org or dcpp.net with your client</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=968">[bug 968]</a> Fixed unix compile issue (thanks pothead)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=975">[bug 975]</a> Fixed silly warning (thanks pothead)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=978">[bug 978]</a> Fixed 64-bit compiler issue (thanks steven sheehy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=988">[bug 988]</a> Only unique nicks diplayed in title bar</li> - <li>Added protection from hubs/clients sending junk data resulting in high memory usage / crash</li> - <li>Updated to yaSSL 1.3.7</li> - <li>Added a few TLS options; [U] in transfer status means untrusted TLS (encrypted but certificate not validated)</li> - <li>Added certificate generation, OpenSSL must be installed and in PATH for this to work</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=996">[bug 996]</a> Fixed an issue where directories that are hard to delete were created</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1000">[bug 1000]</a> Fixed linux compile issue (thanks steven sheehy)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=949">[bug 949]</a> Fixed a crash when reading invalid XML files</li> - <li>TLS port may now be specified in settings and is only opened if TLS is enabled</li> - <li>Added TLS port to /connection</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=977">[bug 977]</a> Added copy hub address to hub right-click menu (thanks pothead)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1001">[bug 1001]</a> Fixed assertion on unix (thanks steven sheehy)</li> -</ul> - -<h2>0.691 <span style="color: gray;">(2006-06-03)</span></h2> -<ul> - <li>Links to bugzilla in html changelog</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=122">[bug 122]</a> Added userlist filter (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=578">[bug 578]</a> Added search for alternates to transfers menu (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=861">[bug 861]</a> Fixed auto-prio not being set correctly (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=878">[bug 878]</a> Added close all ... to window menu (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=903">[bug 903]</a> Holding shift while minimizing will use opposite tray setting (thanks joakim tosteberg)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=923">[bug 923]</a> PM history always read (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=927">[bug 927]</a> Fixed OP detection bug (thanks pothead)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=929">[bug 929]</a> Fixed list view flicker issues (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=931">[bug 931]</a> Improved keyboard navigation (thanks trem)</li> - <li>Added "all" to hub list field search (thanks trem)</li> - <li>Fixed bug when sending active ADC search results</li> - <li>Updated to ADC 0.11</li> - <li>Passive users now also get ADC search results</li> - <li>Changed nmdc bot-detection to what it was before, should fix pm-to-bot bug</li> -</ul> - -<h2>0.69 <span style="color: gray;">(2006-05-21)</span></h2> -<ul> - <li>Small linux / old gcc fixes (thanks jens oknelid)</li> - <li>Fixed an issue where client could be crashed from remote</li> - <li>Fixed an issue bad nicks could cause directories to be created in log / file list download folder</li> - <li>Changed autodrop default to 2 for fewer unexpected autodrops (thanks paka)</li> - <li>Saved users file more often to have fewer missing nicks around</li> - <li>CID of user shown if nick is missing (in queue for example)</li> - <li>Added display of CID in a few places</li> - <li>Updated yaSSL to 1.2.2</li> - <li>Fixed ADC hubname display (thanks ullner)</li> - <li>Advanced TTH rollback no longer performed if tree is invalid (thanks garg)</li> - <li>Option not to auto-disconnect favorite users (thanks ullner)</li> - <li>Fixed auto-disconnect delay (thanks ullner)</li> - <li>Another fix for opencow</li> - <li>Fixed user command parameters not being remembered</li> - <li>Fixed ADC op commands</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=464">[bug 464]</a> Added option for masked password prompt (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=922">[bug 922]</a> Updated help links (thanks xan)</li> - <li>Fixed op count</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=230">[bug 230]</a> Added settings to tray menu</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=403">[bug 403]</a> Unfinished file lists deleted since they're never resumed anyway</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=639">[bug 639]</a> Separated remove user from queue menu option</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=766">[bug 766]</a> Fixed broken app titlebar</li> - <li>Removed support for generating NMDC-style file lists (old clients won't be able to download from you)</li> -</ul> - -<h2>0.689 <span style="color: gray;">(2006-04-01)</span></h2> -<ul> - <li>Fixed displaying of available bytes when user list is off</li> - <li>Fixed a potential crash when not showing user list</li> - <li>Fixed 100% CPU bug on upload</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=853">[bug 853]</a> Fixed missing function in opencow</li> -</ul> - -<h2>0.688 <span style="color: gray;">(2006-03-18)</span></h2> -<ul> - <li>Fixed public hubs sorting (thanks pothead)</li> - <li>Fixed a ZPipe issue (thanks jove)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=858">[bug 858]</a> Fixed a 100% cpu / crash bug</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=872">[bug 872]</a> Fixed a pm issue hopefully</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=812">[bug 812]</a> Fixed pm's being sent to bots</li> - <li>Files with invalid crc-32, as per their sfv file, are no longer shared</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=873">[bug 873]</a> Added connect to hub option (thanks joakim tosteberg)</li> - <li>Fixed an issue with linux file reading (thanks bart vullings and steven)</li> - <li>Added back/forward mouse/keyboard navigation to directory listing frame</li> -</ul> - -<h2>0.687 <span style="color: gray;">(2006-02-26)</span></h2> -<ul> - <li>Fixed XML file list generation for invalid filenames from other os's</li> - <li>Fixed a rare refresh crash</li> - <li>CID is now shown if no nick name is currently available for a user</li> - <li>Fixed another crash when loading file lists</li> - <li>Played some more with bufferedsocket performance</li> - <li>Fixed some VS 2005 issues (thanks trem)</li> - <li>Installer now removes old unicows library</li> - <li>Updated to yaSSL 1.1.5</li> - <li>Added possiblity to sort transfer view by all downloads first (thanks guitarm)</li> - <li>Some cleanup for frame creation (thanks martin)</li> - <li>Fixed some translation strings (thanks fleetcommand)</li> - <li>Fixed some finished transfers frames issues (thanks trem)</li> - <li>/pm and and a few other things work without user list in hub frame</li> - <li>Added support for the ZPipe extension (test version) (thanks jove)</li> - <li>Moved to subversion, CVS will no longer be maintained</li> -</ul> - -<h2>0.686 <span style="color: gray;">(2006-02-13)</span></h2> -<ul> - <li>Fixed active search (oops)</li> - <li>Fixed a crash when clicking on dchub links</li> -</ul> - -<h2>0.685 <span style="color: gray;">(2006-02-12)</span></h2> -<ul> - <li>Fixed "browse list" being available for NMDC users</li> - <li>[ADC] Removed obsolete CI field</li> - <li>Fixed missing upload progress</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=89">[bug 89]</a> Readded dynamic compression disabling</li> - <li>Added filelist download speed to filelist browser status bar</li> - <li>Added advanced hublist filter (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=579">[bug 579]</a> Fixed 0-byte files not being created if directory doesn't exist</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=804">[bug 804]</a> Cleaned up project files (thanks pothead)</li> - <li>Socket buffer size = 0 now means use system default</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=789">[bug 789]</a> Fixed wrong nick being copied (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=794">[bug 794]</a> [ADC] Fixed automatic reconnect (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=806">[bug 806]</a> Fixed description for favorite hubs (thanks ullner)</li> - <li>Updated to latest ADC specs, this will break 0.68/0.681/0.6811 queue sources and fav users (for NMDC as well)</li> - <li>Fixed a bufferedsocket crash</li> - <li>[ADC] Fixed quitting user processing (thanks ullner)</li> - <li>Clarified upload speed setting (thanks pothead)</li> - <li>Manual away setting no longer cleared when un-minimizing (thanks pothead)</li> - <li>Search result automatching waits with match until file list is downloaded if auto-matching enabled</li> - <li>Slight performance improvement when sending files</li> - <li>Fixed an issue with nick names disappearing from hub</li> - <li>Added customizable maximum user count when autosearching</li> - <li>Changed to open source version unicows for win9x users, perhaps this one will work better for you (see it as a last attempt; if it doesn't work, w9x support will be phased out completely unless someone else solves the win9x issues)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=774">[bug 774]</a> Fixed invalid description being sent if hub modifies it</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=818">[bug 818]</a> Fixed default exit mnemonic</li> - <li>Fixed some more crashes (thanks bigmuscle)</li> - <li>Fixed some shutdown issues</li> - <li>Updated country database</li> -</ul> - -<h2>0.6811 <span style="color: gray;">(2006-01-21)</span></h2> -<ul> - <li>Fixed a socket race condition leading to failing connections and crashes</li> -</ul> - -<h2>0.681 <span style="color: gray;">(2006-01-21)</span></h2> -<ul> - <li>Fixed a crash when using slow sources disconnect</li> - <li>Fixed system log overflow</li> - <li>Minor user command fix (thanks garg)</li> - <li>Removed some duplicate code (thanks trem)</li> - <li>Ctrl-a to select all items in a list (thanks garg)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=484">[bug 484]</a> Added a check for multiple refreshes running at the same time (thanks trem)</li> - <li>Fixed a few crashes here and there</li> - <li>Fixed no-slots message not being sent out always</li> - <li>Fixed yassl build locations (thanks pothead)</li> - <li>Added ip resolve cache when searching (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=413">[bug 413]</a> Failed file moves are now reported to the system log</li> -</ul> - -<h2>0.68 <span style="color: gray;">(2006-01-08)</span></h2> -<ul> - <li>Changed the user identification process completely to work better with ADC. This leads to a more strict interpretation of which users are actually the same for NMDC (essentially, NMDC users are now identified by nick+hub always, not only nick)</li> - <li>Removed saving of directories scheduled for download, since the individual files should appear in the queue fast enough that this will rarely be used (since file lists are free and downloaded almost instantly)</li> - <li>Fixed international timestamps (thanks ullner)</li> - <li>Fixed targetdrive docs (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=485">[bug 485]</a> Fixed transfer list view flicker on WinXP</li> - <li>New connection settings, please check settings page</li> - <li>Connection type strings changed</li> - <li>No longer falls back to passive mode on failed UPnP</li> - <li>Janitorial cleanups (thanks garg)</li> - <li>Removed some old favorite file format compatibility code</li> - <li>Added country to search frame (thanks paka)</li> - <li>Strftime fix (thanks garg)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=521">[bug 521]</a> Help instead of readme shown on first startup (thanks paka)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=553">[bug 553]</a> Minimize to tray and confirm appexit default to true (thanks paka)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=452">[bug 452]</a> Fixed example.xml language file generation (thanks tpo)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=556">[bug 556]</a> Fixed last searches purge (thanks sulan)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=73">[bug 73]</a> Added option to disconnect slow sources (thanks paka)</li> - <li>ADC hub counts updated correctly (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=325">[bug 325]</a> Added error message when adding dupe fav hub (thanks ullner)</li> - <li>Updated bzip2 to 1.0.3 (thanks garg)</li> - <li>Some small *nix fixes (thanks poison)</li> - <li>Source path no longer saved for TTH enabled clients (saves memory and queue file space)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=335">[bug 335]</a> Search window settings saved automatically (thanks pothead)</li> - <li>Open folder selects file in explorer (thanks pothead)</li> - <li>Local echo in pm window formatted as the other side should see it (thanks paka)</li> - <li>Fixed debug assertion (thanks tpo)</li> - <li>Dirty tabs settings improved (thanks ullner)</li> - <li>ZLib upgraded to 1.2.3, possibly fixing security issues (thanks garg)</li> - <li>Slot grants now last one connection instead of 10 minutes</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=632">[bug 632]</a> Subtotals shown when selecting users in hub frame (thanks cologic)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=625">[bug 625]</a> /u chat command opens url (thanks pur)</li> - <li>[NMDC] The first word of hub name is taken as short name for displaying purposes when space is limited</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=629">[bug 629]</a> Waiting users frame added (thanks cologic)</li> - <li>Removed old versions check (thanks cologic)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=635">[bug 635]</a> Added option to limit maximum file list size to open (thanks paka)</li> - <li>Filelist transfer logging default to off (thanks paka)</li> - <li>Added some checks when creating fav hubs (thanks tpo)</li> - <li>More settings screen updates (thanks ullner)</li> - <li>Fixed linux file moving (thanks naga)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=260">[bug 260]</a> Added option to only download files with TTH (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=708">[bug 708]</a> Fixed registry creation functions used (thanks ullner)</li> - <li>Updated WTL</li> - <li>Rewrote socket code to remove some old hacks and add some new (major change)</li> - <li>Now using standard windows error messages for socket errors</li> - <li>[ADC] Added basic SSL encryption support</li> - <li>Fixed a bug with file list loading and filenames differing in case only</li> - <li>Fixed a few standard compliance issues</li> - <li>Added dirtying to waiting users frame (thanks ullner)</li> - <li>Changed so that a few flags are shown in transfer status, [T] = TTH check on, [Z] = zlib on, [R] = rollback performed, [S] = secure</li> - <li>Parameter names all updated, your current %[xxx] macros will break all over, on the upside they're now more or less unified</li> - <li>[ADC] All hubs a user is online on are shown where only one was shown before</li> - <li>Fixed some log page issues</li> - <li>Replaced small buffer size option with the possibility to set recv/send buffer sizes manually</li> - <li>Consolidated bolding options, you'll have to reset them to your preference</li> - <li>Removed support for old hash index files (pre-0.670)</li> - <li>Improved hashing error reporting</li> - <li>Fixed hash database rebuild</li> - <li>Added /removefav command to remove a favorite hub (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=717">[bug 717]</a> Fixed search combo box (thanks pothead)</li> - <li>Added option to change auto-refresh interval (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=740">[bug 740]</a> Removed tab completion option (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=743">[bug 743]</a> Added registry key creation failure notification (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=717">[bug 717]</a> Fixed dropdown sizes (thanks pothead)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=760">[bug 760]</a> Fixed list subtraction issue (thanks cologic)</li> - <li>Added some right-to-left support, but it probably needs more work</li> - <li>[NMDC] Minislots are no longer given to old DC++ clients (<0.304)</li> - <li>[ADC] Directory size returned with search results</li> - <li>Fixed a rare deadlock</li> -</ul> - -<h2>0.674 <span style="color: gray;">(2005-04-10)</span></h2> -<ul> - <li><span style="color: red;">*** WARNING ***</span></li> - <li><span style="color: red;">This version fixes a security bug, upgrade unless you want to risk losing data</span></li> - <li><span style="color: red;">anywhere on your drive, this error affects all clients from 0.307 to date (thanks cologic for finding it)</span></li> - <li><span style="color: red;">*** WARNING ***</span></li> - <li>Added stats window to autoopen (thanks paka)</li> - <li>Fixed context menu open for multi-screen setups (thanks trem)</li> - <li>Changed country database to the original format so that users can update by themselves (thanks paka)</li> - <li>Fixed some registry issues (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=443">[bug 443]</a> Fixed localised number encodings (thanks trem)</li> - <li>Updated sorting to use a more windows-like order (thanks trem)</li> - <li>Fixed an issue with restore all (thanks krzysztof tyszecki)</li> - <li>Added list view tooltips</li> -</ul> - -<h2>0.673 <span style="color: gray;">(2005-03-22)</span></h2> -<ul> - <li>Added auto-prio by file size settings (thanks paka)</li> - <li>Fixed yet another context menu fix (in case anyone wondered, it should now be possible to use the context menu key for all context menus)</li> - <li>Fixed a search crash with search history set at 0</li> - <li>Updated unicows W95 unicode support</li> - <li>Updated to latest WTL</li> - <li>Fixed directory listing total sizes (thanks trem)</li> - <li>Fixed empty oplist issue</li> -</ul> - -<h2>0.672 <span style="color: gray;">(2005-03-20)</span></h2> -<ul> - <li>Fixed an issue when loading pre-671 file lists</li> - <li>Fixed the context menu fix</li> -</ul> - -<h2>0.671 <span style="color: gray;">(2005-03-19)</span></h2> -<ul> - <li>Added possibility to set minislot size (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=22">[bug 22]</a> Added possibility for multiline away messages and user commands (thanks ullner)</li> - <li>Added file type to queue frame (thanks ullner)</li> - <li>Changed stats frame to use standard colors (thanks yoji)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=439">[bug 439]</a> Fixed purge button (thanks ullner)</li> - <li>Fixed search frame only tth issue (thanks naga)</li> - <li>Updated to ADC 0.9</li> - <li>Fixed a crash bug (thanks trem)</li> - <li>Fixed a geoip init bug (thanks trem)</li> - <li>Fixed a prio setting bug (thanks tpo)</li> - <li>Fixed some font settings (thanks tpo)</li> - <li>Fixed ADC password sending</li> - <li>Magnet registration fix (thanks ullner and farcry)</li> - <li>Finished partial file lists for ADC</li> - <li>Fixed some ADC crashes</li> - <li>Basic ADC searches now work</li> - <li>Basic ADC pms now work</li> - <li>Basic ADC transfers now work</li> - <li>Added option to specify bind address for sockets (thanks sed)</li> - <li>Made the connection flood trigger slighly less sensitive</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=58">[bug 58]</a> Fixed strange user list behaviour</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=83">[bug 83]</a> Consolidated auto-open window options</li> - <li>Fixed some context menu stuff</li> -</ul> - -<h2>0.670 <span style="color: gray;">(2005-02-04)</span></h2> -<ul> - <li>Fixed an issue with international formats of float numbers (also fixes UDP port setting)</li> - <li>Fixed a minor crash log output address issue</li> - <li>Split off color and sound to a new page (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=359">[bug 359]</a> Fixed an issue with negative search terms (thanks naga)</li> - <li>Added option to filter TTH results in search spy (thanks joakim tosteberg)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=184">[bug 184]</a> Updated log functionality to allow users to customize log filenames (thanks naga)</li> - <li>Fixes to log edit function (thanks naga)</li> - <li>Added possibility to filter all searches without tth (thanks naga)</li> - <li>More preferences splitting (thanks ullner)</li> - <li>Small socket fix (thanks tremor)</li> - <li>Search tab goes bold if set to (thanks naga)</li> - <li>Hopefully fixed an UPnP crash</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=302">[bug 302]</a> User commands in file lists (thanks joakim tosteberg)</li> - <li>ADC url's clickable (thanks naga)</li> - <li>[Bug 117] Improved search timer to avoid spamming hub (thanks naga)</li> - <li>Redid some of the hash storage code, should be slighly more efficient</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=94">[bug 94]</a> Share is cached for faster startup</li> - <li>Temporary targetnames are now filled in when download starts, not when item is added to queue, which makes temp target dir changes happen for current queue items as well, plus we get a huge memory save on huge queues.</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=363">[bug 363]</a> Added "Remove All Sources" to queue (thanks izzzo & garg)</li> - <li>Queue menu items greyed out when there are no items (thanks izzzo)</li> - <li>Fixed a crash with certain empty lists (thanks garg)</li> - <li>Added "restore all" to undo "minimize all" (thanks guitarm)</li> - <li>Added optional pm history (thanks trem and ullner)</li> - <li>Better log file managment (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=412">[bug 412]</a> Fixed a queue count issue on removal (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=9">[bug 9]</a> Fixed a queue move issue (thanks paka)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=20">[bug 20]</a> Fixed upload auto-slot granting (thanks naga)</li> - <li>Redid adl search to accomodate for partial list browsing (thanks garg)</li> - <li>Added initial ADC file transfers support</li> - <li>ADC hub connectivity improved</li> - <li>Fixed unnecessary COM initialisation (thanks garg)</li> - <li>Some linux compile fixes</li> - <li>Added readd all sources (thanks garg)</li> - <li>Fixed a deadlock when closing hub windows (thanks trem)</li> - <li>Added user ip logging in up and downloads (thanks ullner)</li> - <li>Small spy frame fix (thanks garg)</li> - <li>Small pm fix (thanks garg)</li> - <li>Added password warning for n00bs (thanks sed)</li> - <li>Help file updates (thanks ullner, garg)</li> - <li>Probably fixed the list redownloading bug</li> - <li>Hash index format change (as a side effect, it's very easy to find dupes in the new format, someone should make a tool)</li> - <li>Download manager changes in preparation for partial list browsing and other ADC features</li> - <li>Improved efficiency for small files (<=64KiB) in the hash storage</li> - <li>Added advanced resume that detects and tries to repair rollback inconsistencies using tiger trees</li> - <li>Fixed a rare invalid zlib decompression error</li> - <li>Autosearch and automatch queue is now done by tth only (!) (thanks garg)</li> - <li>Automatch search done by tth only, should make things slightly faster</li> - <li>Search for alternates automatically uses tth if available (thanks garg)</li> - <li>Lowered compression level so that uploads will take less cpu</li> - <li>Added exact file size to directory listings (thanks paka)</li> - <li>Remove confirm fix (thanks trem)</li> - <li>Added option for the new tab select behaviour (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=116">[bug 116]</a> Added possibility to download to temp folder on the same drive as target (thanks sed)</li> - <li>Fixed user command string for file list context (thanks sed)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=290">[bug 290]</a> Added more correct escaping of search strings (thanks sed)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=432">[bug 432]</a> Fixed download directory for adlsearch matches (thanks ullner)</li> - <li>Some UPnP fixes (thanks nils maier)</li> - <li>ADL Search byte prefix fixes, might screw up your adl search settings on first load (thanks ullner)</li> - <li>Linux download path fix (thanks jens oknelid)</li> - <li>Added purge button for search history (thanks sulan)</li> - <li>Added column reorder to file listing (thanks ullner)</li> - <li>Fixed alt source download starts (thanks paka)</li> -</ul> - -<h2>0.668 <span style="color: gray;">(2004-11-30)</span></h2> -<ul> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=311">[bug 311]</a> Fixed crash on open own filelist (thanks sulan)</li> - <li>Added option to make /join open a new window (thanks ullner)</li> - <li>Added mailto: to link-clicking (thanks ullner)</li> - <li>Fixed stack overflow with excessive xml nesting (thanks farcry)</li> - <li>Fixed virtual name issue with invalid chars in the virtual name (thanks farcry)</li> - <li>Fixes to ADC implementation, see http://developer.berlios.de/projects/ddc/ for a somewhat compatible hub in development</li> - <li>Some linux patches (thanks tim burton)</li> - <li>PgUp/PgDn now scroll the chat window (thanks jonathan stone)</li> - <li>Small fix with line history (thanks jonathan stone)</li> - <li>Added option to use separate TCP and UDP ports</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=303">[bug 303]</a> Fixed a raw command guessing bug (thanks garg)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=345">[bug 345]</a> Fixed an xml listing parsing bug</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=309">[bug 309]</a> Hopefully fixed nt4 startup</li> - <li>Hopefully fixed an issue with downloading international search results from old clients</li> -</ul> - -<h2>0.667 <span style="color: gray;">(2004-11-15)</span></h2> -<ul> - <li>Improved multiple hublist support (thanks garg)</li> - <li>Fixed some favdirs issues (thanks naga)</li> - <li>Fixed a status logging issue (thanks naga)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=289">[bug 289]</a> Fixed annoying login issue</li> - <li>Added possibility to rename shares (thanks naga and tremor)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=106">[bug 106]</a> Fixed show joins for fav users (thanks ullner)</li> - <li>Fixed some unnecessary connects when download slots are full</li> - <li>Fixed magnet registration issue (thanks garg)</li> - <li>Some code documentation work (thanks jonathan jansson)</li> - <li>Makedefs.py fixes (thanks garg)</li> - <li>A connection attempt is made when you grant a slot to potentially start the other fella's transfers (thanks sed)</li> - <li>Fixed passive search results issue with international nicks (thanks garg)</li> - <li>Fixed search frame extension vs tth again</li> - <li>FAQ added to the help file (thanks bsod)</li> - <li>Upgraded to zlib 1.2.2, fixing a security issue (thanks garg)</li> - <li>Added %[file] to the transfer view user commands (thanks naga)</li> - <li>Fixed myinfo update issue (thanks sulan)</li> - <li>Added option to use only up/down for command line history (thanks jonathan stone)</li> - <li>Improved installer (thanks bsod)</li> - <li>Fixed so that a connection attempt is made when changing a transfer to highest priority</li> -</ul> - -<h2>0.666 <span style="color: gray;">(2004-11-03)</span></h2> -<ul> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=173">[bug 173]</a> Fixed copy nick to clipboard (thanks trem)</li> - <li>Removed some old code (thanks garg)</li> - <li>Added tth to log codes (thanks garg)</li> - <li>Added # of locally filtered results to search frame (thanks garg)</li> - <li>Fixed a crash in the upnp code</li> - <li>Fixed wide formatting of time (thanks garg)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=166">[bug 166]</a> Added local filtering of searches with "-" in front of the search term (thanks cologic)</li> - <li>Fixed a missing hubframe stats bug (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=87">[bug 87]</a> TTH's are now correctly searched for in search spy (thanks trem)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=256">[bug 256]</a> Fixed an issue with utf8 user commands (thanks trem)</li> - <li>Moved to a less intrusive build procedure where stlport and wtl are local to the DC++ build (see compile.txt)</li> - <li>Added /log to show log for current hub / user (thanks garg)</li> - <li>More internationalization (thanks garg)</li> - <li>Updated some template code (thanks farcry)</li> - <li>Extended log command (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=212">[bug 212]</a> Fixed issue with utf-8 nicks during login to some hubs (thanks garg)</li> - <li>Fixed issue with utf-8 time formatting for certain languages in certain locales</li> - <li>Removed search optimisation obsoleted by tth's and bloom filters (those of you with a large number of files in your share, post on the forum if you notice any big increase in CPU usage)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=69">[bug 69]</a> Added option not to download files already in share (by TTH) (thanks TPO)</li> - <li>Help file work (garg, ullner)</li> - <li>Added petabytes (PiB) (thanks garg)</li> - <li>Clicking on active tab will deactivate it (thanks garg)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=227">[bug 227]</a> Fixed an issue with loading invalid virtual names when upgrading (thanks garg)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=256">[bug 256]</a> Fixed another issue with user commands (thanks garg)</li> - <li>Updated to WTL 7.5.4291</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=183">[bug 183]</a> Hopefully fixed a few issues with w9x and Unicode</li> - <li>Fixed common control initialization</li> - <li>Unix makefile now generates a shared lib (thanks jeremy huddleston)</li> - <li>Slight memory save for hash database</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=130">[bug 130]</a> Added favorite hub removal confirmation option (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=5">[bug 5]</a> Fixed broken redirect (thanks garg)</li> - <li>Added spy frame column saving (thanks garg)</li> - <li>ADL Search autoqueue saved now (thanks garg)</li> - <li>Window minimization issue fix (thanks garg)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=129">[bug 129]</a> Fixed some issues with downloading >4GiB files</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=15">[bug 15]</a> ADL Search goto directory fixed (thanks garg)</li> - <li>Some fixes for compiling on osx (thanks jonathan jansson)</li> - <li>Removed Makedefs in favour of a python script</li> - <li>FastAlloc disabled in debug builds</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=266">[bug 266]</a> Fixed a crash with offline users and user commands (thanks naga)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=165">[bug 165]</a> Fixed a case insensitivity issue (thanks farcry)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=18">[bug 18]</a> Added favorite download directories (thanks naga)</li> - <li>Fixed MyINFO spam when hashing</li> -</ul> - -<h2>0.4034 <span style="color: gray;">(2004-10-03)</span></h2> -<ul> - <li>Help file additions (thanks naga & ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=170">[bug 170]</a> Fixed a few issues with files not being hashed correctly (thanks garg)</li> - <li>More ADC fixes (thanks sed)</li> - <li>Fixed some ADLSearch stuff (thanks garg)</li> - <li>Added item count to finished frames (thanks garg)</li> - <li>Fixed user commands encoding (thanks garg)</li> - <li>Added last search time to search spy (thanks ullner)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=3">[bug 3]</a> Fixed queue size growing on queue item move</li> - <li>Fixed missing file list on 0 byte share</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=185">[bug 185]</a> Fixed missing search results (thanks garg)</li> -</ul> - -<h2>0.4033 <span style="color: gray;">(2004-09-27)</span></h2> -<ul> - <li><span style="color: red;">*** WARNING ***</span></li> - <li><span style="color: red;">This update will change all your config files and queues, and it is</span></li> - <li><span style="color: red;">very probable that you won't be able to revert back to an older version</span></li> - <li><span style="color: red;">once the update has been done!!!</span></li> - <li><span style="color: red;">Also, finish your queue file before upgrading if you care for your</span></li> - <li><span style="color: red;">international filenames in it - they will not be correctly converted.</span></li> - <li><span style="color: red;">*** WARNING ***</span></li> - <li>Fixed a rare download crash (thanks farcry)</li> - <li>Fixed tab dropping in the last position (thanks trem)</li> - <li>Fixed directory sorting in the file listings (thanks trem)</li> - <li>Files that can't be moved to the target drive from the temp folder are now renamed to their real name</li> - <li>Text with unix and mac line end encodings should now be correctly displayed</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=35">[bug 35]</a> TTH Values are used for right click download menus when available</li> - <li>Upgraded to WTL 7.5.4196</li> - <li>Updated license to allow others to release legal binaries compiled against WTL</li> - <li>Moved the core structures to UTF-8 to allow correct internationalisation (major change)</li> - <li>Moving towards full unicodization of the user interface, MS layer for unicode now needed for old crappy windows versions, and I don't know how good that works. The rest of us can now see correct names being displayed in file listings (for XML filelists anyway)</li> - <li>Rewrote the share manager so that it doesn't lock the whole of DC++ while reading the directories of shared files when refreshing the list</li> - <li>Added virtual share name</li> - <li>Removed autosearch string, it's not used any more</li> - <li>Fixed a tth hash speed bug (hashing should be much faster now)</li> - <li>File listings are now generated on the fly when someone needs them</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=127">[bug 127]</a> Added UPnP support (thanks mark gillespie)</li> - <li>Ctrl-L now opens file lists (thanks garg)</li> - <li>Various ADC patches (thanks sedulus)</li> - <li>Slightly changed temporary download name</li> - <li>TTH Leaf uploads no longer logged (thanks garg)</li> - <li>Added (initial) support for hublist.org xml hublists, now default (you have to change your hub list address to http://www.hublist.org/PublicHubList.xml.bz2 if you want to benefit)</li> - <li>Fixed an issue with invalid TTH inconsistencies due to files being downloaded to the same target filename as a previously downloaded file (.nfo's usually)</li> - <li>Some memory savings for people with large queues</li> - <li>Fixed a bug with autosearch repeating the same search needlessly (this should result in fewer autosearches, good for the hubs)</li> - <li>Files scheduled for viewing are always set to highest prio</li> - <li>Added rudimentary automake and autoconf support for the client part, perhaps this will encourage someone to finish a nice linux port</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=162">[bug 162]</a> Fixed dupe usercommands on reconnect (thanks sed)</li> - <li>Links now clickable in PM's and notepad as well (thanks naga)</li> - <li>Files are no longer hashed if the shared directory is removed while hashing</li> - <li>Added hash progress dialog, hashing is run at a higher priority when dialog is shown</li> - <li>Fixed a crash issue with invalid DcLst:s (thanks garg)</li> - <li>Better strategy for removing old filelists on exit (thanks garg)</li> - <li>Added Geo-IP license and fixes (thanks garg)</li> - <li>Added Help file - make sure you read it (thanks garg)</li> - <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=169">[bug 169]</a> Fixed a memory leak with rollback buffers under certain conditions</li> - <li>ADC INF updates only send the necessary info (thanks sed)</li> -</ul> - -<h2>0.4032 <span style="color: gray;">(2004-08-08)</span></h2> -<ul> - <li>Fixed issue with autosearch not getting filelists</li> - <li>Fixed an issue with autosearch by tth not being done</li> - <li>Added folder histore for single file downloads (thanks slowmo)</li> - <li>Fishing locale from os, changes string representations in some places (thanks garg)</li> - <li>Caseless icon optimization (thanks garg)</li> - <li>CTRL-E shortcut for refresh (thanks garg)</li> - <li>Fixed a process termination issue (thanks defr)</li> - <li>DCTC file not available detected (thanks defr)</li> - <li>Fixed bad window size being saved for minimised windows (thanks trem)</li> - <li>Fixed an issue with the ADC parser (thanks trem)</li> - <li>More WTL 7.5 preparations (thanks garg)</li> - <li>Added a switch to ease the life of the UPX compressor (exe compressors suck btw) (thanks garg)</li> - <li>Added irc:// as web link (thanks ullner)</li> - <li>Fixed an issue with the adc parser (thanks sed)</li> - <li>TTH trees no longer require a slot</li> - <li>Added options to open file lists and pm's in background (thanks sed)</li> - <li>Minor number formatting fixes (thanks palm and garg)</li> - <li>Some more linux compile fixes (thanks palm)</li> - <li>Additional translation strings (thanks garg)</li> - <li>Fixed own search results bug (thanks garg)</li> - <li><64KiB files auto-highest priority (thanks garg)</li> - <li>Fixed search in utf-8 file lists (thanks fleetcommand)</li> - <li>Fixed utf-8 encoding/decoding, chinese and other multi-byte scripts should now work ok (thanks liny)</li> - <li>Removed obsolete Import from NMDC queue (blame cologic)</li> - <li>Added option to disable bolding for hub frames (thanks ullner)</li> - <li>Fixed a small leak in the Search Frame (thanks psf8500)</li> - <li>Added bitzi.com lookup and magnet link copy (thanks garg)</li> - <li>Removed .bz2 lists from "open file list" types (thanks garg)</li> - <li>Fixed a download-to crash (thanks farcry)</li> - <li>Fixed dialog modality in several places (thanks garg)</li> - <li>Fixed some debug assertions (thanks garg)</li> - <li>Queue sorted sensibly (thanks garg)</li> - <li>Added customizable timestamps (thanks ullner)</li> - <li>Added extended dupe logging (thanks xan)</li> - <li>Some code pedantry cleanup done (thanks garg)</li> - <li>Unfinished files now have a slightly different naming scheme (thanks garg)</li> - <li>Added default unfinished folder (thanks garg)</li> - <li>When matching queue, users marked with file not available are readded (thanks farcry)</li> - <li>Added (limited support for) magnet link handling (thanks garg)</li> - <li>Uninstaller now removes the one registry key DC++ creates (thanks garg)</li> - <li>Fixed a few link click bugs (thanks garg)</li> - <li>Added quick connect (thanks tpo)</li> - <li>+ and - in the queue change priority (thanks tpo)</li> - <li>Network stat colors are now the same as in the transfer window (thanks tpo)</li> - <li>Fixed a rare automatch crash (thanks farcry)</li> - <li>Allowed sharing of network folders (thanks garg)</li> - <li>Added option to automatically add finished files to share without refresh (thanks farcry)</li> - <li>Fixed a few closing window crashes (thanks farcry)</li> - <li>Fixed a tab moving issue (thanks farcry)</li> - <li>Sources with rollback errors are now automatically removed (thanks garg)</li> - <li>Fixed compile.txt and readme.txt (thanks garg)</li> - <li>Magnet handler included in installer (thanks garg & magnethandler author)</li> - <li>New icon with alpha channels for xp (thanks olle svensson, sorry all other icon submitters who sent it before him, neither aestethic nor personal reasons why yours wasn't chosen =)</li> - <li>Fixed another download to crash (thanks garg)</li> - <li>Stringdefs automatically rebuilt (thanks farcry & garg)</li> - <li>DC++ will only share files that HAVE BEEN HASHED!</li> -</ul> - -<h2>0.403 <span style="color: gray;">(2004-06-27)</span></h2> -<ul> - <li>Fixed 100% cpu / crash bug</li> -</ul> - -<h2>0.402 <span style="color: gray;">(2004-06-27)</span></h2> -<ul> - <li>Fixed transfer view crash (thanks garg)</li> - <li>Removed default sort in search frame</li> - <li>Window sizes / positions of favorite hubs saved (thanks trem)</li> - <li>Begun work on the ADC protocol (major change)</li> - <li>Fixed issue with the exceptioninfo growing indefinately (recursive behaviour)</li> - <li>Readded missing TTHSearch to hub $Supports</li> - <li>Fixed unnecessary $MyINFO being sent out</li> - <li>Removed time left and speed from waiting transfers (thanks garg)</li> - <li>Documented %[line:reason]</li> - <li>Fixed a bug with hanging queue display</li> - <li>When searching by hash, size mode set to normal (don't care)</li> - <li>Hash speed tweaks, check if it's any better.</li> - <li>Fixed a crash when moving files</li> - <li>Fixed directory sorting in directory listings</li> - <li>Fixed an unnecessary disconnect on file not available</li> - <li>Fixed missing write buffering</li> - <li>Added drag-drop of directories onto the shared dirs view (thanks trem)</li> - <li>Added option for specifying max hashing speed</li> - <li>Updated installer to optionally create a backup of the settings when upgrading</li> - <li>Changed to a more convenient observer implementation (no, not a functor (or something more fancy) based one)</li> - <li>Fixed an invalid XML file list crash</li> - <li>Copy address to clipboard from public hub list (thanks joakim tosteberg)</li> - <li>Changed to IEC binary multiple units (MiB, KiB etc)</li> - <li>GETSETREF templetized (thanks farcry)</li> - <li>Small files size increased to 64KiB</li> - <li>Op's that use a client that supports minislots always get a minislot (for small files / xml file lists), regardless of how many minislots are already taken.</li> - <li>Matching by name removed for queue items with a TTH root (for autosearches)</li> - <li>Autosearch is done by TTH for queue items that have a root</li> - <li>Removed GetTestZBlock (no more safe/compressed transfers from old clients)</li> - <li>Added support for automatic user command clearing (code 255) (thanks sedulus)</li> - <li>User country shown in ip field (thanks pofis)</li> - <li>Automatic search matching is now done exclusively by tth for those items that have a TTH root and by exact filename for those that don't.</li> - <li>Dropped support for bzip2 file lists</li> - <li>Show joins parts for fav users only option added (thanks psf8500)</li> - <li>Added possibility t... [truncated message content] |
From: <arn...@us...> - 2006-12-15 21:43:27
|
Revision: 695 http://svn.sourceforge.net/dcplusplus/?rev=695&view=rev Author: arnetheduck Date: 2006-12-15 13:43:24 -0800 (Fri, 15 Dec 2006) Log Message: ----------- compile fix Modified Paths: -------------- dcplusplus/trunk/yassl/taocrypt/src/asn.cpp Modified: dcplusplus/trunk/yassl/taocrypt/src/asn.cpp =================================================================== --- dcplusplus/trunk/yassl/taocrypt/src/asn.cpp 2006-12-15 21:38:18 UTC (rev 694) +++ dcplusplus/trunk/yassl/taocrypt/src/asn.cpp 2006-12-15 21:43:24 UTC (rev 695) @@ -38,9 +38,8 @@ #include "sha.hpp" #include "coding.hpp" #include <time.h> // gmtime(); -#include "memory.hpp" // some auto_ptr don't have reset, also need auto_array +#include "memory_array.hpp" // some auto_ptr don't have reset, also need auto_array - namespace TaoCrypt { namespace { // locals This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2006-12-15 21:38:19
|
Revision: 694 http://svn.sourceforge.net/dcplusplus/?rev=694&view=rev Author: arnetheduck Date: 2006-12-15 13:38:18 -0800 (Fri, 15 Dec 2006) Log Message: ----------- exclude fix Modified Paths: -------------- dcplusplus/trunk/release.cmd Modified: dcplusplus/trunk/release.cmd =================================================================== --- dcplusplus/trunk/release.cmd 2006-12-15 21:37:10 UTC (rev 693) +++ dcplusplus/trunk/release.cmd 2006-12-15 21:38:18 UTC (rev 694) @@ -2,7 +2,7 @@ copy /b app\dcplusplus.chm . copy /b app\dcplusplus.pdb . "C:\Program Files\7-Zip\7z.exe" a -tzip -mx9 DCPlusPlus-%1.zip dcppboot.xml unicows.dll unicows.pdb dcplusplus.chm dcplusplus.exe dcplusplus.pdb dbghelp.dll changelog.txt Example.xml License.txt GeoIPCountryWhois.csv -"C:\Program Files\7-Zip\7z.exe" a -tzip -mx9 DCPlusPlus-%1-src.zip dcppboot.xml makedefs.py libunicows.lib unicows.dll unicows.pdb yassl\* yassl\certs\* yassl\include\openssl\* yassl\mySTL\* yassl\src\* yassl\include\* yassl\taocrypt\* yassl\taocrypt\src\* yassl\taocrypt\include\* stlport\.keep wtl\.keep help\* zlib\* bzip2\* client\* res\* windows\* changelog.txt Example.xml License.txt compile.txt GeoIPCountryWhois.csv *.vcproj *.sln *.rc extensions.txt doxyfile dcplusplus.nsi -xr!.svn -x!*.user +"C:\Program Files\7-Zip\7z.exe" a -tzip -mx9 DCPlusPlus-%1-src.zip dcppboot.xml makedefs.py libunicows.lib unicows.dll unicows.pdb yassl\* yassl\certs\* yassl\include\openssl\* yassl\mySTL\* yassl\src\* yassl\include\* yassl\taocrypt\* yassl\taocrypt\src\* yassl\taocrypt\include\* stlport\.keep wtl\.keep help\* zlib\* bzip2\* client\* res\* windows\* changelog.txt Example.xml License.txt compile.txt GeoIPCountryWhois.csv *.vcproj *.sln *.rc extensions.txt doxyfile dcplusplus.nsi -xr!.svn -xr!*.user del dcplusplus.exe del dcplusplus.pdb del dcplusplus.chm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2006-12-15 21:37:13
|
Revision: 693 http://svn.sourceforge.net/dcplusplus/?rev=693&view=rev Author: arnetheduck Date: 2006-12-15 13:37:10 -0800 (Fri, 15 Dec 2006) Log Message: ----------- Changelog Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/help/changelog.html dcplusplus/trunk/release.cmd Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2006-12-14 21:59:19 UTC (rev 692) +++ dcplusplus/trunk/changelog.txt 2006-12-15 21:37:10 UTC (rev 693) @@ -1,4 +1,4 @@ --- -- +-- 0.699 2006-12-15 -- * Switched to VC8/VS2005 * Removed some unused options * Antifrag is now default Modified: dcplusplus/trunk/help/changelog.html =================================================================== --- dcplusplus/trunk/help/changelog.html 2006-12-14 21:59:19 UTC (rev 692) +++ dcplusplus/trunk/help/changelog.html 2006-12-15 21:37:10 UTC (rev 693) @@ -13,6 +13,36 @@ <h1>DC++ Changelog</h1> See the version history of DC++ below. +<h2>0.699 <span style="color: gray;">(2006-12-15)</span></h2> +<ul> + <li>Switched to VC8/VS2005</li> + <li>Removed some unused options</li> + <li>Antifrag is now default</li> + <li>Confirm hub removal is now default</li> + <li>SFV checking is now default</li> + <li>Fixed TLS port not being greyed out</li> + <li>Automatic hub reconnection is only done if at least one successful connection has been made</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1080">[bug 1080]</a> Better nick tab completion (thanks cologic)</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1081">[bug 1081]</a> Added user IP in hub frame (thanks cologic)</li> + <li>No more STLport for the time being</li> + <li>Linux checks for invalid file types (thanks steven sheehy)</li> + <li>Fixed potential crash when search began with space</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1085">[bug 1085]</a> Better sound playing settings (thanks cologic / ullner)</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1111">[bug 1111]</a> OpenSSL compatibility and some unix fixes (thanks steven sheehy)</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1056">[bug 1056]</a> Added option to sort fav users above other users in hub frame (thanks poy)</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1063">[bug 1063]</a> Added option to show shell context menu in finished frame (thanks poy)</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1092">[bug 1092]</a> Fixed TTH tree being redownloaded (thanks stephan hohe)</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1097">[bug 1097]</a> Fixed waiting users being removed (thanks stephan hohe)</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1110">[bug 1110]</a> Added new adc hub list (thanks mafa_45)</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1091">[bug 1091]</a> Added new nmdc hub lists (thanks poy)</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1112">[bug 1112]</a> Port sign cleanup (thanks steven sheehy)</li> + <li>[ADC] Fixed client-to-client connection sequence</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1064">[bug 1064]</a> Updated to YaSSL 1.5.0, should fix crash</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=446">[bug 446]</a> Public hub lists are cached and downloaded only when user requests it (thanks poy)</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1117">[bug 1117]</a> Fixed subfolders being created on filelist downloads (thanks mikael eman)</li> + <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1096">[bug 1096]</a> Updated credits in about box</li> +</ul> + <h2>0.698 <span style="color: gray;">(2006-10-10)</span></h2> <ul> <li><a href="http://dcpp.net/bugzilla/show_bug.cgi?id=1065">[bug 1065]</a> Code cleanup (thanks steven sheehy)</li> Modified: dcplusplus/trunk/release.cmd =================================================================== --- dcplusplus/trunk/release.cmd 2006-12-14 21:59:19 UTC (rev 692) +++ dcplusplus/trunk/release.cmd 2006-12-15 21:37:10 UTC (rev 693) @@ -1,8 +1,8 @@ copy /b app\dcplusplus.exe . copy /b app\dcplusplus.chm . copy /b app\dcplusplus.pdb . -"c:\program files\WinRAR\WinRAR" a -ep -m5 DCPlusPlus-%1.zip dcppboot.xml unicows.dll unicows.pdb dcplusplus.chm dcplusplus.exe dcplusplus.pdb dbghelp.dll changelog.txt Example.xml License.txt GeoIPCountryWhois.csv -"c:\program files\WinRAR\WinRAR" a -m5 DCPlusPlus-%1-src.zip dcppboot.xml makedefs.py libunicows.lib unicows.dll unicows.pdb yassl\* yassl\certs\* yassl\include\openssl\* yassl\mySTL\* yassl\src\* yassl\include\* yassl\taocrypt\* yassl\taocrypt\src\* yassl\taocrypt\include\* stlport\.keep wtl\.keep help\* zlib\* bzip2\* client\* res\* windows\* changelog.txt Example.xml License.txt compile.txt GeoIPCountryWhois.csv *.vcproj *.sln *.rc extensions.txt doxyfile dcplusplus.nsi +"C:\Program Files\7-Zip\7z.exe" a -tzip -mx9 DCPlusPlus-%1.zip dcppboot.xml unicows.dll unicows.pdb dcplusplus.chm dcplusplus.exe dcplusplus.pdb dbghelp.dll changelog.txt Example.xml License.txt GeoIPCountryWhois.csv +"C:\Program Files\7-Zip\7z.exe" a -tzip -mx9 DCPlusPlus-%1-src.zip dcppboot.xml makedefs.py libunicows.lib unicows.dll unicows.pdb yassl\* yassl\certs\* yassl\include\openssl\* yassl\mySTL\* yassl\src\* yassl\include\* yassl\taocrypt\* yassl\taocrypt\src\* yassl\taocrypt\include\* stlport\.keep wtl\.keep help\* zlib\* bzip2\* client\* res\* windows\* changelog.txt Example.xml License.txt compile.txt GeoIPCountryWhois.csv *.vcproj *.sln *.rc extensions.txt doxyfile dcplusplus.nsi -xr!.svn -x!*.user del dcplusplus.exe del dcplusplus.pdb del dcplusplus.chm This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2006-12-14 21:59:22
|
Revision: 692 http://svn.sourceforge.net/dcplusplus/?rev=692&view=rev Author: arnetheduck Date: 2006-12-14 13:59:19 -0800 (Thu, 14 Dec 2006) Log Message: ----------- release compile fix, yassl fixes Modified Paths: -------------- dcplusplus/trunk/DCPlusPlus.rc dcplusplus/trunk/client/version.h dcplusplus/trunk/yassl/include/buffer.hpp dcplusplus/trunk/yassl/taocrypt/src/asn.cpp dcplusplus/trunk/yassl/taocrypt/src/integer.cpp dcplusplus/trunk/yassl/taocrypt/src/template_instnt.cpp dcplusplus/trunk/yassl/yassl.vcproj Removed Paths: ------------- dcplusplus/trunk/yassl/mySTL/ dcplusplus/trunk/yassl/taocrypt/mySTL/algorithm.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/list.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/memory.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/pair.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/stdexcept.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/vector.hpp Modified: dcplusplus/trunk/DCPlusPlus.rc =================================================================== --- dcplusplus/trunk/DCPlusPlus.rc 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/DCPlusPlus.rc 2006-12-14 21:59:19 UTC (rev 692) @@ -7,7 +7,7 @@ // // Generated from the TEXTINCLUDE 2 resource. // -#include "atlres.h" +#include "wtl\\atlres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS @@ -831,8 +831,8 @@ // VS_VERSION_INFO VERSIONINFO - FILEVERSION 0,6,9,8 - PRODUCTVERSION 0,6,9,8 + FILEVERSION 0,6,9,9 + PRODUCTVERSION 0,6,9,9 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -840,7 +840,7 @@ FILEFLAGS 0x0L #endif FILEOS 0x4L - FILETYPE 0x2L + FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" @@ -849,12 +849,12 @@ BEGIN VALUE "Comments", "http://dcplusplus.sourceforge.net" VALUE "FileDescription", "DC++" - VALUE "FileVersion", "0, 6, 9, 8" + VALUE "FileVersion", "0, 6, 9, 9" VALUE "InternalName", "DC++" VALUE "LegalCopyright", "Copyright 2001-2006 Jacek Sieka" VALUE "OriginalFilename", "DCPlusPlus.exe" VALUE "ProductName", "DC++" - VALUE "ProductVersion", "0, 6, 9, 8" + VALUE "ProductVersion", "0, 6, 9, 9" END END BLOCK "VarFileInfo" Modified: dcplusplus/trunk/client/version.h =================================================================== --- dcplusplus/trunk/client/version.h 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/client/version.h 2006-12-14 21:59:19 UTC (rev 692) @@ -17,7 +17,7 @@ */ #define APPNAME "DC++" -#define VERSIONSTRING "0.698" -#define VERSIONFLOAT 0.698 +#define VERSIONSTRING "0.699" +#define VERSIONFLOAT 0.699 /* Update the .rc file as well... */ Modified: dcplusplus/trunk/yassl/include/buffer.hpp =================================================================== --- dcplusplus/trunk/yassl/include/buffer.hpp 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/yassl/include/buffer.hpp 2006-12-14 21:59:19 UTC (rev 692) @@ -33,7 +33,7 @@ #include <assert.h> // assert #include "yassl_types.hpp" // ysDelete -#include "memory.hpp" // mySTL::auto_ptr +#include "memory_array.hpp" // mySTL::auto_ptr #include STL_ALGORITHM_FILE Deleted: dcplusplus/trunk/yassl/taocrypt/mySTL/algorithm.hpp =================================================================== --- dcplusplus/trunk/yassl/taocrypt/mySTL/algorithm.hpp 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/yassl/taocrypt/mySTL/algorithm.hpp 2006-12-14 21:59:19 UTC (rev 692) @@ -1,115 +0,0 @@ -/* mySTL algorithm.hpp - * - * Copyright (C) 2003 Sawtooth Consulting Ltd. - * - * This file is part of yaSSL. - * - * yaSSL is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * There are special exceptions to the terms and conditions of the GPL as it - * is applied to yaSSL. View the full text of the exception in the file - * FLOSS-EXCEPTIONS in the directory of this software distribution. - * - * yaSSL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ - - -/* mySTL algorithm implements max, min, for_each, swap, find_if, copy, - * copy_backward, fill - */ - -#ifndef mySTL_ALGORITHM_HPP -#define mySTL_ALGORITHM_HPP - - -namespace mySTL { - - -template<typename T> -inline const T& max(const T& a, const T&b) -{ - return a < b ? b : a; -} - - -template<typename T> -inline const T& min(const T& a, const T&b) -{ - return b < a ? b : a; -} - - -template<typename InIter, typename Func> -Func for_each(InIter first, InIter last, Func op) -{ - while (first != last) { - op(*first); - ++first; - } - return op; -} - - -template<typename T> -inline void swap(T& a, T& b) -{ - T tmp = a; - a = b; - b = tmp; -} - - -template<typename InIter, typename Pred> -InIter find_if(InIter first, InIter last, Pred pred) -{ - while (first != last && !pred(*first)) - ++first; - return first; -} - - -template<typename InputIter, typename OutputIter> -inline OutputIter copy(InputIter first, InputIter last, OutputIter place) -{ - while (first != last) { - *place = *first; - ++first; - ++place; - } - return place; -} - - -template<typename InputIter, typename OutputIter> -inline OutputIter -copy_backward(InputIter first, InputIter last, OutputIter place) -{ - while (first != last) - *--place = *--last; - return place; -} - - -template<typename InputIter, typename T> -void fill(InputIter first, InputIter last, const T& v) -{ - while (first != last) { - *first = v; - ++first; - } -} - - -} // namespace mySTL - -#endif // mySTL_ALGORITHM_HPP Deleted: dcplusplus/trunk/yassl/taocrypt/mySTL/list.hpp =================================================================== --- dcplusplus/trunk/yassl/taocrypt/mySTL/list.hpp 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/yassl/taocrypt/mySTL/list.hpp 2006-12-14 21:59:19 UTC (rev 692) @@ -1,374 +0,0 @@ -/* mySTL list.hpp - * - * Copyright (C) 2003 Sawtooth Consulting Ltd. - * - * This file is part of yaSSL. - * - * yaSSL is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * There are special exceptions to the terms and conditions of the GPL as it - * is applied to yaSSL. View the full text of the exception in the file - * FLOSS-EXCEPTIONS in the directory of this software distribution. - * - * yaSSL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ - - -/* mySTL list implements a simple list - * - */ - -#ifndef mySTL_LIST_HPP -#define mySTL_LIST_HPP - - -#include "helpers.hpp" - - -namespace mySTL { - - - -template<typename T> -class list { - -#ifdef __SUNPRO_CC -/* - Sun Forte 7 C++ v. 5.4 needs class 'node' public to be visible to - the nested class 'iterator' (a non-standard behaviour). -*/ -public: -#endif - - struct node { - node(T t) : prev_(0), next_(0), value_(t) {} - - node* prev_; - node* next_; - T value_; - }; -public: - list() : head_(0), tail_(0), sz_(0) {} - ~list(); - - void push_front(T); - void pop_front(); - T front() const; - void push_back(T); - void pop_back(); - T back() const; - bool remove(T); - size_t size() const { return sz_; } - bool empty() const { return sz_ == 0; } - - class iterator { - node* current_; - public: - explicit iterator(node* p = 0) : current_(p) {} - - T& operator*() const - { - return current_->value_; - } - - T* operator->() const - { - return &(operator*()); - } - - iterator& operator++() - { - current_ = current_->next_; - return *this; - } - - iterator& operator--() - { - current_ = current_->prev_; - return *this; - } - - iterator operator++(int) - { - iterator tmp = *this; - current_ = current_->next_; - return tmp; - } - - iterator operator--(int) - { - iterator tmp = *this; - current_ = current_->prev_; - return tmp; - } - - bool operator==(const iterator& other) const - { - return current_ == other.current_; - } - - bool operator!=(const iterator& other) const - { - return current_ != other.current_; - } - - friend class list<T>; - }; - - - class reverse_iterator { - node* current_; - public: - explicit reverse_iterator(node* p = 0) : current_(p) {} - - T& operator*() const - { - return current_->value_; - } - - T* operator->() const - { - return &(operator*()); - } - - reverse_iterator& operator++() - { - current_ = current_->prev_; - return *this; - } - - reverse_iterator& operator--() - { - current_ = current_->next_; - return *this; - } - - reverse_iterator operator++(int) - { - reverse_iterator tmp = *this; - current_ = current_->prev_; - return tmp; - } - - reverse_iterator operator--(int) - { - reverse_iterator tmp = *this; - current_ = current_->next_; - return tmp; - } - - bool operator==(const reverse_iterator& other) const - { - return current_ == other.current_; - } - - bool operator!=(const reverse_iterator& other) const - { - return current_ != other.current_; - } - - friend class list<T>; - }; - - bool erase(iterator); - - iterator begin() const { return iterator(head_); } - reverse_iterator rbegin() const { return reverse_iterator(tail_); } - iterator end() const { return iterator(); } - reverse_iterator rend() const { return reverse_iterator(); } - - typedef iterator const_iterator; // for now - - class underflow {}; - class overflow {}; -private: - node* head_; - node* tail_; - size_t sz_; - - node* look_up(T); - - list(const list&); // hide copy - list& operator=(const list&); // and assign -}; - - -template<typename T> -list<T>::~list() -{ - node* start = head_; - node* next_; - - for (; start; start = next_) { - next_ = start->next_; - destroy(start); - FreeMemory(start); - } -} - - -template<typename T> -void list<T>::push_front(T t) -{ - void* mem = GetMemory(sizeof(node)); - node* add = new (reinterpret_cast<yassl_pointer>(mem)) node(t); - - if (head_) { - add->next_ = head_; - head_->prev_ = add; - } - else - tail_ = add; - - head_ = add; - ++sz_; -} - - -template<typename T> -void list<T>::pop_front() -{ - node* front = head_; - - if (head_ == 0) - return; - else if (head_ == tail_) - head_ = tail_ = 0; - else { - head_ = head_->next_; - head_->prev_ = 0; - } - destroy(front); - FreeMemory(front); - --sz_; -} - - -template<typename T> -T list<T>::front() const -{ - if (head_ == 0) return T(); - return head_->value_; -} - - -template<typename T> -void list<T>::push_back(T t) -{ - void* mem = GetMemory(sizeof(node)); - node* add = new (reinterpret_cast<yassl_pointer>(mem)) node(t); - - if (tail_) { - tail_->next_ = add; - add->prev_ = tail_; - } - else - head_ = add; - - tail_ = add; - ++sz_; -} - - -template<typename T> -void list<T>::pop_back() -{ - node* rear = tail_; - - if (tail_ == 0) - return; - else if (tail_ == head_) - tail_ = head_ = 0; - else { - tail_ = tail_->prev_; - tail_->next_ = 0; - } - destroy(rear); - FreeMemory(rear); - --sz_; -} - - -template<typename T> -T list<T>::back() const -{ - if (tail_ == 0) return T(); - return tail_->value_; -} - - -template<typename T> -typename list<T>::node* list<T>::look_up(T t) -{ - node* list = head_; - - if (list == 0) return 0; - - for (; list; list = list->next_) - if (list->value_ == t) - return list; - - return 0; -} - - -template<typename T> -bool list<T>::remove(T t) -{ - node* del = look_up(t); - - if (del == 0) - return false; - else if (del == head_) - pop_front(); - else if (del == tail_) - pop_back(); - else { - del->prev_->next_ = del->next_; - del->next_->prev_ = del->prev_; - - destroy(del); - FreeMemory(del); - --sz_; - } - return true; -} - - -template<typename T> -bool list<T>::erase(iterator iter) -{ - node* del = iter.current_; - - if (del == 0) - return false; - else if (del == head_) - pop_front(); - else if (del == tail_) - pop_back(); - else { - del->prev_->next_ = del->next_; - del->next_->prev_ = del->prev_; - - destroy(del); - FreeMemory(del); - --sz_; - } - return true; -} - - - -} // namespace mySTL - -#endif // mySTL_LIST_HPP Deleted: dcplusplus/trunk/yassl/taocrypt/mySTL/memory.hpp =================================================================== --- dcplusplus/trunk/yassl/taocrypt/mySTL/memory.hpp 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/yassl/taocrypt/mySTL/memory.hpp 2006-12-14 21:59:19 UTC (rev 692) @@ -1,143 +0,0 @@ -/* mySTL memory.hpp - * - * Copyright (C) 2003 Sawtooth Consulting Ltd. - * - * This file is part of yaSSL. - * - * yaSSL is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * There are special exceptions to the terms and conditions of the GPL as it - * is applied to yaSSL. View the full text of the exception in the file - * FLOSS-EXCEPTIONS in the directory of this software distribution. - * - * yaSSL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ - - -/* mySTL memory implements auto_ptr - * - */ - -#ifndef mySTL_MEMORY_HPP -#define mySTL_MEMORY_HPP - -#include "memory_array.hpp" // for auto_array - -#ifdef _MSC_VER - // disable operator-> warning for builtins - #pragma warning(disable:4284) -#endif - - -namespace mySTL { - - -template<typename T> -struct auto_ptr_ref { - T* ptr_; - explicit auto_ptr_ref(T* p) : ptr_(p) {} -}; - - -template<typename T> -class auto_ptr { - T* ptr_; - - void Destroy() - { - #ifdef YASSL_LIB - yaSSL::ysDelete(ptr_); - #else - TaoCrypt::tcDelete(ptr_); - #endif - } -public: - explicit auto_ptr(T* p = 0) : ptr_(p) {} - - ~auto_ptr() - { - Destroy(); - } - - - auto_ptr(auto_ptr& other) : ptr_(other.release()) {} - - auto_ptr& operator=(auto_ptr& that) - { - if (this != &that) { - Destroy(); - ptr_ = that.release(); - } - return *this; - } - - - T* operator->() const - { - return ptr_; - } - - T& operator*() const - { - return *ptr_; - } - - T* get() const - { - return ptr_; - } - - T* release() - { - T* tmp = ptr_; - ptr_ = 0; - return tmp; - } - - void reset(T* p = 0) - { - if (ptr_ != p) { - Destroy(); - ptr_ = p; - } - } - - // auto_ptr_ref conversions - auto_ptr(auto_ptr_ref<T> ref) : ptr_(ref.ptr_) {} - - auto_ptr& operator=(auto_ptr_ref<T> ref) - { - if (this->ptr_ != ref.ptr_) { - Destroy(); - ptr_ = ref.ptr_; - } - return *this; - } - - template<typename T2> - operator auto_ptr<T2>() - { - return auto_ptr<T2>(this->release()); - } - - template<typename T2> - operator auto_ptr_ref<T2>() - { - return auto_ptr_ref<T2>(this->release()); - } -}; - - -} // namespace mySTL - -#endif // mySTL_MEMORY_HPP Deleted: dcplusplus/trunk/yassl/taocrypt/mySTL/pair.hpp =================================================================== --- dcplusplus/trunk/yassl/taocrypt/mySTL/pair.hpp 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/yassl/taocrypt/mySTL/pair.hpp 2006-12-14 21:59:19 UTC (rev 692) @@ -1,65 +0,0 @@ -/* mySTL pair.hpp - * - * Copyright (C) 2003 Sawtooth Consulting Ltd. - * - * This file is part of yaSSL. - * - * yaSSL is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * There are special exceptions to the terms and conditions of the GPL as it - * is applied to yaSSL. View the full text of the exception in the file - * FLOSS-EXCEPTIONS in the directory of this software distribution. - * - * yaSSL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ - - -/* mySTL pair implements pair - * - */ - -#ifndef mySTL_PAIR_HPP -#define mySTL_PAIR_HPP - - - -namespace mySTL { - - -template<typename T1, typename T2> -struct pair { - typedef T1 first_type; - typedef T2 second_type; - - first_type first; - second_type second; - - pair() {} - pair(const T1& t1, const T2& t2) : first(t1), second(t2) {} - - template<typename U1, typename U2> - pair(const pair<U1, U2>& p) : first(p.first), second(p.second) {} -}; - - -template<typename T1, typename T2> -inline pair<T1, T2> make_pair(const T1& a, const T2& b) -{ - return pair<T1, T2>(a, b); -} - - - -} // namespace mySTL - -#endif // mySTL_PAIR_HPP Deleted: dcplusplus/trunk/yassl/taocrypt/mySTL/stdexcept.hpp =================================================================== --- dcplusplus/trunk/yassl/taocrypt/mySTL/stdexcept.hpp 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/yassl/taocrypt/mySTL/stdexcept.hpp 2006-12-14 21:59:19 UTC (rev 692) @@ -1,84 +0,0 @@ -/* mySTL stdexcept.hpp - * - * Copyright (C) 2003 Sawtooth Consulting Ltd. - * - * This file is part of yaSSL. - * - * yaSSL is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * There are special exceptions to the terms and conditions of the GPL as it - * is applied to yaSSL. View the full text of the exception in the file - * FLOSS-EXCEPTIONS in the directory of this software distribution. - * - * yaSSL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ - - -/* mySTL memory implements exception, runtime_error - * - */ - -#ifndef mySTL_STDEXCEPT_HPP -#define mySTL_STDEXCEPT_HPP - - -#include <string.h> // strncpy -#include <assert.h> // assert -#include <stdlib.h> // size_t - - -namespace mySTL { - - -class exception { -public: - exception() {} - virtual ~exception() {} // to shut up compiler warnings - - virtual const char* what() const { return ""; } - - // for compiler generated call, never used - static void operator delete(void*) { assert(0); } -private: - // don't allow dynamic creation of exceptions - static void* operator new(size_t); -}; - - -class named_exception : public exception { -public: - enum { NAME_SIZE = 80 }; - - explicit named_exception(const char* str) - { - strncpy(name_, str, NAME_SIZE); - name_[NAME_SIZE - 1] = 0; - } - - virtual const char* what() const { return name_; } -private: - char name_[NAME_SIZE]; -}; - - -class runtime_error : public named_exception { -public: - explicit runtime_error(const char* str) : named_exception(str) {} -}; - - - - -} // namespace mySTL - -#endif // mySTL_STDEXCEPT_HPP Deleted: dcplusplus/trunk/yassl/taocrypt/mySTL/vector.hpp =================================================================== --- dcplusplus/trunk/yassl/taocrypt/mySTL/vector.hpp 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/yassl/taocrypt/mySTL/vector.hpp 2006-12-14 21:59:19 UTC (rev 692) @@ -1,161 +0,0 @@ -/* mySTL vector.hpp - * - * Copyright (C) 2003 Sawtooth Consulting Ltd. - * - * This file is part of yaSSL. - * - * yaSSL is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * There are special exceptions to the terms and conditions of the GPL as it - * is applied to yaSSL. View the full text of the exception in the file - * FLOSS-EXCEPTIONS in the directory of this software distribution. - * - * yaSSL is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ - - -/* mySTL vector implements simple vector, w/ swap - * - */ - -#ifndef mySTL_VECTOR_HPP -#define mySTL_VECTOR_HPP - -#include "helpers.hpp" // construct, destory, fill, etc. -#include "algorithm.hpp" // swap -#include <assert.h> // assert - - -namespace mySTL { - - -template <typename T> -struct vector_base { - T* start_; - T* finish_; - T* end_of_storage_; - - vector_base() : start_(0), finish_(0), end_of_storage_(0) {} - vector_base(size_t n) - { - start_ = GetArrayMemory<T>(n); - finish_ = start_; - end_of_storage_ = start_ + n; - } - - ~vector_base() - { - FreeArrayMemory(start_); - } - - void Swap(vector_base& that) - { - swap(start_, that.start_); - swap(finish_, that.finish_); - swap(end_of_storage_, that.end_of_storage_); - } -}; - - - -template <typename T> -class vector { -public: - typedef T* iterator; - typedef const T* const_iterator; - - vector() {} - explicit vector(size_t n) : vec_(n) - { - vec_.finish_ = uninit_fill_n(vec_.start_, n, T()); - } - - ~vector() { destroy(vec_.start_, vec_.finish_); } - - vector(const vector& other) : vec_(other.size()) - { - vec_.finish_ = uninit_copy(other.vec_.start_, other.vec_.finish_, - vec_.start_); - } - - size_t capacity() const { return vec_.end_of_storage_ - vec_.start_; } - - size_t size() const { return vec_.finish_ - vec_.start_; } - - T& operator[](size_t idx) { return *(vec_.start_ + idx); } - const T& operator[](size_t idx) const { return *(vec_.start_ + idx); } - - const T* begin() const { return vec_.start_; } - const T* end() const { return vec_.finish_; } - - void push_back(const T& v) - { - if (vec_.finish_ != vec_.end_of_storage_) { - construct(vec_.finish_, v); - ++vec_.finish_; - } - else { - vector tmp(size() * 2 + 1, *this); - construct(tmp.vec_.finish_, v); - ++tmp.vec_.finish_; - Swap(tmp); - } - } - - void resize(size_t n, const T& v) - { - if (n == size()) return; - - if (n < size()) { - T* first = vec_.start_ + n; - destroy(first, vec_.finish_); - vec_.finish_ -= vec_.finish_ - first; - } - else { - vector tmp(n, *this); - tmp.vec_.finish_ = uninit_fill_n(tmp.vec_.finish_, n - size(), v); - Swap(tmp); - } - } - - void reserve(size_t n) - { - if (capacity() < n) { - vector tmp(n, *this); - Swap(tmp); - } - } - - void Swap(vector& that) - { - vec_.Swap(that.vec_); - } -private: - vector_base<T> vec_; - - vector& operator=(const vector&); // hide assign - - // for growing, n must be bigger than other size - vector(size_t n, const vector& other) : vec_(n) - { - assert(n > other.size()); - vec_.finish_ = uninit_copy(other.vec_.start_, other.vec_.finish_, - vec_.start_); - } -}; - - - -} // namespace mySTL - -#endif // mySTL_VECTOR_HPP Modified: dcplusplus/trunk/yassl/taocrypt/src/asn.cpp =================================================================== --- dcplusplus/trunk/yassl/taocrypt/src/asn.cpp 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/yassl/taocrypt/src/asn.cpp 2006-12-14 21:59:19 UTC (rev 692) @@ -857,7 +857,7 @@ bool CertDecoder::ConfirmSignature(Source& pub) { HashType ht; - mySTL::auto_ptr<HASH> hasher; + STL_NAMESPACE::auto_ptr<HASH> hasher; if (signatureOID_ == MD5wRSA) { hasher.reset(NEW_TC MD5); Modified: dcplusplus/trunk/yassl/taocrypt/src/integer.cpp =================================================================== --- dcplusplus/trunk/yassl/taocrypt/src/integer.cpp 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/yassl/taocrypt/src/integer.cpp 2006-12-14 21:59:19 UTC (rev 692) @@ -572,24 +572,24 @@ class Portable { public: - static word Add(word *C, const word *A, const word *B, unsigned int N); - static word Subtract(word *C, const word *A, const word*B, unsigned int N); + static word TAOCRYPT_CDECL Add(word *C, const word *A, const word *B, unsigned int N); + static word TAOCRYPT_CDECL Subtract(word *C, const word *A, const word*B, unsigned int N); - static void Multiply2(word *C, const word *A, const word *B); - static word Multiply2Add(word *C, const word *A, const word *B); - static void Multiply4(word *C, const word *A, const word *B); - static void Multiply8(word *C, const word *A, const word *B); - static unsigned int MultiplyRecursionLimit() {return 8;} + static void TAOCRYPT_CDECL Multiply2(word *C, const word *A, const word *B); + static word TAOCRYPT_CDECL Multiply2Add(word *C, const word *A, const word *B); + static void TAOCRYPT_CDECL Multiply4(word *C, const word *A, const word *B); + static void TAOCRYPT_CDECL Multiply8(word *C, const word *A, const word *B); + static unsigned int TAOCRYPT_CDECL MultiplyRecursionLimit() {return 8;} - static void Multiply2Bottom(word *C, const word *A, const word *B); - static void Multiply4Bottom(word *C, const word *A, const word *B); - static void Multiply8Bottom(word *C, const word *A, const word *B); - static unsigned int MultiplyBottomRecursionLimit() {return 8;} + static void TAOCRYPT_CDECL Multiply2Bottom(word *C, const word *A, const word *B); + static void TAOCRYPT_CDECL Multiply4Bottom(word *C, const word *A, const word *B); + static void TAOCRYPT_CDECL Multiply8Bottom(word *C, const word *A, const word *B); + static unsigned int TAOCRYPT_CDECL MultiplyBottomRecursionLimit() {return 8;} - static void Square2(word *R, const word *A); - static void Square4(word *R, const word *A); - static void Square8(word *R, const word *A) {assert(false);} - static unsigned int SquareRecursionLimit() {return 4;} + static void TAOCRYPT_CDECL Square2(word *R, const word *A); + static void TAOCRYPT_CDECL Square4(word *R, const word *A); + static void TAOCRYPT_CDECL Square8(word *R, const word *A) {assert(false);} + static unsigned int TAOCRYPT_CDECL SquareRecursionLimit() {return 4;} }; word Portable::Add(word *C, const word *A, const word *B, unsigned int N) Modified: dcplusplus/trunk/yassl/taocrypt/src/template_instnt.cpp =================================================================== --- dcplusplus/trunk/yassl/taocrypt/src/template_instnt.cpp 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/yassl/taocrypt/src/template_instnt.cpp 2006-12-14 21:59:19 UTC (rev 692) @@ -37,7 +37,6 @@ #include "ripemd.hpp" #include "pwdbased.hpp" #include "algebra.hpp" -#include "vector.hpp" #include "hash.hpp" #ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION Modified: dcplusplus/trunk/yassl/yassl.vcproj =================================================================== --- dcplusplus/trunk/yassl/yassl.vcproj 2006-12-13 21:04:04 UTC (rev 691) +++ dcplusplus/trunk/yassl/yassl.vcproj 2006-12-14 21:59:19 UTC (rev 692) @@ -41,7 +41,7 @@ <Tool Name="VCCLCompilerTool" Optimization="0" - AdditionalIncludeDirectories="include,taocrypt\include,mySTL" + AdditionalIncludeDirectories="include,taocrypt\include,taocrypt\mySTL" PreprocessorDefinitions="WIN32;_DEBUG;_LIB;USE_SYS_STL" StringPooling="true" MinimalRebuild="true" @@ -119,7 +119,7 @@ FavorSizeOrSpeed="2" OmitFramePointers="true" EnableFiberSafeOptimizations="true" - AdditionalIncludeDirectories="include,taocrypt\include,mySTL" + AdditionalIncludeDirectories="include,taocrypt\include,taocrypt\mySTL" PreprocessorDefinitions="WIN32;NDEBUG;_LIB;USE_SYS_STL" StringPooling="true" MinimalRebuild="true" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2006-12-13 21:04:05
|
Revision: 691 http://svn.sourceforge.net/dcplusplus/?rev=691&view=rev Author: arnetheduck Date: 2006-12-13 13:04:04 -0800 (Wed, 13 Dec 2006) Log Message: ----------- ignore generated files Property Changed: ---------------- dcplusplus/trunk/ dcplusplus/trunk/client/ Property changes on: dcplusplus/trunk ___________________________________________________________________ Name: svn:ignore - vc7 ADC* App* DCPlusPlus.aps DCPlusPlus.ncb DCPlusPlus.suo .* *.vcproj.* + vc7 ADC* App* DCPlusPlus.aps DCPlusPlus.ncb DCPlusPlus.suo .* *.vcproj.* Example.xml Property changes on: dcplusplus/trunk/client ___________________________________________________________________ Name: svn:ignore + StringDefs.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2006-12-13 21:02:23
|
Revision: 690 http://svn.sourceforge.net/dcplusplus/?rev=690&view=rev Author: arnetheduck Date: 2006-12-13 13:02:16 -0800 (Wed, 13 Dec 2006) Log Message: ----------- removed files that are autogenerated Modified Paths: -------------- dcplusplus/trunk/changelog.txt Removed Paths: ------------- dcplusplus/trunk/Example.xml dcplusplus/trunk/client/StringDefs.cpp Deleted: dcplusplus/trunk/Example.xml =================================================================== --- dcplusplus/trunk/Example.xml 2006-12-13 20:57:11 UTC (rev 689) +++ dcplusplus/trunk/Example.xml 2006-12-13 21:02:16 UTC (rev 690) @@ -1,636 +0,0 @@ -<?xml version="1.0" encoding="utf-8" standalone="yes"?> -<Language Name="Example Language" Native="English" Code="en" Author="arnetheduck" Version="0.698" Revision="1" RightToLeft="0"> - <Strings> - <String Name="Active">Active</String> - <String Name="ActiveSearchString">Enabled / Search String</String> - <String Name="Add">&Add</String> - <String Name="AddToFavorites">Add To Favorites</String> - <String Name="Added">Added</String> - <String Name="AdlSearch">Automatic Directory Listing Search</String> - <String Name="AdlsDestination">Destination Directory</String> - <String Name="AdlsDiscard">Discard</String> - <String Name="AdlsDownload">Download Matches</String> - <String Name="AdlsEnabled">Enabled</String> - <String Name="AdlsFullPath">Full Path</String> - <String Name="AdlsProperties">ADLSearch Properties</String> - <String Name="AdlsSearchString">Search String</String> - <String Name="AdlsSizeMax">Max FileSize</String> - <String Name="AdlsSizeMin">Min FileSize</String> - <String Name="AdlsType">Search Type</String> - <String Name="AdlsUnits">Size Type</String> - <String Name="AllDownloadSlotsTaken">All download slots taken</String> - <String Name="AllUsersOffline">All %d users offline</String> - <String Name="All3UsersOffline">All 3 users offline</String> - <String Name="All4UsersOffline">All 4 users offline</String> - <String Name="All">All</String> - <String Name="Any">Any</String> - <String Name="AtLeast">At least</String> - <String Name="AtMost">At most</String> - <String Name="Audio">Audio</String> - <String Name="AutoConnect">Auto connect / Name</String> - <String Name="AutoGrant">Auto grant slot / Nick</String> - <String Name="Average">Average/s: </String> - <String Name="Away">AWAY</String> - <String Name="AwayModeOff">Away mode off</String> - <String Name="AwayModeOn">Away mode on: </String> - <String Name="B">B</String> - <String Name="BanUser">Ban user(s)</String> - <String Name="BothUsersOffline">Both users offline</String> - <String Name="Bps">B/s</String> - <String Name="Browse">Browse...</String> - <String Name="BrowseAccel">&Browse...</String> - <String Name="BrowseFileList">Browse file list</String> - <String Name="CertificateNotTrusted">Certificate not trusted, unable to connect</String> - <String Name="CertificateGenerationFailed">TLS disabled, failed to generate certificate: </String> - <String Name="ChooseFolder">Choose folder</String> - <String Name="Cid">CID</String> - <String Name="Close">Close</String> - <String Name="CloseConnection">Close connection</String> - <String Name="ClosingConnection">Closing connection...</String> - <String Name="Compressed">Compressed</String> - <String Name="CompressionError">Error during compression</String> - <String Name="CommandTooLong">Maximum command length exceeded</String> - <String Name="Configure">&Configure</String> - <String Name="Connect">&Connect</String> - <String Name="ConnectFavuserHub">Connect to hub</String> - <String Name="Connected">Connected</String> - <String Name="Connecting">Connecting...</String> - <String Name="ConnectingForced">Connecting (forced)...</String> - <String Name="ConnectingTo">Connecting to </String> - <String Name="Connection">Connection</String> - <String Name="ConnectionClosed">Connection closed</String> - <String Name="ConnectionTimeout">Connection timeout</String> - <String Name="ConfiguredHubLists">Configured Public Hub Lists</String> - <String Name="CopyFilename">Copy Filename</String> - <String Name="CopyHub">Copy address to clipboard</String> - <String Name="CopyMagnet">Copy magnet link to clipboard</String> - <String Name="CopyNick">Copy nick to clipboard</String> - <String Name="CouldNotOpenTargetFile">Could not open target file: </String> - <String Name="Count">Count</String> - <String Name="Country">Country</String> - <String Name="CrcChecked">CRC Checked</String> - <String Name="DecompressionError">Error during decompression</String> - <String Name="Description">Description</String> - <String Name="Destination">Destination</String> - <String Name="Directory">Directory</String> - <String Name="DirectoryAlreadyShared">Directory already shared</String> - <String Name="DirectoryAddError">Directory or directory name already exists</String> - <String Name="DiscFull">Disk full(?)</String> - <String Name="DisconnectUser">Disconnect user(s)</String> - <String Name="Disconnected">Disconnected</String> - <String Name="DisconnectedUser">Disconnected user leaving the hub: </String> - <String Name="Document">Document</String> - <String Name="Done">Done</String> - <String Name="DontRemoveSlashPassword">Don't remove /password before your password</String> - <String Name="DontShareTempDirectory">The temporary download directory cannot be shared</String> - <String Name="Download">Download</String> - <String Name="DownloadFailed">Download failed: </String> - <String Name="DownloadFinishedIdle">Download finished, idle...</String> - <String Name="DownloadQueue">Download Queue</String> - <String Name="DownloadStarting">Download starting...</String> - <String Name="DownloadTo">Download to...</String> - <String Name="DownloadWholeDir">Download whole directory</String> - <String Name="DownloadWholeDirTo">Download whole directory to...</String> - <String Name="Downloaded">Downloaded</String> - <String Name="DownloadedBytes">Downloaded %s (%.01f%%) in %s</String> - <String Name="DownloadedFrom"> downloaded from </String> - <String Name="Downloading">Downloading...</String> - <String Name="DownloadingHubList">Downloading public hub list...</String> - <String Name="DownloadingList">Downloading list...</String> - <String Name="Downloads">Downloads</String> - <String Name="DuplicateFileNotShared">Duplicate file will not be shared: </String> - <String Name="DuplicateMatch">Dupe matched against: </String> - <String Name="DuplicateSource">Duplicate source</String> - <String Name="Edit">Edit</String> - <String Name="EditAccel">&Edit</String> - <String Name="Email">E-Mail</String> - <String Name="EnterNick">Please enter a nickname in the settings dialog!</String> - <String Name="EnterPassword">Please enter a password</String> - <String Name="EnterReason">Please enter a reason</String> - <String Name="EnterSearchString">Enter search string</String> - <String Name="EnterServer">Please enter a destination server</String> - <String Name="Errors">Errors</String> - <String Name="ErrorCreatingHashDataFile">Error creating hash data file: </String> - <String Name="ErrorCreatingRegistryKeyAdc">Error creating adc registry key</String> - <String Name="ErrorCreatingRegistryKeyDchub">Error creating dchub registry key</String> - <String Name="ErrorCreatingRegistryKeyMagnet">Error creating magnet registry key</String> - <String Name="ErrorHashing">Error hashing </String> - <String Name="ErrorSavingHash">Error saving hash data: </String> - <String Name="ExactSize">Exact size</String> - <String Name="Executable">Executable</String> - <String Name="FailedToLoadCertificate">Failed to load certificate file</String> - <String Name="FailedToLoadPrivateKey">Failed to load private key</String> - <String Name="FavJoinShowingOff">Join/part of favorite users showing off</String> - <String Name="FavJoinShowingOn">Join/part of favorite users showing on</String> - <String Name="FavoriteDirName">Favorite name</String> - <String Name="FavoriteDirNameLong">Under what name you see the directory</String> - <String Name="FavoriteHubAdded">Favorite hub added</String> - <String Name="FavoriteHubAlreadyExists">Hub already exists as a favorite</String> - <String Name="FavoriteHubDoesNotExist">This hub is not a favorite hub</String> - <String Name="FavoriteHubIdentity">Identification (leave blank for defaults)</String> - <String Name="FavoriteHubProperties">Favorite Hub Properties</String> - <String Name="FavoriteHubRemoved">Favorite hub removed</String> - <String Name="FavoriteHubs">Favorite Hubs</String> - <String Name="FavoriteUserAdded">Favorite user added</String> - <String Name="FavoriteUsers">Favorite Users</String> - <String Name="File">File</String> - <String Name="Files">Files</String> - <String Name="FileHasNoTth">This file has no TTH</String> - <String Name="FileIsAlreadyQueued">This file is already queued</String> - <String Name="FileListDiff">Subtract list</String> - <String Name="FileListRefreshFailed">File list refresh failed: </String> - <String Name="FileListRefreshFinished">File list refresh finished</String> - <String Name="FileListRefreshInitiated">File list refresh initiated</String> - <String Name="FileListRefrreshInProgress">File list refresh in progress, please wait for it to finish before trying to refresh again</String> - <String Name="FileNotAvailable">File not available</String> - <String Name="FileType">File type</String> - <String Name="FileWithDifferentSize">A file with a different size already exists in the queue</String> - <String Name="FileWithDifferentTth">A file with different tth root already exists in the queue</String> - <String Name="Filename">Filename</String> - <String Name="FilesLeft">files left</String> - <String Name="FilesPerHour">files/h</String> - <String Name="Filter">F&ilter</String> - <String Name="Filtered">Filtered</String> - <String Name="Find">Find</String> - <String Name="FinishedDownloads">Finished Downloads</String> - <String Name="FinishedUploads">Finished Uploads</String> - <String Name="ForbiddenDollarFile">File with '$' cannot be downloaded and will not be shared: </String> - <String Name="ForceAttempt">Force attempt</String> - <String Name="Gib">GiB</String> - <String Name="GetFileList">Get file list</String> - <String Name="GoToDirectory">Go to directory</String> - <String Name="GrantExtraSlot">Grant extra slot</String> - <String Name="HashDatabase">Hash database</String> - <String Name="HashProgress">Creating file index...</String> - <String Name="HashProgressBackground">Run in background</String> - <String Name="HashProgressStats">Statistics</String> - <String Name="HashProgressText">Please wait while DC++ indexes your files (they won't be shared until they've been indexed)...</String> - <String Name="HashReadFailed">Unable to read hash data file</String> - <String Name="HashRebuilt">Hash database rebuilt</String> - <String Name="HashingFailed">Hashing failed: </String> - <String Name="HashingFinished">Finished hashing: </String> - <String Name="High">High</String> - <String Name="Highest">Highest</String> - <String Name="HitRatio">Hit Ratio: </String> - <String Name="Hits">Hits: </String> - <String Name="Hub">Hub</String> - <String Name="Hubs">Hubs</String> - <String Name="HubAddress">Address</String> - <String Name="HubListDownloaded">Hub list downloaded...</String> - <String Name="HubListEdit">Edit the hublist</String> - <String Name="HubListLoadedFromCache">Hub list loaded from cache...</String> - <String Name="HubName">Name</String> - <String Name="HubList">Hublist</String> - <String Name="HubPassword">Hub password</String> - <String Name="HubUsers">Users</String> - <String Name="IgnoreTthSearches">Ignore TTH searches</String> - <String Name="IgnoredMessage">Ignored message: </String> - <String Name="IncompleteFavHub">Hub address cannot be empty.</String> - <String Name="InvalidListname">Invalid file list name</String> - <String Name="InvalidNumberOfSlots">Invalid number of slots</String> - <String Name="InvalidTargetFile">Invalid target file (missing directory, check default download directory setting)</String> - <String Name="InvalidTree">Full tree does not match TTH root</String> - <String Name="Ip">IP: </String> - <String Name="IpBare">IP</String> - <String Name="Items">Items</String> - <String Name="JoinShowingOff">Join/part showing off</String> - <String Name="JoinShowingOn">Join/part showing on</String> - <String Name="Joins">Joins: </String> - <String Name="Kib">KiB</String> - <String Name="Kibps">KiB/s</String> - <String Name="KickUser">Kick user(s)</String> - <String Name="LargerTargetFileExists">A file of equal or larger size already exists at the target location</String> - <String Name="LastChange">Last change: </String> - <String Name="LastHub">Hub (last seen on if offline)</String> - <String Name="LastSeen">Time last seen</String> - <String Name="Left">left</String> - <String Name="ListenerFailed">Listening socket failed (you need to restart DC++): </String> - <String Name="Loading">Loading DC++, please wait...</String> - <String Name="LookupAtBitzi">Lookup TTH at Bitzi.com</String> - <String Name="Low">Low</String> - <String Name="Lowest">Lowest</String> - <String Name="MagnetDlgFile">Filename:</String> - <String Name="MagnetDlgHash">File Hash:</String> - <String Name="MagnetDlgNothing">Do nothing</String> - <String Name="MagnetDlgQueue">Add this file to your download queue</String> - <String Name="MagnetDlgRemember">Do the same action next time without asking</String> - <String Name="MagnetDlgSearch">Start a search for this file</String> - <String Name="MagnetDlgTextBad">A MAGNET link was given to DC++, but it didn't contain a valid file hash for use on the Direct Connect network. No action will be taken.</String> - <String Name="MagnetDlgTextGood">DC++ has detected a MAGNET link with a file hash that can be searched for on the Direct Connect network. What would you like to do?</String> - <String Name="MagnetDlgTitle">MAGNET Link detected</String> - <String Name="MagnetHandlerDesc">Download files from the Direct Connect network</String> - <String Name="MagnetHandlerRoot">DC++</String> - <String Name="MagnetShellDesc">URL:MAGNET URI</String> - <String Name="MatchQueue">Match queue</String> - <String Name="MatchedFiles">Matched %d file(s)</String> - <String Name="MaxHubs">Max Hubs</String> - <String Name="MaxSize">Max Size</String> - <String Name="MaxUsers">Max Users</String> - <String Name="MinSize">Min Size</String> - <String Name="Mib">MiB</String> - <String Name="Mibps">MiB/s</String> - <String Name="Mibitsps">MiBits/s</String> - <String Name="MenuAbout">About DC++...</String> - <String Name="MenuAdlSearch">ADL Search</String> - <String Name="MenuArrange">Arrange icons</String> - <String Name="MenuCascade">Cascade</String> - <String Name="MenuChangelog">Change Log</String> - <String Name="MenuCloseAllDirList">Close all file list windows</String> - <String Name="MenuCloseAllOfflinePm">Close all offline PM windows</String> - <String Name="MenuCloseAllPm">Close all PM windows</String> - <String Name="MenuCloseAllSearchframe">Close all search windows</String> - <String Name="MenuCloseDisconnected">Close disconnected</String> - <String Name="MenuContents">Help &Contents F1</String> - <String Name="MenuDiscuss">DC++ discussion forum</String> - <String Name="MenuDonate">Donate (paypal)</String> - <String Name="MenuDownloadQueue">&Download Queue Ctrl+D</String> - <String Name="MenuExit">E&xit</String> - <String Name="MenuFaq">Frequently asked questions</String> - <String Name="MenuFavoriteHubs">&Favorite Hubs Ctrl+F</String> - <String Name="MenuFavoriteUsers">Favorite &Users Ctrl+U</String> - <String Name="MenuFile">&File</String> - <String Name="MenuFollowRedirect">Follow last redirec&t Ctrl+T</String> - <String Name="MenuHashProgress">Indexing progress</String> - <String Name="MenuHelp">&Help</String> - <String Name="MenuHelpDownloads">Downloads</String> - <String Name="MenuHelpGeoipfile">GeoIP database update</String> - <String Name="MenuHelpForum">Help forum</String> - <String Name="MenuHelpTranslations">Translations</String> - <String Name="MenuHomepage">DC++ Homepage</String> - <String Name="MenuHorizontalTile">Horizontal Tile</String> - <String Name="MenuMinimizeAll">Minimize &All</String> - <String Name="MenuRestoreAll">Restore All</String> - <String Name="MenuNetworkStatistics">Network Statistics</String> - <String Name="MenuNotepad">&Notepad Ctrl+N</String> - <String Name="MenuOpenDownloadsDir">Open downloads directory</String> - <String Name="MenuOpenFileList">Open file list... Ctrl+L</String> - <String Name="MenuOpenMatchAll">Match downloaded lists</String> - <String Name="MenuOpenOwnList">Open own list</String> - <String Name="MenuPublicHubs">&Public Hubs Ctrl+P</String> - <String Name="MenuQuickConnect">&Quick Connect ... Ctrl+Q</String> - <String Name="MenuReconnect">&Reconnect Ctrl+R</String> - <String Name="MenuRefreshFileList">Refresh file list Ctrl+E</String> - <String Name="MenuReportBug">Report a bug</String> - <String Name="MenuRequestFeature">Request a feature</String> - <String Name="MenuSearch">&Search Ctrl+S</String> - <String Name="MenuSearchSpy">Search Spy</String> - <String Name="MenuSettings">Settings...</String> - <String Name="MenuShow">Show</String> - <String Name="MenuStatusBar">&Status bar Ctrl+2</String> - <String Name="MenuSystemLog">System Log</String> - <String Name="MenuToolbar">&Toolbar Ctrl+1</String> - <String Name="MenuTransferView">T&ransfers Ctrl+3</String> - <String Name="MenuVerticalTile">Vertical Tile</String> - <String Name="MenuView">&View</String> - <String Name="MenuWindow">&Window</String> - <String Name="MinShare">Min Share</String> - <String Name="MinSlots">Min Slots</String> - <String Name="Move">Move/Rename</String> - <String Name="MoveDown">Move &Down</String> - <String Name="MoveUp">Move &Up</String> - <String Name="NetworkStatistics">Network Statistics</String> - <String Name="New">&New...</String> - <String Name="Next">Next</String> - <String Name="Nick">Nick</String> - <String Name="NickTaken">Your nick was already taken, please change to something else!</String> - <String Name="NickUnknown"> (Nick unknown)</String> - <String Name="NoCertificateFileSet">TLS disabled, no certificate file set</String> - <String Name="NoCrc32Match"> not shared; calculated CRC32 does not match the one found in SFV file.</String> - <String Name="NoDirectorySpecified">No directory specified</String> - <String Name="NoDownloadsFromSelf">You're trying to download from yourself!</String> - <String Name="NoDownloadsFromPassive">Can't download from passive users when you're passive</String> - <String Name="NoErrors">No errors</String> - <String Name="NoMatches">No matches</String> - <String Name="NoSlotsAvailable">No slots available</String> - <String Name="NoStr">No</String> - <String Name="NoUsers">No users</String> - <String Name="NoUsersToDownloadFrom">No users to download from</String> - <String Name="Normal">Normal</String> - <String Name="NotListening">Not listening for connections - please restart DC++</String> - <String Name="Notepad">Notepad</String> - <String Name="Offline">Offline</String> - <String Name="Online">Online</String> - <String Name="OnlyFreeSlots">Only users with free slots</String> - <String Name="OnlyTlsAllowed">Only TLS connections allowed</String> - <String Name="OnlyTth">Only results with TTH root</String> - <String Name="OnlyWhereOp">Only where I'm op</String> - <String Name="Open">Open</String> - <String Name="OpenDownloadPage">Open download page?</String> - <String Name="OpenFolder">Open folder</String> - <String Name="OperatingSystemNotCompatible">Operating system does not match minimum requirements for feature</String> - <String Name="OutOfBufferSpace">Out of buffer space</String> - <String Name="Parts">Parts: </String> - <String Name="PassiveUser">Passive user</String> - <String Name="Password">Password</String> - <String Name="Path">Path</String> - <String Name="Paused">Paused</String> - <String Name="Pib">PiB</String> - <String Name="Picture">Picture</String> - <String Name="Port">Port: </String> - <String Name="PreparingFileList">Preparing file list...</String> - <String Name="PressFollow">Press the follow redirect button to connect to </String> - <String Name="Priority">Priority</String> - <String Name="PrivateMessage">Private message</String> - <String Name="PrivateMessageFrom">Private message from </String> - <String Name="Properties">&Properties</String> - <String Name="PublicHubs">Public Hubs</String> - <String Name="Purge">Purge</String> - <String Name="QuickConnect">Quick Connect</String> - <String Name="Rating">Rating</String> - <String Name="Ratio">Ratio</String> - <String Name="ReaddSource">Re-add source</String> - <String Name="ReallyExit">Really exit?</String> - <String Name="ReallyRemove">Really remove?</String> - <String Name="Redirect">Redirect</String> - <String Name="RedirectAlreadyConnected">Redirect request received to a hub that's already connected</String> - <String Name="RedirectUser">Redirect user(s)</String> - <String Name="Refresh">&Refresh</String> - <String Name="RefreshUserList">Refresh user list</String> - <String Name="Reliability">Reliability</String> - <String Name="Remove">&Remove</String> - <String Name="RemoveAll">Remove all</String> - <String Name="RemoveAllSubdirectories">Remove all subdirectories before adding this one</String> - <String Name="RemoveFromAll">Remove user from queue</String> - <String Name="RemoveSource">Remove source</String> - <String Name="RenamedTo"> renamed to </String> - <String Name="RollbackInconsistency">Rollback inconsistency, existing file does not match the one being downloaded</String> - <String Name="Running">Running...</String> - <String Name="S">s</String> - <String Name="Search">Search</String> - <String Name="SearchFor">Search for</String> - <String Name="SearchForAlternates">Search for alternates</String> - <String Name="SearchForFile">Search for file</String> - <String Name="SearchOptions">Search options</String> - <String Name="SearchSpamFrom">Search spam detected from </String> - <String Name="SearchSpy">Search Spy</String> - <String Name="SearchString">Search String</String> - <String Name="SearchingFor">Searching for </String> - <String Name="SearchingReady">Ready to search...</String> - <String Name="SearchingWait">Searching too soon, next search in %i seconds</String> - <String Name="SeekBeyondEnd">Request to seek beyond the end of data</String> - <String Name="SendPrivateMessage">Send private message</String> - <String Name="Separator">Separator</String> - <String Name="Server">Server</String> - <String Name="SetPriority">Set priority</String> - <String Name="Settings">Settings</String> - <String Name="SettingsAddFinishedInstantly">Add finished files to share instantly (if shared)</String> - <String Name="SettingsAddFolder">&Add folder</String> - <String Name="SettingsAdlsBreakOnFirst">Break on first ADLSearch match</String> - <String Name="SettingsAdvanced">Advanced</String> - <String Name="SettingsAdvanced3">Advanced\Experts only</String> - <String Name="SettingsAdvancedResume">Advanced resume using TTH</String> - <String Name="SettingsAdvancedSettings">Advanced settings</String> - <String Name="SettingsAllowUntrustedClients">Allow TLS connections to clients without trusted certificate</String> - <String Name="SettingsAllowUntrustedHubs">Allow TLS connections to hubs without trusted certificate</String> - <String Name="SettingsAntiFrag">Use antifragmentation method for downloads</String> - <String Name="SettingsAppearance">Appearance</String> - <String Name="SettingsAppearance2">Appearance\Colors and sounds</String> - <String Name="SettingsAutodropAutodropsettings">Autodrop settings</String> - <String Name="SettingsAutodropSpeed">Drop sources below</String> - <String Name="SettingsAutodropInterval">Check every</String> - <String Name="SettingsAutodropElapsed">Min elapsed</String> - <String Name="SettingsAutodropInactivity">Max inactivity</String> - <String Name="SettingsAutodropMinsources">Min sources online</String> - <String Name="SettingsAutodropFilesize">Min filesize</String> - <String Name="SettingsAutodropAll">Autodrop slow sources for all queue items (except filelists)</String> - <String Name="SettingsAutodropFilelists">Remove slow filelists</String> - <String Name="SettingsAutodropDisconnect">Don't remove the source when autodropping, only disconnect</String> - <String Name="SettingsAutoAway">Auto-away on minimize (and back on restore)</String> - <String Name="SettingsAutoFollow">Automatically follow redirects</String> - <String Name="SettingsAutoKick">Automatically disconnect users who leave the hub</String> - <String Name="SettingsAutoKickNoFavs">Don't automatically disconnect favorite users who leave the hub</String> - <String Name="SettingsAutoSearch">Automatically search for alternative download locations</String> - <String Name="SettingsAutoSearchAutoMatch">Automatically match queue for auto search hits</String> - <String Name="SettingsAutoSearchLimit">Auto-search limit</String> - <String Name="SettingsAutoOpen">Auto-open at startup</String> - <String Name="SettingsAutoRefreshTime">Auto refresh time</String> - <String Name="SettingsBindAddress">Bind address</String> - <String Name="SettingsBoldOptions">Tab bolding on content change</String> - <String Name="SettingsCertificates">Advanced\Security Certificates</String> - <String Name="SettingsChange">&Change</String> - <String Name="SettingsClearSearch">Clear search box after each search</String> - <String Name="SettingsColors">Colors</String> - <String Name="SettingsCommand">Command</String> - <String Name="SettingsCompressTransfers">Enable safe and compressed transfers</String> - <String Name="SettingsConfigureHubLists">Configure Public Hub Lists</String> - <String Name="SettingsConfirmDialogOptions">Confirm dialog options</String> - <String Name="SettingsConfirmExit">Confirm application exit</String> - <String Name="SettingsConfirmHubRemoval">Confirm favorite hub removal</String> - <String Name="SettingsConfirmItemRemoval">Confirm item removal in download queue</String> - <String Name="SettingsConnectionType">Connection Type</String> - <String Name="SettingsDefaultAwayMsg">Default away message</String> - <String Name="SettingsDirect">Direct connection</String> - <String Name="SettingsDirectories">Directories</String> - <String Name="SettingsDontDlAlreadyQueued">Don't download files already in the queue</String> - <String Name="SettingsDontDlAlreadyShared">Don't download files already in share</String> - <String Name="SettingsDownloadDirectory">Default download directory</String> - <String Name="SettingsDownloadLimits">Limits</String> - <String Name="SettingsDownloads">Downloads</String> - <String Name="SettingsDownloadsMax">Maximum simultaneous downloads (0 = infinite)</String> - <String Name="SettingsDownloadsSpeedPause">No new downloads if speed exceeds (KiB/s, 0 = disable)</String> - <String Name="SettingsExampleText">Donate €€€:s! (ok, dirty dollars are fine as well =) (see help menu)</String> - <String Name="SettingsExternalIp">External / WAN IP</String> - <String Name="SettingsFavShowJoins">Only show joins / parts for favorite users</String> - <String Name="SettingsFavoriteDirsPage">Downloads\Favorites</String> - <String Name="SettingsFavoriteDirs">Favorite download directories</String> - <String Name="SettingsFileName">Filename</String> - <String Name="SettingsFilterMessages">Filter kick and NMDC debug messages</String> - <String Name="SettingsFirewallNat">Firewall with manual port forwarding</String> - <String Name="SettingsFirewallPassive">Firewall (passive, last resort)</String> - <String Name="SettingsFirewallUpnp">Firewall with UPnP</String> - <String Name="SettingsFormat">Format</String> - <String Name="SettingsGeneral">Personal information</String> - <String Name="SettingsGetUserCountry">Guess user country from IP</String> - <String Name="SettingsHubUserCommands">Accept custom user commands from hub</String> - <String Name="SettingsIgnoreHubPms">Ignore private messages from the hub</String> - <String Name="SettingsIgnoreBotPms">Ignore private messages from bots</String> - <String Name="SettingsIncoming">Incoming connection settings (see Help/FAQ if unsure)</String> - <String Name="SettingsKeepLists">Don't delete file lists when exiting</String> - <String Name="SettingsLanguageFile">Language file</String> - <String Name="SettingsListDupes">Keep duplicate files in your file list</String> - <String Name="SettingsLogDownloads">Log downloads</String> - <String Name="SettingsLogFilelistTransfers">Log filelist transfers</String> - <String Name="SettingsLogMainChat">Log main chat</String> - <String Name="SettingsLogPrivateChat">Log private chat</String> - <String Name="SettingsLogStatusMessages">Log status messages</String> - <String Name="SettingsLogSystemMessages">Log system messages</String> - <String Name="SettingsLogUploads">Log uploads</String> - <String Name="SettingsLogging">Logging</String> - <String Name="SettingsLogs">Advanced\Logs</String> - <String Name="SettingsMagnetAsk">Ask what to do when a magnet link is detected.</String> - <String Name="SettingsMaxFilelistSize">Max filelist size</String> - <String Name="SettingsMaxHashSpeed">Max hash speed</String> - <String Name="SettingsMaxTabRows">Max tab rows</String> - <String Name="SettingsMinimizeTray">Minimize to tray</String> - <String Name="SettingsName">Name</String> - <String Name="SettingsNetwork">Connection settings</String> - <String Name="SettingsNotificationSound">Notification sound</String> - <String Name="SettingsNoAwaymsgToBots">Don't send the away message to bots</String> - <String Name="SettingsOnlyHashed">Note; Files appear in the share only after they've been hashed!</String> - <String Name="SettingsOnlyTth">Search for files with TTH root only as standard</String> - <String Name="SettingsOpenNewWindow">Open new window when using /join</String> - <String Name="SettingsOpenUserCmdHelp">Always open help file with this dialog</String> - <String Name="SettingsOptions">Options</String> - <String Name="SettingsOtherQueueOptions">Other queue options</String> - <String Name="SettingsOutgoing">Outgoing connection settings</String> - <String Name="SettingsOverride">Don't allow hub/UPnP to override</String> - <String Name="SettingsPersonalInformation">Personal Information</String> - <String Name="SettingsPmBeep">Make an annoying sound every time a private message is received</String> - <String Name="SettingsPmBeepOpen">Make an annoying sound when a private message window is opened</String> - <String Name="SettingsPmHistory">PM history</String> - <String Name="SettingsPopunderFilelist">Open new file list windows in the background</String> - <String Name="SettingsPopunderPm">Open new private message windows in the background</String> - <String Name="SettingsPopupBotPms">Open private messages from the hub in their own window</String> - <String Name="SettingsPopupHubPms">Open private messages from bots in their own window</String> - <String Name="SettingsPopupPms">Open private messages in their own window</String> - <String Name="SettingsPorts">Ports</String> - <String Name="SettingsPromptPassword">Popup box to input password for hubs</String> - <String Name="SettingsPublicHubList">Public Hubs list</String> - <String Name="SettingsPublicHubListHttpProxy">HTTP Proxy (for hublist only)</String> - <String Name="SettingsPublicHubListUrl">Public Hubs list URL</String> - <String Name="SettingsQueue">Downloads\Queue</String> - <String Name="SettingsRenameFolder">Rename</String> - <String Name="SettingsRequiresRestart">Note; most of these options require that you restart DC++</String> - <String Name="SettingsRollback">Rollback</String> - <String Name="SettingsSearchHistory">Search history</String> - <String Name="SettingsSelectTextFace">Select &text style</String> - <String Name="SettingsSelectWindowColor">Select &window color</String> - <String Name="SettingsSendUnknownCommands">Send unknown /commands to the hub</String> - <String Name="SettingsSfvCheck">Enable automatic SFV checking</String> - <String Name="SettingsShareHidden">Share hidden files</String> - <String Name="SettingsShareSize">Total size:</String> - <String Name="SettingsSharedDirectories">Shared directories</String> - <String Name="SettingsShowJoins">Show joins / parts in chat by default</String> - <String Name="SettingsShowProgressBars">Show progress bars for transfers</String> - <String Name="SettingsShowShellMenu">Show shell menu in finished transfers</String> - <String Name="SettingsSkipZeroByte">Skip zero-byte files</String> - <String Name="SettingsSmallSendBuffer">Use small send buffer (enable if uploads slow downloads a lot)</String> - <String Name="SettingsSocks5">SOCKS5</String> - <String Name="SettingsSocks5Ip">Socks IP</String> - <String Name="SettingsSocks5Port">Port</String> - <String Name="SettingsSocks5Resolve">Use SOCKS5 server to resolve host names</String> - <String Name="SettingsSocks5Username">Login</String> - <String Name="SettingsSortFavusersFirst">Sort favorite users first</String> - <String Name="SettingsSounds">Sounds</String> - <String Name="SettingsSpeedsNotAccurate">Note; because of changing download speeds, this is not 100% accurate...</String> - <String Name="SettingsStatusInChat">View status messages in main chat</String> - <String Name="SettingsTcpPort">TCP</String> - <String Name="SettingsTlsPort">TLS</String> - <String Name="SettingsTextMinislot">Mini slot size</String> - <String Name="SettingsPrioAutoprio">Autoprio settings</String> - <String Name="SettingsPrioHighest">Highest prio max size</String> - <String Name="SettingsPrioHigh">High prio max size</String> - <String Name="SettingsPrioNormal">Normal prio max size</String> - <String Name="SettingsPrioLow">Low prio max size</String> - <String Name="SettingsPrioLowest">Set lowest prio for newly added files larger than Low prio size</String> - <String Name="SettingsTabs">Appearance\Tabs</String> - <String Name="SettingsTimeStamps">Show timestamps in chat by default</String> - <String Name="SettingsTimeStampsFormat">Set timestamps</String> - <String Name="SettingsToggleActiveWindow">Toggle window when selecting an active tab</String> - <String Name="SettingsUdpPort">UDP</String> - <String Name="SettingsUnfinishedDownloadDirectory">Unfinished downloads directory</String> - <String Name="SettingsUploadLineSpeed">Line speed (upload)</String> - <String Name="SettingsUploads">Sharing</String> - <String Name="SettingsUploadsMinSpeed">Automatically open an extra slot if speed is below (0 = disable)</String> - <String Name="SettingsUploadsSlots">Upload slots</String> - <String Name="SettingsUrlHandler">Register with Windows to handle dchub:// and adc:// URL links</String> - <String Name="SettingsUrlMagnet">Register with Windows to handle magnet: URI links</String> - <String Name="SettingsUseCtrlForLineHistory">Use CTRL for line history</String> - <String Name="SettingsUseOemMonofont">Use OEM monospaced font for viewing text files</String> - <String Name="SettingsUseSystemIcons">Use system icons when browsing files (slows browsing down a bit)</String> - <String Name="SettingsUserCommands">Advanced\User Commands</String> - <String Name="SettingsWindows">Appearance\Windows</String> - <String Name="SettingsWindowsOptions">Window options</String> - <String Name="SettingsWriteBuffer">Write buffer size</String> - <String Name="SettingsAltSortOrder">Sort all downloads first</String> - <String Name="SettingsUseTls">Use TLS when remote client supports it</String> - <String Name="SfvInconsistency">CRC32 inconsistency (SFV-Check)</String> - <String Name="Shared">Shared</String> - <String Name="SharedFiles">Shared Files</String> - <String Name="Size">Size</String> - <String Name="SkipRename">New virtual name matches old name, skipping...</String> - <String Name="SlotGranted">Slot granted</String> - <String Name="Slots">Slots</String> - <String Name="SlotsSet">Slots set</String> - <String Name="SocksAuthFailed">Socks server authentication failed (bad login / password?)</String> - <String Name="SocksAuthUnsupported">The socks server doesn't support login / password authentication</String> - <String Name="SocksFailed">The socks server failed establish a connection</String> - <String Name="SocksNeedsAuth">The socks server requires authentication</String> - <String Name="SocksSetupError">Failed to set up the socks server for UDP relay (check socks address and port)</String> - <String Name="SourceTooOld">Remote client does not fully support TTH - cannot download</String> - <String Name="SourceTooSlow">Source too slow</String> - <String Name="SourceType">Source Type</String> - <String Name="SpecifySearchString">Specify a search string</String> - <String Name="SpecifyServer">Specify a server to connect to</String> - <String Name="SpecifyUrl">Specify a URL</String> - <String Name="Speed">Speed</String> - <String Name="Status">Status</String> - <String Name="StoredPasswordSent">Stored password sent...</String> - <String Name="SystemLog">System Log</String> - <String Name="Tag">Tag</String> - <String Name="TargetFilenameTooLong">Target filename too long</String> - <String Name="TcpPortBusy">Unable to open TCP/TLS port. File transfers will not work correctly until you change settings or turn off any application that might be using the TCP/TLS port</String> - <String Name="Tib">TiB</String> - <String Name="Time">Time</String> - <String Name="TimeLeft">Time left</String> - <String Name="TimestampsDisabled">Timestamps disabled</String> - <String Name="TimestampsEnabled">Timestamps enabled</String> - <String Name="TooMuchData">More data was sent than was expected</String> - <String Name="Total">Total: </String> - <String Name="TthAlreadyShared">A file with the same hash already exists in your share</String> - <String Name="TthInconsistency">TTH inconsistency</String> - <String Name="TthRoot">TTH Root</String> - <String Name="Type">Type</String> - <String Name="UdpPortBusy">Unable to open UDP port. Searching will not work correctly until you change settings or turn off any application that might be using the UDP port</String> - <String Name="UnableToCreateThread">Unable to create thread</String> - <String Name="UnableToOpenFilelist">Unable to open filelist: </String> - <String Name="UnableToRename">Unable to rename </String> - <String Name="UnableToSendFile">Unable to send file </String> - <String Name="Unknown">Unknown</String> - <String Name="UnknownAddress">Unknown address</String> - <String Name="UnknownCommand">Unknown command: </String> - <String Name="UnknownError">Unknown error: 0x%x</String> - <String Name="UnsupportedFilelistFormat">Unsupported filelist format</String> - <String Name="UploadFinishedIdle">Upload finished, idle...</String> - <String Name="UploadStarting">Upload starting...</String> - <String Name="UploadedBytes">Uploaded %s (%.01f%%) in %s</String> - <String Name="UploadedTo"> uploaded to </String> - <String Name="Uploads">Uploads</String> - <String Name="UpnpFailedToCreateMappings">Failed to create port mappings. Please set up your NAT yourself.</String> - <String Name="UpnpFailedToRemoveMappings">Failed to remove port mappings</String> - <String Name="UpnpFailedToGetExternalIp">Failed to get external IP via UPnP. Please set it yourself.</String> - <String Name="User">User</String> - <String Name="UserCmdChat">Chat</String> - <String Name="UserCmdCommand">Command</String> - <String Name="UserCmdContext">Context</String> - <String Name="UserCmdFilelistMenu">Filelist Menu</String> - <String Name="UserCmdHub">Hub IP / DNS (empty = all, 'op' = where operator)</String> - <String Name="UserCmdHubMenu">Hub Menu</String> - <String Name="UserCmdOnce">Send once per nick</String> - <String Name="UserCmdParameters">Parameters</String> - <String Name="UserCmdPm">PM</String> - <String Name="UserCmdPreview">Text sent to hub</String> - <String Name="UserCmdRaw">Raw</String> - <String Name="UserCmdSearchMenu">Search Menu</String> - <String Name="UserCmdTo">To</String> - <String Name="UserCmdType">Command Type</String> - <String Name="UserCmdUserMenu">User Menu</String> - <String Name="UserCmdWindow">Create / Modify Command</String> - <String Name="UserDescription">User Description</String> - <String Name="UserOffline">User offline</String> - <String Name="UserWentOffline">User went offline</String> - <String Name="Users">Users</String> - <String Name="Video">Video</String> - <String Name="ViewAsText">View as text</String> - <String Name="VirtualName">Virtual name</String> - <String Name="VirtualNameExists">Virtual directory name already exists</String> - <String Name="VirtualNameLong">Name under which the others see the directory</String> - <String Name="Waiting">Waiting...</String> - <String Name="WaitingToRetry">Waiting to retry...</String> - <String Name="WaitingUsers">Waiting Users</String> - <String Name="WaitingUserOnline">Waiting (User online)</String> - <String Name="WaitingUsersOnline">Waiting (%d of %d users online)</String> - <String Name="YesStr">Yes</String> - <String Name="YouAreBeingRedirected">You are being redirected to </String> - </Strings> -</Language> Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2006-12-13 20:57:11 UTC (rev 689) +++ dcplusplus/trunk/changelog.txt 2006-12-13 21:02:16 UTC (rev 690) @@ -24,6 +24,7 @@ * [bug 1064] Updated to YaSSL 1.5.0, should fix crash * [bug 446] Public hub lists are cached and downloaded only when user requests it (thanks poy) * [bug 1117] Fixed subfolders being created on filelist downloads (thanks mikael eman) +* [bug 1096] Updated credits in about box -- 0.698 2006-10-10 -- * [bug 1065] Code cleanup (thanks steven sheehy) Deleted: dcplusplus/trunk/client/StringDefs.cpp =================================================================== --- dcplusplus/trunk/client/StringDefs.cpp 2006-12-13 20:57:11 UTC (rev 689) +++ dcplusplus/trunk/client/StringDefs.cpp 2006-12-13 21:02:16 UTC (rev 690) @@ -1,1269 +0,0 @@ -#include "stdinc.h" -#include "DCPlusPlus.h" -#include "ResourceManager.h" -string ResourceManager::strings[] = { -"Active", -"Enabled / Search String", -"&Add", -"Add To Favorites", -"Added", -"Automatic Directory Listing Search", -"Destination Directory", -"Discard", -"Download Matches", -"Enabled", -"Full Path", -"ADLSearch Properties", -"Search String", -"Max FileSize", -"Min FileSize", -"Search Type", -"Size Type", -"All download slots taken", -"All %d users offline", -"All 3 users offline", -"All 4 users offline", -"All", -"Any", -"At least", -"At most", -"Audio", -"Auto connect / Name", -"Auto grant slot / Nick", -"Average/s: ", -"AWAY", -"Away mode off", -"Away mode on: ", -"B", -"Ban user(s)", -"Both users offline", -"B/s", -"Browse...", -"&Browse...", -"Browse file list", -"Certificate not trusted, unable to connect", -"TLS disabled, failed to generate certificate: ", -"Choose folder", -"CID", -"Close", -"Close connection", -"Closing connection...", -"Compressed", -"Error during compression", -"Maximum command length exceeded", -"&Configure", -"&Connect", -"Connect to hub", -"Connected", -"Connecting...", -"Connecting (forced)...", -"Connecting to ", -"Connection", -"Connection closed", -"Connection timeout", -"Configured Public Hub Lists", -"Copy Filename", -"Copy address to clipboard", -"Copy magnet link to clipboard", -"Copy nick to clipboard", -"Could not open target file: ", -"Count", -"Country", -"CRC Checked", -"Error during decompression", -"Description", -"Destination", -"Directory", -"Directory already shared", -"Directory or directory name already exists", -"Disk full(?)", -"Disconnect user(s)", -"Disconnected", -"Disconnected user leaving the hub: ", -"Document", -"Done", -"Don't remove /password before your password", -"The temporary download directory cannot be shared", -"Download", -"Download failed: ", -"Download finished, idle...", -"Download Queue", -"Download starting...", -"Download to...", -"Download whole directory", -"Download whole directory to...", -"Downloaded", -"Downloaded %s (%.01f%%) in %s", -" downloaded from ", -"Downloading...", -"Downloading public hub list...", -"Downloading list...", -"Downloads", -"Duplicate file will not be shared: ", -"Dupe matched against: ", -"Duplicate source", -"Edit", -"&Edit", -"E-Mail", -"Please enter a nickname in the settings dialog!", -"Please enter a password", -"Please enter a reason", -"Enter search string", -"Please enter a destination server", -"Errors", -"Error creating hash data file: ", -"Error creating adc registry key", -"Error creating dchub registry key", -"Error creating magnet registry key", -"Error hashing ", -"Error saving hash data: ", -"Exact size", -"Executable", -"Failed to load certificate file", -"Failed to load private key", -"Join/part of favorite users showing off", -"Join/part of favorite users showing on", -"Favorite name", -"Under what name you see the directory", -"Favorite hub added", -"Hub already exists as a favorite", -"This hub is not a favorite hub", -"Identification (leave blank for defaults)", -"Favorite Hub Properties", -"Favorite hub removed", -"Favorite Hubs", -"Favorite user added", -"Favorite Users", -"File", -"Files", -"This file has no TTH", -"This file is already queued", -"Subtract list", -"File list refresh failed: ", -"File list refresh finished", -"File list refresh initiated", -"File list refresh in progress, please wait for it to finish before trying to refresh again", -"File not available", -"File type", -"A file with a different size already exists in the queue", -"A file with different tth root already exists in the queue", -"Filename", -"files left", -"files/h", -"F&ilter", -"Filtered", -"Find", -"Finished Downloads", -"Finished Uploads", -"File with '$' cannot be downloaded and will not be shared: ", -"Force attempt", -"GiB", -"Get file list", -"Go to directory", -"Grant extra slot", -"Hash database", -"Creating file index...", -"Run in background", -"Statistics", -"Please wait while DC++ indexes your files (they won't be shared until they've been indexed)...", -"Unable to read hash data file", -"Hash database rebuilt", -"Hashing failed: ", -"Finished hashing: ", -"High", -"Highest", -"Hit Ratio: ", -"Hits: ", -"Hub", -"Hubs", -"Address", -"Hub list downloaded...", -"Edit the hublist", -"Hub list loaded from cache...", -"Name", -"Hublist", -"Hub password", -"Users", -"Ignore TTH searches", -"Ignored message: ", -"Hub address cannot be empty.", -"Invalid file list name", -"Invalid number of slots", -"Invalid target file (missing directory, check default download directory setting)", -"Full tree does not match TTH root", -"IP: ", -"IP", -"Items", -"Join/part showing off", -"Join/part showing on", -"Joins: ", -"KiB", -"KiB/s", -"Kick user(s)", -"A file of equal or larger size already exists at the target location", -"Last change: ", -"Hub (last seen on if offline)", -"Time last seen", -"left", -"Listening socket failed (you need to restart DC++): ", -"Loading DC++, please wait...", -"Lookup TTH at Bitzi.com", -"Low", -"Lowest", -"Filename:", -"File Hash:", -"Do nothing", -"Add this file to your download queue", -"Do the same action next time without asking", -"Start a search for this file", -"A MAGNET link was given to DC++, but it didn't contain a valid file hash for use on the Direct Connect network. No action will be taken.", -"DC++ has detected a MAGNET link with a file hash that can be searched for on the Direct Connect network. What would you like to do?", -"MAGNET Link detected", -"Download files from the Direct Connect network", -"DC++", -"URL:MAGNET URI", -"Match queue", -"Matched %d file(s)", -"Max Hubs", -"Max Size", -"Max Users", -"Min Size", -"MiB", -"MiB/s", -"MiBits/s", -"About DC++...", -"ADL Search", -"Arrange icons", -"Cascade", -"Change Log", -"Close all file list windows", -"Close all offline PM windows", -"Close all PM windows", -"Close all search windows", -"Close disconnected", -"Help &Contents\tF1", -"DC++ discussion forum", -"Donate (paypal)", -"&Download Queue\tCtrl+D", -"E&xit", -"Frequently asked questions", -"&Favorite Hubs\tCtrl+F", -"Favorite &Users\tCtrl+U", -"&File", -"Follow last redirec&t\tCtrl+T", -"Indexing progress", -"&Help", -"Downloads", -"GeoIP database update", -"Help forum", -"Translations", -"DC++ Homepage", -"Horizontal Tile", -"Minimize &All", -"Restore All", -"Network Statistics", -"&Notepad\tCtrl+N", -"Open downloads directory", -"Open file list...\tCtrl+L", -"Match downloaded lists", -"Open own list", -"&Public Hubs\tCtrl+P", -"&Quick Connect ...\tCtrl+Q", -"&Reconnect\tCtrl+R", -"Refresh file list\tCtrl+E", -"Report a bug", -"Request a feature", -"&Search\tCtrl+S", -"Search Spy", -"Settings...", -"Show", -"&Status bar\tCtrl+2", -"System Log", -"&Toolbar\tCtrl+1", -"T&ransfers\tCtrl+3", -"Vertical Tile", -"&View", -"&Window", -"Min Share", -"Min Slots", -"Move/Rename", -"Move &Down", -"Move &Up", -"Network Statistics", -"&New...", -"Next", -"Nick", -"Your nick was already taken, please change to something else!", -" (Nick unknown)", -"TLS disabled, no certificate file set", -" not shared; calculated CRC32 does not match the one found in SFV file.", -"No directory specified", -"You're trying to download from yourself!", -"Can't download from passive users when you're passive", -"No errors", -"No matches", -"No slots available", -"No", -"No users", -"No users to download from", -"Normal", -"Not listening for connections - please restart DC++", -"Notepad", -"Offline", -"Online", -"Only users with free slots", -"Only TLS connections allowed", -"Only results with TTH root", -"Only where I'm op", -"Open", -"Open download page?", -"Open folder", -"Operating system does not match minimum requirements for feature", -"Out of buffer space", -"Parts: ", -"Passive user", -"Password", -"Path", -"Paused", -"PiB", -"Picture", -"Port: ", -"Preparing file list...", -"Press the follow redirect button to connect to ", -"Priority", -"Private message", -"Private message from ", -"&Properties", -"Public Hubs", -"Purge", -"Quick Connect", -"Rating", -"Ratio", -"Re-add source", -"Really exit?", -"Really remove?", -"Redirect", -"Redirect request received to a hub that's already connected", -"Redirect user(s)", -"&Refresh", -"Refresh user list", -"Reliability", -"&Remove", -"Remove all", -"Remove all subdirectories before adding this one", -"Remove user from queue", -"Remove source", -" renamed to ", -"Rollback inconsistency, existing file does not match the one being downloaded", -"Running...", -"s", -"Search", -"Search for", -"Search for alternates", -"Search for file", -"Search options", -"Search spam detected from ", -"Search Spy", -"Search String", -"Searching for ", -"Ready to search...", -"Searching too soon, next search in %i seconds", -"Request to seek beyond the end of data", -"Send private message", -"Separator", -"Server", -"Set priority", -"Settings", -"Add finished files to share instantly (if shared)", -"&Add folder", -"Break on first ADLSearch match", -"Advanced", -"Advanced\\Experts only", -"Advanced resume using TTH", -"Advanced settings", -"Allow TLS connections to clients without trusted certificate", -"Allow TLS connections to hubs without trusted certificate", -"Use antifragmentation method for downloads", -"Appearance", -"Appearance\\Colors and sounds", -"Autodrop settings", -"Drop sources below", -"Check every", -"Min elapsed", -"Max inactivity", -"Min sources online", -"Min filesize", -"Autodrop slow sources for all queue items (except filelists)", -"Remove slow filelists", -"Don't remove the source when autodropping, only disconnect", -"Auto-away on minimize (and back on restore)", -"Automatically follow redirects", -"Automatically disconnect users who leave the hub", -"Don't automatically disconnect favorite users who leave the hub", -"Automatically search for alternative download locations", -"Automatically match queue for auto search hits", -"Auto-search limit", -"Auto-open at startup", -"Auto refresh time", -"Bind address", -"Tab bolding on content change", -"Advanced\\Security Certificates", -"&Change", -"Clear search box after each search", -"Colors", -"Command", -"Enable safe and compressed transfers", -"Configure Public Hub Lists", -"Confirm dialog options", -"Confirm application exit", -"Confirm favorite hub removal", -"Confirm item removal in download queue", -"Connection Type", -"Default away message", -"Direct connection", -"Directories", -"Don't download files already in the queue", -"Don't download files already in share", -"Default download directory", -"Limits", -"Downloads", -"Maximum simultaneous downloads (0 = infinite)", -"No new downloads if speed exceeds (KiB/s, 0 = disable)", -"Donate :s! (ok, dirty dollars are fine as well =) (see help menu)", -"External / WAN IP", -"Only show joins / parts for favorite users", -"Downloads\\Favorites", -"Favorite download directories", -"Filename", -"Filter kick and NMDC debug messages", -"Firewall with manual port forwarding", -"Firewall (passive, last resort)", -"Firewall with UPnP", -"Format", -"Personal information", -"Guess user country from IP", -"Accept custom user commands from hub", -"Ignore private messages from the hub", -"Ignore private messages from bots", -"Incoming connection settings (see Help/FAQ if unsure)", -"Don't delete file lists when exiting", -"Language file", -"Keep duplicate files in your file list", -"Log downloads", -"Log filelist transfers", -"Log main chat", -"Log private chat", -"Log status messages", -"Log system messages", -"Log uploads", -"Logging", -"Advanced\\Logs", -"Ask what to do when a magnet link is detected.", -"Max filelist size", -"Max hash speed", -"Max tab rows", -"Minimize to tray", -"Name", -"Connection settings", -"Notification sound", -"Don't send the away message to bots", -"Note; Files appear in the share only after they've been hashed!", -"Search for files with TTH root only as standard", -"Open new window when using /join", -"Always open help file with this dialog", -"Options", -"Other queue options", -"Outgoing connection settings", -"Don't allow hub/UPnP to override", -"Personal Information", -"Make an annoying sound every time a private message is received", -"Make an annoying sound when a private message window is opened", -"PM history", -"Open new file list windows in the background", -"Open new private message windows in the background", -"Open private messages from the hub in their own window", -"Open private messages from bots in their own window", -"Open private messages in their own window", -"Ports", -"Popup box to input password for hubs", -"Public Hubs list", -"HTTP Proxy (for hublist only)", -"Public Hubs list URL", -"Downloads\\Queue", -"Rename", -"Note; most of these options require that you restart DC++", -"Rollback", -"Search history", -"Select &text style", -"Select &window color", -"Send unknown /commands to the hub", -"Enable automatic SFV checking", -"Share hidden files", -"Total size:", -"Shared directories", -"Show joins / parts in chat by default", -"Show progress bars for transfers", -"Show shell menu in finished transfers", -"Skip zero-byte files", -"Use small send buffer (enable if uploads slow downloads a lot)", -"SOCKS5", -"Socks IP", -"Port", -"Use SOCKS5 server to resolve host names", -"Login", -"Sort favorite users first", -"Sounds", -"Note; because of changing download speeds, this is not 100% accurate...", -"View status messages in main chat", -"TCP", -"TLS", -"Mini slot size", -"Autoprio settings", -"Highest prio max size", -"High prio max size", -"Normal prio max size", -"Low prio max size", -"Set lowest prio for newly added files larger than Low prio size", -"Appearance\\Tabs", -"Show timestamps in chat by default", -"Set timestamps", -"Toggle window when selecting an active tab", -"UDP", -"Unfinished downloads directory", -"Line speed (upload)", -"Sharing", -"Automatically open an extra slot if speed is below (0 = disable)", -"Upload slots", -"Register with Windows to handle dchub:// and adc:// URL links", -"Register with Windows to handle magnet: URI links", -"Use CTRL for line history", -"Use OEM monospaced font for viewing text files", -"Use system icons when browsing files (slows browsing down a bit)", -"Advanced\\User Commands", -"Appearance\\Windows", -"Window options", -"Write buffer size", -"Sort all downloads first", -"Use TLS when remote client supports it", -"CRC32 inconsistency (SFV-Check)", -"Shared", -"Shared Files", -"Size", -"New virtual name matches old name, skipping...", -"Slot granted", -"Slots", -"Slots set", -"Socks server authentication failed (bad login / password?)", -"The socks server doesn't support login / password authentication", -"The socks server failed establish a connection", -"The socks server requires authentication", -"Failed to set up the socks server for UDP relay (check socks address and port)", -"Remote client does not fully support TTH - cannot download", -"Source too slow", -"Source Type", -"Specify a search string", -"Specify a server to connect to", -"Specify a URL", -"Speed", -"Status", -"Stored password sent...", -"System Log", -"Tag", -"Target filename too long", -"Unable to open TCP/TLS port. File transfers will not work correctly until you change settings or turn off any application that might be using the TCP/TLS port", -"TiB", -"Time", -"Time left", -"Timestamps disabled", -"Timestamps enabled", -"More data was sent than was expected", -"Total: ", -"A file with the same hash already exists in your share", -"TTH inconsistency", -"TTH Root", -"Type", -"Unable to open UDP port. Searching will not work correctly until you change settings or turn off any application that might be using the UDP port", -"Unable to create thread", -"Unable to open filelist: ", -"Unable to rename ", -"Unable to send file ", -"Unknown", -"Unknown address", -"Unknown command: ", -"Unknown error: 0x%x", -"Unsupported filelist format", -"Upload finished, idle...", -"Upload starting...", -"Uploaded %s (%.01f%%) in %s", -" uploaded to ", -"Uploads", -"Failed to create port mappings. Please set up your NAT yourself.", -"Failed to remove port mappings", -"Failed to get external IP via UPnP. Please set it yourself.", -"User", -"Chat", -"Command", -"Context", -"Filelist Menu", -"Hub IP / DNS (empty = all, 'op' = where operator)", -"Hub Menu", -"Send once per nick", -"Parameters", -"PM", -"Text sent to hub", -"Raw", -"Search Menu", -"To", -"Command Type", -"User Menu", -"Create / Modify Command", -"User Description", -"User offline", -"User went offline", -"Users", -"Video", -"View as text", -"Virtual name", -"Virtual directory name already exists", -"Name under which the others see the directory", -"Waiting...", -"Waiting to retry...", -"Waiting Users", -"Waiting (User online)", -"Waiting (%d of %d users online)", -"Yes", -"You are being redirected to ", -}; -string ResourceManager::names[] = { -"Active", -"ActiveSearchString", -"Add", -"AddToFavorites", -"Added", -"AdlSearch", -"AdlsDestination", -"AdlsDiscard", -"AdlsDownload", -"AdlsEnabled", -"AdlsFullPath", -"AdlsProperties", -"AdlsSearchString", -"AdlsSizeMax", -"AdlsSizeMin", -"AdlsType", -"AdlsUnits", -"AllDownloadSlot... [truncated message content] |
From: <arn...@us...> - 2006-12-13 20:57:21
|
Revision: 689 http://svn.sourceforge.net/dcplusplus/?rev=689&view=rev Author: arnetheduck Date: 2006-12-13 12:57:11 -0800 (Wed, 13 Dec 2006) Log Message: ----------- patches, reorder hublists to put the working ones first Modified Paths: -------------- dcplusplus/trunk/Example.xml dcplusplus/trunk/changelog.txt dcplusplus/trunk/client/FavoriteManager.cpp dcplusplus/trunk/client/FavoriteManager.h dcplusplus/trunk/client/SettingsManager.cpp dcplusplus/trunk/client/StringDefs.cpp dcplusplus/trunk/client/StringDefs.h dcplusplus/trunk/client/Util.h dcplusplus/trunk/windows/AboutDlg.h dcplusplus/trunk/windows/PublicHubsFrm.cpp dcplusplus/trunk/windows/PublicHubsFrm.h Modified: dcplusplus/trunk/Example.xml =================================================================== --- dcplusplus/trunk/Example.xml 2006-12-13 20:39:44 UTC (rev 688) +++ dcplusplus/trunk/Example.xml 2006-12-13 20:57:11 UTC (rev 689) @@ -178,6 +178,7 @@ <String Name="HubAddress">Address</String> <String Name="HubListDownloaded">Hub list downloaded...</String> <String Name="HubListEdit">Edit the hublist</String> + <String Name="HubListLoadedFromCache">Hub list loaded from cache...</String> <String Name="HubName">Name</String> <String Name="HubList">Hublist</String> <String Name="HubPassword">Hub password</String> Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2006-12-13 20:39:44 UTC (rev 688) +++ dcplusplus/trunk/changelog.txt 2006-12-13 20:57:11 UTC (rev 689) @@ -22,6 +22,8 @@ * [bug 1112] Port sign cleanup (thanks steven sheehy) * [ADC] Fixed client-to-client connection sequence * [bug 1064] Updated to YaSSL 1.5.0, should fix crash +* [bug 446] Public hub lists are cached and downloaded only when user requests it (thanks poy) +* [bug 1117] Fixed subfolders being created on filelist downloads (thanks mikael eman) -- 0.698 2006-10-10 -- * [bug 1065] Code cleanup (thanks steven sheehy) Modified: dcplusplus/trunk/client/FavoriteManager.cpp =================================================================== --- dcplusplus/trunk/client/FavoriteManager.cpp 2006-12-13 20:39:44 UTC (rev 688) +++ dcplusplus/trunk/client/FavoriteManager.cpp 2006-12-13 20:57:11 UTC (rev 689) @@ -30,6 +30,25 @@ #include "SimpleXML.h" #include "UserCommand.h" +FavoriteManager::FavoriteManager() : lastId(0), useHttp(false), running(false), c(NULL), lastServer(0), listType(TYPE_NORMAL), dontSave(false) { + SettingsManager::getInstance()->addListener(this); + ClientManager::getInstance()->addListener(this); + + File::ensureDirectory(Util::getHubListsPath()); +} + +FavoriteManager::~FavoriteManager() throw() { + ClientManager::getInstance()->removeListener(this); + SettingsManager::getInstance()->removeListener(this); + if(c) { + c->removeListener(this); + delete c; + c = NULL; + } + + for_each(favoriteHubs.begin(), favoriteHubs.end(), DeleteFunction()); +} + UserCommand FavoriteManager::addUserCommand(int type, int ctx, int flags, const string& name, const string& command, const string& hub) { // No dupes, add it... Lock l(cs); @@ -230,12 +249,12 @@ return false; } -void FavoriteManager::onHttpFinished() throw() { +void FavoriteManager::onHttpFinished(bool fromHttp) throw() { string::size_type i, j; string* x; string bzlist; - if(listType == TYPE_BZIP2) { + if((listType == TYPE_BZIP2) && (!downloadBuf.empty())) { try { CryptoManager::getInstance()->decodeBZ2((uint8_t*)downloadBuf.data(), downloadBuf.size(), bzlist); } catch(const CryptoException&) { @@ -272,6 +291,15 @@ } } } + + if(fromHttp) { + try { + File f(Util::getHubListsPath() + Util::validateFileName(publicListServer), File::WRITE, File::CREATE | File::TRUNCATE); + f.write(downloadBuf); + f.close(); + } catch(const FileException&) { } + } + downloadBuf = Util::emptyString; } @@ -555,17 +583,12 @@ return lists.getTokens(); } -bool FavoriteManager::setHubList(int aHubList) { - if(!running) { - lastServer = aHubList; - StringList sl = getHubLists(); - publicListServer = sl[(lastServer) % sl.size()]; - return true; - } - return false; +void FavoriteManager::setHubList(int aHubList) { + lastServer = aHubList; + refresh(); } -void FavoriteManager::refresh() { +void FavoriteManager::refresh(bool forceDownload /* = false */) { StringList sl = getHubLists(); if(sl.empty()) return; @@ -575,14 +598,37 @@ return; } - fire(FavoriteManagerListener::DownloadStarting(), publicListServer); + if(!forceDownload) { + string path = Util::getHubListsPath() + Util::validateFileName(publicListServer); + if(File::getSize(path) > 0) { + useHttp = false; + { + Lock l(cs); + publicListMatrix[publicListServer].clear(); + } + listType = (Util::stricmp(path.substr(path.size() - 4), ".bz2") == 0) ? TYPE_BZIP2 : TYPE_NORMAL; + try { + downloadBuf = File(path, File::READ, File::OPEN).read(); + } catch(const FileException&) { + downloadBuf = Util::emptyString; + } + if(!downloadBuf.empty()) { + onHttpFinished(false); + fire(FavoriteManagerListener::LoadedFromCache(), publicListServer); + return; + } + } + } + if(!running) { - if(!c) - c = new HttpConnection(); + useHttp = true; { Lock l(cs); publicListMatrix[publicListServer].clear(); } + fire(FavoriteManagerListener::DownloadStarting(), publicListServer); + if(c == NULL) + c = new HttpConnection(); c->addListener(this); c->downloadFile(publicListServer); running = true; @@ -634,29 +680,36 @@ // HttpConnectionListener void FavoriteManager::on(Data, HttpConnection*, const uint8_t* buf, size_t len) throw() { - downloadBuf.append((const char*)buf, len); + if(useHttp) + downloadBuf.append((const char*)buf, len); } void FavoriteManager::on(Failed, HttpConnection*, const string& aLine) throw() { c->removeListener(this); lastServer++; running = false; - fire(FavoriteManagerListener::DownloadFailed(), aLine); + if(useHttp) + fire(FavoriteManagerListener::DownloadFailed(), aLine); } void FavoriteManager::on(Complete, HttpConnection*, const string& aLine) throw() { c->removeListener(this); - onHttpFinished(); + if(useHttp) + onHttpFinished(true); running = false; - fire(FavoriteManagerListener::DownloadFinished(), aLine); + if(useHttp) + fire(FavoriteManagerListener::DownloadFinished(), aLine); } void FavoriteManager::on(Redirected, HttpConnection*, const string& aLine) throw() { - fire(FavoriteManagerListener::DownloadStarting(), aLine); + if(useHttp) + fire(FavoriteManagerListener::DownloadStarting(), aLine); } void FavoriteManager::on(TypeNormal, HttpConnection*) throw() { - listType = TYPE_NORMAL; + if(useHttp) + listType = TYPE_NORMAL; } void FavoriteManager::on(TypeBZ2, HttpConnection*) throw() { - listType = TYPE_BZIP2; + if(useHttp) + listType = TYPE_BZIP2; } void FavoriteManager::on(UserUpdated, const OnlineUser& user) throw() { Modified: dcplusplus/trunk/client/FavoriteManager.h =================================================================== --- dcplusplus/trunk/client/FavoriteManager.h 2006-12-13 20:39:44 UTC (rev 688) +++ dcplusplus/trunk/client/FavoriteManager.h 2006-12-13 20:57:11 UTC (rev 689) @@ -121,6 +121,7 @@ typedef X<5> UserAdded; typedef X<6> UserRemoved; typedef X<7> StatusChanged; + typedef X<8> LoadedFromCache; virtual void on(DownloadStarting, const string&) throw() { } virtual void on(DownloadFailed, const string&) throw() { } @@ -130,6 +131,7 @@ virtual void on(UserAdded, const FavoriteUser&) throw() { } virtual void on(UserRemoved, const FavoriteUser&) throw() { } virtual void on(StatusChanged, const User::Ptr&) throw() { } + virtual void on(LoadedFromCache, const string&) throw() { } }; class SimpleXML; @@ -147,15 +149,15 @@ TYPE_BZIP2 }; StringList getHubLists(); - bool setHubList(int /*aHubList*/); + void setHubList(int aHubList); int getSelectedHubList() { return lastServer; } - void refresh(); + void refresh(bool forceDownload = false); HubTypes getHubListType() { return listType; } HubEntry::List getPublicHubs() { Lock l(cs); return publicListMatrix[publicListServer]; } - bool isDownloading() { return running; } + bool isDownloading() { return (useHttp && running); } // Favorite Users typedef HASH_MAP_X(CID, FavoriteUser, CID::Hash, equal_to<CID>, less<CID>) FavoriteMap; @@ -214,7 +216,7 @@ typedef map<string, HubEntry::List> PubListMap; PubListMap publicListMatrix; string publicListServer; - bool running; + bool useHttp, running; HttpConnection* c; int lastServer; HubTypes listType; @@ -225,23 +227,9 @@ friend class Singleton<FavoriteManager>; - FavoriteManager() : lastId(0), running(false), c(NULL), lastServer(0), listType(TYPE_NORMAL), dontSave(false) { - SettingsManager::getInstance()->addListener(this); - ClientManager::getInstance()->addListener(this); - } + FavoriteManager(); + virtual ~FavoriteManager() throw(); - virtual ~FavoriteManager() throw() { - ClientManager::getInstance()->removeListener(this); - SettingsManager::getInstance()->removeListener(this); - if(c) { - c->removeListener(this); - delete c; - c = NULL; - } - - for_each(favoriteHubs.begin(), favoriteHubs.end(), DeleteFunction()); - } - FavoriteHubEntry::Iter getFavoriteHub(const string& aServer) { for(FavoriteHubEntry::Iter i = favoriteHubs.begin(); i != favoriteHubs.end(); ++i) { if(Util::stricmp((*i)->getServer(), aServer) == 0) { @@ -266,7 +254,7 @@ virtual void on(TypeNormal, HttpConnection*) throw(); virtual void on(TypeBZ2, HttpConnection*) throw(); - void onHttpFinished() throw(); + void onHttpFinished(bool fromHttp) throw(); // SettingsManagerListener virtual void on(SettingsManagerListener::Load, SimpleXML& xml) throw() { Modified: dcplusplus/trunk/client/SettingsManager.cpp =================================================================== --- dcplusplus/trunk/client/SettingsManager.cpp 2006-12-13 20:39:44 UTC (rev 688) +++ dcplusplus/trunk/client/SettingsManager.cpp 2006-12-13 20:57:11 UTC (rev 689) @@ -135,7 +135,7 @@ setDefault(IGNORE_BOT_PMS, false); setDefault(LIST_DUPES, true); setDefault(BUFFER_SIZE, 64); - setDefault(HUBLIST_SERVERS, "http://home.bandicoot.nl/adchublist.xml.bz2;http://adchublist.com/hublist.xml.bz2;http://www.hublist.org/PublicHubList.xml.bz2;http://dchublist.com/hublist.xml.bz2"); + setDefault(HUBLIST_SERVERS, "http://dchublist.com/hublist.xml.bz2;http://adchublist.com/hublist.xml.bz2;http://home.bandicoot.nl/adchublist.xml.bz2;http://www.hublist.org/PublicHubList.xml.bz2"); setDefault(DOWNLOAD_SLOTS, 3); setDefault(MAX_DOWNLOAD_SPEED, 0); setDefault(LOG_DIRECTORY, Util::getConfigPath() + "Logs" PATH_SEPARATOR_STR); Modified: dcplusplus/trunk/client/StringDefs.cpp =================================================================== --- dcplusplus/trunk/client/StringDefs.cpp 2006-12-13 20:39:44 UTC (rev 688) +++ dcplusplus/trunk/client/StringDefs.cpp 2006-12-13 20:57:11 UTC (rev 689) @@ -179,6 +179,7 @@ "Address", "Hub list downloaded...", "Edit the hublist", +"Hub list loaded from cache...", "Name", "Hublist", "Hub password", @@ -811,6 +812,7 @@ "HubAddress", "HubListDownloaded", "HubListEdit", +"HubListLoadedFromCache", "HubName", "HubList", "HubPassword", Modified: dcplusplus/trunk/client/StringDefs.h =================================================================== --- dcplusplus/trunk/client/StringDefs.h 2006-12-13 20:39:44 UTC (rev 688) +++ dcplusplus/trunk/client/StringDefs.h 2006-12-13 20:57:11 UTC (rev 689) @@ -182,6 +182,7 @@ HUB_ADDRESS, // "Address" HUB_LIST_DOWNLOADED, // "Hub list downloaded..." HUB_LIST_EDIT, // "Edit the hublist" + HUB_LIST_LOADED_FROM_CACHE, // "Hub list loaded from cache..." HUB_NAME, // "Name" HUB_LIST, // "Hublist" HUB_PASSWORD, // "Hub password" Modified: dcplusplus/trunk/client/Util.h =================================================================== --- dcplusplus/trunk/client/Util.h 2006-12-13 20:39:44 UTC (rev 688) +++ dcplusplus/trunk/client/Util.h 2006-12-13 20:57:11 UTC (rev 689) @@ -162,6 +162,8 @@ /** Path of file lists */ static string getListPath() { return getConfigPath() + "FileLists" PATH_SEPARATOR_STR; } + /** Path of hub lists */ + static string getHubListsPath() { return getConfigPath() + "HubLists" PATH_SEPARATOR_STR; } /** Notepad filename */ static string getNotepadFile() { return getConfigPath() + "Notepad.txt"; } Modified: dcplusplus/trunk/windows/AboutDlg.h =================================================================== --- dcplusplus/trunk/windows/AboutDlg.h 2006-12-13 20:39:44 UTC (rev 688) +++ dcplusplus/trunk/windows/AboutDlg.h 2006-12-13 20:57:11 UTC (rev 689) @@ -27,9 +27,9 @@ #include "../client/SimpleXML.h" static const TCHAR thanks[] = _T("Big thanks to all donators and people who have contributed with ideas ") -_T("and code! Thanks go out to sourceforge for hosting the project. This application uses libzip2, ") -_T("thanks to Julian R Steward and team for providing it. This application uses STLPort ") -_T("(www.stlport.org), a most excellent STL package. zlib is also used in this application. ") +_T("and code! Thanks go out to sourceforge for hosting the project. This application uses bzip2 (www.bzip.org), ") +_T("thanks to Julian Seward and team for providing it. Thiz application uses zlib (www.zlib.net), ") +_T("thanks to Jean-loup Gailly and Mark Adler for providing it. ") _T("This product includes GeoIP data created by MaxMind, available from http://maxmind.com/. ") _T("This product uses yassl from www.yassl.com, thanks to Todd Ouska and Larry Stefonic.") _T("The following people have contributed code to ") @@ -42,7 +42,7 @@ _T("defr, ullner, fleetcommand, liny, xan, olle svensson, mark gillespie, jeremy huddleston, ") _T("bsod, sulan, jonathan stone, tim burton, izzzo, guitarm, paka, nils maier, jens oknelid, yoji, ") _T("krzysztof tyszecki, poison, pothead, pur, bigmuscle, martin, jove, bart vullings, ") -_T("steven sheehy, tobias nygren, poy, dorian, stephan hohe, mafa_45. ") +_T("steven sheehy, tobias nygren, poy, dorian, stephan hohe, mafa_45, mikael eman. ") _T("Keep it coming!"); class AboutDlg : public CDialogImpl<AboutDlg>, private HttpConnectionListener Modified: dcplusplus/trunk/windows/PublicHubsFrm.cpp =================================================================== --- dcplusplus/trunk/windows/PublicHubsFrm.cpp 2006-12-13 20:39:44 UTC (rev 688) +++ dcplusplus/trunk/windows/PublicHubsFrm.cpp 2006-12-13 20:57:11 UTC (rev 689) @@ -139,10 +139,8 @@ hubs = FavoriteManager::getInstance()->getPublicHubs(); if(FavoriteManager::getInstance()->isDownloading()) ctrlStatus.SetText(0, CTSTRING(DOWNLOADING_HUB_LIST)); - else { - if(hubs.empty()) - FavoriteManager::getInstance()->refresh(); - } + else if(hubs.empty()) + FavoriteManager::getInstance()->refresh(); updateList(); @@ -210,12 +208,9 @@ } LRESULT PublicHubsFrame::onClickedRefresh(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/) { - ctrlHubs.DeleteAllItems(); - users = 0; - visibleHubs = 0; ctrlStatus.SetText(0, CTSTRING(DOWNLOADING_HUB_LIST)); - FavoriteManager::getInstance()->refresh(); - + FavoriteManager::getInstance()->refresh(true); + updateDropDown(); return 0; } @@ -424,11 +419,11 @@ } LRESULT PublicHubsFrame::onSpeaker(UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/) { - if(wParam == FINISHED) { + if((wParam == FINISHED) || (wParam == LOADED_FROM_CACHE)) { hubs = FavoriteManager::getInstance()->getPublicHubs(); updateList(); tstring* x = (tstring*)lParam; - ctrlStatus.SetText(0, (TSTRING(HUB_LIST_DOWNLOADED) + _T(" (") + (*x) + _T(")")).c_str()); + ctrlStatus.SetText(0, (((wParam == LOADED_FROM_CACHE) ? TSTRING(HUB_LIST_LOADED_FROM_CACHE) : TSTRING(HUB_LIST_DOWNLOADED)) + _T(" (") + (*x) + _T(")")).c_str()); delete x; } else if(wParam == STARTING) { tstring* x = (tstring*)lParam; Modified: dcplusplus/trunk/windows/PublicHubsFrm.h =================================================================== --- dcplusplus/trunk/windows/PublicHubsFrm.h 2006-12-13 20:39:44 UTC (rev 688) +++ dcplusplus/trunk/windows/PublicHubsFrm.h 2006-12-13 20:57:11 UTC (rev 689) @@ -124,6 +124,7 @@ enum { FINISHED, + LOADED_FROM_CACHE, STARTING, FAILED }; @@ -164,6 +165,7 @@ virtual void on(DownloadStarting, const string& l) throw() { speak(STARTING, l); } virtual void on(DownloadFailed, const string& l) throw() { speak(FAILED, l); } virtual void on(DownloadFinished, const string& l) throw() { speak(FINISHED, l); } + virtual void on(LoadedFromCache, const string& l) throw() { speak(LOADED_FROM_CACHE, l); } void speak(int x, const string& l) { PostMessage(WM_SPEAKER, x, (LPARAM)new tstring(Text::toT(l))); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2006-12-13 20:39:46
|
Revision: 688 http://svn.sourceforge.net/dcplusplus/?rev=688&view=rev Author: arnetheduck Date: 2006-12-13 12:39:44 -0800 (Wed, 13 Dec 2006) Log Message: ----------- yassl update Modified Paths: -------------- dcplusplus/trunk/changelog.txt dcplusplus/trunk/client/stdinc.h dcplusplus/trunk/yassl/README dcplusplus/trunk/yassl/certs/taoCert.txt dcplusplus/trunk/yassl/include/buffer.hpp dcplusplus/trunk/yassl/include/cert_wrapper.hpp dcplusplus/trunk/yassl/include/crypto_wrapper.hpp dcplusplus/trunk/yassl/include/factory.hpp dcplusplus/trunk/yassl/include/openssl/ssl.h dcplusplus/trunk/yassl/include/socket_wrapper.hpp dcplusplus/trunk/yassl/include/yassl_error.hpp dcplusplus/trunk/yassl/include/yassl_imp.hpp dcplusplus/trunk/yassl/include/yassl_int.hpp dcplusplus/trunk/yassl/include/yassl_types.hpp dcplusplus/trunk/yassl/src/cert_wrapper.cpp dcplusplus/trunk/yassl/src/crypto_wrapper.cpp dcplusplus/trunk/yassl/src/handshake.cpp dcplusplus/trunk/yassl/src/socket_wrapper.cpp dcplusplus/trunk/yassl/src/ssl.cpp dcplusplus/trunk/yassl/src/template_instnt.cpp dcplusplus/trunk/yassl/src/yassl.cpp dcplusplus/trunk/yassl/src/yassl_error.cpp dcplusplus/trunk/yassl/src/yassl_imp.cpp dcplusplus/trunk/yassl/src/yassl_int.cpp dcplusplus/trunk/yassl/taocrypt/include/aes.hpp dcplusplus/trunk/yassl/taocrypt/include/arc4.hpp dcplusplus/trunk/yassl/taocrypt/include/asn.hpp dcplusplus/trunk/yassl/taocrypt/include/block.hpp dcplusplus/trunk/yassl/taocrypt/include/blowfish.hpp dcplusplus/trunk/yassl/taocrypt/include/config.h.in dcplusplus/trunk/yassl/taocrypt/include/des.hpp dcplusplus/trunk/yassl/taocrypt/include/error.hpp dcplusplus/trunk/yassl/taocrypt/include/file.hpp dcplusplus/trunk/yassl/taocrypt/include/hmac.hpp dcplusplus/trunk/yassl/taocrypt/include/integer.hpp dcplusplus/trunk/yassl/taocrypt/include/md5.hpp dcplusplus/trunk/yassl/taocrypt/include/misc.hpp dcplusplus/trunk/yassl/taocrypt/include/modes.hpp dcplusplus/trunk/yassl/taocrypt/include/pwdbased.hpp dcplusplus/trunk/yassl/taocrypt/include/ripemd.hpp dcplusplus/trunk/yassl/taocrypt/include/rsa.hpp dcplusplus/trunk/yassl/taocrypt/include/sha.hpp dcplusplus/trunk/yassl/taocrypt/include/twofish.hpp dcplusplus/trunk/yassl/taocrypt/src/aes.cpp dcplusplus/trunk/yassl/taocrypt/src/algebra.cpp dcplusplus/trunk/yassl/taocrypt/src/arc4.cpp dcplusplus/trunk/yassl/taocrypt/src/asn.cpp dcplusplus/trunk/yassl/taocrypt/src/blowfish.cpp dcplusplus/trunk/yassl/taocrypt/src/des.cpp dcplusplus/trunk/yassl/taocrypt/src/dh.cpp dcplusplus/trunk/yassl/taocrypt/src/integer.cpp dcplusplus/trunk/yassl/taocrypt/src/md4.cpp dcplusplus/trunk/yassl/taocrypt/src/md5.cpp dcplusplus/trunk/yassl/taocrypt/src/misc.cpp dcplusplus/trunk/yassl/taocrypt/src/random.cpp dcplusplus/trunk/yassl/taocrypt/src/ripemd.cpp dcplusplus/trunk/yassl/taocrypt/src/sha.cpp dcplusplus/trunk/yassl/taocrypt/src/template_instnt.cpp dcplusplus/trunk/yassl/taocrypt/src/twofish.cpp dcplusplus/trunk/yassl/taocrypt/taocrypt.vcproj dcplusplus/trunk/yassl/yassl.vcproj Added Paths: ----------- dcplusplus/trunk/help/settings_tabs.html dcplusplus/trunk/yassl/mySTL/memory_array.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/ dcplusplus/trunk/yassl/taocrypt/mySTL/algorithm.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/helpers.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/list.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/memory.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/memory_array.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/pair.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/stdexcept.hpp dcplusplus/trunk/yassl/taocrypt/mySTL/vector.hpp dcplusplus/trunk/yassl/taocrypt/src/crypto.cpp Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/changelog.txt 2006-12-13 20:39:44 UTC (rev 688) @@ -20,7 +20,8 @@ * [bug 1110] Added new adc hub list (thanks mafa_45) * [bug 1091] Added new nmdc hub lists (thanks poy) * [bug 1112] Port sign cleanup (thanks steven sheehy) -* Fixed ADC client-to-client connection sequence +* [ADC] Fixed client-to-client connection sequence +* [bug 1064] Updated to YaSSL 1.5.0, should fix crash -- 0.698 2006-10-10 -- * [bug 1065] Code cleanup (thanks steven sheehy) Modified: dcplusplus/trunk/client/stdinc.h =================================================================== --- dcplusplus/trunk/client/stdinc.h 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/client/stdinc.h 2006-12-13 20:39:44 UTC (rev 688) @@ -33,6 +33,10 @@ #define BZ_NO_STDIO 1 #endif +#ifndef USE_SYS_STL +#define USE_SYS_STL 1 +#endif + #ifdef HAVE_STLPORT # define _STLP_DONT_USE_SHORT_STRING_OPTIM 1 // Lots of memory issues with this undefined...wonder what's up with that.. # define _STLP_USE_PTR_SPECIALIZATIONS 1 Added: dcplusplus/trunk/help/settings_tabs.html =================================================================== --- dcplusplus/trunk/help/settings_tabs.html (rev 0) +++ dcplusplus/trunk/help/settings_tabs.html 2006-12-13 20:39:44 UTC (rev 688) @@ -0,0 +1,44 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> + <title>Tabs</title> + <meta content="text/html; charset=us-ascii" http-equiv="content-type"> + <link href="office11.css" rel="stylesheet" type="text/css"> +</head> +<body> +<h1>Tab bolding on contents change</h1> +<dl style="margin-left: 40px;"> + <dt>Finished Downloads</dt> + <dd>When a download completes, the Finished +Downloads tab will turn bold if this option is selected.</dd> + <dt>Finished Uploads</dt> + <dd>When a upload completes, the Finished +Uploads tab will turn bold if this option is selected.</dd> + <dt>Download Queue</dt> + <dd>This option controls whether or not the Download Queue's tab will +highlight itself when a queue item changes state or finishes.</dd> + <dt>Hub</dt> + <dd>When a chat message appears in a hub that's +not focused the tab will become bold if you have this option selected.</dd> +<dt>Private message</dt> + <dd>When a private message appears that's +not focused the tab will become bold if you have this option selected.</dd> +<dt>Search</dt> + <dd>If more search result appear in an open search window that's +not focused the tab will become bold if you have this option selected.</dd> +<dt>Waiting users</dt> + <dd>If a user or an item is added or removed while the tab is not +focused, the tab will become bold if you have this option selected.</dd> +<dt>System log</dt> + <dd>If an system log entry is added while the tab is not focused, the tab will become bold if you have this option selected.</dd> +</dl> +<h2>Options</h2> +<dl style="margin-left: 40px;"> + <dt>Max Tab Rows</dt> + <dd>The maximum number of rows of tabs that DC++ will make. Any +tabs that do not fit will be accessible through the chevron at the +right of the tab control. (default: 2)</dd> +</body> +</html> + + Modified: dcplusplus/trunk/yassl/README =================================================================== --- dcplusplus/trunk/yassl/README 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/README 2006-12-13 20:39:44 UTC (rev 688) @@ -1,7 +1,59 @@ -yaSSL Release notes, version 1.4.0 (08/13/06) +yaSSL Release notes, version 1.5.0 (11/09/06) + This release of yaSSL contains bug fixes, portability enhancements, + and full TLS 1.1 support. Use the functions: + SSL_METHOD *TLSv1_1_server_method(void); + SSL_METHOD *TLSv1_1_client_method(void); + + or the SSLv23 versions (even though yaSSL doesn't support SSL 2.0 the v23 + means to pick the highest of SSL 3.0, TLS 1.0, or TLS 1.1. + + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0. + + + +****************yaSSL Release notes, version 1.4.5 (10/15/06) + + This release of yaSSL contains bug fixes, portability enhancements, + zlib compression support, removal of assembly instructions at runtime if + not supported, and initial TLS 1.1 support. + + + Compression Notes: yaSSL uses zlib for compression and the compression + should only be used if yaSSL is at both ends because the implementation + details aren't yet standard. If you'd like to turn compression on use + the SSL_set_compression() function on the client before calling + SSL_connect(). If both the client and server were built with zlib support + then the connection will use compression. If the client isn't built with + support then SSL_set_compression() will return an error (-1). + + To build yaSSL with zlib support on Unix simply have zlib support on your + system and configure will find it if it's in the standard locations. If + it's somewhere else use the option ./configure --with-zlib=DIR. If you'd + like to disable compression support in yaSSL use ./configure --without-zlib. + + To build yaSSL with zlib support on Windows: + + 1) download zlib from http://www.zlib.net/ + 2) follow the instructions in zlib from projects/visualc6/README.txt + for how to add the zlib project into the yaSSL workspace noting that + you'll need to add configuration support for "Win32 Debug" and + "Win32 Release" in note 3 under "To use:". + 3) define HAVE_LIBZ when building yaSSL + + +See normal build instructions below under 1.0.6. +See libcurl build instructions below under 1.3.0. + + +********************yaSSL Release notes, version 1.4.0 (08/13/06) + + + This release of yaSSL contains bug fixes, portability enhancements, nonblocking connect and accept, better OpenSSL error mapping, and certificate caching for session resumption. @@ -122,19 +174,7 @@ run Debug\testsuite.exe from yaSSL-Home\testsuite to test the build ---To enable ia32 assembly for TaoCrypt ciphers and message digests - On MSVC this is always on - - On GCC **, use ./configure --enable-ia32-asm - - ** This isn't on by default because of the use of intel syntax and the - problem that olders versions of gas have with some addressing statements. - If you enable this and get assemler errors during compilation or can't - pass the TaoCrypt tests, please send to...@ya... a message and disable - this option in the meantime. - - ***************** yaSSL Release notes, version 1.0.5 This release of yaSSL contains minor bug fixes, portability enhancements, Modified: dcplusplus/trunk/yassl/certs/taoCert.txt =================================================================== --- dcplusplus/trunk/yassl/certs/taoCert.txt 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/certs/taoCert.txt 2006-12-13 20:39:44 UTC (rev 688) @@ -47,4 +47,11 @@ b) openssl rsa -in key.pem -outform DER -out key.der +**** To encrypt rsa key already in pem ********** +a) openssl rsa <server-key.pem.bak -des >server-keyEnc.pem + +note location of des + + + Modified: dcplusplus/trunk/yassl/include/buffer.hpp =================================================================== --- dcplusplus/trunk/yassl/include/buffer.hpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/include/buffer.hpp 2006-12-13 20:39:44 UTC (rev 688) @@ -34,9 +34,12 @@ #include <assert.h> // assert #include "yassl_types.hpp" // ysDelete #include "memory.hpp" // mySTL::auto_ptr -#include "algorithm.hpp" // mySTL::swap +#include STL_ALGORITHM_FILE +namespace STL = STL_NAMESPACE; + + #ifdef _MSC_VER // disable truncated debug symbols #pragma warning(disable:4786) @@ -199,7 +202,7 @@ void operator()(T*& p) const { T* tmp = 0; - mySTL::swap(tmp, p); + STL::swap(tmp, p); checked_delete(tmp); } }; Modified: dcplusplus/trunk/yassl/include/cert_wrapper.hpp =================================================================== --- dcplusplus/trunk/yassl/include/cert_wrapper.hpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/include/cert_wrapper.hpp 2006-12-13 20:39:44 UTC (rev 688) @@ -41,9 +41,13 @@ #include "yassl_types.hpp" // SignatureAlgorithm #include "buffer.hpp" // input_buffer #include "asn.hpp" // SignerList -#include "list.hpp" // mySTL::list -#include "algorithm.hpp" // mySTL::for_each +#include STL_LIST_FILE +#include STL_ALGORITHM_FILE + +namespace STL = STL_NAMESPACE; + + namespace yaSSL { typedef unsigned char opaque; @@ -72,7 +76,7 @@ // Certificate Manager keeps a list of the cert chain and public key class CertManager { - typedef mySTL::list<x509*> CertList; + typedef STL::list<x509*> CertList; CertList list_; // self input_buffer privateKey_; Modified: dcplusplus/trunk/yassl/include/crypto_wrapper.hpp =================================================================== --- dcplusplus/trunk/yassl/include/crypto_wrapper.hpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/include/crypto_wrapper.hpp 2006-12-13 20:39:44 UTC (rev 688) @@ -416,9 +416,19 @@ class x509; -x509* PemToDer(FILE*, CertType); +struct EncryptedInfo { + enum { IV_SZ = 32, NAME_SZ = 80 }; + char name[NAME_SZ]; // max one line + byte iv[IV_SZ]; // in base16 rep + uint ivSz; + bool set; + EncryptedInfo() : ivSz(0), set(false) {} +}; +x509* PemToDer(FILE*, CertType, EncryptedInfo* info = 0); + + } // naemspace #endif // yaSSL_CRYPTO_WRAPPER_HPP Modified: dcplusplus/trunk/yassl/include/factory.hpp =================================================================== --- dcplusplus/trunk/yassl/include/factory.hpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/include/factory.hpp 2006-12-13 20:39:44 UTC (rev 688) @@ -35,19 +35,16 @@ #ifndef yaSSL_FACTORY_HPP #define yaSSL_FACTORY_HPP -#include "vector.hpp" -#include "pair.hpp" +#include STL_VECTOR_FILE +#include STL_PAIR_FILE +namespace STL = STL_NAMESPACE; -// VC60 workaround: it doesn't allow typename in some places -#if defined(_MSC_VER) && (_MSC_VER < 1300) - #define CPP_TYPENAME -#else - #define CPP_TYPENAME typename -#endif + + namespace yaSSL { @@ -58,8 +55,8 @@ typename ProductCreator = AbstractProduct* (*)() > class Factory { - typedef mySTL::pair<IdentifierType, ProductCreator> CallBack; - typedef mySTL::vector<CallBack> CallBackVector; + typedef STL::pair<IdentifierType, ProductCreator> CallBack; + typedef STL::vector<CallBack> CallBackVector; CallBackVector callbacks_; public: @@ -79,14 +76,16 @@ // register callback void Register(const IdentifierType& id, ProductCreator pc) { - callbacks_.push_back(mySTL::make_pair(id, pc)); + callbacks_.push_back(STL::make_pair(id, pc)); } // THE Creator, returns a new object of the proper type or 0 AbstractProduct* CreateObject(const IdentifierType& id) const { - const CallBack* first = callbacks_.begin(); - const CallBack* last = callbacks_.end(); + typedef typename STL::vector<CallBack>::const_iterator cIter; + + cIter first = callbacks_.begin(); + cIter last = callbacks_.end(); while (first != last) { if (first->first == id) Modified: dcplusplus/trunk/yassl/include/openssl/ssl.h =================================================================== --- dcplusplus/trunk/yassl/include/openssl/ssl.h 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/include/openssl/ssl.h 2006-12-13 20:39:44 UTC (rev 688) @@ -41,7 +41,7 @@ #include "rsa.h" -#define YASSL_VERSION "1.4.0" +#define YASSL_VERSION "1.5.0" #if defined(__cplusplus) @@ -228,6 +228,7 @@ int SSL_set_session(SSL *ssl, SSL_SESSION *session); SSL_SESSION* SSL_get_session(SSL* ssl); long SSL_SESSION_set_timeout(SSL_SESSION*, long); +long SSL_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode); X509* SSL_get_peer_certificate(SSL*); long SSL_get_verify_result(SSL*); @@ -359,8 +360,10 @@ SSL_METHOD *SSLv3_method(void); SSL_METHOD *SSLv3_server_method(void); SSL_METHOD *SSLv3_client_method(void); -SSL_METHOD *TLSv1_server_method(void); +SSL_METHOD *TLSv1_server_method(void); SSL_METHOD *TLSv1_client_method(void); +SSL_METHOD *TLSv1_1_server_method(void); +SSL_METHOD *TLSv1_1_client_method(void); SSL_METHOD *SSLv23_server_method(void); int SSL_CTX_use_certificate_file(SSL_CTX*, const char*, int); @@ -531,8 +534,12 @@ #define SSL_DEFAULT_CIPHER_LIST "" /* default all */ +/* yaSSL adds */ +int SSL_set_compression(SSL*); /* turn on yaSSL zlib compression */ + + #if defined(__cplusplus) && !defined(YASSL_MYSQL_COMPATIBLE) } /* namespace */ } /* extern "C" */ Modified: dcplusplus/trunk/yassl/include/socket_wrapper.hpp =================================================================== --- dcplusplus/trunk/yassl/include/socket_wrapper.hpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/include/socket_wrapper.hpp 2006-12-13 20:39:44 UTC (rev 688) @@ -70,8 +70,8 @@ // Wraps Windows Sockets and BSD Sockets class Socket { socket_t socket_; // underlying socket descriptor - bool wouldBlock_; // for non-blocking data - bool blocking_; // is option set + bool wouldBlock_; // if non-blocking data, for last read + bool nonBlocking_; // is option set public: explicit Socket(socket_t s = INVALID_SOCKET); ~Socket(); @@ -85,7 +85,7 @@ bool wait(); bool WouldBlock() const; - bool IsBlocking() const; + bool IsNonBlocking() const; void closeSocket(); void shutDown(int how = SD_SEND); Modified: dcplusplus/trunk/yassl/include/yassl_error.hpp =================================================================== --- dcplusplus/trunk/yassl/include/yassl_error.hpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/include/yassl_error.hpp 2006-12-13 20:39:44 UTC (rev 688) @@ -54,8 +54,15 @@ verify_error = 112, send_error = 113, receive_error = 114, - certificate_error = 115 + certificate_error = 115, + privateKey_error = 116, + badVersion_error = 117, + compress_error = 118, + decompress_error = 119, + pms_version_error = 120 + // !!!! add error message to .cpp !!!! + // 1000+ from TaoCrypt error.hpp }; Modified: dcplusplus/trunk/yassl/include/yassl_imp.hpp =================================================================== --- dcplusplus/trunk/yassl/include/yassl_imp.hpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/include/yassl_imp.hpp 2006-12-13 20:39:44 UTC (rev 688) @@ -39,9 +39,12 @@ #include "yassl_types.hpp" #include "factory.hpp" -#include "list.hpp" // mySTL::list +#include STL_LIST_FILE +namespace STL = STL_NAMESPACE; + + namespace yaSSL { @@ -129,7 +132,6 @@ public: Data(); Data(uint16 len, opaque* b); - Data(uint16 len, const opaque* w); friend output_buffer& operator<<(output_buffer&, const Data&); @@ -138,9 +140,9 @@ ContentType get_type() const; uint16 get_length() const; - const opaque* get_buffer() const; void set_length(uint16 l); opaque* set_buffer(); + void SetData(uint16, const opaque*); void Process(input_buffer&, SSL&); private: Data(const Data&); // hide copy @@ -229,11 +231,11 @@ void Process(input_buffer&, SSL&); const opaque* get_random() const; - friend void buildClientHello(SSL&, ClientHello&, CompressionMethod); + friend void buildClientHello(SSL&, ClientHello&); friend void ProcessOldClientHello(input_buffer& input, SSL& ssl); ClientHello(); - explicit ClientHello(ProtocolVersion pv); + ClientHello(ProtocolVersion pv, bool useCompression); private: ClientHello(const ClientHello&); // hide copy ClientHello& operator=(const ClientHello&); // and assign @@ -250,7 +252,7 @@ opaque cipher_suite_[SUITE_LEN]; CompressionMethod compression_method_; public: - explicit ServerHello(ProtocolVersion pv); + ServerHello(ProtocolVersion pv, bool useCompression); ServerHello(); friend input_buffer& operator>>(input_buffer&, ServerHello&); @@ -427,7 +429,7 @@ class CertificateRequest : public HandShakeBase { ClientCertificateType certificate_types_[CERT_TYPES]; int typeTotal_; - mySTL::list<DistinguishedName> certificate_authorities_; + STL::list<DistinguishedName> certificate_authorities_; public: CertificateRequest(); ~CertificateRequest(); @@ -626,8 +628,11 @@ bool send_server_key_; // server key exchange? bool master_clean_; // master secret clean? bool TLS_; // TLSv1 or greater + bool TLSv1_1_; // TLSv1.1 or greater bool sessionID_Set_; // do we have a session - ProtocolVersion version_; + bool compression_; // zlib compression? + ProtocolVersion version_; // negotiated version + ProtocolVersion chVersion_; // client hello version RandomPool& random_; Connection(ProtocolVersion v, RandomPool& ran); @@ -637,6 +642,7 @@ void CleanPreMaster(); void CleanMaster(); void TurnOffTLS(); + void TurnOffTLS1_1(); private: Connection(const Connection&); // hide copy Connection& operator=(const Connection&); // and assign Modified: dcplusplus/trunk/yassl/include/yassl_int.hpp =================================================================== --- dcplusplus/trunk/yassl/include/yassl_int.hpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/include/yassl_int.hpp 2006-12-13 20:39:44 UTC (rev 688) @@ -40,11 +40,21 @@ #include "lock.hpp" #include "openssl/ssl.h" // ASN1_STRING and DH +// Check if _POSIX_THREADS should be forced +#if !defined(_POSIX_THREADS) && (defined(__NETWARE__) || defined(__hpux)) +// HPUX does not define _POSIX_THREADS as it's not _fully_ implemented +// Netware supports pthreads but does not announce it +#define _POSIX_THREADS +#endif + #ifdef _POSIX_THREADS #include <pthread.h> #endif +namespace STL = STL_NAMESPACE; + + namespace yaSSL { @@ -262,7 +272,7 @@ // holds all sessions class Sessions { - mySTL::list<SSL_SESSION*> list_; + STL::list<SSL_SESSION*> list_; RandomPool random_; // for session cleaning Mutex mutex_; // no-op for single threaded @@ -296,8 +306,8 @@ // holds all errors class Errors { - mySTL::list<ThreadError> list_; - Mutex mutex_; + STL::list<ThreadError> list_; + Mutex mutex_; Errors() {} // only GetErrors can create public: @@ -326,8 +336,10 @@ bool verifyPeer_; // request or send certificate bool verifyNone_; // whether to verify certificate bool failNoCert_; + bool multipleProtocol_; // for SSLv23 compatibility public: - explicit SSL_METHOD(ConnectionEnd ce, ProtocolVersion pv); + SSL_METHOD(ConnectionEnd ce, ProtocolVersion pv, + bool multipleProtocol = false); ProtocolVersion getVersion() const; ConnectionEnd getSide() const; @@ -339,6 +351,7 @@ bool verifyPeer() const; bool verifyNone() const; bool failNoCert() const; + bool multipleProtocol() const; private: SSL_METHOD(const SSL_METHOD&); // hide copy SSL_METHOD& operator=(const SSL_METHOD&); // and assign @@ -408,32 +421,41 @@ // the SSL context class SSL_CTX { public: - typedef mySTL::list<x509*> CertList; + typedef STL::list<x509*> CertList; private: - SSL_METHOD* method_; - x509* certificate_; - x509* privateKey_; - CertList caList_; - Ciphers ciphers_; - DH_Parms dhParms_; - Stats stats_; - Mutex mutex_; // for Stats + SSL_METHOD* method_; + x509* certificate_; + x509* privateKey_; + CertList caList_; + Ciphers ciphers_; + DH_Parms dhParms_; + pem_password_cb passwordCb_; + void* userData_; + bool sessionCacheOff_; + Stats stats_; + Mutex mutex_; // for Stats public: explicit SSL_CTX(SSL_METHOD* meth); ~SSL_CTX(); - const x509* getCert() const; - const x509* getKey() const; - const SSL_METHOD* getMethod() const; - const Ciphers& GetCiphers() const; - const DH_Parms& GetDH_Parms() const; - const Stats& GetStats() const; + const x509* getCert() const; + const x509* getKey() const; + const SSL_METHOD* getMethod() const; + const Ciphers& GetCiphers() const; + const DH_Parms& GetDH_Parms() const; + const Stats& GetStats() const; + pem_password_cb GetPasswordCb() const; + void* GetUserData() const; + bool GetSessionCacheOff() const; void setVerifyPeer(); void setVerifyNone(); void setFailNoCert(); bool SetCipherList(const char*); bool SetDH(const DH&); + void SetPasswordCb(pem_password_cb cb); + void SetUserData(void*); + void SetSessionCacheOff(); void IncrementStats(StatsField); void AddCA(x509* ca); @@ -508,8 +530,8 @@ // holds input and output buffers class Buffers { public: - typedef mySTL::list<input_buffer*> inputList; - typedef mySTL::list<output_buffer*> outputList; + typedef STL::list<input_buffer*> inputList; + typedef STL::list<output_buffer*> outputList; private: inputList dataList_; // list of users app data / handshake outputList handShakeList_; // buffered handshake msgs @@ -580,6 +602,8 @@ const sslFactory& getFactory() const; const Socket& getSocket() const; YasslError GetError() const; + bool GetMultiProtocol() const; + bool CompressionOn() const; Crypto& useCrypto(); Security& useSecurity(); @@ -597,9 +621,12 @@ void set_preMaster(const opaque*, uint); void set_masterSecret(const opaque*); void SetError(YasslError); + int SetCompression(); + void UnSetCompression(); // helpers bool isTLS() const; + bool isTLSv1_1() const; void order_error(); void makeMasterSecret(); void makeTLSMasterSecret(); @@ -633,7 +660,11 @@ }; +// compression +int Compress(const byte*, int, input_buffer&); +int DeCompress(input_buffer&, int, input_buffer&); + // conversion functions void c32to24(uint32, uint24&); void c24to32(const uint24, uint32&); Modified: dcplusplus/trunk/yassl/include/yassl_types.hpp =================================================================== --- dcplusplus/trunk/yassl/include/yassl_types.hpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/include/yassl_types.hpp 2006-12-13 20:39:44 UTC (rev 688) @@ -38,7 +38,9 @@ namespace yaSSL { +#define YASSL_LIB + #ifdef YASSL_PURE_C // library allocation @@ -76,7 +78,7 @@ ::operator delete[](ptr, yaSSL::ys); } - #define NEW_YS new (ys) + #define NEW_YS new (yaSSL::ys) // to resolve compiler generated operator delete on base classes with // virtual destructors (when on stack), make sure doesn't get called @@ -88,7 +90,6 @@ #else // YASSL_PURE_C - template<typename T> void ysDelete(T* ptr) { @@ -121,6 +122,39 @@ typedef unsigned int uint; + +#ifdef USE_SYS_STL + // use system STL + #define STL_VECTOR_FILE <vector> + #define STL_LIST_FILE <list> + #define STL_ALGORITHM_FILE <algorithm> + #define STL_MEMORY_FILE <memory> + #define STL_PAIR_FILE <utility> + + #define STL_NAMESPACE std +#else + // use mySTL + #define STL_VECTOR_FILE "vector.hpp" + #define STL_LIST_FILE "list.hpp" + #define STL_ALGORITHM_FILE "algorithm.hpp" + #define STL_MEMORY_FILE "memory.hpp" + #define STL_PAIR_FILE "pair.hpp" + + #define STL_NAMESPACE mySTL +#endif + + +#ifdef min + #undef min +#endif + +template <typename T> +T min(T a, T b) +{ + return a < b ? a : b; +} + + // all length constants in bytes const int ID_LEN = 32; // session id length @@ -163,6 +197,7 @@ const int DES_IV_SZ = DES_BLOCK; // Init Vector length for DES const int RC4_KEY_SZ = 16; // RC4 Key length const int AES_128_KEY_SZ = 16; // AES 128bit Key length +const int AES_192_KEY_SZ = 24; // AES 192bit Key length const int AES_256_KEY_SZ = 32; // AES 256bit Key length const int AES_BLOCK_SZ = 16; // AES 128bit block size, rfc 3268 const int AES_IV_SZ = AES_BLOCK_SZ; // AES Init Vector length @@ -175,6 +210,7 @@ const int SEED_LEN = RAN_LEN * 2; // TLS seed, client + server random const int DEFAULT_TIMEOUT = 500; // Default Session timeout in seconds const int MAX_RECORD_SIZE = 16384; // 2^14, max size by standard +const int COMPRESS_EXTRA = 1024; // extra compression possible addition typedef uint8 Cipher; // first byte is always 0x00 for SSLv3 & TLS @@ -186,7 +222,7 @@ typedef bool IsExportable; -enum CompressionMethod { no_compression = 0 }; +enum CompressionMethod { no_compression = 0, zlib = 221 }; enum CipherType { stream, block }; Added: dcplusplus/trunk/yassl/mySTL/memory_array.hpp =================================================================== --- dcplusplus/trunk/yassl/mySTL/memory_array.hpp (rev 0) +++ dcplusplus/trunk/yassl/mySTL/memory_array.hpp 2006-12-13 20:39:44 UTC (rev 688) @@ -0,0 +1,142 @@ +/* mySTL memory_array.hpp + * + * Copyright (C) 2003 Sawtooth Consulting Ltd. + * + * This file is part of yaSSL. + * + * yaSSL is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * There are special exceptions to the terms and conditions of the GPL as it + * is applied to yaSSL. View the full text of the exception in the file + * FLOSS-EXCEPTIONS in the directory of this software distribution. + * + * yaSSL is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA + */ + + +/* mySTL memory_arry implements auto_array + * + */ + +#ifndef mySTL_MEMORY_ARRAY_HPP +#define mySTL_MEMORY_ARRAY_HPP + + +#ifdef _MSC_VER + // disable operator-> warning for builtins + #pragma warning(disable:4284) +#endif + + +namespace mySTL { + + +template<typename T> +struct auto_array_ref { + T* ptr_; + explicit auto_array_ref(T* p) : ptr_(p) {} +}; + + +template<typename T> +class auto_array { + T* ptr_; + + void Destroy() + { + #ifdef YASSL_LIB + yaSSL::ysArrayDelete(ptr_); + #else + TaoCrypt::tcArrayDelete(ptr_); + #endif + } +public: + explicit auto_array(T* p = 0) : ptr_(p) {} + + ~auto_array() + { + Destroy(); + } + + + auto_array(auto_array& other) : ptr_(other.release()) {} + + auto_array& operator=(auto_array& that) + { + if (this != &that) { + Destroy(); + ptr_ = that.release(); + } + return *this; + } + + + T* operator->() const + { + return ptr_; + } + + T& operator*() const + { + return *ptr_; + } + + T* get() const + { + return ptr_; + } + + T* release() + { + T* tmp = ptr_; + ptr_ = 0; + return tmp; + } + + void reset(T* p = 0) + { + if (ptr_ != p) { + Destroy(); + ptr_ = p; + } + } + + // auto_array_ref conversions + auto_array(auto_array_ref<T> ref) : ptr_(ref.ptr_) {} + + auto_array& operator=(auto_array_ref<T> ref) + { + if (this->ptr_ != ref.ptr_) { + Destroy(); + ptr_ = ref.ptr_; + } + return *this; + } + + template<typename T2> + operator auto_array<T2>() + { + return auto_array<T2>(this->release()); + } + + template<typename T2> + operator auto_array_ref<T2>() + { + return auto_array_ref<T2>(this->release()); + } +}; + + +} // namespace mySTL + +#endif // mySTL_MEMORY_ARRAY_HPP Modified: dcplusplus/trunk/yassl/src/cert_wrapper.cpp =================================================================== --- dcplusplus/trunk/yassl/src/cert_wrapper.cpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/src/cert_wrapper.cpp 2006-12-13 20:39:44 UTC (rev 688) @@ -63,8 +63,8 @@ void x509::Swap(x509& that) { - mySTL::swap(length_, that.length_); - mySTL::swap(buffer_, that.buffer_); + STL::swap(length_, that.length_); + STL::swap(buffer_, that.buffer_); } @@ -105,11 +105,11 @@ { ysDelete(peerX509_); - mySTL::for_each(signers_.begin(), signers_.end(), del_ptr_zero()) ; + STL::for_each(signers_.begin(), signers_.end(), del_ptr_zero()) ; - mySTL::for_each(peerList_.begin(), peerList_.end(), del_ptr_zero()) ; + STL::for_each(peerList_.begin(), peerList_.end(), del_ptr_zero()) ; - mySTL::for_each(list_.begin(), list_.end(), del_ptr_zero()) ; + STL::for_each(list_.begin(), list_.end(), del_ptr_zero()) ; } @@ -242,7 +242,7 @@ // Validate the peer's certificate list, from root to peer (last to first) int CertManager::Validate() { - CertList::iterator last = peerList_.rbegin(); // fix this + CertList::reverse_iterator last = peerList_.rbegin(); int count = peerList_.size(); while ( count > 1 ) { @@ -255,7 +255,7 @@ const TaoCrypt::PublicKey& key = cert.GetPublicKey(); signers_.push_back(NEW_YS TaoCrypt::Signer(key.GetKey(), key.size(), cert.GetCommonName(), cert.GetHash())); - --last; + ++last; --count; } Modified: dcplusplus/trunk/yassl/src/crypto_wrapper.cpp =================================================================== --- dcplusplus/trunk/yassl/src/crypto_wrapper.cpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/src/crypto_wrapper.cpp 2006-12-13 20:39:44 UTC (rev 688) @@ -908,7 +908,7 @@ // convert PEM file to DER x509 type -x509* PemToDer(FILE* file, CertType type) +x509* PemToDer(FILE* file, CertType type, EncryptedInfo* info) { using namespace TaoCrypt; @@ -935,6 +935,37 @@ break; } + // remove encrypted header if there + if (fgets(line, sizeof(line), file)) { + char encHeader[] = "Proc-Type"; + if (strncmp(encHeader, line, strlen(encHeader)) == 0 && + fgets(line,sizeof(line), file)) { + + char* start = strstr(line, "DES"); + char* finish = strstr(line, ","); + if (!start) + start = strstr(line, "AES"); + + if (!info) return 0; + + if ( start && finish && (start < finish)) { + memcpy(info->name, start, finish - start); + info->name[finish - start] = 0; + memcpy(info->iv, finish + 1, sizeof(info->iv)); + + char* newline = strstr(line, "\r"); + if (!newline) newline = strstr(line, "\n"); + if (newline && (newline > finish)) { + info->ivSz = newline - (finish + 1); + info->set = true; + } + } + fgets(line,sizeof(line), file); // get blank line + begin = ftell(file); + } + + } + while(fgets(line, sizeof(line), file)) if (strncmp(footer, line, strlen(footer)) == 0) { foundEnd = true; @@ -956,7 +987,7 @@ Base64Decoder b64Dec(der); uint sz = der.size(); - mySTL::auto_ptr<x509> x(NEW_YS x509(sz), ysDelete); + STL_NAMESPACE::auto_ptr<x509> x(NEW_YS x509(sz)); memcpy(x->use_buffer(), der.get_buffer(), sz); return x.release(); Modified: dcplusplus/trunk/yassl/src/handshake.cpp =================================================================== --- dcplusplus/trunk/yassl/src/handshake.cpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/src/handshake.cpp 2006-12-13 20:39:44 UTC (rev 688) @@ -37,13 +37,14 @@ namespace yaSSL { -using mySTL::min; // Build a client hello message from cipher suites and compression method -void buildClientHello(SSL& ssl, ClientHello& hello, - CompressionMethod compression = no_compression) +void buildClientHello(SSL& ssl, ClientHello& hello) { + // store for pre master secret + ssl.useSecurity().use_connection().chVersion_ = hello.client_version_; + ssl.getCrypto().get_random().Fill(hello.random_, RAN_LEN); if (ssl.getSecurity().get_resuming()) { hello.id_len_ = ID_LEN; @@ -55,8 +56,7 @@ hello.suite_len_ = ssl.getSecurity().get_parms().suites_size_; memcpy(hello.cipher_suites_, ssl.getSecurity().get_parms().suites_, hello.suite_len_); - hello.comp_len_ = 1; - hello.compression_methods_ = compression; + hello.comp_len_ = 1; hello.set_length(sizeof(ProtocolVersion) + RAN_LEN + @@ -84,7 +84,7 @@ hello.cipher_suite_[0] = ssl.getSecurity().get_parms().suite_[0]; hello.cipher_suite_[1] = ssl.getSecurity().get_parms().suite_[1]; - hello.compression_method_ = no_compression; + hello.compression_method_ = hello.compression_method_; hello.set_length(sizeof(ProtocolVersion) + RAN_LEN + ID_LEN + sizeof(hello.id_len_) + SUITE_LEN + SIZEOF_ENUM); @@ -152,12 +152,18 @@ // add handshake from buffer into md5 and sha hashes, exclude record header -void hashHandShake(SSL& ssl, const output_buffer& output) +void hashHandShake(SSL& ssl, const output_buffer& output, bool removeIV = false) { uint sz = output.get_size() - RECORD_HEADER; const opaque* buffer = output.get_buffer() + RECORD_HEADER; + if (removeIV) { // TLSv1_1 IV + uint blockSz = ssl.getCrypto().get_cipher().get_blockSize(); + sz -= blockSz; + buffer += blockSz; + } + ssl.useHashes().use_MD5().update(buffer, sz); ssl.useHashes().use_SHA().update(buffer, sz); } @@ -230,9 +236,21 @@ ssl.useCrypto().use_cipher().decrypt(plain.get_buffer(), cipher, sz); memcpy(cipher, plain.get_buffer(), sz); ssl.useSecurity().use_parms().encrypt_size_ = sz; + + if (ssl.isTLSv1_1()) // IV + input.set_current(input.get_current() + + ssl.getCrypto().get_cipher().get_blockSize()); } +// output operator for input_buffer +output_buffer& operator<<(output_buffer& output, const input_buffer& input) +{ + output.write(input.get_buffer(), input.get_size()); + return output; +} + + // write headers, handshake hash, mac, pad, and encrypt void cipherFinished(SSL& ssl, Finished& fin, output_buffer& output) { @@ -240,9 +258,12 @@ uint finishedSz = ssl.isTLS() ? TLS_FINISHED_SZ : FINISHED_SZ; uint sz = RECORD_HEADER + HANDSHAKE_HEADER + finishedSz + digestSz; uint pad = 0; + uint blockSz = ssl.getCrypto().get_cipher().get_blockSize(); + if (ssl.getSecurity().get_parms().cipher_type_ == block) { + if (ssl.isTLSv1_1()) + sz += blockSz; // IV sz += 1; // pad byte - uint blockSz = ssl.getCrypto().get_cipher().get_blockSize(); pad = (sz - RECORD_HEADER) % blockSz; pad = blockSz - pad; sz += pad; @@ -253,14 +274,21 @@ buildHeaders(ssl, hsHeader, rlHeader, fin); rlHeader.length_ = sz - RECORD_HEADER; // record header includes mac // and pad, hanshake doesn't + input_buffer iv; + if (ssl.isTLSv1_1() && ssl.getSecurity().get_parms().cipher_type_== block){ + iv.allocate(blockSz); + ssl.getCrypto().get_random().Fill(iv.get_buffer(), blockSz); + iv.add_size(blockSz); + } + uint ivSz = iv.get_size(); output.allocate(sz); - output << rlHeader << hsHeader << fin; + output << rlHeader << iv << hsHeader << fin; - hashHandShake(ssl, output); + hashHandShake(ssl, output, ssl.isTLSv1_1() ? true : false); opaque digest[SHA_LEN]; // max size if (ssl.isTLS()) - TLS_hmac(ssl, digest, output.get_buffer() + RECORD_HEADER, - output.get_size() - RECORD_HEADER, handshake); + TLS_hmac(ssl, digest, output.get_buffer() + RECORD_HEADER + ivSz, + output.get_size() - RECORD_HEADER - ivSz, handshake); else hmac(ssl, digest, output.get_buffer() + RECORD_HEADER, output.get_size() - RECORD_HEADER, handshake); @@ -283,9 +311,12 @@ uint digestSz = ssl.getCrypto().get_digest().get_digestSize(); uint sz = RECORD_HEADER + msg.get_length() + digestSz; uint pad = 0; + uint blockSz = ssl.getCrypto().get_cipher().get_blockSize(); + if (ssl.getSecurity().get_parms().cipher_type_ == block) { + if (ssl.isTLSv1_1()) // IV + sz += blockSz; sz += 1; // pad byte - uint blockSz = ssl.getCrypto().get_cipher().get_blockSize(); pad = (sz - RECORD_HEADER) % blockSz; pad = blockSz - pad; sz += pad; @@ -295,13 +326,21 @@ buildHeader(ssl, rlHeader, msg); rlHeader.length_ = sz - RECORD_HEADER; // record header includes mac // and pad, hanshake doesn't + input_buffer iv; + if (ssl.isTLSv1_1() && ssl.getSecurity().get_parms().cipher_type_== block){ + iv.allocate(blockSz); + ssl.getCrypto().get_random().Fill(iv.get_buffer(), blockSz); + iv.add_size(blockSz); + } + + uint ivSz = iv.get_size(); output.allocate(sz); - output << rlHeader << msg; + output << rlHeader << iv << msg; opaque digest[SHA_LEN]; // max size if (ssl.isTLS()) - TLS_hmac(ssl, digest, output.get_buffer() + RECORD_HEADER, - output.get_size() - RECORD_HEADER, msg.get_type()); + TLS_hmac(ssl, digest, output.get_buffer() + RECORD_HEADER + ivSz, + output.get_size() - RECORD_HEADER - ivSz, msg.get_type()); else hmac(ssl, digest, output.get_buffer() + RECORD_HEADER, output.get_size() - RECORD_HEADER, msg.get_type()); @@ -363,7 +402,7 @@ uint lastLen = result.get_capacity() % len; opaque previous[SHA_LEN]; // max size opaque current[SHA_LEN]; // max size - mySTL::auto_ptr<Digest> hmac(ysDelete); + STL_NAMESPACE::auto_ptr<Digest> hmac; if (lastLen) times += 1; @@ -457,6 +496,10 @@ // some clients still send sslv2 client hello void ProcessOldClientHello(input_buffer& input, SSL& ssl) { + if (input.get_remaining() < 2) { + ssl.SetError(bad_input); + return; + } byte b0 = input[AUTO]; byte b1 = input[AUTO]; @@ -582,7 +625,7 @@ void TLS_hmac(SSL& ssl, byte* digest, const byte* buffer, uint sz, ContentType content, bool verify) { - mySTL::auto_ptr<Digest> hmac(ysDelete); + STL_NAMESPACE::auto_ptr<Digest> hmac; opaque seq[SEQ_SZ] = { 0x00, 0x00, 0x00, 0x00 }; opaque length[LENGTH_SZ]; opaque inner[SIZEOF_ENUM + VERSION_SZ + LENGTH_SZ]; // type + version + len @@ -722,7 +765,8 @@ // each message in record, can be more than 1 if not encrypted if (ssl.getSecurity().get_parms().pending_ == false) // cipher on decrypt_message(ssl, buffer, hdr.length_); - mySTL::auto_ptr<Message> msg(mf.CreateObject(hdr.type_), ysDelete); + + STL_NAMESPACE::auto_ptr<Message> msg(mf.CreateObject(hdr.type_)); if (!msg.get()) { ssl.SetError(factory_error); return 0; @@ -745,13 +789,13 @@ if (DoProcessReply(ssl)) // didn't complete process - if (!ssl.getSocket().IsBlocking()) { - // keep trying now + if (!ssl.getSocket().IsNonBlocking()) { + // keep trying now, blocking ok while (!ssl.GetError()) if (DoProcessReply(ssl) == 0) break; } else - // user will have try again later + // user will have try again later, non blocking ssl.SetError(YasslError(SSL_ERROR_WANT_READ)); } @@ -762,7 +806,8 @@ ssl.verifyState(serverNull); if (ssl.GetError()) return; - ClientHello ch(ssl.getSecurity().get_connection().version_); + ClientHello ch(ssl.getSecurity().get_connection().version_, + ssl.getSecurity().get_connection().compression_); RecordLayerHeader rlHeader; HandShakeHeader hsHeader; output_buffer out; @@ -789,7 +834,7 @@ RecordLayerHeader rlHeader; HandShakeHeader hsHeader; - mySTL::auto_ptr<output_buffer> out(NEW_YS output_buffer, ysDelete); + STL_NAMESPACE::auto_ptr<output_buffer> out(NEW_YS output_buffer); buildHeaders(ssl, hsHeader, rlHeader, ck); buildOutput(*out.get(), rlHeader, hsHeader, ck); hashHandShake(ssl, *out.get()); @@ -810,7 +855,7 @@ RecordLayerHeader rlHeader; HandShakeHeader hsHeader; - mySTL::auto_ptr<output_buffer> out(NEW_YS output_buffer, ysDelete); + STL_NAMESPACE::auto_ptr<output_buffer> out(NEW_YS output_buffer); buildHeaders(ssl, hsHeader, rlHeader, sk); buildOutput(*out.get(), rlHeader, hsHeader, sk); hashHandShake(ssl, *out.get()); @@ -835,7 +880,7 @@ ChangeCipherSpec ccs; RecordLayerHeader rlHeader; buildHeader(ssl, rlHeader, ccs); - mySTL::auto_ptr<output_buffer> out(NEW_YS output_buffer, ysDelete); + STL_NAMESPACE::auto_ptr<output_buffer> out(NEW_YS output_buffer); buildOutput(*out.get(), rlHeader, ccs); if (buffer == buffered) @@ -852,7 +897,7 @@ Finished fin; buildFinished(ssl, fin, side == client_end ? client : server); - mySTL::auto_ptr<output_buffer> out(NEW_YS output_buffer, ysDelete); + STL_NAMESPACE::auto_ptr<output_buffer> out(NEW_YS output_buffer); cipherFinished(ssl, fin, *out.get()); // hashes handshake if (ssl.getSecurity().get_resuming()) { @@ -860,7 +905,8 @@ buildFinished(ssl, ssl.useHashes().use_verify(), client); // client } else { - GetSessions().add(ssl); // store session + if (!ssl.getSecurity().GetContext()->GetSessionCacheOff()) + GetSessions().add(ssl); // store session if (side == client_end) buildFinished(ssl, ssl.useHashes().use_verify(), server); // server } @@ -886,8 +932,21 @@ for (;;) { int len = min(sz - sent, MAX_RECORD_SIZE); output_buffer out; - const Data data(len, static_cast<const opaque*>(buffer) + sent); + input_buffer tmp; + Data data; + + if (ssl.CompressionOn()) { + if (Compress(static_cast<const opaque*>(buffer) + sent, len, + tmp) == -1) { + ssl.SetError(compress_error); + return -1; + } + data.SetData(tmp.get_size(), tmp.get_buffer()); + } + else + data.SetData(len, static_cast<const opaque*>(buffer) + sent); + buildMessage(ssl, out, data); ssl.Send(out.get_buffer(), out.get_size()); @@ -948,10 +1007,11 @@ ssl.verifyState(clientHelloComplete); if (ssl.GetError()) return; - ServerHello sh(ssl.getSecurity().get_connection().version_); + ServerHello sh(ssl.getSecurity().get_connection().version_, + ssl.getSecurity().get_connection().compression_); RecordLayerHeader rlHeader; HandShakeHeader hsHeader; - mySTL::auto_ptr<output_buffer> out(NEW_YS output_buffer, ysDelete); + STL_NAMESPACE::auto_ptr<output_buffer> out(NEW_YS output_buffer); buildServerHello(ssl, sh); ssl.set_random(sh.get_random(), server_end); @@ -974,7 +1034,7 @@ ServerHelloDone shd; RecordLayerHeader rlHeader; HandShakeHeader hsHeader; - mySTL::auto_ptr<output_buffer> out(NEW_YS output_buffer, ysDelete); + STL_NAMESPACE::auto_ptr<output_buffer> out(NEW_YS output_buffer); buildHeaders(ssl, hsHeader, rlHeader, shd); buildOutput(*out.get(), rlHeader, hsHeader, shd); @@ -995,7 +1055,7 @@ Certificate cert(ssl.getCrypto().get_certManager().get_cert()); RecordLayerHeader rlHeader; HandShakeHeader hsHeader; - mySTL::auto_ptr<output_buffer> out(NEW_YS output_buffer, ysDelete); + STL_NAMESPACE::auto_ptr<output_buffer> out(NEW_YS output_buffer); buildHeaders(ssl, hsHeader, rlHeader, cert); buildOutput(*out.get(), rlHeader, hsHeader, cert); @@ -1017,7 +1077,7 @@ request.Build(); RecordLayerHeader rlHeader; HandShakeHeader hsHeader; - mySTL::auto_ptr<output_buffer> out(NEW_YS output_buffer, ysDelete); + STL_NAMESPACE::auto_ptr<output_buffer> out(NEW_YS output_buffer); buildHeaders(ssl, hsHeader, rlHeader, request); buildOutput(*out.get(), rlHeader, hsHeader, request); @@ -1039,7 +1099,7 @@ verify.Build(ssl); RecordLayerHeader rlHeader; HandShakeHeader hsHeader; - mySTL::auto_ptr<output_buffer> out(NEW_YS output_buffer, ysDelete); + STL_NAMESPACE::auto_ptr<output_buffer> out(NEW_YS output_buffer); buildHeaders(ssl, hsHeader, rlHeader, verify); buildOutput(*out.get(), rlHeader, hsHeader, verify); Modified: dcplusplus/trunk/yassl/src/socket_wrapper.cpp =================================================================== --- dcplusplus/trunk/yassl/src/socket_wrapper.cpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/src/socket_wrapper.cpp 2006-12-13 20:39:44 UTC (rev 688) @@ -44,7 +44,7 @@ #include <fcntl.h> #endif // _WIN32 -#if defined(__sun) || defined(__SCO_VERSION__) +#if defined(__sun) || defined(__SCO_VERSION__) || defined(__NETWARE__) #include <sys/filio.h> #endif @@ -63,7 +63,7 @@ Socket::Socket(socket_t s) - : socket_(s), wouldBlock_(false), blocking_(false) + : socket_(s), wouldBlock_(false), nonBlocking_(false) {} @@ -148,8 +148,8 @@ if (recvd == -1) { if (get_lastError() == SOCKET_EWOULDBLOCK || get_lastError() == SOCKET_EAGAIN) { - wouldBlock_ = true; - blocking_ = true; // socket can block, only way to tell for win32 + wouldBlock_ = true; // would have blocked this time only + nonBlocking_ = true; // socket nonblocking, win32 only way to tell return 0; } } @@ -191,9 +191,9 @@ } -bool Socket::IsBlocking() const +bool Socket::IsNonBlocking() const { - return blocking_; + return nonBlocking_; } Modified: dcplusplus/trunk/yassl/src/ssl.cpp =================================================================== --- dcplusplus/trunk/yassl/src/ssl.cpp 2006-12-13 17:10:06 UTC (rev 687) +++ dcplusplus/trunk/yassl/src/ssl.cpp 2006-12-13 20:39:44 UTC (rev 688) @@ -41,6 +41,9 @@ #include "yassl_int.hpp" #include "md5.hpp" // for TaoCrypt MD5 size assert #include "md4.hpp" // for TaoCrypt MD4 size assert +#include "file.hpp" // for TaoCrypt Source +#include "coding.hpp" // HexDecoder +#include "helpers.hpp" // for placement new hack #include <stdio.h> #ifdef _WIN32 @@ -54,7 +57,6 @@ namespace yaSSL { -using mySTL::min; int read_file(SSL_CTX* ctx, const char* file, int format, CertType type) @@ -92,11 +94,55 @@ } } else { - x = PemToDer(input, type); + EncryptedInfo info; + x = PemToDer(input, type, &info); if (!x) { fclose(input); return SSL_BAD_FILE; } + if (info.set) { + // decrypt + char password[80]; + pem_password_cb cb = ctx->GetPasswordCb(); + if (!cb) { + fclose(input); + return SSL_BAD_FILE; + } + int passwordSz = cb(password, sizeof(password), 0, + ctx->GetUserData()); + byte key[AES_256_KEY_SZ]; // max sizes + byte iv[AES_IV_SZ]; + + // use file's salt for key derivation, but not real iv + TaoCrypt::Source source(info.iv, info.ivSz); + TaoCrypt::HexDecoder dec(source); + memcpy(info.iv, source.get_buffer(), min((uint)sizeof(info.iv), + source.size())); + EVP_BytesToKey(info.name, "MD5", info.iv, (byte*)password, + passwordSz, 1, key, iv); + + STL::auto_ptr<BulkCipher> cipher; + if (strncmp(info.name, "DES-CBC", 7) == 0) + cipher.reset(NEW_YS DES); + else if (strncmp(info.name, "DES-EDE3-CBC", 13) == 0) + cipher.reset(NEW_YS DES_EDE); + else if (strncmp(info.name, "AES-128-CBC", 13) == 0) + cipher.reset(NEW_YS AES(AES_128_KEY_SZ)); + else if (strncmp(info.name, "AES-192-CBC", 13) == 0) + cipher.reset(NEW_YS AES(AES_192_KEY_SZ)); + else if (strncmp(info.name, "AES-256-CBC", 13) == 0) + cipher.reset(NEW_YS AES(AES_256_KEY_SZ)); + else { + fclose(input); + return SSL_BAD_FILE; + } + cipher->set_decryptKey(key, info.iv); + STL::auto_ptr<x509> newx(NEW_YS x509(x->get_length())); + cipher->decrypt(newx->use_buffer(), x->get_buffer(), + x->get_length()); + ysDelete(x); + x = newx.release(); + } } } fclose(input); @@ -137,13 +183,34 @@ } +SSL_METHOD* TLSv1_1_server_method() +{ + return NEW_YS SSL_METHOD(server_end, ProtocolVersion(3,2)); +} + + +SSL_METHOD* TLSv1_1_client_method() +{ + return NEW_YS SSL_METHOD(client_end, ProtocolVersion(3,2)); +} + + SSL_METHOD* SSLv23_server_method() { - // compatibility only, no version 2 support - return SSLv3_server_method(); + // compatibility only, no version 2 support, but does SSL 3 and TLS 1 + return NEW_YS SSL_METHOD(server_end, ProtocolVersion(3,2), true); } +SSL_METHOD* SSLv23_client_method() +{ + // compatibility only, no version 2 support, but does SSL 3 and TLS 1 + // though it sends TLS1 hello not SSLv2 so SSLv3 only servers will decline + // TODO: maybe add support to send SSLv2 hello ??? + return NEW_YS SSL_METHOD(client_end, ProtocolVersion(3,2), true); +} + + SSL_CTX* SSL_CTX_new(SSL_METHOD* method) { return NEW_YS SSL_CTX(method); @@ -351,7 +418,6 @@ Alert alert(warning, close_notify); sendAlert(*ssl, alert); ssl->useLog().ShowTCP(ssl->getSocket().get_fd(), true); - ssl->useSocket().closeSocket(); GetErrors().Remove(); @@ -359,8 +425,21 @@ } +/* on by default but allow user to turn off */ +long SSL_CTX_set_session_cache_mode(SSL_CTX* ctx, long mode) +{ + if (mode == SSL_SESS_CACHE_OFF) + ctx->SetSessionCacheOff(); + + return SSL_SUCCESS; +} + + SSL_SESSION* SSL_get_session(SSL* ssl) { + if (ssl->getSecurity().GetContext()->GetSessionCacheOff()) + return 0; + return GetSessions().lookup( ssl->getSecurity().get_connection().sessionID_); } @@ -368,6 +447,9 @@ int SSL_set_session(SSL* ssl, SSL_SESSION* session) { + if (ssl->getSecurity().GetContext()->GetSessionCacheOff()) + return SSL_FAILURE; + ssl->set_session(session); return SSL_SUCCESS; } @@ -456,6 +538,19 @@ } + +/* turn on yaSSL zlib compression + returns 0 for success, else error (not built in) + only need to turn on for client, becuase server on by default if built in + but calling for server will tell you whether it's available or not +*/ +int SSL_set_compression(SSL* ssl) +{ + return ssl->SetCompression(); +} + + + X509* SSL_get_peer_certificate(SSL* ssl) { return ssl->getCrypto().get_certManager().get_peerX509(); @@ -828,9 +923,8 @@ // be created BIGNUM* BN_bin2bn(const unsigned char* num, int sz, BIGNUM* retVal) { - using mySTL::auto_ptr; bool created = false; - auto_ptr<BIGNUM> bn(ysDelete); + STL_NAMESPACE::auto_ptr<BIGNUM> bn; if (!retVal) { created = true; @@ -891,7 +985,7 @@ const EVP_CIPHER* EVP_des_ede3_cbc(void) { - static const char* type = "DES_EDE3_CBC"; + static const char* type = "DES-EDE3-CBC"; return type; } @@ -902,16 +996,37 @@ // only support MD5 for now if (strncmp(md, "MD5", 3)) return 0; - // only support DES_EDE3_CBC for now - if (strncmp(type, "DES_EDE3_CBC", 12)) return 0; + int keyLen = 0; + int ivLen = 0; + // only support CBC DES and AES for now + if (strncmp(type, "DES-CBC", 7) == 0) { + keyLen = DES_KEY_SZ; + ivLen = DES_IV_SZ; + } + else if (strncmp(type, "DES-EDE3-CBC", 12) == 0) { + keyLen = DES_EDE_KEY_SZ; + ivLen = DES_IV_SZ; + } + else if (strncmp(type, "AES-128-CBC", 11) == 0) { + keyLen = AES_128_KEY_SZ; + ivLen = AES_IV_SZ; + } + else if (strncmp(type, "AES-192-CBC", 11) == 0) { + keyLen = AES_192_KEY_SZ; + ivLen = AES_IV_SZ; + } + else if (strncmp(type, "AES-256-CBC", 11) == 0) { + keyLen = AES_256_KEY_SZ; + ivLen = AES_IV_SZ; + } + else + return 0; + yaSSL::MD5 myMD; uint digestSz = myMD.get_digestSize(); byte digest[SHA_LEN]; // max size - yaSSL::DES_EDE cipher; - int keyLen = cipher.get_keySize(); - int ivLen = cipher.get_ivSize(); int keyLeft = keyLen; int ivLeft = ivLen; int keyOutput = 0; @@ -944,7 +1059,7 @@ if (ivLeft && digestLeft) { int store = min(ivLeft, digestLeft); - memcpy(&iv[ivLen - ivLeft], digest, store); + memcpy(&iv[ivLen - ivLeft], &digest[digestSz - digestLeft], store); keyOutput += store; ivLeft -= store; @@ -1020,10 +1135,9 @@ } -void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX*, void* userdata) +void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX* ctx, void* userdata) { - // yaSSL doesn't support yet, unencrypt your PEM file with userdata - // before handing off to yaSSL + ctx->SetUserData(userdata); } @@ -1100,12 +1214,6 @@ } -SSL_METHOD* SSLv23_client_method(void) /* doesn't actually roll back */ -{ - return SSLv3_client_method(); -} - - SSL_METHOD* SSLv2_client_method(void) /* will never work, no v 2 */ { return 0; @@ -1290,7 +1398,57 @@ } +void SSL_CTX_set_default_passwd_cb(SSL_CTX* ctx, pem_password_cb cb) +{ + ctx->SetPasswordCb(cb); +} + +int SSLeay_add_ssl_algorithms() /... [truncated message content] |
From: <arn...@us...> - 2006-12-13 17:10:10
|
Revision: 687 http://svn.sourceforge.net/dcplusplus/?rev=687&view=rev Author: arnetheduck Date: 2006-12-13 09:10:06 -0800 (Wed, 13 Dec 2006) Log Message: ----------- Patches & ADC connect fix Modified Paths: -------------- dcplusplus/trunk/DCPlusPlus.rc dcplusplus/trunk/DCPlusPlus.vcproj dcplusplus/trunk/changelog.txt dcplusplus/trunk/client/AdcHub.cpp dcplusplus/trunk/client/AdcHub.h dcplusplus/trunk/client/BufferedSocket.cpp dcplusplus/trunk/client/BufferedSocket.h dcplusplus/trunk/client/Client.h dcplusplus/trunk/client/ClientManager.cpp dcplusplus/trunk/client/ClientManager.h dcplusplus/trunk/client/ConnectionManager.cpp dcplusplus/trunk/client/ConnectionManager.h dcplusplus/trunk/client/NmdcHub.cpp dcplusplus/trunk/client/NmdcHub.h dcplusplus/trunk/client/SSLSocket.cpp dcplusplus/trunk/client/SSLSocket.h dcplusplus/trunk/client/SearchManager.cpp dcplusplus/trunk/client/SearchManager.h dcplusplus/trunk/client/ServerSocket.cpp dcplusplus/trunk/client/ServerSocket.h dcplusplus/trunk/client/Socket.cpp dcplusplus/trunk/client/Socket.h dcplusplus/trunk/client/UploadManager.cpp dcplusplus/trunk/client/UserConnection.cpp dcplusplus/trunk/client/UserConnection.h dcplusplus/trunk/client/Util.cpp dcplusplus/trunk/client.vcproj dcplusplus/trunk/help/help.vcproj dcplusplus/trunk/windows/SearchFrm.cpp dcplusplus/trunk/windows/TransferView.cpp Modified: dcplusplus/trunk/DCPlusPlus.rc =================================================================== --- dcplusplus/trunk/DCPlusPlus.rc 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/DCPlusPlus.rc 2006-12-13 17:10:06 UTC (rev 687) @@ -235,8 +235,8 @@ CONTROL "Make an annoying sound when a private message window is opened",IDC_PRIVATE_MESSAGE_BEEP_OPEN, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,87,246,10 LTEXT "Note; most of these options require that you restart DC++",IDC_SETTINGS_REQUIRES_RESTART,7,209,253,8 - LTEXT "Notification sound",IDC_BEEP_NOTIFICATION,10,110,53,8 - EDITTEXT IDC_BEEPFILE,71,108,133,12,ES_AUTOHSCROLL + LTEXT "Notification sound",IDC_BEEP_NOTIFICATION,10,110,66,8 + EDITTEXT IDC_BEEPFILE,85,108,119,12,ES_AUTOHSCROLL PUSHBUTTON "&Browse...",IDC_BROWSE,210,109,50,12 END Modified: dcplusplus/trunk/DCPlusPlus.vcproj =================================================================== --- dcplusplus/trunk/DCPlusPlus.vcproj 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/DCPlusPlus.vcproj 2006-12-13 17:10:06 UTC (rev 687) @@ -168,6 +168,7 @@ PrecompiledHeaderThrough="stdafx.h" AssemblerOutput="4" WarningLevel="4" + Detect64BitPortabilityProblems="true" DebugInformationFormat="3" CallingConvention="1" CompileAs="0" Modified: dcplusplus/trunk/changelog.txt =================================================================== --- dcplusplus/trunk/changelog.txt 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/changelog.txt 2006-12-13 17:10:06 UTC (rev 687) @@ -19,6 +19,8 @@ * [bug 1097] Fixed waiting users being removed (thanks stephan hohe) * [bug 1110] Added new adc hub list (thanks mafa_45) * [bug 1091] Added new nmdc hub lists (thanks poy) +* [bug 1112] Port sign cleanup (thanks steven sheehy) +* Fixed ADC client-to-client connection sequence -- 0.698 2006-10-10 -- * [bug 1065] Code cleanup (thanks steven sheehy) Modified: dcplusplus/trunk/client/AdcHub.cpp =================================================================== --- dcplusplus/trunk/client/AdcHub.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/AdcHub.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -268,6 +268,11 @@ string token; bool hasToken = c.getParam("TO", 2, token); + if(!hasToken) { + // @todo remove this bugfix for <=0.698 some time + token = c.getParam(2); + } + bool secure; if(protocol == CLIENT_PROTOCOL) { secure = false; @@ -290,7 +295,7 @@ return; } - ConnectionManager::getInstance()->adcConnect(*u, (short)Util::toInt(port), token, secure); + ConnectionManager::getInstance()->adcConnect(*u, static_cast<uint16_t>(Util::toInt(port)), token, secure); } void AdcHub::handle(AdcCommand::RCM, AdcCommand& c) throw() { @@ -357,7 +362,7 @@ void AdcHub::sendUDP(const AdcCommand& cmd) throw() { string command; string ip; - short port; + uint16_t port; { Lock l(cs); SIDMap::const_iterator i = users.find(cmd.getTo()); @@ -370,7 +375,7 @@ return; } ip = ou.getIdentity().getIp(); - port = static_cast<short>(Util::toInt(ou.getIdentity().getUdpPort())); + port = static_cast<uint16_t>(Util::toInt(ou.getIdentity().getUdpPort())); command = cmd.toString(ou.getUser()->getCID()); } try { @@ -417,9 +422,8 @@ SearchManager::getInstance()->onRES(c, ou->getUser()); } -void AdcHub::connect(const OnlineUser& user) { - uint32_t r = Util::rand(); - connect(user, Util::toString(r), CryptoManager::getInstance()->TLSOk() && user.getUser()->isSet(User::TLS)); +void AdcHub::connect(const OnlineUser& user, const string& token) { + connect(user, token, CryptoManager::getInstance()->TLSOk() && user.getUser()->isSet(User::TLS)); } void AdcHub::connect(const OnlineUser& user, string const& token, bool secure) { @@ -428,15 +432,15 @@ const string& proto = secure ? SECURE_CLIENT_PROTOCOL : CLIENT_PROTOCOL; if(ClientManager::getInstance()->isActive()) { - short port = secure ? ConnectionManager::getInstance()->getSecurePort() : ConnectionManager::getInstance()->getPort(); + uint16_t port = secure ? ConnectionManager::getInstance()->getSecurePort() : ConnectionManager::getInstance()->getPort(); if(port == 0) { // Oops? LogManager::getInstance()->message(STRING(NOT_LISTENING)); return; } - send(AdcCommand(AdcCommand::CMD_CTM, user.getIdentity().getSID(), AdcCommand::TYPE_DIRECT).addParam(proto).addParam(Util::toString(port)).addParam(token)); + send(AdcCommand(AdcCommand::CMD_CTM, user.getIdentity().getSID(), AdcCommand::TYPE_DIRECT).addParam(proto).addParam(Util::toString(port)).addParam("TO", token)); } else { - send(AdcCommand(AdcCommand::CMD_RCM, user.getIdentity().getSID(), AdcCommand::TYPE_DIRECT).addParam(proto)); + send(AdcCommand(AdcCommand::CMD_RCM, user.getIdentity().getSID(), AdcCommand::TYPE_DIRECT).addParam(proto).addParam("TO", token)); } } Modified: dcplusplus/trunk/client/AdcHub.h =================================================================== --- dcplusplus/trunk/client/AdcHub.h 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/AdcHub.h 2006-12-13 17:10:06 UTC (rev 687) @@ -35,7 +35,7 @@ using Client::send; using Client::connect; - virtual void connect(const OnlineUser& user); + virtual void connect(const OnlineUser& user, const string& token); void connect(const OnlineUser& user, string const& token, bool secure); virtual void hubMessage(const string& aMessage); Modified: dcplusplus/trunk/client/BufferedSocket.cpp =================================================================== --- dcplusplus/trunk/client/BufferedSocket.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/BufferedSocket.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -101,7 +101,7 @@ } -void BufferedSocket::connect(const string& aAddress, short aPort, bool secure, bool allowUntrusted, bool proxy) throw(SocketException, ThreadException) { +void BufferedSocket::connect(const string& aAddress, uint16_t aPort, bool secure, bool allowUntrusted, bool proxy) throw(SocketException, ThreadException) { dcassert(!sock); try { @@ -129,7 +129,7 @@ } #define CONNECT_TIMEOUT 30000 -void BufferedSocket::threadConnect(const string& aAddr, short aPort, bool proxy) throw(SocketException) { +void BufferedSocket::threadConnect(const string& aAddr, uint16_t aPort, bool proxy) throw(SocketException) { dcdebug("threadConnect %s:%d\n", aAddr.c_str(), (int)aPort); dcassert(sock); if(!sock) Modified: dcplusplus/trunk/client/BufferedSocket.h =================================================================== --- dcplusplus/trunk/client/BufferedSocket.h 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/BufferedSocket.h 2006-12-13 17:10:06 UTC (rev 687) @@ -87,7 +87,7 @@ } void accept(const Socket& srv, bool secure, bool allowUntrusted) throw(SocketException, ThreadException); - void connect(const string& aAddress, short aPort, bool secure, bool allowUntrusted, bool proxy) throw(SocketException, ThreadException); + void connect(const string& aAddress, uint16_t aPort, bool secure, bool allowUntrusted, bool proxy) throw(SocketException, ThreadException); /** Sets data mode for aBytes bytes. Must be called within onLine. */ void setDataMode(int64_t aBytes = -1) { mode = MODE_DATA; dataBytes = aBytes; } @@ -129,9 +129,9 @@ virtual ~TaskData() { } }; struct ConnectInfo : public TaskData { - ConnectInfo(string addr_, short port_, bool proxy_) : addr(addr_), port(port_), proxy(proxy_) { } + ConnectInfo(string addr_, uint16_t port_, bool proxy_) : addr(addr_), port(port_), proxy(proxy_) { } string addr; - short port; + uint16_t port; bool proxy; }; struct SendFileInfo : public TaskData { @@ -167,7 +167,7 @@ virtual int run(); - void threadConnect(const string& aAddr, short aPort, bool proxy) throw(SocketException); + void threadConnect(const string& aAddr, uint16_t aPort, bool proxy) throw(SocketException); void threadRead() throw(SocketException); void threadSendFile(InputStream* is) throw(Exception); void threadSendData(); Modified: dcplusplus/trunk/client/Client.h =================================================================== --- dcplusplus/trunk/client/Client.h 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/Client.h 2006-12-13 17:10:06 UTC (rev 687) @@ -86,7 +86,7 @@ virtual void connect(); virtual void disconnect(bool graceless); - virtual void connect(const OnlineUser& user) = 0; + virtual void connect(const OnlineUser& user, const string& token) = 0; virtual void hubMessage(const string& aMessage) = 0; virtual void privateMessage(const OnlineUser& user, const string& aMessage) = 0; virtual void sendUserCmd(const string& aUserCmd) = 0; @@ -104,7 +104,7 @@ bool isConnected() const { return socket && socket->isConnected(); } bool isOp() const { return getMyIdentity().isOp(); } - short getPort() const { return port; } + uint16_t getPort() const { return port; } const string& getAddress() const { return address; } const string& getIp() const { return ip; } Modified: dcplusplus/trunk/client/ClientManager.cpp =================================================================== --- dcplusplus/trunk/client/ClientManager.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/ClientManager.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -144,13 +144,13 @@ Lock l(cs); string ip; - short port = 411; + uint16_t port = 411; string::size_type i = ipPort.find(':'); if(i == string::npos) { ip = ipPort; } else { ip = ipPort.substr(0, i); - port = (short)Util::toInt(ipPort.substr(i+1)); + port = static_cast<uint16_t>(Util::toInt(ipPort.substr(i+1))); } string url; @@ -277,12 +277,12 @@ } } -void ClientManager::connect(const User::Ptr& p) { +void ClientManager::connect(const User::Ptr& p, const string& token) { Lock l(cs); OnlineIter i = onlineUsers.find(p->getCID()); if(i != onlineUsers.end()) { OnlineUser* u = i->second; - u->getClient().connect(*u); + u->getClient().connect(*u, token); } } @@ -306,7 +306,7 @@ u.getClient().send(cmd); } else { try { - udp.writeTo(u.getIdentity().getIp(), static_cast<short>(Util::toInt(u.getIdentity().getUdpPort())), cmd.toString(getMe()->getCID())); + udp.writeTo(u.getIdentity().getIp(), static_cast<uint16_t>(Util::toInt(u.getIdentity().getUdpPort())), cmd.toString(getMe()->getCID())); } catch(const SocketException&) { dcdebug("Socket exception sending ADC UDP command\n"); } Modified: dcplusplus/trunk/client/ClientManager.h =================================================================== --- dcplusplus/trunk/client/ClientManager.h 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/ClientManager.h 2006-12-13 17:10:06 UTC (rev 687) @@ -78,7 +78,7 @@ User::Ptr& getMe(); - void connect(const User::Ptr& p); + void connect(const User::Ptr& p, const string& token); void send(AdcCommand& c, const CID& to); void privateMessage(const User::Ptr& p, const string& msg); Modified: dcplusplus/trunk/client/ConnectionManager.cpp =================================================================== --- dcplusplus/trunk/client/ConnectionManager.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/ConnectionManager.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -46,7 +46,7 @@ void ConnectionManager::listen() throw(SocketException){ disconnect(); - unsigned short port = static_cast<unsigned short>(SETTING(TCP_PORT)); + uint16_t port = static_cast<uint16_t>(SETTING(TCP_PORT)); server = new Server(false, port, SETTING(BIND_ADDRESS)); @@ -55,7 +55,7 @@ return; } - port = static_cast<unsigned short>(SETTING(TLS_PORT)); + port = static_cast<uint16_t>(SETTING(TLS_PORT)); secureServer = new Server(true, port, SETTING(BIND_ADDRESS)); } @@ -170,7 +170,7 @@ if(cqi->getState() == ConnectionQueueItem::WAITING) { if(startDown) { cqi->setState(ConnectionQueueItem::CONNECTING); - ClientManager::getInstance()->connect(cqi->getUser()); + ClientManager::getInstance()->connect(cqi->getUser(), cqi->getToken()); fire(ConnectionManagerListener::StatusChanged(), cqi); attemptDone = true; } else { @@ -215,7 +215,7 @@ static const uint32_t FLOOD_TRIGGER = 20000; static const uint32_t FLOOD_ADD = 2000; -ConnectionManager::Server::Server(bool secure_, short aPort, const string& ip /* = "0.0.0.0" */) : port(0), secure(secure_), die(false) { +ConnectionManager::Server::Server(bool secure_, uint16_t aPort, const string& ip /* = "0.0.0.0" */) : port(0), secure(secure_), die(false) { sock.create(); port = sock.bind(aPort, ip); sock.listen(); @@ -273,7 +273,7 @@ } } -void ConnectionManager::nmdcConnect(const string& aServer, short aPort, const string& aNick, const string& hubUrl) { +void ConnectionManager::nmdcConnect(const string& aServer, uint16_t aPort, const string& aNick, const string& hubUrl) { if(shuttingDown) return; @@ -290,7 +290,7 @@ } } -void ConnectionManager::adcConnect(const OnlineUser& aUser, short aPort, const string& aToken, bool secure) { +void ConnectionManager::adcConnect(const OnlineUser& aUser, uint16_t aPort, const string& aToken, bool secure) { if(shuttingDown) return; @@ -315,7 +315,6 @@ server = secureServer = 0; } - void ConnectionManager::on(AdcCommand::SUP, UserConnection* aSource, const AdcCommand& cmd) throw() { if(aSource->getState() != UserConnection::STATE_SUPNICK) { // Already got this once, ignore...@todo fix support updates @@ -608,7 +607,28 @@ return; } + string token; if(aSource->isSet(UserConnection::FLAG_INCOMING)) { + if(!cmd.getParam("TO", 0, token)) { + aSource->send(AdcCommand(AdcCommand::SEV_FATAL, AdcCommand::ERROR_GENERIC, "TO missing")); + putConnection(aSource); + return; + } + } else { + token = aSource->getToken(); + } + + bool down = true; + { + Lock l(cs); + ConnectionQueueItem::Iter i = find(downloads.begin(), downloads.end(), aSource->getUser()); + if(i == downloads.end() || (*i)->getToken() != token) { + down = false; + } + /** @todo check tokens for upload connections */ + } + + if(down) { aSource->setFlag(UserConnection::FLAG_DOWNLOAD); addDownloadConnection(aSource); } else { @@ -617,6 +637,17 @@ } } +void ConnectionManager::force(const User::Ptr& aUser) { + Lock l(cs); + + ConnectionQueueItem::Iter i = find(downloads.begin(), downloads.end(), aUser); + if(i == downloads.end()) { + return; + } + + (*i)->setLastAttempt(0); +} + void ConnectionManager::on(UserConnectionListener::Failed, UserConnection* aSource, const string& aError) throw() { Lock l(cs); Modified: dcplusplus/trunk/client/ConnectionManager.h =================================================================== --- dcplusplus/trunk/client/ConnectionManager.h 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/ConnectionManager.h 2006-12-13 17:10:06 UTC (rev 687) @@ -48,7 +48,7 @@ ACTIVE // In one up/downmanager }; - ConnectionQueueItem(const User::Ptr& aUser, bool aDownload) : state(WAITING), lastAttempt(0), download(aDownload), user(aUser) { } + ConnectionQueueItem(const User::Ptr& aUser, bool aDownload) : state(WAITING), lastAttempt(0), download(aDownload), token(Util::toString(Util::rand())), user(aUser) { } User::Ptr& getUser() { return user; } const User::Ptr& getUser() const { return user; } @@ -56,6 +56,7 @@ GETSET(State, state, State); GETSET(uint32_t, lastAttempt, LastAttempt); GETSET(bool, download, Download); + GETSET(string, token, Token); private: ConnectionQueueItem(const ConnectionQueueItem&); ConnectionQueueItem& operator=(const ConnectionQueueItem&); @@ -103,10 +104,11 @@ expectedConnections.add(aNick, aMyNick, aHubUrl); } - void nmdcConnect(const string& aServer, short aPort, const string& aMyNick, const string& hubUrl); - void adcConnect(const OnlineUser& aUser, short aPort, const string& aToken, bool secure); + void nmdcConnect(const string& aServer, uint16_t aPort, const string& aMyNick, const string& hubUrl); + void adcConnect(const OnlineUser& aUser, uint16_t aPort, const string& aToken, bool secure); void getDownloadConnection(const User::Ptr& aUser); + void force(const User::Ptr& aUser); void disconnect(const User::Ptr& aUser, int isDownload); @@ -116,20 +118,20 @@ void listen() throw(SocketException); void disconnect() throw(); - unsigned short getPort() { return server ? static_cast<unsigned short>(server->getPort()) : 0; } - unsigned short getSecurePort() { return secureServer ? static_cast<unsigned short>(secureServer->getPort()) : 0; } + uint16_t getPort() { return server ? static_cast<uint16_t>(server->getPort()) : 0; } + uint16_t getSecurePort() { return secureServer ? static_cast<uint16_t>(secureServer->getPort()) : 0; } private: class Server : public Thread { public: - Server(bool secure_, short port, const string& ip = "0.0.0.0"); - short getPort() { return port; } + Server(bool secure_, uint16_t port, const string& ip = "0.0.0.0"); + uint16_t getPort() { return port; } virtual ~Server() { die = true; join(); } private: virtual int run() throw(); Socket sock; - short port; + uint16_t port; bool secure; bool die; }; Modified: dcplusplus/trunk/client/NmdcHub.cpp =================================================================== --- dcplusplus/trunk/client/NmdcHub.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/NmdcHub.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -44,7 +44,7 @@ #define checkstate() if(state != STATE_NORMAL) return -void NmdcHub::connect(const OnlineUser& aUser) { +void NmdcHub::connect(const OnlineUser& aUser, const string&) { checkstate(); dcdebug("NmdcHub::connect %s\n", aUser.getIdentity().getNick().c_str()); if(ClientManager::getInstance()->isActive()) { @@ -417,7 +417,7 @@ return; } string port = param.substr(j+1); - ConnectionManager::getInstance()->nmdcConnect(server, (unsigned short)Util::toInt(port), getMyNick(), getHubUrl()); + ConnectionManager::getInstance()->nmdcConnect(server, static_cast<uint16_t>(Util::toInt(port)), getMyNick(), getHubUrl()); } else if(cmd == "$RevConnectToMe") { if(state != STATE_NORMAL) { return; Modified: dcplusplus/trunk/client/NmdcHub.h =================================================================== --- dcplusplus/trunk/client/NmdcHub.h 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/NmdcHub.h 2006-12-13 17:10:06 UTC (rev 687) @@ -39,7 +39,7 @@ using Client::send; using Client::connect; - virtual void connect(const OnlineUser& aUser); + virtual void connect(const OnlineUser& aUser, const string&); virtual void hubMessage(const string& aMessage); virtual void privateMessage(const OnlineUser& aUser, const string& aMessage); Modified: dcplusplus/trunk/client/SSLSocket.cpp =================================================================== --- dcplusplus/trunk/client/SSLSocket.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/SSLSocket.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -29,7 +29,7 @@ } -void SSLSocket::connect(const string& aIp, short aPort) throw(SocketException) { +void SSLSocket::connect(const string& aIp, uint16_t aPort) throw(SocketException) { Socket::setBlocking(true); Socket::connect(aIp, aPort); Modified: dcplusplus/trunk/client/SSLSocket.h =================================================================== --- dcplusplus/trunk/client/SSLSocket.h 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/SSLSocket.h 2006-12-13 17:10:06 UTC (rev 687) @@ -39,7 +39,7 @@ virtual ~SSLSocket() throw() {} virtual void accept(const Socket& listeningSocket) throw(SocketException); - virtual void connect(const string& aIp, short aPort) throw(SocketException); + virtual void connect(const string& aIp, uint16_t aPort) throw(SocketException); virtual int read(void* aBuffer, int aBufLen) throw(SocketException); virtual int write(const void* aBuffer, int aLen) throw(SocketException); virtual int wait(uint32_t millis, int waitFor) throw(SocketException); Modified: dcplusplus/trunk/client/SearchManager.cpp =================================================================== --- dcplusplus/trunk/client/SearchManager.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/SearchManager.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -102,7 +102,7 @@ socket = new Socket(); socket->create(Socket::TYPE_UDP); - port = socket->bind(static_cast<short>(SETTING(UDP_PORT))); + port = socket->bind(static_cast<uint16_t>(SETTING(UDP_PORT))); start(); } Modified: dcplusplus/trunk/client/SearchManager.h =================================================================== --- dcplusplus/trunk/client/SearchManager.h 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/SearchManager.h 2006-12-13 17:10:06 UTC (rev 687) @@ -142,7 +142,7 @@ void respond(const AdcCommand& cmd, const CID& cid); - unsigned short getPort() + uint16_t getPort() { return port; } @@ -166,7 +166,7 @@ private: Socket* socket; - unsigned short port; + uint16_t port; bool stop; uint32_t lastSearch; friend class Singleton<SearchManager>; Modified: dcplusplus/trunk/client/ServerSocket.cpp =================================================================== --- dcplusplus/trunk/client/ServerSocket.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/ServerSocket.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -22,7 +22,7 @@ #include "ServerSocket.h" #include "SettingsManager.h" -void ServerSocket::listen(short aPort) throw(SocketException) { +void ServerSocket::listen(uint16_t aPort) throw(SocketException) { socket.disconnect(); socket.create(Socket::TYPE_TCP); // Set reuse address option... Modified: dcplusplus/trunk/client/ServerSocket.h =================================================================== --- dcplusplus/trunk/client/ServerSocket.h 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/ServerSocket.h 2006-12-13 17:10:06 UTC (rev 687) @@ -39,7 +39,7 @@ public: ServerSocket() throw() { } - void listen(short port) throw(SocketException); + void listen(uint16_t port) throw(SocketException); void disconnect() throw() { socket.disconnect(); } /** This is called by windows whenever an "FD_ACCEPT" is sent...doesn't work with unix... */ Modified: dcplusplus/trunk/client/Socket.cpp =================================================================== --- dcplusplus/trunk/client/Socket.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/Socket.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -26,7 +26,7 @@ #include "TimerManager.h" string Socket::udpServer; -short Socket::udpPort; +uint16_t Socket::udpPort; #define checkconnected() if(!isConnected()) throw SocketException(ENOTCONN)) @@ -97,7 +97,7 @@ } -short Socket::bind(short aPort, const string& aIp /* = 0.0.0.0 */) throw (SocketException){ +uint16_t Socket::bind(uint16_t aPort, const string& aIp /* = 0.0.0.0 */) throw (SocketException){ sockaddr_in sock_addr; sock_addr.sin_family = AF_INET; @@ -118,7 +118,7 @@ connected = true; } -void Socket::connect(const string& aAddr, short aPort) throw(SocketException) { +void Socket::connect(const string& aAddr, uint16_t aPort) throw(SocketException) { sockaddr_in serv_addr; if(sock == INVALID_SOCKET) { @@ -149,7 +149,7 @@ } } -void Socket::socksConnect(const string& aAddr, short aPort, uint32_t timeout) throw(SocketException) { +void Socket::socksConnect(const string& aAddr, uint16_t aPort, uint32_t timeout) throw(SocketException) { if(SETTING(SOCKS_SERVER).empty() || SETTING(SOCKS_PORT) == 0) { throw SocketException(STRING(SOCKS_FAILED)); @@ -160,7 +160,7 @@ uint32_t start = GET_TICK(); - connect(SETTING(SOCKS_SERVER), (short)SETTING(SOCKS_PORT)); + connect(SETTING(SOCKS_SERVER), static_cast<uint16_t>(SETTING(SOCKS_PORT))); if(wait(timeLeft(start, timeout), WAIT_CONNECT) != WAIT_CONNECT) { throw SocketException(STRING(SOCKS_FAILED)); @@ -363,7 +363,7 @@ * @param aLen Data length * @throw SocketExcpetion Send failed. */ -void Socket::writeTo(const string& aAddr, short aPort, const void* aBuffer, int aLen, bool proxy) throw(SocketException) { +void Socket::writeTo(const string& aAddr, uint16_t aPort, const void* aBuffer, int aLen, bool proxy) throw(SocketException) { if(aLen <= 0) return; @@ -530,7 +530,7 @@ try { Socket s; s.setBlocking(false); - s.connect(SETTING(SOCKS_SERVER), (short)SETTING(SOCKS_PORT)); + s.connect(SETTING(SOCKS_SERVER), static_cast<uint16_t>(SETTING(SOCKS_PORT))); s.socksAuth(SOCKS_TIMEOUT); char connStr[10]; @@ -553,7 +553,7 @@ return; } - udpPort = (short)ntohs(*((uint16_t*)(&connStr[8]))); + udpPort = static_cast<uint16_t>(ntohs(*((uint16_t*)(&connStr[8])))); in_addr serv_addr; Modified: dcplusplus/trunk/client/Socket.h =================================================================== --- dcplusplus/trunk/client/Socket.h 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/Socket.h 2006-12-13 17:10:06 UTC (rev 687) @@ -80,7 +80,7 @@ }; Socket() throw(SocketException) : sock(INVALID_SOCKET), connected(false), blocking(true) { } - Socket(const string& aIp, short aPort) throw(SocketException) : sock(INVALID_SOCKET), connected(false), blocking(true) { connect(aIp, aPort); } + Socket(const string& aIp, uint16_t aPort) throw(SocketException) : sock(INVALID_SOCKET), connected(false), blocking(true) { connect(aIp, aPort); } virtual ~Socket() throw() { Socket::disconnect(); } /** @@ -90,12 +90,12 @@ * @param aPort Server port. * @throw SocketException If any connection error occurs. */ - virtual void connect(const string& aIp, short aPort) throw(SocketException); - void connect(const string& aIp, const string& aPort) throw(SocketException) { connect(aIp, (short)Util::toInt(aPort)); } + virtual void connect(const string& aIp, uint16_t aPort) throw(SocketException); + void connect(const string& aIp, const string& aPort) throw(SocketException) { connect(aIp, static_cast<uint16_t>(Util::toInt(aPort))); } /** * Same as connect(), but through the SOCKS5 server */ - void socksConnect(const string& aIp, short aPort, uint32_t timeout = 0) throw(SocketException); + void socksConnect(const string& aIp, uint16_t aPort, uint32_t timeout = 0) throw(SocketException); /** * Sends data, will block until all data has been sent or an exception occurs @@ -106,8 +106,8 @@ void writeAll(const void* aBuffer, int aLen, uint32_t timeout = 0) throw(SocketException); virtual int write(const void* aBuffer, int aLen) throw(SocketException); int write(const string& aData) throw(SocketException) { return write(aData.data(), (int)aData.length()); } - virtual void writeTo(const string& aIp, short aPort, const void* aBuffer, int aLen, bool proxy = true) throw(SocketException); - void writeTo(const string& aIp, short aPort, const string& aData) throw(SocketException) { writeTo(aIp, aPort, aData.data(), (int)aData.length()); } + virtual void writeTo(const string& aIp, uint16_t aPort, const void* aBuffer, int aLen, bool proxy = true) throw(SocketException); + void writeTo(const string& aIp, uint16_t aPort, const string& aData) throw(SocketException) { writeTo(aIp, aPort, aData.data(), (int)aData.length()); } virtual void shutdown() throw(); virtual void close() throw(); void disconnect() throw(); @@ -169,7 +169,7 @@ virtual void create(int aType = TYPE_TCP) throw(SocketException); /** Binds a socket to a certain local port and possibly IP. */ - virtual short bind(short aPort = 0, const string& aIp = "0.0.0.0") throw(SocketException); + virtual uint16_t bind(uint16_t aPort = 0, const string& aIp = "0.0.0.0") throw(SocketException); virtual void listen() throw(SocketException); virtual void accept(const Socket& listeningSocket) throw(SocketException); @@ -197,7 +197,7 @@ static Stats stats; static string udpServer; - static short udpPort; + static uint16_t udpPort; private: Socket(const Socket&); @@ -208,8 +208,8 @@ #ifdef _WIN32 static int getLastError() { return ::WSAGetLastError(); } - static int checksocket(socket_t ret) { - if(ret == (socket_t) SOCKET_ERROR) { + static int checksocket(int ret) { + if(ret == SOCKET_ERROR) { throw SocketException(getLastError()); } return ret; Modified: dcplusplus/trunk/client/UploadManager.cpp =================================================================== --- dcplusplus/trunk/client/UploadManager.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/UploadManager.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -271,7 +271,7 @@ reservedSlots.insert(aUser); } if(aUser->isOnline()) - ClientManager::getInstance()->connect(aUser); + ClientManager::getInstance()->connect(aUser, Util::toString(Util::rand())); } void UploadManager::on(UserConnectionListener::Get, UserConnection* aSource, const string& aFile, int64_t aResume) throw() { Modified: dcplusplus/trunk/client/UserConnection.cpp =================================================================== --- dcplusplus/trunk/client/UserConnection.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/UserConnection.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -191,7 +191,7 @@ } } -void UserConnection::connect(const string& aServer, short aPort) throw(SocketException, ThreadException) { +void UserConnection::connect(const string& aServer, uint16_t aPort) throw(SocketException, ThreadException) { dcassert(!socket); socket = BufferedSocket::getSocket(0); Modified: dcplusplus/trunk/client/UserConnection.h =================================================================== --- dcplusplus/trunk/client/UserConnection.h 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/UserConnection.h 2006-12-13 17:10:06 UTC (rev 687) @@ -279,7 +279,7 @@ void setDataMode(int64_t aBytes = -1) { dcassert(socket); socket->setDataMode(aBytes); } void setLineMode(size_t rollback) { dcassert(socket); socket->setLineMode(rollback); } - void connect(const string& aServer, short aPort) throw(SocketException, ThreadException); + void connect(const string& aServer, uint16_t aPort) throw(SocketException, ThreadException); void accept(const Socket& aServer) throw(SocketException, ThreadException); void disconnect(bool graceless = false) { if(socket) socket->disconnect(graceless); } Modified: dcplusplus/trunk/client/Util.cpp =================================================================== --- dcplusplus/trunk/client/Util.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client/Util.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -313,9 +313,9 @@ if( (k=url.find(':', i)) != string::npos) { // Port if(j == string::npos) { - aPort = (short)Util::toInt(url.substr(k+1)); + aPort = static_cast<uint16_t>(Util::toInt(url.substr(k+1))); } else if(k < j) { - aPort = (short)Util::toInt(url.substr(k+1, j-k-1)); + aPort = static_cast<uint16_t>(Util::toInt(url.substr(k+1, j-k-1))); } } else { k = j; Modified: dcplusplus/trunk/client.vcproj =================================================================== --- dcplusplus/trunk/client.vcproj 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/client.vcproj 2006-12-13 17:10:06 UTC (rev 687) @@ -143,6 +143,7 @@ AssemblerOutput="4" WarningLevel="4" SuppressStartupBanner="true" + Detect64BitPortabilityProblems="true" DebugInformationFormat="3" CallingConvention="1" DisableSpecificWarnings="4996" Modified: dcplusplus/trunk/help/help.vcproj =================================================================== --- dcplusplus/trunk/help/help.vcproj 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/help/help.vcproj 2006-12-13 17:10:06 UTC (rev 687) @@ -253,6 +253,10 @@ > </File> <File + RelativePath=".\settings_tabs.html" + > + </File> + <File RelativePath=".\template.html" > </File> Modified: dcplusplus/trunk/windows/SearchFrm.cpp =================================================================== --- dcplusplus/trunk/windows/SearchFrm.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/windows/SearchFrm.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -287,6 +287,7 @@ } if ((*si)[0] != _T('-')) s += *si + _T(' '); + ++si; } s = s.substr(0, max(s.size(), static_cast<tstring::size_type>(1)) - 1); Modified: dcplusplus/trunk/windows/TransferView.cpp =================================================================== --- dcplusplus/trunk/windows/TransferView.cpp 2006-12-07 22:44:50 UTC (rev 686) +++ dcplusplus/trunk/windows/TransferView.cpp 2006-12-13 17:10:06 UTC (rev 687) @@ -156,7 +156,7 @@ int i = -1; while( (i = ctrlTransfers.GetNextItem(i, LVNI_SELECTED)) != -1) { ctrlTransfers.SetItemText(i, COLUMN_STATUS, CTSTRING(CONNECTING_FORCED)); - ClientManager::getInstance()->connect(((ItemInfo*)ctrlTransfers.getItemData(i))->user); + ConnectionManager::getInstance()->force(ctrlTransfers.getItemData(i)->user); } return 0; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <arn...@us...> - 2006-12-07 22:44:57
|
Revision: 686 http://svn.sourceforge.net/dcplusplus/?rev=686&view=rev Author: arnetheduck Date: 2006-12-07 14:44:50 -0800 (Thu, 07 Dec 2006) Log Message: ----------- missing files Added Paths: ----------- dcplusplus/trunk/windows/ShellContextMenu.cpp dcplusplus/trunk/windows/ShellContextMenu.h dcplusplus/trunk/windows/TabsPage.cpp dcplusplus/trunk/windows/TabsPage.h Added: dcplusplus/trunk/windows/ShellContextMenu.cpp =================================================================== --- dcplusplus/trunk/windows/ShellContextMenu.cpp (rev 0) +++ dcplusplus/trunk/windows/ShellContextMenu.cpp 2006-12-07 22:44:50 UTC (rev 686) @@ -0,0 +1,237 @@ +/* +/* +* Based on a class by R. Engels +* http://www.codeproject.com/shell/shellcontextmenu.asp +*/ + +#include "stdafx.h" +#include "../client/DCPlusPlus.h" +#include "Resource.h" + +#include "ShellContextMenu.h" + +IContextMenu2* g_IContext2 = NULL; +IContextMenu3* g_IContext3 = NULL; + +CShellContextMenu::CShellContextMenu() : bDelete(false) +{ + m_psfFolder = NULL; + m_pidlArray = NULL; + m_Menu = NULL; +} + +CShellContextMenu::~CShellContextMenu() +{ + // free all allocated datas + if(m_psfFolder && bDelete) + m_psfFolder->Release(); + m_psfFolder = NULL; + FreePIDLArray(m_pidlArray); + m_pidlArray = NULL; + + if(m_Menu) + delete m_Menu; +} + +void CShellContextMenu::SetPath(const tstring& strPath) +{ + // free all allocated datas + if(m_psfFolder && bDelete) + m_psfFolder->Release(); + m_psfFolder = NULL; + FreePIDLArray(m_pidlArray); + m_pidlArray = NULL; + + // get IShellFolder interface of Desktop(root of shell namespace) + IShellFolder* psfDesktop = NULL; + SHGetDesktopFolder(&psfDesktop); + + // ParseDisplayName creates a PIDL from a file system path relative to the IShellFolder interface + // but since we use the Desktop as our interface and the Desktop is the namespace root + // that means that it's a fully qualified PIDL, which is what we need + LPITEMIDLIST pidl = NULL; + psfDesktop->ParseDisplayName(NULL, 0, (LPOLESTR)const_cast<TCHAR*>(strPath.c_str()), NULL, &pidl, NULL); + + // now we need the parent IShellFolder interface of pidl, and the relative PIDL to that interface + SHBindToParent(pidl, IID_IShellFolder, (LPVOID*)&m_psfFolder, NULL); + + // get interface to IMalloc (need to free the PIDLs allocated by the shell functions) + LPMALLOC lpMalloc = NULL; + SHGetMalloc(&lpMalloc); + lpMalloc->Free(pidl); + + // now we need the relative pidl + IShellFolder* psfFolder = NULL; + psfDesktop->ParseDisplayName (NULL, 0, (LPOLESTR)const_cast<TCHAR*>(strPath.c_str()), NULL, &pidl, NULL); + LPITEMIDLIST pidlItem = NULL; + SHBindToParent(pidl, IID_IShellFolder, (LPVOID*)&psfFolder, (LPCITEMIDLIST*)&pidlItem); + + // copy pidlItem to m_pidlArray + m_pidlArray = (LPITEMIDLIST *) realloc(m_pidlArray, sizeof (LPITEMIDLIST)); + int nSize = 0; + LPITEMIDLIST pidlTemp = pidlItem; + while(pidlTemp->mkid.cb) + { + nSize += pidlTemp->mkid.cb; + pidlTemp = (LPITEMIDLIST) (((LPBYTE) pidlTemp) + pidlTemp->mkid.cb); + } + LPITEMIDLIST pidlRet = (LPITEMIDLIST) calloc(nSize + sizeof (USHORT), sizeof (BYTE)); + CopyMemory(pidlRet, pidlItem, nSize); + m_pidlArray[0] = pidlRet; + + free(pidlItem); + lpMalloc->Free(pidl); + + lpMalloc->Release(); + psfFolder->Release(); + psfDesktop->Release(); + + bDelete = true; // indicates that m_psfFolder should be deleted by CShellContextMenu +} + +CMenu* CShellContextMenu::GetMenu() +{ + if(!m_Menu) + { + m_Menu = new CMenu; + m_Menu->CreatePopupMenu(); // create the popupmenu(its empty) + } + return m_Menu; +} + +UINT CShellContextMenu::ShowContextMenu(HWND hWnd, CPoint pt) +{ + int iMenuType = 0; // to know which version of IContextMenu is supported + LPCONTEXTMENU pContextMenu; // common pointer to IContextMenu and higher version interface + + if(!GetContextMenu((LPVOID*)&pContextMenu, iMenuType)) + return 0; // something went wrong + + if(!m_Menu) + { + delete m_Menu; + m_Menu = NULL; + m_Menu = new CMenu; + m_Menu->CreatePopupMenu(); + } + + // lets fill the popupmenu + pContextMenu->QueryContextMenu(m_Menu->m_hMenu, m_Menu->GetMenuItemCount(), ID_SHELLCONTEXTMENU_MIN, ID_SHELLCONTEXTMENU_MAX, CMF_NORMAL | CMF_EXPLORE); + + // subclass window to handle menurelated messages in CShellContextMenu + WNDPROC OldWndProc; + if(iMenuType > 1) // only subclass if its version 2 or 3 + { + OldWndProc = (WNDPROC) SetWindowLong(hWnd, GWL_WNDPROC, (DWORD) HookWndProc); + if(iMenuType == 2) + g_IContext2 = (LPCONTEXTMENU2) pContextMenu; + else // version 3 + g_IContext3 = (LPCONTEXTMENU3) pContextMenu; + } + else + OldWndProc = NULL; + + UINT idCommand = m_Menu->TrackPopupMenu(TPM_RETURNCMD | TPM_LEFTALIGN, pt.x, pt.y, hWnd); + + if(OldWndProc) // unsubclass + SetWindowLong(hWnd, GWL_WNDPROC, (DWORD) OldWndProc); + + if(idCommand >= ID_SHELLCONTEXTMENU_MIN && idCommand <= ID_SHELLCONTEXTMENU_MAX) + { + InvokeCommand(pContextMenu, idCommand - ID_SHELLCONTEXTMENU_MIN); + idCommand = 0; + } + + pContextMenu->Release(); + g_IContext2 = NULL; + g_IContext3 = NULL; + + return idCommand; +} + +void CShellContextMenu::FreePIDLArray(LPITEMIDLIST* pidlArray) +{ + if(!pidlArray) + return; + + int iSize = _msize (pidlArray) / sizeof (LPITEMIDLIST); + + for(int i = 0; i < iSize; i++) + free(pidlArray[i]); + free(pidlArray); +} + +// this functions determines which version of IContextMenu is avaibale for those objects(always the highest one) +// and returns that interface +bool CShellContextMenu::GetContextMenu(LPVOID* ppContextMenu, int& iMenuType) +{ + *ppContextMenu = NULL; + LPCONTEXTMENU icm1 = NULL; + + // first we retrieve the normal IContextMenu interface(every object should have it) + m_psfFolder->GetUIObjectOf(NULL, 1, (LPCITEMIDLIST *) m_pidlArray, IID_IContextMenu, NULL, (LPVOID*) &icm1); + + if(icm1) + { // since we got an IContextMenu interface we can now obtain the higher version interfaces via that + if(icm1->QueryInterface(IID_IContextMenu3, ppContextMenu) == NOERROR) + iMenuType = 3; + else if(icm1->QueryInterface(IID_IContextMenu2, ppContextMenu) == NOERROR) + iMenuType = 2; + + if(*ppContextMenu) + icm1->Release(); // we can now release version 1 interface, cause we got a higher one + else + { + iMenuType = 1; + *ppContextMenu = icm1; // since no higher versions were found + } // redirect ppContextMenu to version 1 interface + + return true; // success + } + + return false; // something went wrong +} + +void CShellContextMenu::InvokeCommand(LPCONTEXTMENU pContextMenu, UINT idCommand) +{ + CMINVOKECOMMANDINFO cmi = {0}; + cmi.cbSize = sizeof(CMINVOKECOMMANDINFO); + cmi.lpVerb = (LPSTR) MAKEINTRESOURCE(idCommand); + cmi.nShow = SW_SHOWNORMAL; + + pContextMenu->InvokeCommand(&cmi); +} + +LRESULT CALLBACK CShellContextMenu::HookWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch(message) + { + case WM_MENUCHAR: // only supported by IContextMenu3 + if(g_IContext3) + { + LRESULT lResult = 0; + g_IContext3->HandleMenuMsg2(message, wParam, lParam, &lResult); + return lResult; + } + break; + + case WM_DRAWITEM: + case WM_MEASUREITEM: + if(wParam) + break; // if wParam != 0 then the message is not menu-related + + case WM_INITMENUPOPUP: + if(g_IContext2) + g_IContext2->HandleMenuMsg(message, wParam, lParam); + else // version 3 + g_IContext3->HandleMenuMsg(message, wParam, lParam); + return (message == WM_INITMENUPOPUP) ? 0 : TRUE; // inform caller that we handled WM_INITPOPUPMENU by ourself + break; + + default: + break; + } + + // call original WndProc of window to prevent undefined bevhaviour of window + return ::CallWindowProc((WNDPROC) GetProp( hWnd, _T("OldWndProc")), hWnd, message, wParam, lParam); +} Added: dcplusplus/trunk/windows/ShellContextMenu.h =================================================================== --- dcplusplus/trunk/windows/ShellContextMenu.h (rev 0) +++ dcplusplus/trunk/windows/ShellContextMenu.h 2006-12-07 22:44:50 UTC (rev 686) @@ -0,0 +1,37 @@ +/* +/* +* Based on a class by R. Engels +* http://www.codeproject.com/shell/shellcontextmenu.asp +*/ + +#if !defined(SHELLCONTEXTMENU_H) +#define SHELLCONTEXTMENU_H + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +class CShellContextMenu +{ +public: + CShellContextMenu(); + virtual ~CShellContextMenu(); + + void SetPath(const tstring& strPath); + CMenu* GetMenu(); + UINT ShowContextMenu(HWND hWnd, CPoint pt); + +private: + bool bDelete; + CMenu* m_Menu; + IShellFolder* m_psfFolder; + LPITEMIDLIST* m_pidlArray; + + void FreePIDLArray(LPITEMIDLIST* pidlArray); + void SHBindToParentEx(LPCITEMIDLIST pidl, REFIID riid, LPVOID* ppv, LPCITEMIDLIST* ppidlLast); + bool GetContextMenu(LPVOID* ppContextMenu, int& iMenuType); + void InvokeCommand(LPCONTEXTMENU pContextMenu, UINT idCommand); + static LRESULT CALLBACK HookWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); +}; + +#endif // !defined(SHELLCONTEXTMENU_H) Added: dcplusplus/trunk/windows/TabsPage.cpp =================================================================== --- dcplusplus/trunk/windows/TabsPage.cpp (rev 0) +++ dcplusplus/trunk/windows/TabsPage.cpp 2006-12-07 22:44:50 UTC (rev 686) @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2001-2006 Jacek Sieka, arnetheduck on gmail point com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#include "stdafx.h" +#include "../client/DCPlusPlus.h" +#include "Resource.h" + +#include "TabsPage.h" + +#include "../client/SettingsManager.h" +#include "../client/FavoriteManager.h" +#include "WinUtil.h" + +PropPage::Item TabsPage::items[] = { + { IDC_MAX_TAB_ROWS, SettingsManager::MAX_TAB_ROWS, PropPage::T_INT }, + { 0, 0, PropPage::T_END } +}; + +PropPage::TextItem TabsPage::texts[] = { + { IDC_SETTINGS_MAX_TAB_ROWS, ResourceManager::SETTINGS_MAX_TAB_ROWS }, + { IDC_SETTINGS_BOLD_CONTENTS, ResourceManager::SETTINGS_BOLD_OPTIONS }, + { 0, ResourceManager::SETTINGS_AUTO_AWAY } +}; + +PropPage::ListItem TabsPage::listItems[] = { + { SettingsManager::BOLD_FINISHED_DOWNLOADS, ResourceManager::FINISHED_DOWNLOADS }, + { SettingsManager::BOLD_FINISHED_UPLOADS, ResourceManager::FINISHED_UPLOADS }, + { SettingsManager::BOLD_QUEUE, ResourceManager::DOWNLOAD_QUEUE }, + { SettingsManager::BOLD_HUB, ResourceManager::HUB }, + { SettingsManager::BOLD_PM, ResourceManager::PRIVATE_MESSAGE }, + { SettingsManager::BOLD_SEARCH, ResourceManager::SEARCH }, + { SettingsManager::BOLD_WAITING_USERS, ResourceManager::WAITING_USERS }, + { SettingsManager::BOLD_SYSTEM_LOG, ResourceManager::SYSTEM_LOG }, + { 0, ResourceManager::SETTINGS_AUTO_AWAY } +}; + +LRESULT TabsPage::onInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) +{ + PropPage::translate((HWND)(*this), texts); + PropPage::read((HWND)*this, items, listItems,GetDlgItem(IDC_BOLD_BOOLEANS)); + + // Do specialized reading here + return TRUE; +} + +void TabsPage::write() { + PropPage::write((HWND)*this, items, listItems,GetDlgItem(IDC_BOLD_BOOLEANS)); +} + +LRESULT TabsPage::onHelpInfo(LPNMHDR /*pnmh*/) { + HtmlHelp(m_hWnd, WinUtil::getHelpFile().c_str(), HH_HELP_CONTEXT, IDD_TABSPAGE); + return 0; +} + +LRESULT TabsPage::onHelp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { + HtmlHelp(m_hWnd, WinUtil::getHelpFile().c_str(), HH_HELP_CONTEXT, IDD_TABSPAGE); + return 0; +} Added: dcplusplus/trunk/windows/TabsPage.h =================================================================== --- dcplusplus/trunk/windows/TabsPage.h (rev 0) +++ dcplusplus/trunk/windows/TabsPage.h 2006-12-07 22:44:50 UTC (rev 686) @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2001-2006 Jacek Sieka, arnetheduck on gmail point com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#if !defined(TABS_PAGE_H) +#define TABS_PAGE_H + +#if _MSC_VER > 1000 +#pragma once +#endif // _MSC_VER > 1000 + +#include <atlcrack.h> +#include "PropPage.h" + +class TabsPage : public CPropertyPage<IDD_TABSPAGE>, public PropPage +{ +public: + TabsPage(SettingsManager *s) : PropPage(s) { + SetTitle(CTSTRING(SETTINGS_TABS)); + m_psp.dwFlags |= PSP_HASHELP | PSP_RTLREADING; + } + + virtual ~TabsPage() { } + + BEGIN_MSG_MAP(TabsPage) + MESSAGE_HANDLER(WM_INITDIALOG, onInitDialog) + NOTIFY_CODE_HANDLER_EX(PSN_HELP, onHelpInfo) + MESSAGE_HANDLER(WM_HELP, onHelp) + END_MSG_MAP() + + LRESULT onInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); + LRESULT onHelp(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/); + LRESULT onHelpInfo(LPNMHDR /*pnmh*/); + + // Common PropPage interface + PROPSHEETPAGE *getPSP() { return (PROPSHEETPAGE *)*this; } + virtual void write(); + +protected: + static TextItem texts[]; + static Item items[]; + static ListItem listItems[]; +}; + +#endif // !defined(TABS_PAGE_H) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |