diff options
author | Oz Linden <oz@lindenlab.com> | 2011-07-14 14:47:15 -0400 |
---|---|---|
committer | Oz Linden <oz@lindenlab.com> | 2011-07-14 14:47:15 -0400 |
commit | 54bb91fd03d0c2f2600993274c59ae89324eeb03 (patch) | |
tree | 395686190c716ecf9a123610797838ed8b67222e /indra | |
parent | dc0765fc3d04bcab9a89bdc8d703f74f09796119 (diff) | |
parent | b48b8ed6484966d33bbe36c31ffc050b7314606a (diff) |
merge changes for 2.7.5 release
Diffstat (limited to 'indra')
18 files changed, 171 insertions, 69 deletions
diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index cfafbf0470..92cd9bd46a 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -29,7 +29,7 @@ const S32 LL_VERSION_MAJOR = 2; const S32 LL_VERSION_MINOR = 7; -const S32 LL_VERSION_PATCH = 4; +const S32 LL_VERSION_PATCH = 5; const S32 LL_VERSION_BUILD = 0; const char * const LL_CHANNEL = "Second Life Developer"; diff --git a/indra/llvfs/CMakeLists.txt b/indra/llvfs/CMakeLists.txt index b6d1ce61e5..2c581cf8d6 100644 --- a/indra/llvfs/CMakeLists.txt +++ b/indra/llvfs/CMakeLists.txt @@ -62,11 +62,15 @@ list(APPEND llvfs_SOURCE_FILES ${llvfs_HEADER_FILES}) add_library (llvfs ${llvfs_SOURCE_FILES}) -target_link_libraries(llvfs +set(vfs_BOOST_LIBRARIES ${BOOST_FILESYSTEM_LIBRARY} ${BOOST_SYSTEM_LIBRARY} ) +target_link_libraries(llvfs + ${vfs_BOOST_LIBRARIES} + ) + if (DARWIN) include(CMakeFindFrameworks) find_library(CARBON_LIBRARY Carbon) @@ -76,15 +80,21 @@ endif (DARWIN) # Add tests if (LL_TESTS) - include(LLAddBuildTest) - # UNIT TESTS - SET(llvfs_TEST_SOURCE_FILES - # none so far - ) - LL_ADD_PROJECT_UNIT_TESTS(llvfs "${llvfs_TEST_SOURCE_FILES}") - - # INTEGRATION TESTS - set(test_libs llmath llcommon llvfs ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES}) - # TODO: Some of these need refactoring to be proper Unit tests rather than Integration tests. - LL_ADD_INTEGRATION_TEST(lldir "" "${test_libs}") + include(LLAddBuildTest) + # UNIT TESTS + SET(llvfs_TEST_SOURCE_FILES + lldiriterator.cpp + ) + + set_source_files_properties(lldiriterator.cpp + PROPERTIES + LL_TEST_ADDITIONAL_LIBRARIES "${vfs_BOOST_LIBRARIES}" + ) + LL_ADD_PROJECT_UNIT_TESTS(llvfs "${llvfs_TEST_SOURCE_FILES}") + + # INTEGRATION TESTS + set(test_libs llmath llcommon llvfs ${LLCOMMON_LIBRARIES} ${WINDOWS_LIBRARIES}) + + # TODO: Some of these need refactoring to be proper Unit tests rather than Integration tests. + LL_ADD_INTEGRATION_TEST(lldir "" "${test_libs}") endif (LL_TESTS) diff --git a/indra/llvfs/lldiriterator.cpp b/indra/llvfs/lldiriterator.cpp index 041436ed92..25550321f0 100644 --- a/indra/llvfs/lldiriterator.cpp +++ b/indra/llvfs/lldiriterator.cpp @@ -121,6 +121,14 @@ bool LLDirIterator::Impl::next(std::string &fname) return found; } +/** +Converts the incoming glob into a regex. This involves +converting incoming glob expressions to regex equivilents and +at the same time, escaping any regex meaningful characters which +do not have glob meaning, i.e. + .()+|^$ +in the input. +*/ std::string glob_to_regex(const std::string& glob) { std::string regex; @@ -135,9 +143,6 @@ std::string glob_to_regex(const std::string& glob) switch (c) { - case '.': - regex+="\\."; - break; case '*': if (glob.begin() == i) { @@ -170,8 +175,16 @@ std::string glob_to_regex(const std::string& glob) case '!': regex+= square_brace_open ? '^' : c; break; + case '.': // This collection have different regex meaning + case '^': // and so need escaping. + case '(': + case ')': + case '+': + case '|': + case '$': + regex += '\\'; default: - regex+=c; + regex += c; break; } diff --git a/indra/llvfs/tests/lldiriterator_test.cpp b/indra/llvfs/tests/lldiriterator_test.cpp new file mode 100644 index 0000000000..505d86faa7 --- /dev/null +++ b/indra/llvfs/tests/lldiriterator_test.cpp @@ -0,0 +1,65 @@ +/** + * @file lldiriterator_test.cpp + * @date 2011-06 + * @brief LLDirIterator test cases. + * + * $LicenseInfo:firstyear=2011&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2011, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only., + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "linden_common.h" +#include "lltut.h" +#include "../lldiriterator.h" + + +namespace tut +{ + + struct LLDirIteratorFixture + { + LLDirIteratorFixture() + { + } + }; + typedef test_group<LLDirIteratorFixture> LLDirIteratorTest_factory; + typedef LLDirIteratorTest_factory::object LLDirIteratorTest_t; + LLDirIteratorTest_factory tf("LLDirIterator"); + + /* + CHOP-662 was originally introduced to deal with crashes deleting files from + a directory (VWR-25500). However, this introduced a crash looking for + old chat logs as the glob_to_regex function in lldiriterator wasn't escaping lots of regexp characters + */ + void test_chop_662(void) + { + // Check a selection of bad group names from the crash reports + LLDirIterator iter(".","+bad-group-name]+??-??.*"); + LLDirIterator iter1(".","))--@---bad-group-name2((??-??.*\\.txt"); + LLDirIterator iter2(".","__^v--x)Cuide d sua vida(x--v^__??-??.*"); + } + + template<> template<> + void LLDirIteratorTest_t::test<1>() + { + test_chop_662(); + } + +} diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 408d15b279..d2b912e8d1 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -5576,7 +5576,7 @@ <key>Type</key> <string>Boolean</string> <key>Value</key> - <real>1</real> + <real>0</real> </map> <key>MeshImportUseSLM</key> <map> diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp index efc4e23838..ebb5912ace 100644 --- a/indra/newview/lllogchat.cpp +++ b/indra/newview/lllogchat.cpp @@ -230,7 +230,7 @@ std::string LLLogChat::makeLogFileName(std::string filename) std::string LLLogChat::cleanFileName(std::string filename) { - std::string invalidChars = "\"\'\\/?*:.<>|"; + std::string invalidChars = "\"\'\\/?*:.<>|[]{}~"; // Cannot match glob or illegal filename chars std::string::size_type position = filename.find_first_of(invalidChars); while (position != filename.npos) { diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp index 9f3ee6ac5d..4974dde282 100644 --- a/indra/newview/llpreviewnotecard.cpp +++ b/indra/newview/llpreviewnotecard.cpp @@ -401,15 +401,14 @@ struct LLSaveNotecardInfo bool LLPreviewNotecard::saveIfNeeded(LLInventoryItem* copyitem) { - if(!gAssetStorage) + LLViewerTextEditor* editor = getChild<LLViewerTextEditor>("Notecard Editor"); + + if(!editor) { - llwarns << "Not connected to an asset storage system." << llendl; + llwarns << "Cannot get handle to the notecard editor." << llendl; return false; } - - LLViewerTextEditor* editor = getChild<LLViewerTextEditor>("Notecard Editor"); - if(!editor->isPristine()) { // We need to update the asset information @@ -436,8 +435,15 @@ bool LLPreviewNotecard::saveIfNeeded(LLInventoryItem* copyitem) // save it out to database if (item) { - std::string agent_url = gAgent.getRegion()->getCapability("UpdateNotecardAgentInventory"); - std::string task_url = gAgent.getRegion()->getCapability("UpdateNotecardTaskInventory"); + const LLViewerRegion* region = gAgent.getRegion(); + if (!region) + { + llwarns << "Not connected to a region, cannot save notecard." << llendl; + return false; + } + std::string agent_url = region->getCapability("UpdateNotecardAgentInventory"); + std::string task_url = region->getCapability("UpdateNotecardTaskInventory"); + if (mObjectUUID.isNull() && !agent_url.empty()) { // Saving into agent inventory @@ -472,6 +478,11 @@ bool LLPreviewNotecard::saveIfNeeded(LLInventoryItem* copyitem) (void*)info, FALSE); } + else // !gAssetStorage + { + llwarns << "Not connected to an asset storage system." << llendl; + return false; + } } } return true; diff --git a/indra/newview/skins/default/xui/de/floater_about_land.xml b/indra/newview/skins/default/xui/de/floater_about_land.xml index f1e42232c8..f0fa4386d2 100644 --- a/indra/newview/skins/default/xui/de/floater_about_land.xml +++ b/indra/newview/skins/default/xui/de/floater_about_land.xml @@ -219,38 +219,38 @@ werden. <text name="objects_available"> [COUNT] von [MAX] ([AVAILABLE] verfügbar) </text> - <text name="Primitives parcel supports:" width="200"> + <text name="Primitives parcel supports:"> Von Parzelle unterstützte Prims: </text> - <text left="204" name="object_contrib_text" width="152"> + <text name="object_contrib_text"> [COUNT] </text> <text name="Primitives on parcel:"> Prims auf Parzelle: </text> - <text left="204" name="total_objects_text" width="48"> + <text name="total_objects_text"> [COUNT] </text> - <text left="14" name="Owned by parcel owner:" width="200"> + <text name="Owned by parcel owner:" width="200"> Im Eigentum des Parzellenbesitzers: </text> - <text left="204" left_delta="200" name="owner_objects_text" width="48"> + <text left_delta="204" name="owner_objects_text"> [COUNT] </text> - <button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner" right="-135" width="60"/> - <button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnOwner..." right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119"/> - <text left="14" name="Set to group:"> + <button label="Anzeigen" label_selected="Anzeigen" name="ShowOwner"/> + <button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnOwner..." tool_tip="Objekte an ihre Eigentümer zurückgeben."/> + <text name="Set to group:"> Der Gruppe zugeordnet: </text> - <text left="204" name="group_objects_text" width="48"> + <text name="group_objects_text"> [COUNT] </text> - <button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup" right="-135" width="60"/> - <button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnGroup..." right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119"/> - <text left="14" name="Owned by others:" width="128"> + <button label="Anzeigen" label_selected="Anzeigen" name="ShowGroup"/> + <button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnGroup..." tool_tip="Objekte an ihre Eigentümer zurückgeben."/> + <text name="Owned by others:"> Im Eigentum anderer: </text> - <text left="204" name="other_objects_text" width="48"> + <text name="other_objects_text"> [COUNT] </text> <button label="Anzeigen" label_selected="Anzeigen" name="ShowOther"/> diff --git a/indra/newview/skins/default/xui/de/floater_perm_prefs.xml b/indra/newview/skins/default/xui/de/floater_perm_prefs.xml index fd65987aa9..9be22f3ccb 100644 --- a/indra/newview/skins/default/xui/de/floater_perm_prefs.xml +++ b/indra/newview/skins/default/xui/de/floater_perm_prefs.xml @@ -9,7 +9,7 @@ </text> <check_box label="Bearbeiten" name="next_owner_modify"/> <check_box label="Kopieren" name="next_owner_copy"/> - <check_box label="Verkaufen/Weggeben" left_delta="80" name="next_owner_transfer"/> + <check_box label="Verkaufen/Weggeben" name="next_owner_transfer"/> </panel> <button label="OK" label_selected="OK" name="ok"/> <button label="Abbrechen" label_selected="Abbrechen" name="cancel"/> diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml index c014b8e040..ae68c71a80 100644 --- a/indra/newview/skins/default/xui/de/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml @@ -4,7 +4,7 @@ unbekannt </floater.string> <radio_group label="Fototyp" name="snapshot_type_radio"> - <radio_item label="Email" name="postcard"/> + <radio_item label="E-Mail" name="postcard"/> <radio_item label="Mein Inventar ([AMOUNT] L$)" name="texture"/> <radio_item label="Auf meinem Computer speichern" name="local"/> </radio_group> diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml index 258e67a138..338b609343 100644 --- a/indra/newview/skins/default/xui/de/floater_tools.xml +++ b/indra/newview/skins/default/xui/de/floater_tools.xml @@ -64,9 +64,9 @@ <radio_item label="Fläche auswählen" name="radio select face"/> </radio_group> <check_box label="Verknüpfte Teile bearbeiten" name="checkbox edit linked parts"/> - <button label="Link" name="link_btn"/> - <button label="Verknüpfung auflösen" name="unlink_btn"/> - <text name="RenderingCost" tool_tip="Zeigt die errechneten Wiedergabekosten für dieses Objekt"> + <button label="Link" name="link_btn" width="30"/> + <button label="Verknüpfung auflösen" name="unlink_btn" width="126"/> + <text name="RenderingCost" tool_tip="Zeigt die errechneten Wiedergabekosten für dieses Objekt" left_pad="0"> þ: [COUNT] </text> <check_box label="" name="checkbox uniform"/> diff --git a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml index b874074c79..9175ea0bae 100644 --- a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml @@ -60,7 +60,7 @@ m </text> <slider label="Max. Partikelzahl:" name="MaxParticleCount"/> - <slider label="Max. Anzahl an voll dargestellten Avataren:" name="MaxNumberAvatarDrawn"/> + <slider label="Max. Anzahl an voll dargestellten Avataren:" label_width="230" name="MaxNumberAvatarDrawn" width="315"/> <slider label="Post-Processing-Qualität:" name="RenderPostProcess"/> <text name="MeshDetailText"> Darstellungsgrad: diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index 7441b2cd9c..8b8f70b940 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -279,7 +279,7 @@ layout="topleft" left_pad="2" name="unlink_btn" - width="50"> + width="105"> <button.commit_callback function="BuildTool.UnlinkObjects"/> </button> diff --git a/indra/newview/skins/default/xui/en/panel_nearby_media.xml b/indra/newview/skins/default/xui/en/panel_nearby_media.xml index 9bd60b935f..bfc503f05b 100644 --- a/indra/newview/skins/default/xui/en/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/en/panel_nearby_media.xml @@ -104,12 +104,12 @@ top_pad="15" left="10" name="show_text" - width="40"> + width="62"> Show: </text> <combo_box height="23" - left="50" + left="72" width="140" top_delta="-5" follows="left|top" diff --git a/indra/newview/skins/default/xui/es/floater_buy_currency.xml b/indra/newview/skins/default/xui/es/floater_buy_currency.xml index 2f92cb55eb..43bbf0b70f 100644 --- a/indra/newview/skins/default/xui/es/floater_buy_currency.xml +++ b/indra/newview/skins/default/xui/es/floater_buy_currency.xml @@ -18,7 +18,7 @@ <text name="balance_amount"> [AMT] L$ </text> - <text name="currency_action" width="50"> + <text name="currency_action"> Quiero comprar </text> <text name="currency_label"> diff --git a/indra/newview/skins/default/xui/es/panel_navigation_bar.xml b/indra/newview/skins/default/xui/es/panel_navigation_bar.xml index e8e95c3bac..293c9ef1d9 100644 --- a/indra/newview/skins/default/xui/es/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/es/panel_navigation_bar.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <panel name="navigation_bar"> <panel name="navigation_panel"> - <pull_button name="back_btn" tool_tip="Volver a lo localización anterior"/> + <pull_button name="back_btn" tool_tip="Volver a la localización anterior"/> <pull_button name="forward_btn" tool_tip="Ir una localización adelante"/> <button name="home_btn" tool_tip="Teleportar a mi Base"/> <location_input label="Localización" name="location_combo"/> diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml index 3731b6b57c..b759eed738 100644 --- a/indra/newview/skins/default/xui/es/strings.xml +++ b/indra/newview/skins/default/xui/es/strings.xml @@ -3628,6 +3628,9 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE]. <string name="LocationCtrlComboBtnTooltip"> Historial de mis localizaciones </string> + <string name="LocationCtrlForSaleTooltip"> + Comprar este terreno + </string> <string name="LocationCtrlAdultIconTooltip"> Región Adulta </string> diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml b/indra/newview/skins/default/xui/ja/floater_tools.xml index b29f744a68..f7d77d351e 100644 --- a/indra/newview/skins/default/xui/ja/floater_tools.xml +++ b/indra/newview/skins/default/xui/ja/floater_tools.xml @@ -74,8 +74,8 @@ 両側を延ばす </text> <check_box initial_value="true" label="テクスチャを引き延ばす" name="checkbox stretch textures"/> - <check_box initial_value="true" label="グリッドにスナップ" left_delta="27" name="checkbox snap to grid"/> - <combo_box left_delta="60" name="combobox grid mode" tool_tip="オブジェクトの配置に使うグリッドルーラを選択します" width="76"> + <check_box initial_value="true" label="グリッドにスナップ" name="checkbox snap to grid"/> + <combo_box name="combobox grid mode" tool_tip="オブジェクトの配置に使うグリッドルーラを選択します" > <combo_box.item label="インワールドグリッド" name="World"/> <combo_box.item label="ローカルグリッド" name="Local"/> <combo_box.item label="リファレンスグリッド" name="Reference"/> @@ -137,7 +137,7 @@ <text name="object_cost" tool_tip="[prims] / [physics complexity] として現在選択されているオブジェクトのコスト"> 料金: [COST] / [PHYSICS] </text> - <tab_container name="Object Info Tabs" tab_max_width="150" tab_min_width="30"> + <tab_container name="Object Info Tabs" > <panel label="一般" name="General"> <panel.string name="text deed continued"> 譲渡 @@ -379,22 +379,22 @@ オブジェクトの特徴を編集: </text> <check_box label="フレキシブルパス" name="Flexible1D Checkbox Ctrl" tool_tip="Z 軸を中心にオブジェクトの屈曲を有効にします(クライアント側のみ)"/> - <spinner label="柔軟性" label_width="72" name="FlexNumSections" width="135"/> - <spinner label="重力" label_width="72" name="FlexGravity" width="135"/> - <spinner label="ドラッグ" label_width="72" name="FlexFriction" width="135"/> - <spinner label="風" label_width="72" name="FlexWind" width="135"/> - <spinner label="緊張" label_width="72" name="FlexTension" width="135"/> - <spinner label="X 軸方向の力" label_width="72" name="FlexForceX" width="135"/> - <spinner label="Y 軸方向の力" label_width="72" name="FlexForceY" width="135"/> - <spinner label="Z 軸方向の力" label_width="72" name="FlexForceZ" width="135"/> + <spinner label="柔軟性" name="FlexNumSections" /> + <spinner label="重力" name="FlexGravity" /> + <spinner label="ドラッグ" name="FlexFriction" /> + <spinner label="風" name="FlexWind" /> + <spinner label="緊張" name="FlexTension" /> + <spinner label="X 軸方向の力" name="FlexForceX" /> + <spinner label="Y 軸方向の力" name="FlexForceY" /> + <spinner label="Z 軸方向の力" name="FlexForceZ" /> <check_box label="光" name="Light Checkbox Ctrl" tool_tip="オブジェクトが発光します"/> - <color_swatch label="" left_delta="74" name="colorswatch" tool_tip="クリックしてカラーピッカーを開きます"/> + <color_swatch label="" name="colorswatch" tool_tip="クリックしてカラーピッカーを開きます"/> <texture_picker label="" name="light texture control" tool_tip="クリックで投影画を選択します(遅延レンダリング有効時のみ)"/> - <spinner label="輝度" label_width="72" name="Light Intensity" width="135"/> + <spinner label="輝度" name="Light Intensity" /> <spinner label="FOV" name="Light FOV"/> - <spinner label="半径" label_width="72" name="Light Radius" width="135"/> + <spinner label="半径" name="Light Radius" /> <spinner label="焦点" name="Light Focus"/> - <spinner label="弱まる" label_width="72" name="Light Falloff" width="135"/> + <spinner label="弱まる" name="Light Falloff" /> <spinner label="環境" name="Light Ambiance"/> <text name="label physicsshapetype"> 実像の種類: @@ -496,18 +496,18 @@ </panel> </panel> <panel label="中身" name="Contents"> - <button label="新しいスクリプト" label_selected="新規スクリプト" name="button new script" width="120"/> - <button label="権限" left_delta="130" name="button permissions" width="80"/> + <button label="新しいスクリプト" label_selected="新規スクリプト" name="button new script" /> + <button label="権限" name="button permissions" /> </panel> </tab_container> <panel name="land info panel"> <text name="label_parcel_info"> 区画情報 </text> - <text name="label_area_price" width="200"> + <text name="label_area_price" > 価格: [AREA] 平方メートル L$ [PRICE] </text> - <text name="label_area" width="200"> + <text name="label_area" > 面積: [AREA] 平方メートル </text> <button label="土地情報" label_selected="土地情報" name="button about land"/> |