Iterate slowly towards out-of-the-box compilation with MSVC.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9897 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Angus Leeming 2005-05-02 21:19:18 +00:00
parent 9302177325
commit 935e0293dc
5 changed files with 15 additions and 382 deletions

View File

@ -1,3 +1,7 @@
2005-05-02 Angus Leeming <leeming@lyx.org>
* configure.ac: test for utime.h and sys/utime.h
2005-05-02 Angus Leeming <leeming@lyx.org>
* configure.ac: test for something that MSVC doesn't have (fcntl)

View File

@ -236,7 +236,7 @@ AC_LANG_POP(C)
# some standard header files
AC_HEADER_DIRENT
AC_HEADER_MAJOR
AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h strings.h locale.h)
AC_CHECK_HEADERS(sys/time.h sys/types.h sys/select.h strings.h locale.h utime.h sys/utime.h)
# some standard structures
AC_HEADER_STAT

View File

@ -15,26 +15,6 @@ diff -u -a -u -r1.41 DepTable.C
#endif
using lyx::support::ltrim;
Index: src/buffer.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/buffer.C,v
retrieving revision 1.615
diff -u -a -u -r1.615 buffer.C
--- src/buffer.C 18 Apr 2005 17:43:08 -0000 1.615
+++ src/buffer.C 18 Apr 2005 17:37:02 -0000
@@ -78,7 +78,11 @@
#include <boost/bind.hpp>
#include <boost/filesystem/operations.hpp>
-#include <utime.h>
+#ifdef _WIN32
+# include <windows.h>
+#else
+# include <utime.h>
+#endif
#include <iomanip>
#include <stack>
Index: src/cursor.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/cursor.C,v
@ -52,311 +32,6 @@ diff -u -a -u -r1.123 cursor.C
#endif
using std::min;
using std::swap;
Index: src/ispell.C
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/ispell.C,v
retrieving revision 1.26
diff -u -r1.26 ispell.C
--- src/ispell.C 2005/04/26 10:30:21 1.26
+++ src/ispell.C 2005/04/26 15:12:57
@@ -24,13 +24,19 @@
#include "support/forkedcall.h"
+#ifdef _WIN32
+#include "support/os_win32.h"
+#endif
+
// HP-UX 11.x doesn't have this header
#ifdef HAVE_SYS_SELECT_H
# include <sys/select.h>
#endif
#ifdef HAVE_SYS_TIME_H
+#ifndef _WIN32
# include <sys/time.h>
#endif
+#endif
using boost::shared_ptr;
@@ -90,6 +96,7 @@
}
// child process
+#ifndef _WIN32
dup2(pipein[0], STDIN_FILENO);
dup2(pipeout[1], STDOUT_FILENO);
dup2(pipeerr[1], STDERR_FILENO);
@@ -182,6 +189,7 @@
lyxerr << "LyX: Failed to start ispell!" << endl;
_exit(0);
+#endif
}
@@ -193,6 +201,7 @@
{
lyxerr[Debug::GUI] << "Created ispell" << endl;
+#ifndef _WIN32
// static due to the setvbuf. Ugly.
static char o_buf[BUFSIZ];
@@ -277,6 +286,7 @@
close(pipeerr[1]);
child_->kill();
child_.reset(0);
+#endif
}
@@ -297,18 +307,23 @@
fclose(out);
}
+#ifndef _WIN32
close(pipein[0]);
close(pipein[1]);
close(pipeout[0]);
close(pipeout[1]);
close(pipeerr[0]);
close(pipeerr[1]);
+#endif
delete [] str;
}
bool ISpell::select(bool & err_read)
{
+#ifdef _WIN32
+ return false;
+#else
fd_set infds;
struct timeval tv;
int retval = 0;
@@ -318,11 +333,15 @@
tv.tv_sec = 2;
tv.tv_usec = 0;
+#ifdef HAVE_SELECT
retval = ::select(SELECT_TYPE_ARG1 (max(pipeout[0], pipeerr[0]) + 1),
SELECT_TYPE_ARG234 (&infds),
0,
0,
SELECT_TYPE_ARG5 (&tv));
+#else
+ retval = -1;
+#endif
// error
if (retval <= 0)
@@ -337,6 +356,7 @@
fgets(buf, BUFSIZ, in);
err_read = false;
return false;
+#endif
}
Index: src/lyx_cb.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/lyx_cb.C,v
retrieving revision 1.247
diff -u -a -u -r1.247 lyx_cb.C
--- src/lyx_cb.C 31 Jan 2005 10:42:18 -0000 1.247
+++ src/lyx_cb.C 18 Apr 2005 17:37:02 -0000
@@ -44,6 +44,10 @@
#include "support/path.h"
#include "support/systemcall.h"
+#ifdef _WIN32
+# include "support/os_win32.h" // fork()
+#endif
+
#include <boost/shared_ptr.hpp>
#include <boost/filesystem/operations.hpp>
Index: src/lyxserver.C
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/lyxserver.C,v
retrieving revision 1.61
diff -u -r1.61 lyxserver.C
--- src/lyxserver.C 2005/04/26 10:30:21 1.61
+++ src/lyxserver.C 2005/04/26 15:25:51
@@ -56,6 +56,10 @@
#endif
#include <fcntl.h>
+#ifdef _WIN32
+# include "support/os_win32.h" // F_SETFL, O_NONBLOCK, fcntl
+#endif
+
#ifdef __EMX__
# include <cstdlib>
# include <io.h>
@@ -182,6 +186,8 @@
// Imported handles can be used both with OS/2 APIs and emx
// library functions.
int const fd = _imphandle(os2fd);
+#elif defined(_WIN32)
+ int fd = -1;
#else
if (::access(filename.c_str(), F_OK) == 0) {
lyxerr << "LyXComm: Pipe " << filename << " already exists.\n"
@@ -237,10 +243,12 @@
}
#endif
+#ifndef _WIN32
if (::close(fd) < 0) {
lyxerr << "LyXComm: Could not close pipe " << filename
<< '\n' << strerror(errno) << endl;
}
+#endif
// OS/2 pipes are deleted automatically
#ifndef __EMX__
@@ -276,7 +284,13 @@
errno = 0;
int status;
// the single = is intended here.
- while ((status = ::read(infd, charbuf, charbuf_size - 1))) {
+ while ((status =
+#ifndef _WIN32
+ ::read(infd, charbuf, charbuf_size - 1)
+#else
+ -1
+#endif
+ )) {
if (status > 0) {
charbuf[status] = '\0'; // turn it into a c string
@@ -333,6 +347,9 @@
if (pipename.empty()) return;
+#ifdef _WIN32
+ return;
+#else
if (!ready) {
lyxerr << "LyXComm: Pipes are closed. Could not send "
<< msg << endl;
@@ -343,6 +360,7 @@
closeConnection();
openConnection();
}
+#endif
#ifdef __EMX__
APIRET rc;
int errnum;
Index: src/lyxsocket.C
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/lyxsocket.C,v
retrieving revision 1.8
diff -u -r1.8 lyxsocket.C
--- src/lyxsocket.C 2005/04/26 10:30:21 1.8
+++ src/lyxsocket.C 2005/04/26 15:31:56
@@ -71,7 +71,9 @@
LyXServerSocket::~LyXServerSocket()
{
lyx_gui::unregister_socket_callback(fd_);
+#ifndef _WIN32
::close(fd_);
+#endif
lyx::support::unlink(address_);
lyxerr[Debug::LYXSERVER] << "lyx: Server socket quitting" << endl;
}
@@ -158,7 +160,11 @@
{
string const linen(line + '\n');
int const size = linen.size();
+#ifndef _WIN32
int const written = ::write(fd_, linen.c_str(), size);
+#else
+ int const written = -1;
+#endif
if (written < size) { // Allways mean end of connection.
if ((written == -1) && (errno == EPIPE)) {
// The program will also receive a SIGPIPE
@@ -197,7 +203,9 @@
LyXDataSocket::~LyXDataSocket()
{
+#ifndef _WIN32
::close(fd_);
+#endif
lyx_gui::unregister_socket_callback(fd_);
lyxerr[Debug::LYXSERVER] << "lyx: Data socket " << fd_ << " quitting."
@@ -219,7 +227,13 @@
int count;
// read and store characters in buffer
- while ((count = ::read(fd_, charbuf, charbuf_size - 1)) > 0) {
+ while ((count =
+#ifndef _WIN32
+ ::read(fd_, charbuf, charbuf_size - 1)
+#else
+ 0
+#endif
+ ) > 0) {
buffer_.append(charbuf, charbuf + count);
}
@@ -253,7 +267,11 @@
{
string const linen(line + '\n');
int const size = linen.size();
+#ifndef _WIN32
int const written = ::write(fd_, linen.c_str(), size);
+#else
+ int const written = -1;
+#endif
if (written < size) { // Allways mean end of connection.
if ((written == -1) && (errno == EPIPE)) {
// The program will also receive a SIGPIPE
Index: src/client/client.C
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/client/client.C,v
retrieving revision 1.8
diff -u -r1.8 client.C
--- src/client/client.C 2005/04/26 10:30:22 1.8
+++ src/client/client.C 2005/04/26 15:36:18
@@ -27,6 +27,7 @@
# include <unistd.h>
#endif
+#ifndef _WIN32
// select()
#ifdef HAVE_SYS_SELECT_H
# include <sys/select.h>
@@ -37,6 +38,7 @@
# include <sys/socket.h>
#endif
#include <sys/un.h>
+#endif
// fcntl()
#include <fcntl.h>
Index: src/frontends/LyXView.C
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/frontends/LyXView.C,v
retrieving revision 1.52
diff -u -r1.52 LyXView.C
--- src/frontends/LyXView.C 2005/04/26 10:30:22 1.52
+++ src/frontends/LyXView.C 2005/04/26 15:39:37
@@ -39,8 +39,10 @@
#include <boost/bind.hpp>
+#ifndef _WIN32
#ifdef HAVE_SYS_TIME_H
# include <sys/time.h>
+#endif
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
Index: src/frontends/qt2/QLyXKeySym.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/qt2/QLyXKeySym.C,v
@ -400,61 +75,6 @@ diff -u -r1.209 filetools.C
}
Index: src/support/socktools.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/support/socktools.C,v
retrieving revision 1.6
diff -u -a -u -r1.6 socktools.C
--- src/support/socktools.C 20 Jan 2005 15:38:14 -0000 1.6
+++ src/support/socktools.C 19 Apr 2005 08:09:40 -0000
@@ -15,8 +15,10 @@
#include "debug.h"
+#ifndef _WIN32
#include <sys/socket.h>
#include <sys/un.h>
+#endif
#include <fcntl.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
@@ -48,6 +50,7 @@
// special file 'name' will be created in the filesystem.
int listen(string const & name, int queue)
{
+#ifndef _WIN32
int fd; // File descriptor for the socket
sockaddr_un addr; // Structure that hold the socket address
@@ -105,14 +108,17 @@
lyx::support::unlink(name);
return -1;
}
-
return fd;
+#else
+ return -1;
+#endif
}
// Returns a file descriptor for a new connection from the socket
// descriptor 'sd' (or -1 in case of error)
int accept(int sd)
{
+#ifndef _WIN32
int fd;
// Returns the new file descriptor or -1 in case of error
@@ -132,6 +138,9 @@
return -1;
}
return fd;
+#else
+ return -1;
+#endif
}
} // namespace socktools
Index: src/support/tempname.C
===================================================================
RCS file: /cvs/lyx/lyx-devel/src/support/tempname.C,v

View File

@ -1,3 +1,8 @@
2005-05-02 Angus Leeming <leeming@lyx.org>
* buffer.C: protect the #include of utime.h with a preprocessor
guard.
2005-05-02 Angus Leeming <leeming@lyx.org>
* lyx_cb.C: artificially define fork() on Windows as a no-op failing

View File

@ -78,7 +78,11 @@
#include <boost/bind.hpp>
#include <boost/filesystem/operations.hpp>
#include <utime.h>
#if defined (HAVE_UTIME_H)
# include <utime.h>
#elif defined (HAVE_SYS_UTIME_H)
# include <sys/utime.h>
#endif
#include <iomanip>
#include <stack>