* guile-cairo - patches - new interfaces
@ 2023-03-11 3:10 David Pirotte
2023-03-21 16:07 ` lloda
0 siblings, 1 reply; 2+ messages in thread
From: David Pirotte @ 2023-03-11 3:10 UTC (permalink / raw)
To: guile-user
[-- Attachment #1.1: Type: text/plain, Size: 703 bytes --]
Hello Daniel,
Note that I initially asked(proposed) Dale to write a test and
prepare the patch, as he fixed/wrote these new procedures, but
he appears to have been 'trapped' by other tasks -
Please find attached 3 patches, the third being the most important and
related to the addition of the context->cairo-pointer and
cairo-pointer->context interfaces. Let me know (on irc is fine) once you
have double checked and pushed, thanks.
Then, I wish we could release, because this patch [the third one] is
essential to be able to use guile-cairo in G-Golf, and I'd rather
have asap all distros that package guile-cairo updating ... wdyt?
Let me know if you need help.
Thanks,
David
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-Updating-m4-guile.m4.patch --]
[-- Type: text/x-patch, Size: 1056 bytes --]
From 3647aff86cde1fb6137a27b4212b2aaaa5f94af1 Mon Sep 17 00:00:00 2001
From: David Pirotte <david@altosw.be>
Date: Fri, 10 Mar 2023 23:19:51 -0300
Subject: [PATCH 1/3] Updating m4/guile.m4
* m4/guile.m4: Updated to the latest version available in Guile, which
fixes a few minor/micro checks related bug(s).
---
m4/guile.m4 | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/m4/guile.m4 b/m4/guile.m4
index 57a0868..48642f0 100644
--- a/m4/guile.m4
+++ b/m4/guile.m4
@@ -17,7 +17,7 @@
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
## 02110-1301 USA
-# serial 10
+# serial 11
## Index
## -----
@@ -60,7 +60,10 @@
# @code{AC_SUBST}.
#
AC_DEFUN([GUILE_PKG],
- [PKG_PROG_PKG_CONFIG
+ [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+ if test "x$PKG_CONFIG" = x; then
+ AC_MSG_ERROR([pkg-config is missing, please install it])
+ fi
_guile_versions_to_search="m4_default([$1], [3.0 2.2 2.0])"
if test -n "$GUILE_EFFECTIVE_VERSION"; then
_guile_tmp=""
--
2.39.2
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.3: 0002-Some-more-files-we-don-t-want-to-track.patch --]
[-- Type: text/x-patch, Size: 826 bytes --]
From d77ef72b737d216593bb6260e8b4740b506da0ac Mon Sep 17 00:00:00 2001
From: David Pirotte <david@altosw.be>
Date: Fri, 10 Mar 2023 23:20:37 -0300
Subject: [PATCH 2/3] Some more files we don't want to track
* .gitignore: Some more files we don't want to track.
---
.gitignore | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/.gitignore b/.gitignore
index 128a5a8..2d6984c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,12 @@ Makefile.in
/config.log
/config.status
/configure
+/configure~
+m4/libtool.m4
+m4/ltoptions.m4
+m4/ltsugar.m4
+m4/ltversion.m4
+m4/lt~obsolete.m4
/build-aux/config.sub
/build-aux/config.guess
/build-aux/depcomp
@@ -30,3 +36,4 @@ Makefile.in
/libtool
/stamp-h1
/config.h.in~
+tests/unit-tests/*.scm~
\ No newline at end of file
--
2.39.2
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.4: 0003-New-context-cairo-pointer-cairo-pointer-context-inte.patch --]
[-- Type: text/x-patch, Size: 4573 bytes --]
From bc42b58608698321969a51640dec45762de269ad Mon Sep 17 00:00:00 2001
From: David Pirotte <david@altosw.be>
Date: Fri, 10 Mar 2023 23:33:35 -0300
Subject: [PATCH 3/3] New context->cairo-pointer cairo-pointer->context
interfaces
Note: cairo-pointer->context was first written by Daniel Llorens, then
fixed by Dale Smith who also wrote context->cairo-pointer. I merely
prepared and sent the patch, I wrote the test.
Special thanks to both, as cairo-pointer->context is added on my
demand, to make guile-cairo usable with G-Golf.
* guile-cairo/guile-cairo.c (context->cairo-pointer,
cairo-pointer->context): New procedures.
* tests/unit-tests/context-pointer.scm: New file, testing the new
procedures.
* tests/unit-tests/Makefile.am: Updated for the above.
---
guile-cairo/guile-cairo.c | 20 +++++++++++++++++--
tests/unit-tests/Makefile.am | 6 ++++--
tests/unit-tests/context-pointer.scm | 29 ++++++++++++++++++++++++++++
3 files changed, 51 insertions(+), 4 deletions(-)
create mode 100644 tests/unit-tests/context-pointer.scm
diff --git a/guile-cairo/guile-cairo.c b/guile-cairo/guile-cairo.c
index b298fc8..8d8c0b7 100644
--- a/guile-cairo/guile-cairo.c
+++ b/guile-cairo/guile-cairo.c
@@ -1,6 +1,10 @@
/* guile-cairo
* Copyright (C) 2007, 2011, 2012, 2014, 2018, 2020 Andy Wingo <wingo at pobox dot com>
- *
+ * Copyright (C) 2023 Daniel Llorens <daniel.llorens@bluewin.ch>
+ * Copyright (C) 2023 Dale Smith <dalepsmith@gmail.com>
+
+ David Pirotte <david@altosw.be>
+
* guile-cairo.c: Cairo for Guile
*
* This library is free software; you can redistribute it and/or modify
@@ -3522,7 +3526,19 @@ cairo_svg_version_to_string (cairo_svg_version_t version);
#endif /* CAIRO_HAS_SVG_SURFACE */
-\f
+SCM_DEFINE_PUBLIC (scm_context2cairo_pointer, "context->cairo-pointer", 1, 0, 0,
+ (SCM scr),
+ "")
+{
+ return scm_from_pointer (scm_to_cairo (scr), NULL);
+}
+
+SCM_DEFINE_PUBLIC (scm_cairo_pointer2context, "cairo-pointer->context", 1, 0, 0,
+ (SCM scr),
+ "")
+{
+ return scm_from_cairo ((cairo_t *) scm_to_pointer (scr));
+}
void
scm_init_cairo (void)
diff --git a/tests/unit-tests/Makefile.am b/tests/unit-tests/Makefile.am
index c13443d..9bf2316 100644
--- a/tests/unit-tests/Makefile.am
+++ b/tests/unit-tests/Makefile.am
@@ -1,5 +1,6 @@
# guile-cairo
# Copyright (C) 2007,2011 Andy Wingo <wingo@pobox.com>
+# Copyright (C) 2023 David Pirotte <david@altosw.be>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as
@@ -16,8 +17,9 @@
# <http://www.gnu.org/licenses/>.
TESTS= \
- api-stability.scm \
- version.scm
+ api-stability.scm \
+ version.scm \
+ context-pointer.scm
TESTS_ENVIRONMENT=\
API_FILE=$(srcdir)/cairo.api $(top_builddir)/env guile -s
diff --git a/tests/unit-tests/context-pointer.scm b/tests/unit-tests/context-pointer.scm
new file mode 100644
index 0000000..c746e58
--- /dev/null
+++ b/tests/unit-tests/context-pointer.scm
@@ -0,0 +1,29 @@
+;; guile-cairo unit test
+;; Copyright (C) 2023 David Pirotte <david@altosw.be>
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3 of the License, or (at
+;; your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;; General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, see <http://www.gnu.org/licenses/>.
+
+(use-modules (unit-test)
+ (oop goops)
+ (cairo))
+
+(define-class <test-context-pointer> (<test-case>))
+
+(define-method (test-context-pointer (self <test-context-pointer>))
+ (let* ((cs (cairo-image-surface-create 'argb32 140 100))
+ (cr (cairo-create cs)))
+ (assert (context->cairo-pointer cr))
+ (assert (cairo-pointer->context (context->cairo-pointer cr)))))
+
+(exit-with-summary (run-all-defined-test-cases))
--
2.39.2
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-03-21 16:07 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-11 3:10 guile-cairo - patches - new interfaces David Pirotte
2023-03-21 16:07 ` lloda
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).