aalib: add various patches

upstream is long dead, add various fixes
This commit is contained in:
Markus Volk 2024-05-28 01:29:54 +02:00
parent 0f40882e28
commit c38db22ef6
10 changed files with 290 additions and 3 deletions

View File

@ -0,0 +1,12 @@
diff -Nur aalib-1.4.0-orig/src/aalinuxkbd.c aalib-1.4.0/src/aalinuxkbd.c
--- aalib-1.4.0-orig/src/aalinuxkbd.c 2001-04-26 16:37:31.000000000 +0200
+++ aalib-1.4.0/src/aalinuxkbd.c 2005-07-01 22:57:59.000000000 +0200
@@ -200,7 +200,7 @@
static int rawmode_init(void)
{
if (!closed)
- return;
+ return 1;
mypid = getpid();
if (tty_fd == -1) {
tty_fd = fileno(stdin);

View File

@ -0,0 +1,106 @@
Add additional system header #include directives for more
function prototypes. This avoids implicit function declarations
and build failures with future compilers.
diff --git a/src/aafire.c b/src/aafire.c
index 4f36149aa84fba57..a59b5c5fa58e085b 100644
--- a/src/aafire.c
+++ b/src/aafire.c
@@ -1,4 +1,5 @@
#include <stdio.h>
+#include <stdlib.h>
#include "aalib.h"
#define XSIZ aa_imgwidth(context)
diff --git a/src/aainfo.c b/src/aainfo.c
index d3f6d50f34590638..f4250ee37ae46134 100644
--- a/src/aainfo.c
+++ b/src/aainfo.c
@@ -1,3 +1,4 @@
+#include <stdlib.h>
#include "aalib.h"
#include "aaint.h"
diff --git a/src/aakbdreg.c b/src/aakbdreg.c
index def65fe25646d75a..682616313c1b6ebd 100644
--- a/src/aakbdreg.c
+++ b/src/aakbdreg.c
@@ -1,4 +1,5 @@
#include <malloc.h>
+#include <string.h>
#include "config.h"
#include "aalib.h"
#include "aaint.h"
diff --git a/src/aalib.c b/src/aalib.c
index 11fecc8fe8ef6b59..1ef12c0dfa9026a4 100644
--- a/src/aalib.c
+++ b/src/aalib.c
@@ -1,4 +1,5 @@
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <malloc.h>
#include "aalib.h"
diff --git a/src/aalinuxkbd.c b/src/aalinuxkbd.c
index c7f388abfe9e8c7f..ea988154518dfc8e 100644
--- a/src/aalinuxkbd.c
+++ b/src/aalinuxkbd.c
@@ -8,6 +8,7 @@
*/
#include "config.h"
+#include <stdlib.h>
#ifdef LINUX_DRIVER
#include <sys/time.h>
#include <sys/types.h>
diff --git a/src/aamoureg.c b/src/aamoureg.c
index 03808289eb59b928..6d807416ae0d3dc2 100644
--- a/src/aamoureg.c
+++ b/src/aamoureg.c
@@ -1,4 +1,5 @@
#include <malloc.h>
+#include <string.h>
#include "config.h"
#include "aalib.h"
#include "aaint.h"
diff --git a/src/aaregist.c b/src/aaregist.c
index 54abec0b9797533a..768b8ce29e286b00 100644
--- a/src/aaregist.c
+++ b/src/aaregist.c
@@ -1,4 +1,5 @@
#include <malloc.h>
+#include <string.h>
#include "config.h"
#include "aalib.h"
#include "aaint.h"
diff --git a/src/aasavefont.c b/src/aasavefont.c
index b00e1e6d7f181952..864ba225d5ef626c 100644
--- a/src/aasavefont.c
+++ b/src/aasavefont.c
@@ -1,3 +1,4 @@
+#include <stdlib.h>
#include "aalib.h"
int main(int argc, char **argv)
{
diff --git a/src/aatest.c b/src/aatest.c
index 9816f5d855134894..89933cfba6344270 100644
--- a/src/aatest.c
+++ b/src/aatest.c
@@ -1,3 +1,5 @@
+#include <stdlib.h>
+#include <string.h>
#include "aalib.h"
int main(int argc, char **argv)
{
diff --git a/src/aaxkbd.c b/src/aaxkbd.c
index f16afc63bb565512..44b91458b4bef3bc 100644
--- a/src/aaxkbd.c
+++ b/src/aaxkbd.c
@@ -7,6 +7,7 @@
#include <X11/Xlib.h>
#include <X11/keysymdef.h>
#include <X11/keysym.h>
+#include <X11/Xutil.h>
#include "aalib.h"
#include "aaint.h"
#include "aaxint.h"

View File

@ -0,0 +1,34 @@
This bug can be seen very clearly with e.g. mplayer -vo aa -monitoraspect 3
in which case a big part of the picture is missing or there is even completely
black output.
The reason for this is, when drawing only a part of the picture via aarender()
the first X coordinate is used for the loop count, but it is not applied to the
destination and source image index, thus instead of (re)drawing the middle part
of the image, it draws always the left part.
Actual Results:
only the left part of the image is draw (depending on the video, only the left
black bar might be draw, so you will see nothing at all - if so use a slightly
smaller value for -monitoraspect).
Expected Results:
All of the image should be drawn, and -monitoraspect should only squeeze the
image, not cause part of it to miss.
Gentoo-bug: http://bugs.gentoo.org/id=214142
Reported-by: Reimar Döffinger
Fixed-by: Reimar Döffinger
--- a/src/aarender.c.orig 2008-03-18 23:55:32.000000000 +0100
+++ b/src/aarender.c 2008-03-18 23:55:50.000000000 +0100
@@ -94,8 +94,8 @@
gamma = randomval / 2;
mval = (c->parameters[c->filltable[255]].p[4]);
for (y = y1; y < y2; y++) {
- pos = 2 * y * wi;
- pos1 = y * aa_scrwidth(c);
+ pos = 2 * (y * wi + x1);
+ pos1 = y * aa_scrwidth(c) + x1;
esum = 0;
for (x = x1; x < x2; x++) {
i1 = table[((((int) c->imagebuffer[pos])))];

View File

@ -0,0 +1,14 @@
--- a/src/aarender.c
+++ b/src/aarender.c
@@ -63,10 +63,10 @@ void aa_renderpalette(aa_context * c, __
errors[0] = calloc(1, (x2 + 5) * sizeof(int));
if (errors[0] == NULL)
dither = AA_ERRORDISTRIB;
- errors[0] += 3;
errors[1] = calloc(1, (x2 + 5) * sizeof(int));
if (errors[1] == NULL)
free(errors[0]), dither = AA_ERRORDISTRIB;
+ errors[0] += 3;
errors[1] += 3;
cur = 0;
}

View File

@ -0,0 +1,23 @@
diff -Naur a/src/aalinuxkbd.c b/src/aalinuxkbd.c
--- a/src/aalinuxkbd.c 2016-12-19 12:40:26.660039735 +0100
+++ b/src/aalinuxkbd.c 2016-12-19 12:42:21.692045971 +0100
@@ -114,6 +114,7 @@
static int vtswitch_allowed;
static char key_down[128];
+static size_t key_down_size = 128;
static int closed = 1;
static int mypid;
@@ -165,10 +166,7 @@
static void blank_key_down(void)
{
- int f;
-
- for (f = 0; f < NR_KEYS; f++)
- key_down[f] = 0;
+ memset(key_down, 0, key_down_size);
}

View File

@ -0,0 +1,25 @@
Index: aalib.m4
===================================================================
RCS file: /cvsroot/aa-project/aalib/aalib.m4,v
retrieving revision 1.2
diff -u -r1.2 aalib.m4
--- a/aalib.m4 3 May 2001 14:56:44 -0000 1.2
+++ b/aalib.m4 28 Mar 2017 08:36:42 -0000
@@ -40,14 +40,14 @@
if test "$AALIB_CONFIG" = "no" ; then
no_aalib=yes
else
- AALIB_CFLAGS=`$AALIB_CONFIG $aalibconf_args --cflags`
- AALIB_LIBS=`$AALIB_CONFIG $aalibconf_args --libs`
+ AALIB_CFLAGS=`$AALIB_CONFIG $aalib_args --cflags`
+ AALIB_LIBS=`$AALIB_CONFIG $aalib_args --libs`
aalib_major_version=`$AALIB_CONFIG $aalib_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
aalib_minor_version=`$AALIB_CONFIG $aalib_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
- aalib_micro_version=`$AALIB_CONFIG $aalib_config_args --version | \
+ aalib_micro_version=`$AALIB_CONFIG $aalib_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_aalibtest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"

View File

@ -0,0 +1,39 @@
From 6125c3438e6cf30e1ebd70ca6ac3f1e04481c7a7 Mon Sep 17 00:00:00 2001
From: Gergely Nagy <algernon@madhouse-project.org>
Date: Sat, 30 Jun 2012 13:08:13 +0200
Subject: [PATCH] Typo fix: KEY_MOUDE => KEY_MOUSE
Patch by Sam Hocevar <sam@zoy.org> 17 Nov 2003
Origin: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=221243
---
src/aacurkbd.c | 2 +-
src/aastdin.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/aacurkbd.c b/src/aacurkbd.c
index 801897b..418b6a3 100644
--- a/src/aacurkbd.c
+++ b/src/aacurkbd.c
@@ -112,7 +112,7 @@ static int curses_getchar(aa_context * c1, int wait)
return (AA_UP);
case KEY_DOWN:
return (AA_DOWN);
-#ifdef KEY_MOUDE
+#ifdef KEY_MOUSE
case KEY_MOUSE:
#ifdef GPM_MOUSEDRIVER
if (!__curses_usegpm)
diff --git a/src/aastdin.c b/src/aastdin.c
index 696d87b..e2dabe4 100644
--- a/src/aastdin.c
+++ b/src/aastdin.c
@@ -88,7 +88,7 @@ static int stdin_getchar(aa_context * c1, int wait)
if (c > 0 && c < 127 && c != 127)
return (c);
switch (c) {
-#ifdef KEY_MOUDE
+#ifdef KEY_MOUSE
case KEY_MOUSE:
return AA_MOUSE
#endif

View File

@ -0,0 +1,14 @@
diff -up aalib-1.4.0/src/aacurses.c.opaque-ncurses-fix aalib-1.4.0/src/aacurses.c
--- aalib-1.4.0/src/aacurses.c.opaque-ncurses-fix 2024-02-10 06:32:32.008267145 -0500
+++ aalib-1.4.0/src/aacurses.c 2024-02-10 06:33:38.648245270 -0500
@@ -71,8 +71,8 @@ static void curses_getsize(aa_context *
{
if (__resized_curses)
curses_uninit(c), curses_init(&c->params, NULL,&c->driverparams, NULL), __resized_curses = 0;
- *width = stdscr->_maxx + 1;
- *height = stdscr->_maxy + 1;
+ *width = getmaxx(stdscr);
+ *height = getmaxy(stdscr);
#ifdef GPM_MOUSEDRIVER
gpm_mx = *width;
gpm_my = *height;

View File

@ -0,0 +1,11 @@
--- a/aalib.m4 2006-03-05 13:58:21.000000000 +0000
+++ b/aalib.m4 2006-03-05 13:58:32.000000000 +0000
@@ -9,7 +9,7 @@
dnl AM_PATH_AALIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Test for AALIB, and define AALIB_CFLAGS and AALIB_LIBS
dnl
-AC_DEFUN(AM_PATH_AALIB,
+AC_DEFUN([AM_PATH_AALIB],
[dnl
dnl Get the cflags and libraries from the aalib-config script
dnl

View File

@ -9,10 +9,19 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
S = "${WORKDIR}/aalib-1.4.0"
SRC_URI = "${SOURCEFORGE_MIRROR}/projects/aa-project/files/aa-lib/1.4rc5/aalib-1.4rc5.tar.gz"
SRC_URI = " \
${SOURCEFORGE_MIRROR}/projects/aa-project/files/aa-lib/1.4rc5/aalib-1.4rc5.tar.gz \
file://aalib-aalinuxkbd-return.patch \
file://aalib-free-offset-pointer.patch \
file://aalib-key-down-OOB.patch \
file://aalib-opaque-ncurses-fix.patch \
file://aclocal-fixes.patch \
file://aalib-c99.patch \
file://aalib-fix-aarender.patch \
file://aalib-m4.patch \
file://aalib-mouse.patch \
"
SRC_URI[sha256sum] = "fbddda9230cf6ee2a4f5706b4b11e2190ae45f5eda1f0409dc4f99b35e0a70ee"
inherit autotools
CFLAGS:append = " -fPIC "