# Bazaar revision bundle v0.8
#
# message:
# merge from rotty
# committer: Andy Wingo
# date: Thu 2007-01-04 22:43:09.391000032 +0100
=== modified file ChangeLog
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,33 @@
+2007-01-04 Andy Wingo
+
+ Add a flag to GWFunctionInfo to control whether or not we leave
+ guile/the language when calling functions.
+
+ * guile/g-wrap/guile-runtime.c (do_ffi_call): Renamed from
+ ffi_call_without_guile.
+ (dynproc_smob_apply): Only leave guile if the LEAVE_RUNTIME
+ function flag is set.
+
+ * guile/examples/Makefile.am (CLEANFILES): Fix the clean target.
+
+ * guile/g-wrap/guile.scm (initializations-cg):
+ * g-wrap/rti.scm (add-function-rti-cg): Write the flags arg into
+ the generated C.
+
+ * g-wrap/core-runtime.h (GWFunctionFlag): New data type.
+ (GW_FUNCTION_FLAG_LEAVE_RUNTIME, GW_FUNCTION_FLAGS_USER_SHIFT):
+ A flag supported by G-Wrap, and some padding so that users can
+ have flags too.
+ (struct _GWFunctionInfo): Add flags member.
+
+ * g-wrap/core-runtime.c (gw_wrapset_add_function): Add flags arg.
+
+ * g-wrap.scm (): Add flags slot.
+ (flags) New exported public accessor of flags. Flags is a string
+ that should evaluate to an unsigned int in C, and normally should
+ use the constants in core-runtime.h.
+ (wrap-function!): Accept a flags kwarg, defaults to "0".
+
2007-01-02 Andreas Rottmann
* configure.ac, Makefile.am (DIST_SUBDIRS): Always include libffi
=== modified file g-wrap.scm // last-changed:address@hidden
... 94607f764dd63
--- g-wrap.scm
+++ g-wrap.scm
@@ -57,6 +57,7 @@
input-arguments output-arguments optional-arguments
return-type return-typespec
generic-name
+ flags
needs-result-var?
@@ -406,7 +407,8 @@
(arguments #:getter arguments #:init-keyword #:arguments)
(generic-name #:getter generic-name
#:init-keyword #:generic-name
- #:init-value #f))
+ #:init-value #f)
+ (flags #:getter flags #:init-keyword #:flags))
(define-method (write (self ) port)
(display "#) . args)
;;(format #t "wrapping ~S\n" args)
(let-keywords
- args #f (name returns c-name arguments description generic-name)
+ args #f (name returns c-name arguments description generic-name flags)
(guard
(c
(#t (raise-stacked c "while processing function `~S'" name)
@@ -742,7 +744,8 @@
#:c-name c-name
#:arguments (resolve-arguments wrapset arguments)
#:description description
- #:generic-name generic-name)))))
+ #:generic-name generic-name
+ #:flags (or flags "0"))))))
(define-method (wrap-constant! (wrapset ) . args)
(let-keywords
=== modified file g-wrap/core-runtime.c // last-changed:address@hidden
... 4214109-1f994607f764dd63
--- g-wrap/core-runtime.c
+++ g-wrap/core-runtime.c
@@ -240,7 +240,8 @@
const char **arg_types,
GWTypeSpec *arg_typespecs,
const char *proc_name,
- const char *generic_name)
+ const char *generic_name,
+ GWFunctionFlags flags)
{
GWFunctionInfo *fi;
ffi_type **arg_ffi = NULL;
@@ -264,6 +265,7 @@
fi->generic_name = generic_name;
fi->arg_types = NULL;
fi->ret_type = NULL;
+ fi->flags = flags;
/* FIXME: FFI should be able to handle optional args */
assert (!arg_types || !n_optional_args);
=== modified file g-wrap/core-runtime.h // last-changed:address@hidden
... 4214109-1f994607f764dd63
--- g-wrap/core-runtime.h
+++ g-wrap/core-runtime.h
@@ -105,6 +105,15 @@
#define GW_TYPESPEC_USER_SHIFT 8
+typedef unsigned int GWFunctionFlags;
+
+enum
+{
+ GW_FUNCTION_FLAG_LEAVE_RUNTIME = 0x01
+};
+
+#define GW_FUNCTION_FLAGS_USER_SHIFT 16
+
typedef void (*GWUnWrapValueFunc)(void *instance,
GWLangArena arena,
const GWTypeSpec *ts,
@@ -151,6 +160,8 @@
ffi_cif cif;
unsigned int data_area_size; /* Size needed for the dynamic-call info */
+
+ GWFunctionFlags flags;
};
struct _GWWrapSet
@@ -196,7 +207,8 @@
const char **arg_types,
GWTypeSpec *arg_typespecs,
const char *proc_name,
- const char *generic_name);
+ const char *generic_name,
+ GWFunctionFlags flags);
void gw_wrapset_register (GWWrapSet *ws);
=== modified file g-wrap/rti.scm // last-changed:address@hidden
... -1f994607f764dd63
--- g-wrap/rti.scm
+++ g-wrap/rti.scm
@@ -244,6 +244,7 @@
(if (generic-name function)
(list "\"" (symbol->string (generic-name function)) "\"")
"NULL")
+ ", " (flags function)
");\n"
"}\n")))
=== modified file guile/examples/Makefile.am // last-changed:address@hidden
... 070104214109-1f994607f764dd63
--- guile/examples/Makefile.am
+++ guile/examples/Makefile.am
@@ -13,6 +13,8 @@
EXTRA_DIST= README update-format.scm
+CLEANFILES = $(wildcard gw-*)
+
# Wrapset generation
gw-%.c gw-%.scm: %-spec.scm
LD_LIBRARY_PATH=${LOCALPWD}/..:${LD_LIBRARY_PATH} \
=== modified file guile/g-wrap/guile-runtime.c // last-changed:address@hidden
... 20070104214109-1f994607f764dd63
--- guile/g-wrap/guile-runtime.c
+++ guile/g-wrap/guile-runtime.c
@@ -578,7 +578,7 @@
typedef void* (*guile_without_func)(void*);
static void*
-ffi_call_without_guile (const ffi_guile_call_info *info)
+do_ffi_call (const ffi_guile_call_info *info)
{
ffi_call (&info->fi->cif, info->fi->proc, info->rvalue, info->values);
return NULL;
@@ -632,7 +632,11 @@
}
}
- scm_without_guile ((guile_without_func)ffi_call_without_guile, &call_info);
+ if (fi->flags & GW_FUNCTION_FLAG_LEAVE_RUNTIME)
+ scm_without_guile ((guile_without_func)do_ffi_call,
+ &call_info);
+ else
+ do_ffi_call (&call_info);
rvalue = GW_RVALUE_PTR (rvalue, fi->ret_type);
fi->ret_type->wrap_value (&result, ARENA, &fi->ret_typespec, rvalue, &error);
=== modified file guile/g-wrap/guile.scm // last-changed:address@hidden
... 04214109-1f994607f764dd63
--- guile/g-wrap/guile.scm
+++ guile/g-wrap/guile.scm
@@ -511,7 +511,8 @@
(map default-value visible-args))))
(n-req-args (- n-visible-args n-optional-visible-args))
(fn-c-wrapper (slot-ref function 'wrapper-name))
- (fn-c-string (slot-ref function 'wrapper-namestr)))
+ (fn-c-string (slot-ref function 'wrapper-namestr))
+ (flags-c-string (flags function)))
(list
" gw_wrapset_add_function(" (c-info-sym wrapset) ", "
fn-c-wrapper ", " n-req-args ", " n-optional-visible-args ", "
@@ -519,6 +520,7 @@
(if (generic-name function)
(list "\"" (symbol->string (generic-name function)) "\"")
"NULL")
+ ", " flags-c-string
");\n")))
# revision id: address@hidden
# sha1: 28f7a6cf1cd19940af82e945d14f60eb7e269bf0
# inventory sha1: 53fc8d089558dceaac0b71f56451cce229fdb4cf
# parent ids:
# address@hidden
# address@hidden
# base id: address@hidden
# properties:
# branch-nick: mainline
# message:
# 2007-01-04 Andy Wingo
#
# Add a flag to GWFunctionInfo to control whether or not we leave
# guile/the language when calling functions.
#
# * guile/g-wrap/guile-runtime.c (do_ffi_call): Renamed from
# ffi_call_without_guile.
# (dynproc_smob_apply): Only leave guile if the LEAVE_RUNTIME
# function flag is set.
#
# * guile/examples/Makefile.am (CLEANFILES): Fix the clean target.
#
# * guile/g-wrap/guile.scm (initializations-cg):
# * g-wrap/rti.scm (add-function-rti-cg): Write the flags arg into
# the generated C.
#
# * g-wrap/core-runtime.h (GWFunctionFlag): New data type.
# (GW_FUNCTION_FLAG_LEAVE_RUNTIME, GW_FUNCTION_FLAGS_USER_SHIFT):
# A flag supported by G-Wrap, and some padding so that users can
# have flags too.
# (struct _GWFunctionInfo): Add flags member.
#
# * g-wrap/core-runtime.c (gw_wrapset_add_function): Add flags arg.
#
# * g-wrap.scm (): Add flags slot.
# (flags) New exported public accessor of flags. Flags is a string
# that should evaluate to an unsigned int in C, and normally should
# use the constants in core-runtime.h.
# (wrap-function!): Accept a flags kwarg, defaults to "0".
#
# committer: Andy Wingo
# date: Thu 2007-01-04 22:41:09.979000092 +0100
=== modified file ChangeLog // encoding:base64
LS0tIENoYW5nZUxvZworKysgQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMDctMDEtMDQg
IEFuZHkgV2luZ28gIDx3aW5nb0Bwb2JveC5jb20+CisKKwlBZGQgYSBmbGFnIHRvIEdXRnVuY3Rp
b25JbmZvIHRvIGNvbnRyb2wgd2hldGhlciBvciBub3Qgd2UgbGVhdmUKKwlndWlsZS90aGUgbGFu
Z3VhZ2Ugd2hlbiBjYWxsaW5nIGZ1bmN0aW9ucy4KKwkKKwkqIGd1aWxlL2ctd3JhcC9ndWlsZS1y
dW50aW1lLmMgKGRvX2ZmaV9jYWxsKTogUmVuYW1lZCBmcm9tCisJZmZpX2NhbGxfd2l0aG91dF9n
dWlsZS4gCisJKGR5bnByb2Nfc21vYl9hcHBseSk6IE9ubHkgbGVhdmUgZ3VpbGUgaWYgdGhlIExF
QVZFX1JVTlRJTUUKKwlmdW5jdGlvbiBmbGFnIGlzIHNldC4KKworCSogZ3VpbGUvZXhhbXBsZXMv
TWFrZWZpbGUuYW0gKENMRUFORklMRVMpOiBGaXggdGhlIGNsZWFuIHRhcmdldC4KKworCSogZ3Vp
bGUvZy13cmFwL2d1aWxlLnNjbSAoaW5pdGlhbGl6YXRpb25zLWNnKTogCisJKiBnLXdyYXAvcnRp
LnNjbSAoYWRkLWZ1bmN0aW9uLXJ0aS1jZyk6IFdyaXRlIHRoZSBmbGFncyBhcmcgaW50bworCXRo
ZSBnZW5lcmF0ZWQgQy4KKworCSogZy13cmFwL2NvcmUtcnVudGltZS5oIChHV0Z1bmN0aW9uRmxh
Zyk6IE5ldyBkYXRhIHR5cGUuCisJKEdXX0ZVTkNUSU9OX0ZMQUdfTEVBVkVfUlVOVElNRSwgR1df
RlVOQ1RJT05fRkxBR1NfVVNFUl9TSElGVCk6CisJQSBmbGFnIHN1cHBvcnRlZCBieSBHLVdyYXAs
IGFuZCBzb21lIHBhZGRpbmcgc28gdGhhdCB1c2VycyBjYW4KKwloYXZlIGZsYWdzIHRvby4KKwko
c3RydWN0IF9HV0Z1bmN0aW9uSW5mbyk6IEFkZCBmbGFncyBtZW1iZXIuCisKKwkqIGctd3JhcC9j
b3JlLXJ1bnRpbWUuYyAoZ3dfd3JhcHNldF9hZGRfZnVuY3Rpb24pOiBBZGQgZmxhZ3MgYXJnLgor
CisJKiBnLXdyYXAuc2NtICg8Z3ctZnVuY3Rpb24+KTogQWRkIGZsYWdzIHNsb3QuCisJKGZsYWdz
KSBOZXcgZXhwb3J0ZWQgcHVibGljIGFjY2Vzc29yIG9mIGZsYWdzLiBGbGFncyBpcyBhIHN0cmlu
ZworCXRoYXQgc2hvdWxkIGV2YWx1YXRlIHRvIGFuIHVuc2lnbmVkIGludCBpbiBDLCBhbmQgbm9y
bWFsbHkgc2hvdWxkCisJdXNlIHRoZSBjb25zdGFudHMgaW4gY29yZS1ydW50aW1lLmguCisJKHdy
YXAtZnVuY3Rpb24hKTogQWNjZXB0IGEgZmxhZ3Mga3dhcmcsIGRlZmF1bHRzIHRvICIwIi4KKwog
MjAwNi0xMi0xNyAgQW5keSBXaW5nbyAgPHdpbmdvQHBvYm94LmNvbT4KIAogCSogZ3VpbGUvZy13
cmFwL2d1aWxlLWNvbXBhdGliaWxpdHkuYyAoc2NtX3dpdGhvdXRfZ3VpbGUpOiAKCg==
=== modified file g-wrap.scm // encoding:base64
LS0tIGctd3JhcC5zY20KKysrIGctd3JhcC5zY20KQEAgLTU3LDYgKzU3LDcgQEAKICAgIGlucHV0
LWFyZ3VtZW50cyBvdXRwdXQtYXJndW1lbnRzIG9wdGlvbmFsLWFyZ3VtZW50cwogICAgcmV0dXJu
LXR5cGUgcmV0dXJuLXR5cGVzcGVjCiAgICBnZW5lcmljLW5hbWUgCisgICBmbGFncwogICAgCiAg
ICA8Z3ctdHlwZT4KICAgIG5lZWRzLXJlc3VsdC12YXI/CkBAIC00MDYsNyArNDA3LDggQEAKICAg
KGFyZ3VtZW50cyAjOmdldHRlciBhcmd1bWVudHMgIzppbml0LWtleXdvcmQgIzphcmd1bWVudHMp
CiAgIChnZW5lcmljLW5hbWUgIzpnZXR0ZXIgZ2VuZXJpYy1uYW1lCiAgICAgICAgICAgICAgICAg
Izppbml0LWtleXdvcmQgIzpnZW5lcmljLW5hbWUKLSAgICAgICAgICAgICAgICAjOmluaXQtdmFs
dWUgI2YpKQorICAgICAgICAgICAgICAgICM6aW5pdC12YWx1ZSAjZikKKyAgKGZsYWdzICM6Z2V0
dGVyIGZsYWdzICM6aW5pdC1rZXl3b3JkICM6ZmxhZ3MpKQogCiAoZGVmaW5lLW1ldGhvZCAod3Jp
dGUgKHNlbGYgPGd3LWZ1bmN0aW9uPikgcG9ydCkKICAgKGRpc3BsYXkgIiM8Z3ctZnVuY3Rpb24g
IiBwb3J0KQpAQCAtNzI4LDcgKzczMCw3IEBACiAoZGVmaW5lLW1ldGhvZCAod3JhcC1mdW5jdGlv
biEgKHdyYXBzZXQgPGd3LXdyYXBzZXQ+KSAuIGFyZ3MpCiAgIDs7KGZvcm1hdCAjdCAid3JhcHBp
bmcgflNcbiIgYXJncykKICAgKGxldC1rZXl3b3JkcwotICAgYXJncyAjZiAobmFtZSByZXR1cm5z
IGMtbmFtZSBhcmd1bWVudHMgZGVzY3JpcHRpb24gZ2VuZXJpYy1uYW1lKQorICAgYXJncyAjZiAo
bmFtZSByZXR1cm5zIGMtbmFtZSBhcmd1bWVudHMgZGVzY3JpcHRpb24gZ2VuZXJpYy1uYW1lIGZs
YWdzKQogICAgKGd1YXJkCiAgICAgKGMKICAgICAgKCN0IChyYWlzZS1zdGFja2VkIGMgIndoaWxl
IHByb2Nlc3NpbmcgZnVuY3Rpb24gYH5TJyIgbmFtZSkKQEAgLTc0Miw3ICs3NDQsOCBAQAogICAg
ICAgICAgICAgICAgIzpjLW5hbWUgYy1uYW1lCiAgICAgICAgICAgICAgICAjOmFyZ3VtZW50cyAo
cmVzb2x2ZS1hcmd1bWVudHMgd3JhcHNldCBhcmd1bWVudHMpCiAgICAgICAgICAgICAgICAjOmRl
c2NyaXB0aW9uIGRlc2NyaXB0aW9uCi0gICAgICAgICAgICAgICAjOmdlbmVyaWMtbmFtZSBnZW5l
cmljLW5hbWUpKSkpKQorICAgICAgICAgICAgICAgIzpnZW5lcmljLW5hbWUgZ2VuZXJpYy1uYW1l
CisgICAgICAgICAgICAgICAjOmZsYWdzIChvciBmbGFncyAiMCIpKSkpKSkKIAogKGRlZmluZS1t
ZXRob2QgKHdyYXAtY29uc3RhbnQhICh3cmFwc2V0IDxndy13cmFwc2V0PikgLiBhcmdzKQogICAo
bGV0LWtleXdvcmRzCgo=
=== modified file g-wrap/core-runtime.c // encoding:base64
LS0tIGctd3JhcC9jb3JlLXJ1bnRpbWUuYworKysgZy13cmFwL2NvcmUtcnVudGltZS5jCkBAIC0y
NDAsNyArMjQwLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoqYXJn
X3R5cGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgIEdXVHlwZVNwZWMgKmFyZ190eXBlc3Bl
Y3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcHJvY19uYW1lLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmdlbmVyaWNfbmFtZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpnZW5lcmljX25hbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgR1dGdW5jdGlvbkZsYWdzIGZsYWdzKQogewogICBHV0Z1bmN0aW9uSW5mbyAq
Zmk7CiAgIGZmaV90eXBlICoqYXJnX2ZmaSA9IE5VTEw7CkBAIC0yNjQsNiArMjY1LDcgQEAKICAg
ZmktPmdlbmVyaWNfbmFtZSA9IGdlbmVyaWNfbmFtZTsKICAgZmktPmFyZ190eXBlcyA9IE5VTEw7
CiAgIGZpLT5yZXRfdHlwZSA9IE5VTEw7CisgIGZpLT5mbGFncyA9IGZsYWdzOwogICAKICAgLyog
RklYTUU6IEZGSSBzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUgb3B0aW9uYWwgYXJncyAqLwogICBh
c3NlcnQgKCFhcmdfdHlwZXMgfHwgIW5fb3B0aW9uYWxfYXJncyk7Cgo=
=== modified file g-wrap/core-runtime.h // encoding:base64
LS0tIGctd3JhcC9jb3JlLXJ1bnRpbWUuaAorKysgZy13cmFwL2NvcmUtcnVudGltZS5oCkBAIC0x
MDUsNiArMTA1LDE1IEBACiAKICNkZWZpbmUgR1dfVFlQRVNQRUNfVVNFUl9TSElGVCA4CiAKK3R5
cGVkZWYgdW5zaWduZWQgaW50IEdXRnVuY3Rpb25GbGFnczsKKworZW51bQoreworICBHV19GVU5D
VElPTl9GTEFHX0xFQVZFX1JVTlRJTUUgID0gMHgwMQorfTsKKworI2RlZmluZSBHV19GVU5DVElP
Tl9GTEFHU19VU0VSX1NISUZUIDE2CisKIHR5cGVkZWYgdm9pZCAoKkdXVW5XcmFwVmFsdWVGdW5j
KSh2b2lkICppbnN0YW5jZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHV0xh
bmdBcmVuYSBhcmVuYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBH
V1R5cGVTcGVjICp0cywKQEAgLTE1MSw2ICsxNjAsOCBAQAogCiAgICAgZmZpX2NpZiBjaWY7CiAg
ICAgdW5zaWduZWQgaW50IGRhdGFfYXJlYV9zaXplOyAvKiBTaXplIG5lZWRlZCBmb3IgdGhlIGR5
bmFtaWMtY2FsbCBpbmZvICovCisKKyAgICBHV0Z1bmN0aW9uRmxhZ3MgZmxhZ3M7CiB9OwogCiBz
dHJ1Y3QgX0dXV3JhcFNldApAQCAtMTk2LDcgKzIwNyw4IEBACiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICoqYXJnX3R5cGVzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR1dUeXBlU3BlYyAqYXJnX3R5cGVzcGVjcywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnByb2NfbmFtZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmdlbmVyaWNfbmFtZSk7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpnZW5lcmlj
X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHV0Z1bmN0aW9uRmxh
Z3MgZmxhZ3MpOwogCiB2b2lkIAkgICBnd193cmFwc2V0X3JlZ2lzdGVyIChHV1dyYXBTZXQgKndz
KTsKIAoK
=== modified file g-wrap/rti.scm // encoding:base64
LS0tIGctd3JhcC9ydGkuc2NtCisrKyBnLXdyYXAvcnRpLnNjbQpAQCAtMjQ0LDYgKzI0NCw3IEBA
CiAgICAgIChpZiAoZ2VuZXJpYy1uYW1lIGZ1bmN0aW9uKQogCSAobGlzdCAiXCIiIChzeW1ib2wt
PnN0cmluZyAoZ2VuZXJpYy1uYW1lIGZ1bmN0aW9uKSkgIlwiIikKIAkgIk5VTEwiKQorICAgICAi
LCAiIChmbGFncyBmdW5jdGlvbikKICAgICAgIik7XG4iCiAgICAgICJ9XG4iKSkpCiAKCg==
=== modified file guile/examples/Makefile.am // encoding:base64
LS0tIGd1aWxlL2V4YW1wbGVzL01ha2VmaWxlLmFtCisrKyBndWlsZS9leGFtcGxlcy9NYWtlZmls
ZS5hbQpAQCAtMTMsNiArMTMsOCBAQAogCiBFWFRSQV9ESVNUPSBSRUFETUUgdXBkYXRlLWZvcm1h
dC5zY20KIAorQ0xFQU5GSUxFUyA9ICQod2lsZGNhcmQgZ3ctKikKKwogIyBXcmFwc2V0IGdlbmVy
YXRpb24KIGd3LSUuYyBndy0lLnNjbTogJS1zcGVjLnNjbQogCUxEX0xJQlJBUllfUEFUSD0ke0xP
Q0FMUFdEfS8uLjoke0xEX0xJQlJBUllfUEFUSH0gXAoK
=== modified file guile/g-wrap/guile-runtime.c // encoding:base64
LS0tIGd1aWxlL2ctd3JhcC9ndWlsZS1ydW50aW1lLmMKKysrIGd1aWxlL2ctd3JhcC9ndWlsZS1y
dW50aW1lLmMKQEAgLTU3OCw3ICs1NzgsNyBAQAogdHlwZWRlZiB2b2lkKiAoKmd1aWxlX3dpdGhv
dXRfZnVuYykodm9pZCopOwogCiBzdGF0aWMgdm9pZCoKLWZmaV9jYWxsX3dpdGhvdXRfZ3VpbGUg
KGNvbnN0IGZmaV9ndWlsZV9jYWxsX2luZm8gKmluZm8pCitkb19mZmlfY2FsbCAoY29uc3QgZmZp
X2d1aWxlX2NhbGxfaW5mbyAqaW5mbykKIHsKICAgZmZpX2NhbGwgKCZpbmZvLT5maS0+Y2lmLCBp
bmZvLT5maS0+cHJvYywgaW5mby0+cnZhbHVlLCBpbmZvLT52YWx1ZXMpOwogICByZXR1cm4gTlVM
TDsKQEAgLTYzMiw3ICs2MzIsMTEgQEAKICAgICAgIH0KICAgfQogICAKLSAgc2NtX3dpdGhvdXRf
Z3VpbGUgKChndWlsZV93aXRob3V0X2Z1bmMpZmZpX2NhbGxfd2l0aG91dF9ndWlsZSwgJmNhbGxf
aW5mbyk7CisgIGlmIChmaS0+ZmxhZ3MgJiBHV19GVU5DVElPTl9GTEFHX0xFQVZFX1JVTlRJTUUp
CisgICAgICBzY21fd2l0aG91dF9ndWlsZSAoKGd1aWxlX3dpdGhvdXRfZnVuYylkb19mZmlfY2Fs
bCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAmY2FsbF9pbmZvKTsKKyAgZWxzZQorICAgICAg
ZG9fZmZpX2NhbGwgKCZjYWxsX2luZm8pOwogCiAgIHJ2YWx1ZSA9IEdXX1JWQUxVRV9QVFIgKHJ2
YWx1ZSwgZmktPnJldF90eXBlKTsKICAgZmktPnJldF90eXBlLT53cmFwX3ZhbHVlICgmcmVzdWx0
LCBBUkVOQSwgJmZpLT5yZXRfdHlwZXNwZWMsIHJ2YWx1ZSwgJmVycm9yKTsKCg==
=== modified file guile/g-wrap/guile.scm // encoding:base64
LS0tIGd1aWxlL2ctd3JhcC9ndWlsZS5zY20KKysrIGd1aWxlL2ctd3JhcC9ndWlsZS5zY20KQEAg
LTUxMSw3ICs1MTEsOCBAQAogCQkJCQkJICAobWFwIGRlZmF1bHQtdmFsdWUgdmlzaWJsZS1hcmdz
KSkpKQogCSAobi1yZXEtYXJncyAoLSBuLXZpc2libGUtYXJncyBuLW9wdGlvbmFsLXZpc2libGUt
YXJncykpCiAJIChmbi1jLXdyYXBwZXIgKHNsb3QtcmVmIGZ1bmN0aW9uICd3cmFwcGVyLW5hbWUp
KQotCSAoZm4tYy1zdHJpbmcgIChzbG90LXJlZiBmdW5jdGlvbiAnd3JhcHBlci1uYW1lc3RyKSkp
CisJIChmbi1jLXN0cmluZyAgKHNsb3QtcmVmIGZ1bmN0aW9uICd3cmFwcGVyLW5hbWVzdHIpKQor
CSAoZmxhZ3MtYy1zdHJpbmcgKGZsYWdzIGZ1bmN0aW9uKSkpCiAgICAgKGxpc3QKICAgICAgIiAg
IGd3X3dyYXBzZXRfYWRkX2Z1bmN0aW9uKCIgKGMtaW5mby1zeW0gd3JhcHNldCkgIiwgIgogICAg
ICBmbi1jLXdyYXBwZXIgIiwgIiBuLXJlcS1hcmdzICIsICIgbi1vcHRpb25hbC12aXNpYmxlLWFy
Z3MgIiwgIgpAQCAtNTE5LDYgKzUyMCw3IEBACiAgICAgIChpZiAoZ2VuZXJpYy1uYW1lIGZ1bmN0
aW9uKQogCSAobGlzdCAiXCIiIChzeW1ib2wtPnN0cmluZyAoZ2VuZXJpYy1uYW1lIGZ1bmN0aW9u
KSkgIlwiIikKIAkgIk5VTEwiKQorICAgICAiLCAiIGZsYWdzLWMtc3RyaW5nCiAgICAgICIpO1xu
IikpKQogCiAMCgo=
# revision id: address@hidden
# sha1: f24eaea3085c13d0b93239b13da4896e09fcf516
# inventory sha1: 582e2ab2f97c5287714c38df2115cb9b02b87838
# parent ids:
# address@hidden
# properties:
# branch-nick: mainline