Just letting sh expand the env var is saner and simpler.
This commit is contained in:
parent
dca812bd27
commit
22615506bf
|
@ -363,7 +363,6 @@ editperm(MYSQL *pmysql, const char *db)
|
||||||
char fn[] = "/tmp/mysql-dbadm.tmp.XXXXXX";
|
char fn[] = "/tmp/mysql-dbadm.tmp.XXXXXX";
|
||||||
FILE *f;
|
FILE *f;
|
||||||
char *editor;
|
char *editor;
|
||||||
char *cmd;
|
|
||||||
char line[1024]; /* buffer to hold one line */
|
char line[1024]; /* buffer to hold one line */
|
||||||
char *cp; /* used to interate through a line */
|
char *cp; /* used to interate through a line */
|
||||||
char *user, *select_priv, *insert_priv, *update_priv, *delete_priv,
|
char *user, *select_priv, *insert_priv, *update_priv, *delete_priv,
|
||||||
|
@ -415,15 +414,13 @@ editperm(MYSQL *pmysql, const char *db)
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
editor = getenv("EDITOR");
|
/* exec sh -c '${EDITOR:-pico} "$1"' sh /tmp/filename
|
||||||
if (!editor)
|
*
|
||||||
editor = "pico"; /* OK since editor won't be freed */
|
* The parameter expansion syntax doesn't work with old bourne
|
||||||
|
* shells, but it works with newer bourne as well as POSIX shells,
|
||||||
cmd = malloc(sizeof(char) * strlen(editor) + 7);
|
* so it should be fine.
|
||||||
sprintf(cmd, "%s \"$1\"", editor);
|
*/
|
||||||
|
execlp("sh", "sh", "-c", "${EDITOR:-pico} \"$1\"", "sh", fn, NULL);
|
||||||
/* sh -c '$EDITOR "$1"' sh "$fn" */
|
|
||||||
execlp("sh", "sh", "-c", cmd, "sh", fn, NULL);
|
|
||||||
perror("Failed to execute editor");
|
perror("Failed to execute editor");
|
||||||
fprintf(stderr, "Make sure the EDITOR environment variable contains"
|
fprintf(stderr, "Make sure the EDITOR environment variable contains"
|
||||||
" a valid editor\n");
|
" a valid editor\n");
|
||||||
|
|
Loading…
Reference in New Issue