Unverified Commit 310faf7f authored by Terry Ellison's avatar Terry Ellison Committed by GitHub
Browse files

Merge pull request #2886 from nodemcu/dev

Next master drop
parents 68c425c0 a08e74d9
#ifndef __c_stddef_h
#define __c_stddef_h
typedef signed int ptrdiff_t;
#if !defined(offsetof)
#define offsetof(s, m) (size_t)&(((s *)0)->m)
#endif
#if !defined(__size_t)
#define __size_t 1
typedef unsigned int size_t; /* others (e.g. <stdio.h>) also define */
/* the unsigned integral type of the result of the sizeof operator. */
#endif
#undef NULL /* others (e.g. <stdio.h>) also define */
#define NULL 0
/* null pointer constant. */
#endif
/* end of c_stddef.h */
#ifndef __c_stdint_h
#define __c_stdint_h
#include "c_types.h"
#if 0
/*
* Depending on compiler version __int64 or __INT64_TYPE__ should be defined.
*/
#ifndef __int64
#ifdef __INT64_TYPE__
#define __int64 __INT64_TYPE__
#else
#define __int64 long long
#endif
/* On some architectures neither of these may be defined - if so, fall
through and error out if used. */
#endif
#ifndef __STDINT_DECLS
#define __STDINT_DECLS
#undef __CLIBNS
#ifdef __cplusplus
namespace std {
#define __CLIBNS std::
extern "C" {
#else
#define __CLIBNS
#endif /* __cplusplus */
/*
* 'signed' is redundant below, except for 'signed char' and if
* the typedef is used to declare a bitfield.
* '__int64' is used instead of 'long long' so that this header
* can be used in --strict mode.
*/
/* 7.18.1.1 */
/* exact-width signed integer types */
typedef signed char int8_t;
typedef signed short int int16_t;
typedef signed int int32_t;
typedef signed __int64 int64_t;
/* exact-width unsigned integer types */
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned __int64 uint64_t;
/* 7.18.1.2 */
/* smallest type of at least n bits */
/* minimum-width signed integer types */
typedef signed char int_least8_t;
typedef signed short int int_least16_t;
typedef signed int int_least32_t;
typedef signed __int64 int_least64_t;
/* minimum-width unsigned integer types */
typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;
typedef unsigned __int64 uint_least64_t;
/* 7.18.1.3 */
/* fastest minimum-width signed integer types */
typedef signed int int_fast8_t;
typedef signed int int_fast16_t;
typedef signed int int_fast32_t;
typedef signed __int64 int_fast64_t;
/* fastest minimum-width unsigned integer types */
typedef unsigned int uint_fast8_t;
typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
typedef unsigned __int64 uint_fast64_t;
/* 7.18.1.4 integer types capable of holding object pointers */
typedef signed int intptr_t;
typedef unsigned int uintptr_t;
/* 7.18.1.5 greatest-width integer types */
typedef signed __int64 intmax_t;
typedef unsigned __int64 uintmax_t;
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
/* 7.18.2.1 */
/* minimum values of exact-width signed integer types */
#define INT8_MIN -128
#define INT16_MIN -32768
#define INT32_MIN (~0x7fffffff) /* -2147483648 is unsigned */
#define INT64_MIN __ESCAPE__(~0x7fffffffffffffffll) /* -9223372036854775808 is unsigned */
/* maximum values of exact-width signed integer types */
#define INT8_MAX 127
#define INT16_MAX 32767
#define INT32_MAX 2147483647
#define INT64_MAX __ESCAPE__(9223372036854775807ll)
/* maximum values of exact-width unsigned integer types */
#define UINT8_MAX 255
#define UINT16_MAX 65535
#define UINT32_MAX 4294967295u
#define UINT64_MAX __ESCAPE__(18446744073709551615ull)
/* 7.18.2.2 */
/* minimum values of minimum-width signed integer types */
#define INT_LEAST8_MIN -128
#define INT_LEAST16_MIN -32768
#define INT_LEAST32_MIN (~0x7fffffff)
#define INT_LEAST64_MIN __ESCAPE__(~0x7fffffffffffffffll)
/* maximum values of minimum-width signed integer types */
#define INT_LEAST8_MAX 127
#define INT_LEAST16_MAX 32767
#define INT_LEAST32_MAX 2147483647
#define INT_LEAST64_MAX __ESCAPE__(9223372036854775807ll)
/* maximum values of minimum-width unsigned integer types */
#define UINT_LEAST8_MAX 255
#define UINT_LEAST16_MAX 65535
#define UINT_LEAST32_MAX 4294967295u
#define UINT_LEAST64_MAX __ESCAPE__(18446744073709551615ull)
/* 7.18.2.3 */
/* minimum values of fastest minimum-width signed integer types */
#define INT_FAST8_MIN (~0x7fffffff)
#define INT_FAST16_MIN (~0x7fffffff)
#define INT_FAST32_MIN (~0x7fffffff)
#define INT_FAST64_MIN __ESCAPE__(~0x7fffffffffffffffll)
/* maximum values of fastest minimum-width signed integer types */
#define INT_FAST8_MAX 2147483647
#define INT_FAST16_MAX 2147483647
#define INT_FAST32_MAX 2147483647
#define INT_FAST64_MAX __ESCAPE__(9223372036854775807ll)
/* maximum values of fastest minimum-width unsigned integer types */
#define UINT_FAST8_MAX 4294967295u
#define UINT_FAST16_MAX 4294967295u
#define UINT_FAST32_MAX 4294967295u
#define UINT_FAST64_MAX __ESCAPE__(18446744073709551615ull)
/* 7.18.2.4 */
/* minimum value of pointer-holding signed integer type */
#define INTPTR_MIN (~0x7fffffff)
/* maximum value of pointer-holding signed integer type */
#define INTPTR_MAX 2147483647
/* maximum value of pointer-holding unsigned integer type */
#define UINTPTR_MAX 4294967295u
/* 7.18.2.5 */
/* minimum value of greatest-width signed integer type */
#define INTMAX_MIN __ESCAPE__(~0x7fffffffffffffffll)
/* maximum value of greatest-width signed integer type */
#define INTMAX_MAX __ESCAPE__(9223372036854775807ll)
/* maximum value of greatest-width unsigned integer type */
#define UINTMAX_MAX __ESCAPE__(18446744073709551615ull)
/* 7.18.3 */
/* limits of ptrdiff_t */
#define PTRDIFF_MIN (~0x7fffffff)
#define PTRDIFF_MAX 2147483647
/* limits of sig_atomic_t */
#define SIG_ATOMIC_MIN (~0x7fffffff)
#define SIG_ATOMIC_MAX 2147483647
/* limit of size_t */
#define SIZE_MAX 4294967295u
/* limits of wchar_t */
/* NB we have to undef and redef because they're defined in both
* stdint.h and wchar.h */
#undef WCHAR_MIN
#undef WCHAR_MAX
#if defined(__WCHAR32) || (defined(__ARM_SIZEOF_WCHAR_T) && __ARM_SIZEOF_WCHAR_T == 4)
#define WCHAR_MIN 0
#define WCHAR_MAX 0xffffffffU
#else
#define WCHAR_MIN 0
#define WCHAR_MAX 65535
#endif
/* limits of wint_t */
#define WINT_MIN (~0x7fffffff)
#define WINT_MAX 2147483647
#endif /* __STDC_LIMIT_MACROS */
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
/* 7.18.4.1 macros for minimum-width integer constants */
#define INT8_C(x) (x)
#define INT16_C(x) (x)
#define INT32_C(x) (x)
#define INT64_C(x) __ESCAPE__(x ## ll)
#define UINT8_C(x) (x ## u)
#define UINT16_C(x) (x ## u)
#define UINT32_C(x) (x ## u)
#define UINT64_C(x) __ESCAPE__(x ## ull)
/* 7.18.4.2 macros for greatest-width integer constants */
#define INTMAX_C(x) __ESCAPE__(x ## ll)
#define UINTMAX_C(x) __ESCAPE__(x ## ull)
#endif /* __STDC_CONSTANT_MACROS */
#ifdef __cplusplus
} /* extern "C" */
} /* namespace std */
#endif /* __cplusplus */
#endif /* __STDINT_DECLS */
#ifdef __cplusplus
#ifndef __STDINT_NO_EXPORTS
using ::std::int8_t;
using ::std::int16_t;
using ::std::int32_t;
using ::std::int64_t;
using ::std::uint8_t;
using ::std::uint16_t;
using ::std::uint32_t;
using ::std::uint64_t;
using ::std::int_least8_t;
using ::std::int_least16_t;
using ::std::int_least32_t;
using ::std::int_least64_t;
using ::std::uint_least8_t;
using ::std::uint_least16_t;
using ::std::uint_least32_t;
using ::std::uint_least64_t;
using ::std::int_fast8_t;
using ::std::int_fast16_t;
using ::std::int_fast32_t;
using ::std::int_fast64_t;
using ::std::uint_fast8_t;
using ::std::uint_fast16_t;
using ::std::uint_fast32_t;
using ::std::uint_fast64_t;
using ::std::intptr_t;
using ::std::uintptr_t;
using ::std::intmax_t;
using ::std::uintmax_t;
#endif
#endif /* __cplusplus */
#endif
#endif /* __c_stdint_h */
/* end of c_stdint.h */
#ifndef _C_STDIO_H_
#define _C_STDIO_H_
#define __need_size_t
#include "c_stddef.h"
#include "osapi.h"
// #include "driver/uart.h"
// #define __need___va_list
//#include "c_stdarg.h"
//struct __sFILE{
// int _r; /* read space left for getc() */
// int _w; /* write space left for putc() */
//};
// typedef struct __sFILE __FILE;
// typedef __FILE FILE;
extern int c_stdin;
extern int c_stdout;
extern int c_stderr;
// #define _IOFBF 0 /* setvbuf should set fully buffered */
// #define _IOLBF 1 /* setvbuf should set line buffered */
// #define _IONBF 2 /* setvbuf should set unbuffered */
// #ifndef NULL
// #define NULL 0
// #endif
#define EOF (-1)
#ifdef __BUFSIZ__
#define BUFSIZ __BUFSIZ__
#else
#define BUFSIZ 1024
#endif
#ifndef SEEK_SET
#define SEEK_SET 0 /* set file offset to offset */
#endif
#ifndef SEEK_CUR
#define SEEK_CUR 1 /* set file offset to current plus offset */
#endif
#ifndef SEEK_END
#define SEEK_END 2 /* set file offset to EOF plus offset */
#endif
// #define c_malloc os_malloc
// #define c_zalloc os_zalloc
// #define c_free os_free
extern void output_redirect(const char *str);
#define c_puts output_redirect
// #define c_printf os_printf
// int c_printf(const char *c, ...);
#if defined( LUA_NUMBER_INTEGRAL )
#define c_sprintf os_sprintf
#else
#include "c_stdarg.h"
int c_sprintf(char* s,const char *fmt, ...);
#endif
extern void dbg_printf(const char *fmt, ...) __attribute__ ((format (printf, 1, 2)));
#define c_vsprintf ets_vsprintf
#define c_printf(...) do { \
unsigned char __print_buf[BUFSIZ]; \
c_sprintf(__print_buf, __VA_ARGS__); \
c_puts(__print_buf); \
} while(0)
// #define c_getc ets_getc
// #define c_getchar ets_getc
// note: contact esp to ensure the real getchar function..
// FILE *c_fopen(const char *_name, const char *_type);
// FILE *c_freopen(const char *, const char *, FILE *);
// FILE *c_tmpfile(void);
// int c_putchar(int);
// int c_printf(const char *, ...);
// int c_sprintf(char *, const char *, ...);
// int c_getc(FILE *);
// int c_ungetc(int, FILE *);
// int c_fprintf(FILE *, const char *, ...);
// int c_fscanf(FILE *, const char *, ...);
// int c_fclose(FILE *);
// int c_fflush(FILE *);
// int c_setvbuf(FILE *, char *, int, size_t);
// void c_clearerr(FILE *);
// int c_fseek(FILE *, long, int);
// long c_ftell( FILE *);
// int c_fputs(const char *, FILE *);
// char *c_fgets(char *, int, FILE *);
// size_t c_fread(void *, size_t _size, size_t _n, FILE *);
// size_t c_fwrite(const void * , size_t _size, size_t _n, FILE *);
// int c_feof(FILE *);
// int c_ferror(FILE *);
#endif /* _C_STDIO_H_ */
/*
* c_stdlib.h
*
* Definitions for common types, variables, and functions.
*/
#ifndef _C_STDLIB_H_
#define _C_STDLIB_H_
#include "c_stddef.h"
#include "mem.h"
#include <stdlib.h>
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
#define __INT_MAX__ 2147483647
#undef __RAND_MAX
#if __INT_MAX__ == 32767
#define __RAND_MAX 32767
#else
#define __RAND_MAX 0x7fffffff
#endif
#define RAND_MAX __RAND_MAX
#ifndef mem_realloc
#define mem_realloc pvPortRealloc
#endif
#ifndef os_realloc
#define os_realloc(p, s) mem_realloc((p), (s))
#endif
#define c_free os_free
#define c_malloc os_malloc
#define c_zalloc os_zalloc
#define c_realloc os_realloc
#define c_abs abs
#define c_atoi atoi
//#define c_strtod strtod
#define c_strtol strtol
#define c_strtoul strtoul
// int c_abs(int);
// void c_exit(int);
//const char *c_getenv(const char *__string);
// void *c_malloc(size_t __size);
// void *c_zalloc(size_t __size);
// void c_free(void *);
// int c_rand(void);
// void c_srand(unsigned int __seed);
// int c_atoi(const char *__nptr);
double c_strtod(const char *__n, char **__end_PTR);
// // long c_strtol(const char *__n, char **__end_PTR, int __base);
// unsigned long c_strtoul(const char *__n, char **__end_PTR, int __base);
// // long long c_strtoll(const char *__n, char **__end_PTR, int __base);
#endif /* _C_STDLIB_H_ */
#include "c_string.h"
#include "c_stdlib.h"
// const char *c_strstr(const char * __s1, const char * __s2){
// }
// char *c_strncat(char * s1, const char * s2, size_t n){
// }
// size_t c_strcspn(const char * s1, const char * s2){
// }
// const char *c_strpbrk(const char * s1, const char * s2){
// }
// int c_strcoll(const char * s1, const char * s2){
// }
//
char *c_strdup(const char *c) {
int len = os_strlen(c) + 1;
char *ret = os_malloc(len);
if (ret) {
memcpy(ret, c, len);
}
return ret;
}
/* $OpenBSD: strlcpy.c,v 1.8 2003/06/17 21:56:24 millert Exp $ */
/*
* Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* Copy src to string dst of size siz. At most siz-1 characters
* will be copied. Always NUL terminates (unless siz == 0).
* Returns strlen(src); if retval >= siz, truncation occurred.
*/
size_t
c_strlcpy(char *dst, const char *src, size_t siz)
{
register char *d = dst;
register const char *s = src;
register size_t n = siz;
/* Copy as many bytes as will fit */
if (n != 0 && --n != 0) {
do {
if ((*d++ = *s++) == 0)
break;
} while (--n != 0);
}
/* Not enough room in dst, add NUL and traverse rest of src */
if (n == 0) {
if (siz != 0)
*d = '\0'; /* NUL-terminate dst */
while (*s++)
;
}
return(s - src - 1); /* count does not include NUL */
}
/* $OpenBSD: strlcat.c,v 1.11 2003/06/17 21:56:24 millert Exp $ */
/*
* Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/*
* Appends src to string dst of size siz (unlike strncat, siz is the
* full size of dst, not space left). At most siz-1 characters
* will be copied. Always NUL terminates (unless siz <= strlen(dst)).
* Returns strlen(src) + MIN(siz, strlen(initial dst)).
* If retval >= siz, truncation occurred.
*/
size_t
c_strlcat(char *dst, const char *src, size_t siz)
{
register char *d = dst;
register const char *s = src;
register size_t n = siz;
size_t dlen;
/* Find the end of dst and adjust bytes left but don't go past end */
while (n-- != 0 && *d != '\0')
d++;
dlen = d - dst;
n = siz - dlen;
if (n == 0)
return(dlen + strlen(s));
while (*s != '\0') {
if (n != 1) {
*d++ = *s;
n--;
}
s++;
}
*d = '\0';
return(dlen + (s - src)); /* count does not include NUL */
}
/*
* c_string.h
*
* Definitions for memory and string functions.
*/
#ifndef _C_STRING_H_
#define _C_STRING_H_
#include "c_stddef.h"
#include "osapi.h"
#ifndef NULL
#define NULL 0
#endif
#define c_memcmp os_memcmp
#define c_memcpy os_memcpy
#define c_memset os_memset
#define c_strcat os_strcat
#define c_strchr os_strchr
#define c_strcmp os_strcmp
#define c_strcpy os_strcpy
#define c_strlen os_strlen
#define c_strncmp os_strncmp
#define c_strncpy os_strncpy
// #define c_strstr os_strstr
#define c_strncasecmp c_strncmp
#define c_strstr strstr
#define c_strncat strncat
#define c_strcspn strcspn
#define c_strpbrk strpbrk
#define c_strcoll strcoll
#define c_strrchr strrchr
// const char *c_strstr(const char * __s1, const char * __s2);
// char *c_strncat(char * __restrict /*s1*/, const char * __restrict /*s2*/, size_t n);
// size_t c_strcspn(const char * s1, const char * s2);
// const char *c_strpbrk(const char * /*s1*/, const char * /*s2*/);
// int c_strcoll(const char * /*s1*/, const char * /*s2*/);
//
extern size_t c_strlcpy(char *dst, const char *src, size_t siz);
extern size_t c_strlcat(char *dst, const char *src, size_t siz);
extern char *c_strdup(const char *src);
#endif /* _C_STRING_H_ */
#include "c_math.h" #include <math.h>
#include "c_types.h" #include <stdbool.h>
#include "user_config.h"
double floor(double x) double floor(double x)
{ {
...@@ -11,7 +10,7 @@ double floor(double x) ...@@ -11,7 +10,7 @@ double floor(double x)
#define MINEXP -2047 /* (MIN_EXP * 16) - 1 */ #define MINEXP -2047 /* (MIN_EXP * 16) - 1 */
#define HUGE MAXFLOAT #define HUGE MAXFLOAT
double a1[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = static const double a1[] =
{ {
1.0, 1.0,
0.95760328069857365, 0.95760328069857365,
...@@ -31,7 +30,7 @@ double a1[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = ...@@ -31,7 +30,7 @@ double a1[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR =
0.52213689121370692, 0.52213689121370692,
0.50000000000000000 0.50000000000000000
}; };
double a2[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = static const double a2[] =
{ {
0.24114209503420288E-17, 0.24114209503420288E-17,
0.92291566937243079E-18, 0.92291566937243079E-18,
...@@ -42,18 +41,19 @@ double a2[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = ...@@ -42,18 +41,19 @@ double a2[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR =
0.29306999570789681E-17, 0.29306999570789681E-17,
0.11260851040933474E-17 0.11260851040933474E-17
}; };
double p1 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.833333333333332114e-1; static const double
double p2 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.125000000005037992e-1; p1 = 0.833333333333332114e-1,
double p3 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.223214212859242590e-2; p2 = 0.125000000005037992e-1,
double p4 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.434457756721631196e-3; p3 = 0.223214212859242590e-2,
double q1 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.693147180559945296e0; p4 = 0.434457756721631196e-3,
double q2 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.240226506959095371e0; q1 = 0.693147180559945296e0,
double q3 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.555041086640855953e-1; q2 = 0.240226506959095371e0,
double q4 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.961812905951724170e-2; q3 = 0.555041086640855953e-1,
double q5 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.133335413135857847e-2; q4 = 0.961812905951724170e-2,
double q6 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.154002904409897646e-3; q5 = 0.133335413135857847e-2,
double q7 ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.149288526805956082e-4; q6 = 0.154002904409897646e-3,
double k ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = 0.442695040888963407; q7 = 0.149288526805956082e-4,
k = 0.442695040888963407;
double pow(double x, double y) double pow(double x, double y)
{ {
...@@ -134,103 +134,3 @@ double pow(double x, double y) ...@@ -134,103 +134,3 @@ double pow(double x, double y)
double res = ldexp(z, m); double res = ldexp(z, m);
return flipsignal ? -res : res; return flipsignal ? -res : res;
} }
#if 0
#ifndef __math_68881
double atan(double x)
{
return x;
}
double cos(double x)
{
return x;
}
double sin(double x)
{
return x;
}
double tan(double x)
{
return x;
}
double tanh(double x)
{
return x;
}
double frexp(double x, int *y)
{
return x;
}
double modf(double x, double *y)
{
return x;
}
double ceil(double x)
{
return x;
}
double fabs(double x)
{
return x;
}
double floor(double x)
{
return x;
}
#endif /* ! defined (__math_68881) */
/* Non reentrant ANSI C functions. */
#ifndef _REENT_ONLY
#ifndef __math_68881
double acos(double x)
{
return x;
}
double asin(double x)
{
return x;
}
double atan2(double x, double y)
{
return x;
}
double cosh(double x)
{
return x;
}
double sinh(double x)
{
return x;
}
double exp(double x)
{
return x;
}
double ldexp(double x, int y)
{
return x;
}
double log(double x)
{
return x;
}
double log10(double x)
{
return x;
}
double pow(double x, double y)
{
return x;
}
double sqrt(double x)
{
return x;
}
double fmod(double x, double y)
{
return x;
}
#endif /* ! defined (__math_68881) */
#endif /* ! defined (_REENT_ONLY) */
#endif
#include "c_stdio.h" #include <stdio.h>
// #include "driver/uart.h"
int c_stdin = 999; int c_stdin = 999;
int c_stdout = 1000; int c_stdout = 1000;
int c_stderr = 1001; int c_stderr = 1001;
// FILE *c_fopen(const char *_name, const char *_type){
// }
// FILE *c_freopen(const char *_name, const char *_type, FILE *_f){
// }
// FILE *c_tmpfile(void){
// }
// int c_putchar(int c){
// }
// int c_printf(const char *c, ...){
// }
// int c_sprintf(char *c, const char *s, ...){
// }
// int c_fprintf(FILE *f, const char *s, ...){
// }
// int c_fscanf(FILE *f, const char *s, ...){
// }
// int c_fclose(FILE *f){
// }
// int c_fflush(FILE *f){
// }
// int c_setvbuf(FILE *f, char *c, int d, size_t t){
// }
// void c_clearerr(FILE *f){
// }
// int c_fseek(FILE *f, long l, int d){
// }
// long c_ftell( FILE *f){
// }
// int c_fputs(const char *c, FILE *f){
// }
// char *c_fgets(char *c, int d, FILE *f){
// }
// int c_ungetc(int d, FILE *f){
// }
// size_t c_fread(void *p, size_t _size, size_t _n, FILE *f){
// }
// size_t c_fwrite(const void *p, size_t _size, size_t _n, FILE *f){
// }
// int c_feof(FILE *f){
// }
// int c_ferror(FILE *f){
// }
// int c_getc(FILE *f){
// }
#if defined( LUA_NUMBER_INTEGRAL ) #if defined( LUA_NUMBER_INTEGRAL )
#include <stdarg.h>
int sprintf(char *s, const char *fmt, ...)
{
int n;
va_list arg;
va_start(arg, fmt);
n = ets_vsprintf(s, fmt, arg);
va_end(arg);
return n;
}
int vsprintf (char *d, const char *s, va_list ap)
{
return ets_vsprintf(d, s, ap);
}
#else #else
#define FLOATINGPT 1 #define FLOATINGPT 1
...@@ -97,8 +64,7 @@ int c_stderr = 1001; ...@@ -97,8 +64,7 @@ int c_stderr = 1001;
* SUCH DAMAGE. * SUCH DAMAGE.
* *
*/ */
//#include <string.h> #include <string.h>
#include "c_string.h"
char * char *
strichr(char *p, int c) strichr(char *p, int c)
...@@ -147,8 +113,7 @@ strichr(char *p, int c) ...@@ -147,8 +113,7 @@ strichr(char *p, int c)
* SUCH DAMAGE. * SUCH DAMAGE.
* *
*/ */
//#include <string.h> #include <string.h>
#include "c_string.h"
#define FMT_RJUST 0 #define FMT_RJUST 0
#define FMT_LJUST 1 #define FMT_LJUST 1
...@@ -221,10 +186,8 @@ str_fmt(char *p, int size, int fmt) ...@@ -221,10 +186,8 @@ str_fmt(char *p, int size, int fmt)
* SUCH DAMAGE. * SUCH DAMAGE.
* *
*/ */
//#include <string.h> #include <string.h>
//#include <ctype.h> #include <ctype.h>
#include "c_string.h"
#include "c_ctype.h"
void void
strtoupper(char *p) strtoupper(char *p)
...@@ -269,10 +232,9 @@ strtoupper(char *p) ...@@ -269,10 +232,9 @@ strtoupper(char *p)
*/ */
//#include <sys/types.h> //#include <sys/types.h>
//#include <string.h> #include <string.h>
#include <stdint.h>
//#include <pmon.h> //#include <pmon.h>
#include "c_string.h"
typedef unsigned int u_int32_t;
typedef unsigned int u_int; typedef unsigned int u_int;
typedef unsigned long u_long; typedef unsigned long u_long;
typedef int32_t register_t; typedef int32_t register_t;
...@@ -371,7 +333,7 @@ _atob (u_quad_t *vp, char *p, int base) ...@@ -371,7 +333,7 @@ _atob (u_quad_t *vp, char *p, int base)
* converts p to binary result in vp, rtn 1 on success * converts p to binary result in vp, rtn 1 on success
*/ */
int int
atob(u_int32_t *vp, char *p, int base) atob(uint32_t *vp, char *p, int base)
{ {
u_quad_t v; u_quad_t v;
...@@ -554,13 +516,10 @@ gethex(int32_t *vp, char *p, int n) ...@@ -554,13 +516,10 @@ gethex(int32_t *vp, char *p, int n)
* *
*/ */
//#include <stdio.h> //#include <stdio.h>
//#include <stdarg.h>
//#include <string.h>
//#include <ctype.h>
//#include <pmon.h> //#include <pmon.h>
#include "c_stdarg.h" #include <stdarg.h>
#include "c_string.h" #include <string.h>
#include "c_ctype.h" #include <ctype.h>
/* /*
* int vsprintf(d,s,ap) * int vsprintf(d,s,ap)
...@@ -1091,10 +1050,9 @@ exponent(char *p, int exp, int fmtch) ...@@ -1091,10 +1050,9 @@ exponent(char *p, int exp, int fmtch)
} }
return (p); return (p);
} }
#endif /* FLOATINGPT */
int c_sprintf(char *s, const char *fmt, ...) int sprintf(char *s, const char *fmt, ...)
{ {
int n; int n;
va_list arg; va_list arg;
...@@ -1104,4 +1062,6 @@ int c_sprintf(char *s, const char *fmt, ...) ...@@ -1104,4 +1062,6 @@ int c_sprintf(char *s, const char *fmt, ...)
return n; return n;
} }
#endif /* FLOATINGPT */
#endif #endif
//#include "user_interface.h"
#include "user_config.h" #include "user_config.h"
#ifdef LUA_CROSS_COMPILER
#include <stdlib.h> #include <stdlib.h>
#include <ctype.h> #include <ctype.h>
#include <string.h> #include <string.h>
#include <stdint.h>
#ifdef LUA_CROSS_COMPILER
#define ICACHE_RODATA_ATTR #define ICACHE_RODATA_ATTR
#define TRUE 1 #define TRUE 1
#define FALSE 0 #define FALSE 0
#else
#include "c_stdlib.h"
#include "c_types.h"
#include "c_string.h"
#include <_ansi.h>
//#include <reent.h>
//#include "mprec.h"
#endif #endif
double powersOf10[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = /* Table giving binary powers of 10. Entry */ double powersOf10[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = /* Table giving binary powers of 10. Entry */
{ {
...@@ -32,7 +23,7 @@ double powersOf10[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = /* Table giving bin ...@@ -32,7 +23,7 @@ double powersOf10[] ICACHE_STORE_ATTR ICACHE_RODATA_ATTR = /* Table giving bin
1.0e256 1.0e256
}; };
double c_strtod(const char *string, char **endPtr) double strtod(const char *string, char **endPtr)
{ {
int maxExponent = 511; /* Largest possible base 10 exponent. Any int maxExponent = 511; /* Largest possible base 10 exponent. Any
* exponent larger than this will already * exponent larger than this will already
...@@ -256,10 +247,3 @@ done: ...@@ -256,10 +247,3 @@ done:
} }
return fraction; return fraction;
} }
// long c_strtol(const char *__n, char **__end_PTR, int __base){
// }
// unsigned long c_strtoul(const char *__n, char **__end_PTR, int __base){
// }
// long long c_strtoll(const char *__n, char **__end_PTR, int __base){
// }
...@@ -40,12 +40,6 @@ STD_CFLAGS=-std=gnu11 -Wimplicit ...@@ -40,12 +40,6 @@ STD_CFLAGS=-std=gnu11 -Wimplicit
# Required for each makefile to inherit from the parent # Required for each makefile to inherit from the parent
# #
INCLUDES := $(INCLUDES) -I $(PDIR)include
INCLUDES += -I ./
INCLUDES += -I ../spiffs
INCLUDES += -I ../libc
INCLUDES += -I ../modules
INCLUDES += -I ../platform
INCLUDES += -I ../uzlib INCLUDES += -I ../uzlib
PDIR := ../$(PDIR) PDIR := ../$(PDIR)
sinclude $(PDIR)Makefile sinclude $(PDIR)Makefile
......
...@@ -10,9 +10,8 @@ ...@@ -10,9 +10,8 @@
#include "lua.h" #include "lua.h"
//#include C_HEADER_ASSERT #include <math.h>
#include C_HEADER_MATH #include <string.h>
#include C_HEADER_STRING
#include "lapi.h" #include "lapi.h"
#include "ldebug.h" #include "ldebug.h"
#include "ldo.h" #include "ldo.h"
...@@ -463,7 +462,7 @@ LUA_API void lua_pushstring (lua_State *L, const char *s) { ...@@ -463,7 +462,7 @@ LUA_API void lua_pushstring (lua_State *L, const char *s) {
if (s == NULL) if (s == NULL)
lua_pushnil(L); lua_pushnil(L);
else else
lua_pushlstring(L, s, c_strlen(s)); lua_pushlstring(L, s, strlen(s));
} }
......
...@@ -7,18 +7,19 @@ ...@@ -7,18 +7,19 @@
#define LUAC_CROSS_FILE #define LUAC_CROSS_FILE
#include "lua.h" #include "lua.h"
#include C_HEADER_CTYPE #include <ctype.h>
#ifdef __MINGW__ #ifdef __MINGW__
#include <errno.h> #include <errno.h>
#else #else
#ifdef _MSC_VER //msvc #defines errno, which interferes with our #include macro #ifdef _MSC_VER //msvc #defines errno, which interferes with our #include macro
#undef errno #undef errno
#endif #endif
#include C_HEADER_ERRNO #include <errno.h>
#endif #endif
#include C_HEADER_STDIO #include <stdio.h>
#include C_HEADER_STDLIB #include <stdlib.h>
#include C_HEADER_STRING #include <string.h>
#include <fcntl.h>
#ifndef LUA_CROSS_COMPILER #ifndef LUA_CROSS_COMPILER
#include "vfs.h" #include "vfs.h"
#include "user_interface.h" #include "user_interface.h"
...@@ -100,7 +101,7 @@ static void scanBlocks (void) { ...@@ -100,7 +101,7 @@ static void scanBlocks (void) {
for (i=0; p ;i++) { for (i=0; p ;i++) {
s = memcmp(p->mark, marker, MARKSIZE) ? '<' : ' '; s = memcmp(p->mark, marker, MARKSIZE) ? '<' : ' ';
e = memcmp(cast(char *, p+1) + p->size, marker, MARKSIZE) ? '>' : ' '; e = memcmp(cast(char *, p+1) + p->size, marker, MARKSIZE) ? '>' : ' ';
c_printf("%4u %p %8lu %c %c\n", i, p, p->size, s, e); printf("%4u %p %8lu %c %c\n", i, p, p->size, s, e);
ASSERT(p->next); ASSERT(p->next);
p = p->next; p = p->next;
} }
...@@ -136,7 +137,7 @@ static void freeblock (MemHeader *block) { ...@@ -136,7 +137,7 @@ static void freeblock (MemHeader *block) {
p->next = next; p->next = next;
} }
fillmem(block, sizeof(MemHeader) + size + MARKSIZE); /* erase block */ fillmem(block, sizeof(MemHeader) + size + MARKSIZE); /* erase block */
c_free(block); /* actually free block */ free(block); /* actually free block */
mc.numblocks--; /* update counts */ mc.numblocks--; /* update counts */
mc.total -= size; mc.total -= size;
} }
...@@ -163,7 +164,7 @@ void *debug_realloc (void *b, size_t oldsize, size_t size) { ...@@ -163,7 +164,7 @@ void *debug_realloc (void *b, size_t oldsize, size_t size) {
MemHeader *newblock; MemHeader *newblock;
size_t commonsize = (oldsize < size) ? oldsize : size; size_t commonsize = (oldsize < size) ? oldsize : size;
size_t realsize = sizeof(MemHeader) + size + MARKSIZE; size_t realsize = sizeof(MemHeader) + size + MARKSIZE;
newblock = cast(MemHeader *, c_malloc(realsize)); /* alloc a new block */ newblock = cast(MemHeader *, malloc(realsize)); /* alloc a new block */
if (newblock == NULL) if (newblock == NULL)
return NULL; /* really out of memory? */ return NULL; /* really out of memory? */
if (block) { if (block) {
...@@ -190,7 +191,7 @@ void *debug_realloc (void *b, size_t oldsize, size_t size) { ...@@ -190,7 +191,7 @@ void *debug_realloc (void *b, size_t oldsize, size_t size) {
/* }====================================================================== */ /* }====================================================================== */
#else #else
#define this_realloc(p,os,s) c_realloc(p,s) #define this_realloc(p,os,s) realloc(p,s)
#endif /* DEBUG_ALLOCATOR */ #endif /* DEBUG_ALLOCATOR */
/* /*
...@@ -205,7 +206,7 @@ LUALIB_API int luaL_argerror (lua_State *L, int narg, const char *extramsg) { ...@@ -205,7 +206,7 @@ LUALIB_API int luaL_argerror (lua_State *L, int narg, const char *extramsg) {
if (!lua_getstack(L, 0, &ar)) /* no stack frame? */ if (!lua_getstack(L, 0, &ar)) /* no stack frame? */
return luaL_error(L, "bad argument #%d (%s)", narg, extramsg); return luaL_error(L, "bad argument #%d (%s)", narg, extramsg);
lua_getinfo(L, "n", &ar); lua_getinfo(L, "n", &ar);
if (c_strcmp(ar.namewhat, "method") == 0) { if (strcmp(ar.namewhat, "method") == 0) {
narg--; /* do not count `self' */ narg--; /* do not count `self' */
if (narg == 0) /* error is in the self argument itself? */ if (narg == 0) /* error is in the self argument itself? */
return luaL_error(L, "calling " LUA_QS " on bad self (%s)", return luaL_error(L, "calling " LUA_QS " on bad self (%s)",
...@@ -262,7 +263,7 @@ LUALIB_API int luaL_checkoption (lua_State *L, int narg, const char *def, ...@@ -262,7 +263,7 @@ LUALIB_API int luaL_checkoption (lua_State *L, int narg, const char *def,
luaL_checkstring(L, narg); luaL_checkstring(L, narg);
int i; int i;
for (i=0; lst[i]; i++) for (i=0; lst[i]; i++)
if (c_strcmp(lst[i], name) == 0) if (strcmp(lst[i], name) == 0)
return i; return i;
return luaL_argerror(L, narg, return luaL_argerror(L, narg,
lua_pushfstring(L, "invalid option " LUA_QS, name)); lua_pushfstring(L, "invalid option " LUA_QS, name));
...@@ -352,7 +353,7 @@ LUALIB_API const char *luaL_optlstring (lua_State *L, int narg, ...@@ -352,7 +353,7 @@ LUALIB_API const char *luaL_optlstring (lua_State *L, int narg,
const char *def, size_t *len) { const char *def, size_t *len) {
if (lua_isnoneornil(L, narg)) { if (lua_isnoneornil(L, narg)) {
if (len) if (len)
*len = (def ? c_strlen(def) : 0); *len = (def ? strlen(def) : 0);
return def; return def;
} }
else return luaL_checklstring(L, narg, len); else return luaL_checklstring(L, narg, len);
...@@ -419,11 +420,7 @@ LUALIB_API void (luaL_register) (lua_State *L, const char *libname, ...@@ -419,11 +420,7 @@ LUALIB_API void (luaL_register) (lua_State *L, const char *libname,
LUALIB_API void (luaL_register_light) (lua_State *L, const char *libname, LUALIB_API void (luaL_register_light) (lua_State *L, const char *libname,
const luaL_Reg *l) { const luaL_Reg *l) {
#if LUA_OPTIMIZE_MEMORY > 0
luaI_openlib(L, libname, l, 0, LUA_USELIGHTFUNCTIONS); luaI_openlib(L, libname, l, 0, LUA_USELIGHTFUNCTIONS);
#else
luaI_openlib(L, libname, l, 0, LUA_USECCLOSURES);
#endif
} }
static int libsize (const luaL_Reg *l) { static int libsize (const luaL_Reg *l) {
...@@ -537,10 +534,10 @@ LUALIB_API int luaL_getn (lua_State *L, int t) { ...@@ -537,10 +534,10 @@ LUALIB_API int luaL_getn (lua_State *L, int t) {
LUALIB_API const char *luaL_gsub (lua_State *L, const char *s, const char *p, LUALIB_API const char *luaL_gsub (lua_State *L, const char *s, const char *p,
const char *r) { const char *r) {
const char *wild; const char *wild;
size_t l = c_strlen(p); size_t l = strlen(p);
luaL_Buffer b; luaL_Buffer b;
luaL_buffinit(L, &b); luaL_buffinit(L, &b);
while ((wild = c_strstr(s, p)) != NULL) { while ((wild = strstr(s, p)) != NULL) {
luaL_addlstring(&b, s, wild - s); /* push prefix */ luaL_addlstring(&b, s, wild - s); /* push prefix */
luaL_addstring(&b, r); /* push replacement in place of pattern */ luaL_addstring(&b, r); /* push replacement in place of pattern */
s = wild + l; /* continue after `p' */ s = wild + l; /* continue after `p' */
...@@ -556,8 +553,8 @@ LUALIB_API const char *luaL_findtable (lua_State *L, int idx, ...@@ -556,8 +553,8 @@ LUALIB_API const char *luaL_findtable (lua_State *L, int idx,
const char *e; const char *e;
lua_pushvalue(L, idx); lua_pushvalue(L, idx);
do { do {
e = c_strchr(fname, '.'); e = strchr(fname, '.');
if (e == NULL) e = fname + c_strlen(fname); if (e == NULL) e = fname + strlen(fname);
lua_pushlstring(L, fname, e - fname); lua_pushlstring(L, fname, e - fname);
lua_rawget(L, -2); lua_rawget(L, -2);
...@@ -638,7 +635,7 @@ LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l) { ...@@ -638,7 +635,7 @@ LUALIB_API void luaL_addlstring (luaL_Buffer *B, const char *s, size_t l) {
LUALIB_API void luaL_addstring (luaL_Buffer *B, const char *s) { LUALIB_API void luaL_addstring (luaL_Buffer *B, const char *s) {
luaL_addlstring(B, s, c_strlen(s)); luaL_addlstring(B, s, strlen(s));
} }
...@@ -654,7 +651,7 @@ LUALIB_API void luaL_addvalue (luaL_Buffer *B) { ...@@ -654,7 +651,7 @@ LUALIB_API void luaL_addvalue (luaL_Buffer *B) {
size_t vl; size_t vl;
const char *s = lua_tolstring(L, -1, &vl); const char *s = lua_tolstring(L, -1, &vl);
if (vl <= bufffree(B)) { /* fit into buffer? */ if (vl <= bufffree(B)) { /* fit into buffer? */
c_memcpy(B->p, s, vl); /* put it there */ memcpy(B->p, s, vl); /* put it there */
B->p += vl; B->p += vl;
lua_pop(L, 1); /* remove from stack */ lua_pop(L, 1); /* remove from stack */
} }
...@@ -734,14 +731,14 @@ static const char *getF (lua_State *L, void *ud, size_t *size) { ...@@ -734,14 +731,14 @@ static const char *getF (lua_State *L, void *ud, size_t *size) {
*size = 1; *size = 1;
return "\n"; return "\n";
} }
if (c_feof(lf->f)) return NULL; if (feof(lf->f)) return NULL;
*size = c_fread(lf->buff, 1, sizeof(lf->buff), lf->f); *size = fread(lf->buff, 1, sizeof(lf->buff), lf->f);
return (*size > 0) ? lf->buff : NULL; return (*size > 0) ? lf->buff : NULL;
} }
static int errfile (lua_State *L, const char *what, int fnameindex) { static int errfile (lua_State *L, const char *what, int fnameindex) {
const char *serr = c_strerror(errno); const char *serr = strerror(errno);
const char *filename = lua_tostring(L, fnameindex) + 1; const char *filename = lua_tostring(L, fnameindex) + 1;
lua_pushfstring(L, "cannot %s %s: %s", what, filename, serr); lua_pushfstring(L, "cannot %s %s: %s", what, filename, serr);
lua_remove(L, fnameindex); lua_remove(L, fnameindex);
...@@ -761,27 +758,27 @@ LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) { ...@@ -761,27 +758,27 @@ LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) {
} }
else { else {
lua_pushfstring(L, "@%s", filename); lua_pushfstring(L, "@%s", filename);
lf.f = c_fopen(filename, "r"); lf.f = fopen(filename, "r");
if (lf.f == NULL) return errfile(L, "open", fnameindex); if (lf.f == NULL) return errfile(L, "open", fnameindex);
} }
c = c_getc(lf.f); c = getc(lf.f);
if (c == '#') { /* Unix exec. file? */ if (c == '#') { /* Unix exec. file? */
lf.extraline = 1; lf.extraline = 1;
while ((c = c_getc(lf.f)) != EOF && c != '\n') ; /* skip first line */ while ((c = getc(lf.f)) != EOF && c != '\n') ; /* skip first line */
if (c == '\n') c = c_getc(lf.f); if (c == '\n') c = getc(lf.f);
} }
if (c == LUA_SIGNATURE[0] && filename) { /* binary file? */ if (c == LUA_SIGNATURE[0] && filename) { /* binary file? */
lf.f = c_freopen(filename, "rb", lf.f); /* reopen in binary mode */ lf.f = freopen(filename, "rb", lf.f); /* reopen in binary mode */
if (lf.f == NULL) return errfile(L, "reopen", fnameindex); if (lf.f == NULL) return errfile(L, "reopen", fnameindex);
/* skip eventual `#!...' */ /* skip eventual `#!...' */
while ((c = c_getc(lf.f)) != EOF && c != LUA_SIGNATURE[0]) {} while ((c = getc(lf.f)) != EOF && c != LUA_SIGNATURE[0]) {}
lf.extraline = 0; lf.extraline = 0;
} }
c_ungetc(c, lf.f); ungetc(c, lf.f);
status = lua_load(L, getF, &lf, lua_tostring(L, -1)); status = lua_load(L, getF, &lf, lua_tostring(L, -1));
readstatus = c_ferror(lf.f); readstatus = ferror(lf.f);
if (filename) c_fclose(lf.f); /* close file (even in case of errors) */ if (filename) fclose(lf.f); /* close file (even in case of errors) */
if (readstatus) { if (readstatus) {
lua_settop(L, fnameindex); /* ignore results from `lua_load' */ lua_settop(L, fnameindex); /* ignore results from `lua_load' */
return errfile(L, "read", fnameindex); return errfile(L, "read", fnameindex);
...@@ -792,8 +789,6 @@ LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) { ...@@ -792,8 +789,6 @@ LUALIB_API int luaL_loadfile (lua_State *L, const char *filename) {
#else #else
#include C_HEADER_FCNTL
typedef struct LoadFSF { typedef struct LoadFSF {
int extraline; int extraline;
int f; int f;
...@@ -897,7 +892,7 @@ LUALIB_API int luaL_loadbuffer (lua_State *L, const char *buff, size_t size, ...@@ -897,7 +892,7 @@ LUALIB_API int luaL_loadbuffer (lua_State *L, const char *buff, size_t size,
LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s) { LUALIB_API int (luaL_loadstring) (lua_State *L, const char *s) {
return luaL_loadbuffer(L, s, c_strlen(s), s); return luaL_loadbuffer(L, s, strlen(s), s);
} }
...@@ -932,7 +927,7 @@ static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) { ...@@ -932,7 +927,7 @@ static void *l_alloc (void *ud, void *ptr, size_t osize, size_t nsize) {
#ifdef DEBUG_ALLOCATOR #ifdef DEBUG_ALLOCATOR
return (void *)this_realloc(ptr, osize, nsize); return (void *)this_realloc(ptr, osize, nsize);
#else #else
c_free(ptr); free(ptr);
return NULL; return NULL;
#endif #endif
} }
...@@ -992,7 +987,7 @@ LUALIB_API void luaL_dbgbreak(void) { ...@@ -992,7 +987,7 @@ LUALIB_API void luaL_dbgbreak(void) {
static int panic (lua_State *L) { static int panic (lua_State *L) {
(void)L; /* to avoid warnings */ (void)L; /* to avoid warnings */
#if defined(LUA_USE_STDIO) #if defined(LUA_USE_STDIO)
c_fprintf(c_stderr, "PANIC: unprotected error in call to Lua API (%s)\n", fprintf(c_stderr, "PANIC: unprotected error in call to Lua API (%s)\n",
lua_tostring(L, -1)); lua_tostring(L, -1));
#else #else
luai_writestringerror("PANIC: unprotected error in call to Lua API (%s)\n", luai_writestringerror("PANIC: unprotected error in call to Lua API (%s)\n",
......
...@@ -8,15 +8,9 @@ ...@@ -8,15 +8,9 @@
#ifndef lauxlib_h #ifndef lauxlib_h
#define lauxlib_h #define lauxlib_h
#include "lua.h" #include "lua.h"
#ifdef LUA_CROSS_COMPILER
#include <stdio.h> #include <stdio.h>
#else
#include "c_stdio.h"
#endif
#if defined(LUA_COMPAT_GETN) #if defined(LUA_COMPAT_GETN)
LUALIB_API int (luaL_getn) (lua_State *L, int t); LUALIB_API int (luaL_getn) (lua_State *L, int t);
......
...@@ -11,12 +11,12 @@ ...@@ -11,12 +11,12 @@
#define LUAC_CROSS_FILE #define LUAC_CROSS_FILE
#include "lua.h" #include "lua.h"
#include C_HEADER_STDIO #include <stdio.h>
#include C_HEADER_STRING #include <string.h>
#include C_HEADER_STDLIB #include <stdlib.h>
#include "lauxlib.h" #include "lauxlib.h"
#include "lualib.h" #include "lualib.h"
#include "lrodefs.h" #include "lrotable.h"
...@@ -41,16 +41,16 @@ static int luaB_print (lua_State *L) { ...@@ -41,16 +41,16 @@ static int luaB_print (lua_State *L) {
return luaL_error(L, LUA_QL("tostring") " must return a string to " return luaL_error(L, LUA_QL("tostring") " must return a string to "
LUA_QL("print")); LUA_QL("print"));
#if defined(LUA_USE_STDIO) #if defined(LUA_USE_STDIO)
if (i>1) c_fputs("\t", c_stdout); if (i>1) fputs("\t", c_stdout);
c_fputs(s, c_stdout); fputs(s, c_stdout);
#else #else
if (i>1) luai_writestring("\t", 1); if (i>1) luai_writestring("\t", 1);
luai_writestring(s, c_strlen(s)); luai_writestring(s, strlen(s));
#endif #endif
lua_pop(L, 1); /* pop result */ lua_pop(L, 1); /* pop result */
} }
#if defined(LUA_USE_STDIO) #if defined(LUA_USE_STDIO)
c_fputs("\n", c_stdout); fputs("\n", c_stdout);
#else #else
luai_writeline(); luai_writeline();
#endif #endif
...@@ -72,7 +72,7 @@ static int luaB_tonumber (lua_State *L) { ...@@ -72,7 +72,7 @@ static int luaB_tonumber (lua_State *L) {
char *s2; char *s2;
unsigned long n; unsigned long n;
luaL_argcheck(L, 2 <= base && base <= 36, 2, "base out of range"); luaL_argcheck(L, 2 <= base && base <= 36, 2, "base out of range");
n = c_strtoul(s1, &s2, base); n = strtoul(s1, &s2, base);
if (s1 != s2) { /* at least one valid digit? */ if (s1 != s2) { /* at least one valid digit? */
while (isspace((unsigned char)(*s2))) s2++; /* skip trailing spaces */ while (isspace((unsigned char)(*s2))) s2++; /* skip trailing spaces */
if (*s2 == '\0') { /* no invalid trailing characters? */ if (*s2 == '\0') { /* no invalid trailing characters? */
...@@ -462,64 +462,59 @@ static int luaB_newproxy (lua_State *L) { ...@@ -462,64 +462,59 @@ static int luaB_newproxy (lua_State *L) {
return 1; return 1;
} }
#include "lrodefs.h" #include "lrotable.h"
extern const luaR_entry lua_rotable_base[]; LROT_EXTERN(lua_rotable_base);
/* /*
* ESP builds use specific linker directives to marshal all ROTable declarations * Separate ROTables are used for the base functions and library ROTables, with
* into a single ROTable in the PSECT ".lua_rotable". * the base functions ROTable declared below. The library ROTable is chained
* from this using its __index meta-method.
* *
* This is not practical on Posix builds using a standard link so for cross * ESP builds use specific linker directives to marshal all the ROTable entries
* compiler builds, separate ROTables are used for the base functions and library * for the library modules into a single ROTable in the PSECT ".lua_rotable".
* ROTables, with the latter chained from the former using its __index meta-method. * This is not practical on Posix builds using a standard GNU link, so the
* In this case all library ROTables are defined in linit.c. * equivalent ROTable for the core libraries defined in linit.c for the cross-
* compiler build.
*/ */
#ifdef LUA_CROSS_COMPILER
#define BASE_ROTABLE base_func_map
#define LOCK_IN_ROTABLE
static const LUA_REG_TYPE base_func_meta[] = {
LROT_TABENTRY(__index, lua_rotable_base),
LROT_END};
#else
#define BASE_ROTABLE lua_rotable_base
#define LOCK_IN_ROTABLE __attribute__((used,unused,section(".lua_rotable")))
#endif
static const LUA_REG_TYPE LOCK_IN_ROTABLE base_func_map[] = { LROT_EXTERN(lua_rotables);
LROT_FUNCENTRY(assert, luaB_assert),
LROT_FUNCENTRY(collectgarbage, luaB_collectgarbage), LROT_PUBLIC_BEGIN(base_func_meta)
LROT_FUNCENTRY(dofile, luaB_dofile), LROT_TABENTRY( __index, lua_rotables )
LROT_FUNCENTRY(error, luaB_error), LROT_END(base_func, base_func_meta, LROT_MASK_INDEX)
LROT_FUNCENTRY(gcinfo, luaB_gcinfo),
LROT_FUNCENTRY(getfenv, luaB_getfenv), LROT_PUBLIC_BEGIN(base_func)
LROT_FUNCENTRY(getmetatable, luaB_getmetatable), LROT_FUNCENTRY(assert, luaB_assert)
LROT_FUNCENTRY(loadfile, luaB_loadfile), LROT_FUNCENTRY(collectgarbage, luaB_collectgarbage)
LROT_FUNCENTRY(load, luaB_load), LROT_FUNCENTRY(dofile, luaB_dofile)
LROT_FUNCENTRY(loadstring, luaB_loadstring), LROT_FUNCENTRY(error, luaB_error)
LROT_FUNCENTRY(next, luaB_next), LROT_FUNCENTRY(gcinfo, luaB_gcinfo)
LROT_FUNCENTRY(pcall, luaB_pcall), LROT_FUNCENTRY(getfenv, luaB_getfenv)
LROT_FUNCENTRY(print, luaB_print), LROT_FUNCENTRY(getmetatable, luaB_getmetatable)
LROT_FUNCENTRY(rawequal, luaB_rawequal), LROT_FUNCENTRY(loadfile, luaB_loadfile)
LROT_FUNCENTRY(rawget, luaB_rawget), LROT_FUNCENTRY(load, luaB_load)
LROT_FUNCENTRY(rawset, luaB_rawset), LROT_FUNCENTRY(loadstring, luaB_loadstring)
LROT_FUNCENTRY(select, luaB_select), LROT_FUNCENTRY(next, luaB_next)
LROT_FUNCENTRY(setfenv, luaB_setfenv), LROT_FUNCENTRY(pcall, luaB_pcall)
LROT_FUNCENTRY(setmetatable, luaB_setmetatable), LROT_FUNCENTRY(print, luaB_print)
LROT_FUNCENTRY(tonumber, luaB_tonumber), LROT_FUNCENTRY(rawequal, luaB_rawequal)
LROT_FUNCENTRY(tostring, luaB_tostring), LROT_FUNCENTRY(rawget, luaB_rawget)
LROT_FUNCENTRY(type, luaB_type), LROT_FUNCENTRY(rawset, luaB_rawset)
LROT_FUNCENTRY(unpack, luaB_unpack), LROT_FUNCENTRY(select, luaB_select)
LROT_FUNCENTRY(setfenv, luaB_setfenv)
LROT_FUNCENTRY(setmetatable, luaB_setmetatable)
LROT_FUNCENTRY(tonumber, luaB_tonumber)
LROT_FUNCENTRY(tostring, luaB_tostring)
LROT_FUNCENTRY(type, luaB_type)
LROT_FUNCENTRY(unpack, luaB_unpack)
LROT_FUNCENTRY(xpcall, luaB_xpcall) LROT_FUNCENTRY(xpcall, luaB_xpcall)
#ifdef LUA_CROSS_COMPILER LROT_TABENTRY(__metatable, base_func_meta)
,LROT_TABENTRY(__metatable, base_func_meta), LROT_END(base_func, base_func_meta, LROT_MASK_INDEX)
LROT_END
#endif
};
static const luaL_Reg base_funcs[] = { LROT_BEGIN(G_meta)
{NULL, NULL} LROT_TABENTRY( __index, base_func )
}; LROT_END(G_meta, NULL, 0)
/* /*
...@@ -650,17 +645,14 @@ static int luaB_corunning (lua_State *L) { ...@@ -650,17 +645,14 @@ static int luaB_corunning (lua_State *L) {
return 1; return 1;
} }
#undef MIN_OPT_LEVEL LROT_PUBLIC_BEGIN(co_funcs)
#define MIN_OPT_LEVEL 1 LROT_FUNCENTRY( create, luaB_cocreate )
const LUA_REG_TYPE co_funcs[] = { LROT_FUNCENTRY( resume, luaB_coresume )
{LSTRKEY("create"), LFUNCVAL(luaB_cocreate)}, LROT_FUNCENTRY( running, luaB_corunning )
{LSTRKEY("resume"), LFUNCVAL(luaB_coresume)}, LROT_FUNCENTRY( status, luaB_costatus )
{LSTRKEY("running"), LFUNCVAL(luaB_corunning)}, LROT_FUNCENTRY( wrap, luaB_cowrap )
{LSTRKEY("status"), LFUNCVAL(luaB_costatus)}, LROT_FUNCENTRY( yield, luaB_yield )
{LSTRKEY("wrap"), LFUNCVAL(luaB_cowrap)}, LROT_END (co_funcs, NULL, 0)
{LSTRKEY("yield"), LFUNCVAL(luaB_yield)},
{LNILKEY, LNILVAL}
};
/* }====================================================== */ /* }====================================================== */
...@@ -676,14 +668,12 @@ static void base_open (lua_State *L) { ...@@ -676,14 +668,12 @@ static void base_open (lua_State *L) {
/* set global _G */ /* set global _G */
lua_pushvalue(L, LUA_GLOBALSINDEX); lua_pushvalue(L, LUA_GLOBALSINDEX);
lua_setglobal(L, "_G"); lua_setglobal(L, "_G");
/* open lib into global table */ /* open lib into global table */
luaL_register_light(L, "_G", base_funcs); luaL_register_light(L, "_G", &((luaL_Reg) {0}));
#if LUA_OPTIMIZE_MEMORY > 0 lua_pushrotable(L, LROT_TABLEREF(G_meta));
lua_pushvalue(L, -1); lua_setmetatable(L, LUA_GLOBALSINDEX);
lua_setmetatable(L, -2);
lua_pushrotable(L, (void *)BASE_ROTABLE);
lua_setglobal(L, "__index");
#endif
lua_pushliteral(L, LUA_VERSION); lua_pushliteral(L, LUA_VERSION);
lua_setglobal(L, "_VERSION"); /* set global _VERSION */ lua_setglobal(L, "_VERSION"); /* set global _VERSION */
/* `ipairs' and `pairs' need auxliliary functions as upvalues */ /* `ipairs' and `pairs' need auxliliary functions as upvalues */
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#define LUAC_CROSS_FILE #define LUAC_CROSS_FILE
#include "lua.h" #include "lua.h"
#include C_HEADER_STDLIB #include <stdlib.h>
#include "lcode.h" #include "lcode.h"
#include "ldebug.h" #include "ldebug.h"
...@@ -81,7 +81,7 @@ static void fixjump (FuncState *fs, int pc, int dest) { ...@@ -81,7 +81,7 @@ static void fixjump (FuncState *fs, int pc, int dest) {
Instruction *jmp = &fs->f->code[pc]; Instruction *jmp = &fs->f->code[pc];
int offset = dest-(pc+1); int offset = dest-(pc+1);
lua_assert(dest != NO_JUMP); lua_assert(dest != NO_JUMP);
if (c_abs(offset) > MAXARG_sBx) if (abs(offset) > MAXARG_sBx)
luaX_syntaxerror(fs->ls, "control structure too long"); luaX_syntaxerror(fs->ls, "control structure too long");
SETARG_sBx(*jmp, offset); SETARG_sBx(*jmp, offset);
} }
......
...@@ -10,17 +10,17 @@ ...@@ -10,17 +10,17 @@
#define LUAC_CROSS_FILE #define LUAC_CROSS_FILE
#include "lua.h" #include "lua.h"
#include C_HEADER_STDIO #include <stdio.h>
#include C_HEADER_STDLIB #include <stdlib.h>
#include C_HEADER_STRING #include <string.h>
#include "lauxlib.h" #include "lauxlib.h"
#include "lualib.h" #include "lualib.h"
#include "lstring.h" #include "lstring.h"
#include "lflash.h" #include "lflash.h"
#include "user_modules.h" #include "lrotable.h"
#include "user_modules.h"
static int db_getregistry (lua_State *L) { static int db_getregistry (lua_State *L) {
lua_pushvalue(L, LUA_REGISTRYINDEX); lua_pushvalue(L, LUA_REGISTRYINDEX);
...@@ -28,10 +28,10 @@ static int db_getregistry (lua_State *L) { ...@@ -28,10 +28,10 @@ static int db_getregistry (lua_State *L) {
} }
static int db_getstrings (lua_State *L) { static int db_getstrings (lua_State *L) {
size_t i,n; size_t i,n=0;
stringtable *tb; stringtable *tb;
GCObject *o; GCObject *o;
#if defined(LUA_FLASH_STORE) && !defined(LUA_CROSS_COMPILER) #ifndef LUA_CROSS_COMPILER
const char *opt = lua_tolstring (L, 1, &n); const char *opt = lua_tolstring (L, 1, &n);
if (n==3 && memcmp(opt, "ROM", 4) == 0) { if (n==3 && memcmp(opt, "ROM", 4) == 0) {
if (G(L)->ROstrt.hash == NULL) if (G(L)->ROstrt.hash == NULL)
...@@ -155,24 +155,24 @@ static int db_getinfo (lua_State *L) { ...@@ -155,24 +155,24 @@ static int db_getinfo (lua_State *L) {
if (!lua_getinfo(L1, options, &ar)) if (!lua_getinfo(L1, options, &ar))
return luaL_argerror(L, arg+2, "invalid option"); return luaL_argerror(L, arg+2, "invalid option");
lua_createtable(L, 0, 2); lua_createtable(L, 0, 2);
if (c_strchr(options, 'S')) { if (strchr(options, 'S')) {
settabss(L, "source", ar.source); settabss(L, "source", ar.source);
settabss(L, "short_src", ar.short_src); settabss(L, "short_src", ar.short_src);
settabsi(L, "linedefined", ar.linedefined); settabsi(L, "linedefined", ar.linedefined);
settabsi(L, "lastlinedefined", ar.lastlinedefined); settabsi(L, "lastlinedefined", ar.lastlinedefined);
settabss(L, "what", ar.what); settabss(L, "what", ar.what);
} }
if (c_strchr(options, 'l')) if (strchr(options, 'l'))
settabsi(L, "currentline", ar.currentline); settabsi(L, "currentline", ar.currentline);
if (c_strchr(options, 'u')) if (strchr(options, 'u'))
settabsi(L, "nups", ar.nups); settabsi(L, "nups", ar.nups);
if (c_strchr(options, 'n')) { if (strchr(options, 'n')) {
settabss(L, "name", ar.name); settabss(L, "name", ar.name);
settabss(L, "namewhat", ar.namewhat); settabss(L, "namewhat", ar.namewhat);
} }
if (c_strchr(options, 'L')) if (strchr(options, 'L'))
treatstackoption(L, L1, "activelines"); treatstackoption(L, L1, "activelines");
if (c_strchr(options, 'f')) if (strchr(options, 'f'))
treatstackoption(L, L1, "func"); treatstackoption(L, L1, "func");
return 1; /* return table */ return 1; /* return table */
} }
...@@ -261,9 +261,9 @@ static void hookf (lua_State *L, lua_Debug *ar) { ...@@ -261,9 +261,9 @@ static void hookf (lua_State *L, lua_Debug *ar) {
static int makemask (const char *smask, int count) { static int makemask (const char *smask, int count) {
int mask = 0; int mask = 0;
if (c_strchr(smask, 'c')) mask |= LUA_MASKCALL; if (strchr(smask, 'c')) mask |= LUA_MASKCALL;
if (c_strchr(smask, 'r')) mask |= LUA_MASKRET; if (strchr(smask, 'r')) mask |= LUA_MASKRET;
if (c_strchr(smask, 'l')) mask |= LUA_MASKLINE; if (strchr(smask, 'l')) mask |= LUA_MASKLINE;
if (count > 0) mask |= LUA_MASKCOUNT; if (count > 0) mask |= LUA_MASKCOUNT;
return mask; return mask;
} }
...@@ -340,19 +340,19 @@ static int db_debug (lua_State *L) { ...@@ -340,19 +340,19 @@ static int db_debug (lua_State *L) {
for (;;) { for (;;) {
char buffer[LUA_MAXINPUT]; char buffer[LUA_MAXINPUT];
#if defined(LUA_USE_STDIO) #if defined(LUA_USE_STDIO)
c_fputs("lua_debug> ", c_stderr); fputs("lua_debug> ", c_stderr);
if (c_fgets(buffer, sizeof(buffer), c_stdin) == 0 || if (fgets(buffer, sizeof(buffer), c_stdin) == 0 ||
#else #else
// luai_writestringerror("%s", "lua_debug>"); // luai_writestringerror("%s", "lua_debug>");
if (lua_readline(L, buffer, "lua_debug>") == 0 || if (lua_readline(L, buffer, "lua_debug>") == 0 ||
#endif #endif
c_strcmp(buffer, "cont\n") == 0) strcmp(buffer, "cont\n") == 0)
return 0; return 0;
if (luaL_loadbuffer(L, buffer, c_strlen(buffer), "=(debug command)") || if (luaL_loadbuffer(L, buffer, strlen(buffer), "=(debug command)") ||
lua_pcall(L, 0, 0, 0)) { lua_pcall(L, 0, 0, 0)) {
#if defined(LUA_USE_STDIO) #if defined(LUA_USE_STDIO)
c_fputs(lua_tostring(L, -1), c_stderr); fputs(lua_tostring(L, -1), c_stderr);
c_fputs("\n", c_stderr); fputs("\n", c_stderr);
#else #else
luai_writestringerror("%s\n", lua_tostring(L, -1)); luai_writestringerror("%s\n", lua_tostring(L, -1));
#endif #endif
...@@ -417,32 +417,28 @@ static int db_errorfb (lua_State *L) { ...@@ -417,32 +417,28 @@ static int db_errorfb (lua_State *L) {
return 1; return 1;
} }
#undef MIN_OPT_LEVEL LROT_PUBLIC_BEGIN(dblib)
#define MIN_OPT_LEVEL 1
#include "lrodefs.h"
const LUA_REG_TYPE dblib[] = {
#ifndef LUA_USE_BUILTIN_DEBUG_MINIMAL #ifndef LUA_USE_BUILTIN_DEBUG_MINIMAL
{LSTRKEY("debug"), LFUNCVAL(db_debug)}, LROT_FUNCENTRY( debug, db_debug )
{LSTRKEY("getfenv"), LFUNCVAL(db_getfenv)}, LROT_FUNCENTRY( getfenv, db_getfenv )
{LSTRKEY("gethook"), LFUNCVAL(db_gethook)}, LROT_FUNCENTRY( gethook, db_gethook )
{LSTRKEY("getinfo"), LFUNCVAL(db_getinfo)}, LROT_FUNCENTRY( getinfo, db_getinfo )
{LSTRKEY("getlocal"), LFUNCVAL(db_getlocal)}, LROT_FUNCENTRY( getlocal, db_getlocal )
#endif #endif
{LSTRKEY("getregistry"), LFUNCVAL(db_getregistry)}, LROT_FUNCENTRY( getregistry, db_getregistry )
{LSTRKEY("getstrings"), LFUNCVAL(db_getstrings)}, LROT_FUNCENTRY( getstrings, db_getstrings )
#ifndef LUA_USE_BUILTIN_DEBUG_MINIMAL #ifndef LUA_USE_BUILTIN_DEBUG_MINIMAL
{LSTRKEY("getmetatable"), LFUNCVAL(db_getmetatable)}, LROT_FUNCENTRY( getmetatable, db_getmetatable )
{LSTRKEY("getupvalue"), LFUNCVAL(db_getupvalue)}, LROT_FUNCENTRY( getupvalue, db_getupvalue )
{LSTRKEY("setfenv"), LFUNCVAL(db_setfenv)}, LROT_FUNCENTRY( setfenv, db_setfenv )
{LSTRKEY("sethook"), LFUNCVAL(db_sethook)}, LROT_FUNCENTRY( sethook, db_sethook )
{LSTRKEY("setlocal"), LFUNCVAL(db_setlocal)}, LROT_FUNCENTRY( setlocal, db_setlocal )
{LSTRKEY("setmetatable"), LFUNCVAL(db_setmetatable)}, LROT_FUNCENTRY( setmetatable, db_setmetatable )
{LSTRKEY("setupvalue"), LFUNCVAL(db_setupvalue)}, LROT_FUNCENTRY( setupvalue, db_setupvalue )
#endif #endif
{LSTRKEY("traceback"), LFUNCVAL(db_errorfb)}, LROT_FUNCENTRY( traceback, db_errorfb )
{LNILKEY, LNILVAL} LROT_END(dblib, NULL, 0)
};
LUALIB_API int luaopen_debug (lua_State *L) { LUALIB_API int luaopen_debug (lua_State *L) {
LREGISTER(L, LUA_DBLIBNAME, dblib); return 0;
} }
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#define LUAC_CROSS_FILE #define LUAC_CROSS_FILE
#include "lua.h" #include "lua.h"
#include C_HEADER_STRING #include <string.h>
#include "lapi.h" #include "lapi.h"
#include "lcode.h" #include "lcode.h"
...@@ -253,7 +253,7 @@ static int stripdebug (lua_State *L, Proto *f, int level) { ...@@ -253,7 +253,7 @@ static int stripdebug (lua_State *L, Proto *f, int level) {
TString* dummy; TString* dummy;
switch (level) { switch (level) {
case 3: case 3:
sizepackedlineinfo = c_strlen(cast(char *, f->packedlineinfo))+1; sizepackedlineinfo = strlen(cast(char *, f->packedlineinfo))+1;
f->packedlineinfo = luaM_freearray(L, f->packedlineinfo, sizepackedlineinfo, unsigned char); f->packedlineinfo = luaM_freearray(L, f->packedlineinfo, sizepackedlineinfo, unsigned char);
len += sizepackedlineinfo; len += sizepackedlineinfo;
case 2: case 2:
...@@ -344,7 +344,7 @@ LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) { ...@@ -344,7 +344,7 @@ LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) {
plight = fvalue(ci->func); plight = fvalue(ci->func);
} }
status = auxgetinfo(L, what, ar, f, plight, ci); status = auxgetinfo(L, what, ar, f, plight, ci);
if (c_strchr(what, 'f')) { if (strchr(what, 'f')) {
if (f != NULL) if (f != NULL)
setclvalue(L, L->top, f) setclvalue(L, L->top, f)
else if (plight != NULL) else if (plight != NULL)
...@@ -353,7 +353,7 @@ LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) { ...@@ -353,7 +353,7 @@ LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) {
setnilvalue(L->top); setnilvalue(L->top);
incr_top(L); incr_top(L);
} }
if (c_strchr(what, 'L')) if (strchr(what, 'L'))
collectvalidlines(L, f); collectvalidlines(L, f);
lua_unlock(L); lua_unlock(L);
return status; return status;
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#define LUAC_CROSS_FILE #define LUAC_CROSS_FILE
#include "lua.h" #include "lua.h"
#include C_HEADER_STRING #include <string.h>
#include "ldebug.h" #include "ldebug.h"
#include "ldo.h" #include "ldo.h"
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#define LUAC_CROSS_FILE #define LUAC_CROSS_FILE
#include "lua.h" #include "lua.h"
#include C_HEADER_STRING #include <string.h>
#include "lobject.h" #include "lobject.h"
#include "lstate.h" #include "lstate.h"
...@@ -150,9 +150,9 @@ static void DumpNumber(lua_Number x, DumpState* D) ...@@ -150,9 +150,9 @@ static void DumpNumber(lua_Number x, DumpState* D)
if(D->target.is_arm_fpa) if(D->target.is_arm_fpa)
{ {
char *pnum=(char*)&y, temp[4]; char *pnum=(char*)&y, temp[4];
c_memcpy(temp,pnum,4); memcpy(temp,pnum,4);
c_memcpy(pnum,pnum+4,4); memcpy(pnum,pnum+4,4);
c_memcpy(pnum+4,temp,4); memcpy(pnum+4,temp,4);
} }
MaybeByteSwap((char*)&y,8,D); MaybeByteSwap((char*)&y,8,D);
DumpVar(y,D); DumpVar(y,D);
...@@ -171,7 +171,7 @@ static void DumpCode(const Proto *f, DumpState* D) ...@@ -171,7 +171,7 @@ static void DumpCode(const Proto *f, DumpState* D)
Align4(D); Align4(D);
for (i=0; i<f->sizecode; i++) for (i=0; i<f->sizecode; i++)
{ {
c_memcpy(buf,&f->code[i],sizeof(Instruction)); memcpy(buf,&f->code[i],sizeof(Instruction));
MaybeByteSwap(buf,sizeof(Instruction),D); MaybeByteSwap(buf,sizeof(Instruction),D);
DumpBlock(buf,sizeof(Instruction),D); DumpBlock(buf,sizeof(Instruction),D);
} }
...@@ -230,7 +230,7 @@ static void DumpDebug(const Proto* f, DumpState* D) ...@@ -230,7 +230,7 @@ static void DumpDebug(const Proto* f, DumpState* D)
int i,n; int i,n;
#ifdef LUA_OPTIMIZE_DEBUG #ifdef LUA_OPTIMIZE_DEBUG
n = (D->strip || f->packedlineinfo == NULL) ? 0: c_strlen(cast(char *,f->packedlineinfo))+1; n = (D->strip || f->packedlineinfo == NULL) ? 0: strlen(cast(char *,f->packedlineinfo))+1;
DumpInt(n,D); DumpInt(n,D);
Align4(D); Align4(D);
if (n) if (n)
...@@ -281,7 +281,7 @@ static void DumpHeader(DumpState* D) ...@@ -281,7 +281,7 @@ static void DumpHeader(DumpState* D)
char *h=buf; char *h=buf;
/* This code must be kept in sync wiht luaU_header */ /* This code must be kept in sync wiht luaU_header */
c_memcpy(h,LUA_SIGNATURE,sizeof(LUA_SIGNATURE)-1); memcpy(h,LUA_SIGNATURE,sizeof(LUA_SIGNATURE)-1);
h+=sizeof(LUA_SIGNATURE)-1; h+=sizeof(LUA_SIGNATURE)-1;
*h++=(char)LUAC_VERSION; *h++=(char)LUAC_VERSION;
*h++=(char)LUAC_FORMAT; *h++=(char)LUAC_FORMAT;
......
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
#include "legc.h" #include "legc.h"
#include "lstate.h" #include "lstate.h"
#include "c_types.h"
void legc_set_mode(lua_State *L, int mode, int limit) { void legc_set_mode(lua_State *L, int mode, int limit) {
global_State *g = G(L); global_State *g = G(L);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment