Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
fa027672
Commit
fa027672
authored
Jan 01, 2014
by
Paul Sokolovsky
Browse files
Make GNU Readline usage optional (USE_READLINE define). Still enabled.
Readline is GPL, so linking with it casts the binary GPL.
parent
903b24f0
Changes
2
Hide whitespace changes
Inline
Side-by-side
unix/Makefile
View file @
fa027672
...
...
@@ -2,7 +2,7 @@ PYSRC=../py
BUILD
=
build
CC
=
gcc
CFLAGS
=
-I
.
-I
$(PYSRC)
-Wall
-Werror
-ansi
-std
=
gnu99
-Os
#-DNDEBUG
CFLAGS
=
-I
.
-I
$(PYSRC)
-Wall
-Werror
-ansi
-std
=
gnu99
-Os
-DUSE_READLINE
#-DNDEBUG
LDFLAGS
=
-lm
SRC_C
=
\
...
...
unix/main.c
View file @
fa027672
...
...
@@ -15,8 +15,10 @@
#include
"runtime.h"
#include
"repl.h"
#ifdef USE_READLINE
#include
<readline/readline.h>
#include
<readline/history.h>
#endif
static
char
*
str_join
(
const
char
*
s1
,
int
sep_char
,
const
char
*
s2
)
{
int
l1
=
strlen
(
s1
);
...
...
@@ -32,17 +34,41 @@ static char *str_join(const char *s1, int sep_char, const char *s2) {
return
s
;
}
static
char
*
prompt
(
char
*
p
)
{
#ifdef USE_READLINE
char
*
line
=
readline
(
p
);
if
(
line
)
{
add_history
(
line
);
}
#else
static
char
buf
[
256
];
fputs
(
p
,
stdout
);
char
*
s
=
fgets
(
buf
,
sizeof
(
buf
),
stdin
);
if
(
!
s
)
{
return
NULL
;
}
int
l
=
strlen
(
buf
);
if
(
buf
[
l
-
1
]
==
'\n'
)
{
buf
[
l
-
1
]
=
0
;
}
else
{
l
++
;
}
char
*
line
=
m_new
(
char
,
l
);
memcpy
(
line
,
buf
,
l
);
#endif
return
line
;
}
static
void
do_repl
(
void
)
{
for
(;;)
{
char
*
line
=
readline
(
">>> "
);
char
*
line
=
prompt
(
">>> "
);
if
(
line
==
NULL
)
{
// EOF
return
;
}
add_history
(
line
);
if
(
mp_repl_is_compound_stmt
(
line
))
{
for
(;;)
{
char
*
line2
=
readline
(
"... "
);
char
*
line2
=
prompt
(
"... "
);
if
(
line2
==
NULL
||
strlen
(
line2
)
==
0
)
{
break
;
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment