libnsbmp: annotated tag release/0.1.6 created. release/0.1.6
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libnsbmp.git/shortlog/c3062651452bbff42d14...
...commit http://git.netsurf-browser.org/libnsbmp.git/commit/c3062651452bbff42d1453...
...tree http://git.netsurf-browser.org/libnsbmp.git/tree/c3062651452bbff42d14535e...
The annotated tag, release/0.1.6 has been created
at c3062651452bbff42d14535eb2d4795db3a37c19 (tag)
tagging 3155a7e9db2d7d7c2349a12bc892fa9ff68c2338 (commit)
replaces release/0.1.5
tagged by Vincent Sanders
on Sun May 24 21:36:43 2020 +0100
- Log -----------------------------------------------------------------
Official Release
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEER2Lxrm9ACEGlKtFtebDHosvZO54FAl7K2tsACgkQebDHosvZ
O56APxAA1ZM6rmF5cVqBUldCwc2nHuvio1XzlqzF3lbgcy+VrFBA9Ukp/eGo7GhG
vAivWxQITX+i/sQ2osx8fxr518y/Ef2VdIt3IO1ZYsgLlYTLdtlBJxuuBvEFwWcC
h5Es38j8Ifg+iWp+o2Jy1vTEYs/cbU85z8Y3o6XqhAr1ZhXL77KR2njYr4/hxPIz
1yiVnkn/NWiyxjt3WAbl+RaKvDtdqNOGsIoMurZ+B/Ag172PT55+yPK/jqr7H1SW
Llepm9BTqnCR3hEi1s2IpzJraADrJKatGku/nZG5io8/voROiGmuUkptPMGgz8J2
jIOFJ7R2OYesSLwt+vsRgJJAUT25QyiH6pzE7vwg0rAlFNEm4zeYX1outYH6I9r0
lhbCedtMuH6w87s0gYuFa1x4DYjHslbASgzi2eUk3K5JZf5n76KupUOyn60ADCYc
Nd0QPm/LbfGahze45gKD63cDQDWh83Zjfq26GElCpROZWHxpZG/0mD5Axqzez22v
09vhvqO6bwFo2AvbhZVlkN3igRiIBwN4lLk6MprCQmHKJUzl8QTwJKWdTs18Ridh
G3Z47+iJfDvkOjWVTDF40x8YVmQX6Mc7SPyjhc/CJau6DBdml3olQAP8BmGBEfxR
NoIsuO8XYTvBEEJbNmTi/YQH2FHFSiLNVQkhDWg26S4aYEmWyjU=
=C+eT
-----END PGP SIGNATURE-----
Daniel Silverstone (2):
Add an assert to hopefully quieten scan-build
Further quietening of scan-build
Vincent Sanders (1):
Update component version to 0.1.6 for release
-----------------------------------------------------------------------
--
NetSurf BMP Decoder
2 years, 8 months
libnsbmp: branch master updated. release/0.1.5-3-g3155a7e
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libnsbmp.git/shortlog/3155a7e9db2d7d7c2349...
...commit http://git.netsurf-browser.org/libnsbmp.git/commit/3155a7e9db2d7d7c2349a1...
...tree http://git.netsurf-browser.org/libnsbmp.git/tree/3155a7e9db2d7d7c2349a12b...
The branch, master has been updated
via 3155a7e9db2d7d7c2349a12bc892fa9ff68c2338 (commit)
from 4494e2a9dad4f1e837e488cecebcedaeb0ef7b39 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libnsbmp.git/commit/?id=3155a7e9db2d7d7c23...
commit 3155a7e9db2d7d7c2349a12bc892fa9ff68c2338
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
Update component version to 0.1.6 for release
Signed-off-by: Vincent Sanders <vince(a)kyllikki.org>
diff --git a/Makefile b/Makefile
index 514fdb7..744464e 100644
--- a/Makefile
+++ b/Makefile
@@ -2,11 +2,11 @@
#
# Makefile for libnsbmp
#
-# Copyright 2009-2015 John-Mark Bell <jmb(a)netsurf-browser.org>
+# Copyright 2009-2020 John-Mark Bell <jmb(a)netsurf-browser.org>
# Component settings
COMPONENT := nsbmp
-COMPONENT_VERSION := 0.1.5
+COMPONENT_VERSION := 0.1.6
# Default to a static library
COMPONENT_TYPE ?= lib-static
-----------------------------------------------------------------------
Summary of changes:
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 514fdb7..744464e 100644
--- a/Makefile
+++ b/Makefile
@@ -2,11 +2,11 @@
#
# Makefile for libnsbmp
#
-# Copyright 2009-2015 John-Mark Bell <jmb(a)netsurf-browser.org>
+# Copyright 2009-2020 John-Mark Bell <jmb(a)netsurf-browser.org>
# Component settings
COMPONENT := nsbmp
-COMPONENT_VERSION := 0.1.5
+COMPONENT_VERSION := 0.1.6
# Default to a static library
COMPONENT_TYPE ?= lib-static
--
NetSurf BMP Decoder
2 years, 8 months
libdom: annotated tag release/0.4.1 created. release/0.4.1
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/2c0fca3c931e5fb999553b...
...commit http://git.netsurf-browser.org/libdom.git/commit/2c0fca3c931e5fb999553b56...
...tree http://git.netsurf-browser.org/libdom.git/tree/2c0fca3c931e5fb999553b56fb...
The annotated tag, release/0.4.1 has been created
at 2c0fca3c931e5fb999553b56fb8072fc849b6b54 (tag)
tagging 93b8a9bba18fc3166dd158484188b1730afdd382 (commit)
replaces release/0.4.0
tagged by Vincent Sanders
on Sun May 24 21:14:44 2020 +0100
- Log -----------------------------------------------------------------
Official Release
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEER2Lxrm9ACEGlKtFtebDHosvZO54FAl7K1bQACgkQebDHosvZ
O54z7xAAraKy7Ue90QhI77XRzZ1FbD9JTkENRg9CGSum0O+pE8csczTeQAdE4ykU
19M2EiTcX3Lzqsn0vCj7G1YgP1UfhKL/T56tuF7JAgm6J0yFZpqf578pZ7vzUPv0
jmPWT+AoXFqEQ3HiD16s0Jw4B5xMNB0ED1TPpnkT+bHwAjqQElEzajaoRx5/Xt5s
/Id7uF5tGCCI3/IVnyqMg5dW0Kfd4WYu6q8asRF467cZJiTH0qEqZP9ZQQVHsdba
8t/Jr+ClCf/f2dlgjMJyp4eW8clTd1V8PHMEYNnsQkEazdqTygSdnUFN1x1yGP/y
aMyn7BBLm3+h2OS+gSesjjUj+64Jae3GmzGVXNihwdI0QHmpfwuUlBkgG1Rn0LyG
xVU8ZxF41vcCoQHDJGSah96zxqsF2AN+egye8DpwUjNBuY+BzJLk4uD4GpyRuzT6
NpHwN0CiyIxrqb1PC8ObmUGJiUFh8B+OAPUSXlPQ0q5D2hElCiAC2uY8iOsKnbb8
mGX1v/EpJSCm74/4i780REaTQjO9Q2edP389Syg9gl5ZEd4PYQJSw0FSXODD+25C
LdHY+BWG76smCKQgpbWw34Ju7RfFZ7xHaniwFxmPcIsUsagMJFEX8QxLBlHEQQca
uUUtOoUyREeiOoiECZs8BlROmsFHY4y+ELiNQb7KIIkkHllGQl4=
=5OSY
-----END PGP SIGNATURE-----
Daniel Silverstone (11):
html_text_area_element: Set node text content on value change
element: Issue DOMSubtreeModified *after* updating attr value
namespace: Support finalising the namespace strings
dispatch: Do not blindly destroy events
hubbub: Add fragment parser creation support
Deal with some scan-build-identified potential problems
Node: Add a NULL guard to hopefully calm scan-build
Bindings: source is a hubbub_charset_source really
html_element: Do not invert name and value setting ulong properties
html_element: Do not invert name and value setting int32 properties
html_title_element: Use dom_node_{get,set}_text_content
Michael Drake (5):
keyboard events: Expose the creation function.
keyboard events: constructor: initialise the key location.
ui events: constructor: initialise the detail attribute.
keyboard events: Update to latest DOM spec.
keyboard events: Fix get location casting wrapper.
Vincent Sanders (3):
Add HTMLCanvasElement
Fix HTMLCanvasElement types for width and height attributes
Update component version to 0.4.1 for release
-----------------------------------------------------------------------
--
Document Object Model library
2 years, 8 months
libdom: branch master updated. release/0.4.0-19-g93b8a9b
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libdom.git/shortlog/93b8a9bba18fc3166dd158...
...commit http://git.netsurf-browser.org/libdom.git/commit/93b8a9bba18fc3166dd15848...
...tree http://git.netsurf-browser.org/libdom.git/tree/93b8a9bba18fc3166dd1584841...
The branch, master has been updated
via 93b8a9bba18fc3166dd158484188b1730afdd382 (commit)
from 77ec7b8f554a747d27b13bbea3aa18c511531331 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libdom.git/commit/?id=93b8a9bba18fc3166dd1...
commit 93b8a9bba18fc3166dd158484188b1730afdd382
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
Update component version to 0.4.1 for release
Signed-off-by: Vincent Sanders <vince(a)kyllikki.org>
diff --git a/Makefile b/Makefile
index 64bf7c2..1c6d9ff 100644
--- a/Makefile
+++ b/Makefile
@@ -2,11 +2,11 @@
#
# Makefile for libdom
#
-# Copyright 2009-2015 John-Mark Bell <jmb(a)netsurf-browser.org>
+# Copyright 2009-2020 John-Mark Bell <jmb(a)netsurf-browser.org>
# Component settings
COMPONENT := dom
-COMPONENT_VERSION := 0.4.0
+COMPONENT_VERSION := 0.4.1
# Default to a static library
COMPONENT_TYPE ?= lib-static
-----------------------------------------------------------------------
Summary of changes:
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 64bf7c2..1c6d9ff 100644
--- a/Makefile
+++ b/Makefile
@@ -2,11 +2,11 @@
#
# Makefile for libdom
#
-# Copyright 2009-2015 John-Mark Bell <jmb(a)netsurf-browser.org>
+# Copyright 2009-2020 John-Mark Bell <jmb(a)netsurf-browser.org>
# Component settings
COMPONENT := dom
-COMPONENT_VERSION := 0.4.0
+COMPONENT_VERSION := 0.4.1
# Default to a static library
COMPONENT_TYPE ?= lib-static
--
Document Object Model library
2 years, 8 months
libhubbub: annotated tag release/0.3.7 created. release/0.3.7
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libhubbub.git/shortlog/7fedb948c3597c04b43...
...commit http://git.netsurf-browser.org/libhubbub.git/commit/7fedb948c3597c04b43f5...
...tree http://git.netsurf-browser.org/libhubbub.git/tree/7fedb948c3597c04b43f5fd...
The annotated tag, release/0.3.7 has been created
at 7fedb948c3597c04b43f5fdc452fe8a80868d04e (tag)
tagging 41b3e0e617cfce96de85d4d031c4d131e3dc4cf4 (commit)
replaces release/0.3.6
tagged by Vincent Sanders
on Sun May 24 21:10:23 2020 +0100
- Log -----------------------------------------------------------------
Official Release
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEER2Lxrm9ACEGlKtFtebDHosvZO54FAl7K1K8ACgkQebDHosvZ
O55PmRAAzx5W7tV0OK93Y8qy314ZshpTRpzE95pQFeb8/S5lYiRR2fiDOuflHGv6
iTn9WdkC0Ulr7+vL9h5QvSGm7gD3vjmFE7D9J7yb0oR7XU1jCODpq8DPQvZVXnDb
lqRY1GB3vr53OkF1RvpEW9M9SdrPLKmH4TlD4nr20mg3EZuPtH7p5UxdXisBAWXg
I8fX129FXY18U0vgMbo4CTGQGuyBZv528ubrbbLfTQl8+d6FR3pBobNsA4BqF8r4
CHtiocyLU5GXsDyOlSZ+T5KdvYIpUC7xGzyI0RVdXorIPpqxJeUxzCkMsONqNDzT
EFXWWT2F7wcsovpUjvTJnpJQthsAFu+rId/0pIfQT3dDZycVd4qmHOQtaQCvuaFy
KzaHdMNRnin+bL1Y2VJFUk3grXvRp1GcbdYhKEuK3LOxS/ar3z6FijpmspD68MW0
VI0WjdWBT9MybYqLwJMZYzIsca7rp03w8VyK9Fyy9487WbStjtYYe+aYiZG8MOTb
LswKN1gHPfZLESc79qnu6/Qw6UVHcaHWMWPPLSebRrZP4SCqpRZ/q8IHsiC9UvM5
19rQ8zuPK2ItzwjVAyx9Cqm4B2C2e+Cd95fhp2MiaX2nl/uiYGeP1jX4PAXpIbWG
0WfCTWXAFd+uCX3/4yH26UDMdv42BJJ5WhWoEJJ8hX60LnWE0o0=
=A+vH
-----END PGP SIGNATURE-----
Daniel Silverstone (1):
treebuilder: Add some asserts to hopefully quieten scan-build
Michael Drake (2):
Treebuilder: Reorganise name_type_map[] src to be easier to change.
Treebuilder: Add some new element names.
Vincent Sanders (1):
Update component version to 0.3.7 for release
-----------------------------------------------------------------------
--
HTML5 parser library
2 years, 8 months
libhubbub: branch master updated. release/0.3.6-4-g41b3e0e
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libhubbub.git/shortlog/41b3e0e617cfce96de8...
...commit http://git.netsurf-browser.org/libhubbub.git/commit/41b3e0e617cfce96de85d...
...tree http://git.netsurf-browser.org/libhubbub.git/tree/41b3e0e617cfce96de85d4d...
The branch, master has been updated
via 41b3e0e617cfce96de85d4d031c4d131e3dc4cf4 (commit)
from 595df53b981454939c903182248bd9d983f380b3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libhubbub.git/commit/?id=41b3e0e617cfce96d...
commit 41b3e0e617cfce96de85d4d031c4d131e3dc4cf4
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
Update component version to 0.3.7 for release
Signed-off-by: Vincent Sanders <vince(a)kyllikki.org>
diff --git a/Makefile b/Makefile
index 472d521..34bc7ec 100644
--- a/Makefile
+++ b/Makefile
@@ -2,11 +2,11 @@
#
# Makefile for libhubbub
#
-# Copyright 2009-2015 John-Mark Bell <jmb(a)netsurf-browser.org>
+# Copyright 2009-2020 John-Mark Bell <jmb(a)netsurf-browser.org>
# Component settings
COMPONENT := hubbub
-COMPONENT_VERSION := 0.3.6
+COMPONENT_VERSION := 0.3.7
# Default to a static library
COMPONENT_TYPE ?= lib-static
-----------------------------------------------------------------------
Summary of changes:
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 472d521..34bc7ec 100644
--- a/Makefile
+++ b/Makefile
@@ -2,11 +2,11 @@
#
# Makefile for libhubbub
#
-# Copyright 2009-2015 John-Mark Bell <jmb(a)netsurf-browser.org>
+# Copyright 2009-2020 John-Mark Bell <jmb(a)netsurf-browser.org>
# Component settings
COMPONENT := hubbub
-COMPONENT_VERSION := 0.3.6
+COMPONENT_VERSION := 0.3.7
# Default to a static library
COMPONENT_TYPE ?= lib-static
--
HTML5 parser library
2 years, 8 months
netsurf: branch master updated. release/3.9-755-gbcd88f9
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/netsurf.git/shortlog/bcd88f96bb7774bd39795...
...commit http://git.netsurf-browser.org/netsurf.git/commit/bcd88f96bb7774bd397959f...
...tree http://git.netsurf-browser.org/netsurf.git/tree/bcd88f96bb7774bd397959fd2...
The branch, master has been updated
via bcd88f96bb7774bd397959fd2366b2720672260d (commit)
via 39552607a5314871d93c053fb2dc63df6bd54157 (commit)
from b4c99f9e575b64ce55364446ef0ab840816370db (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=bcd88f96bb7774bd397...
commit bcd88f96bb7774bd397959fd2366b2720672260d
Author: Daniel Silverstone <dsilvers(a)digital-scurf.org>
Commit: Daniel Silverstone <dsilvers(a)digital-scurf.org>
test: Use putImageData features in life demo
Signed-off-by: Daniel Silverstone <dsilvers(a)digital-scurf.org>
diff --git a/test/js/life.html b/test/js/life.html
index bb3151b..de54d0a 100644
--- a/test/js/life.html
+++ b/test/js/life.html
@@ -15,7 +15,7 @@
<h1 class="ns-border">Conway's Game of Life</h1>
<div style="margin: 1em;">
<div>
- Run: <input id="running" type="checkbox" /><br />
+ Run: <input id="running" type="checkbox" checked/><br />
Set Size: <input id="width" type="text" size="4" value="50" /> x
<input id="height" type="text" size="4" value="50" />
<button id="commitsize">Commit</button><br />
@@ -37,10 +37,13 @@
const iheight = document.getElementById("height");
const surface = document.getElementById("surface");
const context = surface.getContext("2d");
- var width = surface.width;
- var height = surface.height;
+ var width = surface.width - 10;
+ var height = surface.height - 10;
var frame = context.createImageData(width, height);
var drawto = context.createImageData(width, height);
+ var greyto = context.createImageData(width, height);
+ const greylevel = 31;
+
function getOffset(x, y) {
if (x < 0) {
x = width + x;
@@ -63,10 +66,12 @@
function setCell(x, y) {
const offset = getOffset(x, y);
drawto.data[offset + 3] = 255;
+ greyto.data[offset + 3] = greylevel;
}
function clearCell(x, y) {
const offset = getOffset(x, y);
drawto.data[offset + 3] = 0;
+ greyto.data[offset + 3] = 0;
}
function countNeighbours(x, y) {
return (
@@ -82,7 +87,15 @@
}
function flip() {
var temp = frame;
- context.putImageData(drawto, 0, 0);
+ context.putImageData(drawto, 5, 5);
+ context.putImageData(greyto, 5 - width, 5 - height); /* top left */
+ context.putImageData(greyto, 5 - width, 5); /* left */
+ context.putImageData(greyto, 5, 5 - height); /* top */
+ context.putImageData(greyto, 5 + width, 5 + height); /* bottom right */
+ context.putImageData(greyto, 5 + width, 5); /* right */
+ context.putImageData(greyto, 5, 5 + height); /* bottom */
+ context.putImageData(greyto, 5 + width, 5 - height); /* top right */
+ context.putImageData(greyto, 5 - width, 5 + height); /* bottom left */
frame = drawto;
drawto = temp;
}
@@ -121,6 +134,7 @@
drawto.data[ofs] = 0;
} else {
drawto.data[ofs] = 255;
+ greyto.data[ofs] = greylevel;
}
ofs += 4;
}
@@ -142,14 +156,16 @@
ihval <= 200
) {
console.log("yes");
- surface.height = ihval;
- context.height = ihval;
+ surface.height = ihval + 10;
+ context.height = ihval + 10;
height = ihval;
- surface.width = iwval;
- context.width = iwval;
+ surface.width = iwval + 10;
+ context.width = iwval + 10;
width = iwval;
frame = context.createImageData(width, height);
drawto = context.createImageData(width, height);
+ greyto = context.createImageData(width, height);
+ resetGrey();
randomise();
}
});
commitdiff http://git.netsurf-browser.org/netsurf.git/commit/?id=39552607a5314871d93...
commit 39552607a5314871d93c053fb2dc63df6bd54157
Author: Daniel Silverstone <dsilvers(a)digital-scurf.org>
Commit: Daniel Silverstone <dsilvers(a)digital-scurf.org>
canvas: Implement fully correct putImageData features
Signed-off-by: Daniel Silverstone <dsilvers(a)digital-scurf.org>
diff --git a/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd b/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
index 007c587..db3c4ef 100644
--- a/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
+++ b/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
@@ -270,7 +270,73 @@ canvas2d__handle_dom_event(dom_event *evt, void *pw)
priv->stride = stride;
priv->bitmap = newbitmap;
}
-
+
+typedef struct {
+ uint8_t *ptr;
+ size_t stride;
+ ssize_t width;
+ ssize_t height;
+} raw_bitmap;
+
+typedef struct {
+ raw_bitmap src;
+ raw_bitmap dst;
+ /* These are relative to the destination top/left */
+ ssize_t dst_x;
+ ssize_t dst_y;
+ /* These are relative to the source top/left */
+ ssize_t x1;
+ ssize_t y1;
+ /* And these are +1, so a 1x1 copy will have x2==x1+1 etc */
+ ssize_t x2;
+ ssize_t y2;
+} copy_operation;
+
+/**
+ * Copy from src to dst
+ *
+ * Note, this is destructive to its copy_operation input
+ *
+ * \param op The copy operation to perform
+ * \return Whether the destination bitmap was altered
+ */
+static bool
+canvas2d__copy_bitmap_to_bitmap(copy_operation *op)
+{
+ /* Constrain src rectangle to src bitmap size */
+ if (op->x1 < 0) op->x1 = 0;
+ if (op->y1 < 0) op->y1 = 0;
+ if (op->x2 > op->src.width) op->x2 = op->src.width;
+ if (op->y2 > op->src.height) op->y2 = op->src.height;
+ /* Offset the rectangle into dst coordinates */
+ op->x1 += op->dst_x;
+ op->x2 += op->dst_x;
+ op->y1 += op->dst_y;
+ op->y2 += op->dst_y;
+ /* Constrain dst rectangle to dst bitmap */
+ if (op->x1 < 0) op->x1 = 0;
+ if (op->y1 < 0) op->y1 = 0;
+ if (op->x2 > op->dst.width) op->x2 = op->dst.width;
+ if (op->y2 > op->dst.height) op->y2 = op->dst.height;
+ /* If we have nothing to copy, stop now */
+ if ((op->x2 - op->x1) < 1 ||
+ (op->y2 - op->y1) < 1)
+ return false;
+ /* Okay, stuff to copy, so let's begin */
+ op->src.ptr +=
+ (op->src.stride * (op->y1 - op->dst_y)) + /* move down y1 rows */
+ (op->x1 - op->dst_x) * 4; /* and across x1 pixels */
+ op->dst.ptr +=
+ (op->dst.stride * op->y1) + /* down down y1 rows */
+ (op->x1 * 4); /* and across x1 pixels */
+ for (ssize_t rowctr = op->y2 - op->y1; rowctr > 0; --rowctr) {
+ memcpy(op->dst.ptr, op->src.ptr, (op->x2 - op->x1) * 4);
+ op->src.ptr += op->src.stride;
+ op->dst.ptr += op->dst.stride;
+ }
+ return true;
+}
+
/* prologue ends */
%};
};
@@ -428,16 +494,11 @@ method CanvasRenderingContext2D::getImageData()
int width = duk_get_int(ctx, 2);
int height = duk_get_int(ctx, 3);
image_data_private_t *idpriv;
- uint8_t *src_base, *dst_base;
+ copy_operation copyop;
if (priv->bitmap == NULL)
return duk_generic_error(ctx, "Canvas in bad state, sorry");
- if (width < 1 || height < 1 ||
- (x + width) > priv->width || (y + height) > priv->height) {
- return duk_error(ctx, DUK_ERR_RANGE_ERROR, "invalid (%d,%d) (%dx%d)", x, y, width, height);
- }
-
duk_push_int(ctx, width);
duk_push_int(ctx, height);
if (dukky_create_object(ctx,
@@ -456,13 +517,30 @@ method CanvasRenderingContext2D::getImageData()
/* We now have access to the imagedata private, so we need to copy
* the pixel range out of ourselves
*/
- src_base = guit->bitmap->get_buffer(priv->bitmap);
- dst_base = idpriv->data;
- for (int yy = y; yy < (y+height); ++yy) {
- memcpy(dst_base, src_base + (x * 4), width * 4);
- src_base += priv->stride;
- dst_base += (width * 4);
- }
+ copyop.src.ptr = guit->bitmap->get_buffer(priv->bitmap);
+ copyop.src.stride = priv->stride;
+ copyop.src.width = priv->width;
+ copyop.src.height = priv->height;
+
+ copyop.dst.ptr = idpriv->data;
+ copyop.dst.stride = idpriv->width * 4;
+ copyop.dst.width = idpriv->width;
+ copyop.dst.height = idpriv->height;
+
+ /* Copying to top/left of our new bitmap */
+ copyop.dst_x = 0;
+ copyop.dst_y = 0;
+
+ /* Copying from x,y for width,height */
+ copyop.x1 = x;
+ copyop.x2 = x + width;
+ copyop.y1 = y;
+ copyop.y2 = y + height;
+
+ /* We don't care if the copy operation wrote or not because
+ * we don't need to invalidate ImageData objects
+ */
+ (void)canvas2d__copy_bitmap_to_bitmap(©op);
return 1;
%}
@@ -474,13 +552,7 @@ method CanvasRenderingContext2D::putImageData()
* copy the clip rectangle (defaults to whole image)
*/
image_data_private_t *idpriv;
- int x = duk_to_int(ctx, 1);
- int y = duk_to_int(ctx, 2);
- int clipx = 0;
- int clipy = 0;
- int clipw = 0;
- int cliph = 0;
- uint8_t *bitmap_base;
+ copy_operation copyop;
if (!dukky_instanceof(ctx, 0, PROTO_NAME(IMAGEDATA))) {
return duk_generic_error(ctx, "Expected ImageData as first argument");
@@ -493,39 +565,39 @@ method CanvasRenderingContext2D::putImageData()
idpriv = duk_get_pointer(ctx, -1);
duk_pop(ctx);
+ /* Copying from the input ImageData object */
+ copyop.src.ptr = idpriv->data;
+ copyop.src.stride = idpriv->width * 4;
+ copyop.src.width = idpriv->width;
+ copyop.src.height = idpriv->height;
+
+ /* Copying to ourselves */
+ copyop.dst.ptr = guit->bitmap->get_buffer(priv->bitmap);
+ copyop.dst.stride = priv->stride;
+ copyop.dst.width = priv->width;
+ copyop.dst.height = priv->height;
+
+ /* X Y target coordinates */
+ copyop.dst_x = duk_to_int(ctx, 1);
+ copyop.dst_y = duk_to_int(ctx, 2);
+
if (duk_get_top(ctx) < 7) {
/* Clipping data not provided */
- clipw = idpriv->width;
- cliph = idpriv->height;
+ copyop.x1 = 0;
+ copyop.y1 = 0;
+ copyop.x2 = idpriv->width;
+ copyop.y2 = idpriv->height;
} else {
- clipx = duk_to_int(ctx, 3);
- clipy = duk_to_int(ctx, 4);
- clipw = duk_to_int(ctx, 5);
- cliph = duk_to_int(ctx, 6);
+ copyop.x1 = duk_to_int(ctx, 3);
+ copyop.y1 = duk_to_int(ctx, 4);
+ copyop.x2 = copyop.x1 + duk_to_int(ctx, 5);
+ copyop.y2 = copyop.y1 + duk_to_int(ctx, 6);
}
- if (x < 0 || y < 0 || /* Not positioning negative */
- (x + clipx + clipw) > priv->width || /* RHS not beyond bounds */
- (y + clipy + cliph) > priv->height || /* bottom not beyond bounds */
- clipx < 0 || clipy < 0 || /* Input in range */
- (clipx + clipw) > idpriv->width || /* Input in range */
- (clipy + cliph) > idpriv->height) { /* Input in range */
- return duk_error(ctx, DUK_ERR_RANGE_ERROR, "invalid inputs: (%d,%d) (%d,%d) (%d,%d) (Me: %d,%d) (Img: %d,%d)",
- x,y,clipx,clipy,clipw,cliph, priv->width, priv->height, idpriv->width, idpriv->height);
+ if (canvas2d__copy_bitmap_to_bitmap(©op)) {
+ guit->bitmap->modified(priv->bitmap);
+ redraw_node((dom_node *)(priv->canvas));
}
- bitmap_base = guit->bitmap->get_buffer(priv->bitmap);
-
- for (int yy = clipy; yy < (clipy + cliph); yy++) {
- uint8_t *dst_row = bitmap_base + ((y + yy) * priv->stride);
- uint8_t *src_row = idpriv->data + (yy * idpriv->width * 4);
- memcpy(dst_row + ((x + clipx) * 4),
- src_row + (clipx * 4),
- clipw * 4);
- }
- guit->bitmap->modified(priv->bitmap);
-
- redraw_node((dom_node *)(priv->canvas));
-
return 0;
%}
-----------------------------------------------------------------------
Summary of changes:
.../duktape/CanvasRenderingContext2D.bnd | 168 ++++++++++++++------
test/js/life.html | 32 +++-
2 files changed, 144 insertions(+), 56 deletions(-)
diff --git a/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd b/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
index 007c587..db3c4ef 100644
--- a/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
+++ b/content/handlers/javascript/duktape/CanvasRenderingContext2D.bnd
@@ -270,7 +270,73 @@ canvas2d__handle_dom_event(dom_event *evt, void *pw)
priv->stride = stride;
priv->bitmap = newbitmap;
}
-
+
+typedef struct {
+ uint8_t *ptr;
+ size_t stride;
+ ssize_t width;
+ ssize_t height;
+} raw_bitmap;
+
+typedef struct {
+ raw_bitmap src;
+ raw_bitmap dst;
+ /* These are relative to the destination top/left */
+ ssize_t dst_x;
+ ssize_t dst_y;
+ /* These are relative to the source top/left */
+ ssize_t x1;
+ ssize_t y1;
+ /* And these are +1, so a 1x1 copy will have x2==x1+1 etc */
+ ssize_t x2;
+ ssize_t y2;
+} copy_operation;
+
+/**
+ * Copy from src to dst
+ *
+ * Note, this is destructive to its copy_operation input
+ *
+ * \param op The copy operation to perform
+ * \return Whether the destination bitmap was altered
+ */
+static bool
+canvas2d__copy_bitmap_to_bitmap(copy_operation *op)
+{
+ /* Constrain src rectangle to src bitmap size */
+ if (op->x1 < 0) op->x1 = 0;
+ if (op->y1 < 0) op->y1 = 0;
+ if (op->x2 > op->src.width) op->x2 = op->src.width;
+ if (op->y2 > op->src.height) op->y2 = op->src.height;
+ /* Offset the rectangle into dst coordinates */
+ op->x1 += op->dst_x;
+ op->x2 += op->dst_x;
+ op->y1 += op->dst_y;
+ op->y2 += op->dst_y;
+ /* Constrain dst rectangle to dst bitmap */
+ if (op->x1 < 0) op->x1 = 0;
+ if (op->y1 < 0) op->y1 = 0;
+ if (op->x2 > op->dst.width) op->x2 = op->dst.width;
+ if (op->y2 > op->dst.height) op->y2 = op->dst.height;
+ /* If we have nothing to copy, stop now */
+ if ((op->x2 - op->x1) < 1 ||
+ (op->y2 - op->y1) < 1)
+ return false;
+ /* Okay, stuff to copy, so let's begin */
+ op->src.ptr +=
+ (op->src.stride * (op->y1 - op->dst_y)) + /* move down y1 rows */
+ (op->x1 - op->dst_x) * 4; /* and across x1 pixels */
+ op->dst.ptr +=
+ (op->dst.stride * op->y1) + /* down down y1 rows */
+ (op->x1 * 4); /* and across x1 pixels */
+ for (ssize_t rowctr = op->y2 - op->y1; rowctr > 0; --rowctr) {
+ memcpy(op->dst.ptr, op->src.ptr, (op->x2 - op->x1) * 4);
+ op->src.ptr += op->src.stride;
+ op->dst.ptr += op->dst.stride;
+ }
+ return true;
+}
+
/* prologue ends */
%};
};
@@ -428,16 +494,11 @@ method CanvasRenderingContext2D::getImageData()
int width = duk_get_int(ctx, 2);
int height = duk_get_int(ctx, 3);
image_data_private_t *idpriv;
- uint8_t *src_base, *dst_base;
+ copy_operation copyop;
if (priv->bitmap == NULL)
return duk_generic_error(ctx, "Canvas in bad state, sorry");
- if (width < 1 || height < 1 ||
- (x + width) > priv->width || (y + height) > priv->height) {
- return duk_error(ctx, DUK_ERR_RANGE_ERROR, "invalid (%d,%d) (%dx%d)", x, y, width, height);
- }
-
duk_push_int(ctx, width);
duk_push_int(ctx, height);
if (dukky_create_object(ctx,
@@ -456,13 +517,30 @@ method CanvasRenderingContext2D::getImageData()
/* We now have access to the imagedata private, so we need to copy
* the pixel range out of ourselves
*/
- src_base = guit->bitmap->get_buffer(priv->bitmap);
- dst_base = idpriv->data;
- for (int yy = y; yy < (y+height); ++yy) {
- memcpy(dst_base, src_base + (x * 4), width * 4);
- src_base += priv->stride;
- dst_base += (width * 4);
- }
+ copyop.src.ptr = guit->bitmap->get_buffer(priv->bitmap);
+ copyop.src.stride = priv->stride;
+ copyop.src.width = priv->width;
+ copyop.src.height = priv->height;
+
+ copyop.dst.ptr = idpriv->data;
+ copyop.dst.stride = idpriv->width * 4;
+ copyop.dst.width = idpriv->width;
+ copyop.dst.height = idpriv->height;
+
+ /* Copying to top/left of our new bitmap */
+ copyop.dst_x = 0;
+ copyop.dst_y = 0;
+
+ /* Copying from x,y for width,height */
+ copyop.x1 = x;
+ copyop.x2 = x + width;
+ copyop.y1 = y;
+ copyop.y2 = y + height;
+
+ /* We don't care if the copy operation wrote or not because
+ * we don't need to invalidate ImageData objects
+ */
+ (void)canvas2d__copy_bitmap_to_bitmap(©op);
return 1;
%}
@@ -474,13 +552,7 @@ method CanvasRenderingContext2D::putImageData()
* copy the clip rectangle (defaults to whole image)
*/
image_data_private_t *idpriv;
- int x = duk_to_int(ctx, 1);
- int y = duk_to_int(ctx, 2);
- int clipx = 0;
- int clipy = 0;
- int clipw = 0;
- int cliph = 0;
- uint8_t *bitmap_base;
+ copy_operation copyop;
if (!dukky_instanceof(ctx, 0, PROTO_NAME(IMAGEDATA))) {
return duk_generic_error(ctx, "Expected ImageData as first argument");
@@ -493,39 +565,39 @@ method CanvasRenderingContext2D::putImageData()
idpriv = duk_get_pointer(ctx, -1);
duk_pop(ctx);
+ /* Copying from the input ImageData object */
+ copyop.src.ptr = idpriv->data;
+ copyop.src.stride = idpriv->width * 4;
+ copyop.src.width = idpriv->width;
+ copyop.src.height = idpriv->height;
+
+ /* Copying to ourselves */
+ copyop.dst.ptr = guit->bitmap->get_buffer(priv->bitmap);
+ copyop.dst.stride = priv->stride;
+ copyop.dst.width = priv->width;
+ copyop.dst.height = priv->height;
+
+ /* X Y target coordinates */
+ copyop.dst_x = duk_to_int(ctx, 1);
+ copyop.dst_y = duk_to_int(ctx, 2);
+
if (duk_get_top(ctx) < 7) {
/* Clipping data not provided */
- clipw = idpriv->width;
- cliph = idpriv->height;
+ copyop.x1 = 0;
+ copyop.y1 = 0;
+ copyop.x2 = idpriv->width;
+ copyop.y2 = idpriv->height;
} else {
- clipx = duk_to_int(ctx, 3);
- clipy = duk_to_int(ctx, 4);
- clipw = duk_to_int(ctx, 5);
- cliph = duk_to_int(ctx, 6);
+ copyop.x1 = duk_to_int(ctx, 3);
+ copyop.y1 = duk_to_int(ctx, 4);
+ copyop.x2 = copyop.x1 + duk_to_int(ctx, 5);
+ copyop.y2 = copyop.y1 + duk_to_int(ctx, 6);
}
- if (x < 0 || y < 0 || /* Not positioning negative */
- (x + clipx + clipw) > priv->width || /* RHS not beyond bounds */
- (y + clipy + cliph) > priv->height || /* bottom not beyond bounds */
- clipx < 0 || clipy < 0 || /* Input in range */
- (clipx + clipw) > idpriv->width || /* Input in range */
- (clipy + cliph) > idpriv->height) { /* Input in range */
- return duk_error(ctx, DUK_ERR_RANGE_ERROR, "invalid inputs: (%d,%d) (%d,%d) (%d,%d) (Me: %d,%d) (Img: %d,%d)",
- x,y,clipx,clipy,clipw,cliph, priv->width, priv->height, idpriv->width, idpriv->height);
+ if (canvas2d__copy_bitmap_to_bitmap(©op)) {
+ guit->bitmap->modified(priv->bitmap);
+ redraw_node((dom_node *)(priv->canvas));
}
- bitmap_base = guit->bitmap->get_buffer(priv->bitmap);
-
- for (int yy = clipy; yy < (clipy + cliph); yy++) {
- uint8_t *dst_row = bitmap_base + ((y + yy) * priv->stride);
- uint8_t *src_row = idpriv->data + (yy * idpriv->width * 4);
- memcpy(dst_row + ((x + clipx) * 4),
- src_row + (clipx * 4),
- clipw * 4);
- }
- guit->bitmap->modified(priv->bitmap);
-
- redraw_node((dom_node *)(priv->canvas));
-
return 0;
%}
diff --git a/test/js/life.html b/test/js/life.html
index bb3151b..de54d0a 100644
--- a/test/js/life.html
+++ b/test/js/life.html
@@ -15,7 +15,7 @@
<h1 class="ns-border">Conway's Game of Life</h1>
<div style="margin: 1em;">
<div>
- Run: <input id="running" type="checkbox" /><br />
+ Run: <input id="running" type="checkbox" checked/><br />
Set Size: <input id="width" type="text" size="4" value="50" /> x
<input id="height" type="text" size="4" value="50" />
<button id="commitsize">Commit</button><br />
@@ -37,10 +37,13 @@
const iheight = document.getElementById("height");
const surface = document.getElementById("surface");
const context = surface.getContext("2d");
- var width = surface.width;
- var height = surface.height;
+ var width = surface.width - 10;
+ var height = surface.height - 10;
var frame = context.createImageData(width, height);
var drawto = context.createImageData(width, height);
+ var greyto = context.createImageData(width, height);
+ const greylevel = 31;
+
function getOffset(x, y) {
if (x < 0) {
x = width + x;
@@ -63,10 +66,12 @@
function setCell(x, y) {
const offset = getOffset(x, y);
drawto.data[offset + 3] = 255;
+ greyto.data[offset + 3] = greylevel;
}
function clearCell(x, y) {
const offset = getOffset(x, y);
drawto.data[offset + 3] = 0;
+ greyto.data[offset + 3] = 0;
}
function countNeighbours(x, y) {
return (
@@ -82,7 +87,15 @@
}
function flip() {
var temp = frame;
- context.putImageData(drawto, 0, 0);
+ context.putImageData(drawto, 5, 5);
+ context.putImageData(greyto, 5 - width, 5 - height); /* top left */
+ context.putImageData(greyto, 5 - width, 5); /* left */
+ context.putImageData(greyto, 5, 5 - height); /* top */
+ context.putImageData(greyto, 5 + width, 5 + height); /* bottom right */
+ context.putImageData(greyto, 5 + width, 5); /* right */
+ context.putImageData(greyto, 5, 5 + height); /* bottom */
+ context.putImageData(greyto, 5 + width, 5 - height); /* top right */
+ context.putImageData(greyto, 5 - width, 5 + height); /* bottom left */
frame = drawto;
drawto = temp;
}
@@ -121,6 +134,7 @@
drawto.data[ofs] = 0;
} else {
drawto.data[ofs] = 255;
+ greyto.data[ofs] = greylevel;
}
ofs += 4;
}
@@ -142,14 +156,16 @@
ihval <= 200
) {
console.log("yes");
- surface.height = ihval;
- context.height = ihval;
+ surface.height = ihval + 10;
+ context.height = ihval + 10;
height = ihval;
- surface.width = iwval;
- context.width = iwval;
+ surface.width = iwval + 10;
+ context.width = iwval + 10;
width = iwval;
frame = context.createImageData(width, height);
drawto = context.createImageData(width, height);
+ greyto = context.createImageData(width, height);
+ resetGrey();
randomise();
}
});
--
NetSurf Browser
2 years, 8 months
libcss: annotated tag release/0.9.1 created. release/0.9.1
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libcss.git/shortlog/d0e5c17134b5393704b4cd...
...commit http://git.netsurf-browser.org/libcss.git/commit/d0e5c17134b5393704b4cdd6...
...tree http://git.netsurf-browser.org/libcss.git/tree/d0e5c17134b5393704b4cdd6a2...
The annotated tag, release/0.9.1 has been created
at d0e5c17134b5393704b4cdd6a27322504ffc6944 (tag)
tagging 385769d6554d2d3a9c2c35a04cf5dde706cefb6b (commit)
replaces release/0.9.0
tagged by Vincent Sanders
on Sun May 24 19:35:20 2020 +0100
- Log -----------------------------------------------------------------
Official Release
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEER2Lxrm9ACEGlKtFtebDHosvZO54FAl7KvmgACgkQebDHosvZ
O56/nQ//XSSkjB31OAt/ahMW9PTCQW3/yTPn0CsJ6oTCJC/0w04mgHQl3PhwvsZj
fDX83ugeS1dVacG5W5oYAp5Fvn0ODBpwAOROxIS6jNFg8bTIe9bvibgsOlxmG4LG
iSrMunSjkar5hWKMpjYXCRjF2wsHrTBCZqPH/jzdszm5U4WUrz8V6eG5jKwjgoLa
YDl8MaMvW/ltG2vT0vAB3mY8pzvlGCJvfKTVfaolPlFHm5ih2kdOQfVMRgkEk1DW
QZXAJMeGAkVIvTOTI2YzKdVFmK2e+FwoNb2sC88REcXtjnFWTupT5O28W3S9K1eb
+Tz8tr3y4Z08wMP4T6PPn3hYeplLTo8X9NTooH3DZFtg0j3mFsekTStD0+NdTe6G
m1Fn72jNQUzqOYpfcBclTy/ryerb0zPEiV6VdSQAX5zH/DnT8YDjLd/g5XaavNKL
6O7CQPiCAkgZKLTO6DzNddjWgefg71BDLdGYqc6xfL/H/CQ72SU9KHSlFjeYz/+p
zJ1F/JxxMflBXiww++K/6uCl3WDGvwzxAOINeDa93KwZi3pfmnTxw0IhcGSeegrV
ran/GKxwgYXCVcwj2lLbQpqGZ4dehztq4NbiWqEOZeKvUh/ybKRBJ+Kjwht5feMS
9YY1oU/KclKkmhOaDP+IJDuSzjvIaNiBZGuNQp6IB32yEe1O4/M=
=PHV0
-----END PGP SIGNATURE-----
Daniel Silverstone (2):
Add end-block-content parse event
tests: Add test for dodgy media block
Michael Drake (7):
Select hash: Simplify insertion at start of non-empty list.
Media queries: Don't set parts before allocation has failed.
Parse: Add missing error checks for flex-flow shorthand.
Parse: Add missing error checks for list-style shorthand.
Parse: Add missing error checks for outline shorthand.
Computed styles: Handle invalid width types.
Computed styles: Check length pair getter type before using result.
Vincent Sanders (1):
Update component version to 0.9.1 for release
-----------------------------------------------------------------------
--
Cascading Style Sheets library
2 years, 8 months
libcss: branch master updated. release/0.9.0-10-g385769d
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libcss.git/shortlog/385769d6554d2d3a9c2c35...
...commit http://git.netsurf-browser.org/libcss.git/commit/385769d6554d2d3a9c2c35a0...
...tree http://git.netsurf-browser.org/libcss.git/tree/385769d6554d2d3a9c2c35a04c...
The branch, master has been updated
via 385769d6554d2d3a9c2c35a04cf5dde706cefb6b (commit)
from 6be78419e673c7aaac7143d1dafaa6a4a747b32d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commitdiff http://git.netsurf-browser.org/libcss.git/commit/?id=385769d6554d2d3a9c2c...
commit 385769d6554d2d3a9c2c35a04cf5dde706cefb6b
Author: Vincent Sanders <vince(a)kyllikki.org>
Commit: Vincent Sanders <vince(a)kyllikki.org>
Update component version to 0.9.1 for release
Signed-off-by: Vincent Sanders <vince(a)kyllikki.org>
diff --git a/Makefile b/Makefile
index 8c3b908..0835c8f 100644
--- a/Makefile
+++ b/Makefile
@@ -2,11 +2,11 @@
#
# Makefile for libcss
#
-# Copyright 2009-2015 John-Mark Bell <jmb(a)netsurf-browser.org>
+# Copyright 2009-2020 John-Mark Bell <jmb(a)netsurf-browser.org>
# Component settings
COMPONENT := css
-COMPONENT_VERSION := 0.9.0
+COMPONENT_VERSION := 0.9.1
# Default to a static library
COMPONENT_TYPE ?= lib-static
-----------------------------------------------------------------------
Summary of changes:
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 8c3b908..0835c8f 100644
--- a/Makefile
+++ b/Makefile
@@ -2,11 +2,11 @@
#
# Makefile for libcss
#
-# Copyright 2009-2015 John-Mark Bell <jmb(a)netsurf-browser.org>
+# Copyright 2009-2020 John-Mark Bell <jmb(a)netsurf-browser.org>
# Component settings
COMPONENT := css
-COMPONENT_VERSION := 0.9.0
+COMPONENT_VERSION := 0.9.1
# Default to a static library
COMPONENT_TYPE ?= lib-static
--
Cascading Style Sheets library
2 years, 8 months
libnsutils: annotated tag release/0.1.0 created. release/0.1.0
by NetSurf Browser Project
Gitweb links:
...log http://git.netsurf-browser.org/libnsutils.git/shortlog/10b8489af302a4223f...
...commit http://git.netsurf-browser.org/libnsutils.git/commit/10b8489af302a4223f1f...
...tree http://git.netsurf-browser.org/libnsutils.git/tree/10b8489af302a4223f1fce...
The annotated tag, release/0.1.0 has been created
at 10b8489af302a4223f1fce16839f39a5e9f8032c (tag)
tagging 142a7945fb9fe477324f8df5e9645ef161042483 (commit)
replaces release/0.0.5
tagged by Vincent Sanders
on Sun May 24 19:25:24 2020 +0100
- Log -----------------------------------------------------------------
Official Release
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEER2Lxrm9ACEGlKtFtebDHosvZO54FAl7KvBQACgkQebDHosvZ
O57MlxAA3qHtt2zmTH20DQTv0sK2jADT0PKy0kyOSazB86MdFcUO9nG4HM3Km4kI
EmyNXjM8FArZq3QEv/Wl7nYWk8Xqv09Rh3UBzAQnwBFlnEkuztKAKq1d5BfyGZJY
9mu2pugJkShfZetdeGN+lOdtevbA2cAHOEDbxBI26INSlWZX67ZsPk2Vz/3J0AUa
daUa+RFbAs8qxTBfi+iuHNMOEwKhuowCn8zGUeEx2DH9XwWgk1uwRLeCOvVbEcfW
I27mX+bvwdMgOhyI7RKRidR+r1X+ozcoi8dLkXqJAsIgG7syEdH8o46nAJ1q2kDM
sgfh8KqrAypK/8q+fq8klcD9tKJqpLWGlyB2LI5ucD0RRgX9bRl+6xAH8STmACCA
lk1rwNe1qgfnFev1ZNOBMCSHoNd65PantaJnYGkubtqsioiduzzyX6dTppC35dfO
FWZuu/6RenV4uBoDQsYWXTXuLztav1yZ4AikAXfMbydWarrUI/0k8oscCsr8TIxc
el0qtr/1rhe9kCxntw2NvqZUh/6zV/P7wtMdNaEu1AIBD31FFOOFtEs37ZILtQdW
7G6f/9NtnaBxqWLHr2C0asmlgaNo9gdpZz99FYr584RTHA5k7D8H7MqGNR+nNCqa
/y2mff9J8miR6dEsWsggMxfd4YxZ7JJe8uSlgtmij3+U9Zl7DkM=
=i7mr
-----END PGP SIGNATURE-----
Vincent Sanders (4):
add serenity OS for pread and pwrite emulation
extend base64 api with url safe versions
add non allocating base64 encoding API
Update component version to 0.1.0 for release
-----------------------------------------------------------------------
--
NetSurf generalised utility library
2 years, 8 months