mirror of
https://github.com/holub/mame
synced 2025-04-09 18:17:44 +03:00
Updated forked linenoise to latest upstream.
This removes the need to force it to build as C++, and adds proper UTF-8 support for Windows. Since this is a fork of linenoise, there's no hope for getting lua-linenoise to sync with it upstream. I made the bare minimum changes to keep it working, but didn't add bindings for new functionality (e.g. multi-line editing).
This commit is contained in:
parent
e9ecdc9a6e
commit
8384223ac8
26
3rdparty/linenoise/Makefile
vendored
26
3rdparty/linenoise/Makefile
vendored
@ -1,13 +1,23 @@
|
||||
all: linenoise_example linenoise_utf8_example linenoise_cpp_example
|
||||
CFLAGS += -Wall -W -Os -g
|
||||
CC ?= gcc
|
||||
|
||||
linenoise_example: linenoise.h linenoise.c example.c
|
||||
$(CC) -Wall -W -Os -g -o $@ linenoise.c example.c
|
||||
all: linenoise_example linenoise_utf8_example
|
||||
|
||||
linenoise_utf8_example: linenoise.c utf8.c example.c
|
||||
$(CC) -DNO_COMPLETION -DUSE_UTF8 -Wall -W -Os -g -o $@ linenoise.c utf8.c example.c
|
||||
linenoise_example: linenoise.h linenoise-ship.c linenoise-win32.c example.c
|
||||
$(CC) $(CFLAGS) -o $@ linenoise-ship.c example.c
|
||||
|
||||
linenoise_cpp_example: linenoise.h linenoise.c
|
||||
g++ -Wall -W -Os -g -o $@ linenoise.c example.c
|
||||
linenoise_utf8_example: linenoise.h linenoise-ship.c linenoise-win32.c
|
||||
$(CC) $(CFLAGS) -DUSE_UTF8 -o $@ linenoise-ship.c example.c
|
||||
|
||||
clean:
|
||||
rm -f linenoise_example linenoise_utf8_example linenoise_cpp_example *.o
|
||||
rm -f linenoise_example linenoise_utf8_example linenoise-ship.c *.o
|
||||
|
||||
ship: linenoise-ship.c
|
||||
|
||||
# linenoise-ship.c simplifies delivery of linenoise support
|
||||
# simple copy linenoise-ship.c to linenoise.c in your application, and also linenoise.h
|
||||
# - If you want win32 support, also copy linenoise-win32.c
|
||||
# - If you never want to support utf-8, you can omit utf8.h and utf8.c
|
||||
|
||||
linenoise-ship.c: utf8.h utf8.c stringbuf.h stringbuf.c linenoise.c
|
||||
cat $^ >$@
|
||||
|
69
3rdparty/linenoise/README.markdown
vendored
69
3rdparty/linenoise/README.markdown
vendored
@ -1,5 +1,74 @@
|
||||
# Linenoise
|
||||
|
||||
## What's different in this fork?
|
||||
|
||||
- Win32 console
|
||||
- full utf8 support (what about utf8 on windows)
|
||||
- insert control characters
|
||||
- now with multiline
|
||||
|
||||
## How do I include linenoise line editing support in my application?
|
||||
|
||||
From the Makefile:
|
||||
|
||||
linenoise-ship.c simplifies delivery of linenoise support
|
||||
|
||||
simple copy linenoise-ship.c to linenoise.c in your application, and also linenoise.h
|
||||
|
||||
* If you want win32 support, also copy linenoise-win32.c
|
||||
* If you never want to support utf-8, you can omit utf8.h and utf8.c
|
||||
|
||||
To enable utf-8 support, define USE_UTF8
|
||||
|
||||
## Where do I get it?
|
||||
|
||||
Get it here: [https://github.com/msteveb/linenoise](https://github.com/msteveb/linenoise)
|
||||
|
||||
## Key bindings
|
||||
|
||||
This version supports the following key bindings:
|
||||
|
||||
ctrl-j, Enter Return the current line as the result
|
||||
ctrl-a, Home Go to the start of the line
|
||||
ctrl-e, End Go to the end of the line
|
||||
ctrl-u Delete to beginning of line
|
||||
ctrl-k Delete to end of line
|
||||
ctrl-y Insert previously deleted chars at cursor
|
||||
ctrl-l Clear screen
|
||||
ctrl-c Quit
|
||||
ctrl-z Exit to background (Unix only)
|
||||
ctrl-h, Backspace Delete char to left of cursor
|
||||
ctrl-d With empty line - return
|
||||
ctrl-d, Del Delete char to right of cursor
|
||||
meta-b Move word left
|
||||
meta-f Move word right
|
||||
ctrl-w Delete word to left
|
||||
ctrl-t Transpose char and cursor and char to left of cursor, then move right
|
||||
ctrl-v Insert next char as control character
|
||||
ctrl-b, Left Move one char left
|
||||
ctrl-f, Right Move one char right
|
||||
ctrl-p, Up Move to previous history line
|
||||
ctrl-n, Down Move to next history line
|
||||
Page-Up Move to start of history
|
||||
Page-Down Move to end of history
|
||||
Tab Tab complete
|
||||
ctrl-r Begin reverse incremental search
|
||||
|
||||
In reverse incremental search:
|
||||
|
||||
Normal char Add char to incremental search word
|
||||
ctrl-h, Backspace Remove last char from incremental search word
|
||||
ctrl-p, Up Move to previous match
|
||||
ctrl-n, Down Move to next match
|
||||
ctrl-g, ctrl-c Return to normal mode with empty line
|
||||
Any other key Return to normal mode with the current line and process the key
|
||||
|
||||
--------------------------------------------------------
|
||||
|
||||
## Original README below
|
||||
|
||||
Can a line editing library be 20k lines of code?
|
||||
|
||||
A minimal, zero-config, BSD licensed, readline replacement.
|
||||
|
||||
News: linenoise now includes minimal completion support, thanks to Pieter Noordhuis (@pnoordhuis).
|
||||
|
32
3rdparty/linenoise/example.c
vendored
32
3rdparty/linenoise/example.c
vendored
@ -5,50 +5,70 @@
|
||||
|
||||
#ifndef NO_COMPLETION
|
||||
void completion(const char *buf, linenoiseCompletions *lc, void *userdata) {
|
||||
(void)userdata;
|
||||
if (buf[0] == 'h') {
|
||||
linenoiseAddCompletion(lc,"hello");
|
||||
linenoiseAddCompletion(lc,"hello there");
|
||||
}
|
||||
}
|
||||
|
||||
char *hints(const char *buf, int *color, int *bold, void *userdata) {
|
||||
(void)userdata;
|
||||
if (!strcasecmp(buf,"hello")) {
|
||||
*color = 35;
|
||||
*bold = 0;
|
||||
return " World";
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
const char *prompt = "hello> ";
|
||||
char *line;
|
||||
#ifdef HAVE_MULTILINE
|
||||
/* Note: multiline support has not yet been integrated */
|
||||
char *prgname = argv[0];
|
||||
const char *initial;
|
||||
|
||||
/* Parse options, with --multiline we enable multi line editing. */
|
||||
while(argc > 1) {
|
||||
while(argc > 1 && argv[1][0] == '-') {
|
||||
argc--;
|
||||
argv++;
|
||||
if (!strcmp(*argv,"--multiline")) {
|
||||
linenoiseSetMultiLine(1);
|
||||
printf("Multi-line mode enabled.\n");
|
||||
} else if (!strcmp(*argv,"--fancyprompt")) {
|
||||
prompt = "\x1b[1;31m\xf0\xa0\x8a\x9d-\xc2\xb5hello>\x1b[0m ";
|
||||
} else if (!strcmp(*argv,"--prompt") && argc > 1) {
|
||||
argc--;
|
||||
argv++;
|
||||
prompt = *argv;
|
||||
} else {
|
||||
fprintf(stderr, "Usage: %s [--multiline]\n", prgname);
|
||||
fprintf(stderr, "Usage: %s [--multiline] [--fancyprompt] [--prompt text]\n", prgname);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef NO_COMPLETION
|
||||
/* Set the completion callback. This will be called every time the
|
||||
* user uses the <tab> key. */
|
||||
linenoiseSetCompletionCallback(completion, NULL);
|
||||
linenoiseSetHintsCallback(hints, NULL);
|
||||
#endif
|
||||
|
||||
/* Load history from file. The history file is just a plain text file
|
||||
* where entries are separated by newlines. */
|
||||
linenoiseHistoryLoad("history.txt"); /* Load the history at startup */
|
||||
|
||||
initial = (argc > 1) ? argv[1] : "";
|
||||
|
||||
/* Now this is the main loop of the typical linenoise-based application.
|
||||
* The call to linenoise() will block as long as the user types something
|
||||
* and presses enter.
|
||||
*
|
||||
* The typed string is returned as a malloc() allocated string by
|
||||
* linenoise, so the user needs to free() it. */
|
||||
while((line = linenoise("hello> ")) != NULL) {
|
||||
while((line = linenoiseWithInitial(prompt, initial)) != NULL) {
|
||||
initial = "";
|
||||
/* Do something with the string. */
|
||||
if (line[0] != '\0' && line[0] != '/') {
|
||||
printf("echo: '%s'\n", line);
|
||||
|
377
3rdparty/linenoise/linenoise-win32.c
vendored
Normal file
377
3rdparty/linenoise/linenoise-win32.c
vendored
Normal file
@ -0,0 +1,377 @@
|
||||
|
||||
/* this code is not standalone
|
||||
* it is included into linenoise.c
|
||||
* for windows.
|
||||
* It is deliberately kept separate so that
|
||||
* applications that have no need for windows
|
||||
* support can omit this
|
||||
*/
|
||||
static DWORD orig_consolemode = 0;
|
||||
|
||||
static int flushOutput(struct current *current);
|
||||
static void outputNewline(struct current *current);
|
||||
|
||||
static void refreshStart(struct current *current)
|
||||
{
|
||||
(void)current;
|
||||
}
|
||||
|
||||
static void refreshEnd(struct current *current)
|
||||
{
|
||||
(void)current;
|
||||
}
|
||||
|
||||
static void refreshStartChars(struct current *current)
|
||||
{
|
||||
assert(current->output == NULL);
|
||||
/* We accumulate all output here */
|
||||
current->output = sb_alloc();
|
||||
#ifdef USE_UTF8
|
||||
current->ubuflen = 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void refreshNewline(struct current *current)
|
||||
{
|
||||
DRL("<nl>");
|
||||
outputNewline(current);
|
||||
}
|
||||
|
||||
static void refreshEndChars(struct current *current)
|
||||
{
|
||||
assert(current->output);
|
||||
flushOutput(current);
|
||||
sb_free(current->output);
|
||||
current->output = NULL;
|
||||
}
|
||||
|
||||
static int enableRawMode(struct current *current) {
|
||||
DWORD n;
|
||||
INPUT_RECORD irec;
|
||||
|
||||
current->outh = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
current->inh = GetStdHandle(STD_INPUT_HANDLE);
|
||||
|
||||
if (!PeekConsoleInput(current->inh, &irec, 1, &n)) {
|
||||
return -1;
|
||||
}
|
||||
if (getWindowSize(current) != 0) {
|
||||
return -1;
|
||||
}
|
||||
if (GetConsoleMode(current->inh, &orig_consolemode)) {
|
||||
SetConsoleMode(current->inh, ENABLE_PROCESSED_INPUT);
|
||||
}
|
||||
#ifdef USE_UTF8
|
||||
/* XXX is this the right thing to do? */
|
||||
SetConsoleCP(65001);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void disableRawMode(struct current *current)
|
||||
{
|
||||
SetConsoleMode(current->inh, orig_consolemode);
|
||||
}
|
||||
|
||||
void linenoiseClearScreen(void)
|
||||
{
|
||||
/* XXX: This is ugly. Should just have the caller pass a handle */
|
||||
struct current current;
|
||||
|
||||
current.outh = GetStdHandle(STD_OUTPUT_HANDLE);
|
||||
|
||||
if (getWindowSize(¤t) == 0) {
|
||||
COORD topleft = { 0, 0 };
|
||||
DWORD n;
|
||||
|
||||
FillConsoleOutputCharacter(current.outh, ' ',
|
||||
current.cols * current.rows, topleft, &n);
|
||||
FillConsoleOutputAttribute(current.outh,
|
||||
FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN,
|
||||
current.cols * current.rows, topleft, &n);
|
||||
SetConsoleCursorPosition(current.outh, topleft);
|
||||
}
|
||||
}
|
||||
|
||||
static void cursorToLeft(struct current *current)
|
||||
{
|
||||
COORD pos;
|
||||
DWORD n;
|
||||
|
||||
pos.X = 0;
|
||||
pos.Y = (SHORT)current->y;
|
||||
|
||||
FillConsoleOutputAttribute(current->outh,
|
||||
FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN, current->cols, pos, &n);
|
||||
current->x = 0;
|
||||
}
|
||||
|
||||
#ifdef USE_UTF8
|
||||
static void flush_ubuf(struct current *current)
|
||||
{
|
||||
COORD pos;
|
||||
DWORD nwritten;
|
||||
pos.Y = (SHORT)current->y;
|
||||
pos.X = (SHORT)current->x;
|
||||
SetConsoleCursorPosition(current->outh, pos);
|
||||
WriteConsoleW(current->outh, current->ubuf, current->ubuflen, &nwritten, 0);
|
||||
current->x += current->ubufcols;
|
||||
current->ubuflen = 0;
|
||||
current->ubufcols = 0;
|
||||
}
|
||||
|
||||
static void add_ubuf(struct current *current, int ch)
|
||||
{
|
||||
/* This code originally by: Author: Mark E. Davis, 1994. */
|
||||
static const int halfShift = 10; /* used for shifting by 10 bits */
|
||||
|
||||
static const DWORD halfBase = 0x0010000UL;
|
||||
static const DWORD halfMask = 0x3FFUL;
|
||||
|
||||
#define UNI_SUR_HIGH_START 0xD800
|
||||
#define UNI_SUR_HIGH_END 0xDBFF
|
||||
#define UNI_SUR_LOW_START 0xDC00
|
||||
#define UNI_SUR_LOW_END 0xDFFF
|
||||
|
||||
#define UNI_MAX_BMP 0x0000FFFF
|
||||
|
||||
if (ch > UNI_MAX_BMP) {
|
||||
/* convert from unicode to utf16 surrogate pairs
|
||||
* There is always space for one extra word in ubuf
|
||||
*/
|
||||
ch -= halfBase;
|
||||
current->ubuf[current->ubuflen++] = (WORD)((ch >> halfShift) + UNI_SUR_HIGH_START);
|
||||
current->ubuf[current->ubuflen++] = (WORD)((ch & halfMask) + UNI_SUR_LOW_START);
|
||||
}
|
||||
else {
|
||||
current->ubuf[current->ubuflen++] = ch;
|
||||
}
|
||||
current->ubufcols += utf8_width(ch);
|
||||
if (current->ubuflen >= UBUF_MAX_CHARS) {
|
||||
flush_ubuf(current);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static int flushOutput(struct current *current)
|
||||
{
|
||||
const char *pt = sb_str(current->output);
|
||||
int len = sb_len(current->output);
|
||||
|
||||
#ifdef USE_UTF8
|
||||
/* convert utf8 in current->output into utf16 in current->ubuf
|
||||
*/
|
||||
while (len) {
|
||||
int ch;
|
||||
int n = utf8_tounicode(pt, &ch);
|
||||
|
||||
pt += n;
|
||||
len -= n;
|
||||
|
||||
add_ubuf(current, ch);
|
||||
}
|
||||
flush_ubuf(current);
|
||||
#else
|
||||
DWORD nwritten;
|
||||
COORD pos;
|
||||
|
||||
pos.Y = (SHORT)current->y;
|
||||
pos.X = (SHORT)current->x;
|
||||
|
||||
SetConsoleCursorPosition(current->outh, pos);
|
||||
WriteConsoleA(current->outh, pt, len, &nwritten, 0);
|
||||
|
||||
current->x += len;
|
||||
#endif
|
||||
|
||||
sb_clear(current->output);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int outputChars(struct current *current, const char *buf, int len)
|
||||
{
|
||||
if (len < 0) {
|
||||
len = strlen(buf);
|
||||
}
|
||||
assert(current->output);
|
||||
|
||||
sb_append_len(current->output, buf, len);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void outputNewline(struct current *current)
|
||||
{
|
||||
/* On the last row output a newline to force a scroll */
|
||||
if (current->y + 1 == current->rows) {
|
||||
outputChars(current, "\n", 1);
|
||||
}
|
||||
flushOutput(current);
|
||||
current->x = 0;
|
||||
current->y++;
|
||||
}
|
||||
|
||||
static void setOutputHighlight(struct current *current, const int *props, int nprops)
|
||||
{
|
||||
int colour = FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN;
|
||||
int bold = 0;
|
||||
int reverse = 0;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < nprops; i++) {
|
||||
switch (props[i]) {
|
||||
case 0:
|
||||
colour = FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN;
|
||||
bold = 0;
|
||||
reverse = 0;
|
||||
break;
|
||||
case 1:
|
||||
bold = FOREGROUND_INTENSITY;
|
||||
break;
|
||||
case 7:
|
||||
reverse = 1;
|
||||
break;
|
||||
case 30:
|
||||
colour = 0;
|
||||
break;
|
||||
case 31:
|
||||
colour = FOREGROUND_RED;
|
||||
break;
|
||||
case 32:
|
||||
colour = FOREGROUND_GREEN;
|
||||
break;
|
||||
case 33:
|
||||
colour = FOREGROUND_RED | FOREGROUND_GREEN;
|
||||
break;
|
||||
case 34:
|
||||
colour = FOREGROUND_BLUE;
|
||||
break;
|
||||
case 35:
|
||||
colour = FOREGROUND_RED | FOREGROUND_BLUE;
|
||||
break;
|
||||
case 36:
|
||||
colour = FOREGROUND_BLUE | FOREGROUND_GREEN;
|
||||
break;
|
||||
case 37:
|
||||
colour = FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
flushOutput(current);
|
||||
|
||||
if (reverse) {
|
||||
SetConsoleTextAttribute(current->outh, BACKGROUND_INTENSITY);
|
||||
}
|
||||
else {
|
||||
SetConsoleTextAttribute(current->outh, colour | bold);
|
||||
}
|
||||
}
|
||||
|
||||
static void eraseEol(struct current *current)
|
||||
{
|
||||
COORD pos;
|
||||
DWORD n;
|
||||
|
||||
pos.X = (SHORT) current->x;
|
||||
pos.Y = (SHORT) current->y;
|
||||
|
||||
FillConsoleOutputCharacter(current->outh, ' ', current->cols - current->x, pos, &n);
|
||||
}
|
||||
|
||||
static void setCursorXY(struct current *current)
|
||||
{
|
||||
COORD pos;
|
||||
|
||||
pos.X = (SHORT) current->x;
|
||||
pos.Y = (SHORT) current->y;
|
||||
|
||||
SetConsoleCursorPosition(current->outh, pos);
|
||||
}
|
||||
|
||||
|
||||
static void setCursorPos(struct current *current, int x)
|
||||
{
|
||||
current->x = x;
|
||||
setCursorXY(current);
|
||||
}
|
||||
|
||||
static void cursorUp(struct current *current, int n)
|
||||
{
|
||||
current->y -= n;
|
||||
setCursorXY(current);
|
||||
}
|
||||
|
||||
static void cursorDown(struct current *current, int n)
|
||||
{
|
||||
current->y += n;
|
||||
setCursorXY(current);
|
||||
}
|
||||
|
||||
static int fd_read(struct current *current)
|
||||
{
|
||||
while (1) {
|
||||
INPUT_RECORD irec;
|
||||
DWORD n;
|
||||
if (WaitForSingleObject(current->inh, INFINITE) != WAIT_OBJECT_0) {
|
||||
break;
|
||||
}
|
||||
if (!ReadConsoleInputW(current->inh, &irec, 1, &n)) {
|
||||
break;
|
||||
}
|
||||
if (irec.EventType == KEY_EVENT) {
|
||||
KEY_EVENT_RECORD *k = &irec.Event.KeyEvent;
|
||||
if (k->bKeyDown || k->wVirtualKeyCode == VK_MENU) {
|
||||
if (k->dwControlKeyState & ENHANCED_KEY) {
|
||||
switch (k->wVirtualKeyCode) {
|
||||
case VK_LEFT:
|
||||
return SPECIAL_LEFT;
|
||||
case VK_RIGHT:
|
||||
return SPECIAL_RIGHT;
|
||||
case VK_UP:
|
||||
return SPECIAL_UP;
|
||||
case VK_DOWN:
|
||||
return SPECIAL_DOWN;
|
||||
case VK_INSERT:
|
||||
return SPECIAL_INSERT;
|
||||
case VK_DELETE:
|
||||
return SPECIAL_DELETE;
|
||||
case VK_HOME:
|
||||
return SPECIAL_HOME;
|
||||
case VK_END:
|
||||
return SPECIAL_END;
|
||||
case VK_PRIOR:
|
||||
return SPECIAL_PAGE_UP;
|
||||
case VK_NEXT:
|
||||
return SPECIAL_PAGE_DOWN;
|
||||
}
|
||||
}
|
||||
/* Note that control characters are already translated in AsciiChar */
|
||||
else if (k->wVirtualKeyCode == VK_CONTROL)
|
||||
continue;
|
||||
else {
|
||||
return k->uChar.UnicodeChar;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int getWindowSize(struct current *current)
|
||||
{
|
||||
CONSOLE_SCREEN_BUFFER_INFO info;
|
||||
if (!GetConsoleScreenBufferInfo(current->outh, &info)) {
|
||||
return -1;
|
||||
}
|
||||
current->cols = info.dwSize.X;
|
||||
current->rows = info.dwSize.Y;
|
||||
if (current->cols <= 0 || current->rows <= 0) {
|
||||
current->cols = 80;
|
||||
return -1;
|
||||
}
|
||||
current->y = info.dwCursorPosition.Y;
|
||||
current->x = info.dwCursorPosition.X;
|
||||
return 0;
|
||||
}
|
1998
3rdparty/linenoise/linenoise.c
vendored
1998
3rdparty/linenoise/linenoise.c
vendored
File diff suppressed because it is too large
Load Diff
31
3rdparty/linenoise/linenoise.h
vendored
31
3rdparty/linenoise/linenoise.h
vendored
@ -37,29 +37,38 @@
|
||||
#ifndef __LINENOISE_H
|
||||
#define __LINENOISE_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef NO_COMPLETION
|
||||
typedef struct linenoiseCompletions {
|
||||
size_t len;
|
||||
char **cvec;
|
||||
int pos;
|
||||
} linenoiseCompletions;
|
||||
|
||||
/*
|
||||
* The callback type for tab completion handlers.
|
||||
*/
|
||||
typedef void(linenoiseCompletionCallback)(const char *prefix, linenoiseCompletions *comp, int pos);
|
||||
typedef void(linenoiseCompletionCallback)(const char *prefix, linenoiseCompletions *comp, void *userdata);
|
||||
|
||||
/*
|
||||
* Sets the current tab completion handler and returns the previous one, or NULL
|
||||
* if no prior one has been set.
|
||||
*/
|
||||
linenoiseCompletionCallback * linenoiseSetCompletionCallback(linenoiseCompletionCallback *comp);
|
||||
linenoiseCompletionCallback * linenoiseSetCompletionCallback(linenoiseCompletionCallback *comp, void *userdata);
|
||||
|
||||
/*
|
||||
* Adds a copy of the given string to the given completion list. The copy is owned
|
||||
* by the linenoiseCompletions object.
|
||||
*/
|
||||
void linenoiseAddCompletion(linenoiseCompletions *comp, const char *str, int pos);
|
||||
void linenoiseAddCompletion(linenoiseCompletions *comp, const char *str);
|
||||
|
||||
typedef char*(linenoiseHintsCallback)(const char *, int *color, int *bold, void *userdata);
|
||||
typedef void(linenoiseFreeHintsCallback)(void *hint, void *userdata);
|
||||
void linenoiseSetHintsCallback(linenoiseHintsCallback *callback, void *userdata);
|
||||
void linenoiseSetFreeHintsCallback(linenoiseFreeHintsCallback *callback);
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -71,6 +80,11 @@ void linenoiseAddCompletion(linenoiseCompletions *comp, const char *str, int pos
|
||||
*/
|
||||
char *linenoise(const char *prompt);
|
||||
|
||||
/**
|
||||
* Like linenoise() but starts with an initial buffer.
|
||||
*/
|
||||
char *linenoiseWithInitial(const char *prompt, const char *initial);
|
||||
|
||||
/**
|
||||
* Clear the screen.
|
||||
*/
|
||||
@ -123,8 +137,13 @@ char **linenoiseHistory(int *len);
|
||||
*/
|
||||
int linenoiseColumns(void);
|
||||
|
||||
void linenoisePreloadBuffer(const char* preloadText);
|
||||
/**
|
||||
* Enable or disable multiline mode (disabled by default)
|
||||
*/
|
||||
void linenoiseSetMultiLine(int enableml);
|
||||
|
||||
void linenoiseRefresh(void);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __LINENOISE_H */
|
||||
|
173
3rdparty/linenoise/stringbuf.c
vendored
Normal file
173
3rdparty/linenoise/stringbuf.c
vendored
Normal file
@ -0,0 +1,173 @@
|
||||
/**
|
||||
* resizable string buffer
|
||||
*
|
||||
* (c) 2017-2020 Steve Bennett <steveb@workware.net.au>
|
||||
*
|
||||
* See utf8.c for licence details.
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <assert.h>
|
||||
|
||||
#ifndef STRINGBUF_H
|
||||
#include "stringbuf.h"
|
||||
#endif
|
||||
#ifdef USE_UTF8
|
||||
#ifndef UTF8_UTIL_H
|
||||
#include "utf8.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define SB_INCREMENT 200
|
||||
|
||||
stringbuf *sb_alloc(void)
|
||||
{
|
||||
stringbuf *sb = (stringbuf *)malloc(sizeof(*sb));
|
||||
sb->remaining = 0;
|
||||
sb->last = 0;
|
||||
#ifdef USE_UTF8
|
||||
sb->chars = 0;
|
||||
#endif
|
||||
sb->data = NULL;
|
||||
|
||||
return(sb);
|
||||
}
|
||||
|
||||
void sb_free(stringbuf *sb)
|
||||
{
|
||||
if (sb) {
|
||||
free(sb->data);
|
||||
}
|
||||
free(sb);
|
||||
}
|
||||
|
||||
static void sb_realloc(stringbuf *sb, int newlen)
|
||||
{
|
||||
sb->data = (char *)realloc(sb->data, newlen);
|
||||
sb->remaining = newlen - sb->last;
|
||||
}
|
||||
|
||||
void sb_append(stringbuf *sb, const char *str)
|
||||
{
|
||||
sb_append_len(sb, str, strlen(str));
|
||||
}
|
||||
|
||||
void sb_append_len(stringbuf *sb, const char *str, int len)
|
||||
{
|
||||
if (sb->remaining < len + 1) {
|
||||
sb_realloc(sb, sb->last + len + 1 + SB_INCREMENT);
|
||||
}
|
||||
memcpy(sb->data + sb->last, str, len);
|
||||
sb->data[sb->last + len] = 0;
|
||||
|
||||
sb->last += len;
|
||||
sb->remaining -= len;
|
||||
#ifdef USE_UTF8
|
||||
sb->chars += utf8_strlen(str, len);
|
||||
#endif
|
||||
}
|
||||
|
||||
char *sb_to_string(stringbuf *sb)
|
||||
{
|
||||
if (sb->data == NULL) {
|
||||
/* Return an allocated empty string, not null */
|
||||
return strdup("");
|
||||
}
|
||||
else {
|
||||
/* Just return the data and free the stringbuf structure */
|
||||
char *pt = sb->data;
|
||||
free(sb);
|
||||
return pt;
|
||||
}
|
||||
}
|
||||
|
||||
/* Insert and delete operations */
|
||||
|
||||
/* Moves up all the data at position 'pos' and beyond by 'len' bytes
|
||||
* to make room for new data
|
||||
*
|
||||
* Note: Does *not* update sb->chars
|
||||
*/
|
||||
static void sb_insert_space(stringbuf *sb, int pos, int len)
|
||||
{
|
||||
assert(pos <= sb->last);
|
||||
|
||||
/* Make sure there is enough space */
|
||||
if (sb->remaining < len) {
|
||||
sb_realloc(sb, sb->last + len + SB_INCREMENT);
|
||||
}
|
||||
/* Now move it up */
|
||||
memmove(sb->data + pos + len, sb->data + pos, sb->last - pos);
|
||||
sb->last += len;
|
||||
sb->remaining -= len;
|
||||
/* And null terminate */
|
||||
sb->data[sb->last] = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Move down all the data from pos + len, effectively
|
||||
* deleting the data at position 'pos' of length 'len'
|
||||
*/
|
||||
static void sb_delete_space(stringbuf *sb, int pos, int len)
|
||||
{
|
||||
assert(pos < sb->last);
|
||||
assert(pos + len <= sb->last);
|
||||
|
||||
#ifdef USE_UTF8
|
||||
sb->chars -= utf8_strlen(sb->data + pos, len);
|
||||
#endif
|
||||
|
||||
/* Now move it up */
|
||||
memmove(sb->data + pos, sb->data + pos + len, sb->last - pos - len);
|
||||
sb->last -= len;
|
||||
sb->remaining += len;
|
||||
/* And null terminate */
|
||||
sb->data[sb->last] = 0;
|
||||
}
|
||||
|
||||
void sb_insert(stringbuf *sb, int index, const char *str)
|
||||
{
|
||||
if (index >= sb->last) {
|
||||
/* Inserting after the end of the list appends. */
|
||||
sb_append(sb, str);
|
||||
}
|
||||
else {
|
||||
int len = strlen(str);
|
||||
|
||||
sb_insert_space(sb, index, len);
|
||||
memcpy(sb->data + index, str, len);
|
||||
#ifdef USE_UTF8
|
||||
sb->chars += utf8_strlen(str, len);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the bytes at index 'index' for length 'len'
|
||||
* Has no effect if the index is past the end of the list.
|
||||
*/
|
||||
void sb_delete(stringbuf *sb, int index, int len)
|
||||
{
|
||||
if (index < sb->last) {
|
||||
char *pos = sb->data + index;
|
||||
if (len < 0) {
|
||||
len = sb->last;
|
||||
}
|
||||
|
||||
sb_delete_space(sb, pos - sb->data, len);
|
||||
}
|
||||
}
|
||||
|
||||
void sb_clear(stringbuf *sb)
|
||||
{
|
||||
if (sb->data) {
|
||||
/* Null terminate */
|
||||
sb->data[0] = 0;
|
||||
sb->last = 0;
|
||||
#ifdef USE_UTF8
|
||||
sb->chars = 0;
|
||||
#endif
|
||||
}
|
||||
}
|
137
3rdparty/linenoise/stringbuf.h
vendored
Normal file
137
3rdparty/linenoise/stringbuf.h
vendored
Normal file
@ -0,0 +1,137 @@
|
||||
#ifndef STRINGBUF_H
|
||||
#define STRINGBUF_H
|
||||
/**
|
||||
* resizable string buffer
|
||||
*
|
||||
* (c) 2017-2020 Steve Bennett <steveb@workware.net.au>
|
||||
*
|
||||
* See utf8.c for licence details.
|
||||
*/
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** @file
|
||||
* A stringbuf is a resizing, null terminated string buffer.
|
||||
*
|
||||
* The buffer is reallocated as necessary.
|
||||
*
|
||||
* In general it is *not* OK to call these functions with a NULL pointer
|
||||
* unless stated otherwise.
|
||||
*
|
||||
* If USE_UTF8 is defined, supports utf8.
|
||||
*/
|
||||
|
||||
/**
|
||||
* The stringbuf structure should not be accessed directly.
|
||||
* Use the functions below.
|
||||
*/
|
||||
typedef struct {
|
||||
int remaining; /**< Allocated, but unused space */
|
||||
int last; /**< Index of the null terminator (and thus the length of the string) */
|
||||
#ifdef USE_UTF8
|
||||
int chars; /**< Count of characters */
|
||||
#endif
|
||||
char *data; /**< Allocated memory containing the string or NULL for empty */
|
||||
} stringbuf;
|
||||
|
||||
/**
|
||||
* Allocates and returns a new stringbuf with no elements.
|
||||
*/
|
||||
stringbuf *sb_alloc(void);
|
||||
|
||||
/**
|
||||
* Frees a stringbuf.
|
||||
* It is OK to call this with NULL.
|
||||
*/
|
||||
void sb_free(stringbuf *sb);
|
||||
|
||||
/**
|
||||
* Returns an allocated copy of the stringbuf
|
||||
*/
|
||||
stringbuf *sb_copy(stringbuf *sb);
|
||||
|
||||
/**
|
||||
* Returns the byte length of the buffer.
|
||||
*
|
||||
* Returns 0 for both a NULL buffer and an empty buffer.
|
||||
*/
|
||||
static inline int sb_len(stringbuf *sb) {
|
||||
return sb->last;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the utf8 character length of the buffer.
|
||||
*
|
||||
* Returns 0 for both a NULL buffer and an empty buffer.
|
||||
*/
|
||||
static inline int sb_chars(stringbuf *sb) {
|
||||
#ifdef USE_UTF8
|
||||
return sb->chars;
|
||||
#else
|
||||
return sb->last;
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* Appends a null terminated string to the stringbuf
|
||||
*/
|
||||
void sb_append(stringbuf *sb, const char *str);
|
||||
|
||||
/**
|
||||
* Like sb_append() except does not require a null terminated string.
|
||||
* The length of 'str' is given as 'len'
|
||||
*
|
||||
* Note that in utf8 mode, characters will *not* be counted correctly
|
||||
* if a partial utf8 sequence is added with sb_append_len()
|
||||
*/
|
||||
void sb_append_len(stringbuf *sb, const char *str, int len);
|
||||
|
||||
/**
|
||||
* Returns a pointer to the null terminated string in the buffer.
|
||||
*
|
||||
* Note this pointer only remains valid until the next modification to the
|
||||
* string buffer.
|
||||
*
|
||||
* The returned pointer can be used to update the buffer in-place
|
||||
* as long as care is taken to not overwrite the end of the buffer.
|
||||
*/
|
||||
static inline char *sb_str(const stringbuf *sb)
|
||||
{
|
||||
return sb->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts the given string *before* (zero-based) byte 'index' in the stringbuf.
|
||||
* If index is past the end of the buffer, the string is appended,
|
||||
* just like sb_append()
|
||||
*/
|
||||
void sb_insert(stringbuf *sb, int index, const char *str);
|
||||
|
||||
/**
|
||||
* Delete 'len' bytes in the string at the given index.
|
||||
*
|
||||
* Any bytes past the end of the buffer are ignored.
|
||||
* The buffer remains null terminated.
|
||||
*
|
||||
* If len is -1, deletes to the end of the buffer.
|
||||
*/
|
||||
void sb_delete(stringbuf *sb, int index, int len);
|
||||
|
||||
/**
|
||||
* Clear to an empty buffer.
|
||||
*/
|
||||
void sb_clear(stringbuf *sb);
|
||||
|
||||
/**
|
||||
* Return an allocated copy of buffer and frees 'sb'.
|
||||
*
|
||||
* If 'sb' is empty, returns an allocated copy of "".
|
||||
*/
|
||||
char *sb_to_string(stringbuf *sb);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
137
3rdparty/linenoise/teststringbuf.c
vendored
Normal file
137
3rdparty/linenoise/teststringbuf.c
vendored
Normal file
@ -0,0 +1,137 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <assert.h>
|
||||
#include <stringbuf.h>
|
||||
|
||||
static void show_buf(stringbuf *sb)
|
||||
{
|
||||
printf("[%d] = %s\n", sb_len(sb), sb_str(sb));
|
||||
}
|
||||
|
||||
#define validate_buf(SB, EXP) validate_buf_(__FILE__, __LINE__, SB, EXP)
|
||||
|
||||
static void validate_buf_(const char *file, int line, stringbuf *sb, const char *expected)
|
||||
{
|
||||
const char *pt = sb_str(sb);
|
||||
if (pt == NULL) {
|
||||
if (expected != NULL) {
|
||||
fprintf(stderr, "%s:%d: Error: Expected NULL, got '%s'\n", file, line, pt);
|
||||
abort();
|
||||
}
|
||||
}
|
||||
else if (strcmp(pt, expected) != 0) {
|
||||
show_buf(sb);
|
||||
fprintf(stderr, "%s:%d: Error: Expected '%s', got '%s'\n", file, line, expected, pt);
|
||||
abort();
|
||||
}
|
||||
sb_free(sb);
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
stringbuf *sb;
|
||||
char *pt;
|
||||
|
||||
sb = sb_alloc();
|
||||
validate_buf(sb, NULL);
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_append(sb, "hello");
|
||||
sb_append(sb, "world");
|
||||
validate_buf(sb, "helloworld");
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_append(sb, "hello");
|
||||
sb_append(sb, "world");
|
||||
sb_append(sb, "");
|
||||
sb_append(sb, "xxx");
|
||||
assert(sb_len(sb) == 13);
|
||||
validate_buf(sb, "helloworldxxx");
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_append(sb, "first");
|
||||
sb_append(sb, "string");
|
||||
validate_buf(sb, "firststring");
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_append(sb, "");
|
||||
validate_buf(sb, "");
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_append_len(sb, "one string here", 3);
|
||||
sb_append_len(sb, "second string here", 6);
|
||||
validate_buf(sb, "onesecond");
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_append_len(sb, "one string here", 3);
|
||||
sb_append_len(sb, "second string here", 6);
|
||||
pt = sb_to_string(sb);
|
||||
assert(strcmp(pt, "onesecond") == 0);
|
||||
free(pt);
|
||||
|
||||
sb = sb_alloc();
|
||||
pt = sb_to_string(sb);
|
||||
assert(strcmp(pt, "") == 0);
|
||||
free(pt);
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_append(sb, "one");
|
||||
sb_append(sb, "three");
|
||||
sb_insert(sb, 3, "two");
|
||||
validate_buf(sb, "onetwothree");
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_insert(sb, 0, "two");
|
||||
sb_insert(sb, 0, "one");
|
||||
sb_insert(sb, 20, "three");
|
||||
validate_buf(sb, "onetwothree");
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_append(sb, "one");
|
||||
sb_append(sb, "extra");
|
||||
sb_append(sb, "two");
|
||||
sb_append(sb, "three");
|
||||
sb_delete(sb, 3, 5);
|
||||
validate_buf(sb, "onetwothree");
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_append(sb, "one");
|
||||
sb_append(sb, "two");
|
||||
sb_append(sb, "three");
|
||||
validate_buf(sb, "onetwothree");
|
||||
/*sb_delete(sb, 6, -1);*/
|
||||
/*validate_buf(sb, "onetwo");*/
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_append(sb, "one");
|
||||
sb_append(sb, "two");
|
||||
sb_append(sb, "three");
|
||||
sb_delete(sb, 0, -1);
|
||||
validate_buf(sb, "");
|
||||
|
||||
sb = sb_alloc();
|
||||
sb_append(sb, "one");
|
||||
sb_append(sb, "two");
|
||||
sb_append(sb, "three");
|
||||
sb_delete(sb, 50, 20);
|
||||
validate_buf(sb, "onetwothree");
|
||||
|
||||
/* OK to sb_free() a NULL pointer */
|
||||
sb_free(NULL);
|
||||
|
||||
#ifdef USE_UTF8
|
||||
sb = sb_alloc();
|
||||
sb_append(sb, "oneµtwo");
|
||||
assert(sb_len(sb) == 8);
|
||||
assert(sb_chars(sb) == 7);
|
||||
sb_delete(sb, 3, 2);
|
||||
assert(sb_len(sb) == 6);
|
||||
assert(sb_chars(sb) == 6);
|
||||
validate_buf(sb, "onetwo");
|
||||
#endif
|
||||
|
||||
return(0);
|
||||
}
|
148
3rdparty/linenoise/utf8.c
vendored
148
3rdparty/linenoise/utf8.c
vendored
@ -1,16 +1,39 @@
|
||||
/**
|
||||
* UTF-8 utility functions
|
||||
*
|
||||
* (c) 2010-2016 Steve Bennett <steveb@workware.net.au>
|
||||
* (c) 2010-2019 Steve Bennett <steveb@workware.net.au>
|
||||
*
|
||||
* See LICENCE for licence details.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#ifndef UTF8_UTIL_H
|
||||
#include "utf8.h"
|
||||
#endif
|
||||
|
||||
#ifdef USE_UTF8
|
||||
int utf8_fromunicode(char *p, unsigned uc)
|
||||
@ -64,7 +87,7 @@ int utf8_strlen(const char *str, int bytelen)
|
||||
if (bytelen < 0) {
|
||||
bytelen = strlen(str);
|
||||
}
|
||||
while (bytelen) {
|
||||
while (bytelen > 0) {
|
||||
int c;
|
||||
int l = utf8_tounicode(str, &c);
|
||||
charlen++;
|
||||
@ -108,19 +131,28 @@ int utf8_tounicode(const char *str, int *uc)
|
||||
if (s[0] < 0xe0) {
|
||||
if ((s[1] & 0xc0) == 0x80) {
|
||||
*uc = ((s[0] & ~0xc0) << 6) | (s[1] & ~0x80);
|
||||
return 2;
|
||||
if (*uc >= 0x80) {
|
||||
return 2;
|
||||
}
|
||||
/* Otherwise this is an invalid sequence */
|
||||
}
|
||||
}
|
||||
else if (s[0] < 0xf0) {
|
||||
if (((str[1] & 0xc0) == 0x80) && ((str[2] & 0xc0) == 0x80)) {
|
||||
*uc = ((s[0] & ~0xe0) << 12) | ((s[1] & ~0x80) << 6) | (s[2] & ~0x80);
|
||||
return 3;
|
||||
if (*uc >= 0x800) {
|
||||
return 3;
|
||||
}
|
||||
/* Otherwise this is an invalid sequence */
|
||||
}
|
||||
}
|
||||
else if (s[0] < 0xf8) {
|
||||
if (((str[1] & 0xc0) == 0x80) && ((str[2] & 0xc0) == 0x80) && ((str[3] & 0xc0) == 0x80)) {
|
||||
*uc = ((s[0] & ~0xf0) << 18) | ((s[1] & ~0x80) << 12) | ((s[2] & ~0x80) << 6) | (s[3] & ~0x80);
|
||||
return 4;
|
||||
if (*uc >= 0x10000) {
|
||||
return 4;
|
||||
}
|
||||
/* Otherwise this is an invalid sequence */
|
||||
}
|
||||
}
|
||||
|
||||
@ -136,52 +168,68 @@ struct utf8range {
|
||||
|
||||
/* From http://unicode.org/Public/UNIDATA/UnicodeData.txt */
|
||||
static const struct utf8range unicode_range_combining[] = {
|
||||
{ 0x0300, 0x0370 }, { 0x0483, 0x048a }, { 0x0591, 0x05be }, { 0x05bf, 0x05c0 },
|
||||
{ 0x05c1, 0x05c3 }, { 0x05c4, 0x05c6 }, { 0x05c7, 0x05d0 }, { 0x0610, 0x061b },
|
||||
{ 0x064b, 0x0660 }, { 0x0670, 0x0671 }, { 0x06d6, 0x06dd }, { 0x06de, 0x06e5 },
|
||||
{ 0x06e7, 0x06e9 }, { 0x06ea, 0x06ee }, { 0x0711, 0x0712 }, { 0x0730, 0x074d },
|
||||
{ 0x07a6, 0x07b1 }, { 0x07eb, 0x07f4 }, { 0x0816, 0x081a }, { 0x081b, 0x0824 },
|
||||
{ 0x0825, 0x0828 }, { 0x0829, 0x0830 }, { 0x0900, 0x0904 }, { 0x093c, 0x093d },
|
||||
{ 0x093e, 0x0950 }, { 0x0951, 0x0958 }, { 0x0962, 0x0964 }, { 0x0981, 0x0985 },
|
||||
{ 0x09bc, 0x09bd }, { 0x09be, 0x09ce }, { 0x09d7, 0x09dc }, { 0x09e2, 0x09e6 },
|
||||
{ 0x0a01, 0x0a05 }, { 0x0a3c, 0x0a59 }, { 0x0a70, 0x0a72 }, { 0x0a75, 0x0a85 },
|
||||
{ 0x0abc, 0x0abd }, { 0x0abe, 0x0ad0 }, { 0x0ae2, 0x0ae6 }, { 0x0b01, 0x0b05 },
|
||||
{ 0x0b3c, 0x0b3d }, { 0x0b3e, 0x0b5c }, { 0x0b62, 0x0b66 }, { 0x0b82, 0x0b83 },
|
||||
{ 0x0bbe, 0x0bd0 }, { 0x0bd7, 0x0be6 }, { 0x0c01, 0x0c05 }, { 0x0c3e, 0x0c58 },
|
||||
{ 0x0c62, 0x0c66 }, { 0x0c82, 0x0c85 }, { 0x0cbc, 0x0cbd }, { 0x0cbe, 0x0cde },
|
||||
{ 0x0ce2, 0x0ce6 }, { 0x0d02, 0x0d05 }, { 0x0d3e, 0x0d60 }, { 0x0d62, 0x0d66 },
|
||||
{ 0x0d82, 0x0d85 }, { 0x0dca, 0x0df4 }, { 0x0e31, 0x0e32 }, { 0x0e34, 0x0e3f },
|
||||
{ 0x0e47, 0x0e4f }, { 0x0eb1, 0x0eb2 }, { 0x0eb4, 0x0ebd }, { 0x0ec8, 0x0ed0 },
|
||||
{ 0x0f18, 0x0f1a }, { 0x0f35, 0x0f36 }, { 0x0f37, 0x0f38 }, { 0x0f39, 0x0f3a },
|
||||
{ 0x0f3e, 0x0f40 }, { 0x0f71, 0x0f85 }, { 0x0f86, 0x0f88 }, { 0x0f90, 0x0fbe },
|
||||
{ 0x0fc6, 0x0fc7 }, { 0x102b, 0x103f }, { 0x1056, 0x105a }, { 0x105e, 0x1061 },
|
||||
{ 0x1062, 0x1065 }, { 0x1067, 0x106e }, { 0x1071, 0x1075 }, { 0x1082, 0x108e },
|
||||
{ 0x108f, 0x1090 }, { 0x109a, 0x109e }, { 0x135f, 0x1360 }, { 0x1712, 0x1720 },
|
||||
{ 0x1732, 0x1735 }, { 0x1752, 0x1760 }, { 0x1772, 0x1780 }, { 0x17b6, 0x17d4 },
|
||||
{ 0x17dd, 0x17e0 }, { 0x180b, 0x180e }, { 0x18a9, 0x18aa }, { 0x1920, 0x1940 },
|
||||
{ 0x19b0, 0x19c1 }, { 0x19c8, 0x19d0 }, { 0x1a17, 0x1a1e }, { 0x1a55, 0x1a80 },
|
||||
{ 0x1b00, 0x1b05 }, { 0x1b34, 0x1b45 }, { 0x1b6b, 0x1b74 }, { 0x1b80, 0x1b83 },
|
||||
{ 0x1ba1, 0x1bae }, { 0x1c24, 0x1c3b }, { 0x1cd0, 0x1cd3 }, { 0x1cd4, 0x1ce9 },
|
||||
{ 0x1ced, 0x1cee }, { 0x1cf2, 0x1d00 }, { 0x1dc0, 0x1e00 }, { 0x20d0, 0x2100 },
|
||||
{ 0x2cef, 0x2cf9 }, { 0x2de0, 0x2e00 }, { 0x302a, 0x3030 }, { 0x3099, 0x309b },
|
||||
{ 0xa66f, 0xa673 }, { 0xa67c, 0xa67e }, { 0xa6f0, 0xa6f2 }, { 0xa802, 0xa803 },
|
||||
{ 0xa806, 0xa807 }, { 0xa80b, 0xa80c }, { 0xa823, 0xa828 }, { 0xa880, 0xa882 },
|
||||
{ 0xa8b4, 0xa8ce }, { 0xa8e0, 0xa8f2 }, { 0xa926, 0xa92e }, { 0xa947, 0xa95f },
|
||||
{ 0xa980, 0xa984 }, { 0xa9b3, 0xa9c1 }, { 0xaa29, 0xaa40 }, { 0xaa43, 0xaa44 },
|
||||
{ 0xaa4c, 0xaa50 }, { 0xaa7b, 0xaa80 }, { 0xaab0, 0xaab1 }, { 0xaab2, 0xaab5 },
|
||||
{ 0xaab7, 0xaab9 }, { 0xaabe, 0xaac0 }, { 0xaac1, 0xaac2 }, { 0xabe3, 0xabeb },
|
||||
{ 0xabec, 0xabf0 }, { 0xfb1e, 0xfb1f }, { 0xfe00, 0xfe10 }, { 0xfe20, 0xfe30 },
|
||||
{ 0x0300, 0x0370 }, { 0x0483, 0x048a }, { 0x0591, 0x05d0 }, { 0x0610, 0x061b },
|
||||
{ 0x064b, 0x0660 }, { 0x0670, 0x0671 }, { 0x06d6, 0x06dd }, { 0x06df, 0x06e5 },
|
||||
{ 0x06e7, 0x06ee }, { 0x0711, 0x0712 }, { 0x0730, 0x074d }, { 0x07a6, 0x07b1 },
|
||||
{ 0x07eb, 0x07f4 }, { 0x0816, 0x0830 }, { 0x0859, 0x085e }, { 0x08d4, 0x0904 },
|
||||
{ 0x093a, 0x0958 }, { 0x0962, 0x0964 }, { 0x0981, 0x0985 }, { 0x09bc, 0x09ce },
|
||||
{ 0x09d7, 0x09dc }, { 0x09e2, 0x09e6 }, { 0x0a01, 0x0a05 }, { 0x0a3c, 0x0a59 },
|
||||
{ 0x0a70, 0x0a72 }, { 0x0a75, 0x0a85 }, { 0x0abc, 0x0ad0 }, { 0x0ae2, 0x0ae6 },
|
||||
{ 0x0afa, 0x0b05 }, { 0x0b3c, 0x0b5c }, { 0x0b62, 0x0b66 }, { 0x0b82, 0x0b83 },
|
||||
{ 0x0bbe, 0x0bd0 }, { 0x0bd7, 0x0be6 }, { 0x0c00, 0x0c05 }, { 0x0c3e, 0x0c58 },
|
||||
{ 0x0c62, 0x0c66 }, { 0x0c81, 0x0c85 }, { 0x0cbc, 0x0cde }, { 0x0ce2, 0x0ce6 },
|
||||
{ 0x0d00, 0x0d05 }, { 0x0d3b, 0x0d4e }, { 0x0d57, 0x0d58 }, { 0x0d62, 0x0d66 },
|
||||
{ 0x0d82, 0x0d85 }, { 0x0dca, 0x0de6 }, { 0x0df2, 0x0df4 }, { 0x0e31, 0x0e32 },
|
||||
{ 0x0e34, 0x0e3f }, { 0x0e47, 0x0e4f }, { 0x0eb1, 0x0eb2 }, { 0x0eb4, 0x0ebd },
|
||||
{ 0x0ec8, 0x0ed0 }, { 0x0f18, 0x0f1a }, { 0x0f35, 0x0f3a }, { 0x0f3e, 0x0f40 },
|
||||
{ 0x0f71, 0x0f88 }, { 0x0f8d, 0x0fbe }, { 0x0fc6, 0x0fc7 }, { 0x102b, 0x103f },
|
||||
{ 0x1056, 0x105a }, { 0x105e, 0x1065 }, { 0x1067, 0x106e }, { 0x1071, 0x1075 },
|
||||
{ 0x1082, 0x1090 }, { 0x109a, 0x109e }, { 0x135d, 0x1360 }, { 0x1712, 0x1720 },
|
||||
{ 0x1732, 0x1735 }, { 0x1752, 0x1760 }, { 0x1772, 0x1780 }, { 0x17b4, 0x17d4 },
|
||||
{ 0x17dd, 0x17e0 }, { 0x180b, 0x180e }, { 0x1885, 0x1887 }, { 0x18a9, 0x18aa },
|
||||
{ 0x1920, 0x1940 }, { 0x1a17, 0x1a1e }, { 0x1a55, 0x1a80 }, { 0x1ab0, 0x1b05 },
|
||||
{ 0x1b34, 0x1b45 }, { 0x1b6b, 0x1b74 }, { 0x1b80, 0x1b83 }, { 0x1ba1, 0x1bae },
|
||||
{ 0x1be6, 0x1bfc }, { 0x1c24, 0x1c3b }, { 0x1cd0, 0x1ce9 }, { 0x1ced, 0x1cee },
|
||||
{ 0x1cf2, 0x1cf5 }, { 0x1cf7, 0x1d00 }, { 0x1dc0, 0x1e00 }, { 0x20d0, 0x2100 },
|
||||
{ 0x2cef, 0x2cf2 }, { 0x2d7f, 0x2d80 }, { 0x2de0, 0x2e00 }, { 0x302a, 0x3030 },
|
||||
{ 0x3099, 0x309b }, { 0xa66f, 0xa67e }, { 0xa69e, 0xa6a0 }, { 0xa6f0, 0xa6f2 },
|
||||
{ 0xa802, 0xa803 }, { 0xa806, 0xa807 }, { 0xa80b, 0xa80c }, { 0xa823, 0xa828 },
|
||||
{ 0xa880, 0xa882 }, { 0xa8b4, 0xa8ce }, { 0xa8e0, 0xa8f2 }, { 0xa926, 0xa92e },
|
||||
{ 0xa947, 0xa95f }, { 0xa980, 0xa984 }, { 0xa9b3, 0xa9c1 }, { 0xa9e5, 0xa9e6 },
|
||||
{ 0xaa29, 0xaa40 }, { 0xaa43, 0xaa44 }, { 0xaa4c, 0xaa50 }, { 0xaa7b, 0xaa7e },
|
||||
{ 0xaab0, 0xaab5 }, { 0xaab7, 0xaab9 }, { 0xaabe, 0xaac2 }, { 0xaaeb, 0xaaf0 },
|
||||
{ 0xaaf5, 0xab01 }, { 0xabe3, 0xabf0 }, { 0xfb1e, 0xfb1f }, { 0xfe00, 0xfe10 },
|
||||
{ 0xfe20, 0xfe30 },
|
||||
};
|
||||
|
||||
/* From http://unicode.org/Public/UNIDATA/EastAsianWidth.txt */
|
||||
static const struct utf8range unicode_range_wide[] = {
|
||||
{ 0x1100, 0x115f }, { 0x2329, 0x232a }, { 0x2e80, 0x2e99 }, { 0x2e9b, 0x2ef3 },
|
||||
{ 0x2f00, 0x2fd5 }, { 0x2ff0, 0x2ffb }, { 0x3000, 0x303e }, { 0x3041, 0x3096 },
|
||||
{ 0x3099, 0x30ff }, { 0x3105, 0x312d }, { 0x3131, 0x318e }, { 0x3190, 0x31ba },
|
||||
{ 0x31c0, 0x31e3 }, { 0x31f0, 0x321e }, { 0x3220, 0x3247 }, { 0x3250, 0x4dbf },
|
||||
{ 0x4e00, 0xa48c }, { 0xa490, 0xa4c6 }, { 0xa960, 0xa97c }, { 0xac00, 0xd7a3 },
|
||||
{ 0xf900, 0xfaff }, { 0xfe10, 0xfe19 }, { 0xfe30, 0xfe52 }, { 0xfe54, 0xfe66 },
|
||||
{ 0xfe68, 0xfe6b }, { 0xff01, 0xffe6 }, { 0x1b000, 0x1b001 }, { 0x1f200, 0x1f202 },
|
||||
{ 0x1f210, 0x1f23a }, { 0x1f240, 0x1f248 }, { 0x1f250, 0x1f251 }, { 0x20000, 0x3fffd },
|
||||
{ 0x1100, 0x115f }, { 0x231a, 0x231b }, { 0x2329, 0x232a }, { 0x23e9, 0x23ec },
|
||||
{ 0x23f0, 0x23f0 }, { 0x23f3, 0x23f3 }, { 0x25fd, 0x25fe }, { 0x2614, 0x2615 },
|
||||
{ 0x2648, 0x2653 }, { 0x267f, 0x267f }, { 0x2693, 0x2693 }, { 0x26a1, 0x26a1 },
|
||||
{ 0x26aa, 0x26ab }, { 0x26bd, 0x26be }, { 0x26c4, 0x26c5 }, { 0x26ce, 0x26ce },
|
||||
{ 0x26d4, 0x26d4 }, { 0x26ea, 0x26ea }, { 0x26f2, 0x26f3 }, { 0x26f5, 0x26f5 },
|
||||
{ 0x26fa, 0x26fa }, { 0x26fd, 0x26fd }, { 0x2705, 0x2705 }, { 0x270a, 0x270b },
|
||||
{ 0x2728, 0x2728 }, { 0x274c, 0x274c }, { 0x274e, 0x274e }, { 0x2753, 0x2755 },
|
||||
{ 0x2757, 0x2757 }, { 0x2795, 0x2797 }, { 0x27b0, 0x27b0 }, { 0x27bf, 0x27bf },
|
||||
{ 0x2b1b, 0x2b1c }, { 0x2b50, 0x2b50 }, { 0x2b55, 0x2b55 }, { 0x2e80, 0x2e99 },
|
||||
{ 0x2e9b, 0x2ef3 }, { 0x2f00, 0x2fd5 }, { 0x2ff0, 0x2ffb }, { 0x3001, 0x303e },
|
||||
{ 0x3041, 0x3096 }, { 0x3099, 0x30ff }, { 0x3105, 0x312e }, { 0x3131, 0x318e },
|
||||
{ 0x3190, 0x31ba }, { 0x31c0, 0x31e3 }, { 0x31f0, 0x321e }, { 0x3220, 0x3247 },
|
||||
{ 0x3250, 0x32fe }, { 0x3300, 0x4dbf }, { 0x4e00, 0xa48c }, { 0xa490, 0xa4c6 },
|
||||
{ 0xa960, 0xa97c }, { 0xac00, 0xd7a3 }, { 0xf900, 0xfaff }, { 0xfe10, 0xfe19 },
|
||||
{ 0xfe30, 0xfe52 }, { 0xfe54, 0xfe66 }, { 0xfe68, 0xfe6b }, { 0x16fe0, 0x16fe1 },
|
||||
{ 0x17000, 0x187ec }, { 0x18800, 0x18af2 }, { 0x1b000, 0x1b11e }, { 0x1b170, 0x1b2fb },
|
||||
{ 0x1f004, 0x1f004 }, { 0x1f0cf, 0x1f0cf }, { 0x1f18e, 0x1f18e }, { 0x1f191, 0x1f19a },
|
||||
{ 0x1f200, 0x1f202 }, { 0x1f210, 0x1f23b }, { 0x1f240, 0x1f248 }, { 0x1f250, 0x1f251 },
|
||||
{ 0x1f260, 0x1f265 }, { 0x1f300, 0x1f320 }, { 0x1f32d, 0x1f335 }, { 0x1f337, 0x1f37c },
|
||||
{ 0x1f37e, 0x1f393 }, { 0x1f3a0, 0x1f3ca }, { 0x1f3cf, 0x1f3d3 }, { 0x1f3e0, 0x1f3f0 },
|
||||
{ 0x1f3f4, 0x1f3f4 }, { 0x1f3f8, 0x1f43e }, { 0x1f440, 0x1f440 }, { 0x1f442, 0x1f4fc },
|
||||
{ 0x1f4ff, 0x1f53d }, { 0x1f54b, 0x1f54e }, { 0x1f550, 0x1f567 }, { 0x1f57a, 0x1f57a },
|
||||
{ 0x1f595, 0x1f596 }, { 0x1f5a4, 0x1f5a4 }, { 0x1f5fb, 0x1f64f }, { 0x1f680, 0x1f6c5 },
|
||||
{ 0x1f6cc, 0x1f6cc }, { 0x1f6d0, 0x1f6d2 }, { 0x1f6eb, 0x1f6ec }, { 0x1f6f4, 0x1f6f8 },
|
||||
{ 0x1f910, 0x1f93e }, { 0x1f940, 0x1f94c }, { 0x1f950, 0x1f96b }, { 0x1f980, 0x1f997 },
|
||||
{ 0x1f9c0, 0x1f9c0 }, { 0x1f9d0, 0x1f9e6 }, { 0x20000, 0x2fffd }, { 0x30000, 0x3fffd },
|
||||
};
|
||||
|
||||
#define ARRAYSIZE(A) sizeof(A) / sizeof(*(A))
|
||||
@ -202,7 +250,7 @@ static int cmp_range(const void *key, const void *cm)
|
||||
static int utf8_in_range(const struct utf8range *range, int num, int ch)
|
||||
{
|
||||
const struct utf8range *r =
|
||||
(const struct utf8range *)bsearch(&ch, range, num, sizeof(*range), cmp_range);
|
||||
bsearch(&ch, range, num, sizeof(*range), cmp_range);
|
||||
|
||||
if (r) {
|
||||
return 1;
|
||||
|
10
3rdparty/linenoise/utf8.h
vendored
10
3rdparty/linenoise/utf8.h
vendored
@ -8,15 +8,16 @@ extern "C" {
|
||||
/**
|
||||
* UTF-8 utility functions
|
||||
*
|
||||
* (c) 2010-2016 Steve Bennett <steveb@workware.net.au>
|
||||
* (c) 2010-2019 Steve Bennett <steveb@workware.net.au>
|
||||
*
|
||||
* See LICENCE for licence details.
|
||||
* See utf8.c for licence details.
|
||||
*/
|
||||
#define USE_UTF8
|
||||
|
||||
#ifndef USE_UTF8
|
||||
#include <ctype.h>
|
||||
|
||||
#define MAX_UTF8_LEN 1
|
||||
|
||||
/* No utf-8 support. 1 byte = 1 char */
|
||||
#define utf8_strlen(S, B) ((B) < 0 ? (int)strlen(S) : (B))
|
||||
#define utf8_strwidth(S, B) utf8_strlen((S), (B))
|
||||
@ -26,6 +27,9 @@ extern "C" {
|
||||
#define utf8_width(C) 1
|
||||
|
||||
#else
|
||||
|
||||
#define MAX_UTF8_LEN 4
|
||||
|
||||
/**
|
||||
* Converts the given unicode codepoint (0 - 0x1fffff) to utf-8
|
||||
* and stores the result at 'p'.
|
||||
|
26
3rdparty/lua-linenoise/linenoise.c
vendored
26
3rdparty/lua-linenoise/linenoise.c
vendored
@ -44,7 +44,7 @@ static int handle_ln_ok(lua_State *L)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void completion_callback_wrapper(const char *line, linenoiseCompletions *completions, int pos)
|
||||
static void completion_callback_wrapper(const char *line, linenoiseCompletions *completions, void *userdata)
|
||||
{
|
||||
lua_State *L = completion_state;
|
||||
|
||||
@ -54,9 +54,8 @@ static void completion_callback_wrapper(const char *line, linenoiseCompletions *
|
||||
lua_setmetatable(L, -2);
|
||||
|
||||
lua_pushstring(L, line);
|
||||
lua_pushinteger(L, pos);
|
||||
|
||||
lua_pcall(L, 3, 0, 0);
|
||||
lua_pcall(L, 2, 0, 0);
|
||||
}
|
||||
|
||||
static int l_linenoise(lua_State *L)
|
||||
@ -102,14 +101,6 @@ static int l_historyadd(lua_State *L)
|
||||
return handle_ln_ok(L);
|
||||
}
|
||||
|
||||
static int l_preloadbuffer(lua_State *L)
|
||||
{
|
||||
const char *line = luaL_checkstring(L, 1);
|
||||
linenoisePreloadBuffer(line);
|
||||
|
||||
return handle_ln_ok(L);
|
||||
}
|
||||
|
||||
static int l_historysetmaxlen(lua_State *L)
|
||||
{
|
||||
int len = luaL_checkinteger(L, 1);
|
||||
@ -153,7 +144,7 @@ static int l_setcompletion(lua_State *L)
|
||||
|
||||
lua_pushvalue(L, 1);
|
||||
completion_func_ref = luaL_ref(L, LUA_REGISTRYINDEX);
|
||||
linenoiseSetCompletionCallback(completion_callback_wrapper);
|
||||
linenoiseSetCompletionCallback(completion_callback_wrapper, NULL);
|
||||
|
||||
return handle_ln_ok(L);
|
||||
}
|
||||
@ -162,19 +153,12 @@ static int l_addcompletion(lua_State *L)
|
||||
{
|
||||
linenoiseCompletions *completions = *((linenoiseCompletions **) luaL_checkudata(L, 1, LN_COMPLETION_TYPE));
|
||||
const char *entry = luaL_checkstring(L, 2);
|
||||
int pos = luaL_checkinteger(L, 3);
|
||||
|
||||
linenoiseAddCompletion(completions, (char *) entry, pos);
|
||||
linenoiseAddCompletion(completions, (char *) entry);
|
||||
|
||||
return handle_ln_ok(L);
|
||||
}
|
||||
|
||||
static int l_refresh(lua_State *L)
|
||||
{
|
||||
linenoiseRefresh();
|
||||
return handle_ln_ok(L);
|
||||
}
|
||||
|
||||
static int l_historyget(lua_State *L)
|
||||
{
|
||||
int len, i;
|
||||
@ -198,8 +182,6 @@ luaL_Reg linenoise_funcs[] = {
|
||||
{ "clearscreen", l_clearscreen },
|
||||
{ "setcompletion", l_setcompletion},
|
||||
{ "addcompletion", l_addcompletion },
|
||||
{ "preload", l_preloadbuffer },
|
||||
{ "refresh", l_refresh },
|
||||
|
||||
/* Aliases for more consistent function names */
|
||||
{ "addhistory", l_historyadd },
|
||||
|
@ -23,16 +23,6 @@ function console.startplugin()
|
||||
local matches = {}
|
||||
local lastindex = 0
|
||||
local consolebuf
|
||||
_G.history = function (index)
|
||||
local history = ln.historyget()
|
||||
if index then
|
||||
ln.preload(history[index])
|
||||
return
|
||||
end
|
||||
for num, line in ipairs(history) do
|
||||
print(num, line)
|
||||
end
|
||||
end
|
||||
print(" /| /| /| /| /| _______")
|
||||
print(" / | / | / | / | / | / /")
|
||||
print(" / |/ | / | / |/ | / ____/ ")
|
||||
@ -51,11 +41,11 @@ function console.startplugin()
|
||||
ln.historysetmaxlen(50)
|
||||
local scr = [[
|
||||
local ln = require('linenoise')
|
||||
ln.setcompletion(function(c, str, pos)
|
||||
status = str .. "\x01" .. tostring(pos)
|
||||
ln.setcompletion(
|
||||
function(c, str)
|
||||
yield()
|
||||
ln.addcompletion(c, status:match("([^\x01]*)\x01(.*)"))
|
||||
end)
|
||||
ln.addcompletion(c, str)
|
||||
end)
|
||||
local ret = ln.linenoise('$PROMPT')
|
||||
if ret == nil then
|
||||
return "\n"
|
||||
@ -256,7 +246,7 @@ function console.startplugin()
|
||||
lastindex = lastindex + 1
|
||||
print(consolebuf[lastindex])
|
||||
end
|
||||
ln.refresh()
|
||||
-- ln.refresh() FIXME: how to replicate this now that the API has been removed?
|
||||
end
|
||||
if conth.yield then
|
||||
conth:continue(get_completions(conth.result:match("([^\x01]*)\x01(.*)")))
|
||||
|
@ -220,349 +220,350 @@ end
|
||||
--------------------------------------------------
|
||||
|
||||
project "softfloat3"
|
||||
uuid "9c22fc90-53fd-11e8-b566-0800200c9a66"
|
||||
kind "StaticLib"
|
||||
uuid "9c22fc90-53fd-11e8-b566-0800200c9a66"
|
||||
kind "StaticLib"
|
||||
|
||||
options {
|
||||
"ForceCPP",
|
||||
}
|
||||
|
||||
includedirs {
|
||||
MAME_DIR .. "src/osd",
|
||||
MAME_DIR .. "3rdparty/softfloat3/build/MAME",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/include",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086",
|
||||
}
|
||||
|
||||
configuration { "gmake or ninja" }
|
||||
buildoptions_cpp {
|
||||
"-x c++",
|
||||
}
|
||||
if _OPTIONS["gcc"]~=nil and not string.find(_OPTIONS["gcc"], "clang") then
|
||||
buildoptions_cpp {
|
||||
"-Wno-error=implicit-fallthrough",
|
||||
options {
|
||||
"ForceCPP",
|
||||
}
|
||||
|
||||
includedirs {
|
||||
MAME_DIR .. "src/osd",
|
||||
MAME_DIR .. "3rdparty/softfloat3/build/MAME",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/include",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086",
|
||||
}
|
||||
|
||||
configuration { "gmake or ninja" }
|
||||
buildoptions_cpp {
|
||||
"-x c++",
|
||||
}
|
||||
if _OPTIONS["gcc"]~=nil and not string.find(_OPTIONS["gcc"], "clang") then
|
||||
buildoptions_cpp {
|
||||
"-Wno-error=implicit-fallthrough",
|
||||
}
|
||||
end
|
||||
|
||||
configuration { "vs*" }
|
||||
buildoptions {
|
||||
"/wd4701", -- warning C4701: potentially uninitialized local variable 'xxx' used
|
||||
"/wd4703", -- warning C4703: potentially uninitialized local pointer variable 'xxx' used
|
||||
}
|
||||
configuration { "vs*" }
|
||||
buildoptions {
|
||||
"/wd4701", -- warning C4701: potentially uninitialized local variable 'xxx' used
|
||||
"/wd4703", -- warning C4703: potentially uninitialized local pointer variable 'xxx' used
|
||||
}
|
||||
|
||||
configuration { }
|
||||
defines {
|
||||
"SOFTFLOAT_ROUND_ODD",
|
||||
"INLINE_LEVEL=5",
|
||||
"SOFTFLOAT_FAST_DIV32TO16",
|
||||
"SOFTFLOAT_FAST_DIV64TO32",
|
||||
"SOFTFLOAT_FAST_INT64"
|
||||
}
|
||||
configuration { }
|
||||
|
||||
files {
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_eq128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_le128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_lt128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftLeft128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftRight128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftRightJam64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftRightJam64Extra.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftRightJam128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftRightJam128Extra.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam64Extra.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam128Extra.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam256M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_countLeadingZeros8.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_countLeadingZeros16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_countLeadingZeros32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_countLeadingZeros64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_add128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_add256M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_sub128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_sub256M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mul64ByShifted32To128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mul64To128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mul128By32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mul128To256M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_approxRecip_1Ks.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_approxRecip32_1.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_approxRecipSqrt_1Ks.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_approxRecipSqrt32_1.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/softfloat_raiseFlags.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_commonNaNToF16UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_propagateNaNF16UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_f32UIToCommonNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_commonNaNToF32UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_propagateNaNF32UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_f64UIToCommonNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_commonNaNToF64UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_propagateNaNF64UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/extF80M_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_extF80UIToCommonNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_commonNaNToExtF80UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_propagateNaNExtF80UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/f128M_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_f128UIToCommonNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_commonNaNToF128UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_propagateNaNF128UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundToUI32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundToUI64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundToI32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundToI64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normSubnormalF16Sig.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundPackToF16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normRoundPackToF16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_addMagsF16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_subMagsF16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mulAddF16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normSubnormalF32Sig.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundPackToF32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normRoundPackToF32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_addMagsF32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_subMagsF32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mulAddF32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normSubnormalF64Sig.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundPackToF64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normRoundPackToF64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_addMagsF64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_subMagsF64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mulAddF64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normSubnormalExtF80Sig.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundPackToExtF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normRoundPackToExtF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_addMagsExtF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_subMagsExtF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normSubnormalF128Sig.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundPackToF128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normRoundPackToF128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_addMagsF128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_subMagsF128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mulAddF128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/softfloat_state.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_mulAdd.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_mulAdd.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_mulAdd.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_mulAdd.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_mulAdd.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_lt_quiet.c",
|
||||
}
|
||||
defines {
|
||||
"SOFTFLOAT_ROUND_ODD",
|
||||
"INLINE_LEVEL=5",
|
||||
"SOFTFLOAT_FAST_DIV32TO16",
|
||||
"SOFTFLOAT_FAST_DIV64TO32",
|
||||
"SOFTFLOAT_FAST_INT64"
|
||||
}
|
||||
|
||||
files {
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_eq128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_le128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_lt128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftLeft128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftRight128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftRightJam64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftRightJam64Extra.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftRightJam128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shortShiftRightJam128Extra.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam64Extra.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam128Extra.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_shiftRightJam256M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_countLeadingZeros8.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_countLeadingZeros16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_countLeadingZeros32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_countLeadingZeros64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_add128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_add256M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_sub128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_sub256M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mul64ByShifted32To128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mul64To128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mul128By32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mul128To256M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_approxRecip_1Ks.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_approxRecip32_1.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_approxRecipSqrt_1Ks.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_approxRecipSqrt32_1.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/softfloat_raiseFlags.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_commonNaNToF16UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_propagateNaNF16UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_f32UIToCommonNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_commonNaNToF32UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_propagateNaNF32UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_f64UIToCommonNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_commonNaNToF64UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_propagateNaNF64UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/extF80M_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_extF80UIToCommonNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_commonNaNToExtF80UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_propagateNaNExtF80UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/f128M_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_f128UIToCommonNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_commonNaNToF128UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/8086/s_propagateNaNF128UI.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundToUI32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundToUI64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundToI32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundToI64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normSubnormalF16Sig.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundPackToF16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normRoundPackToF16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_addMagsF16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_subMagsF16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mulAddF16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normSubnormalF32Sig.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundPackToF32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normRoundPackToF32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_addMagsF32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_subMagsF32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mulAddF32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normSubnormalF64Sig.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundPackToF64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normRoundPackToF64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_addMagsF64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_subMagsF64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mulAddF64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normSubnormalExtF80Sig.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundPackToExtF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normRoundPackToExtF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_addMagsExtF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_subMagsExtF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normSubnormalF128Sig.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_roundPackToF128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_normRoundPackToF128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_addMagsF128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_subMagsF128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/s_mulAddF128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/softfloat_state.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui32_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/ui64_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i32_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/i64_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_mulAdd.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f16_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_mulAdd.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f32_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_mulAdd.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f64_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_to_f128.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_to_f128M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/extF80M_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_extF80.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_mulAdd.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_lt_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128_isSignalingNaN.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_ui32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_ui64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_i32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_i64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_ui32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_ui64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_i32_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_i64_r_minMag.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_f16.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_f32.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_extF80M.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_to_f64.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_roundToInt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_add.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_sub.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_mul.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_mulAdd.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_div.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_rem.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_sqrt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_eq.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_le.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_lt.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_eq_signaling.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_le_quiet.c",
|
||||
MAME_DIR .. "3rdparty/softfloat3/source/f128M_lt_quiet.c",
|
||||
}
|
||||
|
||||
|
||||
-------------------------------------------------
|
||||
@ -848,8 +849,8 @@ project "lua"
|
||||
}
|
||||
|
||||
configuration { "gmake or ninja" }
|
||||
buildoptions_c {
|
||||
"-Wno-bad-function-cast"
|
||||
buildoptions_cpp {
|
||||
"-x c++",
|
||||
}
|
||||
|
||||
configuration { "vs*" }
|
||||
@ -939,6 +940,9 @@ project "lualibs"
|
||||
buildoptions {
|
||||
"-Wno-error=unused-variable",
|
||||
}
|
||||
buildoptions_cpp {
|
||||
"-x c++",
|
||||
}
|
||||
|
||||
configuration { "vs*" }
|
||||
buildoptions {
|
||||
@ -1674,14 +1678,10 @@ project "linenoise"
|
||||
|
||||
addprojectflags()
|
||||
|
||||
options {
|
||||
"ForceCPP",
|
||||
}
|
||||
|
||||
configuration { "gmake or ninja" }
|
||||
buildoptions {
|
||||
"-Wno-error=unused-variable",
|
||||
"-Wno-error=implicit-fallthrough",
|
||||
"-Wno-error=strict-prototypes",
|
||||
}
|
||||
|
||||
configuration { "vs*" }
|
||||
@ -1691,13 +1691,18 @@ project "linenoise"
|
||||
|
||||
configuration { }
|
||||
|
||||
defines {
|
||||
"USE_UTF8",
|
||||
}
|
||||
|
||||
includedirs {
|
||||
MAME_DIR .. "3rdparty/linenoise",
|
||||
}
|
||||
|
||||
files {
|
||||
MAME_DIR .. "3rdparty/linenoise/utf8.c",
|
||||
MAME_DIR .. "3rdparty/linenoise/linenoise.c",
|
||||
MAME_DIR .. "3rdparty/linenoise/stringbuf.c",
|
||||
MAME_DIR .. "3rdparty/linenoise/utf8.c",
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user