wok-next rev 18758

syslinux: compress kbd file
author Pascal Bellard <pascal.bellard@slitaz.org>
date Tue Dec 29 10:21:19 2015 +0100 (2015-12-29)
parents ef4ed701a27f
children d94dea3c101e
files syslinux/receipt syslinux/stuff/extra/loadhigh.u syslinux/stuff/extra/md5sum.c
line diff
     1.1 --- a/syslinux/receipt	Tue Dec 29 08:59:31 2015 +0100
     1.2 +++ b/syslinux/receipt	Tue Dec 29 10:21:19 2015 +0100
     1.3 @@ -123,6 +123,8 @@
     1.4  		echo "$msg"
     1.5  	done
     1.6  	( cd $src/kbd; cat ../kbd.l | cpio -o -H newc ) >$fs/boot/isolinux/kbd
     1.7 +	lzma e $fs/boot/isolinux/kbd $fs/boot/isolinux/kbd.lzma
     1.8 +	mv -f $fs/boot/isolinux/kbd.lzma $fs/boot/isolinux/kbd
     1.9  	chown root.root $fs/boot/isolinux/*
    1.10  }
    1.11  
     2.1 --- a/syslinux/stuff/extra/loadhigh.u	Tue Dec 29 08:59:31 2015 +0100
     2.2 +++ b/syslinux/stuff/extra/loadhigh.u	Tue Dec 29 10:21:19 2015 +0100
     2.3 @@ -44,7 +44,7 @@
     2.4  +	break;
     2.5  +    case 0x2204:
     2.6  +    case 0x2102:
     2.7 -+	buf = unlz4(unpacked, buf);
     2.8 ++	buf = unlz4((unsigned char *) unpacked, (unsigned char *) buf);
     2.9  +	break;
    2.10  +    }
    2.11  +#endif
    2.12 @@ -529,7 +529,7 @@
    2.13  +		if (magic) {
    2.14  +			if (magic > 0)
    2.15  +			for (end_chunk = p + magic; p < end_chunk;) {
    2.16 -+				char *dico;
    2.17 ++				unsigned char *dico;
    2.18  +				unsigned char token = *p++;
    2.19  +
    2.20  +				n = lz4cnt(&p, token >> 4);
     3.1 --- a/syslinux/stuff/extra/md5sum.c	Tue Dec 29 08:59:31 2015 +0100
     3.2 +++ b/syslinux/stuff/extra/md5sum.c	Tue Dec 29 10:21:19 2015 +0100
     3.3 @@ -573,6 +573,7 @@
     3.4  		syslinux_setadv(slot++, strlen(*argv), *argv);
     3.5  }
     3.6  
     3.7 +#include "../../core/unlzma.c"
     3.8  static int main_kbdmap(int argc, char *argv[])
     3.9  {
    3.10      const struct syslinux_keyboard_map *const kmap = syslinux_keyboard_map();
    3.11 @@ -592,8 +593,18 @@
    3.12  
    3.13      msg = "Load error";
    3.14      if (kmap->version != 1 ||
    3.15 -	loadfile(argv[1], (void **) &kbdmap, &map_size) || 
    3.16 -	strncmp(kbdmap, "07070", 5))
    3.17 +	loadfile(argv[1], (void **) &kbdmap, &map_size))
    3.18 +    	goto kbdmap_error;
    3.19 +    if (* (short *) kbdmap == 0x005D) {
    3.20 +	void *p = malloc(map_size = * (long *) (kbdmap + 5));
    3.21 +	void *heap = malloc(2*(1846 + (768 << (3 + 0))) + 16);
    3.22 +
    3.23 +	unlzma(kbdmap, p, heap);
    3.24 +	free(heap);
    3.25 +	free(kbdmap);
    3.26 +	kbdmap = p;
    3.27 +    }
    3.28 +    if (strncmp(kbdmap, "07070", 5))
    3.29      	goto kbdmap_error;
    3.30  
    3.31      // search for mapfile in cpio archive