diff --git a/README.md b/README.md index b2dc768a2c..df84d73516 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ The source code is published under GPLv3 with OpenSSL exception, the license is * libexif 0.6.20 ([LGPL](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)) * LZMA SDK 9.20 ([public domain](http://www.7-zip.org/sdk.html)) * liblzma ([public domain](http://tukaani.org/xz/)) +* Google Breakpad ([License](https://chromium.googlesource.com/breakpad/breakpad/+/master/LICENSE)) +* Google Crashpad ([Apache License 2.0](https://chromium.googlesource.com/crashpad/crashpad/+/master/LICENSE)) * OpenAL Soft ([LGPL](http://kcat.strangesoft.net/openal.html)) * Opus codec ([BSD license](http://www.opus-codec.org/license/)) * FFmpeg ([LGPL](https://www.ffmpeg.org/legal.html)) diff --git a/Telegram/Build.bat b/Telegram/Build.bat index 650a937ee5..5e2da4a8f1 100644 --- a/Telegram/Build.bat +++ b/Telegram/Build.bat @@ -29,6 +29,8 @@ set "HomePath=..\..\Telegram" set "ReleasePath=..\Win32\Deploy" set "DeployPath=%ReleasePath%\deploy\%AppVersionStrMajor%\%AppVersionStrFull%" set "SignPath=..\..\TelegramPrivate\Sign.bat" +set "BinaryName=Telegram" +set "DropboxSymbolsPath=Z:\Dropbox\Telegram\symbols" if %BetaVersion% neq 0 ( if exist %DeployPath%\ ( @@ -71,9 +73,13 @@ echo . echo Version %AppVersionStrFull% build successfull. Preparing.. echo . +echo Dumping debug symbols.. +call ..\..\Libraries\breakpad\src\tools\windows\binaries\dump_syms.exe %ReleasePath%\%BinaryName%.pdb > %ReleasePath%\%BinaryName%.sym +echo Done! + set "PATH=%PATH%;C:\Program Files\7-Zip;C:\Program Files (x86)\Inno Setup 5" -call %SignPath% %ReleasePath%\Telegram.exe +call %SignPath% %ReleasePath%\%BinaryName%.exe if %errorlevel% neq 0 goto error call %SignPath% %ReleasePath%\Updater.exe @@ -90,7 +96,7 @@ if %BetaVersion% equ 0 ( ) cd %ReleasePath% -call Packer.exe -version %VersionForPacker% -path Telegram.exe -path Updater.exe %DevParam% +call Packer.exe -version %VersionForPacker% -path %BinaryName%.exe -path Updater.exe %DevParam% cd %HomePath% if %errorlevel% neq 0 goto error @@ -109,6 +115,22 @@ if %BetaVersion% neq 0 ( set "PortableFile=tbeta%BetaVersion%_%BetaSignature%.zip" ) +for /f ^"usebackq^ eol^=^ + +^ delims^=^" %%a in (..\Win32\Debug\Telegram.sym) do ( + set "SymbolsHashLine=%%a" + goto symbolslinedone +) +:symbolslinedone +FOR /F "tokens=1,2,3,4* delims= " %%i in ("%SymbolsHashLine%") do set "SymbolsH +ash=%%l" + +echo Copying %BinaryName%.sym to %DropboxSymbolsPath%\%BinaryName%\%SymbolsHash% +if not exist %DropboxSymbolsPath%\%BinaryName% mkdir %DropboxSymbolsPath%\%BinaryName% +if not exist %DropboxSymbolsPath%\%BinaryName%\%SymbolsHash% mkdir %DropboxSymbolsPath%\%BinaryName%\%SymbolsHash% +xcopy %ReleasePath%\%BinaryName%.sym %DropboxSymbolsPath%\%BinaryName%\%SymbolsHash%\ +echo Done! + if not exist %ReleasePath%\deploy mkdir %ReleasePath%\deploy if not exist %ReleasePath%\deploy\%AppVersionStrMajor% mkdir %ReleasePath%\deploy\%AppVersionStrMajor% mkdir %DeployPath% @@ -144,7 +166,7 @@ if not exist %DeployPath%\%PortableFile% goto error if %BetaVersion% equ 0 ( if not exist %DeployPath%\%SetupFile% goto error ) -if not exist %DeployPath%\Telegram.pdb goto error +if not exist %DeployPath%\%BinaryName%.pdb goto error if not exist %DeployPath%\Updater.exe goto error if not exist %DeployPath%\Updater.pdb goto error if not exist %FinalReleasePath%\%AppVersionStrMajor% mkdir %FinalReleasePath%\%AppVersionStrMajor% @@ -157,7 +179,7 @@ if %BetaVersion% equ 0 ( ) else ( xcopy %DeployPath%\%BetaKeyFile% %FinalDeployPath%\ /Y ) -xcopy %DeployPath%\Telegram.pdb %FinalDeployPath%\ +xcopy %DeployPath%\%BinaryName%.pdb %FinalDeployPath%\ xcopy %DeployPath%\Updater.exe %FinalDeployPath%\ xcopy %DeployPath%\Updater.pdb %FinalDeployPath%\ diff --git a/Telegram/Build.sh b/Telegram/Build.sh index 3aa9b88f66..302419fada 100755 --- a/Telegram/Build.sh +++ b/Telegram/Build.sh @@ -37,6 +37,7 @@ if [ "$BuildTarget" == "linux" ]; then WorkPath="./../Linux" FixScript="$HomePath/FixMake.sh" ReleasePath="./../Linux/Release" + BinaryName="Telegram" elif [ "$BuildTarget" == "linux32" ]; then echo "Building version $AppVersionStrFull for Linux 32bit.." UpdateFile="tlinux32upd$AppVersion" @@ -44,6 +45,7 @@ elif [ "$BuildTarget" == "linux32" ]; then WorkPath="./../Linux" FixScript="$HomePath/FixMake32.sh" ReleasePath="./../Linux/Release" + BinaryName="Telegram" elif [ "$BuildTarget" == "mac" ]; then echo "Building version $AppVersionStrFull for OS X 10.8+.." UpdateFile="tmacupd$AppVersion" @@ -104,6 +106,9 @@ fi #fi if [ "$BuildTarget" == "linux" ] || [ "$BuildTarget" == "linux32" ]; then + + DropboxSymbolsPath="/media/psf/Home/Dropbox/Telegram/symbols" + mkdir -p "$WorkPath/ReleaseIntermediateUpdater" cd "$WorkPath/ReleaseIntermediateUpdater" /usr/local/Qt-5.5.1/bin/qmake "$HomePath/Updater.pro" @@ -118,8 +123,8 @@ if [ "$BuildTarget" == "linux" ] || [ "$BuildTarget" == "linux32" ]; then make echo "Telegram build complete!" cd "$HomePath" - if [ ! -f "$ReleasePath/Telegram" ]; then - echo "Telegram not found!" + if [ ! -f "$ReleasePath/$BinaryName" ]; then + echo "$BinaryName not found!" exit 1 fi @@ -128,8 +133,16 @@ if [ "$BuildTarget" == "linux" ] || [ "$BuildTarget" == "linux32" ]; then exit 1 fi + echo "Dumping debug symbols.." + "./../../Libraries/breakpad/src/tools/linux/dump_syms/dump_syms" "$ReleasePath/$BinaryName" > "$ReleasePath/$BinaryName.sym" + echo "Done!" + + echo "Stripping the executable.." + strip -s "$ReleasePath/$BinaryName" + echo "Done!" + echo "Preparing version $AppVersionStrFull, executing Packer.." - cd "$ReleasePath" && "./Packer" -path Telegram -path Updater -version $VersionForPacker $DevParam && cd "$HomePath" + cd "$ReleasePath" && "./Packer" -path "$BinaryName" -path Updater -version $VersionForPacker $DevParam && cd "$HomePath" echo "Packer done!" if [ "$BetaVersion" != "0" ]; then @@ -146,6 +159,12 @@ if [ "$BuildTarget" == "linux" ] || [ "$BuildTarget" == "linux32" ]; then SetupFile="tbeta${BetaVersion}_${BetaSignature}.tar.xz" fi + SymbolsHash=`head -n 1 "$ReleasePath/$BinaryName.sym" | awk -F " " 'END {print $4}'` + echo "Copying $BinaryName.sym to $DropboxSymbolsPath/$BinaryName/$SymbolsHash" + mkdir -p "$DropboxSymbolsPath/$BinaryName/$SymbolsHash" + cp "$ReleasePath/$BinaryName.sym" "$DropboxSymbolsPath/$BinaryName/$SymbolsHash/" + echo "Done!" + if [ ! -d "$ReleasePath/deploy" ]; then mkdir "$ReleasePath/deploy" fi @@ -154,10 +173,10 @@ if [ "$BuildTarget" == "linux" ] || [ "$BuildTarget" == "linux32" ]; then mkdir "$ReleasePath/deploy/$AppVersionStrMajor" fi - echo "Copying Telegram, Updater and $UpdateFile to deploy/$AppVersionStrMajor/$AppVersionStrFull.."; + echo "Copying $BinaryName, Updater and $UpdateFile to deploy/$AppVersionStrMajor/$AppVersionStrFull.."; mkdir "$DeployPath" - mkdir "$DeployPath/Telegram" - mv "$ReleasePath/Telegram" "$DeployPath/Telegram/" + mkdir "$DeployPath/$BinaryName" + mv "$ReleasePath/$BinaryName" "$DeployPath/Telegram/" mv "$ReleasePath/Updater" "$DeployPath/Telegram/" mv "$ReleasePath/$UpdateFile" "$DeployPath/" if [ "$BetaVersion" != "0" ]; then @@ -168,6 +187,8 @@ fi if [ "$BuildTarget" == "mac" ] || [ "$BuildTarget" == "mac32" ] || [ "$BuildTarget" == "macstore" ]; then + DropboxSymbolsPath="./../../../Dropbox/Telegram/symbols" + touch "./SourceFiles/telegram.qrc" xcodebuild -project Telegram.xcodeproj -alltargets -configuration Release build @@ -181,6 +202,28 @@ if [ "$BuildTarget" == "mac" ] || [ "$BuildTarget" == "mac32" ] || [ "$BuildTarg exit 1 fi + if [ "$BuildTarget" == "mac" ] || [ "$BuildTarget" == "mac32" ]; then + echo "Removing Updater debug symbols.." + rm -rf "$ReleasePath/$BinaryName.app/Contents/Frameworks/Updater.dSYM" + echo "Done!" + fi + + echo "Dumping debug symbols.." + "./../../Libraries/breakpad/src/tools/mac/dump_syms/build/Release/dump_syms" "$ReleasePath/$BinaryName.app/Contents/MacOS/$BinaryName" > "$ReleasePath/$BinaryName.sym" + echo "Done!" + + echo "Stripping the executable.." + strip "$ReleasePath/$BinaryName.app/Contents/MacOS/$BinaryName" + echo "Done!" + + echo "Signing the application.." + if [ "$BuildTarget" == "mac" ] || [ "$BuildTarget" == "mac32" ]; then + codesign --force --deep --sign "Developer ID Application: John Preston" "$ReleasePath/$BinaryName.app" + elif [ "$BuildTarget" == "macstore" ]; then + codesign --force --deep --sign "3rd Party Mac Developer Application: TELEGRAM MESSENGER LLP (6N38VWS5BX)" "$ReleasePath/$BinaryName.app" --entitlements "Telegram/Telegram Desktop.entitlements" + fi + echo "Done!" + AppUUID=`dwarfdump -u "$ReleasePath/$BinaryName.app/Contents/MacOS/$BinaryName" | awk -F " " '{print $2}'` DsymUUID=`dwarfdump -u "$ReleasePath/$BinaryName.app.dSYM" | awk -F " " '{print $2}'` if [ "$AppUUID" != "$DsymUUID" ]; then @@ -215,6 +258,12 @@ if [ "$BuildTarget" == "mac" ] || [ "$BuildTarget" == "mac32" ] || [ "$BuildTarg fi fi + SymbolsHash=`head -n 1 "$ReleasePath/$BinaryName.sym" | awk -F " " 'END {print $4}'` + echo "Copying $BinaryName.sym to $DropboxSymbolsPath/$BinaryName/$SymbolsHash" + mkdir -p "$DropboxSymbolsPath/$BinaryName/$SymbolsHash" + cp "$ReleasePath/$BinaryName.sym" "$DropboxSymbolsPath/$BinaryName/$SymbolsHash/" + echo "Done!" + if [ "$BuildTarget" == "mac" ] || [ "$BuildTarget" == "mac32" ]; then if [ "$BetaVersion" == "0" ]; then cd "$ReleasePath" @@ -294,6 +343,7 @@ if [ "$BuildTarget" == "mac" ] || [ "$BuildTarget" == "mac32" ] || [ "$BuildTarg rm "$ReleasePath/$BinaryName.app/Contents/MacOS/$BinaryName" rm -rf "$ReleasePath/$BinaryName.app/Contents/_CodeSignature" + mkdir -p "$DropboxDeployPath" cp -v "$DeployPath/$BinaryName.app" "$DropboxDeployPath/" cp -rv "$DeployPath/$BinaryName.app.dSYM" "$DropboxDeployPath/" fi diff --git a/Telegram/Deploy.sh b/Telegram/Deploy.sh index 058cbf09d2..4a54d780a7 100755 --- a/Telegram/Deploy.sh +++ b/Telegram/Deploy.sh @@ -165,13 +165,7 @@ fi fi fi - if [ ! -d "$DropboxPath" ]; then - mkdir "$DropboxPath" - fi - - if [ ! -d "$DropboxDeployPath" ]; then - mkdir "$DropboxDeployPath" - fi + mkdir -p "$DropboxDeployPath" fi #fi diff --git a/Telegram/SourceFiles/facades.cpp b/Telegram/SourceFiles/facades.cpp index 5023c7ed7a..e434100510 100644 --- a/Telegram/SourceFiles/facades.cpp +++ b/Telegram/SourceFiles/facades.cpp @@ -199,7 +199,7 @@ namespace Global { dataStream.setVersion(QDataStream::Qt_5_3); dataStream << quint64(cRealBetaVersion()) << cBetaPrivateKey(); } else { - LOG(("Error: could not open '%1' for writing private key!").arg(beta.fileName())); + LOG(("FATAL: Could not open '%1' for writing private key!").arg(beta.fileName())); return false; } } else if (beta.exists()) { @@ -216,11 +216,11 @@ namespace Global { cSetBetaPrivateKey(k); cSetRealBetaVersion(v); } else { - LOG(("Error: '%1' is corrupted, reinstall private beta!").arg(beta.fileName())); + LOG(("FATAL: '%1' is corrupted, reinstall private beta!").arg(beta.fileName())); return false; } } else { - LOG(("Error: could not open '%1' for reading private key!").arg(beta.fileName())); + LOG(("FATAL: could not open '%1' for reading private key!").arg(beta.fileName())); return false; } } diff --git a/Telegram/SourceFiles/langs/lang_de.strings b/Telegram/SourceFiles/langs/lang_de.strings index 6764779b1a..fc48c7322e 100644 --- a/Telegram/SourceFiles/langs/lang_de.strings +++ b/Telegram/SourceFiles/langs/lang_de.strings @@ -78,7 +78,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_weekday7_full" = "Sonntag"; "lng_month_day" = "{day}. {month}"; -"lng_month_day_year" = "{day} {month}, {year}"; +"lng_month_day_year" = "{day}. {month} {year}"; "lng_month_year" = "{month}, {year}"; "lng_box_ok" = "OK"; @@ -454,7 +454,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_chat_all_members_admins" = "Alle Mitglieder Sind Admins"; "lng_chat_about_all_admins" = "Gruppenmitglieder können neue Leute hinzufügen sowie den Gruppennamen und das Bild ändern."; -"lng_chat_about_admins" = "Nur Admins können neue neue Leute hinzufügen und entfernen, den Gruppennamen und das Bild ändern."; +"lng_chat_about_admins" = "Nur Admins können neue Leute hinzufügen und entfernen, den Gruppennamen und das Bild ändern."; "lng_participant_filter" = "Suche"; "lng_participant_invite" = "Einladen"; @@ -498,7 +498,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_sure_delete_group" = "Sicher, dass du diese Gruppe löschen willst? Alle Mitglieder und Nachrichten werden entfernt."; "lng_message_empty" = "Leere Nachricht"; -"lng_media_unsupported" = "Format Nicht Unterstützt"; +"lng_message_unsupported" = "Diese Nachricht wird von deiner Telegram Desktop Version nicht unterstützt. Bitte aktualisiere sie in den Einstellungen oder über {link}"; "lng_action_add_user" = "{from} hat {user} hinzugefügt"; "lng_action_add_users_many" = "{from} hat {users} hinzugefügt"; @@ -600,6 +600,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_saved_gifs" = "Gespeicherte GIFs"; "lng_inline_bot_results" = "Ergebnisse von {inline_bot}"; "lng_inline_bot_no_results" = "Keine Ergebnisse"; +"lng_inline_bot_via" = "via {inline_bot}"; "lng_box_remove" = "Entfernen"; @@ -793,7 +794,8 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_selected_delete" = "Löschen"; "lng_selected_forward" = "Weiterleiten"; "lng_selected_count" = "{count:_not_used_|# Nachricht|# Nachrichten}"; -"lng_selected_cancel_sure_this" = "Upload wirklich abbrechen?"; +"lng_selected_cancel_sure_this" = "Upload abbrechen?"; +"lng_selected_upload_stop" = "Abbrechen"; "lng_selected_delete_sure_this" = "Diese Nachricht wirklich löschen?"; "lng_selected_delete_sure" = "Willst du {count:_not_used_|# Nachricht|# Nachrichten} löschen?"; "lng_box_delete" = "Löschen"; @@ -877,7 +879,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_mac_menu_redo" = "Wiederholen"; "lng_mac_menu_cut" = "Ausschneiden"; "lng_mac_menu_copy" = "Kopieren"; -"lng_mac_menu_paste" = "Einsetzen"; +"lng_mac_menu_paste" = "Einfügen"; "lng_mac_menu_delete" = "Löschen"; "lng_mac_menu_select_all" = "Alles auswählen"; "lng_mac_menu_window" = "Fenster"; diff --git a/Telegram/SourceFiles/langs/lang_es.strings b/Telegram/SourceFiles/langs/lang_es.strings index 20716ed5d5..ecb880634f 100644 --- a/Telegram/SourceFiles/langs/lang_es.strings +++ b/Telegram/SourceFiles/langs/lang_es.strings @@ -498,7 +498,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_sure_delete_group" = "¿Quieres eliminar este grupo? Todos los miembros y mensajes se perderán."; "lng_message_empty" = "Mensaje vacío"; -"lng_media_unsupported" = "Multimedia no soportada"; +"lng_message_unsupported" = "Este mensaje no es soportado por tu versión de Telegram Desktop. Por favor, actualiza a la última versión desde Ajustes o instálala desde {link}"; "lng_action_add_user" = "{from} añadió a {user}"; "lng_action_add_users_many" = "{from} añadió a {users}"; @@ -600,6 +600,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_saved_gifs" = "GIF guardados"; "lng_inline_bot_results" = "Resultados de {inline_bot}"; "lng_inline_bot_no_results" = "Sin resultados"; +"lng_inline_bot_via" = "vía {inline_bot}"; "lng_box_remove" = "Eliminar"; @@ -793,7 +794,8 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_selected_delete" = "Eliminar"; "lng_selected_forward" = "Reenviar"; "lng_selected_count" = "{count:_not_used_|# mensaje|# mensajes}"; -"lng_selected_cancel_sure_this" = "¿Quieres cancelar este envío?"; +"lng_selected_cancel_sure_this" = "¿Cancelar envío?"; +"lng_selected_upload_stop" = "Detener"; "lng_selected_delete_sure_this" = "¿Quieres eliminar este mensaje?"; "lng_selected_delete_sure" = "¿Quieres eliminar {count:_not_used_|# mensaje|# mensajes}?"; "lng_box_delete" = "Eliminar"; diff --git a/Telegram/SourceFiles/langs/lang_it.strings b/Telegram/SourceFiles/langs/lang_it.strings index 28d9b9eaee..b68200cac0 100644 --- a/Telegram/SourceFiles/langs/lang_it.strings +++ b/Telegram/SourceFiles/langs/lang_it.strings @@ -498,7 +498,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_sure_delete_group" = "Sei sicuro di voler eliminare questo gruppo? Tutti i membri verranno rimossi e i messaggi verranno persi."; "lng_message_empty" = "Messaggio vuoto"; -"lng_media_unsupported" = "Media non supportato"; +"lng_message_unsupported" = "Questo messaggio non è supportato dalla tua versione di Telegram Desktop. Per favore, aggiorna all'ultima versione dalle Impostazioni o installalo da {link}"; "lng_action_add_user" = "{from} ha aggiunto {user}"; "lng_action_add_users_many" = "{from} ha aggiunto {users}"; @@ -600,6 +600,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_saved_gifs" = "GIF salvate"; "lng_inline_bot_results" = "Risultati da {inline_bot}"; "lng_inline_bot_no_results" = "Nessun risultato"; +"lng_inline_bot_via" = "via {inline_bot}"; "lng_box_remove" = "Rimuovi"; @@ -793,7 +794,8 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_selected_delete" = "Elimina"; "lng_selected_forward" = "Inoltra"; "lng_selected_count" = "{count:_not_used_|# messaggio|# messaggi}"; -"lng_selected_cancel_sure_this" = "Vuoi annullare il caricamento?"; +"lng_selected_cancel_sure_this" = "Annullare il caricamento?"; +"lng_selected_upload_stop" = "Arresta "; "lng_selected_delete_sure_this" = "Vuoi eliminare questo messaggio?"; "lng_selected_delete_sure" = "Vuoi eliminare {count:_not_used_|# messaggio|# messaggi}?"; "lng_box_delete" = "Elimina"; @@ -832,7 +834,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_new_version_wrap" = "Telegram Desktop si è aggiornato alla versione {version}\n\n{changes}\n\nLa cronologia degli aggiornamenti è disponibile qui:\n{link}"; "lng_new_version_minor" = "— Bug fix e altri miglioramenti minori"; -"lng_new_version_text" = "Rivoluzione GIF: L'invio e il download delle GIF sono ora 10 volte più veloci, riproduci automaticamente le GIF e salva le tue GIF preferite in una pagina dedicata nel pannello sticker.\n\nPiù info sulle GIF:\n{gifs_link}\n\n@-Bot: Un nuovo modo di aggiungere contenuto dai bot in qualsiasi chat. Scrivi l'username di un bot e la tua domanda nel campo di scrittura per ricevere risultati immediati e inviarli nella chat. Prova a scrivere “@gif dog” nella tua prossima chat. Bot di esempio: @gif, @wiki, @bing, @vid, @bold.\n\nPiù info sui @-Bot:\n{bots_link}\n\nInoltre in questa versione: Nuovo design per i media, impostazioni di download automatico per foto, note vocali e GIF."; +"lng_new_version_text" = "Rivoluzione GIF: L'invio e il download delle GIF sono ora 10 volte più veloci, riproduci automaticamente le GIF e salva le tue GIF preferite in una pagina dedicata nel pannello sticker.\n\nPiù info sulle GIF:\n{gifs_link}\n\nInline Bot: Un nuovo modo di aggiungere contenuto dai bot in qualsiasi chat. Scrivi l'username di un bot e la tua domanda nel campo di scrittura per ricevere risultati immediati e inviarli nella chat. Prova a scrivere “@gif dog” nella tua prossima chat. Bot di esempio: @gif, @wiki, @bing, @vid, @bold.\n\nPiù info sugli Inline Bot:\n{bots_link}\n\nInoltre in questa versione: Nuovo design per i media, impostazioni di download automatico per foto, note vocali e GIF."; "lng_menu_insert_unicode" = "Inserisci carattere di controllo Unicode"; diff --git a/Telegram/SourceFiles/langs/lang_ko.strings b/Telegram/SourceFiles/langs/lang_ko.strings index 09113ebe73..2c7022c509 100644 --- a/Telegram/SourceFiles/langs/lang_ko.strings +++ b/Telegram/SourceFiles/langs/lang_ko.strings @@ -498,7 +498,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_sure_delete_group" = "정말로 그룹방을 삭제하시겠습니까? 모든 구성원 및 메시지가 삭제됩니다."; "lng_message_empty" = "메시지 없음"; -"lng_media_unsupported" = "지원하지 않는 미디어"; +"lng_message_unsupported" = "이 메시지는 텔레그램 데스크탑에서 호환이 되지 않습니다. 설정에서 최신 버전으로 업데이트를 하던가 {link}를 통하여 설치해주세요."; "lng_action_add_user" = "{from} 님께서 {user} 님을 초대하셨습니다."; "lng_action_add_users_many" = "{from}님께서 {users}명을 초대하였습니다."; @@ -600,6 +600,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_saved_gifs" = "저장된 GIF"; "lng_inline_bot_results" = "{inline_bot} 결과"; "lng_inline_bot_no_results" = "결과 없음"; +"lng_inline_bot_via" = "{inline_bot} 결과"; "lng_box_remove" = "삭제"; @@ -794,6 +795,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_selected_forward" = "전달"; "lng_selected_count" = "{count:_not_used_|# 메시지|# 메시지}"; "lng_selected_cancel_sure_this" = "업로드를 취소하시겠습니까?"; +"lng_selected_upload_stop" = "정지"; "lng_selected_delete_sure_this" = "메시지를 삭제하시겠습니까?"; "lng_selected_delete_sure" = "{count:_not_used_|# 메시지|# 메시지}를 삭제하시겠습니까?"; "lng_box_delete" = "삭제"; diff --git a/Telegram/SourceFiles/langs/lang_nl.strings b/Telegram/SourceFiles/langs/lang_nl.strings index fe6af5786c..b1993615f1 100644 --- a/Telegram/SourceFiles/langs/lang_nl.strings +++ b/Telegram/SourceFiles/langs/lang_nl.strings @@ -498,7 +498,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_sure_delete_group" = "Groep echt verwijderen? Berichten worden gewist en alle deelnemers verwijderd."; "lng_message_empty" = "Leeg bericht"; -"lng_media_unsupported" = "Niet-ondersteunde media"; +"lng_message_unsupported" = "Dit bericht wordt niet ondersteund door jouw versie van Telegram Desktop. Werk bij naar de laatste versie via de instellingen of installeer vanuit {link}"; "lng_action_add_user" = "{from} heeft {user} toegevoegd"; "lng_action_add_users_many" = "{from} heeft {users} toegevoegd"; @@ -600,6 +600,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_saved_gifs" = "Opgeslagen GIF's"; "lng_inline_bot_results" = "Resultaten van {inline_bot}"; "lng_inline_bot_no_results" = "Geen resultaten"; +"lng_inline_bot_via" = "via {inline_bot}"; "lng_box_remove" = "Verwijder"; @@ -793,7 +794,8 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_selected_delete" = "Verwijder"; "lng_selected_forward" = "Doorsturen"; "lng_selected_count" = "{count:_not_used_|# bericht|# berichten}"; -"lng_selected_cancel_sure_this" = "Wil je deze upload annuleren?"; +"lng_selected_cancel_sure_this" = "Upload annuleren?"; +"lng_selected_upload_stop" = "Stoppen"; "lng_selected_delete_sure_this" = "Wil je dit bericht verwijderen?"; "lng_selected_delete_sure" = "Wil je {count:_not_used_|# bericht|# berichten} verwijderen?"; "lng_box_delete" = "Verwijder"; diff --git a/Telegram/SourceFiles/langs/lang_pt_BR.strings b/Telegram/SourceFiles/langs/lang_pt_BR.strings index 200c3741e5..26d2c98b35 100644 --- a/Telegram/SourceFiles/langs/lang_pt_BR.strings +++ b/Telegram/SourceFiles/langs/lang_pt_BR.strings @@ -498,7 +498,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_sure_delete_group" = "Tem certeza que deseja apagar este grupo? Todos os membros serão removidos e todas as mensagens serão perdidas."; "lng_message_empty" = "Mensagem Vazia"; -"lng_media_unsupported" = "Mídia Não-Suportada"; +"lng_message_unsupported" = "Essa mensagem não é suportada em sua versão do Telegram Desktop. Atualize para a última versão nas Configurações ou instale por aqui {link}"; "lng_action_add_user" = "{from} adicionou {user}"; "lng_action_add_users_many" = "{from} adicionou {users}"; @@ -600,6 +600,7 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_saved_gifs" = "GIFs Salvos"; "lng_inline_bot_results" = "Resultados de {inline_bot}"; "lng_inline_bot_no_results" = "Nenhum resultado"; +"lng_inline_bot_via" = "via {inline_bot}"; "lng_box_remove" = "Remover"; @@ -793,7 +794,8 @@ Copyright (c) 2014-2015 John Preston, https://desktop.telegram.org "lng_selected_delete" = "Apagar"; "lng_selected_forward" = "Encaminhar"; "lng_selected_count" = "{count:_not_used_|# mensagem|# mensagens}"; -"lng_selected_cancel_sure_this" = "Você deseja cancelar o envio?"; +"lng_selected_cancel_sure_this" = "Cancelar envio?"; +"lng_selected_upload_stop" = "Parar"; "lng_selected_delete_sure_this" = "Você deseja apagar essa mensagem?"; "lng_selected_delete_sure" = "Você deseja apagar {count:_not_used_|# mensagem|# mensagens}?"; "lng_box_delete" = "Apagar"; diff --git a/Telegram/SourceFiles/logs.cpp b/Telegram/SourceFiles/logs.cpp index b776cba00f..c987c70c62 100644 --- a/Telegram/SourceFiles/logs.cpp +++ b/Telegram/SourceFiles/logs.cpp @@ -338,7 +338,7 @@ namespace Logs { LOG(("Arguments: %1").arg(cArguments())); if (!LogsData) { - LOG(("Could not open '%1' for writing log!").arg(_logsFilePath(LogDataMain, qsl("_startXX")))); + LOG(("FATAL: Could not open '%1' for writing log!").arg(_logsFilePath(LogDataMain, qsl("_startXX")))); return; } @@ -391,7 +391,7 @@ namespace Logs { delete LogsData; LogsData = 0; - LOG(("Could not move logging to '%1'!").arg(_logsFilePath(LogDataMain))); + LOG(("FATAL: Could not move logging to '%1'!").arg(_logsFilePath(LogDataMain))); return false; } @@ -860,6 +860,7 @@ namespace SignalHandlers { #elif defined Q_OS_MAC #ifdef MAC_USE_BREAKPAD +#ifndef _DEBUG BreakpadExceptionHandler = new google_breakpad::ExceptionHandler( dumpspath.toUtf8().toStdString(), /*FilterCallback*/ 0, @@ -868,6 +869,7 @@ namespace SignalHandlers { true, 0 ); +#endif SetSignalHandlers = false; #else crashpad::CrashpadClient crashpad_client; @@ -956,7 +958,7 @@ namespace SignalHandlers { return Started; } - LOG(("Could not open '%1' for writing!").arg(QString::fromUtf8(CrashDumpPath))); + LOG(("FATAL: Could not open '%1' for writing!").arg(QString::fromUtf8(CrashDumpPath))); return CantOpen; } diff --git a/Telegram/Telegram.xcodeproj/project.pbxproj b/Telegram/Telegram.xcodeproj/project.pbxproj index 70a484b14d..22ede49fcf 100644 --- a/Telegram/Telegram.xcodeproj/project.pbxproj +++ b/Telegram/Telegram.xcodeproj/project.pbxproj @@ -1357,9 +1357,7 @@ 07C3AF341948FC3B0016CFF1 /* Force Resources Directory */, 07C3AF25194336160016CFF1 /* Resources */, 07489B6B1A28949600348CD9 /* Build Updater */, - 0746AC8F1A28D4140040AE26 /* Clean Updater */, 071AD90E1C60AA74008C9E90 /* Copy crashpad_handler */, - 07489B6D1A28972E00348CD9 /* Sign Application */, ); buildRules = ( ); @@ -1454,20 +1452,6 @@ shellPath = /bin/sh; shellScript = "mkdir -p \"$CONFIGURATION_BUILD_DIR/$PRODUCT_NAME.app/Contents/Helpers\" && cp \"./../../Libraries/crashpad/crashpad/out/Release/crashpad_handler\" \"$CONFIGURATION_BUILD_DIR/$PRODUCT_NAME.app/Contents/Helpers/\""; }; - 0746AC8F1A28D4140040AE26 /* Clean Updater */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Clean Updater"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "rm -rf \"$CONFIGURATION_BUILD_DIR/$PRODUCT_NAME.app/Contents/Frameworks/Updater.dSYM\""; - }; 07489B6B1A28949600348CD9 /* Build Updater */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1482,20 +1466,6 @@ shellPath = /bin/sh; shellScript = "xcodebuild -project Updater.xcodeproj -configuration $CONFIGURATION"; }; - 07489B6D1A28972E00348CD9 /* Sign Application */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Sign Application"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "codesign --force --deep --sign \"Developer ID Application: John Preston\" \"$CONFIGURATION_BUILD_DIR/$PRODUCT_NAME.app\""; - }; 07C3AF341948FC3B0016CFF1 /* Force Resources Directory */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; diff --git a/Telegram/_breakpad_appstore_patch.diff b/Telegram/_breakpad_appstore_patch.diff new file mode 100644 index 0000000000..9b12b92b8c --- /dev/null +++ b/Telegram/_breakpad_appstore_patch.diff @@ -0,0 +1,366 @@ +diff --git a/src/client/mac/Breakpad.xcodeproj/project.pbxproj b/src/client/mac/Breakpad.xcodeproj/project.pbxproj +index 584ec5d..9cea428 100644 +--- a/src/client/mac/Breakpad.xcodeproj/project.pbxproj ++++ b/src/client/mac/Breakpad.xcodeproj/project.pbxproj +@@ -174,7 +174,6 @@ + F92C565F0ECD116B009BE4BA /* protected_memory_allocator.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C53720ECCE3FD009BE4BA /* protected_memory_allocator.cc */; }; + F92C56630ECD1179009BE4BA /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; }; + F92C56650ECD1185009BE4BA /* breakpadUtilities.dylib in Resources */ = {isa = PBXBuildFile; fileRef = F92C563C0ECD10B3009BE4BA /* breakpadUtilities.dylib */; }; +- F92C568A0ECD15F9009BE4BA /* Inspector in Resources */ = {isa = PBXBuildFile; fileRef = F92C53540ECCE349009BE4BA /* Inspector */; }; + F92C56A90ECE04C5009BE4BA /* crash_report_sender.m in Sources */ = {isa = PBXBuildFile; fileRef = F92C56A80ECE04C5009BE4BA /* crash_report_sender.m */; }; + F93803CD0F8083B7004D428B /* dynamic_images.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536B0ECCE3FD009BE4BA /* dynamic_images.cc */; }; + F93803CE0F8083B7004D428B /* exception_handler.cc in Sources */ = {isa = PBXBuildFile; fileRef = F92C536D0ECCE3FD009BE4BA /* exception_handler.cc */; }; +@@ -213,7 +212,6 @@ + F9C44DBD0EF072A0003AEBAA /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9C44DBA0EF072A0003AEBAA /* MainMenu.xib */; }; + F9C44E000EF077CD003AEBAA /* Breakpad.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; }; + F9C44E3C0EF08B12003AEBAA /* Breakpad.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = 8DC2EF5B0486A6940098B216 /* Breakpad.framework */; }; +- F9C44E980EF09F56003AEBAA /* crash_report_sender.app in Resources */ = {isa = PBXBuildFile; fileRef = F92C56A00ECE04A7009BE4BA /* crash_report_sender.app */; }; + F9C44EA20EF09F93003AEBAA /* HTTPMultipartUpload.m in Sources */ = {isa = PBXBuildFile; fileRef = F92C53770ECCE635009BE4BA /* HTTPMultipartUpload.m */; }; + F9C44EE50EF0A006003AEBAA /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9C44EE40EF0A006003AEBAA /* SystemConfiguration.framework */; }; + F9C44EE90EF0A3C1003AEBAA /* GTMLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = F9C44EE80EF0A3C1003AEBAA /* GTMLogger.m */; }; +@@ -417,13 +415,6 @@ + remoteGlobalIDString = F92C563B0ECD10B3009BE4BA; + remoteInfo = breakpadUtilities; + }; +- F92C56870ECD15F1009BE4BA /* PBXContainerItemProxy */ = { +- isa = PBXContainerItemProxy; +- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; +- proxyType = 1; +- remoteGlobalIDString = F92C53530ECCE349009BE4BA; +- remoteInfo = Inspector; +- }; + F93DE2FB0F82C3C600608B94 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; +@@ -536,13 +527,6 @@ + remoteGlobalIDString = 8DC2EF4F0486A6940098B216; + remoteInfo = Breakpad; + }; +- F9C44E960EF09F4B003AEBAA /* PBXContainerItemProxy */ = { +- isa = PBXContainerItemProxy; +- containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; +- proxyType = 1; +- remoteGlobalIDString = F92C569F0ECE04A7009BE4BA; +- remoteInfo = crash_report_sender; +- }; + /* End PBXContainerItemProxy section */ + + /* Begin PBXCopyFilesBuildPhase section */ +@@ -1193,8 +1177,6 @@ + ); + dependencies = ( + F92C56860ECD15EF009BE4BA /* PBXTargetDependency */, +- F92C56880ECD15F1009BE4BA /* PBXTargetDependency */, +- F9C44E970EF09F4B003AEBAA /* PBXTargetDependency */, + ); + name = Breakpad; + productInstallPath = "$(HOME)/Library/Frameworks"; +@@ -1401,6 +1383,8 @@ + /* Begin PBXProject section */ + 0867D690FE84028FC02AAC07 /* Project object */ = { + isa = PBXProject; ++ attributes = { ++ }; + buildConfigurationList = 1DEB91B108733DA50010E9CD /* Build configuration list for PBXProject "Breakpad" */; + compatibilityVersion = "Xcode 3.1"; + developmentRegion = English; +@@ -1589,8 +1573,6 @@ + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( +- F9C44E980EF09F56003AEBAA /* crash_report_sender.app in Resources */, +- F92C568A0ECD15F9009BE4BA /* Inspector in Resources */, + F92C56650ECD1185009BE4BA /* breakpadUtilities.dylib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; +@@ -1962,11 +1944,6 @@ + target = F92C563B0ECD10B3009BE4BA /* breakpadUtilities */; + targetProxy = F92C56850ECD15EF009BE4BA /* PBXContainerItemProxy */; + }; +- F92C56880ECD15F1009BE4BA /* PBXTargetDependency */ = { +- isa = PBXTargetDependency; +- target = F92C53530ECCE349009BE4BA /* Inspector */; +- targetProxy = F92C56870ECD15F1009BE4BA /* PBXContainerItemProxy */; +- }; + F93DE2FC0F82C3C600608B94 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = F93803BD0F80820F004D428B /* generator_test */; +@@ -2027,11 +2004,6 @@ + target = 8DC2EF4F0486A6940098B216 /* Breakpad */; + targetProxy = F9C44E190EF0790F003AEBAA /* PBXContainerItemProxy */; + }; +- F9C44E970EF09F4B003AEBAA /* PBXTargetDependency */ = { +- isa = PBXTargetDependency; +- target = F92C569F0ECE04A7009BE4BA /* crash_report_sender */; +- targetProxy = F9C44E960EF09F4B003AEBAA /* PBXContainerItemProxy */; +- }; + /* End PBXTargetDependency section */ + + /* Begin PBXVariantGroup section */ +@@ -2128,8 +2100,12 @@ + isa = XCBuildConfiguration; + baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */; + buildSettings = { ++ CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; ++ CLANG_CXX_LIBRARY = "libc++"; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; +- SDKROOT = macosx10.5; ++ GCC_VERSION = ""; ++ MACOSX_DEPLOYMENT_TARGET = 10.8; ++ SDKROOT = macosx; + }; + name = Debug; + }; +@@ -2137,7 +2113,12 @@ + isa = XCBuildConfiguration; + baseConfigurationReference = 8B31027811F0D3AF00FCF3E4 /* BreakpadRelease.xcconfig */; + buildSettings = { ++ CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; ++ CLANG_CXX_LIBRARY = "libc++"; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; ++ GCC_VERSION = ""; ++ MACOSX_DEPLOYMENT_TARGET = 10.8; ++ SDKROOT = macosx; + }; + name = Release; + }; +@@ -2456,7 +2437,12 @@ + isa = XCBuildConfiguration; + baseConfigurationReference = 8B31027711F0D3AF00FCF3E4 /* BreakpadDebug.xcconfig */; + buildSettings = { ++ CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; ++ CLANG_CXX_LIBRARY = "libc++"; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; ++ GCC_VERSION = ""; ++ MACOSX_DEPLOYMENT_TARGET = 10.8; ++ SDKROOT = macosx; + }; + name = "Debug With Code Coverage"; + }; +diff --git a/src/client/mac/Framework/Breakpad.mm b/src/client/mac/Framework/Breakpad.mm +index 1d2e519..943310f 100644 +--- a/src/client/mac/Framework/Breakpad.mm ++++ b/src/client/mac/Framework/Breakpad.mm +@@ -355,10 +355,10 @@ bool Breakpad::Initialize(NSDictionary *parameters) { + return false; + } + +- if ([[parameters objectForKey:@BREAKPAD_IN_PROCESS] boolValue]) ++// if ([[parameters objectForKey:@BREAKPAD_IN_PROCESS] boolValue]) + return InitializeInProcess(parameters); +- else +- return InitializeOutOfProcess(parameters); ++// else ++// return InitializeOutOfProcess(parameters); + } + + //============================================================================= +@@ -373,52 +373,52 @@ bool Breakpad::InitializeInProcess(NSDictionary* parameters) { + } + + //============================================================================= +-bool Breakpad::InitializeOutOfProcess(NSDictionary* parameters) { +- // Get path to Inspector executable. +- NSString *inspectorPathString = KeyValue(@BREAKPAD_INSPECTOR_LOCATION); +- +- // Standardize path (resolve symlinkes, etc.) and escape spaces +- inspectorPathString = [inspectorPathString stringByStandardizingPath]; +- inspectorPathString = [[inspectorPathString componentsSeparatedByString:@" "] +- componentsJoinedByString:@"\\ "]; +- +- // Create an on-demand server object representing the Inspector. +- // In case of a crash, we simply need to call the LaunchOnDemand() +- // method on it, then send a mach message to its service port. +- // It will then launch and perform a process inspection of our crashed state. +- // See the HandleException() method for the details. +-#define RECEIVE_PORT_NAME "com.Breakpad.Inspector" +- +- name_t portName; +- snprintf(portName, sizeof(name_t), "%s%d", RECEIVE_PORT_NAME, getpid()); +- +- // Save the location of the Inspector +- strlcpy(inspector_path_, [inspectorPathString fileSystemRepresentation], +- sizeof(inspector_path_)); +- +- // Append a single command-line argument to the Inspector path +- // representing the bootstrap name of the launch-on-demand receive port. +- // When the Inspector is launched, it can use this to lookup the port +- // by calling bootstrap_check_in(). +- strlcat(inspector_path_, " ", sizeof(inspector_path_)); +- strlcat(inspector_path_, portName, sizeof(inspector_path_)); +- +- kern_return_t kr = inspector_.Initialize(inspector_path_, +- portName, +- true); // shutdown on exit +- +- if (kr != KERN_SUCCESS) { +- return false; +- } +- +- // Create the handler (allocating it in our special protected pool) +- handler_ = +- new (gBreakpadAllocator->Allocate( +- sizeof(google_breakpad::ExceptionHandler))) +- google_breakpad::ExceptionHandler( +- Breakpad::ExceptionHandlerDirectCallback, this, true); +- return true; +-} ++//bool Breakpad::InitializeOutOfProcess(NSDictionary* parameters) { ++// // Get path to Inspector executable. ++// NSString *inspectorPathString = KeyValue(@BREAKPAD_INSPECTOR_LOCATION); ++// ++// // Standardize path (resolve symlinkes, etc.) and escape spaces ++// inspectorPathString = [inspectorPathString stringByStandardizingPath]; ++// inspectorPathString = [[inspectorPathString componentsSeparatedByString:@" "] ++// componentsJoinedByString:@"\\ "]; ++// ++// // Create an on-demand server object representing the Inspector. ++// // In case of a crash, we simply need to call the LaunchOnDemand() ++// // method on it, then send a mach message to its service port. ++// // It will then launch and perform a process inspection of our crashed state. ++// // See the HandleException() method for the details. ++//#define RECEIVE_PORT_NAME "com.Breakpad.Inspector" ++// ++// name_t portName; ++// snprintf(portName, sizeof(name_t), "%s%d", RECEIVE_PORT_NAME, getpid()); ++// ++// // Save the location of the Inspector ++// strlcpy(inspector_path_, [inspectorPathString fileSystemRepresentation], ++// sizeof(inspector_path_)); ++// ++// // Append a single command-line argument to the Inspector path ++// // representing the bootstrap name of the launch-on-demand receive port. ++// // When the Inspector is launched, it can use this to lookup the port ++// // by calling bootstrap_check_in(). ++// strlcat(inspector_path_, " ", sizeof(inspector_path_)); ++// strlcat(inspector_path_, portName, sizeof(inspector_path_)); ++// ++// kern_return_t kr = inspector_.Initialize(inspector_path_, ++// portName, ++// true); // shutdown on exit ++// ++// if (kr != KERN_SUCCESS) { ++// return false; ++// } ++// ++// // Create the handler (allocating it in our special protected pool) ++// handler_ = ++// new (gBreakpadAllocator->Allocate( ++// sizeof(google_breakpad::ExceptionHandler))) ++// google_breakpad::ExceptionHandler( ++// Breakpad::ExceptionHandlerDirectCallback, this, true); ++// return true; ++//} + + //============================================================================= + Breakpad::~Breakpad() { +@@ -445,10 +445,10 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) { + NSString *version = [parameters objectForKey:@BREAKPAD_VERSION]; + NSString *urlStr = [parameters objectForKey:@BREAKPAD_URL]; + NSString *interval = [parameters objectForKey:@BREAKPAD_REPORT_INTERVAL]; +- NSString *inspectorPathString = +- [parameters objectForKey:@BREAKPAD_INSPECTOR_LOCATION]; +- NSString *reporterPathString = +- [parameters objectForKey:@BREAKPAD_REPORTER_EXE_LOCATION]; ++// NSString *inspectorPathString = ++// [parameters objectForKey:@BREAKPAD_INSPECTOR_LOCATION]; ++// NSString *reporterPathString = ++// [parameters objectForKey:@BREAKPAD_REPORTER_EXE_LOCATION]; + NSString *timeout = [parameters objectForKey:@BREAKPAD_CONFIRM_TIMEOUT]; + NSArray *logFilePaths = [parameters objectForKey:@BREAKPAD_LOGFILES]; + NSString *logFileTailSize = +@@ -536,39 +536,39 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) { + } + + // Find the helper applications if not specified in user config. +- NSString *resourcePath = nil; +- if (!inspectorPathString || !reporterPathString) { +- resourcePath = GetResourcePath(); +- if (!resourcePath) { +- return false; +- } +- } ++// NSString *resourcePath = nil; ++// if (!inspectorPathString || !reporterPathString) { ++// resourcePath = GetResourcePath(); ++// if (!resourcePath) { ++// return false; ++// } ++// } + + // Find Inspector. +- if (!inspectorPathString) { +- inspectorPathString = +- [resourcePath stringByAppendingPathComponent:@"Inspector"]; +- } +- +- // Verify that there is an Inspector tool. +- if (![[NSFileManager defaultManager] fileExistsAtPath:inspectorPathString]) { +- return false; +- } ++// if (!inspectorPathString) { ++// inspectorPathString = ++// [resourcePath stringByAppendingPathComponent:@"Inspector"]; ++// } ++// ++// // Verify that there is an Inspector tool. ++// if (![[NSFileManager defaultManager] fileExistsAtPath:inspectorPathString]) { ++// return false; ++// } + + // Find Reporter. +- if (!reporterPathString) { +- reporterPathString = +- [resourcePath +- stringByAppendingPathComponent:@"crash_report_sender.app"]; +- reporterPathString = +- [[NSBundle bundleWithPath:reporterPathString] executablePath]; +- } ++// if (!reporterPathString) { ++// reporterPathString = ++// [resourcePath ++// stringByAppendingPathComponent:@"crash_report_sender.app"]; ++// reporterPathString = ++// [[NSBundle bundleWithPath:reporterPathString] executablePath]; ++// } + + // Verify that there is a Reporter application. +- if (![[NSFileManager defaultManager] +- fileExistsAtPath:reporterPathString]) { +- return false; +- } ++// if (![[NSFileManager defaultManager] ++// fileExistsAtPath:reporterPathString]) { ++// return false; ++// } + + if (!dumpSubdirectory) { + dumpSubdirectory = @""; +@@ -601,10 +601,10 @@ bool Breakpad::ExtractParameters(NSDictionary *parameters) { + dictionary.SetKeyValue(BREAKPAD_REPORT_INTERVAL, [interval UTF8String]); + dictionary.SetKeyValue(BREAKPAD_SKIP_CONFIRM, [skipConfirm UTF8String]); + dictionary.SetKeyValue(BREAKPAD_CONFIRM_TIMEOUT, [timeout UTF8String]); +- dictionary.SetKeyValue(BREAKPAD_INSPECTOR_LOCATION, +- [inspectorPathString fileSystemRepresentation]); +- dictionary.SetKeyValue(BREAKPAD_REPORTER_EXE_LOCATION, +- [reporterPathString fileSystemRepresentation]); ++// dictionary.SetKeyValue(BREAKPAD_INSPECTOR_LOCATION, ++// [inspectorPathString fileSystemRepresentation]); ++// dictionary.SetKeyValue(BREAKPAD_REPORTER_EXE_LOCATION, ++// [reporterPathString fileSystemRepresentation]); + dictionary.SetKeyValue(BREAKPAD_LOGFILE_UPLOAD_SIZE, + [logFileTailSize UTF8String]); + dictionary.SetKeyValue(BREAKPAD_REQUEST_COMMENTS, +@@ -762,9 +762,9 @@ bool Breakpad::HandleException(int exception_type, + bool Breakpad::HandleMinidump(const char *dump_dir, const char *minidump_id) { + google_breakpad::ConfigFile config_file; + config_file.WriteFile(dump_dir, config_params_, dump_dir, minidump_id); +- google_breakpad::LaunchReporter( +- config_params_->GetValueForKey(BREAKPAD_REPORTER_EXE_LOCATION), +- config_file.GetFilePath()); ++// google_breakpad::LaunchReporter( ++// config_params_->GetValueForKey(BREAKPAD_REPORTER_EXE_LOCATION), ++// config_file.GetFilePath()); + return true; + } +