mirror of
https://github.com/pbatard/rufus.git
synced 2025-05-31 06:48:26 -04:00
[cmp] add pkzip decompression support
* Now you can install a Raspbian image without having to decompress it first ;)
This commit is contained in:
parent
7567ddef07
commit
517a14ccb1
14 changed files with 422 additions and 21 deletions
|
@ -266,6 +266,7 @@ typedef uint64_t bb__aliased_uint64_t FIX_ALIASING;
|
|||
* a lvalue. This makes it more likely to not swap them by mistake
|
||||
*/
|
||||
#if defined(i386) || defined(__x86_64__) || defined(__powerpc__)
|
||||
# define BB_UNALIGNED_MEMACCESS_OK 1
|
||||
# define move_from_unaligned_int(v, intp) ((v) = *(bb__aliased_int*)(intp))
|
||||
# define move_from_unaligned_long(v, longp) ((v) = *(bb__aliased_long*)(longp))
|
||||
# define move_from_unaligned16(v, u16p) ((v) = *(bb__aliased_uint16_t*)(u16p))
|
||||
|
@ -274,6 +275,7 @@ typedef uint64_t bb__aliased_uint64_t FIX_ALIASING;
|
|||
# define move_to_unaligned32(u32p, v) (*(bb__aliased_uint32_t*)(u32p) = (v))
|
||||
/* #elif ... - add your favorite arch today! */
|
||||
#else
|
||||
# define BB_UNALIGNED_MEMACCESS_OK 0
|
||||
/* performs reasonably well (gcc usually inlines memcpy here) */
|
||||
# define move_from_unaligned_int(v, intp) (memcpy(&(v), (intp), sizeof(int)))
|
||||
# define move_from_unaligned_long(v, longp) (memcpy(&(v), (longp), sizeof(long)))
|
||||
|
@ -411,10 +413,12 @@ typedef unsigned smalluint;
|
|||
#define HAVE_DPRINTF 1
|
||||
#define HAVE_MEMRCHR 1
|
||||
#define HAVE_MKDTEMP 1
|
||||
#define HAVE_TTYNAME_R 1
|
||||
#define HAVE_PTSNAME_R 1
|
||||
#define HAVE_SETBIT 1
|
||||
#define HAVE_SIGHANDLER_T 1
|
||||
#define HAVE_STPCPY 1
|
||||
#define HAVE_MEMPCPY 1
|
||||
#define HAVE_STRCASESTR 1
|
||||
#define HAVE_STRCHRNUL 1
|
||||
#define HAVE_STRSEP 1
|
||||
|
@ -524,6 +528,8 @@ typedef unsigned smalluint;
|
|||
#endif
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
/* users say mempcpy is not present in FreeBSD 9.x */
|
||||
# undef HAVE_MEMPCPY
|
||||
# undef HAVE_CLEARENV
|
||||
# undef HAVE_FDATASYNC
|
||||
# undef HAVE_MNTENT_H
|
||||
|
@ -548,9 +554,17 @@ typedef unsigned smalluint;
|
|||
#endif
|
||||
|
||||
#if defined(ANDROID) || defined(__ANDROID__)
|
||||
# undef HAVE_DPRINTF
|
||||
# undef HAVE_GETLINE
|
||||
# undef HAVE_STPCPY
|
||||
# if __ANDROID_API__ < 8
|
||||
# undef HAVE_DPRINTF
|
||||
# else
|
||||
# define dprintf fdprintf
|
||||
# endif
|
||||
# if __ANDROID_API__ < 21
|
||||
# undef HAVE_TTYNAME_R
|
||||
# undef HAVE_GETLINE
|
||||
# undef HAVE_STPCPY
|
||||
# endif
|
||||
# undef HAVE_MEMPCPY
|
||||
# undef HAVE_STRCHRNUL
|
||||
# undef HAVE_STRVERSCMP
|
||||
# undef HAVE_UNLOCKED_LINE_OPS
|
||||
|
@ -574,6 +588,11 @@ extern void *memrchr(const void *s, int c, size_t n) FAST_FUNC;
|
|||
extern char *mkdtemp(char *template) FAST_FUNC;
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_TTYNAME_R
|
||||
#define ttyname_r bb_ttyname_r
|
||||
extern int ttyname_r(int fd, char *buf, size_t buflen);
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_SETBIT
|
||||
# define setbit(a, b) ((a)[(b) >> 3] |= 1 << ((b) & 7))
|
||||
# define clrbit(a, b) ((a)[(b) >> 3] &= ~(1 << ((b) & 7)))
|
||||
|
@ -587,6 +606,18 @@ typedef void (*sighandler_t)(int);
|
|||
extern char *stpcpy(char *p, const char *to_add) FAST_FUNC;
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_MEMPCPY
|
||||
#include <string.h>
|
||||
/* In case we are wrong about !HAVE_MEMPCPY, and toolchain _does_ have
|
||||
* mempcpy(), avoid colliding with it:
|
||||
*/
|
||||
#define mempcpy bb__mempcpy
|
||||
static ALWAYS_INLINE void *mempcpy(void *dest, const void *src, size_t len)
|
||||
{
|
||||
return memcpy(dest, src, len) + len;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRCASESTR
|
||||
extern char *strcasestr(const char *s, const char *pattern) FAST_FUNC;
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue