diff --git a/HISTORY b/HISTORY index 76ea071..bff505c 100755 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,6 @@ +May. 13 2017 +Added an MB_ENABLE_FULL_ERROR macro + May. 12 2017 Fixed a wrong multi-line enabled bug when met unexpected token diff --git a/MY-BASIC Quick Reference.pdf b/MY-BASIC Quick Reference.pdf index 41b2a8c..921c173 100644 Binary files a/MY-BASIC Quick Reference.pdf and b/MY-BASIC Quick Reference.pdf differ diff --git a/core/my_basic.c b/core/my_basic.c index a73d348..e45461d 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -224,6 +224,7 @@ typedef struct _ht_node_t { /** Normal enum/struct/union/const, etc. */ +#ifdef MB_ENABLE_FULL_ERROR /* Error description text */ MBCONST static const char* const _ERR_DESC[] = { "No error", @@ -321,6 +322,7 @@ MBCONST static const char* const _ERR_DESC[] = { }; mb_static_assert(countof(_ERR_DESC) == SE_COUNT); +#endif /* MB_ENABLE_FULL_ERROR */ /* Data type */ typedef enum _data_e { @@ -13538,10 +13540,16 @@ _exit: /* Get the error description text */ const char* mb_get_error_desc(mb_error_e err) { +#ifdef MB_ENABLE_FULL_ERROR if(err < countof(_ERR_DESC)) return _ERR_DESC[err]; - return ""; + return "Unknown error"; +#else /* MB_ENABLE_FULL_ERROR */ + mb_unrefvar(err); + + return "Error occurred"; +#endif /* MB_ENABLE_FULL_ERROR */ } /* Set an error handler to a MY-BASIC environment */ diff --git a/core/my_basic.h b/core/my_basic.h index adb71bd..96ecff3 100755 --- a/core/my_basic.h +++ b/core/my_basic.h @@ -180,6 +180,10 @@ extern "C" { # define MB_CONVERT_TO_INT_LEVEL MB_CONVERT_TO_INT_LEVEL_ALL #endif /* MB_CONVERT_TO_INT_LEVEL */ +#ifndef MB_ENABLE_FULL_ERROR +# define MB_ENABLE_FULL_ERROR +#endif /* MB_ENABLE_FULL_ERROR */ + #ifndef MB_COMPACT_MODE # define MB_COMPACT_MODE #endif /* MB_COMPACT_MODE */