Merge pull request #333 from micolous/osx-libedit

OSX: Disable GNU readline-specific hack when libedit is used (fixes #110)
This commit is contained in:
marshmellow42 2017-06-30 00:22:55 -04:00 committed by GitHub
commit 82e8eee62d
2 changed files with 12 additions and 8 deletions

View file

@ -3,7 +3,7 @@ The project compiles on Linux, Mac OS X and Windows (MinGW/MSYS).
it requires:
- gcc >= 4.4
- libpthread
- libreadline
- GNU libreadline or BSD libedit (editline)
- libusb
- perl
- an ARM cross-compiler to compile the firmware
@ -109,7 +109,7 @@ Tested on OSX 10.10 Yosemite
1 - Install Xcode and Xcode Command Line Tools
2 - Install Homebrew and dependencies
brew install readline libusb p7zip libusb-compat wget qt5 pkgconfig
brew install libusb p7zip libusb-compat wget qt5 pkgconfig
3 - Install DevKitARM for OSX
Option 1:
@ -119,12 +119,10 @@ Tested on OSX 10.10 Yosemite
brew tap nitsky/stm32
brew install arm-none-eabi-gcc
4 - Edit proxmark3/client/Makefile adding path to readline and qt5
4 - Edit proxmark3/client/Makefile adding path qt5
LDLIBS = -L/usr/local/opt/readline/lib -L/usr/local/opt/qt5/lib -L/opt/local/lib -L/usr/local/lib ../liblua/liblua.a -lreadline -lpthread -lm
CFLAGS = -std=c99 -I/usr/local/opt/qt5/include -I/usr/local/opt/readline/include -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall $(COMMON_FLAGS) -g -O4
If your old brew intallation use /usr/local/Cellar/ path replace /usr/local/opt/readline/lib with your actuall readline and qt5 path. See homebrew manuals.
LDLIBS = -L/usr/local/opt/qt5/lib -L/opt/local/lib -L/usr/local/lib ../liblua/liblua.a -lreadline -lpthread -lm
CFLAGS = -std=c99 -I/usr/local/opt/qt5/include -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall $(COMMON_FLAGS) -g -O4
5 - Set Environment

View file

@ -48,7 +48,9 @@ void PrintAndLog(char *fmt, ...)
logging=0;
}
}
#ifdef RL_STATE_READCMD
// We are using GNU readline.
int need_hack = (rl_readline_state & RL_STATE_READCMD) > 0;
if (need_hack) {
@ -58,6 +60,10 @@ void PrintAndLog(char *fmt, ...)
rl_replace_line("", 0);
rl_redisplay();
}
#else
// We are using libedit (OSX), which doesn't support this flag.
int need_hack = 0;
#endif
va_start(argptr, fmt);
va_copy(argptr2, argptr);