Make all public libsolv headers C++ safe
authorIngo Weinhold <ingo_weinhold@gmx.de>
Sat, 30 Mar 2013 12:02:13 +0000 (12:02 +0000)
committerIngo Weinhold <ingo_weinhold@gmx.de>
Tue, 2 Apr 2013 12:39:22 +0000 (12:39 +0000)
A few headers already included 'export "C"' blocks, also wrapping
other #include's. This patch cleanly wraps the contents of all public
headers instead.

23 files changed:
src/bitmap.h
src/chksum.h
src/dataiterator.h
src/dirpool.h
src/hash.h
src/policy.h
src/pool.h
src/poolarch.h
src/poolid.h
src/poolvendor.h
src/queue.h
src/repo.h
src/repo_solv.h
src/repo_write.h
src/repodata.h
src/repopage.h
src/selection.h
src/solvable.h
src/solver.h
src/solverdebug.h
src/strpool.h
src/transaction.h
src/util.h

index c6993ca..5784e6c 100644 (file)
 
 #include <string.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct _Map {
   unsigned char *map;
   int size;
@@ -59,4 +63,8 @@ static inline int map_tst(Map *m, int n)
   return MAPTST(m, n);
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_BITMAP_H */
index 0239844..7272c78 100644 (file)
 
 #include "pool.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 void *solv_chksum_create(Id type);
 void *solv_chksum_create_from_bin(Id type, const unsigned char *buf);
 void solv_chksum_add(void *handle, const void *data, int len);
@@ -21,4 +25,8 @@ const char *solv_chksum_type2str(Id type);
 Id solv_chksum_str2type(const char *str);
 int solv_chksum_len(Id type);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_CHKSUM_H */
