[Libreoffice-commits] online.git: 2 commits - loleaflet/js loleaflet/src Mobile/Mobile Mobile/Mobile.xcodeproj
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Fri Oct 12 15:01:14 UTC 2018
Mobile/Mobile.xcodeproj/project.pbxproj | 134 +++++++++++++++++++++++++++++++
Mobile/Mobile/Document.mm | 1
Mobile/Mobile/DocumentViewController.mm | 49 +++++++++--
loleaflet/js/toolbar.js | 8 +
loleaflet/src/control/Control.Menubar.js | 8 +
5 files changed, 186 insertions(+), 14 deletions(-)
New commits:
commit ed348677f22d887d80c76b5dcae22a109e457f72
Author: Tor Lillqvist <tml at collabora.com>
AuthorDate: Fri Oct 12 17:48:45 2018 +0300
Commit: Tor Lillqvist <tml at collabora.com>
CommitDate: Fri Oct 12 17:48:45 2018 +0300
Add "Close document" menu entry (or corresponding button) to the iOS app
In the JS, send the special "BYE" message to the app code.
In the iOS app code, handle that message by closing the fake socket
connection to the Online code, which eventually will cause the
corresponding thread to exit etc, and the app to return to displaying
the DocumentBrowserViewController. (Currently it causes the whole app
to exit which is wrong of course; an iOS should never exit
intentionally.)
diff --git a/Mobile/Mobile/Document.mm b/Mobile/Mobile/Document.mm
index eadf653ec..e36b219e0 100644
--- a/Mobile/Mobile/Document.mm
+++ b/Mobile/Mobile/Document.mm
@@ -38,6 +38,7 @@
NSURL *url = [[NSBundle mainBundle] URLForResource:@"loleaflet" withExtension:@"html"];
NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO];
components.queryItems = @[ [NSURLQueryItem queryItemWithName:@"file_path" value:[NSString stringWithUTF8String:uri.c_str()]],
+ [NSURLQueryItem queryItemWithName:@"closebutton" value:@"1"],
[NSURLQueryItem queryItemWithName:@"permission" value:@"edit"],
[NSURLQueryItem queryItemWithName:@"debug" value:@"true"]];
NSURLRequest *request = [[NSURLRequest alloc]initWithURL:components.URL];
diff --git a/Mobile/Mobile/DocumentViewController.mm b/Mobile/Mobile/DocumentViewController.mm
index 5f203fdef..fc7f2deee 100644
--- a/Mobile/Mobile/DocumentViewController.mm
+++ b/Mobile/Mobile/DocumentViewController.mm
@@ -19,7 +19,7 @@
#import "DocumentViewController.h"
@interface DocumentViewController() <WKNavigationDelegate, WKUIDelegate, WKScriptMessageHandler> {
- BOOL waitingForInitialLoad;
+ int closeNotificationPipeForForwardingThread[2];
}
@end
@@ -157,20 +157,42 @@
rc = fakeSocketConnect(self.document->fakeClientFd, loolwsd_server_socket_fd);
assert(rc != -1);
+ // Create a socket pair to notify the below thread when the document has been closed
+ fakeSocketPipe2(closeNotificationPipeForForwardingThread);
+
// Start another thread to read responses and forward them to the JavaScript
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
^{
while (true) {
- struct pollfd p;
- p.fd = self.document->fakeClientFd;
- p.events = POLLIN;
- if (fakeSocketPoll(&p, 1, -1) == 1) {
- int n = fakeSocketAvailableDataLength(self.document->fakeClientFd);
- if (n == 0)
+ struct pollfd p[2];
+ p[0].fd = self.document->fakeClientFd;
+ p[0].events = POLLIN;
+ p[1].fd = self->closeNotificationPipeForForwardingThread[1];
+ p[1].events = POLLIN;
+ if (fakeSocketPoll(p, 2, -1) > 0) {
+ if (p[1].revents == POLLIN) {
+ // The code below handling the "BYE" fake Websocket
+ // message has closed the other end of the
+ // closeNotificationPipeForForwardingThread. Let's close
+ // the other end too just for cleanliness, even if a
+ // FakeSocket as such is not a system resource so nothing
+ // is saved by closing it.
+ fakeSocketClose(self->closeNotificationPipeForForwardingThread[0]);
+
+ // Close our end of the fake socket connection to the
+ // ClientSession thread, so that it terminates
+ fakeSocketClose(self.document->fakeClientFd);
+
return;
- std::vector<char> buf(n);
- n = fakeSocketRead(self.document->fakeClientFd, buf.data(), n);
- [self.document send2JS:buf.data() length:n];
+ }
+ if (p[0].revents == POLLIN) {
+ int n = fakeSocketAvailableDataLength(self.document->fakeClientFd);
+ if (n == 0)
+ return;
+ std::vector<char> buf(n);
+ n = fakeSocketRead(self.document->fakeClientFd, buf.data(), n);
+ [self.document send2JS:buf.data() length:n];
+ }
}
else
break;
@@ -187,6 +209,13 @@
fakeSocketWrite(self.document->fakeClientFd, url.c_str(), url.size());
return;
+ } else if ([message.body isEqualToString:@"BYE"]) {
+ NSLog(@"document window closed! Closing our end of the socket?");
+
+ // Close one end of the socket pair, that will wake up the forwarding thread above
+ fakeSocketClose(closeNotificationPipeForForwardingThread[0]);
+
+ return;
}
const char *buf = [message.body UTF8String];
diff --git a/loleaflet/js/toolbar.js b/loleaflet/js/toolbar.js
index a08e81598..40a16b668 100644
--- a/loleaflet/js/toolbar.js
+++ b/loleaflet/js/toolbar.js
@@ -1869,8 +1869,12 @@ $(document).ready(function() {
$('#closebuttonwrapper').hide();
} else {
$('#closebutton').click(function() {
- map.fire('postMessage', {msgId: 'close', args: {EverModified: map._everModified, Deprecated: true}});
- map.fire('postMessage', {msgId: 'UI_Close', args: {EverModified: map._everModified}});
+ if (window.ThisIsTheiOSApp) {
+ window.webkit.messageHandlers.lool.postMessage('BYE', '*');
+ } else {
+ map.fire('postMessage', {msgId: 'close', args: {EverModified: map._everModified, Deprecated: true}});
+ map.fire('postMessage', {msgId: 'UI_Close', args: {EverModified: map._everModified}});
+ }
map.remove();
});
}
diff --git a/loleaflet/src/control/Control.Menubar.js b/loleaflet/src/control/Control.Menubar.js
index 236d54f74..7c0e46e52 100644
--- a/loleaflet/src/control/Control.Menubar.js
+++ b/loleaflet/src/control/Control.Menubar.js
@@ -735,8 +735,12 @@ L.Control.Menubar = L.Control.extend({
this._map.fire('postMessage', {msgId: 'rev-history', args: {Deprecated: true}});
this._map.fire('postMessage', {msgId: 'UI_FileVersions'});
} else if (id === 'closedocument') {
- this._map.fire('postMessage', {msgId: 'close', args: {EverModified: this._map._everModified, Deprecated: true}});
- this._map.fire('postMessage', {msgId: 'UI_Close', args: {EverModified: this._map._everModified}});
+ if (window.ThisIsTheiOSApp) {
+ window.webkit.messageHandlers.lool.postMessage('BYE', '*');
+ } else {
+ this._map.fire('postMessage', {msgId: 'close', args: {EverModified: this._map._everModified, Deprecated: true}});
+ this._map.fire('postMessage', {msgId: 'UI_Close', args: {EverModified: this._map._everModified}});
+ }
this._map.remove();
} else if (id === 'repair') {
this._map._socket.sendMessage('commandvalues command=.uno:DocumentRepair');
commit 0318f383f78d548b66d45c8e908c71e16839e654
Author: Tor Lillqvist <tml at collabora.com>
AuthorDate: Fri Oct 12 15:09:07 2018 +0300
Commit: Tor Lillqvist <tml at collabora.com>
CommitDate: Fri Oct 12 15:09:07 2018 +0300
Agan, add more core source files
diff --git a/Mobile/Mobile.xcodeproj/project.pbxproj b/Mobile/Mobile.xcodeproj/project.pbxproj
index fe689f972..5821bcfa4 100644
--- a/Mobile/Mobile.xcodeproj/project.pbxproj
+++ b/Mobile/Mobile.xcodeproj/project.pbxproj
@@ -198,6 +198,57 @@
BEA2835F214ACA8500848631 /* FakeSocket.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FakeSocket.cpp; sourceTree = "<group>"; };
BEA28376214FFD8C00848631 /* Unit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Unit.cpp; sourceTree = "<group>"; };
BEA283782150172600848631 /* Unit.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Unit.hpp; sourceTree = "<group>"; };
+ BEB6521C216F5D8B00B8C09A /* file_path_helper.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = file_path_helper.hxx; path = "../../ios-device/sal/osl/unx/file_path_helper.hxx"; sourceTree = "<group>"; };
+ BEB6521D216F5D8B00B8C09A /* file_error_transl.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = file_error_transl.hxx; path = "../../ios-device/sal/osl/unx/file_error_transl.hxx"; sourceTree = "<group>"; };
+ BEB6521E216F5D8B00B8C09A /* nlsupport.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = nlsupport.hxx; path = "../../ios-device/sal/osl/unx/nlsupport.hxx"; sourceTree = "<group>"; };
+ BEB6521F216F5D8B00B8C09A /* createfilehandlefromfd.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = createfilehandlefromfd.hxx; path = "../../ios-device/sal/osl/unx/createfilehandlefromfd.hxx"; sourceTree = "<group>"; };
+ BEB65220216F5D8B00B8C09A /* sockimpl.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = sockimpl.hxx; path = "../../ios-device/sal/osl/unx/sockimpl.hxx"; sourceTree = "<group>"; };
+ BEB65221216F5D8B00B8C09A /* file_error_transl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_error_transl.cxx; path = "../../ios-device/sal/osl/unx/file_error_transl.cxx"; sourceTree = "<group>"; };
+ BEB65222216F5D8B00B8C09A /* system.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = system.hxx; path = "../../ios-device/sal/osl/unx/system.hxx"; sourceTree = "<group>"; };
+ BEB65223216F5D8B00B8C09A /* backtrace.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = backtrace.h; path = "../../ios-device/sal/osl/unx/backtrace.h"; sourceTree = "<group>"; };
+ BEB65224216F5D8B00B8C09A /* file_url.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = file_url.hxx; path = "../../ios-device/sal/osl/unx/file_url.hxx"; sourceTree = "<group>"; };
+ BEB65225216F5D8B00B8C09A /* file_volume.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_volume.cxx; path = "../../ios-device/sal/osl/unx/file_volume.cxx"; sourceTree = "<group>"; };
+ BEB65226216F5D8B00B8C09A /* mutex.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = mutex.cxx; path = "../../ios-device/sal/osl/unx/mutex.cxx"; sourceTree = "<group>"; };
+ BEB65227216F5D8B00B8C09A /* security.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = security.cxx; path = "../../ios-device/sal/osl/unx/security.cxx"; sourceTree = "<group>"; };
+ BEB65228216F5D8B00B8C09A /* memory.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = memory.cxx; path = "../../ios-device/sal/osl/unx/memory.cxx"; sourceTree = "<group>"; };
+ BEB65229216F5D8B00B8C09A /* system.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = system.cxx; path = "../../ios-device/sal/osl/unx/system.cxx"; sourceTree = "<group>"; };
+ BEB6522A216F5D8B00B8C09A /* file_misc.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_misc.cxx; path = "../../ios-device/sal/osl/unx/file_misc.cxx"; sourceTree = "<group>"; };
+ BEB6522B216F5D8B00B8C09A /* thread.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = thread.cxx; path = "../../ios-device/sal/osl/unx/thread.cxx"; sourceTree = "<group>"; };
+ BEB6522C216F5D8B00B8C09A /* signal.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = signal.cxx; path = "../../ios-device/sal/osl/unx/signal.cxx"; sourceTree = "<group>"; };
+ BEB6522D216F5D8C00B8C09A /* secimpl.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = secimpl.hxx; path = "../../ios-device/sal/osl/unx/secimpl.hxx"; sourceTree = "<group>"; };
+ BEB6522E216F5D8C00B8C09A /* profile.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = profile.cxx; path = "../../ios-device/sal/osl/unx/profile.cxx"; sourceTree = "<group>"; };
+ BEB6522F216F5D8C00B8C09A /* system.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = system.mm; path = "../../ios-device/sal/osl/unx/system.mm"; sourceTree = "<group>"; };
+ BEB65230216F5D8C00B8C09A /* backtrace.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = backtrace.c; path = "../../ios-device/sal/osl/unx/backtrace.c"; sourceTree = "<group>"; };
+ BEB65231216F5D8C00B8C09A /* file_path_helper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_path_helper.cxx; path = "../../ios-device/sal/osl/unx/file_path_helper.cxx"; sourceTree = "<group>"; };
+ BEB65232216F5D8C00B8C09A /* process_impl.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = process_impl.cxx; path = "../../ios-device/sal/osl/unx/process_impl.cxx"; sourceTree = "<group>"; };
+ BEB65233216F5D8C00B8C09A /* file_impl.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = file_impl.hxx; path = "../../ios-device/sal/osl/unx/file_impl.hxx"; sourceTree = "<group>"; };
+ BEB65234216F5D8C00B8C09A /* socket.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = socket.cxx; path = "../../ios-device/sal/osl/unx/socket.cxx"; sourceTree = "<group>"; };
+ BEB65235216F5D8C00B8C09A /* readwrite_helper.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = readwrite_helper.cxx; path = "../../ios-device/sal/osl/unx/readwrite_helper.cxx"; sourceTree = "<group>"; };
+ BEB65236216F5D8C00B8C09A /* osxlocale.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = osxlocale.cxx; path = "../../ios-device/sal/osl/unx/osxlocale.cxx"; sourceTree = "<group>"; };
+ BEB65237216F5D8C00B8C09A /* file_stat.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_stat.cxx; path = "../../ios-device/sal/osl/unx/file_stat.cxx"; sourceTree = "<group>"; };
+ BEB65238216F5D8C00B8C09A /* file.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file.cxx; path = "../../ios-device/sal/osl/unx/file.cxx"; sourceTree = "<group>"; };
+ BEB65239216F5D8C00B8C09A /* module.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = module.cxx; path = "../../ios-device/sal/osl/unx/module.cxx"; sourceTree = "<group>"; };
+ BEB6523A216F5D8C00B8C09A /* pipe.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = pipe.cxx; path = "../../ios-device/sal/osl/unx/pipe.cxx"; sourceTree = "<group>"; };
+ BEB6523B216F5D8C00B8C09A /* readwrite_helper.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = readwrite_helper.hxx; path = "../../ios-device/sal/osl/unx/readwrite_helper.hxx"; sourceTree = "<group>"; };
+ BEB6523C216F5D8C00B8C09A /* salinit.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = salinit.cxx; path = "../../ios-device/sal/osl/unx/salinit.cxx"; sourceTree = "<group>"; };
+ BEB6523D216F5D8C00B8C09A /* file_url.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = file_url.cxx; path = "../../ios-device/sal/osl/unx/file_url.cxx"; sourceTree = "<group>"; };
+ BEB6523E216F5D8C00B8C09A /* backtraceapi.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = backtraceapi.cxx; path = "../../ios-device/sal/osl/unx/backtraceapi.cxx"; sourceTree = "<group>"; };
+ BEB6523F216F5D8C00B8C09A /* interlck.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = interlck.cxx; path = "../../ios-device/sal/osl/unx/interlck.cxx"; sourceTree = "<group>"; };
+ BEB65240216F5D8C00B8C09A /* random.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = random.cxx; path = "../../ios-device/sal/osl/unx/random.cxx"; sourceTree = "<group>"; };
+ BEB65241216F5D8C00B8C09A /* tempfile.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = tempfile.cxx; path = "../../ios-device/sal/osl/unx/tempfile.cxx"; sourceTree = "<group>"; };
+ BEB65242216F5D8C00B8C09A /* uunxapi.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = uunxapi.hxx; path = "../../ios-device/sal/osl/unx/uunxapi.hxx"; sourceTree = "<group>"; };
+ BEB65243216F5D8C00B8C09A /* conditn.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = conditn.cxx; path = "../../ios-device/sal/osl/unx/conditn.cxx"; sourceTree = "<group>"; };
+ BEB65244216F5D8C00B8C09A /* asm */ = {isa = PBXFileReference; lastKnownFileType = folder; name = asm; path = "../../ios-device/sal/osl/unx/asm"; sourceTree = "<group>"; };
+ BEB65245216F5D8C00B8C09A /* uunxapi.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = uunxapi.cxx; path = "../../ios-device/sal/osl/unx/uunxapi.cxx"; sourceTree = "<group>"; };
+ BEB65246216F5D8D00B8C09A /* time.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = time.cxx; path = "../../ios-device/sal/osl/unx/time.cxx"; sourceTree = "<group>"; };
+ BEB65247216F5D8D00B8C09A /* uunxapi.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = uunxapi.mm; path = "../../ios-device/sal/osl/unx/uunxapi.mm"; sourceTree = "<group>"; };
+ BEB65248216F5D8D00B8C09A /* process.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = process.cxx; path = "../../ios-device/sal/osl/unx/process.cxx"; sourceTree = "<group>"; };
+ BEB65249216F5D8D00B8C09A /* saltime.hxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = saltime.hxx; path = "../../ios-device/sal/osl/unx/saltime.hxx"; sourceTree = "<group>"; };
+ BEB6524A216F5D8D00B8C09A /* nlsupport.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = nlsupport.cxx; path = "../../ios-device/sal/osl/unx/nlsupport.cxx"; sourceTree = "<group>"; };
+ BEB6524D216FD0CA00B8C09A /* vcompat.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = vcompat.cxx; path = "../../ios-device/tools/source/stream/vcompat.cxx"; sourceTree = "<group>"; };
+ BEB6524E216FD0CA00B8C09A /* stream.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = stream.cxx; path = "../../ios-device/tools/source/stream/stream.cxx"; sourceTree = "<group>"; };
+ BEB6524F216FD0CA00B8C09A /* strmwnt.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = strmwnt.cxx; path = "../../ios-device/tools/source/stream/strmwnt.cxx"; sourceTree = "<group>"; };
+ BEB65250216FD0CA00B8C09A /* strmunx.cxx */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = strmunx.cxx; path = "../../ios-device/tools/source/stream/strmunx.cxx"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -300,7 +351,9 @@
BE6362BE2153A79200F4237E /* Core */ = {
isa = PBXGroup;
children = (
+ BEB6521A216F5D4600B8C09A /* sal */,
BE93D43C216D555C007A39F4 /* sfx2 */,
+ BEB6524B216FD09400B8C09A /* tools */,
BE93D420216CAA52007A39F4 /* vcl */,
);
name = Core;
@@ -472,6 +525,87 @@
path = ../net;
sourceTree = SOURCE_ROOT;
};
+ BEB6521A216F5D4600B8C09A /* sal */ = {
+ isa = PBXGroup;
+ children = (
+ BEB6521B216F5D4C00B8C09A /* unx */,
+ );
+ name = sal;
+ sourceTree = "<group>";
+ };
+ BEB6521B216F5D4C00B8C09A /* unx */ = {
+ isa = PBXGroup;
+ children = (
+ BEB65244216F5D8C00B8C09A /* asm */,
+ BEB65230216F5D8C00B8C09A /* backtrace.c */,
+ BEB65223216F5D8B00B8C09A /* backtrace.h */,
+ BEB6523E216F5D8C00B8C09A /* backtraceapi.cxx */,
+ BEB65243216F5D8C00B8C09A /* conditn.cxx */,
+ BEB6521F216F5D8B00B8C09A /* createfilehandlefromfd.hxx */,
+ BEB65221216F5D8B00B8C09A /* file_error_transl.cxx */,
+ BEB6521D216F5D8B00B8C09A /* file_error_transl.hxx */,
+ BEB65233216F5D8C00B8C09A /* file_impl.hxx */,
+ BEB6522A216F5D8B00B8C09A /* file_misc.cxx */,
+ BEB65231216F5D8C00B8C09A /* file_path_helper.cxx */,
+ BEB6521C216F5D8B00B8C09A /* file_path_helper.hxx */,
+ BEB65237216F5D8C00B8C09A /* file_stat.cxx */,
+ BEB6523D216F5D8C00B8C09A /* file_url.cxx */,
+ BEB65224216F5D8B00B8C09A /* file_url.hxx */,
+ BEB65225216F5D8B00B8C09A /* file_volume.cxx */,
+ BEB65238216F5D8C00B8C09A /* file.cxx */,
+ BEB6523F216F5D8C00B8C09A /* interlck.cxx */,
+ BEB65228216F5D8B00B8C09A /* memory.cxx */,
+ BEB65239216F5D8C00B8C09A /* module.cxx */,
+ BEB65226216F5D8B00B8C09A /* mutex.cxx */,
+ BEB6524A216F5D8D00B8C09A /* nlsupport.cxx */,
+ BEB6521E216F5D8B00B8C09A /* nlsupport.hxx */,
+ BEB65236216F5D8C00B8C09A /* osxlocale.cxx */,
+ BEB6523A216F5D8C00B8C09A /* pipe.cxx */,
+ BEB65232216F5D8C00B8C09A /* process_impl.cxx */,
+ BEB65248216F5D8D00B8C09A /* process.cxx */,
+ BEB6522E216F5D8C00B8C09A /* profile.cxx */,
+ BEB65240216F5D8C00B8C09A /* random.cxx */,
+ BEB65235216F5D8C00B8C09A /* readwrite_helper.cxx */,
+ BEB6523B216F5D8C00B8C09A /* readwrite_helper.hxx */,
+ BEB6523C216F5D8C00B8C09A /* salinit.cxx */,
+ BEB65249216F5D8D00B8C09A /* saltime.hxx */,
+ BEB6522D216F5D8C00B8C09A /* secimpl.hxx */,
+ BEB65227216F5D8B00B8C09A /* security.cxx */,
+ BEB6522C216F5D8B00B8C09A /* signal.cxx */,
+ BEB65234216F5D8C00B8C09A /* socket.cxx */,
+ BEB65220216F5D8B00B8C09A /* sockimpl.hxx */,
+ BEB65229216F5D8B00B8C09A /* system.cxx */,
+ BEB65222216F5D8B00B8C09A /* system.hxx */,
+ BEB6522F216F5D8C00B8C09A /* system.mm */,
+ BEB65241216F5D8C00B8C09A /* tempfile.cxx */,
+ BEB6522B216F5D8B00B8C09A /* thread.cxx */,
+ BEB65246216F5D8D00B8C09A /* time.cxx */,
+ BEB65245216F5D8C00B8C09A /* uunxapi.cxx */,
+ BEB65242216F5D8C00B8C09A /* uunxapi.hxx */,
+ BEB65247216F5D8D00B8C09A /* uunxapi.mm */,
+ );
+ name = unx;
+ sourceTree = "<group>";
+ };
+ BEB6524B216FD09400B8C09A /* tools */ = {
+ isa = PBXGroup;
+ children = (
+ BEB6524C216FD0AA00B8C09A /* stream */,
+ );
+ name = tools;
+ sourceTree = "<group>";
+ };
+ BEB6524C216FD0AA00B8C09A /* stream */ = {
+ isa = PBXGroup;
+ children = (
+ BEB6524E216FD0CA00B8C09A /* stream.cxx */,
+ BEB65250216FD0CA00B8C09A /* strmunx.cxx */,
+ BEB6524F216FD0CA00B8C09A /* strmwnt.cxx */,
+ BEB6524D216FD0CA00B8C09A /* vcompat.cxx */,
+ );
+ name = stream;
+ sourceTree = "<group>";
+ };
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
More information about the Libreoffice-commits
mailing list