Skip to content

Commit ffb81ee

Browse files
committed
fix readline not work
1 parent 87430de commit ffb81ee

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

sapi/src/builder/extension/readline.php

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,26 +17,31 @@
1717
$p->withBeforeConfigureScript('readline', function (Preprocessor $p) {
1818
$workDir = $p->getWorkDir();
1919
$php_src = $p->getPhpSrcDir();
20+
$delim = " ";
2021
$cmd = <<<EOF
21-
cd {$workDir}
22-
cp -f {$workDir}/sapi/patches/0001-fix-readline-not-work.patch {$php_src}/
2322
cd {$php_src}/
2423
2524
# 获得行号
26-
grep -n '#ifdef COMPILE_DL_READLINE' ext/readline/readline_cli.c | cut -d ':' -f 1
27-
awk '/#ifdef COMPILE_DL_READLINE/ { print NR }' ext/readline/readline_cli.c
25+
# awk '/#ifdef COMPILE_DL_READLINE/ { print NR }' ext/readline/readline_cli.c
26+
# grep -n '#ifdef COMPILE_DL_READLINE' ext/readline/readline_cli.c | cut -d ':' -f 1
27+
# sed -n "/#ifdef COMPILE_DL_READLINE/=" ext/readline/readline_cli.c
2828
29-
# 获得待删除 区间
30-
START_LINE_NUM=$(sed -n "/#ifdef COMPILE_DL_READLINE/=" ext/readline/readline_cli.c)
31-
START_LINE_NUM=$((\$START_LINE_NUM - 1))
32-
END_LINE_NUM=$(sed -n "/PHP_MINIT_FUNCTION(cli_readline)/=" ext/readline/readline_cli.c)
33-
REPLACE_LINE_NUM=$((\$END_LINE_NUM - 3))
34-
END_LINE_NUM=$((\$END_LINE_NUM - 4))
29+
grep -n '#ifdef COMPILE_DL_READLINE' ext/readline/readline_cli.c
30+
if [ $? = 0 ] ; then
31+
# 获得待删除 区间
32+
START_LINE_NUM=$(sed -n "/#ifdef COMPILE_DL_READLINE/=" ext/readline/readline_cli.c)
33+
START_LINE_NUM=$((\$START_LINE_NUM - 1))
34+
END_LINE_NUM=$(sed -n "/PHP_MINIT_FUNCTION(cli_readline)/=" ext/readline/readline_cli.c)
35+
END_LINE_NUM=$((\$END_LINE_NUM - 5))
3536
36-
sed "\${REPLACE_LINE_NUM}/^.*$/#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()/" ext/readline/readline_cli.c
37+
sed -i.backup "\${START_LINE_NUM},\${END_LINE_NUM}d" ext/readline/readline_cli.c
3738
38-
sed -i.backup "\${START_LINE_NUM},\${END_LINE_NUM}d" ext/readline/readline_cli.c
39+
REPLACE_LINE_NUM=$(sed -n "/#define GET_SHELL_CB(cb) (cb) = php_cli_get_shell_callbacks()/=" ext/readline/readline_cli.c)
40+
REPLACE_LINE_NUM=$((\$REPLACE_LINE_NUM + 1))
3941
42+
sed -i.backup "\${REPLACE_LINE_NUM} s/.*/ /" ext/readline/readline_cli.c
43+
44+
fi
4045
EOF;
4146

4247
return $cmd;

0 commit comments

Comments
 (0)