diff options
author | Jacek Antonelli | 2009-05-30 17:16:26 -0500 |
---|---|---|
committer | Jacek Antonelli | 2009-05-30 19:12:37 -0500 |
commit | 499afbab7be4c4136eea0e1897319c3ac4e9799d (patch) | |
tree | 95e9de524994eae69b0dd88b8c6608d5f45d030c /linden/indra/newview/llappviewerlinux.cpp | |
parent | Fixed end-of-line style for Info-Imprudence.plist. (diff) | |
parent | Second Life viewer sources 1.22.11 (diff) | |
download | meta-impy-499afbab7be4c4136eea0e1897319c3ac4e9799d.zip meta-impy-499afbab7be4c4136eea0e1897319c3ac4e9799d.tar.gz meta-impy-499afbab7be4c4136eea0e1897319c3ac4e9799d.tar.bz2 meta-impy-499afbab7be4c4136eea0e1897319c3ac4e9799d.tar.xz |
Merged SL 1.22.11 into Imprudence 1.1 RC2.
Conflicts:
linden/doc/contributions.txt
linden/indra/cmake/APR.cmake
linden/indra/cmake/CopyWinLibs.cmake
linden/indra/cmake/LLKDU.cmake (removed)
linden/indra/cmake/LLMedia.cmake
linden/indra/cmake/OPENAL.cmake
linden/indra/cmake/QuickTime.cmake (removed)
linden/indra/develop.py
linden/indra/lib/python/indra/base/llsd.py
linden/indra/lib/python/indra/util/fastest_elementtree.py
linden/indra/lib/python/indra/util/llmanifest.py
linden/indra/lib/python/indra/util/named_query.py
linden/indra/llaudio/CMakeLists.txt
linden/indra/llaudio/audioengine.cpp
linden/indra/llaudio/audioengine.h
linden/indra/llaudio/audioengine_fmod.cpp
linden/indra/llaudio/audioengine_fmod.h
linden/indra/llaudio/audioengine_openal.cpp
linden/indra/llaudio/audioengine_openal.h
linden/indra/llaudio/listener_openal.cpp
linden/indra/llaudio/listener_openal.h
linden/indra/llaudio/windgen.h
linden/indra/llcrashlogger/llcrashlogger.cpp
linden/indra/llmedia/llmediaimplgstreamer.cpp
linden/indra/llmedia/llmediaimplgstreamer_syms.cpp (removed)
linden/indra/llmedia/llmediaimplgstreamer_syms.h (removed)
linden/indra/llmessage/llcircuit.h
linden/indra/llrender/llgl.cpp
linden/indra/llrender/llrender.h
linden/indra/llui/llfloater.cpp
linden/indra/llui/lltexteditor.cpp
linden/indra/llwindow/llwindowsdl.cpp
linden/indra/mac_crash_logger/CMakeLists.txt
linden/indra/mac_updater/CMakeLists.txt
linden/indra/newview/CMakeLists.txt
linden/indra/newview/English.lproj/InfoPlist.strings
linden/indra/newview/Info-Imprudence.plist
linden/indra/newview/installers/windows/installer_template.nsi
linden/indra/newview/installers/windows/lang_de.nsi
linden/indra/newview/installers/windows/lang_en-us.nsi
linden/indra/newview/installers/windows/lang_ja.nsi
linden/indra/newview/installers/windows/lang_ko.nsi
linden/indra/newview/llappviewer.cpp
linden/indra/newview/llaudiosourcevo.cpp
linden/indra/newview/llfloaterabout.cpp
linden/indra/newview/llfloaterhtml.cpp
linden/indra/newview/llfloaterhtml.h
linden/indra/newview/llfloaterinspect.cpp
linden/indra/newview/llfloatersnapshot.cpp
linden/indra/newview/llpanelgeneral.cpp
linden/indra/newview/llpanelgeneral.h
linden/indra/newview/llpanellogin.cpp
linden/indra/newview/llpanelobject.cpp
linden/indra/newview/llurlhistory.cpp
linden/indra/newview/llviewermenu.cpp
linden/indra/newview/llviewernetwork.cpp
linden/indra/newview/llviewernetwork.h
linden/indra/newview/llviewerobject.cpp
linden/indra/newview/llviewerwindow.cpp
linden/indra/newview/llvoavatar.cpp
linden/indra/newview/res/viewerRes.rc
linden/indra/newview/skins/default/xui/de/floater_env_settings.xml
linden/indra/newview/skins/default/xui/de/floater_html.xml
linden/indra/newview/skins/default/xui/de/floater_inspect.xml
linden/indra/newview/skins/default/xui/de/floater_instant_message_group.xml
linden/indra/newview/skins/default/xui/de/floater_lagmeter.xml
linden/indra/newview/skins/default/xui/de/floater_lsl_guide.xml
linden/indra/newview/skins/default/xui/de/floater_url_entry.xml
linden/indra/newview/skins/default/xui/de/floater_water.xml
linden/indra/newview/skins/default/xui/de/mime_types.xml
linden/indra/newview/skins/default/xui/de/need_to_long.xml
linden/indra/newview/skins/default/xui/de/need_to_translate.xml
linden/indra/newview/skins/default/xui/de/need_to_update.xml
linden/indra/newview/skins/default/xui/de/panel_friends.xml
linden/indra/newview/skins/default/xui/de/panel_media_remote_expanded.xml
linden/indra/newview/skins/default/xui/de/panel_preferences_voice.xml
linden/indra/newview/skins/default/xui/de/panel_voice_controls.xml
linden/indra/newview/skins/default/xui/de/panel_voice_enable.xml
linden/indra/newview/skins/default/xui/de/panel_voice_options.xml
linden/indra/newview/skins/default/xui/de/strings.xml
linden/indra/newview/skins/default/xui/en-us/floater_chat_history.xml
linden/indra/newview/skins/default/xui/en-us/floater_instant_message_ad_hoc.xml
linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml
linden/indra/newview/skins/default/xui/en-us/floater_lagmeter.xml
linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml
linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml
linden/indra/newview/skins/default/xui/en-us/panel_audio_device.xml
linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml
linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml
linden/indra/newview/skins/default/xui/en-us/panel_preferences_voice.xml
linden/indra/newview/skins/default/xui/en-us/panel_voice_remote.xml
linden/indra/newview/skins/default/xui/en-us/panel_voice_remote_expanded.xml
linden/indra/newview/skins/default/xui/es/alerts.xml
linden/indra/newview/skins/default/xui/es/floater_about_land.xml
linden/indra/newview/skins/default/xui/es/floater_mute.xml
linden/indra/newview/skins/default/xui/es/menu_viewer.xml
linden/indra/newview/skins/default/xui/es/panel_group_land_money.xml
linden/indra/newview/skins/default/xui/es/panel_preferences_general.xml
linden/indra/newview/skins/default/xui/fr/alerts.xml
linden/indra/newview/skins/default/xui/fr/floater_about.xml
linden/indra/newview/skins/default/xui/fr/floater_about_land.xml
linden/indra/newview/skins/default/xui/fr/floater_active_speakers.xml
linden/indra/newview/skins/default/xui/fr/floater_animation_preview.xml
linden/indra/newview/skins/default/xui/fr/floater_avatar_picker.xml
linden/indra/newview/skins/default/xui/fr/floater_avatar_textures.xml
linden/indra/newview/skins/default/xui/fr/floater_buy_contents.xml
linden/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
linden/indra/newview/skins/default/xui/fr/floater_buy_land.xml
linden/indra/newview/skins/default/xui/fr/floater_buy_object.xml
linden/indra/newview/skins/default/xui/fr/floater_chat_history.xml
linden/indra/newview/skins/default/xui/fr/floater_color_picker.xml
linden/indra/newview/skins/default/xui/fr/floater_customize.xml
linden/indra/newview/skins/default/xui/fr/floater_directory.xml
linden/indra/newview/skins/default/xui/fr/floater_env_settings.xml
linden/indra/newview/skins/default/xui/fr/floater_god_tools.xml
linden/indra/newview/skins/default/xui/fr/floater_group_info.xml
linden/indra/newview/skins/default/xui/fr/floater_hardware_settings.xml
linden/indra/newview/skins/default/xui/fr/floater_html.xml
linden/indra/newview/skins/default/xui/fr/floater_image_preview.xml
linden/indra/newview/skins/default/xui/fr/floater_import.xml
linden/indra/newview/skins/default/xui/fr/floater_instant_message.xml
linden/indra/newview/skins/default/xui/fr/floater_instant_message_ad_hoc.xml
linden/indra/newview/skins/default/xui/fr/floater_instant_message_group.xml
linden/indra/newview/skins/default/xui/fr/floater_inventory.xml
linden/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
linden/indra/newview/skins/default/xui/fr/floater_inventory_view_finder.xml
linden/indra/newview/skins/default/xui/fr/floater_joystick.xml
linden/indra/newview/skins/default/xui/fr/floater_lagmeter.xml
linden/indra/newview/skins/default/xui/fr/floater_land_holdings.xml
linden/indra/newview/skins/default/xui/fr/floater_lsl_guide.xml
linden/indra/newview/skins/default/xui/fr/floater_media_browser.xml
linden/indra/newview/skins/default/xui/fr/floater_moveview.xml
linden/indra/newview/skins/default/xui/fr/floater_mute.xml
linden/indra/newview/skins/default/xui/fr/floater_mute_object.xml
linden/indra/newview/skins/default/xui/fr/floater_name_description.xml
linden/indra/newview/skins/default/xui/fr/floater_new_outfit_dialog.xml
linden/indra/newview/skins/default/xui/fr/floater_openobject.xml
linden/indra/newview/skins/default/xui/fr/floater_pay.xml
linden/indra/newview/skins/default/xui/fr/floater_pay_object.xml
linden/indra/newview/skins/default/xui/fr/floater_preferences.xml
linden/indra/newview/skins/default/xui/fr/floater_preview_animation.xml
linden/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
linden/indra/newview/skins/default/xui/fr/floater_preview_notecard.xml
linden/indra/newview/skins/default/xui/fr/floater_preview_notecard_keep_discard.xml
linden/indra/newview/skins/default/xui/fr/floater_preview_sound.xml
linden/indra/newview/skins/default/xui/fr/floater_price_for_listing.xml
linden/indra/newview/skins/default/xui/fr/floater_region_info.xml
linden/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
linden/indra/newview/skins/default/xui/fr/floater_report_bug.xml
linden/indra/newview/skins/default/xui/fr/floater_script_ed_panel.xml
linden/indra/newview/skins/default/xui/fr/floater_sell_land.xml
linden/indra/newview/skins/default/xui/fr/floater_settings_debug.xml
linden/indra/newview/skins/default/xui/fr/floater_skin_preview_template.xml
linden/indra/newview/skins/default/xui/fr/floater_snapshot.xml
linden/indra/newview/skins/default/xui/fr/floater_sound_preview.xml
linden/indra/newview/skins/default/xui/fr/floater_telehub.xml
linden/indra/newview/skins/default/xui/fr/floater_texture_ctrl.xml
linden/indra/newview/skins/default/xui/fr/floater_tools.xml
linden/indra/newview/skins/default/xui/fr/floater_top_objects.xml
linden/indra/newview/skins/default/xui/fr/floater_url_entry.xml
linden/indra/newview/skins/default/xui/fr/floater_windlight_options.xml
linden/indra/newview/skins/default/xui/fr/floater_world_map.xml
linden/indra/newview/skins/default/xui/fr/menu_inventory.xml
linden/indra/newview/skins/default/xui/fr/menu_pie_avatar.xml
linden/indra/newview/skins/default/xui/fr/menu_pie_land.xml
linden/indra/newview/skins/default/xui/fr/menu_pie_self.xml
linden/indra/newview/skins/default/xui/fr/menu_viewer.xml
linden/indra/newview/skins/default/xui/fr/mime_types.xml
linden/indra/newview/skins/default/xui/fr/notify.xml
linden/indra/newview/skins/default/xui/fr/panel_audio.xml
linden/indra/newview/skins/default/xui/fr/panel_audio_device.xml
linden/indra/newview/skins/default/xui/fr/panel_avatar.xml
linden/indra/newview/skins/default/xui/fr/panel_avatar_classified.xml
linden/indra/newview/skins/default/xui/fr/panel_chat_bar.xml
linden/indra/newview/skins/default/xui/fr/panel_classified.xml
linden/indra/newview/skins/default/xui/fr/panel_event.xml
linden/indra/newview/skins/default/xui/fr/panel_friends.xml
linden/indra/newview/skins/default/xui/fr/panel_group.xml
linden/indra/newview/skins/default/xui/fr/panel_group_finder.xml
linden/indra/newview/skins/default/xui/fr/panel_group_general.xml
linden/indra/newview/skins/default/xui/fr/panel_group_invite.xml
linden/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
linden/indra/newview/skins/default/xui/fr/panel_group_notices.xml
linden/indra/newview/skins/default/xui/fr/panel_group_roles.xml
linden/indra/newview/skins/default/xui/fr/panel_group_voting.xml
linden/indra/newview/skins/default/xui/fr/panel_groups.xml
linden/indra/newview/skins/default/xui/fr/panel_login.xml
linden/indra/newview/skins/default/xui/fr/panel_master_volume.xml
linden/indra/newview/skins/default/xui/fr/panel_media_controls.xml
linden/indra/newview/skins/default/xui/fr/panel_media_remote.xml
linden/indra/newview/skins/default/xui/fr/panel_media_remote_expanded.xml
linden/indra/newview/skins/default/xui/fr/panel_overlaybar.xml
linden/indra/newview/skins/default/xui/fr/panel_place.xml
linden/indra/newview/skins/default/xui/fr/panel_place_small.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_audio.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_im.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_input.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_network.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_popups.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_voice.xml
linden/indra/newview/skins/default/xui/fr/panel_preferences_web.xml
linden/indra/newview/skins/default/xui/fr/panel_region_covenant.xml
linden/indra/newview/skins/default/xui/fr/panel_region_debug.xml
linden/indra/newview/skins/default/xui/fr/panel_region_estate.xml
linden/indra/newview/skins/default/xui/fr/panel_region_general.xml
linden/indra/newview/skins/default/xui/fr/panel_region_terrain.xml
linden/indra/newview/skins/default/xui/fr/panel_scrolling_param.xml
linden/indra/newview/skins/default/xui/fr/panel_speaker_controls.xml
linden/indra/newview/skins/default/xui/fr/panel_status_bar.xml
linden/indra/newview/skins/default/xui/fr/panel_toolbar.xml
linden/indra/newview/skins/default/xui/fr/panel_voice_controls.xml
linden/indra/newview/skins/default/xui/fr/panel_voice_enable.xml
linden/indra/newview/skins/default/xui/fr/panel_voice_options.xml
linden/indra/newview/skins/default/xui/fr/panel_voice_remote_expanded.xml
linden/indra/newview/skins/default/xui/fr/role_actions.xml
linden/indra/newview/skins/default/xui/fr/strings.xml
linden/indra/newview/skins/default/xui/ja/floater_hardware_settings.xml
linden/indra/newview/skins/default/xui/ja/floater_inspect.xml
linden/indra/newview/skins/default/xui/ja/floater_instant_message_group.xml
linden/indra/newview/skins/default/xui/ja/floater_lsl_guide.xml
linden/indra/newview/skins/default/xui/ja/floater_media_browser.xml
linden/indra/newview/skins/default/xui/ja/floater_mute_object.xml
linden/indra/newview/skins/default/xui/ja/floater_url_entry.xml
linden/indra/newview/skins/default/xui/ja/need_to_long.xml
linden/indra/newview/skins/default/xui/ja/need_to_translate.xml
linden/indra/newview/skins/default/xui/ja/need_to_update.xml
linden/indra/newview/skins/default/xui/ja/panel_audio.xml
linden/indra/newview/skins/default/xui/ja/panel_groups.xml
linden/indra/newview/skins/default/xui/ja/panel_preferences_voice.xml
linden/indra/newview/skins/default/xui/ja/panel_preferences_web.xml
linden/indra/newview/skins/default/xui/ja/strings.xml
linden/indra/newview/skins/default/xui/ko/need_to_long.xml
linden/indra/newview/skins/default/xui/ko/need_to_translate.xml
linden/indra/newview/skins/default/xui/ko/need_to_update.xml
linden/indra/newview/skins/default/xui/pt/alerts.xml
linden/indra/newview/skins/default/xui/pt/floater_about.xml
linden/indra/newview/skins/default/xui/pt/floater_about_land.xml
linden/indra/newview/skins/default/xui/pt/floater_animation_preview.xml
linden/indra/newview/skins/default/xui/pt/floater_avatar_picker.xml
linden/indra/newview/skins/default/xui/pt/floater_avatar_textures.xml
linden/indra/newview/skins/default/xui/pt/floater_build_options.xml
linden/indra/newview/skins/default/xui/pt/floater_buy_contents.xml
linden/indra/newview/skins/default/xui/pt/floater_buy_currency.xml
linden/indra/newview/skins/default/xui/pt/floater_buy_land.xml
linden/indra/newview/skins/default/xui/pt/floater_buy_object.xml
linden/indra/newview/skins/default/xui/pt/floater_chat_history.xml
linden/indra/newview/skins/default/xui/pt/floater_color_picker.xml
linden/indra/newview/skins/default/xui/pt/floater_customize.xml
linden/indra/newview/skins/default/xui/pt/floater_directory.xml
linden/indra/newview/skins/default/xui/pt/floater_gesture.xml
linden/indra/newview/skins/default/xui/pt/floater_html.xml
linden/indra/newview/skins/default/xui/pt/floater_im.xml
linden/indra/newview/skins/default/xui/pt/floater_image_preview.xml
linden/indra/newview/skins/default/xui/pt/floater_instant_message.xml
linden/indra/newview/skins/default/xui/pt/floater_instant_message_ad_hoc.xml
linden/indra/newview/skins/default/xui/pt/floater_inventory.xml
linden/indra/newview/skins/default/xui/pt/floater_inventory_item_properties.xml
linden/indra/newview/skins/default/xui/pt/floater_joystick.xml
linden/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
linden/indra/newview/skins/default/xui/pt/floater_live_lsleditor.xml
linden/indra/newview/skins/default/xui/pt/floater_mute.xml
linden/indra/newview/skins/default/xui/pt/floater_new_outfit_dialog.xml
linden/indra/newview/skins/default/xui/pt/floater_openobject.xml
linden/indra/newview/skins/default/xui/pt/floater_pay.xml
linden/indra/newview/skins/default/xui/pt/floater_pay_object.xml
linden/indra/newview/skins/default/xui/pt/floater_postcard.xml
linden/indra/newview/skins/default/xui/pt/floater_preview_animation.xml
linden/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
linden/indra/newview/skins/default/xui/pt/floater_preview_notecard.xml
linden/indra/newview/skins/default/xui/pt/floater_preview_notecard_keep_discard.xml
linden/indra/newview/skins/default/xui/pt/floater_report_abuse.xml
linden/indra/newview/skins/default/xui/pt/floater_report_bug.xml
linden/indra/newview/skins/default/xui/pt/floater_script_debug.xml
linden/indra/newview/skins/default/xui/pt/floater_script_ed_panel.xml
linden/indra/newview/skins/default/xui/pt/floater_snapshot.xml
linden/indra/newview/skins/default/xui/pt/floater_texture_ctrl.xml
linden/indra/newview/skins/default/xui/pt/floater_tools.xml
linden/indra/newview/skins/default/xui/pt/floater_top_objects.xml
linden/indra/newview/skins/default/xui/pt/floater_tos.xml
linden/indra/newview/skins/default/xui/pt/floater_world_map.xml
linden/indra/newview/skins/default/xui/pt/menu_inventory.xml
linden/indra/newview/skins/default/xui/pt/menu_pie_avatar.xml
linden/indra/newview/skins/default/xui/pt/menu_viewer.xml
linden/indra/newview/skins/default/xui/pt/notify.xml
linden/indra/newview/skins/default/xui/pt/panel_avatar.xml
linden/indra/newview/skins/default/xui/pt/panel_avatar_classified.xml
linden/indra/newview/skins/default/xui/pt/panel_chat_bar.xml
linden/indra/newview/skins/default/xui/pt/panel_classified.xml
linden/indra/newview/skins/default/xui/pt/panel_event.xml
linden/indra/newview/skins/default/xui/pt/panel_group_general.xml
linden/indra/newview/skins/default/xui/pt/panel_group_invite.xml
linden/indra/newview/skins/default/xui/pt/panel_group_land_money.xml
linden/indra/newview/skins/default/xui/pt/panel_group_notices.xml
linden/indra/newview/skins/default/xui/pt/panel_group_roles.xml
linden/indra/newview/skins/default/xui/pt/panel_group_voting.xml
linden/indra/newview/skins/default/xui/pt/panel_login.xml
linden/indra/newview/skins/default/xui/pt/panel_overlaybar.xml
linden/indra/newview/skins/default/xui/pt/panel_place.xml
linden/indra/newview/skins/default/xui/pt/panel_place_small.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_audio.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_general.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_im.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_input.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_network.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_popups.xml
linden/indra/newview/skins/default/xui/pt/panel_preferences_web.xml
linden/indra/newview/skins/default/xui/pt/panel_region_covenant.xml
linden/indra/newview/skins/default/xui/pt/panel_region_debug.xml
linden/indra/newview/skins/default/xui/pt/panel_region_estate.xml
linden/indra/newview/skins/default/xui/pt/panel_region_general.xml
linden/indra/newview/skins/default/xui/pt/panel_status_bar.xml
linden/indra/newview/skins/default/xui/pt/panel_toolbar.xml
linden/indra/newview/skins/default/xui/pt/teleport_strings.xml
linden/indra/newview/skins/default/xui/zh/floater_account_history.xml
linden/indra/newview/skins/default/xui/zh/floater_god_tools.xml
linden/indra/newview/skins/default/xui/zh/floater_html.xml
linden/indra/newview/skins/default/xui/zh/floater_inspect.xml
linden/indra/newview/skins/default/xui/zh/floater_inventory_view_finder.xml
linden/indra/newview/skins/default/xui/zh/floater_preferences.xml
linden/indra/newview/skins/default/xui/zh/floater_sell_land.xml
linden/indra/newview/skins/default/xui/zh/floater_settings_debug.xml
linden/indra/newview/skins/default/xui/zh/menu_pie_attachment.xml
linden/indra/newview/skins/default/xui/zh/menu_pie_avatar.xml
linden/indra/newview/skins/default/xui/zh/menu_pie_land.xml
linden/indra/newview/skins/default/xui/zh/menu_pie_object.xml
linden/indra/newview/skins/default/xui/zh/menu_pie_self.xml
linden/indra/newview/skins/default/xui/zh/menu_viewer.xml
linden/indra/newview/skins/default/xui/zh/need_to_translate.xml
linden/indra/newview/skins/default/xui/zh/panel_account_details.xml
linden/indra/newview/skins/default/xui/zh/panel_account_planning.xml
linden/indra/newview/skins/default/xui/zh/panel_account_transactions.xml
linden/indra/newview/skins/default/xui/zh/panel_avatar.xml
linden/indra/newview/skins/default/xui/zh/panel_group.xml
linden/indra/newview/skins/default/xui/zh/panel_group_finder.xml
linden/indra/newview/skins/default/xui/zh/panel_group_general.xml
linden/indra/newview/skins/default/xui/zh/panel_group_invite.xml
linden/indra/newview/skins/default/xui/zh/panel_group_land_money.xml
linden/indra/newview/skins/default/xui/zh/panel_group_notices.xml
linden/indra/newview/skins/default/xui/zh/panel_group_roles.xml
linden/indra/newview/skins/default/xui/zh/panel_group_voting.xml
linden/indra/newview/skins/default/xui/zh/panel_preferences_audio.xml
linden/indra/newview/skins/default/xui/zh/panel_preferences_chat.xml
linden/indra/newview/skins/default/xui/zh/panel_preferences_im.xml
linden/indra/newview/skins/default/xui/zh/panel_preferences_popups.xml
linden/indra/newview/skins/default/xui/zh/panel_region_covenant.xml
linden/indra/newview/skins/default/xui/zh/strings.xml
linden/indra/newview/skins/default/xui/zh/strings_long.xml
linden/indra/newview/skins/silver/xui/en-us/floater_about_land.xml
linden/indra/newview/skins/silver/xui/en-us/panel_status_bar.xml
linden/indra/newview/viewer_manifest.py
linden/indra/win_updater/updater.cpp
linden/install.xml
Diffstat (limited to 'linden/indra/newview/llappviewerlinux.cpp')
-rw-r--r-- | linden/indra/newview/llappviewerlinux.cpp | 309 |
1 files changed, 271 insertions, 38 deletions
diff --git a/linden/indra/newview/llappviewerlinux.cpp b/linden/indra/newview/llappviewerlinux.cpp index 0a4a9cf..ad90b82 100644 --- a/linden/indra/newview/llappviewerlinux.cpp +++ b/linden/indra/newview/llappviewerlinux.cpp | |||
@@ -1,10 +1,10 @@ | |||
1 | /** | 1 | /** |
2 | * @file llappviewerlinux.cpp | 2 | * @file llappviewerlinux.cpp |
3 | * @brief The LLAppViewerWin32 class definitions | 3 | * @brief The LLAppViewerLinux class definitions |
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2007&license=viewergpl$ |
6 | * | 6 | * |
7 | * Copyright (c) 2007-2008, Linden Research, Inc. | 7 | * Copyright (c) 2007-2009, Linden Research, Inc. |
8 | * | 8 | * |
9 | * Second Life Viewer Source Code | 9 | * Second Life Viewer Source Code |
10 | * The source code in this file ("Source Code") is provided by Linden Lab | 10 | * The source code in this file ("Source Code") is provided by Linden Lab |
@@ -36,8 +36,10 @@ | |||
36 | #include "llcommandlineparser.h" | 36 | #include "llcommandlineparser.h" |
37 | 37 | ||
38 | #include "llmemtype.h" | 38 | #include "llmemtype.h" |
39 | #include "llurldispatcher.h" // SLURL from other app instance | ||
39 | #include "llviewernetwork.h" | 40 | #include "llviewernetwork.h" |
40 | #include "llviewercontrol.h" | 41 | #include "llviewercontrol.h" |
42 | #include "llwindowsdl.h" | ||
41 | #include "llmd5.h" | 43 | #include "llmd5.h" |
42 | #include "llfindlocale.h" | 44 | #include "llfindlocale.h" |
43 | 45 | ||
@@ -60,6 +62,17 @@ | |||
60 | # include "ELFIO/ELFIO.h" // for better backtraces | 62 | # include "ELFIO/ELFIO.h" // for better backtraces |
61 | #endif | 63 | #endif |
62 | 64 | ||
65 | #if LL_DBUS_ENABLED | ||
66 | # include "llappviewerlinux_api_dbus.h" | ||
67 | |||
68 | // regrettable hacks to give us better runtime compatibility with older systems inside llappviewerlinux_api.h: | ||
69 | #define llg_return_if_fail(COND) do{if (!(COND)) return;}while(0) | ||
70 | #undef g_return_if_fail | ||
71 | #define g_return_if_fail(COND) llg_return_if_fail(COND) | ||
72 | // The generated API | ||
73 | # include "llappviewerlinux_api.h" | ||
74 | #endif | ||
75 | |||
63 | namespace | 76 | namespace |
64 | { | 77 | { |
65 | int gArgC = 0; | 78 | int gArgC = 0; |
@@ -321,6 +334,193 @@ bool LLAppViewerLinux::init() | |||
321 | return LLAppViewer::init(); | 334 | return LLAppViewer::init(); |
322 | } | 335 | } |
323 | 336 | ||
337 | bool LLAppViewerLinux::restoreErrorTrap() | ||
338 | { | ||
339 | // *NOTE:Mani there is a case for implementing this or the mac. | ||
340 | // Linux doesn't need it to my knowledge. | ||
341 | return true; | ||
342 | } | ||
343 | |||
344 | ///////////////////////////////////////// | ||
345 | #if LL_DBUS_ENABLED | ||
346 | |||
347 | typedef struct | ||
348 | { | ||
349 | GObjectClass parent_class; | ||
350 | } ViewerAppAPIClass; | ||
351 | |||
352 | static void viewerappapi_init(ViewerAppAPI *server); | ||
353 | static void viewerappapi_class_init(ViewerAppAPIClass *klass); | ||
354 | |||
355 | /// | ||
356 | |||
357 | // regrettable hacks to give us better runtime compatibility with older systems in general | ||
358 | static GType llg_type_register_static_simple_ONCE(GType parent_type, | ||
359 | const gchar *type_name, | ||
360 | guint class_size, | ||
361 | GClassInitFunc class_init, | ||
362 | guint instance_size, | ||
363 | GInstanceInitFunc instance_init, | ||
364 | GTypeFlags flags) | ||
365 | { | ||
366 | static GTypeInfo type_info; | ||
367 | memset(&type_info, 0, sizeof(type_info)); | ||
368 | |||
369 | type_info.class_size = class_size; | ||
370 | type_info.class_init = class_init; | ||
371 | type_info.instance_size = instance_size; | ||
372 | type_info.instance_init = instance_init; | ||
373 | |||
374 | return g_type_register_static(parent_type, type_name, &type_info, flags); | ||
375 | } | ||
376 | #define llg_intern_static_string(S) (S) | ||
377 | #define g_intern_static_string(S) llg_intern_static_string(S) | ||
378 | #define g_type_register_static_simple(parent_type, type_name, class_size, class_init, instance_size, instance_init, flags) llg_type_register_static_simple_ONCE(parent_type, type_name, class_size, class_init, instance_size, instance_init, flags) | ||
379 | |||
380 | G_DEFINE_TYPE(ViewerAppAPI, viewerappapi, G_TYPE_OBJECT); | ||
381 | |||
382 | void viewerappapi_class_init(ViewerAppAPIClass *klass) | ||
383 | { | ||
384 | } | ||
385 | |||
386 | static bool dbus_server_init = false; | ||
387 | |||
388 | void viewerappapi_init(ViewerAppAPI *server) | ||
389 | { | ||
390 | // Connect to the default DBUS, register our service/API. | ||
391 | |||
392 | if (!dbus_server_init) | ||
393 | { | ||
394 | GError *error = NULL; | ||
395 | |||
396 | server->connection = lldbus_g_bus_get(DBUS_BUS_SESSION, &error); | ||
397 | if (server->connection) | ||
398 | { | ||
399 | lldbus_g_object_type_install_info(viewerappapi_get_type(), &dbus_glib_viewerapp_object_info); | ||
400 | |||
401 | lldbus_g_connection_register_g_object(server->connection, VIEWERAPI_PATH, G_OBJECT(server)); | ||
402 | |||
403 | DBusGProxy *serverproxy = lldbus_g_proxy_new_for_name(server->connection, DBUS_SERVICE_DBUS, DBUS_PATH_DBUS, DBUS_INTERFACE_DBUS); | ||
404 | |||
405 | guint request_name_ret_unused; | ||
406 | // akin to org_freedesktop_DBus_request_name | ||
407 | if (lldbus_g_proxy_call(serverproxy, "RequestName", &error, G_TYPE_STRING, VIEWERAPI_SERVICE, G_TYPE_UINT, 0, G_TYPE_INVALID, G_TYPE_UINT, &request_name_ret_unused, G_TYPE_INVALID)) | ||
408 | { | ||
409 | // total success. | ||
410 | dbus_server_init = true; | ||
411 | } | ||
412 | else | ||
413 | { | ||
414 | llwarns << "Unable to register service name: " << error->message << llendl; | ||
415 | } | ||
416 | |||
417 | g_object_unref(serverproxy); | ||
418 | } | ||
419 | else | ||
420 | { | ||
421 | g_warning("Unable to connect to dbus: %s", error->message); | ||
422 | } | ||
423 | |||
424 | if (error) | ||
425 | g_error_free(error); | ||
426 | } | ||
427 | } | ||
428 | |||
429 | gboolean viewer_app_api_GoSLURL(ViewerAppAPI *obj, gchar *slurl, gboolean **success_rtn, GError **error) | ||
430 | { | ||
431 | bool success = false; | ||
432 | |||
433 | llinfos << "Was asked to go to slurl: " << slurl << llendl; | ||
434 | |||
435 | const bool from_external_browser = true; | ||
436 | if (LLURLDispatcher::dispatch(slurl, from_external_browser)) | ||
437 | { | ||
438 | // bring window to foreground, as it has just been "launched" from a URL | ||
439 | // todo: hmm, how to get there from here? | ||
440 | //xxx->mWindow->bringToFront(); | ||
441 | success = true; | ||
442 | } | ||
443 | |||
444 | *success_rtn = g_new (gboolean, 1); | ||
445 | (*success_rtn)[0] = (gboolean)success; | ||
446 | |||
447 | return TRUE; // the invokation succeeded, even if the actual dispatch didn't. | ||
448 | } | ||
449 | |||
450 | /// | ||
451 | |||
452 | //virtual | ||
453 | bool LLAppViewerLinux::initSLURLHandler() | ||
454 | { | ||
455 | if (!grab_dbus_syms(DBUSGLIB_DYLIB_DEFAULT_NAME)) | ||
456 | { | ||
457 | return false; // failed | ||
458 | } | ||
459 | |||
460 | g_type_init(); | ||
461 | |||
462 | //ViewerAppAPI *api_server = (ViewerAppAPI*) | ||
463 | g_object_new(viewerappapi_get_type(), NULL); | ||
464 | |||
465 | return true; | ||
466 | } | ||
467 | |||
468 | //virtual | ||
469 | bool LLAppViewerLinux::sendURLToOtherInstance(const std::string& url) | ||
470 | { | ||
471 | if (!grab_dbus_syms(DBUSGLIB_DYLIB_DEFAULT_NAME)) | ||
472 | { | ||
473 | return false; // failed | ||
474 | } | ||
475 | |||
476 | bool success = false; | ||
477 | DBusGConnection *bus; | ||
478 | GError *error = NULL; | ||
479 | |||
480 | g_type_init(); | ||
481 | |||
482 | bus = lldbus_g_bus_get (DBUS_BUS_SESSION, &error); | ||
483 | if (bus) | ||
484 | { | ||
485 | gboolean rtn = FALSE; | ||
486 | DBusGProxy *remote_object = | ||
487 | lldbus_g_proxy_new_for_name(bus, VIEWERAPI_SERVICE, VIEWERAPI_PATH, VIEWERAPI_INTERFACE); | ||
488 | |||
489 | if (lldbus_g_proxy_call(remote_object, "GoSLURL", &error, | ||
490 | G_TYPE_STRING, url.c_str(), G_TYPE_INVALID, | ||
491 | G_TYPE_BOOLEAN, &rtn, G_TYPE_INVALID)) | ||
492 | { | ||
493 | success = rtn; | ||
494 | } | ||
495 | else | ||
496 | { | ||
497 | llinfos << "Call-out to other instance failed (perhaps not running): " << error->message << llendl; | ||
498 | } | ||
499 | |||
500 | g_object_unref(G_OBJECT(remote_object)); | ||
501 | } | ||
502 | else | ||
503 | { | ||
504 | llwarns << "Couldn't connect to session bus: " << error->message << llendl; | ||
505 | } | ||
506 | |||
507 | if (error) | ||
508 | g_error_free(error); | ||
509 | |||
510 | return success; | ||
511 | } | ||
512 | |||
513 | #else // LL_DBUS_ENABLED | ||
514 | bool LLAppViewerLinux::initSLURLHandler() | ||
515 | { | ||
516 | return false; // not implemented without dbus | ||
517 | } | ||
518 | bool LLAppViewerLinux::sendURLToOtherInstance(const std::string& url) | ||
519 | { | ||
520 | return false; // not implemented without dbus | ||
521 | } | ||
522 | #endif // LL_DBUS_ENABLED | ||
523 | |||
324 | void LLAppViewerLinux::handleSyncCrashTrace() | 524 | void LLAppViewerLinux::handleSyncCrashTrace() |
325 | { | 525 | { |
326 | // This backtrace writes into stack_trace.log | 526 | // This backtrace writes into stack_trace.log |
@@ -331,57 +531,90 @@ void LLAppViewerLinux::handleSyncCrashTrace() | |||
331 | # endif // LL_ELFBIN | 531 | # endif // LL_ELFBIN |
332 | } | 532 | } |
333 | 533 | ||
334 | void LLAppViewerLinux::handleCrashReporting() | 534 | void LLAppViewerLinux::handleCrashReporting(bool reportFreeze) |
335 | { | 535 | { |
336 | const S32 cb = gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING); | 536 | std::string cmd =gDirUtilp->getAppRODataDir(); |
337 | 537 | cmd += gDirUtilp->getDirDelimiter(); | |
338 | // Always generate the report, have the logger do the asking, and | 538 | #if LL_LINUX |
339 | // don't wait for the logger before exiting (-> total cleanup). | 539 | cmd += "linux-crash-logger.bin"; |
340 | if (CRASH_BEHAVIOR_NEVER_SEND != cb) | 540 | #else // LL_SOLARIS |
341 | { | 541 | cmd += "bin/solaris-crash-logger"; |
342 | // launch the actual crash logger | 542 | #endif // LL_LINUX |
343 | const char* ask_dialog = "-dialog"; | 543 | |
344 | if (CRASH_BEHAVIOR_ASK != cb) | 544 | if(reportFreeze) |
345 | ask_dialog = ""; // omit '-dialog' option | 545 | { |
346 | std::string cmd =gDirUtilp->getAppRODataDir(); | 546 | char* const cmdargv[] = |
347 | cmd += gDirUtilp->getDirDelimiter(); | 547 | {(char*)cmd.c_str(), |
348 | cmd += "linux-crash-logger.bin"; | 548 | (char*)"-previous", |
349 | const char * cmdargv[] = | ||
350 | {cmd.c_str(), | ||
351 | ask_dialog, | ||
352 | "-user", | ||
353 | (char*)LLViewerLogin::getInstance()->getGridLabel().c_str(), | ||
354 | "-name", | ||
355 | LLAppViewer::instance()->getSecondLifeTitle().c_str(), | ||
356 | NULL}; | 549 | NULL}; |
357 | fflush(NULL); | 550 | |
551 | fflush(NULL); // flush all buffers before the child inherits them | ||
358 | pid_t pid = fork(); | 552 | pid_t pid = fork(); |
359 | if (pid == 0) | 553 | if (pid == 0) |
360 | { // child | 554 | { // child |
361 | execv(cmd.c_str(), (char* const*) cmdargv); /* Flawfinder: ignore */ | 555 | execv(cmd.c_str(), cmdargv); /* Flawfinder: Ignore */ |
362 | llwarns << "execv failure when trying to start " << cmd << llendl; | 556 | llwarns << "execv failure when trying to start " << cmd << llendl; |
363 | _exit(1); // avoid atexit() | 557 | _exit(1); // avoid atexit() |
364 | } | 558 | } else { |
365 | else | ||
366 | { | ||
367 | if (pid > 0) | 559 | if (pid > 0) |
368 | { | 560 | { |
369 | // DO NOT wait for child proc to die; we want | 561 | // wait for child proc to die |
370 | // the logger to outlive us while we quit to | 562 | int childExitStatus; |
371 | // free up the screen/keyboard/etc. | 563 | waitpid(pid, &childExitStatus, 0); |
372 | ////int childExitStatus; | 564 | } else { |
373 | ////waitpid(pid, &childExitStatus, 0); | 565 | llwarns << "fork failure." << llendl; |
566 | } | ||
567 | } | ||
568 | } | ||
569 | else | ||
570 | { | ||
571 | const S32 cb = gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING); | ||
572 | |||
573 | // Always generate the report, have the logger do the asking, and | ||
574 | // don't wait for the logger before exiting (-> total cleanup). | ||
575 | if (CRASH_BEHAVIOR_NEVER_SEND != cb) | ||
576 | { | ||
577 | // launch the actual crash logger | ||
578 | const char* ask_dialog = "-dialog"; | ||
579 | if (CRASH_BEHAVIOR_ASK != cb) | ||
580 | ask_dialog = ""; // omit '-dialog' option | ||
581 | const char * cmdargv[] = | ||
582 | {cmd.c_str(), | ||
583 | ask_dialog, | ||
584 | "-user", | ||
585 | (char*)LLViewerLogin::getInstance()->getGridLabel().c_str(), | ||
586 | "-name", | ||
587 | LLAppViewer::instance()->getSecondLifeTitle().c_str(), | ||
588 | NULL}; | ||
589 | fflush(NULL); | ||
590 | pid_t pid = fork(); | ||
591 | if (pid == 0) | ||
592 | { // child | ||
593 | execv(cmd.c_str(), (char* const*) cmdargv); /* Flawfinder: ignore */ | ||
594 | llwarns << "execv failure when trying to start " << cmd << llendl; | ||
595 | _exit(1); // avoid atexit() | ||
374 | } | 596 | } |
375 | else | 597 | else |
376 | { | 598 | { |
377 | llwarns << "fork failure." << llendl; | 599 | if (pid > 0) |
600 | { | ||
601 | // DO NOT wait for child proc to die; we want | ||
602 | // the logger to outlive us while we quit to | ||
603 | // free up the screen/keyboard/etc. | ||
604 | ////int childExitStatus; | ||
605 | ////waitpid(pid, &childExitStatus, 0); | ||
606 | } | ||
607 | else | ||
608 | { | ||
609 | llwarns << "fork failure." << llendl; | ||
610 | } | ||
378 | } | 611 | } |
379 | } | 612 | } |
613 | // Sometimes signals don't seem to quit the viewer. Also, we may | ||
614 | // have been called explicitly instead of from a signal handler. | ||
615 | // Make sure we exit so as to not totally confuse the user. | ||
616 | _exit(1); // avoid atexit(), else we may re-crash in dtors. | ||
380 | } | 617 | } |
381 | // Sometimes signals don't seem to quit the viewer. Also, we may | ||
382 | // have been called explicitly instead of from a signal handler. | ||
383 | // Make sure we exit so as to not totally confuse the user. | ||
384 | _exit(1); // avoid atexit(), else we may re-crash in dtors. | ||
385 | } | 618 | } |
386 | 619 | ||
387 | bool LLAppViewerLinux::beingDebugged() | 620 | bool LLAppViewerLinux::beingDebugged() |