From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Taahir Ahmed Newsgroups: gmane.lisp.guile.devel Subject: [PATCH 2/3] Add C++ extern "C" guards to internal headers. Date: Tue, 14 Jul 2015 13:07:28 -0500 Message-ID: <1436897249-18167-3-git-send-email-ahmed.taahir@gmail.com> References: <1436897249-18167-1-git-send-email-ahmed.taahir@gmail.com> NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1436897316 18218 80.91.229.3 (14 Jul 2015 18:08:36 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 14 Jul 2015 18:08:36 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Jul 14 20:08:31 2015 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1ZF4d1-0000H9-8Z for guile-devel@m.gmane.org; Tue, 14 Jul 2015 20:08:27 +0200 Original-Received: from localhost ([::1]:60742 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZF4d0-0000ja-Hz for guile-devel@m.gmane.org; Tue, 14 Jul 2015 14:08:26 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57180) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZF4co-0000V0-8W for guile-devel@gnu.org; Tue, 14 Jul 2015 14:08:22 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZF4ch-00050g-Ev for guile-devel@gnu.org; Tue, 14 Jul 2015 14:08:14 -0400 Original-Received: from mail-oi0-x22f.google.com ([2607:f8b0:4003:c06::22f]:33895) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZF4ch-0004zv-44 for guile-devel@gnu.org; Tue, 14 Jul 2015 14:08:07 -0400 Original-Received: by oiab3 with SMTP id b3so12068665oia.1 for ; Tue, 14 Jul 2015 11:08:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=2o+dDHXmgCGvfND8gL9t8ed8J5IVuho0bAZDOo1q4sE=; b=NbPQ9Xrkpjs3sh3JY6UPVBWw07+j0kzQs9YdxFygKgslb+zJNLb0+JvfqtNTimoTWi kAeoj+NiauBZxukBUe+OLOWX/2cF9tN6Ckjt8y4B4h/qreGyhVy6pOdiLBJhbV0pZyl6 HEPg1bEySJPEoBnKqjYPMfkY6h6K5vVgtWK+Hr/XauukNGPlGTr1SKE7AkL/qm8V+T3f QqUIqwuLX4hFPM8Iuf6CjGL4pa/LCaLIqRfVUtej5ChqMNYl970wW3pHzJH8Pl9p4AmR l8QYfsSYP8lfQqI7YgXAn6XKY1rkKlGk4ydVnO3QVz6j77j1ZENz96hik3eW5v9z5IsE 7Exw== X-Received: by 10.182.236.200 with SMTP id uw8mr26627225obc.19.1436897286670; Tue, 14 Jul 2015 11:08:06 -0700 (PDT) Original-Received: from localhost.localdomain (nat-165-91-12-35.tamulink.tamu.edu. [165.91.12.35]) by smtp.gmail.com with ESMTPSA id p184sm890501oig.10.2015.07.14.11.08.06 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 14 Jul 2015 11:08:06 -0700 (PDT) X-Mailer: git-send-email 2.3.6 In-Reply-To: <1436897249-18167-1-git-send-email-ahmed.taahir@gmail.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:4003:c06::22f X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:17763 Archived-At: --- libguile/__scm.h | 8 ++++++++ libguile/_scm.h | 10 ++++++++++ libguile/alist.h | 8 ++++++++ libguile/arbiters.h | 8 ++++++++ libguile/array-handle.h | 7 +++++++ libguile/array-map.h | 8 ++++++++ libguile/arrays.h | 8 ++++++++ libguile/async.h | 8 ++++++++ libguile/backtrace.h | 8 ++++++++ libguile/bdw-gc.h | 7 +++++++ libguile/bitvectors.h | 8 ++++++++ libguile/boolean.h | 8 ++++++++ libguile/bytevectors.h | 7 +++++++ libguile/chars.h | 8 ++++++++ libguile/continuations.h | 9 +++++++++ libguile/control.h | 6 ++++++ libguile/debug-malloc.h | 8 ++++++++ libguile/debug.h | 9 +++++++++ libguile/deprecated.h | 8 ++++++++ libguile/deprecation.h | 8 ++++++++ libguile/dynl.h | 8 ++++++++ libguile/dynstack.h | 8 ++++++++ libguile/dynwind.h | 7 +++++++ libguile/elf.h | 7 +++++++ libguile/eq.h | 8 ++++++++ libguile/error.h | 8 ++++++++ libguile/evalext.h | 8 ++++++++ libguile/expand.h | 6 ++++++ libguile/extensions.h | 8 ++++++++ libguile/feature.h | 8 ++++++++ libguile/filesys.h | 8 ++++++++ libguile/finalizers.h | 8 ++++++++ libguile/fluids.h | 7 +++++++ libguile/foreign-object.h | 6 ++++++ libguile/foreign.h | 8 ++++++++ libguile/fports.h | 7 +++++++ libguile/frames.h | 8 ++++++++ libguile/gc-inline.h | 13 +++++++++++++ libguile/gc.h | 8 ++++++++ libguile/generalized-arrays.h | 7 +++++++ libguile/generalized-vectors.h | 8 ++++++++ libguile/gettext.h | 8 ++++++++ libguile/goops.h | 8 ++++++++ libguile/gsubr.h | 7 +++++++ libguile/guardians.h | 8 ++++++++ libguile/hash.h | 8 ++++++++ libguile/hashtab.h | 8 ++++++++ libguile/hooks.h | 8 ++++++++ libguile/i18n.h | 7 +++++++ libguile/init.h | 9 +++++++++ libguile/inline.h | 9 +++++++++ libguile/instructions.h | 8 ++++++++ libguile/ioext.h | 8 ++++++++ libguile/iselect.h | 8 ++++++++ libguile/keywords.h | 8 ++++++++ libguile/libgettext.h | 16 ++++++++++++++++ libguile/list.h | 8 ++++++++ libguile/load.h | 8 ++++++++ libguile/loader.h | 8 ++++++++ libguile/macros.h | 7 +++++++ libguile/mallocs.h | 9 +++++++++ libguile/memoize.h | 7 +++++++ libguile/modules.h | 8 ++++++++ libguile/net_db.h | 8 ++++++++ libguile/null-threads.h | 7 +++++++ libguile/numbers.h | 16 ++++++++++++++++ libguile/objprop.h | 8 ++++++++ libguile/options.h | 8 ++++++++ libguile/pairs.h | 9 +++++++++ libguile/poll.h | 8 ++++++++ libguile/ports-internal.h | 8 ++++++++ libguile/ports.h | 8 ++++++++ libguile/posix.h | 7 +++++++ libguile/print.h | 9 +++++++++ libguile/private-options.h | 8 ++++++++ libguile/procprop.h | 8 ++++++++ libguile/procs.h | 8 ++++++++ libguile/programs.h | 8 ++++++++ libguile/promises.h | 7 +++++++ libguile/pthread-threads.h | 8 ++++++++ libguile/r6rs-ports.h | 8 ++++++++ libguile/random.h | 9 +++++++++ libguile/rdelim.h | 8 ++++++++ libguile/read.h | 9 +++++++++ libguile/regex-posix.h | 8 ++++++++ libguile/root.h | 8 ++++++++ libguile/rw.h | 8 ++++++++ libguile/scmsigs.h | 8 ++++++++ libguile/script.h | 9 +++++++++ libguile/simpos.h | 8 ++++++++ libguile/smob.h | 7 +++++++ libguile/snarf.h | 8 ++++++++ libguile/socket.h | 8 ++++++++ libguile/sort.h | 8 ++++++++ libguile/srcprop.h | 7 +++++++ libguile/srfi-1.h | 8 ++++++++ libguile/srfi-13.h | 8 ++++++++ libguile/srfi-14.h | 8 ++++++++ libguile/srfi-4.h | 8 ++++++++ libguile/srfi-60.h | 8 ++++++++ libguile/stackchk.h | 8 ++++++++ libguile/stacks.h | 8 ++++++++ libguile/stime.h | 8 ++++++++ libguile/strings.h | 8 ++++++++ libguile/strorder.h | 8 ++++++++ libguile/strports.h | 8 ++++++++ libguile/struct.h | 8 ++++++++ libguile/symbols.h | 9 +++++++++ libguile/tags.h | 8 ++++++++ libguile/threads.h | 8 ++++++++ libguile/throw.h | 8 ++++++++ libguile/trees.h | 8 ++++++++ libguile/unicode.h | 8 ++++++++ libguile/uniform.h | 7 +++++++ libguile/validate.h | 8 ++++++++ libguile/values.h | 8 ++++++++ libguile/variable.h | 8 ++++++++ libguile/vectors.h | 8 ++++++++ libguile/vm-builtins.h | 8 ++++++++ libguile/vm-expand.h | 8 ++++++++ libguile/vm.h | 8 ++++++++ libguile/vports.h | 8 ++++++++ libguile/weak-set.h | 8 ++++++++ libguile/weak-table.h | 8 ++++++++ libguile/weak-vector.h | 7 +++++++ libguile/win32-uname.h | 8 ++++++++ 126 files changed, 1017 insertions(+) diff --git a/libguile/__scm.h b/libguile/__scm.h index 31e3952..1967069 100644 --- a/libguile/__scm.h +++ b/libguile/__scm.h @@ -53,6 +53,10 @@ /* What did the configure script discover about the outside world? */ #include "libguile/scmconfig.h" +#ifdef __cplusplus +extern "C" { +#endif + /* {Compiler hints} @@ -523,6 +527,10 @@ typedef long SCM_STACKITEM; # define SCM_THREAD_LOCAL #endif +#ifdef __cplusplus +} +#endif + #endif /* SCM___SCM_H */ /* diff --git a/libguile/_scm.h b/libguile/_scm.h index 97ddaf2..183fe50 100644 --- a/libguile/_scm.h +++ b/libguile/_scm.h @@ -134,6 +134,12 @@ +#ifdef __cplusplus +extern "C" { +#endif + + + #ifndef min #define min(A, B) ((A) <= (B) ? (A) : (B)) #endif @@ -278,6 +284,10 @@ void scm_ia64_longjmp (scm_i_jmp_buf *, int); #define SCM_OBJCODE_MACHINE_VERSION_STRING \ SCM_OBJCODE_ENDIANNESS "-" SCM_OBJCODE_WORD_SIZE "-" SCM_OBJCODE_VERSION_STRING +#ifdef __cplusplus +} +#endif + #endif /* SCM__SCM_H */ /* diff --git a/libguile/alist.h b/libguile/alist.h index 77c5656..0faea9f 100644 --- a/libguile/alist.h +++ b/libguile/alist.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_acons (SCM w, SCM x, SCM y); @@ -45,6 +49,10 @@ SCM_API SCM scm_assv_remove_x (SCM alist, SCM key); SCM_API SCM scm_assoc_remove_x (SCM alist, SCM key); SCM_INTERNAL void scm_init_alist (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_ALIST_H */ /* diff --git a/libguile/arbiters.h b/libguile/arbiters.h index 214e92a..8e9b27c 100644 --- a/libguile/arbiters.h +++ b/libguile/arbiters.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_make_arbiter (SCM name); @@ -32,6 +36,10 @@ SCM_API SCM scm_try_arbiter (SCM arb); SCM_API SCM scm_release_arbiter (SCM arb); SCM_INTERNAL void scm_init_arbiters (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_ARBITERS_H */ /* diff --git a/libguile/array-handle.h b/libguile/array-handle.h index a623b4e..c8cdb02 100644 --- a/libguile/array-handle.h +++ b/libguile/array-handle.h @@ -28,6 +28,10 @@ #include "libguile/error.h" #include "libguile/numbers.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef SCM (*scm_t_vector_ref) (SCM, size_t); @@ -131,6 +135,9 @@ scm_array_handle_set (scm_t_array_handle *h, ssize_t p, SCM v) SCM_INTERNAL void scm_init_array_handle (void); +#ifdef __cplusplus +} +#endif #endif /* SCM_ARRAY_HANDLE_H */ diff --git a/libguile/array-map.h b/libguile/array-map.h index b0592d8..0a25df4 100644 --- a/libguile/array-map.h +++ b/libguile/array-map.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API int scm_ra_matchp (SCM ra0, SCM ras); @@ -55,6 +59,10 @@ SCM_DEPRECATED int scm_array_identity (SCM src, SCM dst); #endif /* SCM_ENABLE_DEPRECATED == 1 */ +#ifdef __cplusplus +} +#endif + #endif /* SCM_ARRAY_MAP_H */ /* diff --git a/libguile/arrays.h b/libguile/arrays.h index 5f40597..918913e 100644 --- a/libguile/arrays.h +++ b/libguile/arrays.h @@ -27,6 +27,10 @@ #include "libguile/__scm.h" #include "libguile/print.h" +#ifdef __cplusplus +extern "C" { +#endif + /* Multidimensional arrays. Woo hoo! @@ -72,6 +76,10 @@ SCM_INTERNAL int scm_i_print_array (SCM array, SCM port, scm_print_state *pstate SCM_INTERNAL void scm_init_arrays (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_ARRAYS_H */ /* diff --git a/libguile/async.h b/libguile/async.h index 00b7914..8b52faf 100644 --- a/libguile/async.h +++ b/libguile/async.h @@ -28,6 +28,10 @@ #include "libguile/root.h" #include "libguile/threads.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API void scm_async_tick (void); @@ -104,6 +108,10 @@ SCM_API void scm_critical_section_end (void); SCM_INTERNAL void scm_init_async (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_ASYNC_H */ /* diff --git a/libguile/backtrace.h b/libguile/backtrace.h index 42bd26f..0f081b2 100644 --- a/libguile/backtrace.h +++ b/libguile/backtrace.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_print_exception (SCM port, SCM frame, SCM key, SCM args); SCM_API void scm_display_error_message (SCM message, SCM args, SCM port); @@ -42,6 +46,10 @@ SCM_API SCM scm_set_print_params_x (SCM params); SCM_INTERNAL void scm_init_backtrace (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_BACKTRACE_H */ /* diff --git a/libguile/bdw-gc.h b/libguile/bdw-gc.h index 6e2f456..5e4bbce 100644 --- a/libguile/bdw-gc.h +++ b/libguile/bdw-gc.h @@ -46,6 +46,10 @@ #include +#ifdef __cplusplus +extern "C" { +#endif + /* Return true if PTR points to the heap. */ #define SCM_I_IS_POINTER_TO_THE_HEAP(ptr) \ (GC_base (ptr) != NULL) @@ -60,5 +64,8 @@ ? GC_GENERAL_REGISTER_DISAPPEARING_LINK ((link), (obj)) \ : 0) +#ifdef __cplusplus +} +#endif #endif /* SCM_BDW_GC_H */ diff --git a/libguile/bitvectors.h b/libguile/bitvectors.h index 6b2cb1e..d3c03b9 100644 --- a/libguile/bitvectors.h +++ b/libguile/bitvectors.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" #include "libguile/array-handle.h" +#ifdef __cplusplus +extern "C" { +#endif + /* Bitvectors. Exciting stuff, maybe! @@ -75,6 +79,10 @@ SCM_INTERNAL int scm_i_print_bitvector (SCM vec, SCM port, scm_print_state *psta SCM_INTERNAL SCM scm_i_bitvector_equal_p (SCM vec1, SCM vec2); SCM_INTERNAL void scm_init_bitvectors (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_BITVECTORS_H */ /* diff --git a/libguile/boolean.h b/libguile/boolean.h index df72728..ff3eb41 100644 --- a/libguile/boolean.h +++ b/libguile/boolean.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* Boolean Values. Obviously there are #t and #f, but there is also nil to deal @@ -130,6 +134,10 @@ SCM_API SCM scm_nil_p (SCM obj); SCM_INTERNAL void scm_init_boolean (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_BOOLEAN_H */ /* diff --git a/libguile/bytevectors.h b/libguile/bytevectors.h index a5eeaea..e77896f 100644 --- a/libguile/bytevectors.h +++ b/libguile/bytevectors.h @@ -23,6 +23,9 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif /* R6RS bytevectors. */ @@ -148,4 +151,8 @@ SCM_INTERNAL SCM scm_c_shrink_bytevector (SCM, size_t); SCM_INTERNAL void scm_i_bytevector_generalized_set_x (SCM, size_t, SCM); SCM_INTERNAL SCM scm_null_bytevector; +#ifdef __cplusplus +} +#endif + #endif /* SCM_BYTEVECTORS_H */ diff --git a/libguile/chars.h b/libguile/chars.h index 488dd25..b4d6cd9 100644 --- a/libguile/chars.h +++ b/libguile/chars.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + #ifndef SCM_T_WCHAR_DEFINED typedef scm_t_int32 scm_t_wchar; #define SCM_T_WCHAR_DEFINED @@ -90,6 +94,10 @@ SCM_INTERNAL SCM scm_i_charname_to_char (const char *charname, size_t charname_len); SCM_INTERNAL void scm_init_chars (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_CHARS_H */ /* diff --git a/libguile/continuations.h b/libguile/continuations.h index ec12b46..37a82d9 100644 --- a/libguile/continuations.h +++ b/libguile/continuations.h @@ -29,6 +29,11 @@ #include #include #endif /* __ia64__ */ + +#ifdef __cplusplus +extern "C" { +#endif + #define SCM_CONTINUATIONP(x) \ @@ -96,6 +101,10 @@ scm_i_with_continuation_barrier (scm_t_catch_body body, SCM_INTERNAL void scm_init_continuations (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_CONTINUATIONS_H */ /* diff --git a/libguile/control.h b/libguile/control.h index 4b76591..950d71a 100644 --- a/libguile/control.h +++ b/libguile/control.h @@ -21,6 +21,9 @@ #include "libguile/vm.h" +#ifdef __cplusplus +extern "C" { +#endif SCM_INTERNAL SCM scm_i_prompt_pop_abort_args_x (struct scm_vm *vp); @@ -31,5 +34,8 @@ SCM_INTERNAL SCM scm_abort_to_prompt_star (SCM tag, SCM args) SCM_NORETURN; SCM_INTERNAL void scm_init_control (void); +#ifdef __cplusplus +} +#endif #endif /* SCM_CONTROL_H */ diff --git a/libguile/debug-malloc.h b/libguile/debug-malloc.h index 7830adb..9b1ce1e 100644 --- a/libguile/debug-malloc.h +++ b/libguile/debug-malloc.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API void scm_malloc_register (void *obj, const char *what); @@ -36,6 +40,10 @@ SCM_API SCM scm_malloc_stats (void); SCM_INTERNAL void scm_debug_malloc_prehistory (void); SCM_INTERNAL void scm_init_debug_malloc (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_DEBUG_MALLOC_H */ /* diff --git a/libguile/debug.h b/libguile/debug.h index ab301a0..5dec284 100644 --- a/libguile/debug.h +++ b/libguile/debug.h @@ -27,6 +27,11 @@ #include "libguile/__scm.h" #include "libguile/options.h" + +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_local_eval (SCM exp, SCM env); @@ -40,6 +45,10 @@ SCM_INTERNAL void scm_init_debug (void); SCM_API SCM scm_debug_hang (SCM obj); #endif /*GUILE_DEBUG*/ +#ifdef __cplusplus +} +#endif + #endif /* SCM_DEBUG_H */ /* diff --git a/libguile/deprecated.h b/libguile/deprecated.h index 1f13bde..6d4b410 100644 --- a/libguile/deprecated.h +++ b/libguile/deprecated.h @@ -29,6 +29,10 @@ #include "libguile/throw.h" #include "libguile/iselect.h" +#ifdef __cplusplus +extern "C" { +#endif + #if (SCM_ENABLE_DEPRECATED == 1) /* Deprecated 13-05-2011 because it's better just to scm_dynwind_begin. @@ -223,4 +227,8 @@ void scm_i_init_deprecated (void); #endif +#ifdef __cplusplus +} +#endif + #endif /* SCM_DEPRECATED_H */ diff --git a/libguile/deprecation.h b/libguile/deprecation.h index 06027c6..50b858f 100644 --- a/libguile/deprecation.h +++ b/libguile/deprecation.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* These functions are a possibly useful part of the API and not only used @@ -38,6 +42,10 @@ SCM_API SCM scm_issue_deprecation_warning (SCM msgs); SCM_API SCM scm_include_deprecated_features (void); SCM_INTERNAL void scm_init_deprecation (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_DEPRECATION_H */ /* diff --git a/libguile/dynl.h b/libguile/dynl.h index e735bcc..08562cf 100644 --- a/libguile/dynl.h +++ b/libguile/dynl.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_dynamic_link (SCM fname); @@ -36,6 +40,10 @@ SCM_API SCM scm_dynamic_call (SCM symb, SCM dobj); SCM_INTERNAL void scm_init_dynamic_linking (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_DYNL_H */ /* diff --git a/libguile/dynstack.h b/libguile/dynstack.h index 7b31ace..8531041 100644 --- a/libguile/dynstack.h +++ b/libguile/dynstack.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef struct @@ -201,6 +205,10 @@ SCM_INTERNAL void scm_dynstack_wind_prompt (scm_t_dynstack *, scm_t_bits *, scm_t_ptrdiff, scm_i_jmp_buf *); +#ifdef __cplusplus +} +#endif + #endif /* SCM_DYNSTACK_H */ /* diff --git a/libguile/dynwind.h b/libguile/dynwind.h index 9ade05c..4f1091d 100644 --- a/libguile/dynwind.h +++ b/libguile/dynwind.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" #include "libguile/dynstack.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_dynamic_wind (SCM thunk1, SCM thunk2, SCM thunk3); @@ -57,6 +61,9 @@ SCM_API void scm_dynwind_rewind_handler_with_scm (void (*func) (SCM), SCM data, SCM_API void scm_dynwind_free (void *mem); +#ifdef __cplusplus +} +#endif #endif /* SCM_DYNWIND_H */ diff --git a/libguile/elf.h b/libguile/elf.h index 9d53721..f30d5c0 100644 --- a/libguile/elf.h +++ b/libguile/elf.h @@ -25,6 +25,10 @@ #include +#ifdef __cplusplus +extern "C" { +#endif + /* Type for a 16-bit quantity. */ typedef uint16_t Elf32_Half; typedef uint16_t Elf64_Half; @@ -2790,5 +2794,8 @@ typedef Elf32_Addr Elf32_Conflict; #define R_M32R_GOTOFF_LO 64 /* Low 16 bit offset to GOT */ #define R_M32R_NUM 256 /* Keep this the last entry. */ +#ifdef __cplusplus +} +#endif #endif /* elf.h */ diff --git a/libguile/eq.h b/libguile/eq.h index c09d667..55f0822 100644 --- a/libguile/eq.h +++ b/libguile/eq.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* scm_is_eq is defined in tags.h for some reason. */ @@ -39,6 +43,10 @@ SCM_API SCM scm_eqv_p (SCM x, SCM y); SCM_API SCM scm_equal_p (SCM x, SCM y); SCM_INTERNAL void scm_init_eq (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_EQ_H */ /* diff --git a/libguile/error.h b/libguile/error.h index 6985dbc..78326d1 100644 --- a/libguile/error.h +++ b/libguile/error.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_system_error_key; SCM_API SCM scm_num_overflow_key; @@ -70,6 +74,10 @@ SCM_API void scm_misc_error (const char *subr, const char *message, SCM args) SCM_NORETURN; SCM_INTERNAL void scm_init_error (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_ERROR_H */ /* diff --git a/libguile/evalext.h b/libguile/evalext.h index 7718ec6..7c2436c 100644 --- a/libguile/evalext.h +++ b/libguile/evalext.h @@ -25,12 +25,20 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_defined_p (SCM sym, SCM env); SCM_API SCM scm_self_evaluating_p (SCM obj); SCM_INTERNAL void scm_init_evalext (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_EVALEXT_H */ /* diff --git a/libguile/expand.h b/libguile/expand.h index 9c2732d..e7b72d9 100644 --- a/libguile/expand.h +++ b/libguile/expand.h @@ -26,6 +26,9 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif @@ -341,6 +344,9 @@ SCM_INTERNAL SCM scm_convert_assignment (SCM exp); SCM_INTERNAL void scm_init_expand (void); +#ifdef __cplusplus +} +#endif #endif /* SCM_EXPAND_H */ diff --git a/libguile/extensions.h b/libguile/extensions.h index 765f9be..3590647 100644 --- a/libguile/extensions.h +++ b/libguile/extensions.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef void (*scm_t_extension_init_func)(void*); @@ -37,6 +41,10 @@ SCM_API SCM scm_load_extension (SCM lib, SCM init); SCM_INTERNAL void scm_init_extensions (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_EXTENSIONS_H */ /* diff --git a/libguile/feature.h b/libguile/feature.h index 467f9ed..28e41cd 100644 --- a/libguile/feature.h +++ b/libguile/feature.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API void scm_add_feature (const char* str); SCM_API SCM scm_program_arguments (void); SCM_API void scm_set_program_arguments (int argc, char **argv, char *first); @@ -34,6 +38,10 @@ SCM_API SCM scm_set_program_arguments_scm (SCM lst); SCM_INTERNAL SCM scm_program_arguments_fluid; SCM_INTERNAL void scm_init_feature (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_FEATURE_H */ /* diff --git a/libguile/filesys.h b/libguile/filesys.h index fc66e40..b7b8e8d 100644 --- a/libguile/filesys.h +++ b/libguile/filesys.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API scm_t_bits scm_tc16_dir; @@ -72,6 +76,10 @@ SCM_INTERNAL SCM scm_i_relativize_path (SCM path, SCM in_path); SCM_INTERNAL void scm_init_filesys (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_FILESYS_H */ /* diff --git a/libguile/finalizers.h b/libguile/finalizers.h index d01d1b7..7707fd5 100644 --- a/libguile/finalizers.h +++ b/libguile/finalizers.h @@ -23,6 +23,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef void (*scm_t_finalizer_proc) (void *obj, void *data); @@ -47,4 +51,8 @@ SCM_API int scm_run_finalizers (void); SCM_INTERNAL void scm_init_finalizers (void); SCM_INTERNAL void scm_init_finalizer_thread (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_FINALIZERS_H */ diff --git a/libguile/fluids.h b/libguile/fluids.h index a550d9a..ba0d1fb 100644 --- a/libguile/fluids.h +++ b/libguile/fluids.h @@ -27,6 +27,9 @@ #include "libguile/root.h" #include "libguile/vectors.h" +#ifdef __cplusplus +extern "C" { +#endif /* Fluids. @@ -91,6 +94,10 @@ SCM_INTERNAL void scm_i_fluid_print (SCM exp, SCM port, scm_print_state *pstate) SCM_INTERNAL void scm_i_dynamic_state_print (SCM exp, SCM port, scm_print_state *pstate); SCM_INTERNAL void scm_init_fluids (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_FLUIDS_H */ /* diff --git a/libguile/foreign-object.h b/libguile/foreign-object.h index 806b7ed..3f5e84e 100644 --- a/libguile/foreign-object.h +++ b/libguile/foreign-object.h @@ -24,6 +24,9 @@ #include "libguile/__scm.h" #include "libguile/print.h" +#ifdef __cplusplus +extern "C" { +#endif @@ -58,5 +61,8 @@ SCM_API void scm_foreign_object_signed_set_x (SCM obj, size_t n, SCM_INTERNAL void scm_register_foreign_object (void); +#ifdef __cplusplus +} +#endif #endif /* SCM_FOREIGN_OBJECT_H */ diff --git a/libguile/foreign.h b/libguile/foreign.h index fbb9764..6546860 100644 --- a/libguile/foreign.h +++ b/libguile/foreign.h @@ -21,6 +21,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* A "foreign pointer" is a wrapped C pointer. It is represented by a cell whose second word is a pointer. The first word has the `scm_tc7_pointer' type code. @@ -106,4 +110,8 @@ SCM_INTERNAL int scm_i_foreign_arity (SCM foreign, SCM_INTERNAL void scm_register_foreign (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_FOREIGN_H */ diff --git a/libguile/fports.h b/libguile/fports.h index 092b43e..d01bdb9 100644 --- a/libguile/fports.h +++ b/libguile/fports.h @@ -27,6 +27,10 @@ #include "libguile/ports.h" +#ifdef __cplusplus +extern "C" { +#endif + /* struct allocated for each buffered FPORT. */ @@ -75,6 +79,9 @@ SCM_INTERNAL void scm_init_fports (void); SCM_INTERNAL SCM scm_i_fdes_to_port (int fdes, long mode_bits, SCM name); +#ifdef __cplusplus +} +#endif #endif /* SCM_FPORTS_H */ diff --git a/libguile/frames.h b/libguile/frames.h index 31f8634..bb0fa2f 100644 --- a/libguile/frames.h +++ b/libguile/frames.h @@ -22,6 +22,10 @@ #include #include "programs.h" +#ifdef __cplusplus +extern "C" { +#endif + /* Stack frames ------------ @@ -177,6 +181,10 @@ SCM_INTERNAL void scm_i_frame_print (SCM frame, SCM port, scm_print_state *pstate); SCM_INTERNAL void scm_init_frames (void); +#ifdef __cplusplus +} +#endif + #endif /* _SCM_FRAMES_H_ */ /* diff --git a/libguile/gc-inline.h b/libguile/gc-inline.h index fcbe5a5..c32089b 100644 --- a/libguile/gc-inline.h +++ b/libguile/gc-inline.h @@ -47,7 +47,17 @@ #include "libguile/bdw-gc.h" #include "libguile/threads.h" +#ifdef __cplusplus +extern "C" { +#endif #include /* GC_generic_malloc_many */ +#ifdef __cplusplus +} +#endif + +#ifdef __cplusplus +extern "C" { +#endif @@ -173,6 +183,9 @@ scm_inline_cons (scm_i_thread *thread, SCM x, SCM y) return scm_inline_cell (thread, SCM_UNPACK (x), SCM_UNPACK (y)); } +#ifdef __cplusplus +} +#endif #endif /* SCM_GC_INLINE_H */ diff --git a/libguile/gc.h b/libguile/gc.h index 8b3ae79..1190c46 100644 --- a/libguile/gc.h +++ b/libguile/gc.h @@ -29,6 +29,10 @@ #include "libguile/hooks.h" #include "libguile/threads.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef struct scm_t_cell { @@ -331,6 +335,10 @@ SCM_INTERNAL void scm_storage_prehistory (void); SCM_INTERNAL void scm_init_gc_protect_object (void); SCM_INTERNAL void scm_init_gc (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_GC_H */ /* diff --git a/libguile/generalized-arrays.h b/libguile/generalized-arrays.h index dfdb8bd..59908ef 100644 --- a/libguile/generalized-arrays.h +++ b/libguile/generalized-arrays.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" #include "libguile/array-handle.h" +#ifdef __cplusplus +extern "C" { +#endif + /* These functions operate on all kinds of arrays that Guile knows about. @@ -64,6 +68,9 @@ SCM_API SCM scm_array_to_list (SCM v); SCM_INTERNAL void scm_init_generalized_arrays (void); +#ifdef __cplusplus +} +#endif #endif /* SCM_GENERALIZED_ARRAYS_H */ diff --git a/libguile/generalized-vectors.h b/libguile/generalized-vectors.h index 876537a..46881bd 100644 --- a/libguile/generalized-vectors.h +++ b/libguile/generalized-vectors.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" #include "libguile/array-handle.h" +#ifdef __cplusplus +extern "C" { +#endif + /* Generalized vectors */ @@ -46,6 +50,10 @@ SCM_INTERNAL void scm_i_register_vector_constructor (SCM type, SCM (*ctor)(SCM, SCM_INTERNAL void scm_init_generalized_vectors (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_GENERALIZED_VECTORS_H */ /* diff --git a/libguile/gettext.h b/libguile/gettext.h index d4576bd..e0b7da2 100644 --- a/libguile/gettext.h +++ b/libguile/gettext.h @@ -23,6 +23,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_gettext (SCM msgid, SCM domainname, SCM category); SCM_API SCM scm_ngettext (SCM msgid, SCM msgid_plural, SCM n, SCM domainname, SCM category); SCM_API SCM scm_textdomain (SCM domainname); @@ -33,6 +37,10 @@ SCM_INTERNAL int scm_i_to_lc_category (SCM category, int allow_lc_all); SCM_INTERNAL void scm_init_gettext (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_GETTEXT_H */ /* diff --git a/libguile/goops.h b/libguile/goops.h index cc743a6..fcd27e1 100644 --- a/libguile/goops.h +++ b/libguile/goops.h @@ -34,6 +34,10 @@ #include "libguile/validate.h" +#ifdef __cplusplus +extern "C" { +#endif + /* {Class flags} * * These are used for efficient identification of instances of a @@ -142,6 +146,10 @@ SCM_INTERNAL SCM scm_i_define_class_for_vtable (SCM vtable); SCM_INTERNAL void scm_init_goops (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_GOOPS_H */ /* diff --git a/libguile/gsubr.h b/libguile/gsubr.h index 065b947..1213e2b 100644 --- a/libguile/gsubr.h +++ b/libguile/gsubr.h @@ -26,6 +26,9 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif @@ -70,6 +73,10 @@ SCM_API SCM scm_c_define_gsubr_with_generic (const char *name, SCM_INTERNAL void scm_init_gsubr (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_GSUBR_H */ /* diff --git a/libguile/guardians.h b/libguile/guardians.h index a23026d..398032a 100644 --- a/libguile/guardians.h +++ b/libguile/guardians.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_make_guardian (void); SCM_INTERNAL void scm_i_init_guardians_for_gc (void); @@ -33,6 +37,10 @@ SCM_INTERNAL int scm_i_mark_inaccessible_guardeds (void); SCM_INTERNAL void scm_init_guardians (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_GUARDIANS_H */ /* diff --git a/libguile/hash.h b/libguile/hash.h index 9085bc0..d9eee3c 100644 --- a/libguile/hash.h +++ b/libguile/hash.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_INTERNAL unsigned long scm_i_locale_string_hash (const char *str, @@ -44,6 +48,10 @@ SCM_API unsigned long scm_ihash (SCM obj, unsigned long n); SCM_API SCM scm_hash (SCM obj, SCM n); SCM_INTERNAL void scm_init_hash (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_HASH_H */ /* diff --git a/libguile/hashtab.h b/libguile/hashtab.h index 82ed22e..6ac2fd1 100644 --- a/libguile/hashtab.h +++ b/libguile/hashtab.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + #define SCM_HASHTABLE_P(x) (SCM_HAS_TYP7 (x, scm_tc7_hashtable)) @@ -138,6 +142,10 @@ SCM_API SCM scm_hash_count (SCM hash, SCM pred); SCM_INTERNAL void scm_i_hashtable_print (SCM exp, SCM port, scm_print_state *pstate); SCM_INTERNAL void scm_init_hashtab (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_HASHTAB_H */ /* diff --git a/libguile/hooks.h b/libguile/hooks.h index dc930cb..2c4072e 100644 --- a/libguile/hooks.h +++ b/libguile/hooks.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* * C level hooks */ @@ -91,6 +95,10 @@ SCM_API void scm_c_run_hookn (SCM hook, SCM *argv, size_t nargs); SCM_API SCM scm_hook_to_list (SCM hook); SCM_INTERNAL void scm_init_hooks (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_HOOKS_H */ /* diff --git a/libguile/i18n.h b/libguile/i18n.h index c2792ac..3dda139 100644 --- a/libguile/i18n.h +++ b/libguile/i18n.h @@ -23,6 +23,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_global_locale; SCM_API SCM scm_make_locale (SCM category_mask, SCM locale_name, SCM base_locale); SCM_API SCM scm_locale_p (SCM obj); @@ -50,6 +54,9 @@ SCM_INTERNAL SCM scm_nl_langinfo (SCM item, SCM locale); SCM_INTERNAL void scm_init_i18n (void); SCM_INTERNAL void scm_bootstrap_i18n (void); +#ifdef __cplusplus +} +#endif #endif /* SCM_I18N_H */ diff --git a/libguile/init.h b/libguile/init.h index bc6cddf..385ffc3 100644 --- a/libguile/init.h +++ b/libguile/init.h @@ -26,6 +26,11 @@ #include "libguile/__scm.h" #include "libguile/threads.h" +#ifdef __cplusplus +extern "C" { +#endif + + SCM_INTERNAL scm_i_pthread_mutex_t scm_i_init_mutex; SCM_API int scm_initialized_p; @@ -42,6 +47,10 @@ SCM_INTERNAL void scm_i_init_guile (void *base); SCM_API void scm_load_startup_files (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_INIT_H */ /* diff --git a/libguile/inline.h b/libguile/inline.h index 3c9b09b..704bc9d 100644 --- a/libguile/inline.h +++ b/libguile/inline.h @@ -36,6 +36,10 @@ #include "libguile/numbers.h" #include "libguile/error.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_INLINE int scm_is_string (SCM x); @@ -54,4 +58,9 @@ scm_is_string (SCM x) } #endif + +#ifdef __cplusplus +} +#endif + #endif diff --git a/libguile/instructions.h b/libguile/instructions.h index ad058cd..4db02af 100644 --- a/libguile/instructions.h +++ b/libguile/instructions.h @@ -22,6 +22,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + #ifdef BUILDING_LIBGUILE enum scm_opcode @@ -48,6 +52,10 @@ SCM_INTERNAL SCM scm_instruction_list (void); SCM_INTERNAL void scm_bootstrap_instructions (void); SCM_INTERNAL void scm_init_instructions (void); +#ifdef __cplusplus +} +#endif + #endif /* _SCM_INSTRUCTIONS_H_ */ /* diff --git a/libguile/ioext.h b/libguile/ioext.h index 1b7b93a..48bfa7c 100644 --- a/libguile/ioext.h +++ b/libguile/ioext.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_ftell (SCM object); @@ -38,6 +42,10 @@ SCM_API SCM scm_primitive_move_to_fdes (SCM port, SCM fd); SCM_API SCM scm_fdes_to_ports (SCM fd); SCM_INTERNAL void scm_init_ioext (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_IOEXT_H */ /* diff --git a/libguile/iselect.h b/libguile/iselect.h index 945ad14..84fac21 100644 --- a/libguile/iselect.h +++ b/libguile/iselect.h @@ -31,6 +31,10 @@ #include +#ifdef __cplusplus +extern "C" { +#endif + SCM_API int scm_std_select (int fds, fd_set *rfds, fd_set *wfds, @@ -39,6 +43,10 @@ SCM_API int scm_std_select (int fds, #define SELECT_TYPE fd_set +#ifdef __cplusplus +} +#endif + #endif /* SCM_ISELECT_H */ /* diff --git a/libguile/keywords.h b/libguile/keywords.h index 32311dd..bf45850 100644 --- a/libguile/keywords.h +++ b/libguile/keywords.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_keyword_p (SCM obj); @@ -51,6 +55,10 @@ scm_c_bind_keyword_arguments (const char *subr, SCM rest, SCM_INTERNAL void scm_init_keywords (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_KEYWORDS_H */ /* diff --git a/libguile/libgettext.h b/libguile/libgettext.h index f54b6bf..30004ea 100644 --- a/libguile/libgettext.h +++ b/libguile/libgettext.h @@ -37,6 +37,10 @@ # include #endif +#ifdef __cplusplus +extern "C" { +#endif + /* Disabled NLS. The casts to 'const char *' serve the purpose of producing warnings for invalid uses of the value returned from these functions. @@ -55,6 +59,14 @@ # define bindtextdomain(Domainname, Dirname) ((const char *) (Dirname)) # define bind_textdomain_codeset(Domainname, Codeset) ((const char *) (Codeset)) +#ifdef __cplusplus +} +#endif + +#endif + +#ifdef __cplusplus +extern "C" { #endif /* A pseudo function call that serves as a marker for the automated @@ -66,4 +78,8 @@ initializer for static 'char[]' or 'const char[]' variables. */ #define gettext_noop(String) String +#ifdef __cplusplus +} +#endif + #endif /* _LIBGETTEXT_H */ diff --git a/libguile/list.h b/libguile/list.h index 238926e..3b8b1c3 100644 --- a/libguile/list.h +++ b/libguile/list.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_list_1 (SCM e1); @@ -76,6 +80,10 @@ SCM_API SCM scm_copy_tree (SCM obj); SCM_INTERNAL SCM scm_i_finite_list_copy (SCM /* a list known to be finite */); SCM_INTERNAL void scm_init_list (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_LIST_H */ /* diff --git a/libguile/load.h b/libguile/load.h index 986948d..7414118 100644 --- a/libguile/load.h +++ b/libguile/load.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_parse_path (SCM path, SCM tail); SCM_API SCM scm_parse_path_with_ellipsis (SCM path, SCM base); @@ -46,6 +50,10 @@ SCM_INTERNAL void scm_init_load_should_auto_compile (void); SCM_INTERNAL void scm_init_eval_in_scheme (void); SCM_INTERNAL char *scm_i_mirror_backslashes (char *path); +#ifdef __cplusplus +} +#endif + #endif /* SCM_LOAD_H */ /* diff --git a/libguile/loader.h b/libguile/loader.h index 6fd9502..ff3060e 100644 --- a/libguile/loader.h +++ b/libguile/loader.h @@ -21,6 +21,10 @@ #include +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_load_thunk_from_file (SCM filename); SCM_API SCM scm_load_thunk_from_memory (SCM bv); @@ -30,6 +34,10 @@ scm_find_dead_slot_map_unlocked (const scm_t_uint32 *ip); SCM_INTERNAL void scm_bootstrap_loader (void); SCM_INTERNAL void scm_init_loader (void); +#ifdef __cplusplus +} +#endif + #endif /* _SCM_LOADER_H_ */ /* diff --git a/libguile/macros.h b/libguile/macros.h index de2496e..bdd3a0d 100644 --- a/libguile/macros.h +++ b/libguile/macros.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef SCM (*scm_t_macro_primitive) (SCM, SCM); @@ -43,6 +47,9 @@ SCM_INTERNAL scm_t_macro_primitive scm_i_macro_primitive (SCM m); SCM_INTERNAL void scm_init_macros (void); +#ifdef __cplusplus +} +#endif #endif /* SCM_MACROS_H */ diff --git a/libguile/mallocs.h b/libguile/mallocs.h index 9c797e9..de052b7 100644 --- a/libguile/mallocs.h +++ b/libguile/mallocs.h @@ -25,6 +25,11 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + + SCM_API scm_t_bits scm_tc16_malloc; @@ -37,6 +42,10 @@ SCM_API scm_t_bits scm_tc16_malloc; SCM_API SCM scm_malloc_obj (size_t n); SCM_INTERNAL void scm_init_mallocs (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_MALLOCS_H */ /* diff --git a/libguile/memoize.h b/libguile/memoize.h index 23c0306..e920260 100644 --- a/libguile/memoize.h +++ b/libguile/memoize.h @@ -26,6 +26,9 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif @@ -93,6 +96,10 @@ SCM_INTERNAL SCM scm_sys_resolve_variable (SCM loc, SCM module); SCM_INTERNAL void scm_init_memoize (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_MEMOIZE_H */ /* diff --git a/libguile/modules.h b/libguile/modules.h index 28df6c6..d5d8552 100644 --- a/libguile/modules.h +++ b/libguile/modules.h @@ -27,6 +27,10 @@ #include "libguile/validate.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API int scm_module_system_booted_p; @@ -122,6 +126,10 @@ SCM_API SCM scm_get_pre_modules_obarray (void); SCM_INTERNAL void scm_modules_prehistory (void); SCM_INTERNAL void scm_init_modules (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_MODULES_H */ /* diff --git a/libguile/net_db.h b/libguile/net_db.h index 68b2a8b..c485414 100644 --- a/libguile/net_db.h +++ b/libguile/net_db.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_gethost (SCM host); @@ -39,6 +43,10 @@ SCM_API SCM scm_getaddrinfo (SCM, SCM, SCM, SCM, SCM, SCM); SCM_API SCM scm_gai_strerror (SCM); SCM_INTERNAL void scm_init_net_db (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_NET_DB_H */ /* diff --git a/libguile/null-threads.h b/libguile/null-threads.h index 116b845..b26a937 100644 --- a/libguile/null-threads.h +++ b/libguile/null-threads.h @@ -36,6 +36,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + /* Threads */ #define scm_i_pthread_t int @@ -102,6 +106,9 @@ SCM_API int scm_i_pthread_key_create (scm_i_pthread_key_t *key, #define scm_i_scm_pthread_cond_wait scm_i_pthread_cond_wait #define scm_i_scm_pthread_cond_timedwait scm_i_pthread_cond_timedwait +#ifdef __cplusplus +} +#endif #endif /* SCM_NULL_THREADS_H */ diff --git a/libguile/numbers.h b/libguile/numbers.h index bba336b..6226bb9 100644 --- a/libguile/numbers.h +++ b/libguile/numbers.h @@ -29,6 +29,10 @@ #include "libguile/__scm.h" #include "libguile/print.h" +#ifdef __cplusplus +extern "C" { +#endif + #ifndef SCM_T_WCHAR_DEFINED typedef scm_t_int32 scm_t_wchar; #define SCM_T_WCHAR_DEFINED @@ -101,6 +105,10 @@ typedef scm_t_int32 scm_t_wchar; * SCM_FLTMAX is less than or scm_equal the largest single precision float */ +#ifdef __cplusplus +} +#endif + #if SCM_HAVE_STDC_HEADERS # ifndef GO32 # include @@ -111,6 +119,10 @@ typedef scm_t_int32 scm_t_wchar; # endif /* ndef GO32 */ #endif /* def STDC_HEADERS */ +#ifdef __cplusplus +extern "C" { +#endif + #ifdef DBL_MAX_10_EXP # define SCM_MAXEXP DBL_MAX_10_EXP #else @@ -592,6 +604,10 @@ SCM_API int scm_install_gmp_memory_functions; SCM_INTERNAL void scm_init_numbers (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_NUMBERS_H */ /* diff --git a/libguile/objprop.h b/libguile/objprop.h index f9a2e94..11e6545 100644 --- a/libguile/objprop.h +++ b/libguile/objprop.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_object_properties (SCM obj); @@ -33,6 +37,10 @@ SCM_API SCM scm_object_property (SCM obj, SCM key); SCM_API SCM scm_set_object_property_x (SCM obj, SCM key, SCM val); SCM_INTERNAL void scm_init_objprop (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_OBJPROP_H */ /* diff --git a/libguile/options.h b/libguile/options.h index 8ea960b..8e1bae2 100644 --- a/libguile/options.h +++ b/libguile/options.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef struct scm_t_option @@ -46,6 +50,10 @@ SCM_API SCM scm_options (SCM, scm_t_option [], const char*); SCM_API void scm_init_opts (SCM (*) (SCM), scm_t_option []); SCM_INTERNAL void scm_init_options (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_OPTIONS_H */ /* diff --git a/libguile/pairs.h b/libguile/pairs.h index 130bf28..f12b2f1 100644 --- a/libguile/pairs.h +++ b/libguile/pairs.h @@ -27,6 +27,10 @@ #include "libguile/gc.h" +#ifdef __cplusplus +extern "C" { +#endif + #if (SCM_DEBUG_PAIR_ACCESSES == 1) @@ -212,6 +216,11 @@ SCM_API SCM scm_caaaar (SCM x); SCM_INTERNAL void scm_init_pairs (void); + +#ifdef __cplusplus +} +#endif + #endif /* SCM_PAIRS_H */ /* diff --git a/libguile/poll.h b/libguile/poll.h index ab31950..088aceb 100644 --- a/libguile/poll.h +++ b/libguile/poll.h @@ -25,10 +25,18 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_INTERNAL void scm_register_poll (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_POLL_H */ /* diff --git a/libguile/ports-internal.h b/libguile/ports-internal.h index bff89cb..5bebb6b 100644 --- a/libguile/ports-internal.h +++ b/libguile/ports-internal.h @@ -25,6 +25,10 @@ #include "libguile/_scm.h" #include "libguile/ports.h" +#ifdef __cplusplus +extern "C" { +#endif + enum scm_port_encoding_mode { SCM_PORT_ENCODING_MODE_UTF8, SCM_PORT_ENCODING_MODE_LATIN1, @@ -63,4 +67,8 @@ typedef struct scm_port_internal scm_t_port_internal; SCM_INTERNAL scm_t_iconv_descriptors * scm_i_port_iconv_descriptors (SCM port, scm_t_port_rw_active mode); +#ifdef __cplusplus +} +#endif + #endif diff --git a/libguile/ports.h b/libguile/ports.h index f2ab850..ceb730e 100644 --- a/libguile/ports.h +++ b/libguile/ports.h @@ -37,6 +37,10 @@ #include "libguile/threads.h" #include "libguile/strings.h" +#ifdef __cplusplus +extern "C" { +#endif + #define SCM_INITIAL_PUTBACK_BUF_SIZE 4 @@ -461,6 +465,10 @@ scm_puts_unlocked (const char *s, SCM port) } #endif /* SCM_CAN_INLINE || defined SCM_INLINE_C_IMPLEMENTING_INLINES */ +#ifdef __cplusplus +} +#endif + #endif /* SCM_PORTS_H */ /* diff --git a/libguile/posix.h b/libguile/posix.h index 92f8b35..e729708 100644 --- a/libguile/posix.h +++ b/libguile/posix.h @@ -27,6 +27,9 @@ #include "libguile/__scm.h" #include "libguile/threads.h" +#ifdef __cplusplus +extern "C" { +#endif @@ -96,6 +99,10 @@ SCM_INTERNAL void scm_init_posix (void); SCM_INTERNAL scm_i_pthread_mutex_t scm_i_locale_mutex; +#ifdef __cplusplus +} +#endif + #endif /* SCM_POSIX_H */ /* diff --git a/libguile/print.h b/libguile/print.h index 80a9922..a8608d9 100644 --- a/libguile/print.h +++ b/libguile/print.h @@ -28,6 +28,11 @@ #include "libguile/chars.h" #include "libguile/options.h" + +#ifdef __cplusplus +extern "C" { +#endif + /* State information passed around during printing. @@ -103,6 +108,10 @@ SCM_INTERNAL void scm_init_print (void); SCM_API SCM scm_current_pstate (void); #endif +#ifdef __cplusplus +} +#endif + #endif /* SCM_PRINT_H */ /* diff --git a/libguile/private-options.h b/libguile/private-options.h index a3a0c2b..af1fa6c 100644 --- a/libguile/private-options.h +++ b/libguile/private-options.h @@ -25,6 +25,10 @@ #ifndef PRIVATE_OPTIONS #define PRIVATE_OPTIONS +#ifdef __cplusplus +extern "C" { +#endif + /* debugging. */ @@ -73,4 +77,8 @@ SCM_INTERNAL scm_t_option scm_read_opts[]; #define SCM_N_READ_OPTIONS 9 +#ifdef __cplusplus +} +#endif + #endif /* PRIVATE_OPTIONS */ diff --git a/libguile/procprop.h b/libguile/procprop.h index 41d0753..218d10e 100644 --- a/libguile/procprop.h +++ b/libguile/procprop.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_sym_name; @@ -46,6 +50,10 @@ SCM_API SCM scm_procedure_name (SCM proc); SCM_API SCM scm_procedure_documentation (SCM proc); SCM_INTERNAL void scm_init_procprop (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_PROCPROP_H */ /* diff --git a/libguile/procs.h b/libguile/procs.h index c4c78f2..64a42e0 100644 --- a/libguile/procs.h +++ b/libguile/procs.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_procedure_p (SCM obj); @@ -36,6 +40,10 @@ SCM_API SCM scm_procedure (SCM proc); SCM_API SCM scm_setter (SCM proc); SCM_INTERNAL void scm_init_procs (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_PROCS_H */ /* diff --git a/libguile/programs.h b/libguile/programs.h index d170c1b..09b102e 100644 --- a/libguile/programs.h +++ b/libguile/programs.h @@ -21,6 +21,10 @@ #include +#ifdef __cplusplus +extern "C" { +#endif + /* * Programs */ @@ -79,6 +83,10 @@ SCM_INTERNAL void scm_i_program_print (SCM program, SCM port, SCM_INTERNAL void scm_bootstrap_programs (void); SCM_INTERNAL void scm_init_programs (void); +#ifdef __cplusplus +} +#endif + #endif /* _SCM_PROGRAMS_H_ */ /* diff --git a/libguile/promises.h b/libguile/promises.h index 66349b5..823f638 100644 --- a/libguile/promises.h +++ b/libguile/promises.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* {Promises} @@ -51,6 +55,9 @@ SCM_API SCM scm_promise_p (SCM x); SCM_INTERNAL void scm_init_promises (void); +#ifdef __cplusplus +} +#endif #endif /* SCM_PROMISES_H */ diff --git a/libguile/pthread-threads.h b/libguile/pthread-threads.h index b5fae4e..0b41f9d 100644 --- a/libguile/pthread-threads.h +++ b/libguile/pthread-threads.h @@ -29,6 +29,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + /* Threads */ #define scm_i_pthread_t pthread_t @@ -97,6 +101,10 @@ extern pthread_mutexattr_t scm_i_pthread_mutexattr_recursive[1]; #define scm_i_scm_pthread_cond_wait scm_pthread_cond_wait #define scm_i_scm_pthread_cond_timedwait scm_pthread_cond_timedwait +#ifdef __cplusplus +} +#endif + #endif /* SCM_PTHREADS_THREADS_H */ /* diff --git a/libguile/r6rs-ports.h b/libguile/r6rs-ports.h index 3dde4d5..2667f30 100644 --- a/libguile/r6rs-ports.h +++ b/libguile/r6rs-ports.h @@ -23,6 +23,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* R6RS I/O Ports. */ SCM_API SCM scm_eof_object (void); @@ -44,4 +48,8 @@ SCM_API SCM scm_get_string_n_x (SCM, SCM, SCM, SCM); SCM_API void scm_init_r6rs_ports (void); SCM_INTERNAL void scm_register_r6rs_ports (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_R6RS_PORTS_H */ diff --git a/libguile/random.h b/libguile/random.h index 109969e..f70b72e 100644 --- a/libguile/random.h +++ b/libguile/random.h @@ -25,6 +25,11 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + + /* * A plugin interface for RNGs @@ -97,6 +102,10 @@ SCM_INTERNAL void scm_init_random (void); SCM_INTERNAL void scm_i_random_bytes_from_platform (unsigned char *buf, size_t len); +#ifdef __cplusplus +} +#endif + #endif /* SCM_RANDOM_H */ /* diff --git a/libguile/rdelim.h b/libguile/rdelim.h index 2e401e4..fd221ca 100644 --- a/libguile/rdelim.h +++ b/libguile/rdelim.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_read_delimited_x (SCM delims, SCM buf, SCM gobble, SCM port, SCM offset, SCM length); SCM_API SCM scm_read_line (SCM port); @@ -33,6 +37,10 @@ SCM_API SCM scm_init_rdelim_builtins (void); SCM_INTERNAL void scm_init_rdelim (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_RDELIM_H */ /* diff --git a/libguile/read.h b/libguile/read.h index 3c47afd..fb3d1c9 100644 --- a/libguile/read.h +++ b/libguile/read.h @@ -26,6 +26,11 @@ #include "libguile/__scm.h" #include "libguile/options.h" + +#ifdef __cplusplus +extern "C" { +#endif + /* SCM_LINE_INCREMENTORS are the characters which cause the line count to @@ -64,6 +69,10 @@ SCM_INTERNAL void scm_i_input_error (const char *func, SCM port, SCM_INTERNAL void scm_init_read (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_READ_H */ /* diff --git a/libguile/regex-posix.h b/libguile/regex-posix.h index 8060fe3..a669194 100644 --- a/libguile/regex-posix.h +++ b/libguile/regex-posix.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API scm_t_bits scm_tc16_regex; #define SCM_RGX(X) ((regex_t *) SCM_SMOB_DATA (X)) #define SCM_RGXP(X) (SCM_SMOB_PREDICATE (scm_tc16_regex, (X))) @@ -34,6 +38,10 @@ SCM_API SCM scm_regexp_p (SCM x); SCM_API SCM scm_regexp_exec (SCM rx, SCM str, SCM start, SCM flags); SCM_INTERNAL void scm_init_regex_posix (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_REGEX_POSIX_H */ /* diff --git a/libguile/root.h b/libguile/root.h index 68ab5c7..482f3bc 100644 --- a/libguile/root.h +++ b/libguile/root.h @@ -27,6 +27,10 @@ #include "libguile/debug.h" #include "libguile/throw.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_internal_cwdr (scm_t_catch_body body, @@ -39,6 +43,10 @@ SCM_API SCM scm_dynamic_root (void); SCM_API SCM scm_apply_with_dynamic_root (SCM proc, SCM a1, SCM args, SCM handler); SCM_INTERNAL void scm_init_root (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_ROOT_H */ /* diff --git a/libguile/rw.h b/libguile/rw.h index d54f1b3..6aba35b 100644 --- a/libguile/rw.h +++ b/libguile/rw.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_read_string_x_partial (SCM str, SCM port_or_fdes, SCM start, SCM end); SCM_API SCM scm_write_string_partial (SCM str, SCM port_or_fdes, SCM start, @@ -33,6 +37,10 @@ SCM_API SCM scm_write_string_partial (SCM str, SCM port_or_fdes, SCM start, SCM_INTERNAL SCM scm_init_rw_builtins (void); SCM_INTERNAL void scm_init_rw (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_RW_H */ /* diff --git a/libguile/scmsigs.h b/libguile/scmsigs.h index fce3728..890e7eb 100644 --- a/libguile/scmsigs.h +++ b/libguile/scmsigs.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" #include "libguile/threads.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_sigaction (SCM signum, SCM handler, SCM flags); @@ -48,6 +52,10 @@ SCM_INTERNAL void scm_i_ensure_signal_delivery_thread (void); SCM_INTERNAL scm_i_thread *scm_i_signal_delivery_thread; +#ifdef __cplusplus +} +#endif + #endif /* SCM_SCMSIGS_H */ /* diff --git a/libguile/script.h b/libguile/script.h index cf0162a..4ae6ddb 100644 --- a/libguile/script.h +++ b/libguile/script.h @@ -25,6 +25,11 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + + SCM_API char *scm_find_executable (const char *name); SCM_API char *scm_find_impl_file (char *exec_path, @@ -40,6 +45,10 @@ SCM_API char *scm_usage_name; SCM_INTERNAL void scm_i_set_boot_program_arguments (int argc, char *argv[]); SCM_INTERNAL void scm_init_script (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_SCRIPT_H */ /* diff --git a/libguile/simpos.h b/libguile/simpos.h index 1e20768..0bfb0cc 100644 --- a/libguile/simpos.h +++ b/libguile/simpos.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_system (SCM cmd); @@ -35,6 +39,10 @@ SCM_API SCM scm_primitive__exit (SCM status); SCM_INTERNAL int scm_getenv_int (const char *var, int def); SCM_INTERNAL void scm_init_simpos (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_SIMPOS_H */ /* diff --git a/libguile/smob.h b/libguile/smob.h index 561a6d1..16ff9c6 100644 --- a/libguile/smob.h +++ b/libguile/smob.h @@ -27,6 +27,9 @@ #include "libguile/__scm.h" #include "libguile/print.h" +#ifdef __cplusplus +extern "C" { +#endif /* This is the internal representation of a smob type */ @@ -200,6 +203,10 @@ SCM_API SCM scm_make_smob (scm_t_bits tc); SCM_API void scm_smob_prehistory (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_SMOB_H */ /* diff --git a/libguile/snarf.h b/libguile/snarf.h index d0b6833..8f4d398 100644 --- a/libguile/snarf.h +++ b/libguile/snarf.h @@ -24,6 +24,10 @@ +#ifdef __cplusplus +extern "C" { +#endif + /* Macros for snarfing initialization actions from C source. */ /* Casting to a function that can take any number of arguments. */ @@ -335,6 +339,10 @@ SCM_SNARF_INIT(scm_set_smob_apply((tag), (c_name), (req), (opt), (rest));) #define SCM_ASSERT(_cond, _arg, _pos, _subr) ^^ argpos _arg _pos __LINE__ ^^ #endif /* SCM_MAGIC_SNARF_DOCS */ +#ifdef __cplusplus +} +#endif + #endif /* SCM_SNARF_H */ /* diff --git a/libguile/socket.h b/libguile/socket.h index a211867..415954d 100644 --- a/libguile/socket.h +++ b/libguile/socket.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_inet_aton (SCM address); @@ -61,6 +65,10 @@ SCM_API struct sockaddr *scm_c_make_socket_address (SCM family, SCM address, size_t *address_size); SCM_API SCM scm_make_socket_address (SCM family, SCM address, SCM args); +#ifdef __cplusplus +} +#endif + #endif /* SCM_SOCKET_H */ /* diff --git a/libguile/sort.h b/libguile/sort.h index 3ae86c2..0263ce6 100644 --- a/libguile/sort.h +++ b/libguile/sort.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_restricted_vector_sort_x (SCM vec, @@ -42,6 +46,10 @@ SCM_API SCM scm_sort_list (SCM ls, SCM less); SCM_API SCM scm_sort_list_x (SCM ls, SCM less); SCM_INTERNAL void scm_init_sort (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_SORT_H */ /* diff --git a/libguile/srcprop.h b/libguile/srcprop.h index 0252e54..b748c6f 100644 --- a/libguile/srcprop.h +++ b/libguile/srcprop.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* {Source properties} @@ -54,6 +58,9 @@ SCM_INTERNAL void scm_i_set_source_properties_x (SCM obj, long line, int col, SCM_API SCM scm_cons_source (SCM xorig, SCM x, SCM y); SCM_INTERNAL void scm_init_srcprop (void); +#ifdef __cplusplus +} +#endif #endif /* SCM_SRCPROP_H */ diff --git a/libguile/srfi-1.h b/libguile/srfi-1.h index 47607bc..ba5df77 100644 --- a/libguile/srfi-1.h +++ b/libguile/srfi-1.h @@ -24,6 +24,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_INTERNAL SCM scm_srfi1_append_reverse (SCM revhead, SCM tail); SCM_INTERNAL SCM scm_srfi1_append_reverse_x (SCM revhead, SCM tail); SCM_INTERNAL SCM scm_srfi1_concatenate (SCM lstlst); @@ -47,4 +51,8 @@ SCM_INTERNAL SCM scm_srfi1_remove_x (SCM pred, SCM list); SCM_INTERNAL void scm_register_srfi_1 (void); SCM_INTERNAL void scm_init_srfi_1 (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_SRFI_1_H */ diff --git a/libguile/srfi-13.h b/libguile/srfi-13.h index 325e222..bbe1fe0 100644 --- a/libguile/srfi-13.h +++ b/libguile/srfi-13.h @@ -24,6 +24,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_string_null_p (SCM s); SCM_API SCM scm_string_any (SCM pred, SCM s, SCM start, SCM end); SCM_API SCM scm_string_every (SCM pred, SCM s, SCM start, SCM end); @@ -117,4 +121,8 @@ SCM_API SCM scm_string_delete (SCM char_pred, SCM s, SCM start, SCM end); SCM_INTERNAL void scm_init_srfi_13 (void); SCM_INTERNAL void scm_init_srfi_13_14 (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_SRFI_13_H */ diff --git a/libguile/srfi-14.h b/libguile/srfi-14.h index dc9718d..b508f68 100644 --- a/libguile/srfi-14.h +++ b/libguile/srfi-14.h @@ -24,6 +24,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef struct { scm_t_wchar lo; @@ -122,4 +126,8 @@ SCM_API SCM scm_char_set_full; SCM_INTERNAL void scm_init_srfi_14 (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_SRFI_14_H */ diff --git a/libguile/srfi-4.h b/libguile/srfi-4.h index f56c3f3..b662dee 100644 --- a/libguile/srfi-4.h +++ b/libguile/srfi-4.h @@ -23,6 +23,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_make_srfi_4_vector (SCM type, SCM len, SCM fill); @@ -276,4 +280,8 @@ SCM_API double *scm_c64vector_writable_elements (SCM uvec, SCM_INTERNAL void scm_init_srfi_4 (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_SRFI_4_H */ diff --git a/libguile/srfi-60.h b/libguile/srfi-60.h index 013820f..c842c27 100644 --- a/libguile/srfi-60.h +++ b/libguile/srfi-60.h @@ -24,6 +24,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_INTERNAL SCM scm_srfi60_log2_binary_factors (SCM n); SCM_INTERNAL SCM scm_srfi60_copy_bit (SCM index, SCM n, SCM bit); SCM_INTERNAL SCM scm_srfi60_rotate_bit_field (SCM n, SCM count, SCM start, SCM end); @@ -34,4 +38,8 @@ SCM_INTERNAL SCM scm_srfi60_list_to_integer (SCM lst); SCM_INTERNAL void scm_register_srfi_60 (void); SCM_INTERNAL void scm_init_srfi_60 (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_SRFI_60_H */ diff --git a/libguile/stackchk.h b/libguile/stackchk.h index 23dbdba..aeacf53 100644 --- a/libguile/stackchk.h +++ b/libguile/stackchk.h @@ -28,6 +28,10 @@ #include "libguile/continuations.h" #include "libguile/debug.h" +#ifdef __cplusplus +extern "C" { +#endif + /* With debug options we have the possibility to disable stack checking. @@ -62,6 +66,10 @@ SCM_API void scm_stack_report (void); SCM_API SCM scm_sys_get_stack_size (void); SCM_INTERNAL void scm_init_stackchk (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_STACKCHK_H */ /* diff --git a/libguile/stacks.h b/libguile/stacks.h index ba97e08..9d0d571 100644 --- a/libguile/stacks.h +++ b/libguile/stacks.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" #include "libguile/frames.h" +#ifdef __cplusplus +extern "C" { +#endif + /* {Frames and stacks} */ @@ -57,6 +61,10 @@ SCM_API SCM scm_stack_length (SCM stack); SCM_INTERNAL void scm_init_stacks (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_STACKS_H */ /* diff --git a/libguile/stime.h b/libguile/stime.h index e41f797..848affb 100644 --- a/libguile/stime.h +++ b/libguile/stime.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API long scm_c_time_units_per_second; @@ -45,6 +49,10 @@ SCM_API SCM scm_strftime (SCM format, SCM stime); SCM_API SCM scm_strptime (SCM format, SCM string); SCM_INTERNAL void scm_init_stime (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_STIME_H */ /* diff --git a/libguile/strings.h b/libguile/strings.h index 130c436..fc480db 100644 --- a/libguile/strings.h +++ b/libguile/strings.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* String representation. @@ -244,6 +248,10 @@ SCM_API SCM scm_sys_stringbuf_hist (void); SCM_INTERNAL void scm_init_strings (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_STRINGS_H */ /* diff --git a/libguile/strorder.h b/libguile/strorder.h index 2c004e4..113ef5d 100644 --- a/libguile/strorder.h +++ b/libguile/strorder.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_string_equal_p (SCM s1, SCM s2); @@ -39,6 +43,10 @@ SCM_API SCM scm_string_ci_gr_p (SCM s1, SCM s2); SCM_API SCM scm_string_ci_geq_p (SCM s1, SCM s2); SCM_INTERNAL void scm_init_strorder (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_STRORDER_H */ /* diff --git a/libguile/strports.h b/libguile/strports.h index b4bafdf..a00850c 100644 --- a/libguile/strports.h +++ b/libguile/strports.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + @@ -57,6 +61,10 @@ SCM_API SCM scm_eval_string (SCM string); SCM_API SCM scm_eval_string_in_module (SCM string, SCM module); SCM_INTERNAL void scm_init_strports (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_STRPORTS_H */ /* diff --git a/libguile/struct.h b/libguile/struct.h index e8db316..45b95b7 100644 --- a/libguile/struct.h +++ b/libguile/struct.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" #include "libguile/print.h" +#ifdef __cplusplus +extern "C" { +#endif + /* The relationship between a struct and its vtable is a bit complicated, @@ -195,6 +199,10 @@ SCM_INTERNAL SCM scm_i_alloc_struct (scm_t_bits *vtable_data, int n_words); SCM_INTERNAL void scm_i_struct_inherit_vtable_magic (SCM vtable, SCM obj); SCM_INTERNAL void scm_init_struct (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_STRUCT_H */ /* diff --git a/libguile/symbols.h b/libguile/symbols.h index f345e70..05e51ef 100644 --- a/libguile/symbols.h +++ b/libguile/symbols.h @@ -24,6 +24,11 @@ #include "libguile/__scm.h" + +#ifdef __cplusplus +extern "C" { +#endif + #define scm_is_symbol(x) (SCM_HAS_TYP7 (x, scm_tc7_symbol)) @@ -95,6 +100,10 @@ SCM_INTERNAL unsigned long scm_i_hash_symbol (SCM obj, unsigned long n, SCM_INTERNAL void scm_symbols_prehistory (void); SCM_INTERNAL void scm_init_symbols (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_SYMBOLS_H */ /* diff --git a/libguile/tags.h b/libguile/tags.h index a5082f8..65acd90 100644 --- a/libguile/tags.h +++ b/libguile/tags.h @@ -31,6 +31,10 @@ /* picks up scmconfig.h too */ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* In the beginning was the Word: @@ -664,6 +668,10 @@ enum scm_tc8_tags +#ifdef __cplusplus +} +#endif + #endif /* SCM_TAGS_H */ /* diff --git a/libguile/threads.h b/libguile/threads.h index 6b85baf..cb61bbc 100644 --- a/libguile/threads.h +++ b/libguile/threads.h @@ -40,6 +40,10 @@ #include "libguile/null-threads.h" #endif +#ifdef __cplusplus +extern "C" { +#endif + /* smob tags for the thread datatypes */ @@ -230,6 +234,10 @@ SCM_API unsigned long scm_std_usleep (unsigned long); SCM_API SCM scm_total_processor_count (void); SCM_API SCM scm_current_processor_count (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_THREADS_H */ /* diff --git a/libguile/throw.h b/libguile/throw.h index e2da731..5b9e932 100644 --- a/libguile/throw.h +++ b/libguile/throw.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + typedef SCM (*scm_t_catch_body) (void *data); @@ -92,6 +96,10 @@ SCM_API void scm_report_out_of_memory (void); SCM_API SCM scm_throw (SCM key, SCM args); SCM_INTERNAL void scm_init_throw (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_THROW_H */ /* diff --git a/libguile/trees.h b/libguile/trees.h index 70d32ad..b86ca6c 100644 --- a/libguile/trees.h +++ b/libguile/trees.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_copy_tree (SCM obj); @@ -36,6 +40,10 @@ SCM_API SCM scm_copy_tree (SCM obj); SCM_INTERNAL void scm_init_trees (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_TREES_H */ /* diff --git a/libguile/unicode.h b/libguile/unicode.h index 88261c1..2c67c2e 100644 --- a/libguile/unicode.h +++ b/libguile/unicode.h @@ -24,10 +24,18 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_INTERNAL SCM scm_formal_name_to_char (SCM); SCM_INTERNAL SCM scm_char_to_formal_name (SCM); SCM_INTERNAL void scm_init_unicode (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_UNICODE_H */ /* diff --git a/libguile/uniform.h b/libguile/uniform.h index ad8428f..1d3f090 100644 --- a/libguile/uniform.h +++ b/libguile/uniform.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* @@ -46,6 +50,9 @@ SCM_API void *scm_array_handle_uniform_writable_elements (scm_t_array_handle *h) SCM_INTERNAL void scm_init_uniform (void); +#ifdef __cplusplus +} +#endif #endif /* SCM_UNIFORM_H */ diff --git a/libguile/validate.h b/libguile/validate.h index 516a6f7..3a350d0 100644 --- a/libguile/validate.h +++ b/libguile/validate.h @@ -26,6 +26,10 @@ +#ifdef __cplusplus +extern "C" { +#endif + #define SCM_SYSERROR do { scm_syserror (FUNC_NAME); } while (0) #define SCM_MEMORY_ERROR do { scm_memory_error (FUNC_NAME); } while (0) @@ -387,6 +391,10 @@ } while (0) +#ifdef __cplusplus +} +#endif + #endif /* SCM_VALIDATE_H */ /* diff --git a/libguile/values.h b/libguile/values.h index 3dbd0b7..22dc483 100644 --- a/libguile/values.h +++ b/libguile/values.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_values_vtable; #define SCM_VALUESP(x) (SCM_STRUCTP (x)\ @@ -38,6 +42,10 @@ SCM_API size_t scm_c_nvalues (SCM obj); SCM_API SCM scm_c_value_ref (SCM obj, size_t idx); SCM_INTERNAL void scm_init_values (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_VALUES_H */ /* diff --git a/libguile/variable.h b/libguile/variable.h index c024c85..5a94478 100644 --- a/libguile/variable.h +++ b/libguile/variable.h @@ -26,6 +26,10 @@ #include "libguile/__scm.h" #include "libguile/smob.h" +#ifdef __cplusplus +extern "C" { +#endif + /* Variables @@ -49,6 +53,10 @@ SCM_INTERNAL void scm_i_variable_print (SCM var, SCM port, scm_print_state *psta SCM_INTERNAL void scm_init_variable (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_VARIABLE_H */ /* diff --git a/libguile/vectors.h b/libguile/vectors.h index 995f64f..205c907 100644 --- a/libguile/vectors.h +++ b/libguile/vectors.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_vector_p (SCM x); @@ -73,6 +77,10 @@ SCM_INTERNAL SCM scm_i_vector_equal_p (SCM x, SCM y); SCM_INTERNAL void scm_init_vectors (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_VECTORS_H */ /* diff --git a/libguile/vm-builtins.h b/libguile/vm-builtins.h index 5e31a04..3807362 100644 --- a/libguile/vm-builtins.h +++ b/libguile/vm-builtins.h @@ -19,6 +19,10 @@ #ifndef _SCM_VM_BUILTINS_H_ #define _SCM_VM_BUILTINS_H_ +#ifdef __cplusplus +extern "C" { +#endif + #ifdef BUILDING_LIBGUILE #define FOR_EACH_VM_BUILTIN(M) \ @@ -44,4 +48,8 @@ SCM_INTERNAL void scm_init_vm_builtin_properties (void); #endif /* BUILDING_LIBGUILE */ +#ifdef __cplusplus +} +#endif + #endif /* _SCM_VM_BUILTINS_H_ */ diff --git a/libguile/vm-expand.h b/libguile/vm-expand.h index 787223d..3bc6176 100644 --- a/libguile/vm-expand.h +++ b/libguile/vm-expand.h @@ -16,6 +16,10 @@ * 02110-1301 USA */ +#ifdef __cplusplus +extern "C" { +#endif + #ifndef VM_LABEL #define VM_LABEL(tag) l_##tag #define VM_OPCODE(tag) scm_op_##tag @@ -72,6 +76,10 @@ #endif /* VM_INSTRUCTION_TO_LABEL */ #endif /* VM_INSTRUCTION_TO_TABLE */ +#ifdef __cplusplus +} +#endif + /* Local Variables: c-file-style: "gnu" diff --git a/libguile/vm.h b/libguile/vm.h index 8f88d0c..0eaff4a 100644 --- a/libguile/vm.h +++ b/libguile/vm.h @@ -22,6 +22,10 @@ #include #include +#ifdef __cplusplus +extern "C" { +#endif + enum { SCM_VM_APPLY_HOOK, SCM_VM_PUSH_CONTINUATION_HOOK, @@ -107,6 +111,10 @@ SCM_INTERNAL void scm_i_vm_cont_print (SCM x, SCM port, SCM_INTERNAL void scm_bootstrap_vm (void); SCM_INTERNAL void scm_init_vm (void); +#ifdef __cplusplus +} +#endif + #endif /* _SCM_VM_H_ */ /* diff --git a/libguile/vports.h b/libguile/vports.h index ae64dd4..b333408 100644 --- a/libguile/vports.h +++ b/libguile/vports.h @@ -25,11 +25,19 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + SCM_API SCM scm_make_soft_port (SCM pv, SCM modes); SCM_INTERNAL void scm_init_vports (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_VPORTS_H */ /* diff --git a/libguile/weak-set.h b/libguile/weak-set.h index 86781c7..c220949 100644 --- a/libguile/weak-set.h +++ b/libguile/weak-set.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* The weak set API is currently only used internally. We could make it @@ -60,6 +64,10 @@ SCM_INTERNAL SCM scm_weak_set_map_to_list (SCM proc, SCM set); SCM_INTERNAL void scm_i_weak_set_print (SCM exp, SCM port, scm_print_state *pstate); SCM_INTERNAL void scm_init_weak_set (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_WEAK_SET_H */ /* diff --git a/libguile/weak-table.h b/libguile/weak-table.h index f516c26..7801e18 100644 --- a/libguile/weak-table.h +++ b/libguile/weak-table.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* The weak table API is currently only used internally. We could make it @@ -85,6 +89,10 @@ SCM_INTERNAL void scm_i_weak_table_print (SCM exp, SCM port, scm_print_state *ps SCM_INTERNAL void scm_weak_table_prehistory (void); SCM_INTERNAL void scm_init_weak_table (void); +#ifdef __cplusplus +} +#endif + #endif /* SCM_WEAK_TABLE_H */ /* diff --git a/libguile/weak-vector.h b/libguile/weak-vector.h index 11395a5..3b7d94c 100644 --- a/libguile/weak-vector.h +++ b/libguile/weak-vector.h @@ -25,6 +25,10 @@ #include "libguile/__scm.h" +#ifdef __cplusplus +extern "C" { +#endif + /* Weak vectors. */ @@ -45,6 +49,9 @@ SCM_API void scm_c_weak_vector_set_x (SCM v, size_t k, SCM x); SCM_INTERNAL void scm_init_weak_vectors (void); +#ifdef __cplusplus +} +#endif #endif /* SCM_WEAK_VECTOR_H */ diff --git a/libguile/win32-uname.h b/libguile/win32-uname.h index 4b74981..53790d2 100644 --- a/libguile/win32-uname.h +++ b/libguile/win32-uname.h @@ -21,6 +21,10 @@ * 02110-1301 USA */ +#ifdef __cplusplus +extern "C" { +#endif + #define _UTSNAME_LENGTH 65 #define _UTSNAME_NODENAME_LENGTH _UTSNAME_LENGTH #define _UTSNAME_DOMAIN_LENGTH _UTSNAME_LENGTH @@ -49,4 +53,8 @@ struct utsname int uname (struct utsname * uts); +#ifdef __cplusplus +} +#endif + #endif /* SCM_WIN32_UNAME_H */ -- 2.3.6