X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxserver.C;h=395ecb8b793ab91de17f878154453480fe279233;hb=f65b7ff4ab2fe8ad0d9196c231064240e3fde81f;hp=2221ddd941fbf8ea3f261e4b5db202a69ed84d79;hpb=85798535a19919e82cc94a177a8414c542a9c5bf;p=lyx.git diff --git a/src/lyxserver.C b/src/lyxserver.C index 2221ddd941..395ecb8b79 100644 --- a/src/lyxserver.C +++ b/src/lyxserver.C @@ -55,6 +55,7 @@ #include "debug.h" #include "LyXAction.h" #include "support/lstrings.h" +#include "support/lyxlib.h" #ifdef __EMX__ #include @@ -71,8 +72,8 @@ using std::endl; // provide an empty mkfifo() if we do not have one. This disables the // lyxserver. #ifndef HAVE_MKFIFO -int mkfifo( char *__path, mode_t __mode ) { - return 0; +int mkfifo(char const * __path, mode_t __mode) { + return 0; } #endif @@ -115,21 +116,21 @@ void LyXComm::openConnection() { NP_NOWAIT|0x01, 0600, 0600, 0); if (rc == ERROR_PIPE_BUSY) { #else - if (access(tmp.c_str(), F_OK) == 0) { + if (::access(tmp.c_str(), F_OK) == 0) { #endif lyxerr << "LyXComm: Pipe " << tmp << " already exists.\n" << "If no other LyX program is active, please delete" " the pipe by hand and try again." << endl; - pipename.clear(); + pipename.erase(); return; } #ifndef __EMX__ - if (mkfifo(tmp.c_str(), 0600) < 0) { + if (::mkfifo(tmp.c_str(), 0600) < 0) { lyxerr << "LyXComm: Could not create pipe " << tmp << '\n' << strerror(errno) << endl; return; }; - infd = open(tmp.c_str(), O_RDONLY|O_NONBLOCK); + infd = ::open(tmp.c_str(), O_RDONLY|O_NONBLOCK); #else if (rc != NO_ERROR) { errnum = TranslateOS2Error(rc); @@ -161,7 +162,7 @@ void LyXComm::openConnection() { tmp = pipename + ".out"; #ifndef __EMX__ - if (access(tmp.c_str(), F_OK) == 0) { + if (::access(tmp.c_str(), F_OK) == 0) { #else rc = DosCreateNPipe(tmp.c_str(), &fd, NP_ACCESS_DUPLEX, NP_NOWAIT|0x01, 0600, 0600, 0); @@ -171,21 +172,21 @@ void LyXComm::openConnection() { lyxerr << "LyXComm: Pipe " << tmp << " already exists.\n" << "If no other LyX program is active, please delete" " the pipe by hand and try again." << endl; - pipename.clear(); + pipename.erase(); return; } #ifndef __EMX__ - if (mkfifo(tmp.c_str(), 0600) < 0) { + if (::mkfifo(tmp.c_str(), 0600) < 0) { lyxerr << "LyXComm: Could not create pipe " << tmp << '\n' << strerror(errno) << endl; return; }; - if (access(tmp.c_str(), F_OK) != 0) { + if (::access(tmp.c_str(), F_OK) != 0) { lyxerr << "LyXComm: Pipe " << tmp << " does not exist" << endl; return; } - outfd = open(tmp.c_str(), O_RDWR); + outfd = ::open(tmp.c_str(), O_RDWR); #else if (rc != NO_ERROR) { errnum = TranslateOS2Error(rc); @@ -239,7 +240,7 @@ void LyXComm::closeConnection() { return; } - if(infd > -1) { + if (infd > -1) { fl_remove_io_callback(infd, FL_READ, C_LyXComm_callback); string tmp = pipename + ".in"; @@ -257,13 +258,13 @@ void LyXComm::closeConnection() { << '\n' << strerror(errno) << endl; } #ifndef __EMX__ // OS/2 named pipes will be automatically removed. - if (unlink(tmp.c_str()) < 0){ + if (lyx::unlink(tmp) < 0){ lyxerr << "LyXComm: Could not remove pipe " << tmp << '\n' << strerror(errno) << endl; }; #endif } - if(outfd > -1) { + if (outfd > -1) { string tmp = pipename + ".out"; #ifdef __EMX__ rc = DosDisConnectNPipe(outfd); @@ -274,12 +275,12 @@ void LyXComm::closeConnection() { return; } #endif - if (close(outfd) < 0) { + if (::close(outfd) < 0) { lyxerr << "LyXComm: Could not close pipe " << tmp << '\n' << strerror(errno) << endl; } #ifndef __EMX__ - if (unlink(tmp.c_str()) < 0){ + if (lyx::unlink(tmp) < 0){ lyxerr << "LyXComm: Could not remove pipe " << tmp << '\n' << strerror(errno) << endl; }; @@ -308,7 +309,7 @@ void LyXComm::callback(int fd, void *v) // the single = is intended here. while((status = read(fd, charbuf, CMDBUFLEN-1))) {// break and return in loop - if(status > 0) // got something + if (status > 0) // got something { charbuf[status]= '\0'; // turn it into a c string lsbuf += strip(charbuf, '\r'); @@ -324,26 +325,26 @@ void LyXComm::callback(int fd, void *v) << "LyXComm: status:" << status << ", lsbuf:" << lsbuf << ", cmd:" << cmd << endl; - if(!cmd.empty()) + if (!cmd.empty()) c->clientcb(c->client, cmd); //\n or not \n? } } - if(errno == EAGAIN) + if (errno == EAGAIN) { // EAGAIN is not really an error , it means we're // only reading too fast for the writing process on // the other end of the pipe. errno = 0; return; // up to libforms select-loop (*crunch*) } - if(errno != 0 ) + if (errno != 0 ) { lyxerr << "LyXComm: " << strerror(errno) << endl; - if(!lsbuf.empty()) + if (!lsbuf.empty()) { lyxerr << "LyxComm: truncated command: " << lsbuf << endl; - lsbuf.clear(); + lsbuf.erase(); } break; // reset connection } @@ -375,7 +376,7 @@ void LyXComm::send(string const & msg) { if (!ready) { lyxerr << "LyXComm: Pipes are closed. Could not send " << msg << endl; - } else if (write(outfd, msg.c_str(), msg.length()) < 0) { + } else if (::write(outfd, msg.c_str(), msg.length()) < 0) { lyxerr << "LyXComm: Error sending message: " << msg << '\n' << strerror(errno) << "\nLyXComm: Resetting connection" << endl; @@ -421,7 +422,7 @@ void LyXServer::callback(LyXServer * serv, string const & msg) lyxerr[Debug::LYXSERVER] << "LyXServer: Received: '" << msg << '\'' << endl; - char const *p = msg.c_str(); + char const * p = msg.c_str(); // --- parse the string -------------------------------------------- // @@ -430,9 +431,10 @@ void LyXServer::callback(LyXServer * serv, string const & msg) bool server_only = false; while(*p) { // --- 1. check 'header' --- - if (strncmp(p, "LYXSRV:", 7) == 0) { + + if (compare(p, "LYXSRV:", 7) == 0) { server_only = true; - } else if(0!= strncmp(p, "LYXCMD:", 7)) { + } else if (0 != compare(p, "LYXCMD:", 7)) { lyxerr << "LyXServer: Unknown request" << endl; return; } @@ -442,8 +444,8 @@ void LyXServer::callback(LyXServer * serv, string const & msg) string client; while(*p && *p != ':') client += char(*p++); - if(*p == ':') ++p; - if(!*p) return; + if (*p == ':') ++p; + if (!*p) return; // --- 3. get function name --- string cmd; @@ -452,10 +454,10 @@ void LyXServer::callback(LyXServer * serv, string const & msg) // --- 4. parse the argument --- string arg; - if(!server_only && *p == ':' && *(++p)) { + if (!server_only && *p == ':' && *(++p)) { while(*p && *p != '\n') arg += char(*p++); - if(*p) ++p; + if (*p) ++p; } lyxerr[Debug::LYXSERVER] @@ -471,7 +473,7 @@ void LyXServer::callback(LyXServer * serv, string const & msg) // we are listening. if (cmd == "hello") { // One more client - if(serv->numclients == MAX_CLIENTS){ //paranoid check + if (serv->numclients == MAX_CLIENTS){ //paranoid check lyxerr[Debug::LYXSERVER] << "LyXServer: too many clients..." << endl; @@ -497,7 +499,7 @@ void LyXServer::callback(LyXServer * serv, string const & msg) } if (i < serv->numclients) { serv->numclients--; - serv->clients[i].clear(); + serv->clients[i].erase(); lyxerr[Debug::LYXSERVER] << "LyXServer: Client " << client << " said goodbye" @@ -522,12 +524,12 @@ void LyXServer::callback(LyXServer * serv, string const & msg) // connect to the lyxfunc in the single LyXView we // support currently. (Lgb) - int action = lyxaction.LookupFunc(cmd.c_str()); + int action = lyxaction.LookupFunc(cmd); //int action = -1; string rval, buf; if (action>= 0) { - rval = serv->func->Dispatch(cmd); + rval = serv->func->Dispatch(action, arg); } else { rval = "Unknown command"; }