Date: Friday, March 9, 2018 @ 19:50:27 Author: jelle Revision: 318356
upgpkg: slang 2.3.2-1 Modified: slang/trunk/PKGBUILD Deleted: slang/trunk/0001-pre2.3.2-19-Added-support-for-the-new-ncurses-32-bit.patch -----------------------------------------------------------------+ 0001-pre2.3.2-19-Added-support-for-the-new-ncurses-32-bit.patch | 202 ---------- PKGBUILD | 17 2 files changed, 5 insertions(+), 214 deletions(-) Deleted: 0001-pre2.3.2-19-Added-support-for-the-new-ncurses-32-bit.patch =================================================================== --- 0001-pre2.3.2-19-Added-support-for-the-new-ncurses-32-bit.patch 2018-03-09 18:32:00 UTC (rev 318355) +++ 0001-pre2.3.2-19-Added-support-for-the-new-ncurses-32-bit.patch 2018-03-09 19:50:27 UTC (rev 318356) @@ -1,202 +0,0 @@ -From 6dd5ade9a97b52ace4ac033779a6d3c1c51db4d1 Mon Sep 17 00:00:00 2001 -From: "John E. Davis" <[email protected]> -Date: Tue, 30 Jan 2018 04:04:17 -0500 -Subject: [PATCH] pre2.3.2-19: Added support for the new ncurses 32-bit - terminfo database entries. - -diff --git a/src/sltermin.c b/src/sltermin.c -index 34bc73c..99fc8f9 100644 ---- a/src/sltermin.c -+++ b/src/sltermin.c -@@ -33,6 +33,11 @@ USA. - * term(4) man page on an SGI. - */ - -+/* The ncurses terminfo binary files come in two flavors: A legacy -+ * format that uses 16 bit integers in the number-section, and a new -+ * 32 bit format (nurses 6, from 2018). -+ */ -+ - /* Short integers are stored in two 8-bit bytes. The first byte contains - * the least significant 8 bits of the value, and the second byte contains - * the most significant 8 bits. (Thus, the value represented is -@@ -43,7 +48,7 @@ USA. - * source and also is to be considered missing. - */ - --static int make_integer (unsigned char *buf) -+static int make_integer16 (unsigned char *buf) - { - register int lo, hi; - lo = (int) *buf++; hi = (int) *buf; -@@ -55,6 +60,20 @@ static int make_integer (unsigned char *buf) - return lo + 256 * hi; - } - -+static int make_integer32 (unsigned char *buf) -+{ -+ unsigned int u; -+ int i; -+ -+ u = (unsigned int)buf[0]; -+ u |= ((unsigned int)buf[1])<<8; -+ u |= ((unsigned int)buf[2])<<16; -+ u |= ((unsigned int)buf[3])<<24; -+ -+ i = (int)u; -+ return i; -+} -+ - /* - * The compiled file is created from the source file descriptions of the - * terminals (see the -I option of infocmp) by using the terminfo compiler, -@@ -64,14 +83,15 @@ static int make_integer (unsigned char *buf) - * - * The header section begins the file. This section contains six short - * integers in the format described below. These integers are (1) the magic -- * number (octal 0432); (2) the size, in bytes, of the names section; (3) -- * the number of bytes in the boolean section; (4) the number of short -- * integers in the numbers section; (5) the number of offsets (short -+ * number (legacy:0432, 01036:32 but); (2) the size, in bytes, of the names section; (3) -+ * the number of bytes in the boolean section; (4) the number of integers -+ * in the numbers section; (5) the number of offsets (short - * integers) in the strings section; (6) the size, in bytes, of the string - * table. - */ - --#define MAGIC 0432 -+#define MAGIC_LEGACY 0432 -+#define MAGIC_32BIT 01036 - - /* In this structure, all char * fields are malloced EXCEPT if the - * structure is SLTERMCAP. In that case, only terminal_names is malloced -@@ -91,6 +111,8 @@ struct _pSLterminfo_Type - - unsigned int num_numbers; - unsigned char *numbers; -+ unsigned int sizeof_number; -+ int (*make_integer)(unsigned char *); - - unsigned int num_string_offsets; - unsigned char *string_offsets; -@@ -109,6 +131,7 @@ static FILE *open_terminfo (char *file, SLterminfo_Type *h) - { - FILE *fp; - unsigned char buf[12]; -+ int magic; - - /* Alan Cox reported a security problem here if the application using the - * library is setuid. So, I need to make sure open the file as a normal -@@ -122,19 +145,34 @@ static FILE *open_terminfo (char *file, SLterminfo_Type *h) - fp = fopen (file, "rb"); - if (fp == NULL) return NULL; - -- if ((12 == fread ((char *) buf, 1, 12, fp) && (MAGIC == make_integer (buf)))) -+ if (12 != fread ((char *)buf, 1, 12, fp)) - { -- h->name_section_size = make_integer (buf + 2); -- h->boolean_section_size = make_integer (buf + 4); -- h->num_numbers = make_integer (buf + 6); -- h->num_string_offsets = make_integer (buf + 8); -- h->string_table_size = make_integer (buf + 10); -+ (void) fclose(fp); -+ return NULL; -+ } -+ magic = make_integer16(buf); -+ if (magic == MAGIC_LEGACY) -+ { -+ h->make_integer = make_integer16; -+ h->sizeof_number = 2; -+ } -+ else if (magic == MAGIC_32BIT) -+ { -+ h->make_integer = make_integer32; -+ h->sizeof_number = 4; - } - else - { -- fclose (fp); -- fp = NULL; -+ (void) fclose (fp); -+ return NULL; - } -+ -+ h->name_section_size = make_integer16 (buf + 2); -+ h->boolean_section_size = make_integer16 (buf + 4); -+ h->num_numbers = make_integer16 (buf + 6); -+ h->num_string_offsets = make_integer16 (buf + 8); -+ h->string_table_size = make_integer16 (buf + 10); -+ - return fp; - } - -@@ -187,13 +225,14 @@ static unsigned char *read_boolean_flags (FILE *fp, SLterminfo_Type *t) - - /* - * The numbers section is similar to the boolean flags section. Each -- * capability takes up two bytes, and is stored as a short integer. If the -- * value represented is -1 or -2, the capability is taken to be missing. -+ * capability takes up 2(4) bytes for the legacy(32 bit) format and -+ * is stored as a integer. If the value represented is -1 or -2, the -+ * capability is taken to be missing. - */ - - static unsigned char *read_numbers (FILE *fp, SLterminfo_Type *t) - { -- return t->numbers = read_terminfo_section (fp, 2 * t->num_numbers); -+ return t->numbers = read_terminfo_section (fp, t->sizeof_number * t->num_numbers); - } - - /* The strings section is also similar. Each capability is stored as a -@@ -402,7 +441,7 @@ char *_pSLtt_tigetstr (SLterminfo_Type *t, SLCONST char *cap) - - offset = compute_cap_offset (cap, t, Tgetstr_Map, t->num_string_offsets); - if (offset < 0) return NULL; -- offset = make_integer (t->string_offsets + 2 * offset); -+ offset = make_integer16 (t->string_offsets + 2 * offset); - if (offset < 0) return NULL; - return t->string_table + offset; - } -@@ -418,7 +457,8 @@ int _pSLtt_tigetnum (SLterminfo_Type *t, SLCONST char *cap) - - offset = compute_cap_offset (cap, t, Tgetnum_Map, t->num_numbers); - if (offset < 0) return -1; -- return make_integer (t->numbers + 2 * offset); -+ -+ return (*t->make_integer)(t->numbers + t->sizeof_number * offset); - } - - int _pSLtt_tigetflag (SLterminfo_Type *t, SLCONST char *cap) -diff --git a/src/untic.c b/src/untic.c -index bd15478..2fa966a 100644 ---- a/src/untic.c -+++ b/src/untic.c -@@ -36,7 +36,7 @@ int main (int argc, char **argv) - puts (t->terminal_names); - while (*map->name != 0) - { -- str = (unsigned char *) SLtt_tigetstr (map->name, (char **) &t); -+ str = (unsigned char *) SLtt_tigetstr ((SLFUTURE_CONST char *)map->name, (char **) &t); - if (str == NULL) - { - map++; -@@ -76,7 +76,7 @@ int main (int argc, char **argv) - while (*map->name != 0) - { - int val; -- if ((val = SLtt_tigetnum (map->name, (char **) &t)) >= 0) -+ if ((val = SLtt_tigetnum ((SLFUTURE_CONST char *)map->name, (char **) &t)) >= 0) - { - fprintf (stdout, "\t%s#%d\t\t%s\n", - map->name, val, -@@ -85,6 +85,7 @@ int main (int argc, char **argv) - map++; - } - -+ _pSLtt_tifreeent (t); - return 0; - } - --- -2.16.1 - Modified: PKGBUILD =================================================================== --- PKGBUILD 2018-03-09 18:32:00 UTC (rev 318355) +++ PKGBUILD 2018-03-09 19:50:27 UTC (rev 318356) @@ -4,8 +4,8 @@ # Contributor: Tom Newsom <[email protected]> pkgname=slang -pkgver=2.3.1a -pkgrel=2 +pkgver=2.3.2 +pkgrel=1 pkgdesc="S-Lang is a powerful interpreted language" arch=('x86_64') url="http://www.jedsoft.org/slang/" @@ -13,18 +13,11 @@ depends=('pcre') backup=('etc/slsh.rc') options=('!makeflags') -source=(http://www.jedsoft.org/releases/slang/${pkgname}-${pkgver}.tar.bz2{,.asc} - 0001-pre2.3.2-19-Added-support-for-the-new-ncurses-32-bit.patch) -sha1sums=('a8ea7f1b5736160a94efb67b137a0f5b9916bdf2' - 'SKIP' - '94548d7d996f5d75e02d8e158e261c0b3e013599') +source=(http://www.jedsoft.org/releases/slang/${pkgname}-${pkgver}.tar.bz2{,.asc}) +sha1sums=('bbf7f2dcc14e7c7fca40868fd4b411a2bd9e2655' + 'SKIP') validpgpkeys=('AE962A02D29BFE4A4BB2805FDE401E0D5873000A') # John E. Davis -prepare() { - cd ${pkgname}-${pkgver} - patch -p1 -i ../0001-pre2.3.2-19-Added-support-for-the-new-ncurses-32-bit.patch -} - build() { cd ${pkgname}-${pkgver} ./configure --prefix=/usr --sysconfdir=/etc
