Commit 8dd1f01d authored by Vladislav Vaintroub's avatar Vladislav Vaintroub

MDEV-27191 MariaDB client - "system" command does not work on Windows

- define USE_POPEN, like it is done elsewhere.
- use Notepad as default editor on Windows for the "edit" command.
parent d5ceddb3
......@@ -96,8 +96,8 @@ extern "C" {
# include <readline.h>
# endif
#define HAVE_READLINE
#define USE_POPEN
#endif
#define USE_POPEN
}
#ifdef HAVE_VIDATTR
......@@ -4210,11 +4210,6 @@ com_nopager(String *buffer __attribute__((unused)),
}
#endif
/*
Sorry, you can't send the result to an editor in Win32
*/
#ifdef USE_POPEN
static int
com_edit(String *buffer,char *line __attribute__((unused)))
......@@ -4236,7 +4231,7 @@ com_edit(String *buffer,char *line __attribute__((unused)))
if (!(editor = (char *)getenv("EDITOR")) &&
!(editor = (char *)getenv("VISUAL")))
editor = "vi";
editor = IF_WIN("notepad","vi");
strxmov(buff,editor," ",filename,NullS);
if ((error= system(buff)))
{
......@@ -4251,7 +4246,7 @@ com_edit(String *buffer,char *line __attribute__((unused)))
if ((fd = my_open(filename,O_RDONLY, MYF(MY_WME))) < 0)
goto err;
(void) buffer->alloc((uint) stat_arg.st_size);
if ((tmp=read(fd,(char*) buffer->ptr(),buffer->alloced_length())) >= 0L)
if ((tmp=(int)my_read(fd,(uchar*) buffer->ptr(),buffer->alloced_length(),MYF(0))) >= 0)
buffer->length((uint) tmp);
else
buffer->length(0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment