4cf8bebf71
Failing to read() some data into the destination buffer from the slurp() function was not considered an error. This means that we were potentially leaving the caller with an uninitialized destination buffer without letting him know it's uninitialized. It is quite unlikely that a single call to read() would ever fail right after a successful call to open(..., O_RDONLY). However, one practical example of this happening is when the file being opened is actually a directory. Fixed by propagating the error (i.e. returning false from slurp()) if the call to read() fails. Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com> |
||
---|---|---|
contrib | ||
include | ||
m4 | ||
man | ||
src | ||
testcases | ||
travis | ||
.clang-format | ||
.gitignore | ||
.travis.yml | ||
CHANGELOG | ||
configure.ac | ||
CONTRIBUTING.md | ||
i3status.c | ||
i3status.conf | ||
I3STATUS_VERSION | ||
LICENSE | ||
Makefile.am | ||
README.md |
i3status
Description
i3status is a small program for generating a status bar for i3bar, dzen2, xmobar or similar programs. It is designed to be very efficient by issuing a very small number of system calls, as one generally wants to update such a status line every second. This ensures that even under high load, your status bar is updated correctly. Also, it saves a bit of energy by not hogging your CPU as much as spawning the corresponding amount of shell commands would.
Development
i3status has the following dependencies:
- libconfuse-dev
- libyajl-dev
- libasound2-dev
- libnl-genl-3-dev
- asciidoc (only for the documentation)
- libpulse-dev (for getting the current volume using PulseAudio)
On debian-based systems, the following line will install all requirements:
apt-get install libconfuse-dev libyajl-dev libasound2-dev libiw-dev asciidoc libpulse-dev libnl-genl-3-dev
Upstream
i3status is developed at https://github.com/i3/i3status
Compilation
Prefer installing i3status via your Linux distribution’s package manager.
If you absolutely have to build from source, use:
autoreconf -fi
mkdir build
cd build
../configure
make -j8
sudo make install