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 <t...@collabora.com>
AuthorDate: Fri Oct 12 17:48:45 2018 +0300
Commit:     Tor Lillqvist <t...@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 <t...@collabora.com>
AuthorDate: Fri Oct 12 15:09:07 2018 +0300
Commit:     Tor Lillqvist <t...@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 */
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to