index a77d902..df10349 100644 (file)
 #include "pooltypes.h"
 #include "pool.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct _Repo;
 
 typedef struct _KeyValue {
@@ -182,4 +186,8 @@ void dataiterator_strdup(Dataiterator *di);
 #define DI_SEEK_PARENT  2
 #define DI_SEEK_REWIND  3
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_DATAITERATOR_H */
index 29ed109..fe05cc6 100644 (file)
 #include "pooltypes.h"
 #include "util.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct _Dirpool {
   Id *dirs;
   int ndirs;
@@ -74,4 +78,8 @@ dirpool_compid(Dirpool *dp, Id did)
   return dp->dirs[did];
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_DIRPOOL_H */
index a606ca0..b3cfbde 100644 (file)
 
 #include "pooltypes.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* value of a hash */
 typedef unsigned int Hashval;
 /* mask for hash, used as modulo operator to ensure 'wrapping' of hash
@@ -85,4 +89,8 @@ mkmask(unsigned int num)
   return num * 2 - 1;
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_HASH_H */
index 8f81ca3..01cfcc1 100644 (file)
 
 #include "solver.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define POLICY_MODE_CHOOSE     0
 #define POLICY_MODE_RECOMMEND  1
 #define POLICY_MODE_SUGGEST    2
@@ -30,3 +34,6 @@ extern void policy_findupdatepackages(Solver *solv, Solvable *s, Queue *qs, int
 
 extern void policy_create_obsolete_index(Solver *solv);
 
+#ifdef __cplusplus
+}
+#endif
index 8f100b2..77808bd 100644 (file)
 #ifndef LIBSOLV_POOL_H
 #define LIBSOLV_POOL_H
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 #include <stdio.h>
 
 #include "solvversion.h"
@@ -30,6 +26,10 @@ extern "C" {
 /* well known ids */
 #include "knownid.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* well known solvable */
 #define SYSTEMSOLVABLE         1
 
index 9f5829d..3fe5f02 100644 (file)
 
 #include "pool.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 extern void pool_setarch(Pool *, const char *);
 extern void pool_setarchpolicy(Pool *, const char *);
 extern unsigned char pool_arch2color_slow(Pool *pool, Id arch);
@@ -36,4 +40,8 @@ static inline int pool_colormatch(Pool *pool, Solvable *s1, Solvable *s2)
   return 0;
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_POOLARCH_H */
index f5ea82e..a232290 100644 (file)
 #include "pooltypes.h"
 #include "hash.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /*-----------------------------------------------
  * Ids with relation
  */
@@ -38,4 +42,8 @@ extern void pool_shrink_strings(Pool *pool);
 extern void pool_shrink_rels(Pool *pool);
 extern void pool_freeidhashes(Pool *pool);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_POOLID_H */
index 2e14450..873e090 100644 (file)
 
 #include "pool.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 Id pool_vendor2mask(Pool *pool, Id vendor);
 void pool_setvendorclasses(Pool *pool, const char **vendorclasses);
 void pool_addvendorclass(Pool *pool, const char **vendorclass);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_POOLVENDOR_H */
index d5380c3..a80cd06 100644 (file)
 
 #include "pooltypes.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct _Queue {
   Id *elements;                /* pointer to elements */
   int count;           /* current number of elements in queue */
@@ -116,4 +120,8 @@ extern void queue_delete2(Queue *q, int pos);
 extern void queue_deleten(Queue *q, int pos, int n);
 extern void queue_prealloc(Queue *q, int n);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_QUEUE_H */
index a7a56ae..130afb0 100644 (file)
@@ -19,7 +19,9 @@
 #include "dataiterator.h"
 #include "hash.h"
 
-
+#ifdef __cplusplus
+extern "C" {
+#endif
 
 typedef struct _Repo {
   const char *name;            /* name pointer */
@@ -176,4 +178,8 @@ void repo_disable_paging(Repo *repo);
        for (rdid = 1; rdid < repo->nrepodata && (data = repo_id2repodata(repo, rdid)); rdid++)
 #endif
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_REPO_H */
index 8d5c32b..0c66394 100644 (file)
 #ifndef LIBSOLV_REPO_SOLVE_H
 #define LIBSOLV_REPO_SOLVE_H
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 #include <stdio.h>
 
 #include "pool.h"
 #include "repo.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 extern int repo_add_solv(Repo *repo, FILE *fp, int flags);
 
 #define SOLV_ADD_NO_STUBS      (1 << 8)
index 46e1d4a..763147e 100644 (file)
 #include "repo.h"
 #include "queue.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 extern int repo_write(Repo *repo, FILE *fp);
 extern int repo_write_filtered(Repo *repo, FILE *fp, int (*keyfilter)(Repo *repo, Repokey *key, void *kfdata), void *kfdata, Queue *keyq);
 
@@ -26,4 +30,8 @@ extern int repodata_write_filtered(Repodata *data , FILE *fp, int (*keyfilter)(R
 
 extern int repo_write_stdkeyfilter(Repo *repo, Repokey *key, void *kfdata);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
index 54fb3df..2b45886 100644 (file)
 #include "repopage.h"
 #endif
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define SIZEOF_MD5     16
 #define SIZEOF_SHA1    20
 #define SIZEOF_SHA256  32
@@ -296,4 +300,8 @@ Id repodata_lookup_id_uninternalized(Repodata *data, Id solvid, Id keyname, Id v
 /* stats */
 unsigned int repodata_memused(Repodata *data);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_REPODATA_H */
index 633456f..739345e 100644 (file)
@@ -41,6 +41,10 @@ typedef struct _Repopagestore {
   unsigned int rr_counter;
 } Repopagestore;
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 void repopagestore_init(Repopagestore *store);
 void repopagestore_free(Repopagestore *store);
 
@@ -55,4 +59,8 @@ int repopagestore_read_or_setup_pages(Repopagestore *store, FILE *fp, unsigned i
 
 void repopagestore_disable_paging(Repopagestore *store);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_REPOPAGE_H */
index f371667..0ff1d76 100644 (file)
 
 #include "pool.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define SELECTION_NAME                 (1 << 0)
 #define SELECTION_PROVIDES             (1 << 1)
 #define SELECTION_FILELIST             (1 << 2)
@@ -34,4 +38,8 @@ extern void selection_filter(Pool *pool, Queue *sel1, Queue *sel2);
 extern void selection_add(Pool *pool, Queue *sel1, Queue *sel2);
 extern void selection_solvables(Pool *pool, Queue *selection, Queue *pkgs);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
index a6490b8..ad06533 100644 (file)
 #include "pooltypes.h"
 #include "queue.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct _Repo;
 
 typedef struct _Solvable {
@@ -75,4 +79,8 @@ void solvable_unset(Solvable *s, Id keyname);
 int solvable_identical(Solvable *s1, Solvable *s2);
 Id solvable_selfprovidedep(Solvable *s); 
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_SOLVABLE_H */
index 89bea66..ae71f58 100644 (file)
 #ifndef LIBSOLV_SOLVER_H
 #define LIBSOLV_SOLVER_H
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 #include "pooltypes.h"
 #include "pool.h"
 #include "repo.h"
@@ -26,6 +22,9 @@ extern "C" {
 #include "rules.h"
 #include "problems.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
 
 struct _Solver {
   Pool *pool;                          /* back pointer to pool */
index 2b67b89..ea31e3c 100644 (file)
 #include "pool.h"
 #include "solver.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 extern Id *solver_create_decisions_obsoletesmap(Solver *solv);
 extern void solver_printruleelement(Solver *solv, int type, Rule *r, Id v);
 extern void solver_printrule(Solver *solv, int type, Rule *r);
@@ -41,6 +45,9 @@ extern const char *solver_problemruleinfo2str(Solver *solv, SolverRuleinfo type,
 extern const char *solver_solutionelement2str(Solver *solv, Id p, Id rp);
 extern const char *policy_illegal2str(Solver *solv, int illegal, Solvable *s, Solvable *rs);
 
+#ifdef __cplusplus
+}
+#endif
 
 #endif /* LIBSOLV_SOLVERDEBUG_H */
 
index 1a385c9..6745be8 100644 (file)
 #include "pooltypes.h"
 #include "hash.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define STRID_NULL  0
 #define STRID_EMPTY 1
 
@@ -42,4 +46,8 @@ stringpool_id2str(Stringpool *ss, Id id)
   return ss->stringspace + ss->strings[id];
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif
index 5e8054c..4f9acf3 100644 (file)
 #ifndef LIBSOLV_TRANSACTION_H
 #define LIBSOLV_TRANSACTION_H
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 #include "pooltypes.h"
 #include "queue.h"
 #include "bitmap.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct _Pool;
 struct _DUChanges;
 struct _TransactionOrderdata;
index fcb92c2..82ad777 100644 (file)
 #include <stddef.h>
 #include <string.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /**
  * malloc
  * exits with error message on error
@@ -82,4 +86,9 @@ static inline void *solv_calloc_block(size_t len, size_t size, size_t block)
   memset(buf, 0, ((len + block) & ~block) * size);
   return buf;
 }
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* LIBSOLV_UTIL_H */