Dillo on Cygwin/X

Stephan Götter <[email protected]>
Newsgroups gmane.comp.web.dillo.devel
Message-ID <CAEvr0C6mUzF4C0WdORMfRMZ_aAWr+Jtf+giD21s26QNavkpkCw@mail.gmail.com>
Hello,

I just gave Dillo another try on Cygwin/X11 and got it working at
least partially with cygwin 1.7.9.

You need to compile FLTK using Cygwin libraries and X11:
./configure --enable-cygwin --enable-x11 && make install

Because the dpis are installed with ".exe" extension (eg
hello.dpi.exe) they aren't found by dpid. The extension is added by
automake: http://www.gnu.org/s/hello/manual/automake/EXEEXT.html
The Makefiles look like this: bookmarks_PROGRAMS = bookmarks.dpi$(EXEEXT)

I don't know how to break automake of doing this for the dpis only, so
I modified dpid to use .exe-extension on cygwin (see attached patch).
After starting the XServer (/usr/bin/XWin -multiwindow) you can run
Dillo. Plain browsing with http using proxy and the bookmark & cookie
dpis does work. The other dpi currently fail.

- hello-dpi shows the dialog and without pressing any button the
resultpage (Answer received: Window was closed). After pressing Yes
dpid logs "ERROR: [a_Capi_dpi_send_data] No open connection found"
- vsource just crashes
- file, ftp and https can't connect:
Dpi_get_server_port: can't read server port from dpid.
** ERROR **: dpi.c: can't start dpi daemon

Looks like the socket implementation of cygwin still has some quirks
which can maybe tracked down.

Is there any interest to support this target on a source code basis?

Thanks and Greets,
Stephan

_______________________________________________
Dillo-dev mailing list
[email protected]
http://lists.auriga.wearlab.de/cgi-bin/mailman/listinfo/dillo-dev
dillo-cygwin-patch.diff (application/octet-stream, 1 KB)
diff -ru dillo-3.0.1.orig/dpid/dpid.c dillo-3.0.1/dpid/dpid.c
--- dillo-3.0.1.orig/dpid/dpid.c        2011-09-04 23:09:03.000000000 +0200
+++ dillo-3.0.1/dpid/dpid.c     2011-10-07 17:05:11.043456400 +0200
@@ -148,7 +148,7 @@
 {
    char *dot = strrchr(file_name, '.');

-   if (dot && !strcmp(dot, ".dpi"))
+   if (dot && !strcmp(dot, DPI_FILE_EXTENSION))
       return DPI_FILE;             /* Any filename ending in ".dpi" */
    else {
       MSG_ERR("get_file_type: Unknown file type for %s\n", file_name);
diff -ru dillo-3.0.1.orig/dpid/dpid_common.h dillo-3.0.1/dpid/dpid_common.h
--- dillo-3.0.1.orig/dpid/dpid_common.h 2011-09-04 23:09:03.000000000 +0200
+++ dillo-3.0.1/dpid/dpid_common.h      2011-10-07 17:05:22.228593600 +0200
@@ -36,6 +36,12 @@
 #define CKD_WRITE(fd, msg) ckd_write(fd, msg, __FILE__, __LINE__)
 #define CKD_CLOSE(fd)      ckd_close(fd, __FILE__, __LINE__)

+/*! Extension for dpis */
+#ifdef __CYGWIN__
+ #define DPI_FILE_EXTENSION ".exe"
+#else
+ #define DPI_FILE_EXTENSION ".dpi"
+#endif

 /*! Error codes for dpid */
 enum {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.