summary refs log tree commit diff
path: root/pkgs/development/compilers/algol68g/0001-plotutils-png-support.diff
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/algol68g/0001-plotutils-png-support.diff')
-rw-r--r--pkgs/development/compilers/algol68g/0001-plotutils-png-support.diff27
1 files changed, 27 insertions, 0 deletions
diff --git a/pkgs/development/compilers/algol68g/0001-plotutils-png-support.diff b/pkgs/development/compilers/algol68g/0001-plotutils-png-support.diff
new file mode 100644
index 00000000000..14e7ccd5624
--- /dev/null
+++ b/pkgs/development/compilers/algol68g/0001-plotutils-png-support.diff
@@ -0,0 +1,27 @@
+diff -Naur algol68g-2.8.4-old/source/plotutils.c algol68g-2.8.4-new/source/plotutils.c
+--- algol68g-2.8.4-old/source/plotutils.c	2016-10-11 18:14:48.000000000 -0300
++++ algol68g-2.8.4-new/source/plotutils.c	2021-07-30 02:42:29.762627511 -0300
+@@ -1026,10 +1026,10 @@
+     X_COORD (&DEVICE (f)) = 0;
+     Y_COORD (&DEVICE (f)) = 0;
+     return (PLOTTER (&DEVICE (f)));
+-  } else if (!strcmp (device_type, "gif")) {
+-/*------------------------------------+
+-| Supported plotter type - pseudo GIF |
+-+------------------------------------*/
++  } else if (!strcmp (device_type, "gif") || !strcmp (device_type, "png")) {
++/*-------------------------------------------+
++| Supported plotter type - pseudo GIF or PNG |
+++-------------------------------------------*/
+     char *z = DEREF (char, &A68_PAGE_SIZE (&DEVICE (f))), size[BUFFER_SIZE];
+ /* Establish page size */
+     if (!scan_int (&z, &(WINDOW_X_SIZE (&DEVICE (f))))) {
+@@ -1067,7 +1067,7 @@
+     (void) pl_setplparam (PLOTTER_PARAMS (&DEVICE (f)), "BITMAPSIZE", size);
+     (void) pl_setplparam (PLOTTER_PARAMS (&DEVICE (f)), "BG_COLOR", (void *) "black");
+     (void) pl_setplparam (PLOTTER_PARAMS (&DEVICE (f)), "GIF_ANIMATION", (void *) "no");
+-    PLOTTER (&DEVICE (f)) = pl_newpl_r ("gif", NULL, STREAM (&DEVICE (f)), stderr, PLOTTER_PARAMS (&DEVICE (f)));
++    PLOTTER (&DEVICE (f)) = pl_newpl_r (device_type, NULL, STREAM (&DEVICE (f)), stderr, PLOTTER_PARAMS (&DEVICE (f)));
+     if (PLOTTER (&DEVICE (f)) == NULL) {
+       diagnostic_node (A68_RUNTIME_ERROR, p, ERROR_DEVICE_CANNOT_OPEN);
+       exit_genie (p, A68_RUNTIME_ERROR);