On Monday 22 May 2006 10:16, Loïc Minier wrote:
> On Fri, Apr 14, 2006, Wesley J. Landaker wrote:
> [...]
>
> >                     The libmms headers have a lot of functions that use
> > parameters named "this"
>
> [...]
>
> > (Also, it's quite common to have an ifdef on __cplusplus and do an
> > automatic extern "C" block, but that's just a niceity, since if it's
> > missing it can be handled on the C++ client code side without modifying
> > the libmms headers.)
>
>  Would you be so kind to offer a patch that you'd confirm renders libmms
>  usable from C++ code?

Here is a patch. =)

-- 
Wesley J. Landaker <[EMAIL PROTECTED]> <xmpp:[EMAIL PROTECTED]>
OpenPGP FP: 4135 2A3B 4726 ACC5 9094  0097 F0A9 8A4C 4CD6 E3D2
diff -ru libmms-0.2.orig/src/mms.h libmms-0.2/src/mms.h
--- libmms-0.2.orig/src/mms.h	2005-12-12 02:24:19.000000000 -0700
+++ libmms-0.2/src/mms.h	2006-06-04 13:56:27.304412147 -0600
@@ -41,17 +41,25 @@
 #include "bswap.h"
 #include "mmsio.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
 typedef struct mms_s mms_t;
 
 mms_t*   mms_connect (mms_io_t *io, void *data, const char *url, int bandwidth);
 
-int      mms_read (mms_io_t *io, mms_t *this, char *data, int len);
-uint32_t mms_get_length (mms_t *this);
-void     mms_close (mms_t *this);
+int      mms_read (mms_io_t *io, mms_t *instance, char *data, int len);
+uint32_t mms_get_length (mms_t *instance);
+void     mms_close (mms_t *instance);
+
+int      mms_peek_header (mms_t *instance, char *data, int maxsize);
 
-int      mms_peek_header (mms_t *this, char *data, int maxsize);
+off_t    mms_get_current_pos (mms_t *instance);
 
-off_t    mms_get_current_pos (mms_t *this);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
 
 #endif
 
diff -ru libmms-0.2.orig/src/mmsh.h libmms-0.2/src/mmsh.h
--- libmms-0.2.orig/src/mmsh.h	2005-12-12 02:24:20.000000000 -0700
+++ libmms-0.2/src/mmsh.h	2006-06-04 13:56:52.873248780 -0600
@@ -28,16 +28,24 @@
 #include <inttypes.h>
 #include "mmsio.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
 typedef struct mmsh_s mmsh_t;
 
 char*    mmsh_connect_common(int *s ,int *port, char *url, char **host, char **path, char **file);
 mmsh_t*   mmsh_connect (mms_io_t *io, void *data, const char *url_, int bandwidth);
 
-int      mmsh_read (mms_io_t *io, mmsh_t *this, char *data, int len);
-uint32_t mmsh_get_length (mmsh_t *this);
-off_t    mmsh_get_current_pos (mmsh_t *this);
-void     mmsh_close (mmsh_t *this);
+int      mmsh_read (mms_io_t *io, mmsh_t *instance, char *data, int len);
+uint32_t mmsh_get_length (mmsh_t *instance);
+off_t    mmsh_get_current_pos (mmsh_t *instance);
+void     mmsh_close (mmsh_t *instance);
+
+int      mmsh_peek_header (mmsh_t *instance, char *data, int maxsize);
 
-int      mmsh_peek_header (mmsh_t *this, char *data, int maxsize);
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
 
 #endif
diff -ru libmms-0.2.orig/src/mmsio.h libmms-0.2/src/mmsio.h
--- libmms-0.2.orig/src/mmsio.h	2005-11-30 06:21:24.000000000 -0700
+++ libmms-0.2/src/mmsio.h	2006-06-04 13:54:47.985699998 -0600
@@ -1,6 +1,10 @@
 #ifndef __MMS_IO_H__
 #define __MMS_IO_H__
 
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
 typedef off_t (*mms_io_write_func)(void *data, int socket, char *buf, off_t num);
 typedef off_t (*mms_io_read_func)(void *data, int socket, char *buf, off_t num);
 
@@ -69,4 +73,8 @@
 void mms_set_default_io_impl(const mms_io_t *io);
 const mms_io_t* mms_get_default_io_impl();
 
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
 #endif /* __MMS_IO_H__ */

Attachment: pgpabnnwdsbRd.pgp
Description: PGP signature

Reply via email to