]> git.lyx.org Git - lyx.git/blobdiff - src/lyxsocket.C
Add margin to paragraph dialog.
[lyx.git] / src / lyxsocket.C
index 1a260706913b0d47bf869fb30710b343751df150..c40feba2597b1e5b1cb5ab1f33baf45f91467c2d 100644 (file)
@@ -24,6 +24,7 @@
 #include "frontends/Application.h"
 
 #include "support/environment.h"
+#include "support/filename.h"
 #include "support/lyxlib.h"
 #include "support/socktools.h"
 
@@ -31,9 +32,6 @@
 
 #include <cerrno>
 
-
-namespace lyx {
-
 #if defined (_WIN32)
 # include <io.h>
 #endif
@@ -45,10 +43,12 @@ using std::endl;
 using std::string;
 
 
+namespace lyx {
+
 // Address is the unix address for the socket.
 // MAX_CLIENTS is the maximum number of clients
 // that can connect at the same time.
-LyXServerSocket::LyXServerSocket(LyXFunc * f, string const & addr)
+LyXServerSocket::LyXServerSocket(LyXFunc * f, support::FileName const & addr)
        : func(f),
          fd_(support::socktools::listen(addr, 3)),
          address_(addr)
@@ -62,15 +62,15 @@ LyXServerSocket::LyXServerSocket(LyXFunc * f, string const & addr)
        // Needed by xdvi
        support::setEnv("XEDITOR", "lyxclient -g %f %l");
        // Needed by lyxclient
-       support::setEnv("LYXSOCKET", address_);
+       support::setEnv("LYXSOCKET", address_.toFilesystemEncoding());
 
-       theApp->registerSocketCallback(
+       theApp()->registerSocketCallback(
                fd_,
                boost::bind(&LyXServerSocket::serverCallback, this)
                );
 
-       lyxerr[Debug::LYXSERVER] << "lyx: New server socket "
-                                << fd_ << ' ' << address_ << endl;
+       LYXERR(Debug::LYXSERVER) << "lyx: New server socket "
+                                << fd_ << ' ' << address_.absFilename() << endl;
 }
 
 
@@ -78,19 +78,20 @@ LyXServerSocket::LyXServerSocket(LyXFunc * f, string const & addr)
 LyXServerSocket::~LyXServerSocket()
 {
        if (fd_ != -1) {
-               theApp->unregisterSocketCallback(fd_);
-               if (close(fd_) != 0)
+               BOOST_ASSERT (theApp());
+               theApp()->unregisterSocketCallback(fd_);
+               if (::close(fd_) != 0)
                        lyxerr << "lyx: Server socket " << fd_
                               << " IO error on closing: " << strerror(errno);
        }
        support::unlink(address_);
-       lyxerr[Debug::LYXSERVER] << "lyx: Server socket quitting" << endl;
+       LYXERR(Debug::LYXSERVER) << "lyx: Server socket quitting" << endl;
 }
 
 
-string const LyXServerSocket::address() const
+string const LyXServerSocket::address() const
 {
-       return address_;
+       return address_.absFilename();
 }
 
 
@@ -101,7 +102,7 @@ void LyXServerSocket::serverCallback()
        int const client_fd = support::socktools::accept(fd_);
 
        if (fd_ == -1) {
-               lyxerr[Debug::LYXSERVER] << "lyx: Failed to accept new client"
+               LYXERR(Debug::LYXSERVER) << "lyx: Failed to accept new client"
                                         << endl;
                return;
        }
@@ -114,7 +115,7 @@ void LyXServerSocket::serverCallback()
        // Register the new client.
        clients[client_fd] =
                shared_ptr<LyXDataSocket>(new LyXDataSocket(client_fd));
-       theApp->registerSocketCallback(
+       theApp()->registerSocketCallback(
                client_fd,
                boost::bind(&LyXServerSocket::dataCallback,
                            this, client_fd)
@@ -169,7 +170,7 @@ void LyXServerSocket::writeln(string const & line)
 {
        string const linen(line + '\n');
        int const size = linen.size();
-       int const written = write(fd_, linen.c_str(), size);
+       int const written = ::write(fd_, linen.c_str(), size);
        if (written < size) { // Always mean end of connection.
                if ((written == -1) && (errno == EPIPE)) {
                        // The program will also receive a SIGPIPE
@@ -190,7 +191,7 @@ void LyXServerSocket::writeln(string const & line)
 // void LyXServerSocket::dump() const
 // {
 //     lyxerr << "LyXServerSocket debug dump.\n"
-//          << "fd = " << fd_ << ", address = " << address_ << ".\n"
+//          << "fd = " << fd_ << ", address = " << address_.absFilename() << ".\n"
 //          << "Clients: " << clients.size() << ".\n";
 //     std::map<int, shared_ptr<LyXDataSocket> >::const_iterator client = clients.begin();
 //     std::map<int, shared_ptr<LyXDataSocket> >::const_iterator end = clients.end();
@@ -202,18 +203,18 @@ void LyXServerSocket::writeln(string const & line)
 LyXDataSocket::LyXDataSocket(int fd)
        : fd_(fd), connected_(true)
 {
-       lyxerr[Debug::LYXSERVER] << "lyx: New data socket " << fd_ << endl;
+       LYXERR(Debug::LYXSERVER) << "lyx: New data socket " << fd_ << endl;
 }
 
 
 LyXDataSocket::~LyXDataSocket()
 {
-       if (close(fd_) != 0)
+       if (::close(fd_) != 0)
                lyxerr << "lyx: Data socket " << fd_
                       << " IO error on closing: " << strerror(errno);
 
-       theApp->unregisterSocketCallback(fd_);
-       lyxerr[Debug::LYXSERVER] << "lyx: Data socket " << fd_ << " quitting."
+       theApp()->unregisterSocketCallback(fd_);
+       LYXERR(Debug::LYXSERVER) << "lyx: Data socket " << fd_ << " quitting."
                                 << endl;
 }
 
@@ -232,14 +233,14 @@ bool LyXDataSocket::readln(string & line)
        int count;
 
        // read and store characters in buffer
-       while ((count = read(fd_, charbuf, charbuf_size - 1)) > 0) {
+       while ((count = ::read(fd_, charbuf, charbuf_size - 1)) > 0) {
                buffer_.append(charbuf, charbuf + count);
        }
 
        // Error conditions. The buffer must still be
        // processed for lines read
        if (count == 0) { // EOF -- connection closed
-               lyxerr[Debug::LYXSERVER] << "lyx: Data socket " << fd_
+               LYXERR(Debug::LYXSERVER) << "lyx: Data socket " << fd_
                                         << ": connection closed." << endl;
                connected_ = false;
        } else if ((count == -1) && (errno != EAGAIN)) { // IO error
@@ -251,7 +252,7 @@ bool LyXDataSocket::readln(string & line)
        // Cut a line from buffer
        string::size_type pos = buffer_.find('\n');
        if (pos == string::npos) {
-               lyxerr[Debug::LYXSERVER] << "lyx: Data socket " << fd_
+               LYXERR(Debug::LYXSERVER) << "lyx: Data socket " << fd_
                                         << ": line not completed." << endl;
                return false; // No complete line stored
        }
@@ -266,7 +267,7 @@ void LyXDataSocket::writeln(string const & line)
 {
        string const linen(line + '\n');
        int const size = linen.size();
-       int const written = write(fd_, linen.c_str(), size);
+       int const written = ::write(fd_, linen.c_str(), size);
        if (written < size) { // Always mean end of connection.
                if ((written == -1) && (errno == EPIPE)) {
                        // The program will also receive a SIGPIPE