5ab8205859
This patch fixes a segfault when .zsh_history contains commands starting with `:` and longer than 15 characters long. Considering the history line: : 1592444398:0;:vspman epoll_ctl The ranked item's line will be: :vspman epoll_ctl When building the prioritized history, we used to apply the zsh extended history offset if the line starts with `:` (and if the command is longer than `15`, defined by `ZSH_HISTORY_ITEM_OFFSET`), which then makes the item point to: tl This makes the `r->item` pointer invalid, which causes the segfault observed in #408 within `prioritized_history_destroy`. --- This patch prevents the same issue from arising again (even if the line is wrongly interpreted) since it avoids any pointer arithmetic between assignment and freeing. Additionally, the patch also greatly improves the heuristics used in determining whether a line is of extended history format or not, since the non-extended format is also supported by zsh. --- Fix #410 Fix #399 |
||
---|---|---|
build | ||
doc | ||
etc/bash-completion.d | ||
man | ||
snap | ||
src | ||
test | ||
.gitignore | ||
.travis.yml | ||
_config.yml | ||
Changelog | ||
CONFIGURATION.md | ||
configure.ac | ||
hstr.pro | ||
INSTALLATION.md | ||
LICENSE | ||
Makefile.am | ||
pad.xml | ||
PKGBUILD | ||
README.md |
HSTR
Easily view, navigate and search your command history with shell history suggest box for bash and zsh.
Description
Are you looking for a command that you used recently? Do you want to avoid the need to write long commands over and over again? Are you looking for a tool that is able to manage your favorite commands?
HSTR (HiSToRy) is a command line utility that brings improved bash
/zsh
command completion
from the history. It aims to make completion easier and more efficient
than Ctrl-r.
HSTR can also manage your command history (for instance you can remove commands that are obsolete or contain a piece of sensitive information) or bookmark your favorite commands.
Installation
Install:
- Ubuntu
- Fedora
- Gentoo
- CentOS
- openSUSE
- RHEL
- Debian
- Mint
- Arch Linux
- Manjaro Linux
- Scientific Linux
- Haiku OS
- macOS
- nix package manager
- Guix package manager
Build:
- build on any Linux distro
- build snap
- build on Ubuntu
- build on Debian
- build on Fedora
- build on Windows Subsystem for Linux (WSL)
- build on Cygwin
- build on macOS
Tarball:
Configuration
Configure HSTR just by running:
# bash
hstr --show-configuration >> ~/.bashrc
# zsh
hstr --show-configuration >> ~/.zshrc
For detailed HSTR configuration documentation please refer to Configuration.
Documentation
Check man page:
man hstr
In the News
Read about HSTR in LinuxMagazine, UbuntuGeek, DebianAdmin, Tuxdiary, Softpedia and OSTechNix.
Upgrade
If you are HSTR 1.x user, please read about HSTR 2.x changes.