char *command;
int command_ret;
- editor = getenv ("EDITOR");
+ editor = getenv ("VISUAL");
+ if (!editor) editor = getenv ("EDITOR");
if (!editor) editor = "vi"; /* could be cruel & default to ed(1) here */
- /* Check the editor doesn't contain shell meta-characters, and if
- * it does, refuse to run.
+ /* Check that filename doesn't contain shell meta-characters, and
+ * if it does, refuse to run. Follow the Unix conventions for
+ * EDITOR: the user can intentionally specify command options, so
+ * we don't protect any shell metacharacters there. Lots more
+ * than virsh will misbehave if EDITOR has bogus contents (which
+ * is why sudo scrubs it by default).
*/
- if (strspn (editor, ACCEPTED_CHARS) != strlen (editor)) {
- vshError(ctl,
- _("%s: $EDITOR environment variable contains shell meta or "
- "other unacceptable characters"),
- editor);
- return -1;
- }
- /* Same for the filename. */
if (strspn (filename, ACCEPTED_CHARS) != strlen (filename)) {
vshError(ctl,
_("%s: temporary filename contains shell meta or other "
virsh define domain.xml
except that it does some error checking.
-The editor used can be supplied by the C<$EDITOR> environment
-variable, or if that is not defined defaults to C<vi>.
+The editor used can be supplied by the C<$VISUAL> or C<$EDITOR> environment
+variables, and defaults to C<vi>.
=item B<migrate> optional I<--live> I<--suspend> I<domain-id> I<desturi> I<migrateuri>
virsh define network.xml
except that it does some error checking.
-The editor used can be supplied by the C<$EDITOR> environment
-variable, or if that is not defined defaults to C<vi>.
+The editor used can be supplied by the C<$VISUAL> or C<$EDITOR> environment
+variables, and defaults to C<vi>.
=item B<net-list> optional I<--inactive> or I<--all>
The hypervisor to connect to by default. Set this to a URI, in the same
format as accepted by the B<connect> option.
-=item EDITOR
+=item VISUAL
The editor to use by the B<edit> and B<net-edit> options.
+=item EDITOR
+
+The editor to use by the B<edit> and B<net-edit> options, if C<VISUAL>
+is not set.
+
=item LIBVIRT_DEBUG=LEVEL
Turn on verbose debugging of all libvirt API calls. Valid levels are