[libvirt] [PATCH] virsh: new environment variable VIRSH_HISTSIZE
Daniel P. Berrange
berrange at redhat.com
Mon Oct 28 14:05:05 UTC 2013
On Mon, Oct 28, 2013 at 02:38:46PM +0100, Pavel Raiskup wrote:
> Allow adjust the number of commands to remember in the command
> history.
>
> * tools/virsh.c (vshReadlineInit): Read and sanity the
> VIRSH_HISTSIZE variable.
> (VIRSH_HISTSIZE_MAX): New constant.
> * tools/virsh.pod: Document VIRSH_HISTSIZE variable.
> ---
> tools/virsh.c | 17 ++++++++++++++++-
> tools/virsh.pod | 5 +++++
> 2 files changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/tools/virsh.c b/tools/virsh.c
> index bad78c9..b9181f3 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -2748,11 +2748,14 @@ vshReadlineCompletion(const char *text, int start,
> return matches;
> }
>
> +#define VIRSH_HISTSIZE_MAX 500000
>
> static int
> vshReadlineInit(vshControl *ctl)
> {
> char *userdir = NULL;
> + int max_history = 500;
> + const char *histsize_str;
>
> /* Allow conditional parsing of the ~/.inputrc file. */
> rl_readline_name = "virsh";
> @@ -2761,7 +2764,19 @@ vshReadlineInit(vshControl *ctl)
> rl_attempted_completion_function = vshReadlineCompletion;
>
> /* Limit the total size of the history buffer */
> - stifle_history(500);
> + if ((histsize_str = virGetEnvBlockSUID("VIRSH_HISTSIZE"))) {
> + if (virStrToLong_i(histsize_str, NULL, 10, &max_history) < 0) {
> + vshError(ctl, "%s", _("Bad $VIRSH_HISTSIZE value."));
> + VIR_FREE(userdir);
> + return -1;
> + } else if (max_history > VIRSH_HISTSIZE_MAX || max_history < 0) {
> + vshError(ctl, _("$VIRSH_HISTSIZE value should be between 0 and %d"),
> + VIRSH_HISTSIZE_MAX);
> + VIR_FREE(userdir);
> + return -1;
> + }
> + }
> + stifle_history(max_history);
>
> /* Prepare to read/write history from/to the $XDG_CACHE_HOME/virsh/history file */
> userdir = virGetUserCacheDirectory();
> diff --git a/tools/virsh.pod b/tools/virsh.pod
> index 23d17c4..dac9a08 100644
> --- a/tools/virsh.pod
> +++ b/tools/virsh.pod
> @@ -3349,6 +3349,11 @@ The editor to use by the B<edit> and related options.
> The editor to use by the B<edit> and related options, if C<VISUAL>
> is not set.
>
> +=item VIRSH_HISTSIZE
> +
> +The number of commands to remember in the command history. The
> +default value is 500.
> +
> =item LIBVIRT_DEBUG=LEVEL
>
> Turn on verbose debugging of all libvirt API calls. Valid levels are
ACK
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list