mirror of
https://github.com/servo/servo.git
synced 2025-06-25 01:24:37 +01:00
log and format for wstrings.
This commit is contained in:
parent
60ee588c71
commit
805b79b32c
10 changed files with 37 additions and 57 deletions
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "pch.h"
|
||||
#include "logs.h"
|
||||
#include "strutils.h"
|
||||
#include "BrowserPage.h"
|
||||
#include "BrowserPage.g.cpp"
|
||||
#include "DefaultUrl.h"
|
||||
|
@ -103,7 +103,7 @@ void BrowserPage::LoadServoURI(Uri uri) {
|
|||
auto scheme = uri.SchemeName();
|
||||
|
||||
if (scheme != SERVO_SCHEME) {
|
||||
log("Unexpected URL: ", uri.RawUri().c_str());
|
||||
log(L"Unexpected URL: ", uri.RawUri().c_str());
|
||||
return;
|
||||
}
|
||||
std::wstring raw{uri.RawUri()};
|
||||
|
|
|
@ -119,7 +119,7 @@
|
|||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="logs.h" />
|
||||
<ClInclude Include="strutils.h" />
|
||||
<ClInclude Include="pch.h" />
|
||||
<ClInclude Include="App.h">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
|
@ -923,7 +923,6 @@
|
|||
<DependentUpon>BrowserPage.xaml</DependentUpon>
|
||||
</ClCompile>
|
||||
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
|
||||
<ClCompile Include="logs.cpp" />
|
||||
<ClCompile Include="ServoControl\OpenGLES.cpp" />
|
||||
<ClCompile Include="ServoControl\Servo.cpp" />
|
||||
<ClCompile Include="ServoControl\ServoControl.cpp" />
|
||||
|
|
|
@ -10,7 +10,6 @@
|
|||
<ItemGroup>
|
||||
<ClCompile Include="pch.cpp" />
|
||||
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
|
||||
<ClCompile Include="logs.cpp" />
|
||||
<ClCompile Include="BrowserPage.cpp" />
|
||||
<ClCompile Include="App.cpp" />
|
||||
<ClCompile Include="ServoControl\OpenGLES.cpp">
|
||||
|
@ -25,7 +24,6 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="pch.h" />
|
||||
<ClInclude Include="logs.h" />
|
||||
<ClInclude Include="BrowserPage.h" />
|
||||
<ClInclude Include="App.h" />
|
||||
<ClInclude Include="ServoControl\OpenGLES.h">
|
||||
|
@ -38,6 +36,7 @@
|
|||
<Filter>ServoControl</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="DefaultUrl.h" />
|
||||
<ClInclude Include="strutils.h" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="Assets\Wide310x150Logo.scale-200.png">
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "pch.h"
|
||||
#include "logs.h"
|
||||
#include "strutils.h"
|
||||
#include "OpenGLES.h"
|
||||
|
||||
using namespace winrt::Windows::UI::Xaml::Controls;
|
||||
|
@ -13,7 +13,7 @@ using namespace winrt::Windows::Foundation::Collections;
|
|||
OpenGLES::OpenGLES()
|
||||
: mEglConfig(nullptr), mEglDisplay(EGL_NO_DISPLAY),
|
||||
mEglContext(EGL_NO_CONTEXT) {
|
||||
log("OpenGLES::OpenGLES()");
|
||||
log(L"OpenGLES::OpenGLES()");
|
||||
Initialize();
|
||||
}
|
||||
|
||||
|
|
|
@ -178,7 +178,7 @@ Servo::Servo(hstring url, hstring args, GLsizei width, GLsizei height,
|
|||
} else if (type == Windows::Foundation::PropertyType::Empty) {
|
||||
pref.pref_type = capi::CPrefType::Missing;
|
||||
} else {
|
||||
log("skipping pref %s. Unknown type", key);
|
||||
log(L"skipping pref %s. Unknown type", key);
|
||||
continue;
|
||||
}
|
||||
cprefs.push_back(pref);
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
#include "pch.h"
|
||||
#include <EGL/egl.h>
|
||||
#include "logs.h"
|
||||
#include "strutils.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
namespace winrt::servo {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#include "pch.h"
|
||||
#include "strutils.h"
|
||||
#include "ServoControl.h"
|
||||
#include "ServoControl.g.cpp"
|
||||
#include "Pref.g.cpp"
|
||||
|
@ -277,16 +278,9 @@ hstring ServoControl::LoadURIOrSearch(hstring input) {
|
|||
|
||||
// Doesn't look like a URI. Let's search for the string.
|
||||
auto escapedInput = Uri::EscapeComponent(input);
|
||||
std::wstring searchUri =
|
||||
unbox_value<hstring>(std::get<1>(Servo::GetPref(L"shell.searchpage")))
|
||||
.c_str();
|
||||
std::wstring keyword = L"%s";
|
||||
size_t start_pos = searchUri.find(keyword);
|
||||
if (start_pos == std::string::npos)
|
||||
searchUri = searchUri + escapedInput;
|
||||
else
|
||||
searchUri.replace(start_pos, keyword.length(), escapedInput);
|
||||
hstring finalUri{searchUri};
|
||||
std::wstring searchUri = unbox_value<hstring>(std::get<1>(Servo::GetPref(L"shell.searchpage"))).c_str();
|
||||
std::wstring formated = format(searchUri, escapedInput.c_str());
|
||||
hstring finalUri{formated};
|
||||
TryLoadUri(finalUri);
|
||||
return finalUri;
|
||||
}
|
||||
|
@ -323,10 +317,10 @@ void ServoControl::RunOnGLThread(std::function<void()> task) {
|
|||
/**** GL THREAD LOOP ****/
|
||||
|
||||
void ServoControl::Loop() {
|
||||
log("BrowserPage::Loop(). GL thread: %i", GetCurrentThreadId());
|
||||
log(L"BrowserPage::Loop(). GL thread: %i", GetCurrentThreadId());
|
||||
|
||||
if (mServo == nullptr) {
|
||||
log("Entering loop");
|
||||
log(L"Entering loop");
|
||||
ServoDelegate *sd = static_cast<ServoDelegate *>(this);
|
||||
EGLNativeWindowType win = GetNativeWindow();
|
||||
mServo = std::make_unique<Servo>(mInitialURL, mArgs, mPanelWidth,
|
||||
|
@ -367,7 +361,7 @@ void ServoControl::StartRenderLoop() {
|
|||
#endif
|
||||
}
|
||||
mLooping = true;
|
||||
log("BrowserPage::StartRenderLoop(). UI thread: %i", GetCurrentThreadId());
|
||||
log(L"BrowserPage::StartRenderLoop(). UI thread: %i", GetCurrentThreadId());
|
||||
auto task = Concurrency::create_task([=] { Loop(); });
|
||||
mLoopTask = std::make_unique<Concurrency::task<void>>(task);
|
||||
}
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "pch.h"
|
||||
|
||||
void log(const char *format, ...) {
|
||||
char buf[4096], *p = buf;
|
||||
va_list args;
|
||||
int n;
|
||||
|
||||
va_start(args, format);
|
||||
n = vsnprintf(p, sizeof buf - 3, format, args);
|
||||
va_end(args);
|
||||
|
||||
p += (n < 0) ? sizeof buf - 3 : n;
|
||||
|
||||
while (p > buf && isspace(p[-1])) {
|
||||
*--p = '\0';
|
||||
}
|
||||
|
||||
*p++ = '\r';
|
||||
*p++ = '\n';
|
||||
*p = '\0';
|
||||
|
||||
OutputDebugStringA(buf);
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#pragma once
|
||||
|
||||
void log(const char *format, ...);
|
22
support/hololens/ServoApp/strutils.h
Normal file
22
support/hololens/ServoApp/strutils.h
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#pragma once
|
||||
|
||||
template <typename... Args>
|
||||
std::wstring format(const std::wstring &txt, Args... args) {
|
||||
size_t size = swprintf(nullptr, 0, txt.c_str(), args...) + 1;
|
||||
if (size <= 0) {
|
||||
throw std::runtime_error("Error during formatting.");
|
||||
}
|
||||
auto ptr = new wchar_t[size];
|
||||
swprintf(ptr, size, txt.c_str(), args...);
|
||||
auto wstr = std::wstring(ptr);
|
||||
delete ptr;
|
||||
return wstr;
|
||||
}
|
||||
|
||||
template <typename... Args> void log(const std::wstring &txt, Args... args) {
|
||||
OutputDebugString((format(txt, args...) + L"\r\n").c_str());
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue